Fix angular code to match new mailbox aliases API

This commit is contained in:
Girish Ramakrishnan
2016-09-23 17:55:21 -07:00
parent 2b1a94dc8d
commit e4e54d87f2
2 changed files with 13 additions and 47 deletions

View File

@@ -523,13 +523,6 @@ angular.module('Application').service('Client', ['$http', 'md5', 'Notification',
}).error(defaultErrorHandler(callback)); }).error(defaultErrorHandler(callback));
}; };
Client.prototype.getMailboxes = function (callback) {
get('/api/v1/mailboxes').success(function (data, status) {
if (status !== 200 || typeof data !== 'object') return callback(new ClientError(status, data));
callback(null, data.mailboxes);
}).error(defaultErrorHandler(callback));
};
Client.prototype.setGroups = function (userId, groupIds, callback) { Client.prototype.setGroups = function (userId, groupIds, callback) {
put('/api/v1/users/' + userId + '/groups', { groupIds: groupIds }).success(function (data, status) { put('/api/v1/users/' + userId + '/groups', { groupIds: groupIds }).success(function (data, status) {
if (status !== 204) return callback(new ClientError(status, data)); if (status !== 204) return callback(new ClientError(status, data));
@@ -767,39 +760,19 @@ angular.module('Application').service('Client', ['$http', 'md5', 'Notification',
}).error(defaultErrorHandler(callback)); }).error(defaultErrorHandler(callback));
}; };
Client.prototype.createMailbox = function (name, callback) { Client.prototype.getAliases = function (userId, callback) {
var data = { get('/api/v1/users/' + userId + '/aliases').success(function(data, status) {
name: name if (status !== 200) return callback(new ClientError(status, data));
}; callback(null, data.aliases);
post('/api/v1/mailboxes', data).success(function(data, status) {
if (status !== 201 || typeof data !== 'object') return callback(new ClientError(status, data));
callback(null, data);
}).error(defaultErrorHandler(callback)); }).error(defaultErrorHandler(callback));
}; };
Client.prototype.removeMailbox = function (name, callback) { Client.prototype.setAliases = function (userId, aliases, callback) {
var config = {
data: {
name: name
},
headers: {
'Content-Type': 'application/json'
}
};
del('/api/v1/mailboxes/' + name, config).success(function(data, status) {
if (status !== 204) return callback(new ClientError(status, data));
callback(null);
}).error(defaultErrorHandler(callback));
};
Client.prototype.setAliases = function (name, aliases, callback) {
var data = { var data = {
aliases: aliases aliases: aliases
}; };
put('/api/v1/mailboxes/' + name + '/aliases', data).success(function(data, status) { put('/api/v1/users/' + userId + '/aliases', data).success(function(data, status) {
if (status !== 200) return callback(new ClientError(status, data)); if (status !== 200) return callback(new ClientError(status, data));
callback(null); callback(null);
}).error(defaultErrorHandler(callback)); }).error(defaultErrorHandler(callback));

View File

@@ -8,7 +8,6 @@ angular.module('Application').controller('UsersController', ['$scope', '$locatio
$scope.groups = []; $scope.groups = [];
$scope.config = Client.getConfig(); $scope.config = Client.getConfig();
$scope.userInfo = Client.getUserInfo(); $scope.userInfo = Client.getUserInfo();
$scope.mailboxes = [];
$scope.userremove = { $scope.userremove = {
busy: false, busy: false,
@@ -243,10 +242,12 @@ angular.module('Application').controller('UsersController', ['$scope', '$locatio
$scope.useredit.superuser = userInfo.groupIds.indexOf('admin') !== -1; $scope.useredit.superuser = userInfo.groupIds.indexOf('admin') !== -1;
$scope.useredit.aliases = ''; $scope.useredit.aliases = '';
for (var i = 0; i < $scope.mailboxes.length; i++) {
if ($scope.mailboxes[i].name !== userInfo.username) continue; Client.getAliases(userInfo.id, function (error, aliases) {
$scope.useredit.aliases = $scope.mailboxes[i].aliases.join(','); if (error) console.error(error);
}
$scope.useredit.aliases = aliases.join(',');
});
$scope.useredit_form.$setPristine(); $scope.useredit_form.$setPristine();
$scope.useredit_form.$setUntouched(); $scope.useredit_form.$setUntouched();
@@ -288,7 +289,7 @@ angular.module('Application').controller('UsersController', ['$scope', '$locatio
if (error) return console.error('Unable to update groups for user:', error); if (error) return console.error('Unable to update groups for user:', error);
var aliases = $scope.useredit.aliases ? $scope.useredit.aliases.split(',') : [ ]; var aliases = $scope.useredit.aliases ? $scope.useredit.aliases.split(',') : [ ];
var setAliasesFunc = Client.setAliases.bind(null, $scope.useredit.userInfo.username, aliases); var setAliasesFunc = Client.setAliases.bind(null, $scope.useredit.userInfo.id, aliases);
// cannot set aliases without username // cannot set aliases without username
if (!$scope.useredit.userInfo.username) setAliasesFunc = function (next) { return next(); }; if (!$scope.useredit.userInfo.username) setAliasesFunc = function (next) { return next(); };
@@ -377,14 +378,6 @@ angular.module('Application').controller('UsersController', ['$scope', '$locatio
if (error) return console.error('Unable to get user listing.', error); if (error) return console.error('Unable to get user listing.', error);
$scope.users = result; $scope.users = result;
Client.getMailboxes(function (error, result) {
if (error) return console.error('Unable to get mailboxes.', error);
$scope.mailboxes = result;
$scope.ready = true;
});
}); });
}); });
} }