Skip to content

Commit

Permalink
dev/mail#20 : Preview screen don't open until recipients list is buil…
Browse files Browse the repository at this point in the history
…t on mail compose screen
  • Loading branch information
monishdeb committed Aug 13, 2018
1 parent 24689c7 commit 0075b0c
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 23 deletions.
19 changes: 5 additions & 14 deletions ang/crmMailing/services.js
Expand Up @@ -262,7 +262,7 @@
// @param mailing Object (per APIv3)
// @return Promise an object with "subject", "body_text", "body_html"
preview: function preview(mailing) {
return this.getPreviewContent(qApi, mailing)
return this.getPreviewContent(qApi, mailing);
},

// @param backend
Expand All @@ -275,20 +275,11 @@
});
}
else {
// Protect against races in saving and previewing by chaining create+preview.
var params = angular.extend({}, mailing, mailing.recipients, {
id: mailing.id,
'api.Mailing.preview': {
id: '$value.id'
}
});
delete params.scheduled_date;
delete params.recipients; // the content was merged in
params._skip_evil_bao_auto_recipients_ = 1; // skip recipient rebuild on mail preview
return backend('Mailing', 'create', params).then(function(result) {
mailing.modified_date = result.values[result.id].modified_date;
var params = angular.extend({}, mailing);
delete params.id;
return backend('Mailing', 'preview', params).then(function(result) {
// changes rolled back, so we don't care about updating mailing
return result.values[result.id]['api.Mailing.preview'].values;
return result.values;
});
}
},
Expand Down
19 changes: 10 additions & 9 deletions api/v3/Mailing.php
Expand Up @@ -547,21 +547,22 @@ function civicrm_api3_mailing_event_open($params) {
* @throws \API_Exception
*/
function civicrm_api3_mailing_preview($params) {
civicrm_api3_verify_mandatory($params,
'CRM_Mailing_DAO_Mailing',
array('id'),
FALSE
);

$fromEmail = NULL;
if (!empty($params['from_email'])) {
$fromEmail = $params['from_email'];
}

$session = CRM_Core_Session::singleton();
$mailing = new CRM_Mailing_BAO_Mailing();
$mailing->id = $params['id'];
$mailing->find(TRUE);
$mailingID = CRM_Utils_Array::value('id', $params);
if ($mailingID) {
$mailing->id = $mailingID;
$mailing->find(TRUE);
}
else {
$mailing->copyValues($params);
}

$session = CRM_Core_Session::singleton();

CRM_Mailing_BAO_Mailing::tokenReplace($mailing);

Expand Down

0 comments on commit 0075b0c

Please sign in to comment.