projects
/
civicrm-core.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (from parent 1:
a4f8f90
)
CRM-16277 - crmMailingMgr - Strictly serialize write operations
author
Tim Otten
<totten@civicrm.org>
Thu, 16 Apr 2015 21:59:55 +0000
(14:59 -0700)
committer
Tim Otten
<totten@civicrm.org>
Fri, 17 Apr 2015 00:35:57 +0000
(17:35 -0700)
ang/crmMailing/services.js
patch
|
blob
|
blame
|
history
diff --git
a/ang/crmMailing/services.js
b/ang/crmMailing/services.js
index fb9d904c245a67ff6199d3d45e976b08e32cfac2..b0503376dad12ec7b93e6888e5b6db18c45dd570 100644
(file)
--- a/
ang/crmMailing/services.js
+++ b/
ang/crmMailing/services.js
@@
-97,7
+97,8
@@
});
// The crmMailingMgr service provides business logic for loading, saving, previewing, etc
});
// The crmMailingMgr service provides business logic for loading, saving, previewing, etc
- angular.module('crmMailing').factory('crmMailingMgr', function ($q, crmApi, crmFromAddresses) {
+ angular.module('crmMailing').factory('crmMailingMgr', function ($q, crmApi, crmFromAddresses, crmQueue) {
+ var qApi = crmQueue(crmApi);
var pickDefaultMailComponent = function pickDefaultMailComponent(type) {
var mcs = _.where(CRM.crmMailing.headerfooterList, {
component_type: type,
var pickDefaultMailComponent = function pickDefaultMailComponent(type) {
var mcs = _.where(CRM.crmMailing.headerfooterList, {
component_type: type,
@@
-116,7
+117,7
@@
get: function get(id) {
var crmMailingMgr = this;
var mailing;
get: function get(id) {
var crmMailingMgr = this;
var mailing;
- return
crm
Api('Mailing', 'getsingle', {id: id})
+ return
q
Api('Mailing', 'getsingle', {id: id})
.then(function (getResult) {
mailing = getResult;
return $q.all([
.then(function (getResult) {
mailing = getResult;
return $q.all([
@@
-172,7
+173,7
@@
// @return Promise
'delete': function (mailing) {
if (mailing.id) {
// @return Promise
'delete': function (mailing) {
if (mailing.id) {
- return
crm
Api('Mailing', 'delete', {id: mailing.id});
+ return
q
Api('Mailing', 'delete', {id: mailing.id});
}
else {
var d = $q.defer();
}
else {
var d = $q.defer();
@@
-263,7
+264,7
@@
// @return Promise an object with "subject", "body_text", "body_html"
preview: function preview(mailing) {
if (CRM.crmMailing.workflowEnabled && !CRM.checkPerm('create mailings') && !CRM.checkPerm('access CiviMail')) {
// @return Promise an object with "subject", "body_text", "body_html"
preview: function preview(mailing) {
if (CRM.crmMailing.workflowEnabled && !CRM.checkPerm('create mailings') && !CRM.checkPerm('access CiviMail')) {
- return
crm
Api('Mailing', 'preview', {id: mailing.id}).then(function(result) {
+ return
q
Api('Mailing', 'preview', {id: mailing.id}).then(function(result) {
return result.values;
});
}
return result.values;
});
}
@@
-276,7
+277,7
@@
}
});
delete params.recipients; // the content was merged in
}
});
delete params.recipients; // the content was merged in
- return
crm
Api('Mailing', 'create', params).then(function(result) {
+ return
q
Api('Mailing', 'create', params).then(function(result) {
// changes rolled back, so we don't care about updating mailing
return result.values[result.id]['api.Mailing.preview'].values;
});
// changes rolled back, so we don't care about updating mailing
return result.values[result.id]['api.Mailing.preview'].values;
});
@@
-302,7
+303,7
@@
}
});
delete params.recipients; // the content was merged in
}
});
delete params.recipients; // the content was merged in
- return
crm
Api('Mailing', 'create', params).then(function (recipResult) {
+ return
q
Api('Mailing', 'create', params).then(function (recipResult) {
// changes rolled back, so we don't care about updating mailing
return recipResult.values[recipResult.id]['api.MailingRecipients.get'].values;
});
// changes rolled back, so we don't care about updating mailing
return recipResult.values[recipResult.id]['api.MailingRecipients.get'].values;
});
@@
-330,7
+331,7
@@
delete params.recipients; // the content was merged in
delete params.recipients; // the content was merged in
- return
crm
Api('Mailing', 'create', params).then(function(result) {
+ return
q
Api('Mailing', 'create', params).then(function(result) {
if (result.id && !mailing.id) {
mailing.id = result.id;
} // no rollback, so update mailing.id
if (result.id && !mailing.id) {
mailing.id = result.id;
} // no rollback, so update mailing.id
@@
-349,7
+350,7
@@
approval_date: 'now',
scheduled_date: mailing.scheduled_date ? mailing.scheduled_date : 'now'
};
approval_date: 'now',
scheduled_date: mailing.scheduled_date ? mailing.scheduled_date : 'now'
};
- return
crm
Api('Mailing', 'submit', params)
+ return
q
Api('Mailing', 'submit', params)
.then(function (result) {
angular.extend(mailing, result.values[result.id]); // Perhaps we should reload mailing based on result?
return crmMailingMgr._loadJobs(mailing);
.then(function (result) {
angular.extend(mailing, result.values[result.id]); // Perhaps we should reload mailing based on result?
return crmMailingMgr._loadJobs(mailing);
@@
-382,7
+383,7
@@
delete params.recipients; // the content was merged in
delete params.recipients; // the content was merged in
- return
crm
Api('Mailing', 'create', params).then(function (result) {
+ return
q
Api('Mailing', 'create', params).then(function (result) {
if (result.id && !mailing.id) {
mailing.id = result.id;
} // no rollback, so update mailing.id
if (result.id && !mailing.id) {
mailing.id = result.id;
} // no rollback, so update mailing.id