Ensure groups configure dialogs have all users available

This commit is contained in:
Johannes Zellner
2019-11-05 22:08:48 +01:00
parent 71f1304606
commit 7040bb01f4
3 changed files with 63 additions and 54 deletions
+1 -1
View File
@@ -1028,7 +1028,7 @@ angular.module('Application').service('Client', ['$http', '$interval', '$timeout
callback = search; callback = search;
search = ''; search = '';
page = 1; page = 1;
perPage = 1000; perPage = 5000;
} }
var config = { var config = {
+53 -53
View File
@@ -163,68 +163,68 @@
<!-- Modal add group --> <!-- Modal add group -->
<div class="modal fade" id="groupAddModal" tabindex="-1" role="dialog"> <div class="modal fade" id="groupAddModal" tabindex="-1" role="dialog">
<div class="modal-dialog"> <div class="modal-dialog">
<div class="modal-content"> <div class="modal-content">
<div class="modal-header"> <div class="modal-header">
<h4 class="modal-title">Add Group</h4> <h4 class="modal-title">Add Group</h4>
</div>
<div class="modal-body">
<form name="groupAddForm" role="form" novalidate ng-submit="groupAdd.submit()" autocomplete="off">
<div class="form-group" ng-class="{ 'has-error': (groupAddForm.name.$dirty && groupAddForm.name.$invalid) || (!groupAddForm.name.$dirty && groupAdd.error.name) }">
<label class="control-label" for="groupAddName">Name</label>
<div class="control-label" ng-show="(!groupAddForm.name.$dirty && groupAdd.error.name) || (groupAddForm.name.$dirty && groupAddForm.name.$invalid) || (!groupAddForm.name.$dirty && groupAdd.error.name)">
<small ng-show="groupAddForm.name.$error.required">A name is required</small>
<small ng-show="groupAddForm.name.$error.minlength">The name is too short</small>
<small ng-show="groupAddForm.name.$error.maxlength">The name is too long</small>
<small ng-show="!groupAddForm.name.$dirty && groupAdd.error.name">{{ groupAdd.error.name }}</small>
</div> </div>
<div class="modal-body"> <input type="text" class="form-control" ng-model="groupAdd.name" id="groupAddName" name="name" ng-maxlength="200" ng-minlength="1" required autofocus>
<form name="groupAddForm" role="form" novalidate ng-submit="groupAdd.submit()" autocomplete="off"> </div>
<div class="form-group" ng-class="{ 'has-error': (groupAddForm.name.$dirty && groupAddForm.name.$invalid) || (!groupAddForm.name.$dirty && groupAdd.error.name) }"> <div class="form-group">
<label class="control-label" for="groupAddName">Name</label> <label class="control-label">Users</label>
<div class="control-label" ng-show="(!groupAddForm.name.$dirty && groupAdd.error.name) || (groupAddForm.name.$dirty && groupAddForm.name.$invalid) || (!groupAddForm.name.$dirty && groupAdd.error.name)"> <div class="control-label">
<small ng-show="groupAddForm.name.$error.required">A name is required</small> <multiselect ng-model="groupAdd.selectedUsers" options="(user.username || user.email) for user in allUsers" data-compare-by="email" data-multiple="true" filter-after-rows="5" scroll-after-rows="10"></multiselect>
<small ng-show="groupAddForm.name.$error.minlength">The name is too short</small>
<small ng-show="groupAddForm.name.$error.maxlength">The name is too long</small>
<small ng-show="!groupAddForm.name.$dirty && groupAdd.error.name">{{ groupAdd.error.name }}</small>
</div>
<input type="text" class="form-control" ng-model="groupAdd.name" id="groupAddName" name="name" ng-maxlength="200" ng-minlength="1" required autofocus>
</div>
<div class="form-group">
<label class="control-label">Users</label>
<div class="control-label">
<multiselect ng-model="groupAdd.selectedUsers" options="(user.username || user.email) for user in users" data-compare-by="email" data-multiple="true" filter-after-rows="5" scroll-after-rows="10"></multiselect>
</div>
</div>
<input class="hide" type="submit" ng-disabled="groupAddForm.$invalid || groupAdd.busy"/>
</form>
</div> </div>
<div class="modal-footer"> </div>
<button type="button" class="btn btn-default" data-dismiss="modal">Cancel</button> <input class="hide" type="submit" ng-disabled="groupAddForm.$invalid || groupAdd.busy"/>
<button type="button" class="btn btn-success" ng-click="groupAdd.submit()" ng-disabled="groupAddForm.$invalid || groupAdd.busy"><i class="fa fa-circle-notch fa-spin" ng-show="groupAdd.busy"></i> Add Group</button> </form>
</div> </div>
</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="groupAdd.submit()" ng-disabled="groupAddForm.$invalid || groupAdd.busy"><i class="fa fa-circle-notch fa-spin" ng-show="groupAdd.busy"></i> Add Group</button>
</div>
</div> </div>
</div>
</div> </div>
<!-- Modal edit group --> <!-- Modal edit group -->
<div class="modal fade" id="groupEditModal" tabindex="-1" role="dialog"> <div class="modal fade" id="groupEditModal" tabindex="-1" role="dialog">
<div class="modal-dialog"> <div class="modal-dialog">
<div class="modal-content"> <div class="modal-content">
<div class="modal-header"> <div class="modal-header">
<h4 class="modal-title">Edit group {{ groupEdit.groupInfo.name }}</h4> <h4 class="modal-title">Edit group {{ groupEdit.groupInfo.name }}</h4>
</div>
<div class="modal-body">
<form name="groupEdit_form" role="form" ng-submit="groupEdit.submit()" autocomplete="off">
<div class="form-group" ng-class="{ 'has-error': groupEditForm.groupName.$invalid }">
<label class="control-label">Group name</label>
<input type="text" class="form-control" ng-model="groupEdit.name" name="groupName" ng-disabled="groupEdit.busy" autofocus>
</div>
<div class="form-group">
<label class="control-label">Users</label>
<div class="control-label">
<multiselect ng-model="groupEdit.selectedUsers" options="(user.username || user.email) for user in allUsers" data-compare-by="email" data-multiple="true" filter-after-rows="5" scroll-after-rows="10"></multiselect>
</div> </div>
<div class="modal-body"> </div>
<form name="groupEdit_form" role="form" ng-submit="groupEdit.submit()" autocomplete="off"> <input class="hide" type="submit" ng-disabled="groupEdit_form.$invalid || useredit.busy"/>
<div class="form-group" ng-class="{ 'has-error': groupEditForm.groupName.$invalid }"> </form>
<label class="control-label">Group name</label> </div>
<input type="text" class="form-control" ng-model="groupEdit.name" name="groupName" ng-disabled="groupEdit.busy" autofocus> <div class="modal-footer">
</div> <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
<div class="form-group"> <button type="button" class="btn btn-success" ng-click="groupEdit.submit()" ng-disabled="groupEdit_form.$invalid || groupEdit.busy"><i class="fa fa-circle-notch fa-spin" ng-show="groupEdit.busy"></i> Save</button>
<label class="control-label">Users</label> </div>
<div class="control-label">
<multiselect ng-model="groupEdit.selectedUsers" options="(user.username || user.email) for user in users" data-compare-by="email" data-multiple="true" filter-after-rows="5" scroll-after-rows="10"></multiselect>
</div>
</div>
<input class="hide" type="submit" ng-disabled="groupEdit_form.$invalid || useredit.busy"/>
</form>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
<button type="button" class="btn btn-success" ng-click="groupEdit.submit()" ng-disabled="groupEdit_form.$invalid || groupEdit.busy"><i class="fa fa-circle-notch fa-spin" ng-show="groupEdit.busy"></i> Save</button>
</div>
</div>
</div> </div>
</div>
</div> </div>
<!-- Modal remove group --> <!-- Modal remove group -->
+9
View File
@@ -27,6 +27,8 @@ angular.module('Application').controller('UsersController', ['$scope', '$locatio
$scope.config = Client.getConfig(); $scope.config = Client.getConfig();
$scope.userInfo = Client.getUserInfo(); $scope.userInfo = Client.getUserInfo();
$scope.allUsers = [];
$scope.userSearchString = ''; $scope.userSearchString = '';
$scope.currentPage = 1; $scope.currentPage = 1;
$scope.pageItemCount = [ $scope.pageItemCount = [
@@ -642,6 +644,13 @@ angular.module('Application').controller('UsersController', ['$scope', '$locatio
Client.onReady(refresh); Client.onReady(refresh);
Client.onReady(loadExternalLdapConfig); Client.onReady(loadExternalLdapConfig);
Client.onReady(function () {
Client.getUsers(function (error, results) {
if (error) return console.error(error);
$scope.allUsers = results;
});
});
// setup all the dialog focus handling // setup all the dialog focus handling
['userAddModal', 'userRemoveModal', 'userEditModal', 'groupAddModal', 'groupEditModal', 'groupRemoveModal'].forEach(function (id) { ['userAddModal', 'userRemoveModal', 'userEditModal', 'groupAddModal', 'groupEditModal', 'groupRemoveModal'].forEach(function (id) {