mirror of
https://github.com/the-djmaze/snappymail.git
synced 2026-08-29 20:19:22 +03:00
Improved observables
This commit is contained in:
parent
8d7e25fc7c
commit
7db7d5545b
28 changed files with 236 additions and 234 deletions
|
|
@ -11,8 +11,26 @@ const settingsGet = rl.settings.get;
|
|||
class ContactsAdminSettings {
|
||||
constructor() {
|
||||
this.defaultOptionsAfterRender = defaultOptionsAfterRender;
|
||||
this.enableContacts = ko.observable(!!settingsGet('ContactsEnable'));
|
||||
this.contactsSync = ko.observable(!!settingsGet('ContactsSync'));
|
||||
|
||||
ko.addObservablesTo(this, {
|
||||
enableContacts: !!settingsGet('ContactsEnable'),
|
||||
contactsSync: !!settingsGet('ContactsSync'),
|
||||
contactsType: '',
|
||||
|
||||
pdoDsn: settingsGet('ContactsPdoDsn'),
|
||||
pdoUser: settingsGet('ContactsPdoUser'),
|
||||
pdoPassword: settingsGet('ContactsPdoPassword'),
|
||||
|
||||
pdoDsnTrigger: SaveSettingsStep.Idle,
|
||||
pdoUserTrigger: SaveSettingsStep.Idle,
|
||||
pdoPasswordTrigger: SaveSettingsStep.Idle,
|
||||
contactsTypeTrigger: SaveSettingsStep.Idle,
|
||||
|
||||
testing: false,
|
||||
testContactsSuccess: false,
|
||||
testContactsError: false,
|
||||
testContactsErrorMessage: ''
|
||||
});
|
||||
|
||||
const supportedTypes = settingsGet('supportedPdoDrivers') || [],
|
||||
types = [{
|
||||
|
|
@ -30,8 +48,6 @@ class ContactsAdminSettings {
|
|||
|
||||
this.contactsTypesOptions = types;
|
||||
|
||||
this.contactsType = ko.observable('');
|
||||
|
||||
this.mainContactsType = ko
|
||||
.computed({
|
||||
read: this.contactsType,
|
||||
|
|
@ -55,20 +71,6 @@ class ContactsAdminSettings {
|
|||
this.testContactsErrorMessage('');
|
||||
});
|
||||
|
||||
this.pdoDsn = ko.observable(settingsGet('ContactsPdoDsn'));
|
||||
this.pdoUser = ko.observable(settingsGet('ContactsPdoUser'));
|
||||
this.pdoPassword = ko.observable(settingsGet('ContactsPdoPassword'));
|
||||
|
||||
this.pdoDsnTrigger = ko.observable(SaveSettingsStep.Idle);
|
||||
this.pdoUserTrigger = ko.observable(SaveSettingsStep.Idle);
|
||||
this.pdoPasswordTrigger = ko.observable(SaveSettingsStep.Idle);
|
||||
this.contactsTypeTrigger = ko.observable(SaveSettingsStep.Idle);
|
||||
|
||||
this.testing = ko.observable(false);
|
||||
this.testContactsSuccess = ko.observable(false);
|
||||
this.testContactsError = ko.observable(false);
|
||||
this.testContactsErrorMessage = ko.observable('');
|
||||
|
||||
this.contactsType(settingsGet('ContactsPdoType'));
|
||||
|
||||
this.onTestContactsResponse = this.onTestContactsResponse.bind(this);
|
||||
|
|
|
|||
|
|
@ -39,9 +39,15 @@ class GeneralAdminSettings {
|
|||
this.capaAttachmentThumbnails = CapaAdminStore.attachmentThumbnails;
|
||||
this.capaTemplates = CapaAdminStore.templates;
|
||||
|
||||
this.allowLanguagesOnSettings = ko.observable(!!settingsGet('AllowLanguagesOnSettings'));
|
||||
ko.addObservablesTo(this, {
|
||||
allowLanguagesOnSettings: !!settingsGet('AllowLanguagesOnSettings'),
|
||||
newMoveToFolder: !!settingsGet('NewMoveToFolder'),
|
||||
attachmentLimitTrigger: SaveSettingsStep.Idle,
|
||||
languageTrigger: SaveSettingsStep.Idle,
|
||||
themeTrigger: SaveSettingsStep.Idle
|
||||
});
|
||||
|
||||
this.weakPassword = AppAdminStore.weakPassword;
|
||||
this.newMoveToFolder = ko.observable(!!settingsGet('NewMoveToFolder'));
|
||||
|
||||
this.dataFolderAccess = AppAdminStore.dataFolderAccess;
|
||||
|
||||
|
|
@ -67,10 +73,7 @@ class GeneralAdminSettings {
|
|||
this.languageFullName = ko.computed(() => convertLangName(this.language()));
|
||||
this.languageAdminFullName = ko.computed(() => convertLangName(this.languageAdmin()));
|
||||
|
||||
this.attachmentLimitTrigger = ko.observable(SaveSettingsStep.Idle);
|
||||
this.languageTrigger = ko.observable(SaveSettingsStep.Idle);
|
||||
this.languageAdminTrigger = ko.observable(SaveSettingsStep.Idle).extend({ throttle: 100 });
|
||||
this.themeTrigger = ko.observable(SaveSettingsStep.Idle);
|
||||
}
|
||||
|
||||
onBuild() {
|
||||
|
|
|
|||
|
|
@ -7,13 +7,14 @@ import Remote from 'Remote/Admin/Fetch';
|
|||
class LoginAdminSettings {
|
||||
constructor() {
|
||||
const settingsGet = rl.settings.get;
|
||||
this.determineUserLanguage = ko.observable(!!settingsGet('DetermineUserLanguage'));
|
||||
this.determineUserDomain = ko.observable(!!settingsGet('DetermineUserDomain'));
|
||||
ko.addObservablesTo(this, {
|
||||
determineUserLanguage: !!settingsGet('DetermineUserLanguage'),
|
||||
determineUserDomain: !!settingsGet('DetermineUserDomain'),
|
||||
allowLanguagesOnLogin: !!settingsGet('AllowLanguagesOnLogin'),
|
||||
dummy: false
|
||||
});
|
||||
|
||||
this.defaultDomain = ko.observable(settingsGet('LoginDefaultDomain')).idleTrigger();
|
||||
this.allowLanguagesOnLogin = ko.observable(!!settingsGet('AllowLanguagesOnLogin'));
|
||||
|
||||
this.dummy = ko.observable(false);
|
||||
}
|
||||
|
||||
onBuild() {
|
||||
|
|
|
|||
|
|
@ -13,8 +13,6 @@ const settingsGet = rl.settings.get;
|
|||
|
||||
class SecurityAdminSettings {
|
||||
constructor() {
|
||||
this.useLocalProxyForExternalImages = ko.observable(!!rl.settings.get('UseLocalProxyForExternalImages'));
|
||||
|
||||
this.weakPassword = AppAdminStore.weakPassword;
|
||||
|
||||
this.capaOpenPGP = CapaAdminStore.openPGP;
|
||||
|
|
@ -22,35 +20,39 @@ class SecurityAdminSettings {
|
|||
this.capaTwoFactorAuth = CapaAdminStore.twoFactorAuth;
|
||||
this.capaTwoFactorAuthForce = CapaAdminStore.twoFactorAuthForce;
|
||||
|
||||
ko.addObservablesTo(this, {
|
||||
useLocalProxyForExternalImages: !!rl.settings.get('UseLocalProxyForExternalImages'),
|
||||
|
||||
verifySslCertificate: !!settingsGet('VerifySslCertificate'),
|
||||
allowSelfSigned: !!settingsGet('AllowSelfSigned'),
|
||||
|
||||
isTwoFactorDropperShown: false,
|
||||
twoFactorDropperUser: '',
|
||||
twoFactorDropperUserFocused: false,
|
||||
|
||||
adminLogin: settingsGet('AdminLogin'),
|
||||
adminLoginError: false,
|
||||
adminPassword: '',
|
||||
adminPasswordNew: '',
|
||||
adminPasswordNew2: '',
|
||||
adminPasswordNewError: false,
|
||||
|
||||
adminPasswordUpdateError: false,
|
||||
adminPasswordUpdateSuccess: false
|
||||
});
|
||||
|
||||
this.capaTwoFactorAuth.subscribe(value => {
|
||||
if (!value) {
|
||||
this.capaTwoFactorAuthForce(false);
|
||||
}
|
||||
});
|
||||
|
||||
this.verifySslCertificate = ko.observable(!!settingsGet('VerifySslCertificate'));
|
||||
this.allowSelfSigned = ko.observable(!!settingsGet('AllowSelfSigned'));
|
||||
|
||||
this.verifySslCertificate.subscribe(value => {
|
||||
if (!value) {
|
||||
this.allowSelfSigned(true);
|
||||
}
|
||||
});
|
||||
|
||||
this.isTwoFactorDropperShown = ko.observable(false);
|
||||
this.twoFactorDropperUser = ko.observable('');
|
||||
this.twoFactorDropperUser.focused = ko.observable(false);
|
||||
|
||||
this.adminLogin = ko.observable(settingsGet('AdminLogin'));
|
||||
this.adminLoginError = ko.observable(false);
|
||||
this.adminPassword = ko.observable('');
|
||||
this.adminPasswordNew = ko.observable('');
|
||||
this.adminPasswordNew2 = ko.observable('');
|
||||
this.adminPasswordNewError = ko.observable(false);
|
||||
|
||||
this.adminPasswordUpdateError = ko.observable(false);
|
||||
this.adminPasswordUpdateSuccess = ko.observable(false);
|
||||
|
||||
this.adminPassword.subscribe(() => {
|
||||
this.adminPasswordUpdateError(false);
|
||||
this.adminPasswordUpdateSuccess(false);
|
||||
|
|
@ -104,7 +106,7 @@ class SecurityAdminSettings {
|
|||
this.isTwoFactorDropperShown(true);
|
||||
|
||||
setTimeout(() => {
|
||||
this.twoFactorDropperUser.focused(true);
|
||||
this.twoFactorDropperUserFocused(true);
|
||||
}, 50);
|
||||
}
|
||||
|
||||
|
|
@ -167,7 +169,7 @@ class SecurityAdminSettings {
|
|||
|
||||
this.isTwoFactorDropperShown(false);
|
||||
this.twoFactorDropperUser('');
|
||||
this.twoFactorDropperUser.focused(false);
|
||||
this.twoFactorDropperUserFocused(false);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -16,12 +16,14 @@ class FiltersUserSettings {
|
|||
this.modules = FilterStore.modules;
|
||||
this.filters = FilterStore.filters;
|
||||
|
||||
this.inited = ko.observable(false);
|
||||
this.serverError = ko.observable(false);
|
||||
this.serverErrorDesc = ko.observable('');
|
||||
this.haveChanges = ko.observable(false);
|
||||
ko.addObservablesTo(this, {
|
||||
inited: false,
|
||||
serverError: false,
|
||||
serverErrorDesc: '',
|
||||
haveChanges: false,
|
||||
|
||||
this.saveErrorText = ko.observable('');
|
||||
saveErrorText: ''
|
||||
});
|
||||
|
||||
this.serverError.subscribe((value) => {
|
||||
if (!value) {
|
||||
|
|
@ -37,18 +39,14 @@ class FiltersUserSettings {
|
|||
|
||||
this.filterForDeletion = ko.observable(null).deleteAccessHelper();
|
||||
|
||||
this.filters.subscribe(() => {
|
||||
this.haveChanges(true);
|
||||
});
|
||||
this.filters.subscribe(() => this.haveChanges(true));
|
||||
|
||||
this.filterRaw.subscribe(() => {
|
||||
this.haveChanges(true);
|
||||
this.filterRaw.error(false);
|
||||
});
|
||||
|
||||
this.haveChanges.subscribe(() => {
|
||||
this.saveErrorText('');
|
||||
});
|
||||
this.haveChanges.subscribe(() => this.saveErrorText(''));
|
||||
|
||||
this.filterRaw.active.subscribe(() => {
|
||||
this.haveChanges(true);
|
||||
|
|
|
|||
|
|
@ -62,7 +62,7 @@ class FoldersUserSettings {
|
|||
}
|
||||
|
||||
onShow() {
|
||||
FolderStore.folderList.error('');
|
||||
FolderStore.folderListError('');
|
||||
}
|
||||
|
||||
onBuild(oDom) {
|
||||
|
|
@ -113,7 +113,7 @@ class FoldersUserSettings {
|
|||
removeFolderFromCacheList(folderToRemove.fullNameRaw);
|
||||
}
|
||||
} else if (0 < folderToRemove.privateMessageCountAll()) {
|
||||
FolderStore.folderList.error(getNotification(Notification.CantDeleteNonEmptyFolder));
|
||||
FolderStore.folderListError(getNotification(Notification.CantDeleteNonEmptyFolder));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -47,9 +47,11 @@ class GeneralUserSettings {
|
|||
this.languageFullName = ko.computed(() => convertLangName(this.language()));
|
||||
this.languageTrigger = ko.observable(SaveSettingsStep.Idle).extend({ throttle: 100 });
|
||||
|
||||
this.mppTrigger = ko.observable(SaveSettingsStep.Idle);
|
||||
this.editorDefaultTypeTrigger = ko.observable(SaveSettingsStep.Idle);
|
||||
this.layoutTrigger = ko.observable(SaveSettingsStep.Idle);
|
||||
ko.addObservablesTo(this, {
|
||||
mppTrigger: SaveSettingsStep.Idle,
|
||||
editorDefaultTypeTrigger: SaveSettingsStep.Idle,
|
||||
layoutTrigger: SaveSettingsStep.Idle
|
||||
});
|
||||
|
||||
this.identities = IdentityStore.identities;
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue