unclean SPARC

This commit is contained in:
STEINNI
2025-08-27 07:03:09 +00:00
commit f308460931
430 changed files with 54426 additions and 0 deletions
@@ -0,0 +1,117 @@
class BypassBaseManagementContent extends EICDomContent {
constructor() {
super();
Object.assign(this, app.helpers.basicDialogs)
}
DOMContentLoaded(options) {
this.profile = options.profile;
for(let model in options.models) this[model] = options.models[model];
this.users.getRoles(); // We'll need them later, but quite slow
this.gridUsers = new DataGrid(this.find('.users-list'), {
headers: [
{ label: 'Login', filter: 'text', sortable: true},
{ label: 'Email', filter: 'text', sortable: true},
{ label: 'Fullname', filter: 'text', sortable: true},
{ label: 'Role', filter: 'list', sortable: true},
{ label: 'Scheme', filter: 'list', sortable: true},
{ label: 'Domain', filter: 'list', sortable: true},
],
height: 'calc(100vh - 620px)',
actions: []
});
this.btUsersRefresh = new Button(null, {icon: 'icon-refresh', severity: 'primary', rounded: true, size: 'small', hint: 'Refresh the list'})
this.btUsersRefresh.addEventListener('click', this.refreshUsersList.bind(this));
this.gridUsers.el.querySelector('header .cell.actions').append(this.btUsersRefresh.el);
this.userAddButton = this.find('.user-add');
if(this.users.hasPrivilege('create')) {
this.userAddButton.addEventListener('click', this.onUserCreate.bind(this));
} else {
ui.hide(this.userAddButton);
}
this.gridUsers.loading = true;
this.users.list().then(this.fillUsers.bind(this));
}
fillUsers() {
this.gridUsers.clear();
this.gridUsers.loading = false;
this.btUsersRefresh.loading = false;
for (const item of this.users.collection) {
let row = this.gridUsers.addRow(item.uid, [
item.uid,
item.email,
`${item.firstname} ${item.lastname}`,
item.BProle,
item.track.label,
item.domain.label,
], true);
if(this.users.hasPrivilege('revoke') && (item.uid != app.User.identity.uuid )) {
let button = ui.create(`<button eicbutton xsmall danger title="revoke this user" data-uid="${item.uid}">revoke</button>`);
button.addEventListener('click', this.onUserRevoke.bind(this));
row.querySelector('.cell.actions').appendChild(button);
}
}
this.gridUsers.updateFilters();
}
refreshUsersList(event) {
if(event) {
event.preventDefault();
event.stopPropagation();
}
this.btUsersRefresh.loading = true;
this.gridUsers.loading = true;
this.users.list().then(this.fillUsers.bind(this));
}
async onUserCreate(event) {
event.preventDefault();
event.stopPropagation();
let result = await this.openDialog(await this.loadContent('projects/bypass/dialogs/BypassUserProfileDialog',{
title: 'Add a user',
subtitle: 'Please first enter the user UUID then define role and scopes of activity'
}, {
model: this.users,
mode: 'create',
profile: this.profile
}));
if(result) {
ui.growl.append('User added', 'success');
this.refreshUsersList();
}
}
async onUserRevoke(event) {
event.preventDefault();
event.stopPropagation();
let uid = event.currentTarget.dataset.uid;
let user = this.users.getUid(uid);
let result = await this.confirmDialog({
title: 'Revoke a user',
message: `Please be aware that you are about to revoke the user "<strong>${user.firstname} ${user.lastname}</strong>"<br>
This is permanent !<br>
Are you positive ?`,
okLabel: 'Revoke user',
okPromise:() => { return(this.users.revoke(uid)) },
})
if(result) {
ui.growl.append('User revoked', 'success');
this.refreshUsersList();
}
}
}
app.registerClass('BypassBaseManagementContent', BypassBaseManagementContent);