mirror of
https://github.com/the-djmaze/snappymail.git
synced 2026-07-11 00:14:50 +03:00
Better Remote.saveAdminConfig() and better idleTrigger for them
This commit is contained in:
parent
2588e5b328
commit
3b40f86c33
11 changed files with 76 additions and 81 deletions
|
|
@ -1,4 +1,4 @@
|
|||
import 'External/Admin/ko';
|
||||
import 'External/ko';
|
||||
|
||||
import { Settings, SettingsGet } from 'Common/Globals';
|
||||
|
||||
|
|
|
|||
10
dev/External/Admin/ko.js
vendored
10
dev/External/Admin/ko.js
vendored
|
|
@ -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;
|
||||
};
|
||||
|
|
@ -6,7 +6,7 @@ class RemoteAdminFetch extends AbstractFetchRemote {
|
|||
* @param {?Function} fCallback
|
||||
* @param {?} oData
|
||||
*/
|
||||
saveAdminConfig(fCallback, oData) {
|
||||
saveConfig(oData, fCallback) {
|
||||
this.request('AdminSettingsUpdate', fCallback, oData);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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, {
|
||||
|
|
|
|||
|
|
@ -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'),
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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
|
||||
})
|
||||
);
|
||||
|
|
|
|||
|
|
@ -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
|
||||
})
|
||||
});
|
||||
|
|
|
|||
|
|
@ -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
|
||||
}
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@
|
|||
name: 'Input',
|
||||
params: {
|
||||
value: defaultDomain,
|
||||
trigger: defaultDomain.trigger,
|
||||
trigger: defaultDomainTrigger,
|
||||
size: 3
|
||||
}
|
||||
}"></div>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue