Better Remote.saveAdminConfig() and better idleTrigger for them

This commit is contained in:
djmaze 2021-12-03 12:32:21 +01:00
parent 2588e5b328
commit 3b40f86c33
11 changed files with 76 additions and 81 deletions

View file

@ -1,4 +1,4 @@
import 'External/Admin/ko';
import 'External/ko';
import { Settings, SettingsGet } from 'Common/Globals';

View file

@ -1,10 +0,0 @@
import 'External/ko';
import ko from 'ko';
import { SaveSettingsStep } from 'Common/Enums';
// functions
ko.observable.fn.idleTrigger = function() {
this.trigger = ko.observable(SaveSettingsStep.Idle);
return this;
};

View file

@ -6,7 +6,7 @@ class RemoteAdminFetch extends AbstractFetchRemote {
* @param {?Function} fCallback
* @param {?} oData
*/
saveAdminConfig(fCallback, oData) {
saveConfig(oData, fCallback) {
this.request('AdminSettingsUpdate', fCallback, oData);
}

View file

@ -1,32 +1,39 @@
import ko from 'ko';
import { SaveSettingsStep } from 'Common/Enums';
import { SettingsGet } from 'Common/Globals';
import { settingsSaveHelperSimpleFunction } from 'Common/Utils';
import { settingsSaveHelperSimpleFunction, addObservablesTo, addSubscribablesTo } from 'Common/Utils';
import Remote from 'Remote/Admin/Fetch';
export class BrandingAdminSettings /*extends AbstractViewSettings*/ {
constructor() {
this.title = ko.observable(SettingsGet('Title')).idleTrigger();
this.loadingDesc = ko.observable(SettingsGet('LoadingDescription')).idleTrigger();
this.faviconUrl = ko.observable(SettingsGet('FaviconUrl')).idleTrigger();
addObservablesTo(this, {
title: SettingsGet('Title'),
loadingDesc: SettingsGet('LoadingDescription'),
faviconUrl: SettingsGet('FaviconUrl'),
this.title.subscribe(value =>
Remote.saveAdminConfig(settingsSaveHelperSimpleFunction(this.title.trigger, this), {
Title: value.trim()
})
);
titleTrigger: SaveSettingsStep.Idle,
loadingDescTrigger: SaveSettingsStep.Idle,
faviconUrlTrigger: SaveSettingsStep.Idle
});
this.loadingDesc.subscribe(value =>
Remote.saveAdminConfig(settingsSaveHelperSimpleFunction(this.loadingDesc.trigger, this), {
LoadingDescription: value.trim()
})
);
addSubscribablesTo(this, {
title: (value =>
Remote.saveConfig({
Title: value.trim()
}, settingsSaveHelperSimpleFunction(this.titleTrigger, this))
).debounce(999),
this.faviconUrl.subscribe(value =>
Remote.saveAdminConfig(settingsSaveHelperSimpleFunction(this.faviconUrl.trigger, this), {
FaviconUrl: value.trim()
})
);
loadingDesc: (value =>
Remote.saveConfig({
LoadingDescription: value.trim()
}, settingsSaveHelperSimpleFunction(this.loadingDescTrigger, this))
).debounce(999),
faviconUrl: (value =>
Remote.saveConfig({
FaviconUrl: value.trim()
}, settingsSaveHelperSimpleFunction(this.faviconUrlTrigger, this))
).debounce(999)
});
}
}

View file

@ -71,12 +71,12 @@ export class ContactsAdminSettings /*extends AbstractViewSettings*/ {
addSubscribablesTo(this, {
enableContacts: value =>
Remote.saveAdminConfig(null, {
Remote.saveConfig({
ContactsEnable: value ? 1 : 0
}),
contactsSync: value =>
Remote.saveAdminConfig(null, {
Remote.saveConfig({
ContactsSync: value ? 1 : 0
}),
@ -84,25 +84,25 @@ export class ContactsAdminSettings /*extends AbstractViewSettings*/ {
this.testContactsSuccess(false);
this.testContactsError(false);
this.testContactsErrorMessage('');
Remote.saveAdminConfig(settingsSaveHelperSimpleFunction(this.contactsTypeTrigger, this), {
Remote.saveConfig({
ContactsPdoType: value.trim()
})
}, settingsSaveHelperSimpleFunction(this.contactsTypeTrigger, this))
},
pdoDsn: value =>
Remote.saveAdminConfig(settingsSaveHelperSimpleFunction(this.pdoDsnTrigger, this), {
Remote.saveConfig({
ContactsPdoDsn: value.trim()
}),
}, settingsSaveHelperSimpleFunction(this.pdoDsnTrigger, this)),
pdoUser: value =>
Remote.saveAdminConfig(settingsSaveHelperSimpleFunction(this.pdoUserTrigger, this), {
Remote.saveConfig({
ContactsPdoUser: value.trim()
}),
}, settingsSaveHelperSimpleFunction(this.pdoUserTrigger, this)),
pdoPassword: value =>
Remote.saveAdminConfig(settingsSaveHelperSimpleFunction(this.pdoPasswordTrigger, this), {
Remote.saveConfig({
ContactsPdoPassword: value.trim()
})
}, settingsSaveHelperSimpleFunction(this.pdoPasswordTrigger, this))
})
decorateKoCommands(this, {

View file

@ -87,38 +87,34 @@ export class GeneralAdminSettings /*extends AbstractViewSettings*/ {
this.languageAdminTrigger(saveSettingsStep);
setTimeout(() => this.languageAdminTrigger(SaveSettingsStep.Idle), 1000);
},
fSaveBoolHelper = (key, fn) =>
value => {
const data = {};
data[key] = value ? 1 : 0;
Remote.saveAdminConfig(fn, data);
};
fSaveBoolHelper = key =>
value => Remote.saveConfig({[key]: value ? 1 : 0});
addSubscribablesTo(this, {
mainAttachmentLimit: value =>
Remote.saveAdminConfig(settingsSaveHelperSimpleFunction(this.attachmentLimitTrigger, this), {
Remote.saveConfig({
AttachmentLimit: pInt(value)
}),
}, settingsSaveHelperSimpleFunction(this.attachmentLimitTrigger, this)),
language: value =>
Remote.saveAdminConfig(settingsSaveHelperSimpleFunction(this.languageTrigger, this), {
Remote.saveConfig({
Language: value.trim()
}),
}, settingsSaveHelperSimpleFunction(this.languageTrigger, this)),
languageAdmin: value => {
this.languageAdminTrigger(SaveSettingsStep.Animate);
translatorReload(true, value)
.then(fReloadLanguageHelper(SaveSettingsStep.TrueResult), fReloadLanguageHelper(SaveSettingsStep.FalseResult))
.then(() => Remote.saveAdminConfig(null, {
.then(() => Remote.saveConfig({
LanguageAdmin: value.trim()
}));
},
theme: value => {
changeTheme(value, this.themeTrigger);
Remote.saveAdminConfig(settingsSaveHelperSimpleFunction(this.themeTrigger, this), {
Remote.saveConfig({
Theme: value.trim()
});
}, settingsSaveHelperSimpleFunction(this.themeTrigger, this));
},
capaAdditionalAccounts: fSaveBoolHelper('CapaAdditionalAccounts'),

View file

@ -1,5 +1,4 @@
import ko from 'ko';
import { SaveSettingsStep } from 'Common/Enums';
import { Settings, SettingsGet } from 'Common/Globals';
import { settingsSaveHelperSimpleFunction, addObservablesTo, addSubscribablesTo } from 'Common/Utils';
@ -11,36 +10,37 @@ export class LoginAdminSettings /*extends AbstractViewSettings*/ {
determineUserLanguage: !!SettingsGet('DetermineUserLanguage'),
determineUserDomain: !!SettingsGet('DetermineUserDomain'),
allowLanguagesOnLogin: !!SettingsGet('AllowLanguagesOnLogin'),
hideSubmitButton: !!Settings.app('hideSubmitButton')
hideSubmitButton: !!Settings.app('hideSubmitButton'),
defaultDomain: SettingsGet('LoginDefaultDomain'),
defaultDomainTrigger: SaveSettingsStep.Idle
});
this.defaultDomain = ko.observable(SettingsGet('LoginDefaultDomain')).idleTrigger();
addSubscribablesTo(this, {
determineUserLanguage: value =>
Remote.saveAdminConfig(null, {
Remote.saveConfig({
DetermineUserLanguage: value ? 1 : 0
}),
determineUserDomain: value =>
Remote.saveAdminConfig(null, {
Remote.saveConfig({
DetermineUserDomain: value ? 1 : 0
}),
allowLanguagesOnLogin: value =>
Remote.saveAdminConfig(null, {
Remote.saveConfig({
AllowLanguagesOnLogin: value ? 1 : 0
}),
hideSubmitButton: value =>
Remote.saveAdminConfig(null, {
Remote.saveConfig({
hideSubmitButton: value ? 1 : 0
}),
defaultDomain: value =>
Remote.saveAdminConfig(settingsSaveHelperSimpleFunction(this.defaultDomain.trigger, this), {
defaultDomain: (value =>
Remote.saveConfig({
LoginDefaultDomain: value.trim()
})
}, settingsSaveHelperSimpleFunction(this.defaultDomainTrigger, this))
).debounce(999)
});
}
}

View file

@ -9,11 +9,14 @@ import Remote from 'Remote/Admin/Fetch';
import { showScreenPopup } from 'Knoin/Knoin';
import { PluginPopupView } from 'View/Popup/Plugin';
import { SettingsGet } from 'Common/Globals';
import { addComputablesTo } from 'Common/Utils';
import { addObservablesTo, addComputablesTo } from 'Common/Utils';
export class PackagesAdminSettings /*extends AbstractViewSettings*/ {
constructor() {
this.packagesError = ko.observable('');
addObservablesTo(this, {
packagesError: '',
enabledPlugins: !!SettingsGet('EnabledPlugins')
});
this.packages = PackageAdminStore;
@ -25,9 +28,8 @@ export class PackagesAdminSettings /*extends AbstractViewSettings*/ {
visibility: () => (PackageAdminStore.loading() ? 'visible' : 'hidden')
});
this.enabledPlugins = ko.observable(!!SettingsGet('EnabledPlugins'));
this.enabledPlugins.subscribe(value =>
Remote.saveAdminConfig(null, {
Remote.saveConfig({
EnabledPlugins: value ? 1 : 0
})
);

View file

@ -51,24 +51,24 @@ export class SecurityAdminSettings /*extends AbstractViewSettings*/ {
},
capaOpenPGP: value =>
Remote.saveAdminConfig(null, {
Remote.saveConfig({
CapaOpenPGP: value ? 1 : 0
}),
useLocalProxyForExternalImages: value =>
Remote.saveAdminConfig(null, {
Remote.saveConfig({
UseLocalProxyForExternalImages: value ? 1 : 0
}),
verifySslCertificate: value => {
value => value || this.allowSelfSigned(true);
Remote.saveAdminConfig(null, {
value || this.allowSelfSigned(true);
Remote.saveConfig({
VerifySslCertificate: value ? 1 : 0
});
},
allowSelfSigned: value =>
Remote.saveAdminConfig(null, {
Remote.saveConfig({
AllowSelfSigned: value ? 1 : 0
})
});

View file

@ -6,7 +6,7 @@
name: 'Input',
params: {
value: title,
trigger: title.trigger,
trigger: titleTrigger,
size: 5
}
}"></div>
@ -17,7 +17,7 @@
name: 'Input',
params: {
value: loadingDesc,
trigger: loadingDesc.trigger,
trigger: loadingDescTrigger,
size: 5
}
}"></div>
@ -28,7 +28,7 @@
name: 'Input',
params: {
value: faviconUrl,
trigger: faviconUrl.trigger,
trigger: faviconUrlTrigger,
placeholder: 'https://',
size: 5
}

View file

@ -6,7 +6,7 @@
name: 'Input',
params: {
value: defaultDomain,
trigger: defaultDomain.trigger,
trigger: defaultDomainTrigger,
size: 3
}
}"></div>