diff --git a/src/js/client.js b/src/js/client.js index d9c138f24..68c848db4 100644 --- a/src/js/client.js +++ b/src/js/client.js @@ -2140,16 +2140,7 @@ angular.module('Application').service('Client', ['$http', '$interval', '$timeout }); }; - Client.prototype.listAliases = function (domain, callback) { - get('/api/v1/mail/' + domain + '/aliases', null, function (error, data, status) { - if (error) return callback(error); - if (status !== 200) return callback(new ClientError(status, data)); - - callback(null, data.aliases); - }); - }; - - Client.prototype.getAliases = function (domain, name, callback) { + Client.prototype.getAliases = function (name, domain, callback) { var config = { params: { page: 1, @@ -2157,7 +2148,7 @@ angular.module('Application').service('Client', ['$http', '$interval', '$timeout } }; - get('/api/v1/mail/' + domain + '/aliases/' + name, config, function (error, data, status) { + get('/api/v1/mail/' + domain + '/mailboxes/' + name + '/aliases', config, function (error, data, status) { if (error) return callback(error); if (status !== 200) return callback(new ClientError(status, data)); @@ -2165,12 +2156,12 @@ angular.module('Application').service('Client', ['$http', '$interval', '$timeout }); }; - Client.prototype.setAliases = function (domain, name, aliases, callback) { + Client.prototype.setAliases = function (name, domain, aliases, callback) { var data = { aliases: aliases }; - put('/api/v1/mail/' + domain + '/aliases/' + name, data, null, function (error, data, status) { + put('/api/v1/mail/' + domain + '/mailboxes/' + name + '/aliases', data, null, function (error, data, status) { if (error) return callback(error); if (status !== 202) return callback(new ClientError(status, data)); diff --git a/src/views/email.js b/src/views/email.js index cae90b107..891f04976 100644 --- a/src/views/email.js +++ b/src/views/email.js @@ -353,7 +353,7 @@ angular.module('Application').controller('EmailController', ['$scope', '$locatio return; } - Client.setAliases($scope.domain.domain, $scope.mailboxes.edit.name, $scope.mailboxes.edit.aliases, function (error) { + Client.setAliases($scope.mailboxes.edit.name, $scope.domain.domain, $scope.mailboxes.edit.aliases, function (error) { if (error) { $scope.mailboxes.edit.error = error; $scope.mailboxes.edit.busy = false; @@ -408,16 +408,19 @@ angular.module('Application').controller('EmailController', ['$scope', '$locatio Client.getMailboxes($scope.domain.domain, function (error, mailboxes) { if (error) return callback(error); - Client.listAliases($scope.domain.domain, function (error, aliases) { - if (error) return callback(error); + $scope.mailboxes.mailboxes = mailboxes; - $scope.mailboxes.mailboxes = mailboxes.map(function (m) { - 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 }; }); + asyncForEach(mailboxes, function (m, iteratorCallback) { + Client.getAliases(m.name, m.domain, function (error, aliases) { + if (error) return iteratorCallback(error); + + m.aliases = aliases; 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 - - return m; + iteratorCallback(); }); + }, function iteratorDone(error) { + if (error) return callback(error); Client.getMailUsage($scope.domain.domain, function (error, usage) { if (error) return callback(error);