[Datepicker][REF] Convert mailing date field on mailing search screen to date picker
authorSeamus Lee <seamuslee001@gmail.com>
Sun, 1 Sep 2019 01:27:48 +0000 (11:27 +1000)
committerSeamus Lee <seamuslee001@gmail.com>
Wed, 4 Sep 2019 22:31:35 +0000 (08:31 +1000)
CRM/Mailing/Form/Search.php
CRM/Mailing/Selector/Browse.php
templates/CRM/Mailing/Form/Search.tpl

index d2d6af941ea9a9480943a371ef514369c4ed67b0..6c03b4e9ef0de4dc460b9e6e6bf86d9aeadd561d 100644 (file)
@@ -44,7 +44,8 @@ class CRM_Mailing_Form_Search extends CRM_Core_Form {
       CRM_Core_DAO::getAttribute('CRM_Mailing_DAO_Mailing', 'title')
     );
 
-    CRM_Core_Form_Date::buildDateRange($this, 'mailing', 1, '_from', '_to', ts('From'), FALSE);
+    $dateFieldLabel = ($parent->_sms) ? ts('SMS Date') : ts('Mailing Date');
+    $this->addDatePickerRange('mailing', $dateFieldLabel);
 
     $this->add('text', 'sort_name', ts('Created or Sent by'),
       CRM_Core_DAO::getAttribute('CRM_Contact_DAO_Contact', 'sort_name')
@@ -111,14 +112,20 @@ class CRM_Mailing_Form_Search extends CRM_Core_Form {
   public function postProcess() {
     $params = $this->controller->exportValues($this->_name);
 
-    CRM_Contact_BAO_Query::fixDateValues($params["mailing_relative"], $params['mailing_from'], $params['mailing_to']);
+    if (!empty($params['mailing_relative'])) {
+      list($params['mailing_low'], $params['mailing_high']) = CRM_Utils_Date::getFromTo($params['mailing_relative'], $params['mailing_low'], $params['mailing_high']);
+      unset($params['mailing_relative']);
+    }
+    elseif (!empty($params['mailing_high'])) {
+      $params['mailing_high'] .= ' ' . '23:59:59';
+    }
 
     $parent = $this->controller->getParent();
     if (!empty($params)) {
       $fields = [
         'mailing_name',
-        'mailing_from',
-        'mailing_to',
+        'mailing_low',
+        'mailing_high',
         'sort_name',
         'campaign_id',
         'mailing_status',
@@ -132,16 +139,7 @@ class CRM_Mailing_Form_Search extends CRM_Core_Form {
         if (isset($params[$field]) &&
           !CRM_Utils_System::isNull($params[$field])
         ) {
-          if (in_array($field, [
-            'mailing_from',
-            'mailing_to',
-          ]) && !$params["mailing_relative"]) {
-            $time = ($field == 'mailing_to') ? '235959' : NULL;
-            $parent->set($field, CRM_Utils_Date::processDate($params[$field], $time));
-          }
-          else {
-            $parent->set($field, $params[$field]);
-          }
+          $parent->set($field, $params[$field]);
         }
         else {
           $parent->set($field, NULL);
index a0ae8f5b656ecd48e891a260e3de5921e7fd0676..9440a77bb18419d66abef44bd41a43dc5bb15c94 100644 (file)
@@ -522,7 +522,7 @@ LEFT JOIN  civicrm_contact scheduledContact ON ( $mailing.scheduled_id = schedul
     }
 
     $dateClause1 = $dateClause2 = [];
-    $from = $this->_parent->get('mailing_from');
+    $from = $this->_parent->get('mailing_low');
     if (!CRM_Utils_System::isNull($from)) {
       if ($this->_parent->get('unscheduled')) {
         $dateClause1[] = 'civicrm_mailing.created_date >= %2';
@@ -534,7 +534,7 @@ LEFT JOIN  civicrm_contact scheduledContact ON ( $mailing.scheduled_id = schedul
       $params[2] = [$from, 'String'];
     }
 
-    $to = $this->_parent->get('mailing_to');
+    $to = $this->_parent->get('mailing_high');
     if (!CRM_Utils_System::isNull($to)) {
       if ($this->_parent->get('unscheduled')) {
         $dateClause1[] = ' civicrm_mailing.created_date <= %3 ';
index c726adf719088e672f4d9c58dfcf25eb6adae783..467e174b938750217cf9d815e4de9d6c35e1f5bb 100644 (file)
  +--------------------------------------------------------------------+
 *}
 <div class="crm-block crm-form-block crm-search-form-block">
-<table class="form-layout">
+  <table class="form-layout">
     <tr>
-        <td>{$form.mailing_name.label} {help id="id-mailing_name"}<br />
-            {$form.mailing_name.html|crmAddClass:big}
-        </td>
-    </tr>
-    <tr>
-        <td>
-      <label>{if $sms eq 1}{ts}SMS Date{/ts}{else}{ts}Mailing Date{/ts}{/if}</label>
-  </td>
+       <td>{$form.mailing_name.label} {help id="id-mailing_name"}<br />
+        {$form.mailing_name.html|crmAddClass:big}
+      </td>
     </tr>
     <tr>
-  {include file="CRM/Core/DateRange.tpl" fieldName="mailing" from='_from' to='_to'}
+      {include file="CRM/Core/DatePickerRangeWrapper.tpl" fieldName="mailing" colspan='2'}
     </tr>
     <tr>
-        <td colspan="1">{$form.sort_name.label} {help id="id-create_sort_name"}<br />
-            {$form.sort_name.html|crmAddClass:big}
-            <br/><br/>
-            <div class="crm-search-form-block-is_archive">
-            {$form.is_archived.label} {help id="is_archived"}<br/>
-            {$form.is_archived.html}
-            </div>
-        </td>
-        {if $form.mailing_status}
-           <td width="100%"><label>{if $sms eq 1}{ts}SMS Status{/ts}{else}{ts}Mailing Status{/ts}{/if}</label><br />
+      <td colspan="1">{$form.sort_name.label} {help id="id-create_sort_name"}<br />
+        {$form.sort_name.html|crmAddClass:big}
+        <br/><br/>
+        <div class="crm-search-form-block-is_archive">
+          {$form.is_archived.label} {help id="is_archived"}<br/>
+          {$form.is_archived.html}
+        </div>
+      </td>
+      {if $form.mailing_status}
+         <td width="100%"><label>{if $sms eq 1}{ts}SMS Status{/ts}{else}{ts}Mailing Status{/ts}{/if}</label><br />
            <div class="listing-box" style="height: auto">
              {foreach from=$form.mailing_status item="mailing_status_val"}
-             <div class="{cycle values="odd-row,even-row"}">
-               {$mailing_status_val.html}
-             </div>
+               <div class="{cycle values="odd-row,even-row"}">
+                 {$mailing_status_val.html}
+               </div>
             {/foreach}
             <div class="{cycle values="odd-row,even-row"}">
               {$form.status_unscheduled.html}
             </div>
-           </div><br />
-           </td>
-        {/if}
+          </div><br />
+        </td>
+      {/if}
     </tr>
 
     {* language *}
     {if $form.language}
       <tr>
         <td>{$form.language.label} {help id="id-language"}<br />
-            {$form.language.html|crmAddClass:big}
+          {$form.language.html|crmAddClass:big}
         </td>
       </tr>
     {/if}
 
     {* campaign in mailing search *}
     {include file="CRM/Campaign/Form/addCampaignToComponent.tpl"
-    campaignContext="componentSearch" campaignTrClass='' campaignTdClass=''}
+      campaignContext="componentSearch" campaignTrClass='' campaignTdClass=''}
 
     <tr>
-        <td>{$form.buttons.html}</td><td colspan="2"></td>
+      <td>{$form.buttons.html}</td><td colspan="2"></td>
     </tr>
-</table>
+  </table>
 </div>
 
 {literal}