Drop ko.extenders.limitedList

This commit is contained in:
the-djmaze 2022-09-26 11:55:26 +02:00
parent deeb86bd5f
commit d1d820da73
8 changed files with 14 additions and 77 deletions

View file

@ -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}
*/

24
dev/External/ko.js vendored
View file

@ -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) {

View file

@ -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;

View file

@ -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 });

View file

@ -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 => {

View file

@ -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 = '';

View file

@ -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();

View file

@ -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();
}