mirror of
https://github.com/the-djmaze/snappymail.git
synced 2026-09-01 21:49:21 +03:00
Improved observables
This commit is contained in:
parent
8d7e25fc7c
commit
7db7d5545b
28 changed files with 236 additions and 234 deletions
|
|
@ -2,10 +2,11 @@ import ko from 'ko';
|
|||
|
||||
class AccountUserStore {
|
||||
constructor() {
|
||||
this.email = ko.observable('');
|
||||
this.parentEmail = ko.observable('');
|
||||
|
||||
this.signature = ko.observable('');
|
||||
ko.addObservablesTo(this, {
|
||||
email: '',
|
||||
parentEmail: '',
|
||||
signature: ''
|
||||
});
|
||||
|
||||
this.accounts = ko.observableArray([]);
|
||||
this.accounts.loading = ko.observable(false).extend({ throttle: 100 });
|
||||
|
|
|
|||
|
|
@ -7,9 +7,21 @@ const Settings = rl.settings;
|
|||
|
||||
class AppUserStore {
|
||||
constructor() {
|
||||
this.currentAudio = ko.observable('');
|
||||
ko.addObservablesTo(this, {
|
||||
currentAudio: '',
|
||||
|
||||
this.focusedState = ko.observable(Focused.None);
|
||||
focusedState: Focused.None,
|
||||
|
||||
projectHash: '',
|
||||
threadsAllowed: false,
|
||||
|
||||
composeInEdit: false,
|
||||
|
||||
contactsAutosave: false,
|
||||
useLocalProxyForExternalImages: false,
|
||||
|
||||
contactsIsAllowed: false
|
||||
});
|
||||
|
||||
const isMobile = Settings.app('mobile');
|
||||
|
||||
|
|
@ -38,16 +50,6 @@ class AppUserStore {
|
|||
}
|
||||
});
|
||||
|
||||
this.projectHash = ko.observable('');
|
||||
this.threadsAllowed = ko.observable(false);
|
||||
|
||||
this.composeInEdit = ko.observable(false);
|
||||
|
||||
this.contactsAutosave = ko.observable(false);
|
||||
this.useLocalProxyForExternalImages = ko.observable(false);
|
||||
|
||||
this.contactsIsAllowed = ko.observable(false);
|
||||
|
||||
this.attachmentsActions = ko.observableArray([]);
|
||||
|
||||
this.devEmail = '';
|
||||
|
|
|
|||
|
|
@ -9,11 +9,13 @@ class ContactUserStore {
|
|||
this.contacts.exportingVcf = ko.observable(false).extend({ throttle: 200 });
|
||||
this.contacts.exportingCsv = ko.observable(false).extend({ throttle: 200 });
|
||||
|
||||
this.allowContactsSync = ko.observable(false);
|
||||
this.enableContactsSync = ko.observable(false);
|
||||
this.contactsSyncUrl = ko.observable('');
|
||||
this.contactsSyncUser = ko.observable('');
|
||||
this.contactsSyncPass = ko.observable('');
|
||||
ko.addObservablesTo(this, {
|
||||
allowContactsSync: false,
|
||||
enableContactsSync: false,
|
||||
contactsSyncUrl: '',
|
||||
contactsSyncUser: '',
|
||||
contactsSyncPass: ''
|
||||
});
|
||||
}
|
||||
|
||||
populate() {
|
||||
|
|
|
|||
|
|
@ -2,15 +2,16 @@ import ko from 'ko';
|
|||
|
||||
class FilterUserStore {
|
||||
constructor() {
|
||||
this.capa = ko.observable('');
|
||||
this.modules = ko.observable({});
|
||||
ko.addObservablesTo(this, {
|
||||
capa: '',
|
||||
modules: {},
|
||||
raw: ''
|
||||
});
|
||||
|
||||
this.filters = ko.observableArray([]);
|
||||
|
||||
this.filters.loading = ko.observable(false).extend({ throttle: 200 });
|
||||
this.filters.saving = ko.observable(false).extend({ throttle: 200 });
|
||||
|
||||
this.raw = ko.observable('');
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -7,26 +7,29 @@ import { getFolderInboxName, getFolderFromCacheList } from 'Common/Cache';
|
|||
|
||||
class FolderUserStore {
|
||||
constructor() {
|
||||
this.displaySpecSetting = ko.observable(true);
|
||||
ko.addObservablesTo(this, {
|
||||
displaySpecSetting: true,
|
||||
|
||||
this.sentFolder = ko.observable('');
|
||||
this.draftFolder = ko.observable('');
|
||||
this.spamFolder = ko.observable('');
|
||||
this.trashFolder = ko.observable('');
|
||||
this.archiveFolder = ko.observable('');
|
||||
sentFolder: '',
|
||||
draftFolder: '',
|
||||
spamFolder: '',
|
||||
trashFolder: '',
|
||||
archiveFolder: '',
|
||||
|
||||
folderListOptimized: false,
|
||||
folderListError: '',
|
||||
|
||||
foldersLoading: false,
|
||||
foldersCreating: false,
|
||||
foldersDeleting: false,
|
||||
foldersRenaming: false,
|
||||
|
||||
foldersInboxUnreadCount: 0
|
||||
});
|
||||
|
||||
this.namespace = '';
|
||||
|
||||
this.folderList = ko.observableArray([]);
|
||||
this.folderList.optimized = ko.observable(false);
|
||||
this.folderList.error = ko.observable('');
|
||||
|
||||
this.foldersLoading = ko.observable(false);
|
||||
this.foldersCreating = ko.observable(false);
|
||||
this.foldersDeleting = ko.observable(false);
|
||||
this.foldersRenaming = ko.observable(false);
|
||||
|
||||
this.foldersInboxUnreadCount = ko.observable(0);
|
||||
|
||||
this.currentFolder = ko.observable(null).extend({ toggleSubscribeProperty: [this, 'selected'] });
|
||||
|
||||
|
|
|
|||
|
|
@ -59,44 +59,47 @@ class MessageUserStore {
|
|||
|
||||
this.messageList = ko.observableArray([]).extend({ rateLimit: 0 });
|
||||
|
||||
this.messageListCount = ko.observable(0);
|
||||
this.messageListSearch = ko.observable('');
|
||||
this.messageListThreadUid = ko.observable('');
|
||||
this.messageListPage = ko.observable(1);
|
||||
this.messageListPageBeforeThread = ko.observable(1);
|
||||
this.messageListError = ko.observable('');
|
||||
ko.addObservablesTo(this, {
|
||||
messageListCount: 0,
|
||||
messageListSearch: '',
|
||||
messageListThreadUid: '',
|
||||
messageListPage: 1,
|
||||
messageListPageBeforeThread: 1,
|
||||
messageListError: '',
|
||||
|
||||
this.messageListEndFolder = ko.observable('');
|
||||
this.messageListEndSearch = ko.observable('');
|
||||
this.messageListEndThreadUid = ko.observable('');
|
||||
this.messageListEndPage = ko.observable(1);
|
||||
messageListEndFolder: '',
|
||||
messageListEndSearch: '',
|
||||
messageListEndThreadUid: '',
|
||||
messageListEndPage: 1,
|
||||
|
||||
messageListLoading: false,
|
||||
messageListIsNotCompleted: false,
|
||||
|
||||
selectorMessageSelected: null,
|
||||
selectorMessageFocused: null,
|
||||
|
||||
// message viewer
|
||||
message: null,
|
||||
|
||||
messageViewTrigger: false,
|
||||
|
||||
messageError: '',
|
||||
|
||||
messageCurrentLoading: false,
|
||||
|
||||
messageFullScreenMode: false,
|
||||
|
||||
messagesBodiesDom: null,
|
||||
messageActiveDom: null
|
||||
});
|
||||
|
||||
this.messageListLoading = ko.observable(false);
|
||||
this.messageListIsNotCompleted = ko.observable(false);
|
||||
this.messageListCompleteLoadingThrottle = ko.observable(false).extend({ throttle: 200 });
|
||||
this.messageListCompleteLoadingThrottleForAnimation = ko.observable(false).extend({ specialThrottle: 700 });
|
||||
|
||||
this.messageListDisableAutoSelect = ko.observable(false).extend({ falseTimeout: 500 });
|
||||
|
||||
this.selectorMessageSelected = ko.observable(null);
|
||||
this.selectorMessageFocused = ko.observable(null);
|
||||
|
||||
// message viewer
|
||||
this.message = ko.observable(null);
|
||||
|
||||
this.message.viewTrigger = ko.observable(false);
|
||||
|
||||
this.messageError = ko.observable('');
|
||||
|
||||
this.messageCurrentLoading = ko.observable(false);
|
||||
|
||||
this.messageLoadingThrottle = ko.observable(false).extend({ throttle: 50 });
|
||||
|
||||
this.messageFullScreenMode = ko.observable(false);
|
||||
|
||||
this.messagesBodiesDom = ko.observable(null);
|
||||
this.messageActiveDom = ko.observable(null);
|
||||
|
||||
this.messageLoading = ko.computed(() => this.messageCurrentLoading());
|
||||
|
||||
this.messageListEndHash = ko.computed(
|
||||
|
|
|
|||
|
|
@ -23,13 +23,15 @@ class SettingsUserStore {
|
|||
|
||||
this.messagesPerPage = ko.observable(20).extend({ limitedList: MESSAGES_PER_PAGE_VALUES });
|
||||
|
||||
this.showImages = ko.observable(false);
|
||||
this.useCheckboxesInList = ko.observable(true);
|
||||
this.allowDraftAutosave = ko.observable(true);
|
||||
this.useThreads = ko.observable(false);
|
||||
this.replySameFolder = ko.observable(false);
|
||||
ko.addObservablesTo(this, {
|
||||
showImages: false,
|
||||
useCheckboxesInList: true,
|
||||
allowDraftAutosave: true,
|
||||
useThreads: false,
|
||||
replySameFolder: false,
|
||||
|
||||
this.autoLogout = ko.observable(30);
|
||||
autoLogout: 30
|
||||
});
|
||||
|
||||
this.usePreviewPane = ko.computed(() => Layout.NoPreview !== this.layout());
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue