CRM-15061 - Add js to show Any/All selector only when needed
authorColeman Watts <coleman@civicrm.org>
Tue, 5 Aug 2014 15:53:58 +0000 (16:53 +0100)
committerColeman Watts <coleman@civicrm.org>
Wed, 13 Aug 2014 09:24:27 +0000 (10:24 +0100)
templates/CRM/Custom/Form/MultiValueSearch.js.tpl [new file with mode: 0644]
templates/CRM/Custom/Form/Search.tpl
templates/CRM/Profile/Form/Search.tpl

diff --git a/templates/CRM/Custom/Form/MultiValueSearch.js.tpl b/templates/CRM/Custom/Form/MultiValueSearch.js.tpl
new file mode 100644 (file)
index 0000000..a0c7de7
--- /dev/null
@@ -0,0 +1,39 @@
+{*
+ +--------------------------------------------------------------------+
+ | CiviCRM version 4.5                                                |
+ +--------------------------------------------------------------------+
+ | Copyright CiviCRM LLC (c) 2004-2014                                |
+ +--------------------------------------------------------------------+
+ | This file is a part of CiviCRM.                                    |
+ |                                                                    |
+ | CiviCRM is free software; you can copy, modify, and distribute it  |
+ | under the terms of the GNU Affero General Public License           |
+ | Version 3, 19 November 2007 and the CiviCRM Licensing Exception.   |
+ |                                                                    |
+ | CiviCRM is distributed in the hope that it will be useful, but     |
+ | WITHOUT ANY WARRANTY; without even the implied warranty of         |
+ | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.               |
+ | See the GNU Affero General Public License for more details.        |
+ |                                                                    |
+ | You should have received a copy of the GNU Affero General Public   |
+ | License and the CiviCRM Licensing Exception along                  |
+ | with this program; if not, contact CiviCRM LLC                     |
+ | at info[AT]civicrm[DOT]org. If you have questions about the        |
+ | GNU Affero General Public License or the licensing of CiviCRM,     |
+ | see the CiviCRM license FAQ at http://civicrm.org/licensing        |
+ +--------------------------------------------------------------------+
+*}
+{literal}
+  <script type="text/javascript">
+    CRM.$(function($) {
+      function showHideOperator() {
+        var val = $(this).val();
+        $(this).siblings("span.crm-multivalue-search-op").toggle(!!(val && val.length > 1));
+      }
+      $("span.crm-multivalue-search-op").siblings('select')
+        .off('.crmMultiValue')
+        .on('change.crmMultiValue', showHideOperator)
+        .each(showHideOperator);
+    });
+  </script>
+{/literal}
index 7d524d69bf00e304b71b995b408485d66a88442a..792e6af02c01c128aedf8936a50be7c91459ba16 100644 (file)
@@ -58,7 +58,8 @@
                     {include file="CRM/common/jcalendar.tpl" elementName=$element_name}
                 {/if}
                 {if !empty($form.$operator_name)}
-                  {$form.$operator_name.html}
+                  <span class="crm-multivalue-search-op" for="{$element_name}">{$form.$operator_name.html}</span>
+                  {assign var="add_multivalue_js" value=true}
                 {/if}
             {/if}
             {if $element.html_type eq 'Autocomplete-Select'}
@@ -74,5 +75,8 @@
   </div><!-- /.crm-accordion-wrapper -->
 
 {/foreach}
+  {if !empty($add_multivalue_js)}
+    {include file="CRM/Custom/Form/MultiValueSearch.js.tpl"}
+  {/if}
 {/if}
 
index 948e6976554ab946d5d9f1b03560c4a933d3ae43..9cb83280cb9780b6b402d1786696427198055e7e 100644 (file)
@@ -89,7 +89,8 @@
                 {include file="CRM/Custom/Form/ContactReference.tpl" element_name = $n}
               {/if}
               {if !empty($form.$operator_name)}
-                {$form.$operator_name.html}
+                <span class="crm-multivalue-search-op" for="{$n}">{$form.$operator_name.html}</span>
+                {assign var="add_multivalue_js" value=true}
               {/if}
             </td>
           {/if}
     });
   </script>
 {/literal}
+
+{if !empty($add_multivalue_js)}
+  {include file="CRM/Custom/Form/MultiValueSearch.js.tpl"}
+{/if}