mirror of
https://github.com/the-djmaze/snappymail.git
synced 2025-01-05 06:22:52 +08:00
48 lines
1,009 B
JavaScript
48 lines
1,009 B
JavaScript
|
import ko from 'ko';
|
||
|
|
||
|
import Remote from 'Remote/Admin/Fetch';
|
||
|
|
||
|
export class ConfigAdminSettings /*extends AbstractViewSettings*/ {
|
||
|
|
||
|
constructor() {
|
||
|
this.config = ko.observableArray();
|
||
|
}
|
||
|
|
||
|
onBeforeShow() {
|
||
|
Remote.request('AdminSettingsGet', (iError, data) => {
|
||
|
if (!iError) {
|
||
|
const cfg = [],
|
||
|
getInputType = value => {
|
||
|
switch (typeof value)
|
||
|
{
|
||
|
case 'boolean': return 'checkbox';
|
||
|
case 'number': return 'number';
|
||
|
}
|
||
|
return 'text';
|
||
|
};
|
||
|
Object.entries(data.Result).forEach(([key, items]) => {
|
||
|
const section = {
|
||
|
name: key,
|
||
|
items: []
|
||
|
};
|
||
|
Object.entries(items).forEach(([skey, item]) => {
|
||
|
section.items.push({
|
||
|
key: `config[${key}][${skey}]`,
|
||
|
name: skey,
|
||
|
value: item[0],
|
||
|
type: getInputType(item[0]),
|
||
|
comment: item[1]
|
||
|
});
|
||
|
});
|
||
|
cfg.push(section);
|
||
|
});
|
||
|
this.config(cfg);
|
||
|
}
|
||
|
});
|
||
|
}
|
||
|
|
||
|
saveConfig(form) {
|
||
|
Remote.post('AdminSettingsSet', null, new FormData(form));
|
||
|
}
|
||
|
}
|