CRM-13966 - Refactor group org autocomplete
authorColeman Watts <coleman@civicrm.org>
Wed, 12 Feb 2014 19:00:25 +0000 (11:00 -0800)
committerColeman Watts <coleman@civicrm.org>
Wed, 12 Feb 2014 19:00:25 +0000 (11:00 -0800)
CRM/Group/Form/Edit.php
templates/CRM/Group/Form/Edit.tpl

index 17d97c96c43a036f452a37759e613c4f32f7c9b1..b8f7fdb10bd1282cac2b0919f11819aef352e907 100644 (file)
@@ -174,25 +174,8 @@ class CRM_Group_Form_Edit extends CRM_Core_Form {
         }
       }
 
-      if (CRM_Core_Permission::check('administer Multiple Organizations') &&
-        CRM_Core_Permission::isMultisiteEnabled()
-      ) {
+      if (CRM_Core_Permission::check('administer Multiple Organizations') && CRM_Core_Permission::isMultisiteEnabled()) {
         CRM_Contact_BAO_GroupOrganization::retrieve($this->_id, $defaults);
-
-        if (!empty($defaults['group_organization'])) {
-          //used in edit mode
-          $this->_groupOrganizationID = $defaults['group_organization'];
-        }
-        if (!empty($defaults['organization_id'])) {
-          $result = civicrm_api3('contact', 'getquick', array(
-            'org' => 1,
-            'id' => $defaults['organization_id']
-          ));
-          $this->assign('organizationName', $result['values'][0]['data']);
-        }
-        else {
-          $this->assign('organizationName', '');
-        }
       }
     }
 
@@ -314,15 +297,10 @@ class CRM_Group_Form_Edit extends CRM_Core_Form {
       }
       $this->add('select', 'parents', ts('Add Parent'), $parentGroupSelectValues, $required);
     }
-    if (CRM_Core_Permission::check('administer Multiple Organizations') &&
-      CRM_Core_Permission::isMultisiteEnabled()
-    ) {
+    if (CRM_Core_Permission::check('administer Multiple Organizations') && CRM_Core_Permission::isMultisiteEnabled()) {
       //group organization Element
-      $groupOrgDataURL = CRM_Utils_System::url('civicrm/ajax/search', 'org=1', FALSE, NULL, FALSE);
-      $this->assign('groupOrgDataURL', $groupOrgDataURL);
-
-      $this->addElement('text', 'organization', ts('Organization'), '');
-      $this->addElement('hidden', 'organization_id', '', array('id' => 'organization_id'));
+      $props = array('api' => array('params' => array('contact_type' => 'Organization')));
+      $this->addEntityRef('organization_id', ts('Organization'), $props);
     }
 
     // is_reserved property CRM-9936
index 12bf2e17a49eff96f14568ae63664820e3d7a055..e93e9092cd29c4083f514032749d368299fe39be 100644 (file)
   </table>
     {/if}
 
-    {if $form.organization}
+    {if $form.organization_id}
   <h3>{ts}Associated Organization{/ts} {help id="id-group-organization" file="CRM/Group/Page/Group.hlp"}</h3>
           <table class="form-layout-compressed">
         <tr class="crm-group-form-block-organization">
-            <td class="label">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{$form.organization.label}</td>
-      <td>{$form.organization.html|crmAddClass:huge}
-          <div id="organization_address" style="font-size:10px">{$organizationName}</div>
+            <td class="label">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{$form.organization_id.label}</td>
+      <td>{$form.organization_id.html|crmAddClass:huge}
       </td>
         </tr>
     </table>
@@ -151,15 +150,6 @@ cj('input[type=checkbox][name="group_type[{/literal}{$freezeMailignList}{literal
 cj('input[type=checkbox][name="group_type[{/literal}{$hideMailignList}{literal}]"]').hide();
 cj('label[for="group_type[{/literal}{$hideMailignList}{literal}]"]').hide();
 {/literal}{/if}{literal}
-
-var dataUrl = "{/literal}{crmURL p='civicrm/ajax/rest' q='className=CRM_Contact_Page_AJAX&fnName=getContactList&json=1&org=1&context=groupcontact' h=0 }{literal}";
-cj('#organization').val(cj('#organization_address').text()).autocomplete( dataUrl, {
-              width : 250, selectFirst : false, matchContains: true
-              }).result( function(event, data, formatted) {
-                                                       cj( "#organization_id" ).val( data[1] );
-                                                       htmlDiv = data[0].replace( /::/gi, ' ');
-                                                       cj('div#organization_address').html(htmlDiv);
-                  });
 </script>
 {/literal}
 </div>