From 07fa6426fdb606057f101cd52ff8b4d6f3ec0689 Mon Sep 17 00:00:00 2001 From: Tim Otten Date: Thu, 11 Dec 2014 18:47:23 -0800 Subject: [PATCH] CRM-15578 - Add crmMailingMgr.mergeInto() This should be useful for creating different variations on a mailings in A/B testing. --- js/angular-crmMailing2-services.js | 39 ++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/js/angular-crmMailing2-services.js b/js/angular-crmMailing2-services.js index 95ba835b58..b02b6539f0 100644 --- a/js/angular-crmMailing2-services.js +++ b/js/angular-crmMailing2-services.js @@ -193,6 +193,45 @@ } }, + // Copy all data fields in (mailingFrom) to (mailingTgt) -- except for (excludes) + // ex: crmMailingMgr.mergeInto(newMailing, mailingTemplate, ['subject']); + mergeInto: function mergeInto(mailingTgt, mailingFrom, excludes) { + var MAILING_FIELDS = [ + 'name', + 'campaign_id', + 'from_name', + 'from_email', + 'replyto_email', + 'subject', + 'dedupe_email', + 'groups', + 'mailings', + 'body_html', + 'body_text', + 'footer_id', + 'header_id', + 'visibility', + 'url_tracking', + 'dedupe_email', + 'forward_replies', + 'auto_responder', + 'open_tracking', + 'override_verp', + 'optout_id', + 'reply_id', + 'resubscribe_id', + 'unsubscribe_id' + ]; + if (!excludes) { + excludes = []; + } + _.each(MAILING_FIELDS, function (field) { + if (!_.contains(excludes, field)) { + mailingTgt[field] = mailingFrom[field]; + } + }) + }, + // @param mailing Object (per APIv3) // @return Promise an object with "subject", "body_text", "body_html" preview: function preview(mailing) { -- 2.25.1