From 40f603d594ab2185e6add74e8816b15f69d510d6 Mon Sep 17 00:00:00 2001 From: Tim Otten Date: Wed, 29 Oct 2014 19:17:35 -0700 Subject: [PATCH] angular-Mailing.js - Auto format --- js/angular-Mailing.js | 641 +++++++++++++++++++++--------------------- 1 file changed, 323 insertions(+), 318 deletions(-) diff --git a/js/angular-Mailing.js b/js/angular-Mailing.js index 556d27da12..d6cf9c761c 100644 --- a/js/angular-Mailing.js +++ b/js/angular-Mailing.js @@ -1,23 +1,23 @@ -(function(angular, $, _) { +(function (angular, $, _) { //partials for the html pages - var partialUrl = function(relPath) { + var partialUrl = function (relPath) { return CRM.resourceUrls['civicrm'] + '/partials/crmMailing/' + relPath; }; - var crmMailing = angular.module('crmMailing', ['ngRoute', 'ui.utils','ngSanitize']); + var crmMailing = angular.module('crmMailing', ['ngRoute', 'ui.utils', 'ngSanitize']); var chck = []; //to fill the group variable $scope.incGroup - var chck2= []; // to get id and text in the required format + var chck2 = []; // to get id and text in the required format var mltokens = []; //we store list of the tokens in this var global = 0; //use this to reload mailingList page once //------------------------------------------------------------------------------------------------------- crmMailing.config(['$routeProvider', - function($routeProvider) { + function ($routeProvider) { $routeProvider.when('/mailing', { templateUrl: partialUrl('mailingList.html'), controller: 'mailingListCtrl', resolve: { - mailingList: function($route, crmApi) { + mailingList: function ($route, crmApi) { return crmApi('Mailing', 'get', {}); } @@ -28,13 +28,13 @@ templateUrl: partialUrl('main.html'), controller: 'mailingCtrl', resolve: { - selectedMail: function($route, crmApi) { - if ( $route.current.params.id !== 'new') { + selectedMail: function ($route, crmApi) { + if ($route.current.params.id !== 'new') { return crmApi('Mailing', 'getsingle', {id: $route.current.params.id}); } else { //selected mail in case of a new mailing. some default values are set - return {visibility: "Public Pages", url_tracking:"1",dedupe_email:"1", forward_replies:"0", auto_responder:"0", open_tracking:"1" + return {visibility: "Public Pages", url_tracking: "1", dedupe_email: "1", forward_replies: "0", auto_responder: "0", open_tracking: "1" }; } } @@ -46,11 +46,11 @@ //This controller is used in creating new mail and editing current mails - crmMailing.controller('mailingCtrl', function($scope, crmApi, selectedMail, $location,$route, $sce, $window) { + crmMailing.controller('mailingCtrl', function ($scope, crmApi, selectedMail, $location, $route, $sce, $window) { //setting variables to the values we have got to the api $scope.partialUrl = partialUrl; - $scope.campaignList = CRM.crmMailing.campNames; + $scope.campaignList = CRM.crmMailing.campNames; $scope.mailList = CRM.crmMailing.civiMails; $scope.mailNameList = _.pluck(CRM.crmCaseType.civiMails, 'name'); $scope.groupNamesList = CRM.crmMailing.groupNames; @@ -87,14 +87,14 @@ $scope.from.name = ""; $scope.from.email = ""; $scope.from.total = ""; - $scope.reply ={}; + $scope.reply = {}; $scope.reply.email = ""; //replyaddress is the array used to save the set of fromemailAddress of the person $scope.replyaddress = []; - for(var a in $scope.fromAddress){ + for (var a in $scope.fromAddress) { var b = {}; var splt = $scope.fromAddress[a].label.split(" "); - splt = splt[1].substring(1,(splt[1].length-1)); + splt = splt[1].substring(1, (splt[1].length - 1)); b.email = splt; $scope.replyaddress.push(b); } @@ -102,15 +102,15 @@ if ($scope.currentMailing.from_name != null) { $scope.from.name = $scope.currentMailing.from_name; $scope.from.email = $scope.currentMailing.from_email; - $scope.from.total = '"'+ $scope.from.name +'"' + " <" + $scope.from.email + ">"; + $scope.from.total = '"' + $scope.from.name + '"' + " <" + $scope.from.email + ">"; $scope.reply.email = $scope.currentMailing.replyto_email; } $scope.mailid = []; //putting all the ids of mails corresponding to the current mailing in mailid. for (var a in $scope.mailingGrp) { - if ($scope.mailingGrp[a].mailing_id==$scope.currentMailing.id) { - var b = $scope.mailingGrp[a].entity_id + " " + $scope.mailingGrp[a].entity_table +" " + $scope.mailingGrp[a].group_type; + if ($scope.mailingGrp[a].mailing_id == $scope.currentMailing.id) { + var b = $scope.mailingGrp[a].entity_id + " " + $scope.mailingGrp[a].entity_table + " " + $scope.mailingGrp[a].group_type; var c = $scope.mailingGrp[a].id; chck.push(b); $scope.mailid.push(c); @@ -119,26 +119,26 @@ //used to put the Template id in tst so it can be used - if ($scope.currentMailing.msg_template_id!=null) { - $scope.tst=$scope.currentMailing.msg_template_id; + if ($scope.currentMailing.msg_template_id != null) { + $scope.tst = $scope.currentMailing.msg_template_id; } //Making the object for data in the mailing group related directive for (var a in chck) { - var b ={}; + var b = {}; b.id = chck[a]; var splt = chck[a].split(" "); - if(splt[1] == "civicrm_group"){ - for(var c in $scope.groupNamesList){ - if($scope.groupNamesList[c].id==splt[0]){ + if (splt[1] == "civicrm_group") { + for (var c in $scope.groupNamesList) { + if ($scope.groupNamesList[c].id == splt[0]) { b.text = $scope.groupNamesList[c].title; } } } - if(splt[1] == "civicrm_mailing"){ - for(var c in $scope.mailList){ - if($scope.mailList[c].id==splt[0]){ + if (splt[1] == "civicrm_mailing") { + for (var c in $scope.mailList) { + if ($scope.mailList[c].id == splt[0]) { b.text = $scope.mailList[c].name; } } @@ -150,96 +150,96 @@ $scope.tabact = 0; //all tabs with tab index greater than maxtab will be disabled. if not a new mail, no tab will be disabled //otherwise all except first tab disabled - if($scope.currentMailing.id != null) + if ($scope.currentMailing.id != null) $scope.maxtab = 3; $scope.maxtab = 0; //increments active tab value and maxtab when next is clicked - $scope.tabupdate = function(){ + $scope.tabupdate = function () { $scope.tabact = $scope.tabact + 1; - $scope.maxtab = Math.max($scope.maxtab,$scope.tabact); + $scope.maxtab = Math.max($scope.maxtab, $scope.tabact); } //decrements active tab value - $scope.prevtabupdate = function(){ + $scope.prevtabupdate = function () { $scope.tabact = $scope.tabact - 1; } //set active tab to 0 when recipient is clicked - $scope.recclicked = function(){ + $scope.recclicked = function () { $scope.tabact = 0; }; //set active tab to 1 when content is clicked //also call appropriate save function if clicked from recipient tab - $scope.conclicked = function(){ - if($scope.tabact == 0) + $scope.conclicked = function () { + if ($scope.tabact == 0) $scope.save_next_page1(); $scope.tabact = 1; }; //set active tab to 2 when schedule and send is clicked //also call appropriate save functions if clicked from recipient or content tab - $scope.schedclicked = function(){ - if($scope.tabact == 0) + $scope.schedclicked = function () { + if ($scope.tabact == 0) $scope.save_next_page1(); - else if($scope.tabact == 1) + else if ($scope.tabact == 1) $scope.save_next_page2(); $scope.tabact = 2; }; //goes to the mailing list page - $scope.back = function (){ - $window.location.href = "#/mailing" ; + $scope.back = function () { + $window.location.href = "#/mailing"; $route.reload(); }; //on changing the selected template, updates subject and body_html of currentMailing - $scope.tmp = function (tst){ - $scope.currentMailing.msg_template_id=tst; - if($scope.currentMailing.msg_template_id == null){ - $scope.currentMailing.body_html=""; - $scope.currentMailing.subject=""; + $scope.tmp = function (tst) { + $scope.currentMailing.msg_template_id = tst; + if ($scope.currentMailing.msg_template_id == null) { + $scope.currentMailing.body_html = ""; + $scope.currentMailing.subject = ""; } - else{ - for(var a in $scope.tmpList){ + else { + for (var a in $scope.tmpList) { - if($scope.tmpList[a].id==$scope.currentMailing.msg_template_id){ - $scope.currentMailing.body_html=$scope.tmpList[a].msg_html; - $scope.currentMailing.subject=$scope.tmpList[a].msg_subject; + if ($scope.tmpList[a].id == $scope.currentMailing.msg_template_id) { + $scope.currentMailing.body_html = $scope.tmpList[a].msg_html; + $scope.currentMailing.subject = $scope.tmpList[a].msg_subject; } } } }; //initializing variables we will use for checkboxes, or for purpose of ng-show - $scope.composeS="1"; - if($scope.currentMailing.forward_replies==0 && $scope.currentMailing.auto_responder==0){ - $scope.trackreplies="0"; + $scope.composeS = "1"; + if ($scope.currentMailing.forward_replies == 0 && $scope.currentMailing.auto_responder == 0) { + $scope.trackreplies = "0"; } else { - $scope.trackreplies="1"; + $scope.trackreplies = "1"; } - if($scope.currentMailing.scheduled_date == null || $scope.currentMailing.scheduled_date == "") - $scope.now="1"; + if ($scope.currentMailing.scheduled_date == null || $scope.currentMailing.scheduled_date == "") + $scope.now = "1"; else - $scope.now="0"; + $scope.now = "0"; - $scope.reply = function(){ - if($scope.trackreplies==0){ - $scope.trackreplies=1; + $scope.reply = function () { + if ($scope.trackreplies == 0) { + $scope.trackreplies = 1; } - else{ - $scope.trackreplies=0; - $scope.currentMailing.forward_replies=0; - $scope.currentMailing.auto_responder=0; + else { + $scope.trackreplies = 0; + $scope.currentMailing.forward_replies = 0; + $scope.currentMailing.auto_responder = 0; } } //joining scheddate.date and scheddate.time gives us scheduled date of current mailing - $scope.scheddate={}; + $scope.scheddate = {}; $scope.scheddate.date = ""; $scope.scheddate.time = ""; //checkNow decides whether we see the date picker or not. Depends on send immediately being on or off - $scope.checkNow = function(){ - if($scope.now == 1 ){ + $scope.checkNow = function () { + if ($scope.now == 1) { $scope.now = 0; } - else{ + else { $scope.now = 1; $scope.currentMailing.scheduled_date = null; $scope.currentMailing.scheduled_id = null; @@ -248,53 +248,53 @@ } }; //changing the screen from compose on screen to upload content - $scope.upldChange= function(composeS){ - if(composeS=="1"){ + $scope.upldChange = function (composeS) { + if (composeS == "1") { return true; } else return false; }; //filter so we only get headers from mailing component - $scope.isHeader= function(hf){ + $scope.isHeader = function (hf) { return hf.component_type == "Header"; }; //filter so we only get footers from mailing component - $scope.isFooter= function(f){ + $scope.isFooter = function (f) { return f.component_type == "Footer"; }; //filter so we only get auto-Responders from mailing component - $scope.isAuto= function(au){ + $scope.isAuto = function (au) { return au.component_type == "Reply"; }; //filter so we only get userDriven message templates - $scope.isUserDriven= function(mstemp){ - return (parseInt(mstemp.id)>58); + $scope.isUserDriven = function (mstemp) { + return (parseInt(mstemp.id) > 58); }; //used for ng-show when trackreplies is selected. Only then we show forward replies and auto-responders options - $scope.trackr= function(trackreplies){ - if(trackreplies=="1"){ + $scope.trackr = function (trackreplies) { + if (trackreplies == "1") { return true; } else return false; } //we should only see groups with appropriate mailing visibility - $scope.isGrp= function(grp){ + $scope.isGrp = function (grp) { return grp.visibility == "Public Pages"; }; //only completed mails are shown in the groupings - $scope.isCompMail= function(ml){ + $scope.isCompMail = function (ml) { return ml.is_completed == 1; }; //This is used to open the update the values in preview mailing - $scope.preview_update = function(){ - var resulta =crmApi('Mailing','preview',{id:$scope.currentMailing.id}); - resulta.success(function(data) { + $scope.preview_update = function () { + var resulta = crmApi('Mailing', 'preview', {id: $scope.currentMailing.id}); + resulta.success(function (data) { if (data.is_error == 0) { - $scope.previewbody_html=data.values.html; - $scope.previewbody_text=data.values.text; - $scope.preview_subject=data.values.subject; + $scope.previewbody_html = data.values.html; + $scope.previewbody_text = data.values.text; + $scope.preview_subject = data.values.subject; $scope.pre = true; $scope.$digest(); $scope.$apply(); @@ -302,63 +302,63 @@ }); }; //checks if body_text is empty or not - $scope.isBody_text = function(){ - if($scope.currentMailing.body_text == null || $scope.currentMailing.body_text == "" ) + $scope.isBody_text = function () { + if ($scope.currentMailing.body_text == null || $scope.currentMailing.body_text == "") return false; else return true; }; //parses html - $scope.deliberatelyTrustDangerousSnippet = function() { + $scope.deliberatelyTrustDangerousSnippet = function () { return $sce.trustAsHtml($scope.previewbody_html); }; - $scope.deliberatelyTrustDangerousSnippet2 = function() { + $scope.deliberatelyTrustDangerousSnippet2 = function () { return $sce.trustAsHtml($scope.previewbody_text); }; - $scope.deliberatelyTrustDangerousSnippet3 = function() { + $scope.deliberatelyTrustDangerousSnippet3 = function () { return $sce.trustAsHtml($scope.preview_subject); }; //gets number of mailing recipients - $scope.mailing_recipients= function() { - var resulta =crmApi('MailingRecipients', 'get', {mailing_id: $scope.currentMailing.id, options: {limit:1000}}); - resulta.success(function(data) { + $scope.mailing_recipients = function () { + var resulta = crmApi('MailingRecipients', 'get', {mailing_id: $scope.currentMailing.id, options: {limit: 1000}}); + resulta.success(function (data) { if (data.is_error == 0) { - $scope.noOfRecipients=data.count; + $scope.noOfRecipients = data.count; $scope.$digest(); $scope.$apply(); } }); } //gets mailing groups associated with current mailing id. formats it in the required way - $scope.mailingGroup = function() { - var resulta =crmApi('MailingGroup', 'get', {mailing_id: $scope.currentMailing.id, options: {limit:1000}}) - resulta.success(function(data) { + $scope.mailingGroup = function () { + var resulta = crmApi('MailingGroup', 'get', {mailing_id: $scope.currentMailing.id, options: {limit: 1000}}) + resulta.success(function (data) { $scope.mailid = []; chck = []; - angular.forEach(data.values, function(value,key){ - var b = value.entity_id + " " + value.entity_table +" " + value.group_type; + angular.forEach(data.values, function (value, key) { + var b = value.entity_id + " " + value.entity_table + " " + value.group_type; var c = value.id; chck.push(b); $scope.mailid.push(c); }); - for(var a in chck) + for (var a in chck) { - var b ={} + var b = {} b.id = chck[a]; var splt = chck[a].split(" "); - if(splt[1] == "civicrm_group"){ - for(var c in $scope.groupNamesList){ - if($scope.groupNamesList[c].id==splt[0]){ + if (splt[1] == "civicrm_group") { + for (var c in $scope.groupNamesList) { + if ($scope.groupNamesList[c].id == splt[0]) { b.text = $scope.groupNamesList[c].title; } } } - if(splt[1] == "civicrm_mailing"){ - for(var c in $scope.mailList){ - if($scope.mailList[c].id==splt[0]){ + if (splt[1] == "civicrm_mailing") { + for (var c in $scope.mailList) { + if ($scope.mailList[c].id == splt[0]) { b.text = $scope.mailList[c].name; } } @@ -371,82 +371,82 @@ }); } //save repeat is a function that is repeated in all versions of save - $scope.save_repeat = function(){ + $scope.save_repeat = function () { if ($scope.from.total != "") { var splt = $scope.from.total.split(" "); - var splta = splt[1].substring(1,(splt[1].length-1)); - var spltb = splt[0].substring(1,(splt[0].length-1)); + var splta = splt[1].substring(1, (splt[1].length - 1)); + var spltb = splt[0].substring(1, (splt[0].length - 1)); $scope.currentMailing.from_email = splta; $scope.currentMailing.from_name = spltb; } } //save_next is used in recipient page. stores mailing groups - $scope.save_next = function() { + $scope.save_next = function () { $scope.save_repeat(); //splits the groups based on include exclude mailing and groups - $scope.incGrp=[]; - $scope.excGrp=[]; - $scope.incMail=[]; - $scope.excMail=[]; - $scope.answer=""; - for(req_id in chck){ + $scope.incGrp = []; + $scope.excGrp = []; + $scope.incMail = []; + $scope.excMail = []; + $scope.answer = ""; + for (req_id in chck) { $scope.answer = chck[req_id].split(" "); - if($scope.answer[1] == "civicrm_mailing" && $scope.answer[2]=="include"){ + if ($scope.answer[1] == "civicrm_mailing" && $scope.answer[2] == "include") { $scope.incMail.push($scope.answer[0]); } - else if($scope.answer[1] == "civicrm_mailing" && $scope.answer[2]=="exclude"){ + else if ($scope.answer[1] == "civicrm_mailing" && $scope.answer[2] == "exclude") { $scope.excMail.push($scope.answer[0]); } - if($scope.answer[1] == "civicrm_group" && $scope.answer[2]=="include"){ + if ($scope.answer[1] == "civicrm_group" && $scope.answer[2] == "include") { $scope.incGrp.push($scope.answer[0]); } - else if($scope.answer[1] == "civicrm_group" && $scope.answer[2]=="exclude"){ + else if ($scope.answer[1] == "civicrm_group" && $scope.answer[2] == "exclude") { $scope.excGrp.push($scope.answer[0]); } } //deletes existing mailing groups of that id if ($scope.mailid != null) { for (var a in $scope.mailid) { - var result_2= crmApi('MailingGroup', 'delete', { + var result_2 = crmApi('MailingGroup', 'delete', { id: $scope.mailid[a] }); } } var result = crmApi('Mailing', 'create', { - id: $scope.currentMailing.id, - name: $scope.currentMailing.name, - visibility: $scope.currentMailing.visibility, - created_id: $scope.currentMailing.created_id, - subject: $scope.currentMailing.subject, - msg_template_id: $scope.currentMailing.msg_template_id==null ? "" : $scope.currentMailing.msg_template_id, - open_tracking: $scope.currentMailing.open_tracking, - url_tracking: $scope.currentMailing.url_tracking, - forward_replies: $scope.currentMailing.forward_replies, - auto_responder: $scope.currentMailing.auto_responder, - from_name: $scope.currentMailing.from_name, - from_email: $scope.currentMailing.from_email, - replyto_email: $scope.currentMailing.replyto_email, - unsubscribe_id: $scope.currentMailing.unsubscribe_id, - resubscribe_id: $scope.currentMailing.resubscribe_id, - body_html: $scope.currentMailing.body_html, - body_text: $scope.currentMailing.body_text, - campaign_id: $scope.currentMailing.campaign_id==null ? "" : $scope.currentMailing.campaign_id, - header_id: $scope.currentMailing.header_id, - footer_id: $scope.currentMailing.footer_id, - groups: {include: $scope.incGrp, - exclude: $scope.excGrp - }, - mailings: {include: $scope.incMail, - exclude: $scope.excMail - }, - is_completed: $scope.currentMailing.is_completed, - dedupe_email: $scope.currentMailing.dedupe_email + id: $scope.currentMailing.id, + name: $scope.currentMailing.name, + visibility: $scope.currentMailing.visibility, + created_id: $scope.currentMailing.created_id, + subject: $scope.currentMailing.subject, + msg_template_id: $scope.currentMailing.msg_template_id == null ? "" : $scope.currentMailing.msg_template_id, + open_tracking: $scope.currentMailing.open_tracking, + url_tracking: $scope.currentMailing.url_tracking, + forward_replies: $scope.currentMailing.forward_replies, + auto_responder: $scope.currentMailing.auto_responder, + from_name: $scope.currentMailing.from_name, + from_email: $scope.currentMailing.from_email, + replyto_email: $scope.currentMailing.replyto_email, + unsubscribe_id: $scope.currentMailing.unsubscribe_id, + resubscribe_id: $scope.currentMailing.resubscribe_id, + body_html: $scope.currentMailing.body_html, + body_text: $scope.currentMailing.body_text, + campaign_id: $scope.currentMailing.campaign_id == null ? "" : $scope.currentMailing.campaign_id, + header_id: $scope.currentMailing.header_id, + footer_id: $scope.currentMailing.footer_id, + groups: {include: $scope.incGrp, + exclude: $scope.excGrp }, - true); + mailings: {include: $scope.incMail, + exclude: $scope.excMail + }, + is_completed: $scope.currentMailing.is_completed, + dedupe_email: $scope.currentMailing.dedupe_email + }, + true); //var result = crmApi('Mailing', 'create', $scope.currentMailing, true); - result.success(function(data) { + result.success(function (data) { if (data.is_error == 0) { $scope.currentMailing.id = data.id; $scope.mailingGroup(); @@ -454,87 +454,88 @@ }); }; //in second page save neither groups or schedule date information. - $scope.save_next_page2 = function() { + $scope.save_next_page2 = function () { $scope.save_repeat(); var result = crmApi('Mailing', 'create', { - id: $scope.currentMailing.id, - name: $scope.currentMailing.name, - visibility: $scope.currentMailing.visibility, - created_id: $scope.currentMailing.created_id, - subject: $scope.currentMailing.subject, - msg_template_id: $scope.currentMailing.msg_template_id==null ? "" : $scope.currentMailing.msg_template_id, - open_tracking: $scope.currentMailing.open_tracking, - url_tracking: $scope.currentMailing.url_tracking, - forward_replies: $scope.currentMailing.forward_replies, - auto_responder: $scope.currentMailing.auto_responder, - from_name: $scope.currentMailing.from_name, - from_email: $scope.currentMailing.from_email, - replyto_email: $scope.currentMailing.replyto_email, - unsubscribe_id: $scope.currentMailing.unsubscribe_id, - resubscribe_id: $scope.currentMailing.resubscribe_id, - body_html: $scope.currentMailing.body_html, - body_text: $scope.currentMailing.body_text, - campaign_id: $scope.currentMailing.campaign_id==null ? "" : $scope.currentMailing.campaign_id, - header_id: $scope.currentMailing.header_id, - footer_id: $scope.currentMailing.footer_id, - is_completed: $scope.currentMailing.is_completed, - dedupe_email: $scope.currentMailing.dedupe_email - }, - true); + id: $scope.currentMailing.id, + name: $scope.currentMailing.name, + visibility: $scope.currentMailing.visibility, + created_id: $scope.currentMailing.created_id, + subject: $scope.currentMailing.subject, + msg_template_id: $scope.currentMailing.msg_template_id == null ? "" : $scope.currentMailing.msg_template_id, + open_tracking: $scope.currentMailing.open_tracking, + url_tracking: $scope.currentMailing.url_tracking, + forward_replies: $scope.currentMailing.forward_replies, + auto_responder: $scope.currentMailing.auto_responder, + from_name: $scope.currentMailing.from_name, + from_email: $scope.currentMailing.from_email, + replyto_email: $scope.currentMailing.replyto_email, + unsubscribe_id: $scope.currentMailing.unsubscribe_id, + resubscribe_id: $scope.currentMailing.resubscribe_id, + body_html: $scope.currentMailing.body_html, + body_text: $scope.currentMailing.body_text, + campaign_id: $scope.currentMailing.campaign_id == null ? "" : $scope.currentMailing.campaign_id, + header_id: $scope.currentMailing.header_id, + footer_id: $scope.currentMailing.footer_id, + is_completed: $scope.currentMailing.is_completed, + dedupe_email: $scope.currentMailing.dedupe_email + }, + true); //var result = crmApi('Mailing', 'create', $scope.currentMailing, true); - result.success(function(data) { + result.success(function (data) { if (data.is_error == 0) { $scope.currentMailing.id = data.id; } }); }; //save scheduling information and not groups - $scope.save_next_page3 = function() { + $scope.save_next_page3 = function () { $scope.save_repeat(); if ($scope.currentMailing.scheduled_date == $scope.currentMailing.approval_date - && $scope.currentMailing.scheduled_date != null) {; + && $scope.currentMailing.scheduled_date != null) { + ; } else { - $scope.currentMailing.scheduled_date= $scope.scheddate.date + " " + $scope.scheddate.time ; - if ($scope.currentMailing.scheduled_date!=" ") { - $scope.currentMailing.scheduled_id= $scope.user_id; + $scope.currentMailing.scheduled_date = $scope.scheddate.date + " " + $scope.scheddate.time; + if ($scope.currentMailing.scheduled_date != " ") { + $scope.currentMailing.scheduled_id = $scope.user_id; } else { - $scope.currentMailing.scheduled_date= null; + $scope.currentMailing.scheduled_date = null; } } var result = crmApi('Mailing', 'create', { - id: $scope.currentMailing.id, - name: $scope.currentMailing.name, - visibility: $scope.currentMailing.visibility, - created_id: $scope.currentMailing.created_id, - subject: $scope.currentMailing.subject, - msg_template_id: $scope.currentMailing.msg_template_id==null ? "" : $scope.currentMailing.msg_template_id, - open_tracking: $scope.currentMailing.open_tracking, - url_tracking: $scope.currentMailing.url_tracking, - forward_replies: $scope.currentMailing.forward_replies, - auto_responder: $scope.currentMailing.auto_responder, - from_name: $scope.currentMailing.from_name, - from_email: $scope.currentMailing.from_email, - replyto_email: $scope.currentMailing.replyto_email, - unsubscribe_id: $scope.currentMailing.unsubscribe_id, - resubscribe_id: $scope.currentMailing.resubscribe_id, - body_html: $scope.currentMailing.body_html, - body_text: $scope.currentMailing.body_text, - scheduled_date: $scope.currentMailing.scheduled_date==null ? "" : $scope.currentMailing.scheduled_date, - scheduled_id: $scope.currentMailing.scheduled_id==null ? "" : $scope.currentMailing.scheduled_id, - campaign_id: $scope.currentMailing.campaign_id==null ? "" : $scope.currentMailing.campaign_id, - header_id: $scope.currentMailing.header_id, - footer_id: $scope.currentMailing.footer_id, - is_completed: $scope.currentMailing.is_completed, - approver_id: $scope.currentMailing.approver_id, - approval_status_id: $scope.currentMailing.approval_status_id, - approval_date: $scope.currentMailing.approval_date, - dedupe_email: $scope.currentMailing.dedupe_email - }, - true); + id: $scope.currentMailing.id, + name: $scope.currentMailing.name, + visibility: $scope.currentMailing.visibility, + created_id: $scope.currentMailing.created_id, + subject: $scope.currentMailing.subject, + msg_template_id: $scope.currentMailing.msg_template_id == null ? "" : $scope.currentMailing.msg_template_id, + open_tracking: $scope.currentMailing.open_tracking, + url_tracking: $scope.currentMailing.url_tracking, + forward_replies: $scope.currentMailing.forward_replies, + auto_responder: $scope.currentMailing.auto_responder, + from_name: $scope.currentMailing.from_name, + from_email: $scope.currentMailing.from_email, + replyto_email: $scope.currentMailing.replyto_email, + unsubscribe_id: $scope.currentMailing.unsubscribe_id, + resubscribe_id: $scope.currentMailing.resubscribe_id, + body_html: $scope.currentMailing.body_html, + body_text: $scope.currentMailing.body_text, + scheduled_date: $scope.currentMailing.scheduled_date == null ? "" : $scope.currentMailing.scheduled_date, + scheduled_id: $scope.currentMailing.scheduled_id == null ? "" : $scope.currentMailing.scheduled_id, + campaign_id: $scope.currentMailing.campaign_id == null ? "" : $scope.currentMailing.campaign_id, + header_id: $scope.currentMailing.header_id, + footer_id: $scope.currentMailing.footer_id, + is_completed: $scope.currentMailing.is_completed, + approver_id: $scope.currentMailing.approver_id, + approval_status_id: $scope.currentMailing.approval_status_id, + approval_date: $scope.currentMailing.approval_date, + dedupe_email: $scope.currentMailing.dedupe_email + }, + true); //var result = crmApi('Mailing', 'create', $scope.currentMailing, true); - result.success(function(data) { + result.success(function (data) { if (data.is_error == 0) { $scope.currentMailing.id = data.id; } @@ -542,18 +543,18 @@ }; //call save of page2 and go to listing page - $scope.save = function() { + $scope.save = function () { $scope.save_next_page2(); $scope.back(); }; //call save of page1 and go to listing page - $scope.save_page1 = function() { + $scope.save_page1 = function () { $scope.save_next_page1(); $scope.back(); }; //if we save on page one, subject isnt defined. so we equate it to mailing name for now so we can save - $scope.save_next_page1 = function() { - if($scope.currentMailing.id == null){ + $scope.save_next_page1 = function () { + if ($scope.currentMailing.id == null) { $scope.currentMailing.subject = $scope.currentMailing.name; $scope.save_next(); } @@ -564,34 +565,34 @@ }; //set approval date to current time, also schedule date based on send immediately or not. then call 3rd page save //go back to listing page - $scope.submitButton= function(){ + $scope.submitButton = function () { $scope.currentMailing.approval_status_id = "1"; $scope.currentMailing.approver_id = $scope.user_id; var currentdate = new Date(); var yyyy = currentdate.getFullYear(); var mm = currentdate.getMonth() + 1; - mm = mm<10 ? '0' + mm : mm; + mm = mm < 10 ? '0' + mm : mm; var dd = currentdate.getDate(); - dd = dd<10 ? '0' + dd : dd; + dd = dd < 10 ? '0' + dd : dd; var hh = currentdate.getHours(); - hh = hh<10 ? '0' + hh : hh; + hh = hh < 10 ? '0' + hh : hh; var min = currentdate.getMinutes(); - min = min<10 ? '0' + min : min; + min = min < 10 ? '0' + min : min; var sec = currentdate.getSeconds(); - sec = sec<10 ? '0' + sec : sec; - $scope.currentMailing.approval_date = yyyy + "/"+ mm - + "/" + dd + " " - + hh + ":" - + min + ":" + sec; - if($scope.now == 1){ + sec = sec < 10 ? '0' + sec : sec; + $scope.currentMailing.approval_date = yyyy + "/" + mm + + "/" + dd + " " + + hh + ":" + + min + ":" + sec; + if ($scope.now == 1) { $scope.currentMailing.scheduled_date = $scope.currentMailing.approval_date; } $scope.save_next_page3(); $scope.back(); }; //we use this to open the preview modal based on value of pre - $scope.$watch('pre',function(){ - if($scope.pre==true){ + $scope.$watch('pre', function () { + if ($scope.pre == true) { $('#prevmail').dialog({ title: 'Preview Mailing', width: 1080, @@ -599,40 +600,41 @@ closed: false, cache: false, modal: true, - close :function(){ - $scope.pre = false; $scope.$apply(); + close: function () { + $scope.pre = false; + $scope.$apply(); } }); } - },true); + }, true); //send test api called to send the test - $scope.sendTest = function(){ - var resulta =crmApi('Mailing','send_test',{test_email:$scope.testMailing.name, test_group:$scope.testMailing.group, - mailing_id:$scope.currentMailing.id}); + $scope.sendTest = function () { + var resulta = crmApi('Mailing', 'send_test', {test_email: $scope.testMailing.name, test_group: $scope.testMailing.group, + mailing_id: $scope.currentMailing.id}); }; }); // Directive to go to the next tab - crmMailing.directive('nexttab', function() { + crmMailing.directive('nexttab', function () { return { restrict: 'A', - link: function(scope, element, attrs) { + link: function (scope, element, attrs) { var tabselector = $(".crmMailingTabs"); - var myarr = new Array(1,2); - if(scope.currentMailing.id==null){ - tabselector.tabs({disabled:myarr}); + var myarr = new Array(1, 2); + if (scope.currentMailing.id == null) { + tabselector.tabs({disabled: myarr}); } - $(element).on("click",function() { + $(element).on("click", function () { scope.tabupdate(); var myArray1 = new Array( ); scope.$apply(); - for ( var i = scope.maxtab + 1; i < 3; i++ ) { - myArray1.push(i); + for (var i = scope.maxtab + 1; i < 3; i++) { + myArray1.push(i); } - tabselector.tabs( "option", "disabled", myArray1 ); - tabselector.tabs({active:scope.tabact}); + tabselector.tabs("option", "disabled", myArray1); + tabselector.tabs({active: scope.tabact}); scope.$apply(); }); } @@ -640,17 +642,17 @@ }); // Directive to go to the previous tab - crmMailing.directive('prevtab', function() { + crmMailing.directive('prevtab', function () { return { restrict: 'A', - link: function(scope, element, attrs) { + link: function (scope, element, attrs) { var tabselector = $(".crmMailingTabs"); tabselector.tabs(); - $(element).on("click",function() { + $(element).on("click", function () { scope.prevtabupdate(); scope.$apply(); var myArray1 = new Array( ); - tabselector.tabs({active:scope.tabact}); + tabselector.tabs({active: scope.tabact}); }); } }; @@ -658,53 +660,55 @@ // Select 2 Widget for selecting the included group - crmMailing.directive('chsgroup',function(){ + crmMailing.directive('chsgroup', function () { return { - restrict : 'AE', - link: function(scope,element, attrs){ + restrict: 'AE', + link: function (scope, element, attrs) { function format(item) { - if(!item.id) { + if (!item.id) { // return `text` for optgroup return item.text; } // return item template var a = item.id.split(" "); - if(a[1]=="civicrm_group" && a[2]=="include") + if (a[1] == "civicrm_group" && a[2] == "include") return "" + " " + "" + item.text; - if(a[1]=="civicrm_group" && a[2]=="exclude") + if (a[1] == "civicrm_group" && a[2] == "exclude") return "" + " " + "" + item.text; - if(a[1]=="civicrm_mailing" && a[2]=="include") - return "" + " " + "" + item.text; - if(a[1]=="civicrm_mailing" && a[2]=="exclude") + if (a[1] == "civicrm_mailing" && a[2] == "include") + return "" + " " + "" + item.text; + if (a[1] == "civicrm_mailing" && a[2] == "exclude") return "" + " " + "" + item.text; } $(element).select2({ - width:"400px", + width: "400px", placeholder: "Choose Recipients", formatResult: format, formatSelection: format, - escapeMarkup: function(m) { return m; }, + escapeMarkup: function (m) { + return m; + }, }).select2("data", scope.incGroup); - $(element).on("select2-opening", function(){ - scope.incGroup=chck; + $(element).on("select2-opening", function () { + scope.incGroup = chck; scope.$apply(); }); - $(element).on('select2-selecting', function(e) { + $(element).on('select2-selecting', function (e) { chck.push(e.val); - scope.incGroup=chck; + scope.incGroup = chck; scope.$apply(); }); - $(element).on("select2-removed", function(e) { + $(element).on("select2-removed", function (e) { var index = chck.indexOf(e.val); chck.splice(index, 1); - scope.incGroup=chck; + scope.incGroup = chck; scope.$apply(); }); @@ -712,43 +716,43 @@ }; }); //used for tokens select2 widget - crmMailing.directive('groupselect',function(){ + crmMailing.directive('groupselect', function () { return { - restrict : 'AE', - link: function(scope,element, attrs){ - $(element).select2({width:"200px", data: mltokens, placeholder:"Insert Token"}); - $(element).on('select2-selecting', function(e) { + restrict: 'AE', + link: function (scope, element, attrs) { + $(element).select2({width: "200px", data: mltokens, placeholder: "Insert Token"}); + $(element).on('select2-selecting', function (e) { scope.$evalAsync('_resetSelection()'); var a = $(element).attr('id'); - if(a=="htgroup"){ - if(scope.currentMailing.body_html =="" || scope.currentMailing.body_html == null) + if (a == "htgroup") { + if (scope.currentMailing.body_html == "" || scope.currentMailing.body_html == null) scope.currentMailing.body_html = e.val; else scope.currentMailing.body_html += e.val; } - else if(a=="subgroup"){ + else if (a == "subgroup") { var msg = document.getElementById("sub").value; var cursorlen = document.getElementById("sub").selectionStart; - var textlen = msg.length; + var textlen = msg.length; document.getElementById("sub").value = msg.substring(0, cursorlen) + e.val + msg.substring(cursorlen, textlen); scope.currentMailing.subject = msg.substring(0, cursorlen) + e.val + msg.substring(cursorlen, textlen); var cursorPos = (cursorlen + e.val.length); document.getElementById("sub").selectionStart = cursorPos; - document.getElementById("sub").selectionEnd = cursorPos; + document.getElementById("sub").selectionEnd = cursorPos; document.getElementById("sub").focus(); } - else if(a=="textgroup"){ - var msg = document.getElementById("body_text").value; - var cursorlen = document.getElementById("body_text").selectionStart; - var textlen = msg.length; - document.getElementById("body_text").value = msg.substring(0, cursorlen) + e.val + msg.substring(cursorlen, textlen); - scope.currentMailing.body_text = msg.substring(0, cursorlen) + e.val + msg.substring(cursorlen, textlen); - var cursorPos = (cursorlen + e.val.length); - document.getElementById("body_text").selectionStart = cursorPos; - document.getElementById("body_text").selectionEnd = cursorPos; - document.getElementById("body_text").focus(); - } + else if (a == "textgroup") { + var msg = document.getElementById("body_text").value; + var cursorlen = document.getElementById("body_text").selectionStart; + var textlen = msg.length; + document.getElementById("body_text").value = msg.substring(0, cursorlen) + e.val + msg.substring(cursorlen, textlen); + scope.currentMailing.body_text = msg.substring(0, cursorlen) + e.val + msg.substring(cursorlen, textlen); + var cursorPos = (cursorlen + e.val.length); + document.getElementById("body_text").selectionStart = cursorPos; + document.getElementById("body_text").selectionEnd = cursorPos; + document.getElementById("body_text").focus(); + } scope.$apply(); e.preventDefault(); }) @@ -757,21 +761,22 @@ }); //ckeditor directive - crmMailing.directive('ckedit', function() { + crmMailing.directive('ckedit', function () { return { require: '?ngModel', - link: function(scope, elm, attr, ngModel) { + link: function (scope, elm, attr, ngModel) { var ck = CKEDITOR.replace(elm[0]); - if (!ngModel) return; + if (!ngModel) + return; - ck.on('pasteState', function() { - scope.$apply(function() { + ck.on('pasteState', function () { + scope.$apply(function () { ngModel.$setViewValue(ck.getData()); }); }); - ngModel.$render = function(value) { + ngModel.$render = function (value) { ck.setData(ngModel.$viewValue); }; } @@ -779,15 +784,15 @@ }); // Used for the select date option. This is used for giving scheduled_date its date value - crmMailing.directive('chsdate',function(){ + crmMailing.directive('chsdate', function () { return { restrict: 'AE', - link: function(scope,element,attrs){ + link: function (scope, element, attrs) { $(element).datepicker({ dateFormat: "yy-mm-dd", - onSelect: function(date) { + onSelect: function (date) { $(".ui-datepicker a").removeAttr("href"); - scope.scheddate.date=date.toString(); + scope.scheddate.date = date.toString(); scope.$apply(); } }); @@ -795,13 +800,13 @@ }; }); //used for file upload - crmMailing.directive('file', function(){ + crmMailing.directive('file', function () { return { scope: { file: '=' }, - link: function(scope, el, attrs){ - el.bind('change', function(event){ + link: function (scope, el, attrs) { + el.bind('change', function (event) { var files = event.target.files; var file = files[0]; scope.file = file ? file : undefined; @@ -811,28 +816,28 @@ }; }); //used to insert the time entry - crmMailing.directive('checktimeentry',function(){ + crmMailing.directive('checktimeentry', function () { return { - restrict :'AE', + restrict: 'AE', link: function (scope, element, attrs) { - $(element).timeEntry({show24Hours:true}); + $(element).timeEntry({show24Hours: true}); } } }); - //This controller is used for creating the mailing list. Simply gets all the mailing data from civiAPI - crmMailing.controller('mailingListCtrl', function($scope, crmApi, mailingList, $route) { + //This controller is used for creating the mailing list. Simply gets all the mailing data from civiAPI + crmMailing.controller('mailingListCtrl', function ($scope, crmApi, mailingList, $route) { if (global == 0) { global = global + 1; $route.reload(); } $scope.mailingList = mailingList.values; - $scope.checkEmpty = function(){ - if($scope.mailingList == "") - return true; - else - return false; + $scope.checkEmpty = function () { + if ($scope.mailingList == "") + return true; + else + return false; } $scope.deleteMail = function (mail) { crmApi('Mailing', 'delete', {id: mail.id}, { @@ -840,17 +845,17 @@ CRM.alert(data.error_message, ts('Error')); } }) - .then(function (data) { - if (!data.is_error) { - delete mailingList.values[mail.id]; - $scope.$digest(); - $route.reload(); - } - }); + .then(function (data) { + if (!data.is_error) { + delete mailingList.values[mail.id]; + $scope.$digest(); + $route.reload(); + } + }); }; - $scope.edit = function (){ + $scope.edit = function () { global = global - 1; }; -- 2.25.1