From 9dcf5d8889de34daa4fbb2070e16a265c7613fb2 Mon Sep 17 00:00:00 2001 From: Siddhant Rajagopalan Date: Thu, 17 Jul 2014 23:45:43 +0530 Subject: [PATCH] mailing group api added --- CRM/Mailing/Info.php | 2 + api/v3/MailingGroup.php | 9 ++ js/angular-newMailing.js | 135 ++++++++++++++----- partials/crmMailingType/attachments.html | 2 +- partials/crmMailingType/content.html | 23 +++- partials/crmMailingType/mailingGroup.html | 10 +- partials/crmMailingType/trackandRespond.html | 6 +- 7 files changed, 146 insertions(+), 41 deletions(-) diff --git a/CRM/Mailing/Info.php b/CRM/Mailing/Info.php index 8021c26381..2e81537206 100644 --- a/CRM/Mailing/Info.php +++ b/CRM/Mailing/Info.php @@ -76,6 +76,7 @@ class CRM_Mailing_Info extends CRM_Core_Component_Info { 'return' => array("msg_html", "id", "msg_title"), 'id' => array('>' => 58), )); + $mailGrp = civicrm_api3('MailingGroup','get', array()); CRM_Core_Resources::singleton()->addSetting(array( @@ -87,6 +88,7 @@ class CRM_Mailing_Info extends CRM_Core_Component_Info { 'headerfooterList' => array_values($headerfooterList['values']), 'mesTemplate' => array_values($mesTemplate['values']), 'emailAdd' => array_values($emailAdd['values']), + 'mailGrp' => array_values($mailGrp['values']), ), )); return $result; diff --git a/api/v3/MailingGroup.php b/api/v3/MailingGroup.php index c042a393cf..5ab4923761 100644 --- a/api/v3/MailingGroup.php +++ b/api/v3/MailingGroup.php @@ -91,6 +91,15 @@ function civicrm_api3_mailing_group_event_subscribe($params) { * * @return array */ +function civicrm_api3_mailing_group_get($params) { + return _civicrm_api3_basic_get(_civicrm_api3_get_BAO(__FUNCTION__), $params); +} + + +function civicrm_api3_mailing_group_delete($params, $ids = array()) { + return _civicrm_api3_basic_delete(_civicrm_api3_get_BAO(__FUNCTION__), $params); +} + function civicrm_api3_mailing_group_getfields($params) { $dao = _civicrm_api3_get_DAO('Subscribe'); $d = new $dao(); diff --git a/js/angular-newMailing.js b/js/angular-newMailing.js index 32dc57bf90..0a9ffaaec1 100644 --- a/js/angular-newMailing.js +++ b/js/angular-newMailing.js @@ -5,8 +5,8 @@ }; var crmMailing = angular.module('crmMailing', ['ngRoute', 'ui.utils']); - var incGroup = []; - + var chck = []; //to fill the group variable $scope.incGroup + var chck2= []; // to get id and text in the required format //------------------------------------------------------------------------------------------------------- crmMailing.config(['$routeProvider', @@ -70,16 +70,66 @@ $scope.headerfooter = CRM.crmMailing.headerfooterList; $scope.eMailing = CRM.crmMailing.emailAdd; $scope.tmpList = CRM.crmMailing.mesTemplate; + $scope.mailingGrp = CRM.crmMailing.mailGrp; $scope.currentMailing = selectedMail; $scope.testGroup = ""; window.ct = $scope.currentMailing; $scope.param = {}; $scope.tst=""; + chck = []; + chck2 = []; + $scope.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; + var c = $scope.mailingGrp[a].id; + chck.push(b); + $scope.mailid.push(c); + } + } + for(var a = 0; a" + " " + "" + item.text; - if(a[1]=="group" && a[2]=="exclude") + if(a[1]=="civicrm_group" && a[2]=="exclude") return "" + " " + "" + item.text; - if(a[1]=="mail" && a[2]=="include") + if(a[1]=="civicrm_mailing" && a[2]=="include") return "" + " " + "" + item.text; - if(a[1]=="mail" && a[2]=="exclude") + if(a[1]=="civicrm_mailing" && a[2]=="exclude") return "" + " " + "" + item.text; } $(element).select2({ 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; + console.log(scope.incGroup); + scope.$apply(); + + }); + $(element).on('select2-selecting', function(e) { - incGroup.push(e.val); - console.log(incGroup); + chck.push(e.val); + scope.incGroup=chck; + scope.$apply(); + console.log(scope.incGroup); + }); + $(element).on("select2-removed", function(e) { - var index = incGroup.indexOf(e.val); - incGroup.splice(index, 1); - console.log(incGroup); + var index = chck.indexOf(e.val); + chck.splice(index, 1); + scope.incGroup=chck; + console.log(scope.incGroup); + scope.$apply(); }); + } }; }); @@ -416,8 +490,9 @@ link: function(scope, el, attrs){ el.bind('change', function(event){ var files = event.target.files; + console.log(event); var file = files[0]; - scope.file = file ? file.name : undefined; + scope.file = file ? file : undefined; scope.$apply(); }); } diff --git a/partials/crmMailingType/attachments.html b/partials/crmMailingType/attachments.html index c710671963..b652dcd731 100644 --- a/partials/crmMailingType/attachments.html +++ b/partials/crmMailingType/attachments.html @@ -4,7 +4,7 @@ Attach Files - + diff --git a/partials/crmMailingType/content.html b/partials/crmMailingType/content.html index fa12508f48..0b1ab97db4 100644 --- a/partials/crmMailingType/content.html +++ b/partials/crmMailingType/content.html @@ -51,15 +51,34 @@ Required Variables: cool_api and currentMailing and eMailing
-