add ui to enable/disable mailbox sharing

This commit is contained in:
Girish Ramakrishnan
2021-12-08 11:33:36 -08:00
parent ab6c352538
commit 9cad1c19c0
3 changed files with 95 additions and 0 deletions
+35
View File
@@ -71,6 +71,35 @@
</div>
</div>
<!-- Modal change mailbox sharing -->
<div class="modal fade" id="mailboxSharingChangeModal" tabindex="-1" role="dialog">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h4 class="modal-title">{{ 'emails.mailboxSharingDialog.title' | tr }}</h4>
</div>
<div class="modal-body">
<div ng-bind-html=" 'emails.mailboxSharingDialog.description' | tr "></div>
<br>
<form name="mailboxSharingChangeForm" role="form" novalidate ng-submit="mailboxSharing.submit()" autocomplete="off">
<div class="form-group">
<div class="checkbox">
<label>
<input type="checkbox" ng-model="mailboxSharing.enable">{{ 'emails.mailboxSharing.mailboxSharingCheckbox' | tr }}</input>
</label>
</div>
</div>
<input class="ng-hide" type="submit"/>
</form>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">{{ 'main.dialog.cancel' | tr }}</button>
<button type="button" class="btn btn-success" ng-click="mailboxSharing.submit()" ng-disabled="mailboxSharing.enable === mailboxSharing.enabled"><i class="fa fa-circle-notch fa-spin" ng-show="mailboxSharing.busy"></i> {{ 'main.dialog.save' | tr }}</button>
</div>
</div>
</div>
</div>
<!-- Modal solr config -->
<div class="modal fade" id="solrConfigModal" tabindex="-1" role="dialog">
<div class="modal-dialog">
@@ -295,6 +324,12 @@
<span ng-hide="solrConfig.currentConfig.enabled">{{ 'emails.settings.solrDisabled' | tr }}</span>
<a href="" ng-click="solrConfig.show()"><i class="fa fa-edit text-small"></i></a>
</div>
<div class="col-xs-6">
<span class="text-muted">{{ 'emails.settings.mailboxSharing' | tr }}</span>
</div>
<div class="col-xs-6 text-right">
<span>{{ mailboxSharing.enabled }} <a href="" ng-click="mailboxSharing.show()"><i class="fa fa-edit text-small"></i></a></span>
</div>
</div>
<div class="row" ng-show="mailLocation.busy">
+43
View File
@@ -154,6 +154,48 @@ angular.module('Application').controller('EmailsController', ['$scope', '$locati
}
};
$scope.mailboxSharing = {
busy: false,
error: null,
size: 0,
enable: false,
enabled: false,
refresh: function () {
Client.getMailboxSharing(function (error, enabled) {
if (error) return console.error('Failed to get mailbox sharing', error);
$scope.mailboxSharing.enabled = enabled;
});
},
show: function() {
$scope.mailboxSharing.busy = false;
$scope.mailboxSharing.error = null;
$scope.mailboxSharing.enable = $scope.mailboxSharing.enabled;
$scope.mailboxSharingChangeForm.$setUntouched();
$scope.mailboxSharingChangeForm.$setPristine();
$('#mailboxSharingChangeModal').modal('show');
},
submit: function () {
$scope.mailboxSharing.busy = true;
Client.setMailboxSharing($scope.mailboxSharing.enable, function (error) {
$scope.mailboxSharing.busy = false;
if (error) return console.error(error);
$scope.mailboxSharing.enabled = $scope.mailboxSharing.enable;
$('#mailboxSharingChangeModal').modal('hide');
});
}
};
$scope.solrConfig = {
busy: false,
error: {},
@@ -412,6 +454,7 @@ angular.module('Application').controller('EmailsController', ['$scope', '$locati
if ($scope.user.isAtLeastOwner) {
$scope.mailLocation.refresh();
$scope.maxEmailSize.refresh();
$scope.mailboxSharing.refresh();
$scope.spamConfig.refresh();
$scope.solrConfig.refresh();
$scope.acl.refresh();