unclean SPARC
This commit is contained in:
@@ -0,0 +1,3 @@
|
||||
<div>
|
||||
<span eicalert danger>All your preference settings will be discarded. This operation cannot be undone.</span>
|
||||
</div>
|
||||
@@ -0,0 +1,29 @@
|
||||
class ProfilePreferencesResetDialog extends EICDialogContent {
|
||||
actions = [
|
||||
{
|
||||
label: 'Cancel',
|
||||
onclick: this.cancel.bind(this),
|
||||
severity: 'secondary',
|
||||
role: 'cancel'
|
||||
},
|
||||
{
|
||||
label: 'Reset',
|
||||
onclick: this.reset.bind(this),
|
||||
severity: 'danger',
|
||||
role: 'reset'
|
||||
}
|
||||
]
|
||||
|
||||
cancel() {
|
||||
this.commit(false);
|
||||
}
|
||||
|
||||
reset() {
|
||||
app.User.preferences = {};
|
||||
app.User.savePreferences();
|
||||
|
||||
this.commit(true);
|
||||
}
|
||||
}
|
||||
|
||||
app.registerClass('ProfilePreferencesResetDialog',ProfilePreferencesResetDialog);
|
||||
@@ -0,0 +1,51 @@
|
||||
<style>
|
||||
.my-profile > header {
|
||||
background: url('/app/assets/images/cards/userprefs.jpg');
|
||||
}
|
||||
.my-profile .preferences [eicdatagrid] .row {
|
||||
grid-template-columns: 2fr 1fr;
|
||||
}
|
||||
</style>
|
||||
<article eiccard media class="my-profile">
|
||||
<header>
|
||||
<h1>My Profile</h1>
|
||||
</header>
|
||||
<section>
|
||||
<div class="tabs-extended">
|
||||
<section>
|
||||
<menu eictab>
|
||||
<li>User Informations</li>
|
||||
<li>Preferences</li>
|
||||
</menu>
|
||||
</section>
|
||||
</div>
|
||||
<article eiccard class="tab-content">
|
||||
<section>
|
||||
<div class="cols-2">
|
||||
<article class="identity" eiccard collapsable>
|
||||
<header><h1>User informations</h1></header>
|
||||
<section >
|
||||
<div eicdatagrid footer="hidden" header="hidden"></div>
|
||||
</section>
|
||||
</article>
|
||||
<article class="roles" eiccard collapsable>
|
||||
<header><h1>User Roles</h1></header>
|
||||
<section >
|
||||
<div eicdatagrid footer="hidden" header="hidden"></div>
|
||||
</section>
|
||||
</article>
|
||||
</div>
|
||||
</section>
|
||||
</article>
|
||||
<article eiccard class="tab-content preferences">
|
||||
<section>
|
||||
<div eicdatagrid></div>
|
||||
</section>
|
||||
<footer>
|
||||
<div class="actions cols-1 right">
|
||||
<button eicbutton small danger class="reset">Reset preferences...</button>
|
||||
</div>
|
||||
</footer>
|
||||
</article>
|
||||
</section>
|
||||
</article>
|
||||
@@ -0,0 +1,57 @@
|
||||
class myProfileView extends EICDomContent {
|
||||
|
||||
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);
|
||||
Reference in New Issue
Block a user