+ var mids = [];
+ var gids = [];
+ var groupNames = [];
+ var mailings = [];
+ var civimailings = [];
+ var civimails = [];
+
+ function getGroupNames(mailing) {
+ if (-1 == mailings.indexOf(mailing.id)) {
+ mailings.push(mailing.id);
+ _.each(mailing.recipients.groups.include, function(id) {
+ if (-1 == gids.indexOf(id)) {
+ gids.push(id);
+ }
+ });
+ _.each(mailing.recipients.groups.exclude, function(id) {
+ if (-1 == gids.indexOf(id)) {
+ gids.push(id);
+ }
+ });
+ _.each(mailing.recipients.groups.base, function(id) {
+ if (-1 == gids.indexOf(id)) {
+ gids.push(id);
+ }
+ });
+ if (!_.isEmpty(gids)) {
+ CRM.api3('Group', 'get', {'id': {"IN": gids}}).then(function(result) {
+ _.each(result.values, function(grp) {
+ if (_.isEmpty(_.where(groupNames, {id: parseInt(grp.id)}))) {
+ groupNames.push({id: parseInt(grp.id), title: grp.title, is_hidden: grp.is_hidden});
+ }
+ });
+ CRM.crmMailing.groupNames = groupNames;
+ $scope.$parent.crmMailingConst.groupNames = groupNames;
+ });
+ }
+ }
+ }
+
+ function getCiviMails(mailing) {
+ if (-1 == civimailings.indexOf(mailing.id)) {
+ civimailings.push(mailing.id);
+ _.each(mailing.recipients.mailings.include, function(id) {
+ if (-1 == mids.indexOf(id)) {
+ mids.push(id);
+ }
+ });
+ _.each(mailing.recipients.mailings.exclude, function(id) {
+ if (-1 == mids.indexOf(id)) {
+ mids.push(id);
+ }
+ });
+ if (!_.isEmpty(mids)) {
+ CRM.api3('Mailing', 'get', {'id': {"IN": mids}}).then(function(result) {
+ _.each(result.values, function(mail) {
+ if (_.isEmpty(_.where(civimails, {id: parseInt(mail.id)}))) {
+ civimails.push({id: parseInt(mail.id), name: mail.label});
+ }
+ });
+ CRM.crmMailing.civiMails = civimails;
+ $scope.$parent.crmMailingConst.civiMails = civimails;
+ });
+ }
+ }
+ }
+