CRM-13863 - Improve workflow with container sets (custom fields/prices/profiles)
authorColeman Watts <coleman@civicrm.org>
Mon, 18 Aug 2014 12:14:00 +0000 (13:14 +0100)
committerColeman Watts <coleman@civicrm.org>
Mon, 18 Aug 2014 12:14:00 +0000 (13:14 +0100)
13 files changed:
CRM/Custom/Form/Group.php
CRM/Custom/Page/Field.php
CRM/Price/Form/Field.php
CRM/Price/Form/Set.php
CRM/Price/Page/Field.php
CRM/UF/Form/Field.php
CRM/UF/Form/Group.php
templates/CRM/Custom/Page/Field.tpl
templates/CRM/Price/Form/Field.tpl
templates/CRM/Price/Page/Field.tpl
templates/CRM/UF/Form/Field.tpl
templates/CRM/UF/Page/Field.tpl
tests/phpunit/WebTest/Event/AddPricesetTest.php

index 912ad98c87e4399b07e51a750f28ce0c15b47da9..5dba257bf961ea85ed1fcd1fd7e9904fc59559c7 100644 (file)
@@ -499,7 +499,9 @@ class CRM_Custom_Form_Group extends CRM_Core_Form {
       CRM_Core_Session::setStatus(ts('Your custom field set \'%1 \' has been saved.', array(1 => $group->title)), ts('Saved'), 'success');
     }
     else {
-      $url = CRM_Utils_System::url('civicrm/admin/custom/group/field/add', 'reset=1&action=add&gid=' . $group->id);
+      // Jump directly to adding a field if popups are disabled
+      $action = CRM_Core_Resources::singleton()->ajaxPopupsEnabled ? '' : '/add';
+      $url = CRM_Utils_System::url("civicrm/admin/custom/group/field$action", 'reset=1&gid=' . $group->id . '&action=' . ($action ? 'add' : 'browse'));
       CRM_Core_Session::setStatus(ts("Your custom field set '%1' has been added. You can add custom fields now.",
           array(1 => $group->title)
         ), ts('Saved'), 'success');
index 6d77dec760e6d351bc500024535bdc246c3636b2..0085da336878ab01b457c033d2c8d915bae34e9c 100644 (file)
@@ -103,6 +103,7 @@ class CRM_Custom_Page_Field extends CRM_Core_Page {
         CRM_Core_Action::EXPORT => array(
           'name' => ts('Move'),
           'url' => 'civicrm/admin/custom/group/field/move',
+          'class' => 'small-popup',
           'qs' => 'reset=1&fid=%%id%%',
           'title' => ts('Move Custom Field'),
         ),
index 54be353b083f8263f6a200c85396a1d1ac9707c0..3870e0dbc54c7b313e3e045bed55701dd7e85259 100644 (file)
@@ -86,9 +86,7 @@ class CRM_Price_Form_Field extends CRM_Core_Form {
     $this->_sid = CRM_Utils_Request::retrieve('sid', 'Positive', $this, FALSE, NULL, 'REQUEST');
     $this->_fid = CRM_Utils_Request::retrieve('fid', 'Positive', $this, FALSE, NULL, 'REQUEST');
     $url        = CRM_Utils_System::url('civicrm/admin/price/field', "reset=1&action=browse&sid={$this->_sid}");
-    $breadCrumb = array(array('title' => ts('Price Set Fields'),
-        'url' => $url,
-      ));
+    $breadCrumb = array(array('title' => ts('Price Set Fields'), 'url' => $url));
 
     $this->_extendComponentId = array();
     $extendComponentId = CRM_Core_DAO::getFieldValue('CRM_Price_DAO_PriceSet', $this->_sid, 'extends', 'id');
@@ -97,6 +95,18 @@ class CRM_Price_Form_Field extends CRM_Core_Form {
     }
 
     CRM_Utils_System::appendBreadCrumb($breadCrumb);
+
+    switch ($this->_action) {
+      case CRM_Core_Action::ADD:
+        CRM_Utils_System::setTitle(ts('Add Price Field'));
+        break;
+      case CRM_Core_Action::UPDATE:
+        CRM_Utils_System::setTitle(ts('Edit Price Field'));
+        break;
+      case CRM_Core_Action::DELETE:
+        CRM_Utils_System::setTitle(ts('Delete Price Field'));
+        break;
+    }
   }
 
   /**
index 084a02d270e5badbcb451eea12e0ae8ed4111733..7c4fc525420bea6ae5ac8ea03bed77042b6ea53e 100644 (file)
@@ -287,7 +287,9 @@ class CRM_Price_Form_Set extends CRM_Core_Form {
       CRM_Core_Session::setStatus(ts('The Set \'%1\' has been saved.', array(1 => $set->title)), ts('Saved'), 'success');
     }
     else {
-      $url = CRM_Utils_System::url('civicrm/admin/price/field', 'reset=1&action=add&sid=' . $set->id);
+      // Jump directly to adding a field if popups are disabled
+      $action = CRM_Core_Resources::singleton()->ajaxPopupsEnabled ? 'browse' : 'add';
+      $url = CRM_Utils_System::url('civicrm/admin/price/field', array('reset' => 1, 'action' => $action, 'sid' => $set->id));
       CRM_Core_Session::setStatus(ts("Your Set '%1' has been added. You can add fields to this set now.",
           array(1 => $set->title)
         ), ts('Saved'), 'success');
index fb5453e592fa7d3e5e680fd2b717a9d01d4c8479..ec19d9238b9adcc535c7889b1607ed08ead86482 100644 (file)
@@ -78,8 +78,6 @@ class CRM_Price_Page_Field extends CRM_Core_Page {
    * @access public
    */ function &actionLinks() {
     if (!isset(self::$_actionLinks)) {
-      // helper variable for nicer formatting
-      $deleteExtra = ts('Are you sure you want to delete this price field?');
       self::$_actionLinks = array(
         CRM_Core_Action::UPDATE => array(
           'name' => ts('Edit Price Field'),
@@ -108,7 +106,6 @@ class CRM_Price_Page_Field extends CRM_Core_Page {
           'url' => 'civicrm/admin/price/field',
           'qs' => 'action=delete&reset=1&sid=%%sid%%&fid=%%fid%%',
           'title' => ts('Delete Price'),
-          'extra' => 'onclick = "return confirm(\'' . $deleteExtra . '\');"',
         ),
       );
     }
index 61a2360faab121b174ef695cfb7e8042d69e9584..87c276cb352724ca9e9bfd0e05353608fab4776e 100644 (file)
@@ -106,7 +106,17 @@ class CRM_UF_Form_Field extends CRM_Core_Form {
     $this->_id = CRM_Utils_Request::retrieve('id', 'Positive', $this);
     if ($this->_gid) {
       $this->_title = CRM_Core_DAO::getFieldValue('CRM_Core_DAO_UFGroup', $this->_gid, 'title');
-      CRM_Utils_System::setTitle($this->_title . ' - ' . ts('CiviCRM Profile Fields'));
+      switch ($this->_action) {
+        case CRM_Core_Action::ADD:
+          CRM_Utils_System::setTitle(ts('Add Profile Field'));
+          break;
+        case CRM_Core_Action::UPDATE:
+          CRM_Utils_System::setTitle(ts('Edit Profile Field'));
+          break;
+        case CRM_Core_Action::DELETE:
+          CRM_Utils_System::setTitle(ts('Delete Profile Field'));
+          break;
+      }
 
       $url = CRM_Utils_System::url('civicrm/admin/uf/group/field',
         "reset=1&action=browse&gid={$this->_gid}"
index ed56a0c26ae67d44603017986df94f8ea81c57a1..d30758b3440aa52b53fac95901d3ab88cd1e4e87 100644 (file)
@@ -368,7 +368,9 @@ class CRM_UF_Form_Group extends CRM_Core_Form {
         CRM_Core_Session::setStatus(ts("Your CiviCRM Profile '%1' has been saved.", array(1 => $ufGroup->title)), ts('Profile Saved'), 'success');
       }
       else {
-        $url = CRM_Utils_System::url('civicrm/admin/uf/group/field/add', 'reset=1&action=add&gid=' . $ufGroup->id);
+        // Jump directly to adding a field if popups are disabled
+        $action = CRM_Core_Resources::singleton()->ajaxPopupsEnabled ? '' : '/add';
+        $url = CRM_Utils_System::url("civicrm/admin/uf/group/field$action", 'reset=1&gid=' . $ufGroup->id . '&action=' . ($action ? 'add' : 'browse'));
         CRM_Core_Session::setStatus(ts('Your CiviCRM Profile \'%1\' has been added. You can add fields to this profile now.',
             array(1 => $ufGroup->title)
           ), ts('Profile Added'), 'success');
index 24e2378a5950a914bd5fd5708fcdb33fb7dd8bc9..ceb0eb39c70bff326d5348529abc1584ca96e381 100644 (file)
         </table>
         {/strip}
 
-        <div class="action-link">
-            <a href="{crmURL p='civicrm/admin/custom/group/field/add' q="reset=1&action=add&gid=$gid"}" id="newCustomField" class="button action-item"><span><div class="icon add-icon"></div>{ts}Add Custom Field{/ts}</span></a>
-        </div>
      </div>
 
     {else}
         {if $action eq 16}
         <div class="messages status no-popup">
-        <img src="{$config->resourceBase}i/Inform.gif" alt="{ts}status{/ts}"/>
-        {capture assign=crmURL}{crmURL p='civicrm/admin/custom/group/field/add' q="action=add&reset=1&gid=$gid"}{/capture}
-        {ts 1=$groupTitle 2=$crmURL}There are no custom fields for custom group '%1', <a class="action-item" href='%2'>add one</a>.{/ts}
+          <img src="{$config->resourceBase}i/Inform.gif" alt="{ts}status{/ts}"/>
+          {ts 1=$groupTitle}There are no fields for custom group '%1'</a>.{/ts}
         </div>
         {/if}
     {/if}
+    <div class="action-link">
+      <a href="{crmURL p='civicrm/admin/custom/group/field/add' q="reset=1&action=add&gid=$gid"}" id="newCustomField" class="button action-item"><span><div class="icon add-icon"></div>{ts}Add Custom Field{/ts}</span></a>
+    </div>
 {/if}
 
 {include file="CRM/common/crmeditable.tpl"}
index 5c9eb2d427cb76fd312aa5f6569eb3eaae0e944d..4c678b322c340d399476006a734f118cd7341c3a 100644 (file)
@@ -67,7 +67,6 @@
   }
 </script>
 {/literal}
-<h3>{if $action eq 1}{ts}Add Field{/ts}{elseif $action eq 2}{ts}Edit Field{/ts}{/if}</h3>
 <div class="crm-block crm-form-block crm-price-field-form-block">
   <div class="crm-submit-buttons">{include file="CRM/common/formButtons.tpl" location="top"}</div>
   <table class="form-layout">
index 424be8aa9845201a9f3e6b7ef10b4e0b3d646294..470e131067699edbfe550eba33d4bbd2fc962d94 100644 (file)
         {if $action eq 16}
         <div class="messages status no-popup">
             <div class="icon inform-icon"></div>
-            {capture assign=crmURL}{crmURL p='civicrm/admin/price/field q="action=add&reset=1&sid=$sid"}{/capture}
-            {ts 1=$groupTitle 2=$crmURL}There are no fields for price set '%1', <a href='%2'>add one</a>.{/ts}
+            {ts 1=$groupTitle 2=$crmURL}There are no fields for price set '%1'.{/ts}
+        </div>
+        <div class="action-link">
+          <a href="{crmURL q="reset=1&action=add&sid=$sid"}" id="newPriceField" class="button"><span><div class="icon add-icon"></div>{ts}Add Price Field{/ts}</span></a>
         </div>
         {/if}
   {/if}
index 067cf5ddee06b7040c329020d3cc7eed1d3834b7..2b0f5dc0c4c3011a7f91c6effdf8404bbd473195 100644 (file)
@@ -23,7 +23,6 @@
  | see the CiviCRM license FAQ at http://civicrm.org/licensing        |
  +--------------------------------------------------------------------+
 *}
-<h3>{if $action eq 8}{ts}Delete Field{/ts} - {$fieldTitle}{elseif $action eq 1}{ts}Add Field{/ts}{elseif $action eq 2}{ts}Edit Field{/ts} - {$fieldTitle}{/if}</h3>
 <div class="crm-block crm-form-block crm-uf-field-form-block">
 {if $action eq 8}
   <div class="messages status no-popup">
index c14f9d797a819953125ad401dbbecf907daadebb..265e19d812e893887da5776a28303bab384c757b 100644 (file)
         {if $action eq 16}
         {capture assign=crmURL}{crmURL p="civicrm/admin/uf/group/field/add" q="reset=1&action=add&gid=$gid"}{/capture}
         <div class="messages status no-popup">
-        <div class="icon inform-icon"></div>
-       {ts 1=$groupTitle 2=$crmURL}There are no CiviCRM Profile Fields for '%1', you can <a href='%2'>add one now</a>.{/ts}
+          <div class="icon inform-icon"></div>
+          {ts 1=$groupTitle 2=$crmURL}There are no CiviCRM Profile Fields for '%1'</a>.{/ts}
+        </div>
+        <div class="action-link">
+          <a href="{crmURL p="civicrm/admin/uf/group/field/add" q="reset=1&action=add&gid=$gid"}" class="button"><span><div class="icon add-icon"></div>{ts}Add Field{/ts}</span></a>
         </div>
         {/if}
     {/if}
index 376aea867b5592927fe82d7f308aacfe69aaccb8..c06f2486e62e0578f59ebcc6be7ccddb20c1968a 100644 (file)
@@ -722,12 +722,6 @@ class WebTest_Event_AddPricesetTest extends CiviSeleniumTestCase {
     //check the delete for price field
     $this->openCiviPage("admin/price/field", "reset=1&action=browse&sid={$sid}");
     $this->click("xpath=//table[@id='option11']/tbody/tr/td[9]/span[2]/ul/li[2]/a");
-    // Check confirmation alert.
-    $this->assertTrue((bool)preg_match("/^Are you sure you want to delete this price field?/",
-      $this->getConfirmation()
-    ));
-    $this->chooseOkOnNextConfirmation();
-    $this->waitForPageToLoad($this->getTimeoutMsec());
     //assert the message
     $this->waitForText('price_set_used_by',
       "it is currently in use by one or more active events or contribution pages or contributions or event templates.");