From f411b7d56cd46449602308bc056256ea5cd281a9 Mon Sep 17 00:00:00 2001 From: Coleman Watts Date: Thu, 30 Jan 2014 19:33:49 -0800 Subject: [PATCH] CRM-13966 - Convert campaign crmasmselect to select2 and support optgroups --- CRM/Campaign/BAO/Campaign.php | 10 +++----- js/Common.js | 5 ++++ .../Campaign/Form/addCampaignToComponent.tpl | 25 ------------------- 3 files changed, 8 insertions(+), 32 deletions(-) diff --git a/CRM/Campaign/BAO/Campaign.php b/CRM/Campaign/BAO/Campaign.php index 8987e529d2..e2b163d082 100644 --- a/CRM/Campaign/BAO/Campaign.php +++ b/CRM/Campaign/BAO/Campaign.php @@ -617,19 +617,15 @@ INNER JOIN civicrm_group grp ON ( grp.id = campgrp.entity_id ) $pastCampaigns = array_diff($campaigns, $currentCampaigns); $allCampaigns = array(); if (!empty($currentCampaigns)) { - $allCampaigns = array('current_campaign' => ts('Current Campaigns')); - foreach ($currentCampaigns as & $camp) $camp = "   {$camp}"; - $allCampaigns += $currentCampaigns; + $allCampaigns = array('crm_optgroup_current_campaign' => ts('Current Campaigns')) + $currentCampaigns; } if (!empty($pastCampaigns)) { - $allCampaigns += array('past_campaign' => ts('Past Campaigns')); - foreach ($pastCampaigns as & $camp) $camp = "   {$camp}"; - $allCampaigns += $pastCampaigns; + $allCampaigns += array('crm_optgroup_past_campaign' => ts('Past Campaigns')) + $pastCampaigns; } $showCampaignInSearch = TRUE; $form->add('select', $elementName, ts('Campaigns'), $allCampaigns, FALSE, - array('id' => 'campaigns', 'multiple' => 'multiple', 'title' => ts('- select -')) + array('id' => 'campaigns', 'multiple' => 'multiple', 'class' => 'crm-select2') ); } $infoFields = array( diff --git a/js/Common.js b/js/Common.js index d6111c79d1..e9a5bb2380 100644 --- a/js/Common.js +++ b/js/Common.js @@ -279,6 +279,11 @@ $.fn.select2.defaults.width = 'resolve'; }) .find('input.select-row:checked').parents('tr').addClass('crm-row-selected'); $('.crm-select2', e.target).each(function() { + // quickform doesn't support optgroups so here's a hack :( + $('option[value^=crm_optgroup]', this).each(function() { + $(this).nextUntil('option[value^=crm_optgroup]').wrapAll(''); + $(this).remove(); + }); var options = $(this).data('select2') || {}; $(this).removeClass('crm-select2').select2(options); }); diff --git a/templates/CRM/Campaign/Form/addCampaignToComponent.tpl b/templates/CRM/Campaign/Form/addCampaignToComponent.tpl index 79713ff537..a34c300251 100644 --- a/templates/CRM/Campaign/Form/addCampaignToComponent.tpl +++ b/templates/CRM/Campaign/Form/addCampaignToComponent.tpl @@ -8,31 +8,6 @@ {$form.$elementName.label}
{$form.$elementName.html}
- {literal} - - {/literal} -- 2.25.1