1 (function(angular
, $, _
) {
3 angular
.module('crmMailing').controller('ViewRecipCtrl', function ViewRecipCtrl($scope
) {
11 function getGroupNames(mailing
) {
12 if (-1 == mailings
.indexOf(mailing
.id
)) {
13 mailings
.push(mailing
.id
);
14 _
.each(mailing
.recipients
.groups
.include
, function(id
) {
15 if (-1 == gids
.indexOf(id
)) {
19 _
.each(mailing
.recipients
.groups
.exclude
, function(id
) {
20 if (-1 == gids
.indexOf(id
)) {
24 _
.each(mailing
.recipients
.groups
.base
, function(id
) {
25 if (-1 == gids
.indexOf(id
)) {
29 if (!_
.isEmpty(gids
)) {
30 CRM
.api3('Group', 'get', {'id': {"IN": gids
}}).then(function(result
) {
31 _
.each(result
.values
, function(grp
) {
32 if (_
.isEmpty(_
.where(groupNames
, {id
: parseInt(grp
.id
)}))) {
33 groupNames
.push({id
: parseInt(grp
.id
), title
: grp
.title
, is_hidden
: grp
.is_hidden
});
36 CRM
.crmMailing
.groupNames
= groupNames
;
37 $scope
.$parent
.crmMailingConst
.groupNames
= groupNames
;
43 function getCiviMails(mailing
) {
44 if (-1 == civimailings
.indexOf(mailing
.id
)) {
45 civimailings
.push(mailing
.id
);
46 _
.each(mailing
.recipients
.mailings
.include
, function(id
) {
47 if (-1 == mids
.indexOf(id
)) {
51 _
.each(mailing
.recipients
.mailings
.exclude
, function(id
) {
52 if (-1 == mids
.indexOf(id
)) {
56 if (!_
.isEmpty(mids
)) {
57 CRM
.api3('Mailing', 'get', {'id': {"IN": mids
}}).then(function(result
) {
58 _
.each(result
.values
, function(mail
) {
59 if (_
.isEmpty(_
.where(civimails
, {id
: parseInt(mail
.id
)}))) {
60 civimails
.push({id
: parseInt(mail
.id
), name
: mail
.label
});
63 CRM
.crmMailing
.civiMails
= civimails
;
64 $scope
.$parent
.crmMailingConst
.civiMails
= civimails
;
70 $scope
.getIncludesAsString = function(mailing
) {
73 if (_
.isEmpty(CRM
.crmMailing
.groupNames
)) {
74 getGroupNames(mailing
);
76 if (_
.isEmpty(CRM
.crmMailing
.civiMails
)) {
77 getCiviMails(mailing
);
79 _
.each(mailing
.recipients
.groups
.include
, function(id
) {
80 var group
= _
.where(CRM
.crmMailing
.groupNames
, {id
: parseInt(id
)});
85 names
= names
+ group
[0].title
;
89 _
.each(mailing
.recipients
.mailings
.include
, function(id
) {
90 var oldMailing
= _
.where(CRM
.crmMailing
.civiMails
, {id
: parseInt(id
)});
91 if (oldMailing
.length
) {
95 names
= names
+ oldMailing
[0].name
;
101 $scope
.getExcludesAsString = function(mailing
) {
104 _
.each(mailing
.recipients
.groups
.exclude
, function(id
) {
105 var group
= _
.where(CRM
.crmMailing
.groupNames
, {id
: parseInt(id
)});
108 names
= names
+ ', ';
110 names
= names
+ group
[0].title
;
114 _
.each(mailing
.recipients
.mailings
.exclude
, function(id
) {
115 var oldMailing
= _
.where(CRM
.crmMailing
.civiMails
, {id
: parseInt(id
)});
116 if (oldMailing
.length
) {
118 names
= names
+ ', ';
120 names
= names
+ oldMailing
[0].name
;
128 })(angular
, CRM
.$, CRM
._
);