From df7b009b6ff6413b9f144d7d4908a2a8fddd991d Mon Sep 17 00:00:00 2001 From: Coleman Watts Date: Tue, 22 Jan 2019 09:39:43 -0500 Subject: [PATCH] Convert addCampaignToComponent widget to entityRef --- CRM/Campaign/BAO/Campaign.php | 50 +----------- CRM/Campaign/Page/AJAX.php | 33 -------- .../Campaign/Form/addCampaignToComponent.tpl | 78 ++----------------- 3 files changed, 12 insertions(+), 149 deletions(-) diff --git a/CRM/Campaign/BAO/Campaign.php b/CRM/Campaign/BAO/Campaign.php index 356c84b098..9170beecb3 100644 --- a/CRM/Campaign/BAO/Campaign.php +++ b/CRM/Campaign/BAO/Campaign.php @@ -596,66 +596,24 @@ INNER JOIN civicrm_group grp ON ( grp.id = campgrp.entity_id ) $$fld = CRM_Utils_Array::value($fld, $campaignDetails); } - //lets see do we have past campaigns. - $hasPastCampaigns = FALSE; - $allActiveCampaigns = CRM_Campaign_BAO_Campaign::getCampaigns(NULL, NULL, TRUE, FALSE); - if (count($allActiveCampaigns) > count($campaigns)) { - $hasPastCampaigns = TRUE; - } - $hasCampaigns = FALSE; - if (!empty($campaigns)) { - $hasCampaigns = TRUE; - } - if ($hasPastCampaigns) { - $hasCampaigns = TRUE; - $form->add('hidden', 'included_past_campaigns'); - } - $showAddCampaign = FALSE; - $alreadyIncludedPastCampaigns = FALSE; if ($connectedCampaignId || ($isCampaignEnabled && $hasAccessCampaign)) { $showAddCampaign = TRUE; - //lets add past campaigns as options to quick-form element. - if ($hasPastCampaigns && $form->getElementValue('included_past_campaigns')) { - $campaigns = $allActiveCampaigns; - $alreadyIncludedPastCampaigns = TRUE; - } - $campaign = &$form->add('select', - 'campaign_id', - ts('Campaign'), - array('' => ts('- select -')) + $campaigns, - FALSE, - array('class' => 'crm-select2') - ); + $campaign = $form->addEntityRef('campaign_id', ts('Campaign'), [ + 'entity' => 'campaign', + 'create' => TRUE, + ]); //lets freeze when user does not has access or campaign is disabled. if (!$isCampaignEnabled || !$hasAccessCampaign) { $campaign->freeze(); } } - $addCampaignURL = NULL; - if (empty($campaigns) && $hasAccessCampaign && $isCampaignEnabled) { - $addCampaignURL = CRM_Utils_System::url('civicrm/campaign/add', 'reset=1'); - } - - $includePastCampaignURL = NULL; - if ($hasPastCampaigns && $isCampaignEnabled && $hasAccessCampaign) { - $includePastCampaignURL = CRM_Utils_System::url('civicrm/ajax/rest', - 'className=CRM_Campaign_Page_AJAX&fnName=allActiveCampaigns', - FALSE, NULL, FALSE - ); - } - //carry this info to templates. $infoFields = array( - 'hasCampaigns', - 'addCampaignURL', 'showAddCampaign', - 'hasPastCampaigns', 'hasAccessCampaign', 'isCampaignEnabled', - 'includePastCampaignURL', - 'alreadyIncludedPastCampaigns', ); foreach ($infoFields as $fld) { $campaignInfo[$fld] = $$fld; diff --git a/CRM/Campaign/Page/AJAX.php b/CRM/Campaign/Page/AJAX.php index 08c4dcfaed..ccb04eeed6 100644 --- a/CRM/Campaign/Page/AJAX.php +++ b/CRM/Campaign/Page/AJAX.php @@ -494,39 +494,6 @@ class CRM_Campaign_Page_AJAX { CRM_Utils_JSON::output(array('status' => $status)); } - public function allActiveCampaigns() { - $currentCampaigns = CRM_Campaign_BAO_Campaign::getCampaigns(); - $campaigns = CRM_Campaign_BAO_Campaign::getCampaigns(NULL, NULL, TRUE, FALSE, TRUE); - $options = array( - array( - 'value' => '', - 'title' => ts('- select -'), - ), - ); - foreach ($campaigns as $value => $title) { - $class = NULL; - if (!array_key_exists($value, $currentCampaigns)) { - $class = 'status-past'; - } - $options[] = array( - 'value' => $value, - 'title' => $title, - 'class' => $class, - ); - } - $status = 'fail'; - if (count($options) > 1) { - $status = 'success'; - } - - $results = array( - 'status' => $status, - 'campaigns' => $options, - ); - - CRM_Utils_JSON::output($results); - } - public function campaignGroups() { $surveyId = CRM_Utils_Request::retrieve('survey_id', 'Positive', CRM_Core_DAO::$_nullObject, FALSE, NULL, 'POST' diff --git a/templates/CRM/Campaign/Form/addCampaignToComponent.tpl b/templates/CRM/Campaign/Form/addCampaignToComponent.tpl index c87649051c..90f7b88172 100644 --- a/templates/CRM/Campaign/Form/addCampaignToComponent.tpl +++ b/templates/CRM/Campaign/Form/addCampaignToComponent.tpl @@ -2,82 +2,20 @@ {if $campaignContext eq 'componentSearch'} -{* add campaign in component search *} - + {* add campaign in component search *} + {assign var=elementName value=$campaignInfo.elementName} {$form.$elementName.label} {$form.$elementName.html} - + -{else} +{elseif $campaignInfo.showAddCampaign} -{if $campaignInfo.showAddCampaign} - - - {$form.campaign_id.label} {help id="id-campaign_id" file="CRM/Campaign/Form/addCampaignToComponent.hlp"} - - {* lets take a call, either show campaign select drop-down or show add campaign link *} - {if $campaignInfo.hasCampaigns} - {$form.campaign_id.html|crmAddClass:huge} - {* show for add and edit actions *} - {if ( $action eq 1 or $action eq 2 ) - and !$campaignInfo.alreadyIncludedPastCampaigns and $campaignInfo.includePastCampaignURL} -
- - » - {ts}Show past campaign(s) in this select list.{/ts} - - {/if} - {else} -
- {ts}There are currently no active Campaigns.{/ts} - {if $campaignInfo.addCampaignURL} - {capture assign="link"}href="{$campaignInfo.addCampaignURL}" class="action-item"{/capture} - {ts 1=$link}If you want to associate this record with a campaign, you can create a campaign here.{/ts} - {/if} {help id="id-campaign_id" file="CRM/Campaign/Form/addCampaignToComponent.hlp"} -
- {/if} - - - - -{literal} - -{/literal} - - -{/if}{* add campaign to component if closed. *} + + {$form.campaign_id.label} {help id="id-campaign_id" file="CRM/Campaign/Form/addCampaignToComponent.hlp"} + {$form.campaign_id.html} + {/if}{* add campaign to component search if closed. *} -- 2.25.1