Files
P42_UI/app/views/common/profile/myProfileView.js
T
2025-10-14 16:31:07 +00:00

57 lines
2.1 KiB
JavaScript

class myProfileView extends WindozDomContent {
DOMContentLoaded() {
ui.eicfy(this.el)
this.tabs = new Tab();
this.tabs.addTabs(this.findAll('menu li'), this.findAll('.tab-content'))
this.gridIdentity = new DataGrid(this.find('.identity [eicdatagrid]'), {
headers: [ { label: ''}, { label: ''} ]
});
this.gridIdentity.addRow('', [ 'First name',app.User.identity.firstname ]);
this.gridIdentity.addRow('', [ 'Last name',app.User.identity.lastname ]);
this.gridIdentity.addRow('', [ 'Email',app.User.identity.email ]);
this.gridIdentity.addRow('', [ 'EU Login',app.User.identity.uuid ]);
this.gridRoles = new DataGrid(this.find('.roles [eicdatagrid]'), {
headers: [ { label: 'Role name', filter: null, sortable: true} ]
});
for(let role of app.User.roles) { this.gridRoles.addRow(role, [ role ]); }
this.gridPreferences = new DataGrid(this.find('.preferences [eicdatagrid]'), {
headers: [
{ label: 'Key', filter: 'text', sortable: true},
{ label: 'Value', filter: 'text', sortable: false},
]
});
this.scanPreferences(app.User.preferences, '')
let resetButton = new Button(this.find('.preferences button.reset'));
resetButton.click = this.onPreferencesReset.bind(this);
}
scanPreferences(tree, path) {
for(const key in tree) {
let item = tree[key];
let newPath = `${path}${ path ? '.': ''}${key}`;
if(typeof item == 'object')
this.scanPreferences(item, newPath)
else
this.gridPreferences.addRow(key, [ newPath, item ] );
}
}
async onPreferencesReset() {
let resetted = await this.openDialog(
await this.loadContent(
'common/profile/dialogs/ProfilePreferencesResetDialog',
{ title: 'Reset your preferences' }, {}
)
);
if(resetted) { this.gridPreferences.clear(); }
}
}
app.registerClass('myProfileView',myProfileView);