X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=ang%2FcrmMailing%2Fservices.js;h=45c206373230e3a0002834b5ec657f8b7a4d0ed2;hb=179cb5e37a971a2666d80918c072852ee00babd5;hp=e50a0a0f7a7a5dca40039ea4be5026775f8b97cf;hpb=928cdeb50079894e23a84b86a182505133c60995;p=civicrm-core.git diff --git a/ang/crmMailing/services.js b/ang/crmMailing/services.js index e50a0a0f7a..45c2063732 100644 --- a/ang/crmMailing/services.js +++ b/ang/crmMailing/services.js @@ -262,26 +262,24 @@ // @param mailing Object (per APIv3) // @return Promise an object with "subject", "body_text", "body_html" preview: function preview(mailing) { + return this.getPreviewContent(qApi, mailing); + }, + + // @param backend + // @param mailing Object (per APIv3) + // @return preview content + getPreviewContent: function getPreviewContent(backend, mailing) { if (CRM.crmMailing.workflowEnabled && !CRM.checkPerm('create mailings') && !CRM.checkPerm('access CiviMail')) { - return qApi('Mailing', 'preview', {id: mailing.id}).then(function(result) { + return backend('Mailing', 'preview', {id: mailing.id}).then(function(result) { return result.values; }); } 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 qApi('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; }); } }, @@ -451,7 +449,7 @@ }; var result = null; var p = crmMailingMgr - .preview(mailing) + .getPreviewContent(CRM.api3, mailing) .then(function (content) { var options = CRM.utils.adjustDialogDefaults({ autoOpen: false,