CRM_Campaign_BAO_Campaign::addCampaignInComponentSearch($this);
- foreach (array(
- 'Scheduled', 'Complete', 'Running') as $status) {
- $this->addElement('checkbox', "mailing_status[$status]", NULL, $status);
+ if (!$parent->get('unscheduled')) {
+ $statusVals = array('Scheduled', 'Complete', 'Running', 'Canceled');
+ $parent->set('allStatuses', $statusVals);
+ foreach ($statusVals as $status) {
+ $this->addElement('checkbox', "mailing_status[$status]", NULL, $status);
+ }
+ $this->addElement('checkbox', 'all_status', NULL, 'All Statuses');
}
-
if ($parent->_sms) {
$this->addElement('hidden', 'sms', $parent->_sms);
}
function setDefaultValues() {
$defaults = array();
- foreach (array(
- 'Scheduled', 'Complete', 'Running') as $status) {
+ $parent = $this->controller->getParent();
+
+ $statusVals = array('Scheduled', 'Complete', 'Running', 'Canceled');
+ foreach ($statusVals as $status) {
$defaults['mailing_status'][$status] = 1;
}
- $parent = $this->controller->getParent();
if ($parent->_sms) {
$defaults['sms'] = 1;
}
$parent = $this->controller->getParent();
if (!empty($params)) {
- $fields = array('mailing_name', 'mailing_from', 'mailing_to', 'sort_name', 'campaign_id', 'mailing_status', 'sms');
+ $fields = array('mailing_name', 'mailing_from', 'mailing_to', 'sort_name', 'campaign_id', 'mailing_status', 'sms', 'all_status');
foreach ($fields as $field) {
if (isset($params[$field]) &&
!CRM_Utils_System::isNull($params[$field])
$clauses[] = "( civicrm_mailing.is_archived IS NULL OR civicrm_mailing.is_archived = 0 )";
}
if (!$this->_parent->get('unscheduled')) {
- $status = $this->_parent->get('mailing_status');
+
+ // all status filter implementation
+ if ($status = $this->_parent->get('mailing_status')) {
+ $status = array_keys($status);
+ }
+ if ($this->_parent->get('all_status')) {
+ $status = $this->_parent->get('allStatuses');
+ }
+ if ($this->_parent->get('all_status') && $this->_parent->get('scheduled')) {
+ $status = array('Scheduled', 'Complete', 'Running');
+ }
+
if (!empty($status)) {
- $status = array_keys($status);
$status = implode("','", $status);
$clauses[] = "civicrm_mailing_job.status IN ('$status')";
}
$clauses[] = "civicrm_mailing_job.status IN ('Scheduled', 'Complete', 'Running')";
}
}
-
if ($this->_parent->get('archived')) {
// CRM-6446: archived view should also show cancelled mailings
$clauses[] = "(civicrm_mailing.is_archived = 1 OR civicrm_mailing_job.status = 'Canceled')";
<td colspan="1">{$form.sort_name.label}<br />
{$form.sort_name.html|crmAddClass:big} {help id="id-create_sort_name"}
</td>
- <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="width: auto; height: 60px">
- {foreach from=$form.mailing_status item="mailing_status_val"}
- <div class="{cycle values="odd-row,even-row"}">
- {$mailing_status_val.html}
- </div>
+ {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="width: auto; height: 100px">
+ {foreach from=$form.mailing_status item="mailing_status_val"}
+ <div class="{cycle values="odd-row,even-row"}">
+ {$mailing_status_val.html}
+ </div>
{/foreach}
- </div><br />
- </td>
+ <div class='odd-row'>
+ {$form.all_status.html}
+ </div>
+ </div><br />
+ </td>
+ {/if}
</tr>
{* campaign in mailing search *}