Added Admin -> Config to view all the application.ini settings.

TODO: save changes
This commit is contained in:
djmaze 2021-12-23 11:37:39 +01:00
parent d7db182e5f
commit f20a7c7b83
31 changed files with 263 additions and 80 deletions

View file

@ -10,6 +10,7 @@ import { SecurityAdminSettings } from 'Settings/Admin/Security';
import { PackagesAdminSettings } from 'Settings/Admin/Packages';
import { AboutAdminSettings } from 'Settings/Admin/About';
import { BrandingAdminSettings } from 'Settings/Admin/Branding';
import { ConfigAdminSettings } from 'Settings/Admin/Config';
import { MenuSettingsAdminView } from 'View/Admin/Settings/Menu';
import { PaneSettingsAdminView } from 'View/Admin/Settings/Pane';
@ -33,6 +34,7 @@ export class SettingsAdminScreen extends AbstractSettingsScreen {
[ContactsAdminSettings, 'Contacts'],
[SecurityAdminSettings, 'Security'],
[PackagesAdminSettings, 'Packages'],
[ConfigAdminSettings, 'Config'],
[AboutAdminSettings, 'About'],
].forEach(item =>
settingsAddViewModel(

View file

@ -0,0 +1,47 @@
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));
}
}

View file

@ -26,6 +26,7 @@
@import "Admin/Layout.less";
@import "Admin/General.less";
@import "Admin/Branding.less";
@import "Admin/Config.less";
@import "Admin/Domains.less";
@import "Admin/Domain.less";
@import "Admin/Packages.less";

View file

@ -0,0 +1,6 @@
#V-Settings-Config {
em {
display: block;
}
}