Convert addCampaignToComponent widget to entityRef
authorColeman Watts <coleman@civicrm.org>
Tue, 22 Jan 2019 14:39:43 +0000 (09:39 -0500)
committerColeman Watts <coleman@civicrm.org>
Tue, 22 Jan 2019 14:39:43 +0000 (09:39 -0500)
CRM/Campaign/BAO/Campaign.php
CRM/Campaign/Page/AJAX.php
templates/CRM/Campaign/Form/addCampaignToComponent.tpl

index 356c84b09858d7465e5a81858eb8f4fd5e28a64d..9170beecb3b578fd0faf047e82468633b6407dea 100644 (file)
@@ -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;
index 08c4dcfaed6df821b0b1f1a9e67c78d885f4d355..ccb04eeed6cdc7ec6ac43bdc97c51e279c0118fc 100644 (file)
@@ -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'
index c87649051c742e13a16e71848e7542a9f0980dc8..90f7b8817235c0ea9a22507691524d7cd90432dd 100644 (file)
@@ -2,82 +2,20 @@
 
 {if $campaignContext eq 'componentSearch'}
 
-{* add campaign in component search *}
-<tr class="{$campaignTrClass}">
+  {* add campaign in component search *}
+  <tr class="{$campaignTrClass}">
     {assign var=elementName value=$campaignInfo.elementName}
     <td class="{$campaignTdClass}">
       {$form.$elementName.label} {$form.$elementName.html}
     </td>
-</tr>
+  </tr>
 
-{else}
+{elseif $campaignInfo.showAddCampaign}
 
-{if $campaignInfo.showAddCampaign}
-
-    <tr class="{$campaignTrClass}">
-        <td class="label">{$form.campaign_id.label} {help id="id-campaign_id" file="CRM/Campaign/Form/addCampaignToComponent.hlp"}</td>
-        <td class="view-value">
-      {* 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}
-                <br />
-                <a id='include-past-campaigns' href='#' onClick='includePastCampaigns( "campaign_id" ); return false;'>
-                   &raquo;
-                   {ts}Show past campaign(s) in this select list.{/ts}
-                </a>
-            {/if}
-            {else}
-            <div class="status">
-            {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 <a %1>create a campaign here</a>.{/ts}
-            {/if} {help id="id-campaign_id" file="CRM/Campaign/Form/addCampaignToComponent.hlp"}
-            </div>
-          {/if}
-        </td>
-    </tr>
-
-
-{literal}
-<script type="text/javascript">
-function includePastCampaigns()
-{
-    //hide past campaign link.
-    cj( "#include-past-campaigns" ).hide( );
-
-    var campaignUrl = {/literal}'{$campaignInfo.includePastCampaignURL}'{literal};
-    cj.post( campaignUrl,
-             null,
-             function( data ) {
-          if ( data.status != 'success' ) return;
-
-          //first reset all select options.
-         cj( "#campaign_id" ).val( '' );
-             cj( "#campaign_id" ).html( '' );
-         cj('input[name="included_past_campaigns"]').val( 1 );
-
-         var campaigns = data.campaigns;
-
-         //build the new options.
-         for ( campaign in campaigns ) {
-              title = campaigns[campaign].title;
-              value = campaigns[campaign].value;
-              className = campaigns[campaign].class;
-              if ( !title ) continue;
-              cj('#campaign_id').append( cj('<option></option>').val(value).html(title).addClass(className) );
-          }
-           },
-           'json');
-}
-</script>
-{/literal}
-
-
-{/if}{* add campaign to component if closed.  *}
+  <tr class="{$campaignTrClass}">
+    <td class="label">{$form.campaign_id.label} {help id="id-campaign_id" file="CRM/Campaign/Form/addCampaignToComponent.hlp"}</td>
+    <td class="view-value">{$form.campaign_id.html}</td>
+  </tr>
 
 {/if}{* add campaign to component search if closed. *}