From b0797ac3a2860f474a852c40668cc8e3a3ccb3c4 Mon Sep 17 00:00:00 2001 From: Tim Otten Date: Fri, 19 Dec 2014 00:27:59 -0800 Subject: [PATCH] CRM-15578 - crmMailing(AB) - Refine pageflow: * "Submit" => leave('scheduled') * "Delete" => leave('unscheduled') * "Save" => updateUrl() * "Send Test" => updateUrl() This commit also switches back to managing pageflow from the controller (rather than calling .then(leave) in the .html). At the moment, it seems more useful to have all the different composition screens follow the same pageflow (rather than allowing them to have different pageflows). --- js/angular-crmMailing.js | 37 ++++++++++++++++++-------- js/angular-crmMailingAB.js | 13 ++++++--- partials/crmMailing/edit-unified.html | 4 +-- partials/crmMailing/edit-unified2.html | 2 +- partials/crmMailing/edit-wizard.html | 4 +-- partials/crmMailing/edit.html | 2 +- partials/crmMailingAB/edit.html | 4 +-- 7 files changed, 44 insertions(+), 22 deletions(-) diff --git a/js/angular-crmMailing.js b/js/angular-crmMailing.js index a43fea1b64..b383acb571 100644 --- a/js/angular-crmMailing.js +++ b/js/angular-crmMailing.js @@ -110,8 +110,7 @@ return crmMailingMgr.submit($scope.mailing); }) .then(function () { - updateUrl(); - return $scope.mailing; + leave('scheduled'); }) ; return crmStatus({start: ts('Submitting...'), success: ts('Submitted')}, promise); @@ -126,10 +125,7 @@ // pre-condition: the mailing exists *before* saving attachments to it return $scope.attachments.save(); }) - .then(function () { - updateUrl(); - return $scope.mailing; - }) + .then(updateUrl) ); }; @@ -137,14 +133,33 @@ $scope.delete = function cancel() { return crmStatus({start: ts('Deleting...'), success: ts('Deleted')}, crmMailingMgr.delete($scope.mailing) + .then(function () { + leave('unscheduled') + }) ); }; - $scope.leave = function leave() { - window.location = CRM.url('civicrm/mailing/browse/unscheduled', { - reset: 1, - scheduled: 'false' - }); + // @param string listingScreen 'archive', 'scheduled', 'unscheduled' + function leave(listingScreen) { + switch (listingScreen) { + case 'archive': + window.location = CRM.url('civicrm/mailing/browse/archived', { + reset: 1 + }); + break; + case 'scheduled': + window.location = CRM.url('civicrm/mailing/browse/scheduled', { + reset: 1, + scheduled: 'true' + }); + break; + case 'unscheduled': + default: + window.location = CRM.url('civicrm/mailing/browse/unscheduled', { + reset: 1, + scheduled: 'false' + }); + } }; // Transition URL "/mailing/new" => "/mailing/123" diff --git a/js/angular-crmMailingAB.js b/js/angular-crmMailingAB.js index 9ca3f2d603..2000cf7b0d 100644 --- a/js/angular-crmMailingAB.js +++ b/js/angular-crmMailingAB.js @@ -101,20 +101,27 @@ // @return Promise $scope.delete = function () { - return crmStatus({start: ts('Deleting...'), success: ts('Deleted')}, abtest.delete()); + return crmStatus({start: ts('Deleting...'), success: ts('Deleted')}, abtest.delete().then(leave)); }; // @return Promise $scope.submit = function submit() { - return crmStatus({start: ts('Saving...'), success: ''}, abtest.save().then(updateUrl)) + return crmStatus({start: ts('Saving...'), success: ''}, abtest.save()) .then(function () { return crmStatus({start: ts('Submitting...'), success: ts('Submitted')}, $q.all([ crmMailingMgr.submit(abtest.mailings.a), crmMailingMgr.submit(abtest.mailings.b) ])); - }); + }) + .then(leave); }; + function leave() { + console.log('leave from', $location.path(), ' to abtest'); + $location.path('abtest'); + $location.replace(); + } + function updateCriteriaName() { var criteria = crmMailingABCriteria.get($scope.abtest.ab.testing_criteria_id) $scope.criteriaName = criteria ? criteria.name : null; diff --git a/partials/crmMailing/edit-unified.html b/partials/crmMailing/edit-unified.html index 5aaad4c4b5..eed1b3011f 100644 --- a/partials/crmMailing/edit-unified.html +++ b/partials/crmMailing/edit-unified.html @@ -44,8 +44,8 @@
- + - + diff --git a/partials/crmMailing/edit-unified2.html b/partials/crmMailing/edit-unified2.html index 00725dc93f..1b74085e0e 100644 --- a/partials/crmMailing/edit-unified2.html +++ b/partials/crmMailing/edit-unified2.html @@ -42,6 +42,6 @@ - + diff --git a/partials/crmMailing/edit-wizard.html b/partials/crmMailing/edit-wizard.html index 31b9104b4f..a79e0ad02f 100644 --- a/partials/crmMailing/edit-wizard.html +++ b/partials/crmMailing/edit-wizard.html @@ -55,14 +55,14 @@
- +
{{ts('Submit Mailing')}}
- + diff --git a/partials/crmMailing/edit.html b/partials/crmMailing/edit.html index 0b914e760e..8216162400 100644 --- a/partials/crmMailing/edit.html +++ b/partials/crmMailing/edit.html @@ -58,7 +58,7 @@ - + diff --git a/partials/crmMailingAB/edit.html b/partials/crmMailingAB/edit.html index 9211e23435..f68d87a6c6 100644 --- a/partials/crmMailingAB/edit.html +++ b/partials/crmMailingAB/edit.html @@ -167,7 +167,7 @@ }" crm-abtest="abtest">
- +
{{ts('Submit Mailing')}}
@@ -175,7 +175,7 @@ -- 2.25.1