132 lines
4.4 KiB
JavaScript
132 lines
4.4 KiB
JavaScript
(function () {
|
|
'use strict';
|
|
|
|
/**
|
|
* MODULE DESCRIPTION:
|
|
*
|
|
* TODO: Write description here.
|
|
*/
|
|
angular.module('portal.dashboard.permissionBank', ['ui.router'])
|
|
.controller('PermissionBankCtrl', PermissionBankCtrlController);
|
|
|
|
function PermissionBankCtrlController($scope, cache, permissionStores, permissionProvider, $mdDialog,
|
|
uiGridConstants, portalUtils, Constants) {
|
|
|
|
$scope.confirmQuestionBox = true;
|
|
$scope.permissions = [];
|
|
$scope.Constants = Constants;
|
|
|
|
$scope.mCache = cache.request([new permissionStores.PermissionGroups()]).then(function(){
|
|
$scope.permissions = $scope.mCache.permissionGroups.data.values;
|
|
});
|
|
|
|
portalUtils.setScopeValue($scope, 'loadingBlock', false, true);
|
|
|
|
$scope.permGrid = {
|
|
data: 'permissions',
|
|
paginationPageSizes: [28, 56, 84, 102],
|
|
paginationPageSize: 28,
|
|
enableHorizontalScrollbar: uiGridConstants.scrollbars.NEVER,
|
|
toggleModifierKeysToMultiSelect : true,
|
|
enableRowHeaderSelection: true,
|
|
enableColumnMenus: true,
|
|
enableGridMenu: true,
|
|
exporterCsvFilename: 'Files.csv',
|
|
exporterMenuCsv: true,
|
|
multiSelect: true,
|
|
noUnselect: false,
|
|
onRegisterApi: function (gridApi) {
|
|
gridApi.selection.setModifierKeysToMultiSelect(true);
|
|
$scope.permGridApi = gridApi;
|
|
},
|
|
columnDefs: [
|
|
{field: 'displayName', displayName: 'Permission Group', width: '*'},
|
|
{field: 'enabled', displayName: 'Enabled', width: '*'},
|
|
{field: 'permissions', displayName: 'Allowed Permissions', width: '***',
|
|
cellTemplate: '<div class="ui-grid-cell-contents">{{grid.appScope.formatPermissions(row.entity.permissions)}}</div>'},
|
|
{field: 'id', displayName: 'Actions', width: '100', enableColumnMenu: false, enableFiltering: false, enableHiding: false,
|
|
cellTemplate: 'main/permission-bank/cell-templates/permission-actions.html'}
|
|
],
|
|
};
|
|
|
|
$scope.formatPermissions = function(perms) {
|
|
var p = [];
|
|
for (var i = 0; i < perms.length; i++) {
|
|
var perm = perms[i];
|
|
if (perm.allowed) {
|
|
p.push(perm.displayName);
|
|
}
|
|
}
|
|
return p.join(', ');
|
|
};
|
|
|
|
$scope.$on('$destroy', function () {
|
|
$scope.mCache.unlisten();
|
|
});
|
|
|
|
$scope.toggleFiltering = function() {
|
|
$scope.permGrid.enableFiltering = !$scope.permGrid.enableFiltering;
|
|
$scope.permGridApi.core.notifyDataChange( uiGridConstants.dataChange.COLUMN );
|
|
};
|
|
|
|
var originatorEv;
|
|
$scope.openMenu = function($mdOpenMenu, ev) {
|
|
originatorEv = ev;
|
|
$mdOpenMenu(ev);
|
|
};
|
|
|
|
$scope.delete = function(entity) {
|
|
if ($scope.confirmQuestionBox) {
|
|
portalUtils.confirmBox('deletePermissionGroup', 'Delete Permission Group', ['Are you sure you want to delete the permission group', entity.displayName],
|
|
true, function(value) {
|
|
if (value.confirm) {
|
|
$scope.confirmQuestionBox = !value.checkbox;
|
|
$scope.deletePermission(entity);
|
|
}
|
|
});
|
|
} else {
|
|
$scope.deletePermission(entity);
|
|
}
|
|
};
|
|
|
|
$scope.deletePermission = function(entity) {
|
|
portalUtils.setScopeValue($scope, 'loadingBlock', true, true);
|
|
permissionProvider.deletePermissionGroup(entity).then(function(data) {
|
|
portalUtils.toast('Successfully deleted permission group ' + entity.displayName, ['top', 'left'], 2000);
|
|
portalUtils.setScopeValue($scope, 'loadingBlock', false, true);
|
|
}).catch(function(err){
|
|
portalUtils.toast('Unable to delete permission group: ' + err.message, ['top', 'left'], 4000);
|
|
portalUtils.setScopeValue($scope, 'loadingBlock', false, true);
|
|
});
|
|
};
|
|
|
|
$scope.edit = function(entity) {
|
|
$mdDialog.show({
|
|
templateUrl: 'common/partials/add-permission/add-permission.html',
|
|
controller: 'AddPermissionCtrl',
|
|
escapeToClose: false,
|
|
locals: {
|
|
modalInstance: {
|
|
header: 'Edit Permission Group',
|
|
permission: entity,
|
|
}
|
|
}
|
|
});
|
|
};
|
|
|
|
$scope.addPermissions = function() {
|
|
$mdDialog.show({
|
|
templateUrl: 'common/partials/add-permission/add-permission.html',
|
|
controller: 'AddPermissionCtrl',
|
|
escapeToClose: false,
|
|
locals: {
|
|
modalInstance: {
|
|
header: 'Add Permissions',
|
|
}
|
|
}
|
|
});
|
|
};
|
|
|
|
} //end PermissionBankCtrlController function
|
|
|
|
})(); |