53 lines
1.8 KiB
JavaScript
53 lines
1.8 KiB
JavaScript
(function(angular, $, _) {
|
|
|
|
angular.module('crmMailingAB').controller('CrmMailingABWinnerDialogCtrl', function($scope, $timeout, dialogService, crmMailingMgr, crmStatus) {
|
|
var ts = $scope.ts = CRM.ts(null);
|
|
var abtest = $scope.abtest = $scope.model.abtest;
|
|
var mailingName = $scope.model.mailingName;
|
|
|
|
var titles = {a: ts('Mailing A'), b: ts('Mailing B')};
|
|
$scope.mailingTitle = titles[mailingName];
|
|
|
|
function init() {
|
|
// When using dialogService with a button bar, the major button actions
|
|
// need to be registered with the dialog widget (and not embedded in
|
|
// the body of the dialog).
|
|
var buttons = [
|
|
{
|
|
text: ts('Submit final mailing'),
|
|
icons: {primary: 'fa-paper-plane'},
|
|
click: function() {
|
|
crmMailingMgr.mergeInto(abtest.mailings.c, abtest.mailings[mailingName], [
|
|
'name',
|
|
'recipients',
|
|
'scheduled_date'
|
|
]);
|
|
crmStatus({start: ts('Saving...'), success: ''}, abtest.save())
|
|
.then(function() {
|
|
return crmStatus({start: ts('Submitting...'), success: ts('Submitted')},
|
|
abtest.submitFinal().then(function(r) {
|
|
delete abtest.$CrmMailingABReportCnt;
|
|
return r;
|
|
}));
|
|
})
|
|
.then(function() {
|
|
dialogService.close('selectWinnerDialog', abtest);
|
|
});
|
|
}
|
|
},
|
|
{
|
|
text: ts('Cancel'),
|
|
icons: {primary: 'fa-times'},
|
|
click: function() {
|
|
dialogService.cancel('selectWinnerDialog');
|
|
}
|
|
}
|
|
];
|
|
dialogService.setButtons('selectWinnerDialog', buttons);
|
|
}
|
|
|
|
$timeout(init);
|
|
});
|
|
|
|
})(angular, CRM.$, CRM._);
|