summaryrefslogtreecommitdiff
path: root/www/crm/wp-content/plugins/civicrm/civicrm/ang/crmMailing.js
blob: 95148bf27b3fd56d83831864ee30802b7d5bc030 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
(function (angular, $, _) {

  angular.module('crmMailing', CRM.angRequires('crmMailing'));

  angular.module('crmMailing').config([
    '$routeProvider',
    function ($routeProvider) {
      $routeProvider.when('/mailing', {
        template: '<div></div>',
        controller: 'ListMailingsCtrl'
      });

      if (!CRM || !CRM.crmMailing) {
        return;
      }

      $routeProvider.when('/mailing/new', {
        template: '<p>' + ts('Initializing...') + '</p>',
        controller: 'CreateMailingCtrl',
        resolve: {
          selectedMail: function(crmMailingMgr) {
            var m = crmMailingMgr.create({
              template_type: CRM.crmMailing.templateTypes[0].name
            });
            return crmMailingMgr.save(m);
          }
        }
      });

      $routeProvider.when('/mailing/new/:templateType', {
        template: '<p>' + ts('Initializing...') + '</p>',
        controller: 'CreateMailingCtrl',
        resolve: {
          selectedMail: function($route, crmMailingMgr) {
            var m = crmMailingMgr.create({
              template_type: $route.current.params.templateType
            });
            return crmMailingMgr.save(m);
          }
        }
      });

      $routeProvider.when('/mailing/:id', {
        templateUrl: '~/crmMailing/EditMailingCtrl/base.html',
        controller: 'EditMailingCtrl',
        resolve: {
          selectedMail: function($route, crmMailingMgr) {
            return crmMailingMgr.get($route.current.params.id);
          },
          attachments: function($route, CrmAttachments) {
            var attachments = new CrmAttachments(function () {
              return {entity_table: 'civicrm_mailing', entity_id: $route.current.params.id};
            });
            return attachments.load();
          }
        }
      });
    }
  ]);

})(angular, CRM.$, CRM._);