diff --git a/dev/Common/EnumsUser.js b/dev/Common/EnumsUser.js index 178bdc773..6f3067740 100644 --- a/dev/Common/EnumsUser.js +++ b/dev/Common/EnumsUser.js @@ -28,22 +28,6 @@ export const FolderMetadataKeys = { KolabFolderTypeShared: '/shared/vendor/kolab/folder-type' }; -/** - * @enum {string} - */ -export const FolderSortMode = { - DateDesc: '', // default 'REVERSE DATE' - DateAsc: 'DATE', - FromDesc: 'REVERSE FROM', - FromAsc: 'FROM', - SizeDesc: 'REVERSE SIZE', - SizeAsc: 'SIZE', - SubjectDesc: 'REVERSE SUBJECT', - SubjectAsc: 'SUBJECT' -// ToDesc: 'REVERSE TO', -// ToAsc: 'TO', -}; - /** * @enum {string} */ diff --git a/dev/External/ko.js b/dev/External/ko.js index 7044ab55e..7a3bf6734 100644 --- a/dev/External/ko.js +++ b/dev/External/ko.js @@ -2,7 +2,7 @@ import ko from 'ko'; import { i18nToNodes } from 'Common/Translator'; import { doc, createElement } from 'Common/Globals'; import { SaveSettingsStep } from 'Common/Enums'; -import { arrayLength, isFunction, forEachObjectEntry } from 'Common/Utils'; +import { isFunction, forEachObjectEntry } from 'Common/Utils'; export const errorTip = (element, value) => value @@ -146,28 +146,6 @@ Object.assign(ko.bindingHandlers, { // extenders -ko.extenders.limitedList = (target, limitedList) => { - const result = ko - .computed({ - read: target, - write: newValue => { - let currentValue = target(), - list = ko.unwrap(limitedList); - list = arrayLength(list) ? list : ['']; - if (!list.includes(newValue)) { - newValue = list.includes(currentValue, list) ? currentValue : list[0]; - target(newValue + ' '); - } - target(newValue); - } - }) - .extend({ notify: 'always' }); - - result(target()); - - return result; -}; - ko.extenders.toggleSubscribeProperty = (target, options) => { const prop = options[1]; if (prop) { diff --git a/dev/Settings/Admin/General.js b/dev/Settings/Admin/General.js index bb4a26171..81119fb33 100644 --- a/dev/Settings/Admin/General.js +++ b/dev/Settings/Admin/General.js @@ -30,9 +30,7 @@ export class AdminSettingsGeneral extends AbstractViewSettings { const aLanguagesAdmin = Settings.app('languagesAdmin'); this.languagesAdmin = ko.observableArray(isArray(aLanguagesAdmin) ? aLanguagesAdmin : []); - this.languageAdmin = ko - .observable(SettingsGet('LanguageAdmin')) - .extend({ limitedList: this.languagesAdmin }); + this.languageAdmin = ko.observable(SettingsGet('LanguageAdmin')); this.theme = ThemeStore.theme; this.themes = ThemeStore.themes; diff --git a/dev/Stores/Language.js b/dev/Stores/Language.js index 546785e18..1bb8566ba 100644 --- a/dev/Stores/Language.js +++ b/dev/Stores/Language.js @@ -3,6 +3,7 @@ import { Settings, SettingsGet } from 'Common/Globals'; import { isArray } from 'Common/Utils'; export const LanguageStore = { + language: ko.observable(''), languages: ko.observableArray(), userLanguage: ko.observable(''), @@ -13,6 +14,3 @@ export const LanguageStore = { this.userLanguage(SettingsGet('UserLanguage')); } } - -LanguageStore.language = ko.observable('') - .extend({ limitedList: LanguageStore.languages }); diff --git a/dev/Stores/Theme.js b/dev/Stores/Theme.js index 4864ef04f..2bc96b591 100644 --- a/dev/Stores/Theme.js +++ b/dev/Stores/Theme.js @@ -4,6 +4,7 @@ import { isArray } from 'Common/Utils'; import { serverRequestRaw } from 'Common/Links'; export const ThemeStore = { + theme: ko.observable(''), themes: ko.observableArray(), userBackgroundName: ko.observable(''), userBackgroundHash: ko.observable(''), @@ -23,8 +24,6 @@ export const ThemeStore = { } }; -ThemeStore.theme = ko.observable('').extend({ limitedList: ThemeStore.themes }); - ThemeStore.isMobile.subscribe(value => $htmlCL.toggle('rl-mobile', value)); ThemeStore.userBackgroundHash.subscribe(value => { diff --git a/dev/Stores/User/Folder.js b/dev/Stores/User/Folder.js index aec4bf758..d7e1ebd20 100644 --- a/dev/Stores/User/Folder.js +++ b/dev/Stores/User/Folder.js @@ -1,7 +1,7 @@ import ko from 'ko'; import { koComputable } from 'External/ko'; -import { FolderType, FolderSortMode } from 'Common/EnumsUser'; +import { FolderType } from 'Common/EnumsUser'; import { UNUSED_OPTION_VALUE } from 'Common/Consts'; import { forEachObjectEntry } from 'Common/Utils'; import { addObservablesTo, addSubscribablesTo, addComputablesTo } from 'External/ko'; @@ -44,7 +44,7 @@ export const FolderUserStore = new class { foldersInboxUnreadCount: 0 }); - self.sortMode = ko.observable('').extend({ limitedList: Object.values(FolderSortMode) }); + self.sortMode = ko.observable(''); self.namespace = ''; diff --git a/dev/Stores/User/Settings.js b/dev/Stores/User/Settings.js index 8d7ad9d90..eabf47a26 100644 --- a/dev/Stores/User/Settings.js +++ b/dev/Stores/User/Settings.js @@ -1,7 +1,7 @@ import ko from 'ko'; import { koComputable } from 'External/ko'; -import { Layout, EditorDefaultType, ComposeType } from 'Common/EnumsUser'; +import { Layout } from 'Common/EnumsUser'; import { pInt } from 'Common/Utils'; import { addObservablesTo } from 'External/ko'; import { $htmlCL, SettingsGet, fireEvent } from 'Common/Globals'; @@ -11,24 +11,6 @@ export const SettingsUserStore = new class { constructor() { const self = this; - self.layout = ko - .observable(1) - .extend({ limitedList: Object.values(Layout) }); - - self.editorDefaultType = ko.observable('Html').extend({ - limitedList: [ - EditorDefaultType.Html, - EditorDefaultType.Plain - ] - }); - - self.msgDefaultAction = ko.observable(1).extend({ - limitedList: [ - ComposeType.Reply, - ComposeType.ReplyAll - ] - }); - self.messagesPerPage = ko.observable(25).extend({ debounce: 999 }); self.messageReadDelay = ko.observable(5).extend({ debounce: 999 }); @@ -48,7 +30,11 @@ export const SettingsUserStore = new class { requestReadReceipt: 0, requestDsn: 0, pgpSign: 0, - pgpEncrypt: 0 + pgpEncrypt: 0, + + layout: 1, + editorDefaultType: 'Html', + msgDefaultAction: 1 }); self.init(); diff --git a/dev/View/Popup/Compose.js b/dev/View/Popup/Compose.js index b57ad59ae..a3e8884de 100644 --- a/dev/View/Popup/Compose.js +++ b/dev/View/Popup/Compose.js @@ -126,10 +126,7 @@ const } }, - isPlainEditor = () => { - let type = SettingsUserStore.editorDefaultType(); - return EditorDefaultType.Html !== type; - }, + isPlainEditor = () => EditorDefaultType.Plain === SettingsUserStore.editorDefaultType(), /** * @param {string} prefix @@ -966,10 +963,7 @@ export class ComposePopupView extends AbstractViewPopup { this.editor(editor => { encrypted || editor.setHtml(sText); - if (encrypted - || EditorDefaultType.Plain === SettingsUserStore.editorDefaultType() - || !message.isHtml() - ) { + if (encrypted || this.isPlainEditor() || !message.isHtml()) { editor.modePlain(); }