Files
P42_UI/app/views/projects/bypass/BypassAdminManagementContent.js
T
2025-08-27 07:03:09 +00:00

104 lines
3.7 KiB
JavaScript

class BypassAdminManagementContent extends BypassBaseManagementContent {
DOMContentLoaded(options) {
super.DOMContentLoaded(options);
let components = ui.eicfy(this.el);
this.gridKics = new DataGrid(this.find('.kic-domains-list'), {
headers: [ { label: 'Thematic'}, { label: 'Tokens' }, { label: 'Remaining' } ],
height: '320px'
});
this.gridPlugins = new DataGrid(this.find('.plugin-domains-list'), {
headers: [ { label: 'Country'}, { label: 'Tokens'}, { label: 'Remaining' } ],
height: '320px'
});
this.pluginEditButton = components.find(component => component.el.classList.contains('plugin-edit'));
if(this.tokens.hasPrivilege('setSettings')) {
this.pluginEditButton.addEventListener('click', this.onPluginEdit.bind(this));
} else {
ui.hide(this.pluginEditButton);
}
this.kicEditButton = components.find(component => component.el.classList.contains('kic-edit'));
if(this.tokens.hasPrivilege('setSettings')) {
this.kicEditButton.addEventListener('click', this.onKicEdit.bind(this));
} else {
ui.hide(this.kicEditButton);
}
this.gridKics.loading = true;
this.tokens.getSettings('d7xAg5kIhQYeDMB1H6eXnBg')
.then(this.fillKics.bind(this));
this.gridPlugins.loading = true;
this.tokens.getSettings('daTai94ymStyRbQWybH3eDw')
.then(this.fillPlugins.bind(this));
}
fillKics(payload) {
this.gridKics.clear();
this.gridKics.loading = false;
for(let item of payload.domains) {
this.gridKics.addRow(item.domain, [app.meta.toString('accelerator-tracks', item.domain), item.tokens, item.remaining])
}
this.gridKics.sort(1, 'asc');
}
fillPlugins(payload) {
this.gridPlugins.clear();
this.gridPlugins.loading = false;
for(let item of payload.domains) {
this.gridPlugins.addRow(item.domain, [app.meta.toString('accelerator-tracks', item.domain), item.tokens, item.remaining])
}
this.gridPlugins.sort(1, 'asc');
}
async onKicEdit(event) {
event.preventDefault();
event.stopPropagation();
let result = await this.openDialog(
await this.loadContent(
'projects/bypass/dialogs/BypassTrackSetupDialog',
{ title: 'Fast-Track Yearly token attribution', subtitle: 'Set up the yearly token attribution per domain' },
{ model: this.tokens, track: 'd7xAg5kIhQYeDMB1H6eXnBg' }
)
);
if(result) {
ui.growl.append('Settings updated', 'success');
this.gridKics.loading = true;
this.tokens.getSettings('d7xAg5kIhQYeDMB1H6eXnBg')
.then(this.fillKics.bind(this));
}
}
async onPluginEdit(event) {
event.preventDefault();
event.stopPropagation();
let result = await this.openDialog(
await this.loadContent(
'projects/bypass/dialogs/BypassTrackSetupDialog',
{ title: 'Plugins Yearly token attribution', subtitle: 'Set up the yearly token attribution per country' },
{ model: this.tokens, track: 'daTai94ymStyRbQWybH3eDw' }
)
);
if(result) {
ui.growl.append('Settings updated', 'success');
this.gridPlugins.loading = true;
this.tokens.getSettings('daTai94ymStyRbQWybH3eDw')
.then(this.fillPlugins.bind(this));
}
}
}
app.registerClass('BypassAdminManagementContent', BypassAdminManagementContent);