CRM-15578 - crmMailing2 - Fix regression in "From Address".
[civicrm-core.git] / js / angular-crmMailing2.js
index 2c83572c71ef4a7adec96f88fbdc68d7b07a5bcb..0edf9ecd455eaa32762b413136854e462cfd83ca 100644 (file)
     });
   });
 
-  crmMailing2.controller('EditMailingCtrl', function EditMailingCtrl($scope, selectedMail, $location, crmMailingMgr, crmFromAddresses, crmStatus, CrmAttachments) {
+  crmMailing2.controller('EditMailingCtrl', function EditMailingCtrl($scope, selectedMail, $location, crmMailingMgr, crmStatus, CrmAttachments) {
     $scope.mailing = selectedMail;
     $scope.attachments = new CrmAttachments(function () {
       return {entity_table: 'civicrm_mailing', entity_id: $scope.mailing.id};
     });
+    $scope.attachments.load();
     $scope.crmMailingConst = CRM.crmMailing;
-    $scope.crmFromAddresses = crmFromAddresses;
 
     $scope.partialUrl = partialUrl;
     var ts = $scope.ts = CRM.ts('CiviMail');
         // FIXME: Angular unnecessarily refreshes UI
       }
     });
-
-    $scope.fromPlaceholder = {
-      label: crmFromAddresses.getByAuthorEmail($scope.mailing.from_name, $scope.mailing.from_email, true).label
-    };
-    $scope.$watch('fromPlaceholder.label', function (newValue) {
-      var addr = crmFromAddresses.getByLabel(newValue);
-      $scope.mailing.from_name = addr.author;
-      $scope.mailing.from_email = addr.email;
-    });
   });
 
   // Controller for the edit-recipients fields (
   });
 
   // Controller for the in-place msg-template management
-  // Scope members:
-  //  - [input] mailing: object
   crmMailing2.controller('MsgTemplateCtrl', function MsgTemplateCtrl($scope, crmMsgTemplates, dialogService, $parse) {
     var ts = $scope.ts = CRM.ts('CiviMail');
     $scope.crmMsgTemplates = crmMsgTemplates;
 
     // @return Promise MessageTemplate (per APIv3)
-    $scope.saveTemplate = function saveTemplate() {
+    $scope.saveTemplate = function saveTemplate(mailing) {
       var model = {
-        selected_id: $scope.mailing.msg_template_id,
+        selected_id: mailing.msg_template_id,
         tpl: {
           msg_title: '',
-          msg_subject: $scope.mailing.subject,
-          msg_text: $scope.mailing.body_text,
-          msg_html: $scope.mailing.body_html
+          msg_subject: mailing.subject,
+          msg_text: mailing.body_text,
+          msg_html: mailing.body_html
         }
       };
       var options = {
       };
       return dialogService.open('saveTemplateDialog', partialUrl('dialog/saveTemplate.html'), model, options)
         .then(function (item) {
-          $parse('mailing.msg_template_id').assign($scope, item.id);
+          mailing.msg_template_id = item.id;
           return item;
         });
     };
 
     // @param int id
     // @return Promise
-    $scope.loadTemplate = function loadTemplate(id) {
+    $scope.loadTemplate = function loadTemplate(mailing, id) {
       return crmMsgTemplates.get(id).then(function (tpl) {
-        $scope.mailing.subject = tpl.msg_subject;
-        $scope.mailing.body_text = tpl.msg_text;
-        $scope.mailing.body_html = tpl.msg_html;
+        mailing.subject = tpl.msg_subject;
+        mailing.body_text = tpl.msg_text;
+        mailing.body_html = tpl.msg_html;
       });
     };
   });
     setTimeout(scopeApply(init), 0);
   });
 
+  crmMailing2.controller('EmailAddrCtrl', function EmailAddrCtrl($scope, crmFromAddresses){
+    $scope.crmFromAddresses = crmFromAddresses;
+  });
+
   // Controller for schedule-editing widget.
   // Scope members:
   //  - [input] mailing: object