Skip to content

Commit

Permalink
[REF] extract isLiveMode
Browse files Browse the repository at this point in the history
I'm closing #13369 as it is stale, but
I figure it makes sense to pull out this extraction from it. I think the PR then
alters the button names taken into account but I'm not seeking to fix here, just
to do the extraction
  • Loading branch information
eileenmcnaughton committed May 25, 2019
1 parent 7c295e8 commit 752cee4
Showing 1 changed file with 22 additions and 6 deletions.
28 changes: 22 additions & 6 deletions CRM/Contact/Form/Task/PDFLetterCommon.php
Original file line number Diff line number Diff line change
Expand Up @@ -126,17 +126,12 @@ public static function processMessageTemplate($formValues) {
public static function postProcess(&$form) {
$formValues = $form->controller->exportValues($form->getName());
list($formValues, $categories, $html_message, $messageToken, $returnProperties) = self::processMessageTemplate($formValues);
$buttonName = $form->controller->getButtonName();
$skipOnHold = isset($form->skipOnHold) ? $form->skipOnHold : FALSE;
$skipDeceased = isset($form->skipDeceased) ? $form->skipDeceased : TRUE;
$html = $activityIds = [];

// CRM-21255 - Hrm, CiviCase 4+5 seem to report buttons differently...
$c = $form->controller->container();
$isLiveMode = ($buttonName == '_qf_PDF_upload') || isset($c['values']['PDF']['buttons']['_qf_PDF_upload']);

// CRM-16725 Skip creation of activities if user is previewing their PDF letter(s)
if ($isLiveMode) {
if (self::isLiveMode($form)) {
$activityIds = self::createActivities($form, $html_message, $form->_contactIds, $formValues['subject'], CRM_Utils_Array::value('campaign_id', $formValues));
}

Expand Down Expand Up @@ -348,4 +343,25 @@ protected static function getTokenCategories() {
return Civi::$statics[__CLASS__]['token_categories'];
}

/**
* Is the form in live mode (as opposed to being run as a preview).
*
* Returns true if the user has clicked the Download Document button on a
* Print/Merge Document (PDF Letter) search task form, or false if the Preview
* button was clicked.
*
* @param CRM_Core_Form $form
*
* @return bool
* TRUE if the Download Document button was clicked (also defaults to TRUE
* if the form controller does not exist), else FALSE
*/
protected static function isLiveMode($form) {
// CRM-21255 - Hrm, CiviCase 4+5 seem to report buttons differently...
$buttonName = $form->controller->getButtonName();
$c = $form->controller->container();
$isLiveMode = ($buttonName == '_qf_PDF_upload') || isset($c['values']['PDF']['buttons']['_qf_PDF_upload']);
return $isLiveMode;
}

}

0 comments on commit 752cee4

Please sign in to comment.