From 8717390fff96c2c7221e8c2091e991bb5b799b19 Mon Sep 17 00:00:00 2001 From: Tim Otten Date: Sat, 20 Dec 2014 00:33:23 -0800 Subject: [PATCH] DRY - crmNow --- js/angular-crm-util.js | 20 ++++++++++++++++++++ js/angular-crmMailing/services.js | 24 +++--------------------- js/angular-crmMailingAB/services.js | 26 ++++---------------------- 3 files changed, 27 insertions(+), 43 deletions(-) diff --git a/js/angular-crm-util.js b/js/angular-crm-util.js index e0b296fdd5..1d73ef7bbe 100644 --- a/js/angular-crm-util.js +++ b/js/angular-crm-util.js @@ -10,6 +10,26 @@ }; }); + angular.module('crmUtil').factory('crmNow', function($q){ + // FIXME: surely there's already some helper which can do this in one line? + // @return string "YYYY-MM-DD hh:mm:ss" + return function crmNow() { + var currentdate = new Date(); + var yyyy = currentdate.getFullYear(); + var mm = currentdate.getMonth() + 1; + mm = mm < 10 ? '0' + mm : mm; + var dd = currentdate.getDate(); + dd = dd < 10 ? '0' + dd : dd; + var hh = currentdate.getHours(); + hh = hh < 10 ? '0' + hh : hh; + var min = currentdate.getMinutes(); + min = min < 10 ? '0' + min : min; + var sec = currentdate.getSeconds(); + sec = sec < 10 ? '0' + sec : sec; + return yyyy + "-" + mm + "-" + dd + " " + hh + ":" + min + ":" + sec; + }; + }); + // crmWatcher allows one to setup event listeners and temporarily suspend // them en masse. // diff --git a/js/angular-crmMailing/services.js b/js/angular-crmMailing/services.js index 483ddee045..adb2961ca5 100644 --- a/js/angular-crmMailing/services.js +++ b/js/angular-crmMailing/services.js @@ -3,24 +3,6 @@ return CRM.resourceUrls['civicrm'] + '/partials/crmMailing/' + relPath; }; - // FIXME: surely there's already some helper which can do this in one line? - // @return string "YYYY-MM-DD hh:mm:ss" - var createNow = function () { - var currentdate = new Date(); - var yyyy = currentdate.getFullYear(); - var mm = currentdate.getMonth() + 1; - mm = mm < 10 ? '0' + mm : mm; - var dd = currentdate.getDate(); - dd = dd < 10 ? '0' + dd : dd; - var hh = currentdate.getHours(); - hh = hh < 10 ? '0' + hh : hh; - var min = currentdate.getMinutes(); - min = min < 10 ? '0' + min : min; - var sec = currentdate.getSeconds(); - sec = sec < 10 ? '0' + sec : sec; - return yyyy + "-" + mm + "-" + dd + " " + hh + ":" + min + ":" + sec; - }; - // The representation of from/reply-to addresses is inconsistent in the mailing data-model, // so the UI must do some adaptation. The crmFromAddresses provides a richer way to slice/dice // the available "From:" addrs. Records are like the underlying OptionValues -- but add "email" @@ -118,7 +100,7 @@ }); // 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, crmNow) { var pickDefaultMailComponent = function pickDefaultMailComponent(type) { var mcs = _.where(CRM.crmMailing.headerfooterList, { component_type: type, @@ -322,8 +304,8 @@ var crmMailingMgr = this; var params = { id: mailing.id, - approval_date: createNow(), - scheduled_date: mailing.scheduled_date ? mailing.scheduled_date : createNow() + approval_date: crmNow(), + scheduled_date: mailing.scheduled_date ? mailing.scheduled_date : crmNow() }; return crmApi('Mailing', 'submit', params) .then(function (result) { diff --git a/js/angular-crmMailingAB/services.js b/js/angular-crmMailingAB/services.js index fd656bf346..345b52abea 100644 --- a/js/angular-crmMailingAB/services.js +++ b/js/angular-crmMailingAB/services.js @@ -1,23 +1,5 @@ (function (angular, $, _) { - // FIXME: surely there's already some helper which can do this in one line? - // @return string "YYYY-MM-DD hh:mm:ss" - var createNow = function () { - var currentdate = new Date(); - var yyyy = currentdate.getFullYear(); - var mm = currentdate.getMonth() + 1; - mm = mm < 10 ? '0' + mm : mm; - var dd = currentdate.getDate(); - dd = dd < 10 ? '0' + dd : dd; - var hh = currentdate.getHours(); - hh = hh < 10 ? '0' + hh : hh; - var min = currentdate.getMinutes(); - min = min < 10 ? '0' + min : min; - var sec = currentdate.getSeconds(); - sec = sec < 10 ? '0' + sec : sec; - return yyyy + "-" + mm + "-" + dd + " " + hh + ":" + min + ":" + sec; - }; - angular.module('crmMailingAB').factory('crmMailingABCriteria', function () { // TODO Get data from server var values = { @@ -44,7 +26,7 @@ // abtest.load().then(function(){ // alert("Mailing A is named "+abtest.mailings.a.name); // }); - angular.module('crmMailingAB').factory('CrmMailingAB', function (crmApi, crmMailingMgr, $q, CrmAttachments) { + angular.module('crmMailingAB').factory('CrmMailingAB', function (crmApi, crmMailingMgr, $q, CrmAttachments, crmNow) { function CrmMailingAB(id) { this.id = id; this.mailings = {}; @@ -117,10 +99,10 @@ submit: function submit(newStatus) { var crmMailingAB = this; var params = { - id: this.id, + id: this.ab.id, status: newStatus, - approval_date: createNow(), - scheduled_date: this.mailings.a.scheduled_date ? this.mailings.a.scheduled_date : createNow() + approval_date: crmNow(), + scheduled_date: this.mailings.a.scheduled_date ? this.mailings.a.scheduled_date : crmNow() }; return crmApi('MailingAB', 'submit', params) .then(function () { -- 2.25.1