Move mailbox edit to dialog

This commit is contained in:
Johannes Zellner
2018-04-09 12:42:14 +02:00
parent 72a1e0d5ca
commit 69f6895bd6
2 changed files with 74 additions and 0 deletions
+33
View File
@@ -23,6 +23,38 @@
</div>
</div>
<!-- Modal edit mailbox -->
<div class="modal fade" id="mailboxEditModal" tabindex="-1" role="dialog">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h4 class="modal-title">Edit mailbox {{ mailboxes.edit.name }}@{{selectedDomain.domain}}</h4>
</div>
<div class="modal-body">
<form name="mailboxedit_form" role="form" ng-submit="mailboxes.edit.submit()" autocomplete="off">
<input type="password" style="display: none;">
<div class="form-group">
<label class="control-label">Mailbox Owner</label>
<select class="form-control" ng-model="mailboxes.edit.mailbox.owner" ng-options="u.display for u in users track by u.id"></select>
</div>
<div class="form-group" ng-class="{ 'has-error': mailboxes.edit.error }">
<label class="control-label">Aliases</label>
<div class="control-label" ng-show="mailboxes.edit.error">
<small>{{ mailboxes.edit.error }}</small>
</div>
<tag-input placeholder="add alias" taglist="mailboxes.edit.mailbox.aliases" name="aliases"></tag-input>
</div>
<input class="hide" type="submit" ng-disabled="mailboxedit_form.$invalid || mailboxes.edit.busy"/>
</form>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Cancel</button>
<button type="button" class="btn btn-success" ng-click="mailboxes.edit.submit()" ng-disabled="mailboxedit_form.$invalid || mailboxes.edit.busy"><i class="fa fa-circle-o-notch fa-spin" ng-show="mailboxes.edit.busy"></i> Save</button>
</div>
</div>
</div>
</div>
<!-- Modal remove mailbox -->
<div class="modal fade" id="mailboxRemoveModal" tabindex="-1" role="dialog">
<div class="modal-dialog">
@@ -171,6 +203,7 @@
</td>
<td class="text-right no-wrap">
<button ng-show="mailbox.owner !== mailbox.orig.owner || mailbox.aliases !== mailbox.orig.aliases" class="btn btn-success" ng-disabled="mailbox.busy" ng-click="mailboxes.submit(mailbox)"><i class="fa" ng-class="{ 'fa-spin': mailbox.busy, 'fa-circle-o-notch': mailbox.busy, 'fa-check': !mailbox.busy }"></i></button>
<button class="btn btn-default" ng-click="mailboxes.edit.show(mailbox)"><i class="fa fa-pencil"></i></button>
<button class="btn btn-danger" ng-click="mailboxes.remove.show(mailbox)"><i class="fa fa-trash"></i></button>
</td>
</tr>
+41
View File
@@ -204,6 +204,47 @@ angular.module('Application').controller('EmailController', ['$scope', '$locatio
}
},
edit: {
busy: false,
error: null,
mailbox: null,
show: function (mailbox) {
$scope.mailboxes.edit.mailbox = mailbox;
$('#mailboxEditModal').modal('show');
},
submit: function () {
$scope.mailboxes.remove.busy = true;
Client.updateMailbox($scope.selectedDomain.domain, $scope.mailboxes.edit.mailbox.name, $scope.mailboxes.edit.mailbox.owner.id, function (error) {
if (error) {
$scope.mailboxes.edit.error = error;
$scope.mailboxes.edit.busy = false;
return;
}
var aliases = $scope.mailboxes.edit.mailbox.aliases.split(',').map(function (a) { return a.trim(); }).filter(function (a) { return !!a; });
Client.setAliases($scope.selectedDomain.domain, $scope.mailboxes.edit.mailbox.name, aliases, function (error) {
if (error) {
$scope.mailboxes.edit.error = error;
$scope.mailboxes.edit.busy = false;
return;
}
$scope.mailboxes.edit.busy = false;
$scope.mailboxes.edit.error = null;
$scope.mailboxes.edit.mailbox = null;
$scope.mailboxes.refresh();
$('#mailboxEditModal').modal('hide');
});
});
}
},
remove: {
busy: false,
mailbox: null,