CRM-21113: find cases -- use tag multi-select widget
authorBrian Shaughnessy <brian@lcdservices.biz>
Wed, 6 Sep 2017 15:39:53 +0000 (11:39 -0400)
committerBrian Shaughnessy <brian@lcdservices.biz>
Wed, 6 Sep 2017 15:39:53 +0000 (11:39 -0400)
CRM/Case/BAO/Query.php
templates/CRM/Case/Form/Search/Common.tpl

index 3a864d6331f690047988b6e49ddce4d8495c2b41..9d6828afd6e7ec442828546638d5db0ede8ac3c4 100644 (file)
@@ -481,11 +481,11 @@ class CRM_Case_BAO_Query extends CRM_Core_BAO_Query {
       case 'case_tags':
         $tags = CRM_Core_PseudoConstant::get('CRM_Core_DAO_EntityTag', 'tag_id', array('onlyActive' => FALSE));
 
-        if (is_array($value)) {
-          foreach ($value as $k => $v) {
+        if (!empty($value)) {
+          $val = explode(',', $value);
+          foreach ($val as $v) {
             if ($v) {
-              $val[$k] = $k;
-              $names[] = $tags[$k];
+              $names[] = $tags[$v];
             }
           }
         }
@@ -701,12 +701,10 @@ case_relation_type.id = case_relationship.relationship_type_id )";
     }
     $form->assign('accessAllCases', $accessAllCases);
 
-    $caseTags = CRM_Core_BAO_Tag::getTags('civicrm_case');
+    $caseTags = CRM_Core_BAO_Tag::getColorTags('civicrm_case');
 
     if ($caseTags) {
-      foreach ($caseTags as $tagID => $tagName) {
-        $form->_tagElement = &$form->addElement('checkbox', "case_tags[$tagID]", NULL, $tagName);
-      }
+      $form->add('select2', 'case_tags', ts('Case Tag(s)'), $caseTags, FALSE, array('class' => 'big', 'placeholder' => ts('- select -'), 'multiple' => TRUE));
     }
 
     $parentNames = CRM_Core_BAO_Tag::getTagSet('civicrm_case');
index b7fb19777ff7592344a4281cf830a8ba793d33c3..4423f75d790a5851511440595094b6de5ed4629c 100644 (file)
       {$form.case_id.label}<br />
       {$form.case_id.html}
     </td>
-    <td class="crm-case-common-form-block-case_subject">
+    <td class="crm-case-common-form-block-case_subject" colspan="2">
       {$form.case_subject.label}<br />
       {$form.case_subject.html}
     </td>
-    <td></td>
   </tr>
 
   <tr>
       {/if}
     </td>
     <td class="crm-case-common-form-block-case_tags">
-      {if $form.case_tags}
-        <label>{ts}Case Tag(s){/ts}</label>
-        <div id="Tag" class="listing-box">
-          {foreach from=$form.case_tags item="tag_val"}
-            <div class="{cycle values='odd-row,even-row'}">
-              {$tag_val.html}
-            </div>
-          {/foreach}
-        </div>
+      {if $form.case_tags.html}
+        {$form.case_tags.label}<br />
+        {$form.case_tags.html}
       {/if}
     </td>
   </tr>