mirror of
https://github.com/the-djmaze/snappymail.git
synced 2026-07-13 03:27:39 +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';
|
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 {?Function} fCallback
|
||||||
* @param {?} oData
|
* @param {?} oData
|
||||||
*/
|
*/
|
||||||
saveAdminConfig(fCallback, oData) {
|
saveConfig(oData, fCallback) {
|
||||||
this.request('AdminSettingsUpdate', fCallback, oData);
|
this.request('AdminSettingsUpdate', fCallback, oData);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,32 +1,39 @@
|
||||||
import ko from 'ko';
|
import { SaveSettingsStep } from 'Common/Enums';
|
||||||
|
|
||||||
import { SettingsGet } from 'Common/Globals';
|
import { SettingsGet } from 'Common/Globals';
|
||||||
import { settingsSaveHelperSimpleFunction } from 'Common/Utils';
|
import { settingsSaveHelperSimpleFunction, addObservablesTo, addSubscribablesTo } from 'Common/Utils';
|
||||||
|
|
||||||
import Remote from 'Remote/Admin/Fetch';
|
import Remote from 'Remote/Admin/Fetch';
|
||||||
|
|
||||||
export class BrandingAdminSettings /*extends AbstractViewSettings*/ {
|
export class BrandingAdminSettings /*extends AbstractViewSettings*/ {
|
||||||
constructor() {
|
constructor() {
|
||||||
this.title = ko.observable(SettingsGet('Title')).idleTrigger();
|
addObservablesTo(this, {
|
||||||
this.loadingDesc = ko.observable(SettingsGet('LoadingDescription')).idleTrigger();
|
title: SettingsGet('Title'),
|
||||||
this.faviconUrl = ko.observable(SettingsGet('FaviconUrl')).idleTrigger();
|
loadingDesc: SettingsGet('LoadingDescription'),
|
||||||
|
faviconUrl: SettingsGet('FaviconUrl'),
|
||||||
|
|
||||||
this.title.subscribe(value =>
|
titleTrigger: SaveSettingsStep.Idle,
|
||||||
Remote.saveAdminConfig(settingsSaveHelperSimpleFunction(this.title.trigger, this), {
|
loadingDescTrigger: SaveSettingsStep.Idle,
|
||||||
Title: value.trim()
|
faviconUrlTrigger: SaveSettingsStep.Idle
|
||||||
})
|
});
|
||||||
);
|
|
||||||
|
|
||||||
this.loadingDesc.subscribe(value =>
|
addSubscribablesTo(this, {
|
||||||
Remote.saveAdminConfig(settingsSaveHelperSimpleFunction(this.loadingDesc.trigger, this), {
|
title: (value =>
|
||||||
LoadingDescription: value.trim()
|
Remote.saveConfig({
|
||||||
})
|
Title: value.trim()
|
||||||
);
|
}, settingsSaveHelperSimpleFunction(this.titleTrigger, this))
|
||||||
|
).debounce(999),
|
||||||
|
|
||||||
this.faviconUrl.subscribe(value =>
|
loadingDesc: (value =>
|
||||||
Remote.saveAdminConfig(settingsSaveHelperSimpleFunction(this.faviconUrl.trigger, this), {
|
Remote.saveConfig({
|
||||||
FaviconUrl: value.trim()
|
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, {
|
addSubscribablesTo(this, {
|
||||||
enableContacts: value =>
|
enableContacts: value =>
|
||||||
Remote.saveAdminConfig(null, {
|
Remote.saveConfig({
|
||||||
ContactsEnable: value ? 1 : 0
|
ContactsEnable: value ? 1 : 0
|
||||||
}),
|
}),
|
||||||
|
|
||||||
contactsSync: value =>
|
contactsSync: value =>
|
||||||
Remote.saveAdminConfig(null, {
|
Remote.saveConfig({
|
||||||
ContactsSync: value ? 1 : 0
|
ContactsSync: value ? 1 : 0
|
||||||
}),
|
}),
|
||||||
|
|
||||||
|
|
@ -84,25 +84,25 @@ export class ContactsAdminSettings /*extends AbstractViewSettings*/ {
|
||||||
this.testContactsSuccess(false);
|
this.testContactsSuccess(false);
|
||||||
this.testContactsError(false);
|
this.testContactsError(false);
|
||||||
this.testContactsErrorMessage('');
|
this.testContactsErrorMessage('');
|
||||||
Remote.saveAdminConfig(settingsSaveHelperSimpleFunction(this.contactsTypeTrigger, this), {
|
Remote.saveConfig({
|
||||||
ContactsPdoType: value.trim()
|
ContactsPdoType: value.trim()
|
||||||
})
|
}, settingsSaveHelperSimpleFunction(this.contactsTypeTrigger, this))
|
||||||
},
|
},
|
||||||
|
|
||||||
pdoDsn: value =>
|
pdoDsn: value =>
|
||||||
Remote.saveAdminConfig(settingsSaveHelperSimpleFunction(this.pdoDsnTrigger, this), {
|
Remote.saveConfig({
|
||||||
ContactsPdoDsn: value.trim()
|
ContactsPdoDsn: value.trim()
|
||||||
}),
|
}, settingsSaveHelperSimpleFunction(this.pdoDsnTrigger, this)),
|
||||||
|
|
||||||
pdoUser: value =>
|
pdoUser: value =>
|
||||||
Remote.saveAdminConfig(settingsSaveHelperSimpleFunction(this.pdoUserTrigger, this), {
|
Remote.saveConfig({
|
||||||
ContactsPdoUser: value.trim()
|
ContactsPdoUser: value.trim()
|
||||||
}),
|
}, settingsSaveHelperSimpleFunction(this.pdoUserTrigger, this)),
|
||||||
|
|
||||||
pdoPassword: value =>
|
pdoPassword: value =>
|
||||||
Remote.saveAdminConfig(settingsSaveHelperSimpleFunction(this.pdoPasswordTrigger, this), {
|
Remote.saveConfig({
|
||||||
ContactsPdoPassword: value.trim()
|
ContactsPdoPassword: value.trim()
|
||||||
})
|
}, settingsSaveHelperSimpleFunction(this.pdoPasswordTrigger, this))
|
||||||
})
|
})
|
||||||
|
|
||||||
decorateKoCommands(this, {
|
decorateKoCommands(this, {
|
||||||
|
|
|
||||||
|
|
@ -87,38 +87,34 @@ export class GeneralAdminSettings /*extends AbstractViewSettings*/ {
|
||||||
this.languageAdminTrigger(saveSettingsStep);
|
this.languageAdminTrigger(saveSettingsStep);
|
||||||
setTimeout(() => this.languageAdminTrigger(SaveSettingsStep.Idle), 1000);
|
setTimeout(() => this.languageAdminTrigger(SaveSettingsStep.Idle), 1000);
|
||||||
},
|
},
|
||||||
fSaveBoolHelper = (key, fn) =>
|
fSaveBoolHelper = key =>
|
||||||
value => {
|
value => Remote.saveConfig({[key]: value ? 1 : 0});
|
||||||
const data = {};
|
|
||||||
data[key] = value ? 1 : 0;
|
|
||||||
Remote.saveAdminConfig(fn, data);
|
|
||||||
};
|
|
||||||
|
|
||||||
addSubscribablesTo(this, {
|
addSubscribablesTo(this, {
|
||||||
mainAttachmentLimit: value =>
|
mainAttachmentLimit: value =>
|
||||||
Remote.saveAdminConfig(settingsSaveHelperSimpleFunction(this.attachmentLimitTrigger, this), {
|
Remote.saveConfig({
|
||||||
AttachmentLimit: pInt(value)
|
AttachmentLimit: pInt(value)
|
||||||
}),
|
}, settingsSaveHelperSimpleFunction(this.attachmentLimitTrigger, this)),
|
||||||
|
|
||||||
language: value =>
|
language: value =>
|
||||||
Remote.saveAdminConfig(settingsSaveHelperSimpleFunction(this.languageTrigger, this), {
|
Remote.saveConfig({
|
||||||
Language: value.trim()
|
Language: value.trim()
|
||||||
}),
|
}, settingsSaveHelperSimpleFunction(this.languageTrigger, this)),
|
||||||
|
|
||||||
languageAdmin: value => {
|
languageAdmin: value => {
|
||||||
this.languageAdminTrigger(SaveSettingsStep.Animate);
|
this.languageAdminTrigger(SaveSettingsStep.Animate);
|
||||||
translatorReload(true, value)
|
translatorReload(true, value)
|
||||||
.then(fReloadLanguageHelper(SaveSettingsStep.TrueResult), fReloadLanguageHelper(SaveSettingsStep.FalseResult))
|
.then(fReloadLanguageHelper(SaveSettingsStep.TrueResult), fReloadLanguageHelper(SaveSettingsStep.FalseResult))
|
||||||
.then(() => Remote.saveAdminConfig(null, {
|
.then(() => Remote.saveConfig({
|
||||||
LanguageAdmin: value.trim()
|
LanguageAdmin: value.trim()
|
||||||
}));
|
}));
|
||||||
},
|
},
|
||||||
|
|
||||||
theme: value => {
|
theme: value => {
|
||||||
changeTheme(value, this.themeTrigger);
|
changeTheme(value, this.themeTrigger);
|
||||||
Remote.saveAdminConfig(settingsSaveHelperSimpleFunction(this.themeTrigger, this), {
|
Remote.saveConfig({
|
||||||
Theme: value.trim()
|
Theme: value.trim()
|
||||||
});
|
}, settingsSaveHelperSimpleFunction(this.themeTrigger, this));
|
||||||
},
|
},
|
||||||
|
|
||||||
capaAdditionalAccounts: fSaveBoolHelper('CapaAdditionalAccounts'),
|
capaAdditionalAccounts: fSaveBoolHelper('CapaAdditionalAccounts'),
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,4 @@
|
||||||
import ko from 'ko';
|
import { SaveSettingsStep } from 'Common/Enums';
|
||||||
|
|
||||||
import { Settings, SettingsGet } from 'Common/Globals';
|
import { Settings, SettingsGet } from 'Common/Globals';
|
||||||
import { settingsSaveHelperSimpleFunction, addObservablesTo, addSubscribablesTo } from 'Common/Utils';
|
import { settingsSaveHelperSimpleFunction, addObservablesTo, addSubscribablesTo } from 'Common/Utils';
|
||||||
|
|
||||||
|
|
@ -11,36 +10,37 @@ export class LoginAdminSettings /*extends AbstractViewSettings*/ {
|
||||||
determineUserLanguage: !!SettingsGet('DetermineUserLanguage'),
|
determineUserLanguage: !!SettingsGet('DetermineUserLanguage'),
|
||||||
determineUserDomain: !!SettingsGet('DetermineUserDomain'),
|
determineUserDomain: !!SettingsGet('DetermineUserDomain'),
|
||||||
allowLanguagesOnLogin: !!SettingsGet('AllowLanguagesOnLogin'),
|
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, {
|
addSubscribablesTo(this, {
|
||||||
determineUserLanguage: value =>
|
determineUserLanguage: value =>
|
||||||
Remote.saveAdminConfig(null, {
|
Remote.saveConfig({
|
||||||
DetermineUserLanguage: value ? 1 : 0
|
DetermineUserLanguage: value ? 1 : 0
|
||||||
}),
|
}),
|
||||||
|
|
||||||
determineUserDomain: value =>
|
determineUserDomain: value =>
|
||||||
Remote.saveAdminConfig(null, {
|
Remote.saveConfig({
|
||||||
DetermineUserDomain: value ? 1 : 0
|
DetermineUserDomain: value ? 1 : 0
|
||||||
}),
|
}),
|
||||||
|
|
||||||
allowLanguagesOnLogin: value =>
|
allowLanguagesOnLogin: value =>
|
||||||
Remote.saveAdminConfig(null, {
|
Remote.saveConfig({
|
||||||
AllowLanguagesOnLogin: value ? 1 : 0
|
AllowLanguagesOnLogin: value ? 1 : 0
|
||||||
}),
|
}),
|
||||||
|
|
||||||
hideSubmitButton: value =>
|
hideSubmitButton: value =>
|
||||||
Remote.saveAdminConfig(null, {
|
Remote.saveConfig({
|
||||||
hideSubmitButton: value ? 1 : 0
|
hideSubmitButton: value ? 1 : 0
|
||||||
}),
|
}),
|
||||||
|
|
||||||
defaultDomain: value =>
|
defaultDomain: (value =>
|
||||||
Remote.saveAdminConfig(settingsSaveHelperSimpleFunction(this.defaultDomain.trigger, this), {
|
Remote.saveConfig({
|
||||||
LoginDefaultDomain: value.trim()
|
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 { showScreenPopup } from 'Knoin/Knoin';
|
||||||
import { PluginPopupView } from 'View/Popup/Plugin';
|
import { PluginPopupView } from 'View/Popup/Plugin';
|
||||||
import { SettingsGet } from 'Common/Globals';
|
import { SettingsGet } from 'Common/Globals';
|
||||||
import { addComputablesTo } from 'Common/Utils';
|
import { addObservablesTo, addComputablesTo } from 'Common/Utils';
|
||||||
|
|
||||||
export class PackagesAdminSettings /*extends AbstractViewSettings*/ {
|
export class PackagesAdminSettings /*extends AbstractViewSettings*/ {
|
||||||
constructor() {
|
constructor() {
|
||||||
this.packagesError = ko.observable('');
|
addObservablesTo(this, {
|
||||||
|
packagesError: '',
|
||||||
|
enabledPlugins: !!SettingsGet('EnabledPlugins')
|
||||||
|
});
|
||||||
|
|
||||||
this.packages = PackageAdminStore;
|
this.packages = PackageAdminStore;
|
||||||
|
|
||||||
|
|
@ -25,9 +28,8 @@ export class PackagesAdminSettings /*extends AbstractViewSettings*/ {
|
||||||
visibility: () => (PackageAdminStore.loading() ? 'visible' : 'hidden')
|
visibility: () => (PackageAdminStore.loading() ? 'visible' : 'hidden')
|
||||||
});
|
});
|
||||||
|
|
||||||
this.enabledPlugins = ko.observable(!!SettingsGet('EnabledPlugins'));
|
|
||||||
this.enabledPlugins.subscribe(value =>
|
this.enabledPlugins.subscribe(value =>
|
||||||
Remote.saveAdminConfig(null, {
|
Remote.saveConfig({
|
||||||
EnabledPlugins: value ? 1 : 0
|
EnabledPlugins: value ? 1 : 0
|
||||||
})
|
})
|
||||||
);
|
);
|
||||||
|
|
|
||||||
|
|
@ -51,24 +51,24 @@ export class SecurityAdminSettings /*extends AbstractViewSettings*/ {
|
||||||
},
|
},
|
||||||
|
|
||||||
capaOpenPGP: value =>
|
capaOpenPGP: value =>
|
||||||
Remote.saveAdminConfig(null, {
|
Remote.saveConfig({
|
||||||
CapaOpenPGP: value ? 1 : 0
|
CapaOpenPGP: value ? 1 : 0
|
||||||
}),
|
}),
|
||||||
|
|
||||||
useLocalProxyForExternalImages: value =>
|
useLocalProxyForExternalImages: value =>
|
||||||
Remote.saveAdminConfig(null, {
|
Remote.saveConfig({
|
||||||
UseLocalProxyForExternalImages: value ? 1 : 0
|
UseLocalProxyForExternalImages: value ? 1 : 0
|
||||||
}),
|
}),
|
||||||
|
|
||||||
verifySslCertificate: value => {
|
verifySslCertificate: value => {
|
||||||
value => value || this.allowSelfSigned(true);
|
value || this.allowSelfSigned(true);
|
||||||
Remote.saveAdminConfig(null, {
|
Remote.saveConfig({
|
||||||
VerifySslCertificate: value ? 1 : 0
|
VerifySslCertificate: value ? 1 : 0
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
allowSelfSigned: value =>
|
allowSelfSigned: value =>
|
||||||
Remote.saveAdminConfig(null, {
|
Remote.saveConfig({
|
||||||
AllowSelfSigned: value ? 1 : 0
|
AllowSelfSigned: value ? 1 : 0
|
||||||
})
|
})
|
||||||
});
|
});
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@
|
||||||
name: 'Input',
|
name: 'Input',
|
||||||
params: {
|
params: {
|
||||||
value: title,
|
value: title,
|
||||||
trigger: title.trigger,
|
trigger: titleTrigger,
|
||||||
size: 5
|
size: 5
|
||||||
}
|
}
|
||||||
}"></div>
|
}"></div>
|
||||||
|
|
@ -17,7 +17,7 @@
|
||||||
name: 'Input',
|
name: 'Input',
|
||||||
params: {
|
params: {
|
||||||
value: loadingDesc,
|
value: loadingDesc,
|
||||||
trigger: loadingDesc.trigger,
|
trigger: loadingDescTrigger,
|
||||||
size: 5
|
size: 5
|
||||||
}
|
}
|
||||||
}"></div>
|
}"></div>
|
||||||
|
|
@ -28,7 +28,7 @@
|
||||||
name: 'Input',
|
name: 'Input',
|
||||||
params: {
|
params: {
|
||||||
value: faviconUrl,
|
value: faviconUrl,
|
||||||
trigger: faviconUrl.trigger,
|
trigger: faviconUrlTrigger,
|
||||||
placeholder: 'https://',
|
placeholder: 'https://',
|
||||||
size: 5
|
size: 5
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@
|
||||||
name: 'Input',
|
name: 'Input',
|
||||||
params: {
|
params: {
|
||||||
value: defaultDomain,
|
value: defaultDomain,
|
||||||
trigger: defaultDomain.trigger,
|
trigger: defaultDomainTrigger,
|
||||||
size: 3
|
size: 3
|
||||||
}
|
}
|
||||||
}"></div>
|
}"></div>
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue