in client/client/app/shared/components/ngbUserManagement/ngbUserManagementDlg/ngbUserManagementDlg.service.js [106:268]
getUserManagementColumns(columnsList) {
const columnDefs = [];
for (let user = 0; user < columnsList.length; user++) {
const column = columnsList[user];
switch (column.toLowerCase()) {
case 'actions':
columnDefs.push({
cellTemplate: `
<div layout="row" style="flex-flow: row wrap; justify-content: center; align-items: center; width: 100%">
<md-button
aria-label="Edit"
class="md-mini md-hue-1 grid-action-button"
ng-if="row.entity.editable"
ng-click="grid.appScope.ctrl.openEditUserDlg(row.entity, $event)">
<ng-md-icon icon="edit"></ng-md-icon>
</md-button>
</div>`,
enableColumnMenu: false,
enableSorting: false,
enableMove: false,
field: column.toLowerCase(),
maxWidth: 120,
minWidth: 120,
name: ''
});
break;
case 'groups':
columnDefs.push({
cellTemplate: `
<div layout="row" ng-if="row.entity.groups.length <= 3" style="flex-flow: row wrap; align-items: center;">
<span
ng-repeat="group in row.entity.groups track by $index"
class="group-role-tag bordered"
ng-class="{'domain-group': group.isAD}">
{{group.name}}
</span>
</div>
<div layout="row" ng-if="row.entity.groups.length > 3" style="flex-flow: row wrap; align-items: center;">
<span
ng-repeat="group in row.entity.groups.slice(0, 3) track by $index"
class="group-role-tag bordered"
ng-class="{'domain-group': group.isAD}">
{{group.name}}
</span>
<ng-md-icon
icon="more_horiz"
class="md-popover"
ng-mouseover="grid.appScope.ctrl.showPopover(row.entity.groups, $event)">
</ng-md-icon>
</div>
`,
enableColumnMenu: false,
enableSorting: false,
field: 'groups',
name: 'Groups',
width: '*',
minWidth: 50,
});
break;
case 'roles':
columnDefs.push({
cellTemplate: `
<div layout="row" ng-if="row.entity.roles.length <= 3" style="flex-flow: row wrap; align-items: center;">
<span
ng-repeat="role in row.entity.roles track by $index"
class="group-role-tag bordered">
{{role.name}}
</span>
</div>
<div layout="row" ng-if="row.entity.roles.length > 3" style="flex-flow: row wrap; align-items: center;">
<span
ng-repeat="role in row.entity.roles.slice(0, 3) track by $index"
class="group-role-tag bordered">
{{role.name}}
</span>
<ng-md-icon
icon="more_horiz"
class="md-popover"
ng-mouseover="grid.appScope.ctrl.showPopover(row.entity.roles, $event)">
</ng-md-icon>
</div>
`,
enableColumnMenu: false,
enableSorting: false,
field: 'roles',
name: 'Roles',
width: '*',
minWidth: 50,
});
break;
case 'user':
columnDefs.push({
cellTemplate: `
<div class="ui-grid-cell-contents" style="display: flex; flex-direction: column">
<span>{{row.entity.userName}}</span>
<div ng-if="row.entity.userAttributes" style="margin-top: 2px">
{{row.entity.userAttributes}}
</div>
</div>
`,
enableColumnMenu: false,
enableSorting: true,
field: 'userName',
filter: {
condition: (term, value, row) => {
if (term) {
const user = row.entity;
const matchAttributes = () => {
if (user.attributes) {
for (const key in user.attributes) {
if (user.attributes.hasOwnProperty(key) &&
user.attributes[key] &&
user.attributes[key].toLowerCase().indexOf(term.toLowerCase()) >= 0) {
return true;
}
}
}
return false;
};
return (user.userName || '').toLowerCase().indexOf(term.toLowerCase()) >= 0 ||
matchAttributes();
}
return true;
}
},
minWidth: 50,
name: 'User',
width: '*',
});
break;
case 'group':
columnDefs.push({
enableColumnMenu: false,
enableSorting: true,
field: 'groupName',
minWidth: 50,
name: 'Group',
width: '*',
});
break;
case 'role':
columnDefs.push({
enableColumnMenu: false,
enableSorting: true,
field: 'roleName',
minWidth: 50,
name: 'Role',
width: '*',
});
break;
default:
columnDefs.push({
field: column.toLowerCase(),
minWidth: 50,
name: column,
width: '*',
});
break;
}
}
return columnDefs;
}