@@ -2,6 +2,7 @@
|
||||
|
||||
/* global angular:false */
|
||||
/* global $:false */
|
||||
/* global asyncForEach */
|
||||
|
||||
angular.module('Application').controller('EmailController', ['$scope', '$location', '$timeout', '$routeParams', 'Client', function ($scope, $location, $timeout, $routeParams, Client) {
|
||||
Client.onReady(function () { if (!Client.getUserInfo().isAtLeastAdmin) $location.path('/'); });
|
||||
@@ -16,6 +17,7 @@ angular.module('Application').controller('EmailController', ['$scope', '$locatio
|
||||
$scope.config = Client.getConfig();
|
||||
$scope.apps = Client.getInstalledApps();
|
||||
$scope.users = [];
|
||||
$scope.incomingDomains = [];
|
||||
$scope.domain = null;
|
||||
$scope.adminDomain = null;
|
||||
|
||||
@@ -315,7 +317,22 @@ angular.module('Application').controller('EmailController', ['$scope', '$locatio
|
||||
error: null,
|
||||
name: '',
|
||||
owner: null,
|
||||
aliases: '',
|
||||
incomingDomains: [],
|
||||
aliases: [],
|
||||
|
||||
addAlias: function (event) {
|
||||
event.preventDefault();
|
||||
|
||||
$scope.mailboxes.edit.aliases.push({
|
||||
name: '',
|
||||
domain: domainName
|
||||
});
|
||||
},
|
||||
|
||||
delAlias: function (event, index) {
|
||||
event.preventDefault();
|
||||
$scope.mailboxes.edit.aliases.splice(index, 1);
|
||||
},
|
||||
|
||||
show: function (mailbox) {
|
||||
$scope.mailboxes.edit.name = mailbox.name;
|
||||
@@ -336,9 +353,7 @@ angular.module('Application').controller('EmailController', ['$scope', '$locatio
|
||||
return;
|
||||
}
|
||||
|
||||
var aliases = $scope.mailboxes.edit.aliases.split(' ').map(function (a) { return a.trim(); }).filter(function (a) { return !!a; });
|
||||
|
||||
Client.setAliases($scope.domain.domain, $scope.mailboxes.edit.name, aliases, function (error) {
|
||||
Client.setAliases($scope.domain.domain, $scope.mailboxes.edit.name, $scope.mailboxes.edit.aliases, function (error) {
|
||||
if (error) {
|
||||
$scope.mailboxes.edit.error = error;
|
||||
$scope.mailboxes.edit.busy = false;
|
||||
@@ -349,7 +364,7 @@ angular.module('Application').controller('EmailController', ['$scope', '$locatio
|
||||
$scope.mailboxes.edit.error = null;
|
||||
$scope.mailboxes.edit.name = '';
|
||||
$scope.mailboxes.edit.owner = null;
|
||||
$scope.mailboxes.edit.aliases = '';
|
||||
$scope.mailboxes.edit.aliases = [];
|
||||
$scope.mailboxes.refresh();
|
||||
|
||||
$('#mailboxEditModal').modal('hide');
|
||||
@@ -397,7 +412,7 @@ angular.module('Application').controller('EmailController', ['$scope', '$locatio
|
||||
if (error) return callback(error);
|
||||
|
||||
$scope.mailboxes.mailboxes = mailboxes.map(function (m) {
|
||||
m.aliases = aliases.filter(function (a) { return a.aliasTarget === m.name; }).map(function (a) { return a.name; }).join(' ');
|
||||
m.aliases = aliases.filter(function (a) { return a.aliasName === m.name && a.aliasDomain === m.domain; }).map(function (a) { return { name: a.name, domain: a.domain }; });
|
||||
m.owner = $scope.users.find(function (u) { return u.id === m.ownerId; }); // owner may not exist
|
||||
m.ownerDisplayName = m.owner ? m.owner.display : ''; // this meta property is set when we get the user list
|
||||
|
||||
@@ -671,17 +686,22 @@ angular.module('Application').controller('EmailController', ['$scope', '$locatio
|
||||
|
||||
$scope.users = users;
|
||||
|
||||
Client.getDomain(domainName, function (error, result) {
|
||||
Client.getDomains(function (error, result) {
|
||||
if (error) return console.error('Unable to get view domain.', error);
|
||||
|
||||
$scope.domain = result;
|
||||
$scope.domain = result.filter(function (d) { return d.domain === domainName; })[0];
|
||||
$scope.adminDomain = result.filter(function (d) { return d.domain === $scope.config.adminDomain; })[0];
|
||||
$scope.refreshDomain();
|
||||
|
||||
Client.getDomain($scope.config.adminDomain, function (error, result) {
|
||||
if (error) return console.error('Unable to get admin domain.', error);
|
||||
asyncForEach(result, function (domain, iteratorDone) {
|
||||
Client.getMailConfigForDomain(domain.domain, function (error, mailConfig) {
|
||||
if (error) return console.error('Failed to fetch mail config for domain', domain.domain, error);
|
||||
|
||||
$scope.adminDomain = result;
|
||||
|
||||
$scope.refreshDomain();
|
||||
if (mailConfig.enabled) $scope.incomingDomains.push(domain);
|
||||
iteratorDone();
|
||||
});
|
||||
}, function iteratorDone(error) {
|
||||
if (error) return console.error(error);
|
||||
|
||||
$scope.ready = true;
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user