From d1d820da73d9867a99d33d4f4872fc7bae53dfa6 Mon Sep 17 00:00:00 2001 From: the-djmaze <> Date: Mon, 26 Sep 2022 11:55:26 +0200 Subject: [PATCH 1/5] Drop ko.extenders.limitedList --- dev/Common/EnumsUser.js | 16 ---------------- dev/External/ko.js | 24 +----------------------- dev/Settings/Admin/General.js | 4 +--- dev/Stores/Language.js | 4 +--- dev/Stores/Theme.js | 3 +-- dev/Stores/User/Folder.js | 4 ++-- dev/Stores/User/Settings.js | 26 ++++++-------------------- dev/View/Popup/Compose.js | 10 ++-------- 8 files changed, 14 insertions(+), 77 deletions(-) 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(); } From 0864d306d6bd623745081ee88d55d67ac37ac511 Mon Sep 17 00:00:00 2001 From: the-djmaze <> Date: Mon, 26 Sep 2022 13:54:28 +0200 Subject: [PATCH 2/5] Improved folder/mailbox name editing --- dev/External/ko.js | 13 +++++++++++++ dev/Model/FolderCollection.js | 6 ++---- dev/Settings/User/Folders.js | 13 ++++++------- dev/Styles/User/SettingsFolders.less | 3 +-- .../templates/Views/User/SettingsFolderItem.html | 4 ++-- 5 files changed, 24 insertions(+), 15 deletions(-) diff --git a/dev/External/ko.js b/dev/External/ko.js index 7a3bf6734..05f0acd46 100644 --- a/dev/External/ko.js +++ b/dev/External/ko.js @@ -68,6 +68,19 @@ Object.assign(ko.bindingHandlers, { } }, + onEsc: { + init: (element, fValueAccessor, fAllBindings, viewModel) => { + let fn = event => { + if ('Escape' == event.key) { + element.dispatchEvent(new Event('change')); + fValueAccessor().call(viewModel); + } + }; + element.addEventListener('keyup', fn); + ko.utils.domNodeDisposal.addDisposeCallback(element, () => element.removeEventListener('keyup', fn)); + } + }, + onSpace: { init: (element, fValueAccessor, fAllBindings, viewModel) => { let fn = event => { diff --git a/dev/Model/FolderCollection.js b/dev/Model/FolderCollection.js index bd303ca51..4453ba339 100644 --- a/dev/Model/FolderCollection.js +++ b/dev/Model/FolderCollection.js @@ -250,7 +250,7 @@ export class FolderModel extends AbstractModel { focused: false, selected: false, - edited: false, + editing: false, isSubscribed: true, checkable: false, // Check for new messages askDelete: false, @@ -443,9 +443,7 @@ export class FolderModel extends AbstractModel { }); folder.addSubscribables({ - name: value => folder.nameForEdit(value), - - edited: value => value && folder.nameForEdit(folder.name()), + editing: value => value && folder.nameForEdit(folder.name()), unreadEmails: unread => { if (FolderType.Inbox === folder.type()) { diff --git a/dev/Settings/User/Folders.js b/dev/Settings/User/Folders.js index 729ec8d49..6664d97c5 100644 --- a/dev/Settings/User/Folders.js +++ b/dev/Settings/User/Folders.js @@ -51,14 +51,13 @@ export class UserSettingsFolders /*extends AbstractViewSettings*/ { this.folderForDeletion = folderForDeletion; - this.folderForEdit = ko.observable(null).extend({ toggleSubscribeProperty: [this, 'edited'] }); + this.folderForEdit = ko.observable(null).extend({ toggleSubscribeProperty: [this, 'editing'] }); SettingsUserStore.hideUnsubscribed.subscribe(value => Remote.saveSetting('HideUnsubscribed', value)); } folderEditOnEnter(folder) { - const nameToEdit = folder ? folder.nameForEdit().trim() : ''; - + const nameToEdit = folder?.nameForEdit().trim(); if (nameToEdit && folder.name() !== nameToEdit) { Remote.abort('Folders').post('FolderRename', FolderUserStore.foldersRenaming, { Folder: folder.fullName, @@ -88,13 +87,13 @@ export class UserSettingsFolders /*extends AbstractViewSettings*/ { }); } - folder.edited(false); +// this.folderForEdit(null); + folder.editing(false); } folderEditOnEsc(folder) { - if (folder) { - folder.edited(false); - } +// this.folderForEdit(null); + folder?.editing(false); } onShow() { diff --git a/dev/Styles/User/SettingsFolders.less b/dev/Styles/User/SettingsFolders.less index 6cf0fd517..f6c08daa5 100644 --- a/dev/Styles/User/SettingsFolders.less +++ b/dev/Styles/User/SettingsFolders.less @@ -23,8 +23,7 @@ opacity: 0.6; } - .folder-name.can-be-edited:hover { - text-decoration-style: dashed; + .folder-name.can-be-edited { cursor: pointer; } diff --git a/snappymail/v/0.0.0/app/templates/Views/User/SettingsFolderItem.html b/snappymail/v/0.0.0/app/templates/Views/User/SettingsFolderItem.html index 7588a4f10..a1538fb0f 100644 --- a/snappymail/v/0.0.0/app/templates/Views/User/SettingsFolderItem.html +++ b/snappymail/v/0.0.0/app/templates/Views/User/SettingsFolderItem.html @@ -1,11 +1,11 @@ - + data-bind="value: nameForEdit, visible: editing, hasfocus: editing, onEnter: function () { $root.folderEditOnEnter($data); }, onEsc: function () { $root.folderEditOnEsc($data); }">   From 118558cdfdd035238131436a7eca504e6a734d3b Mon Sep 17 00:00:00 2001 From: the-djmaze <> Date: Mon, 26 Sep 2022 14:02:30 +0200 Subject: [PATCH 3/5] Renamed SaveSettingsStep to more logical SaveSettingStatus --- dev/Common/Enums.js | 8 ++++---- dev/Common/Utils.js | 8 ++++---- dev/Component/AbstractInput.js | 6 +++--- dev/External/ko.js | 12 ++++++------ dev/Knoin/AbstractViews.js | 10 +++++----- dev/Settings/Admin/General.js | 14 +++++++------- dev/Settings/User/General.js | 10 +++++----- dev/Settings/User/Themes.js | 4 ++-- 8 files changed, 36 insertions(+), 36 deletions(-) diff --git a/dev/Common/Enums.js b/dev/Common/Enums.js index 7ff9a8418..4726fafb4 100644 --- a/dev/Common/Enums.js +++ b/dev/Common/Enums.js @@ -29,11 +29,11 @@ UploadErrorCode = { /** * @enum {number} */ -SaveSettingsStep = { - Animate: -2, +SaveSettingStatus = { + Saving: -2, Idle: -1, - TrueResult: 1, - FalseResult: 0 + Success: 1, + Failed: 0 }, /** diff --git a/dev/Common/Utils.js b/dev/Common/Utils.js index 862f4c9fc..8a9e9be8c 100644 --- a/dev/Common/Utils.js +++ b/dev/Common/Utils.js @@ -1,4 +1,4 @@ -import { SaveSettingsStep } from 'Common/Enums'; +import { SaveSettingStatus } from 'Common/Enums'; import { elementById } from 'Common/Globals'; let __themeTimer = 0, @@ -40,14 +40,14 @@ export const changeTheme = (value, themeTrigger = ()=>0) => { const themeStyle = elementById('app-theme-style'), clearTimer = () => { - __themeTimer = setTimeout(() => themeTrigger(SaveSettingsStep.Idle), 1000); + __themeTimer = setTimeout(() => themeTrigger(SaveSettingStatus.Idle), 1000); __themeJson = null; }, url = themeStyle.dataset.href.replace(/(Admin|User)\/-\/[^/]+\//, '$1/-/' + value + '/') + 'Json/'; clearTimeout(__themeTimer); - themeTrigger(SaveSettingsStep.Animate); + themeTrigger(SaveSettingStatus.Saving); if (__themeJson) { __themeJson.abort(); @@ -61,7 +61,7 @@ export const .then(data => { if (2 === arrayLength(data)) { themeStyle.textContent = data[1]; - themeTrigger(SaveSettingsStep.TrueResult); + themeTrigger(SaveSettingStatus.Success); } }) .then(clearTimer, clearTimer); diff --git a/dev/Component/AbstractInput.js b/dev/Component/AbstractInput.js index b262fab22..5a1e86415 100644 --- a/dev/Component/AbstractInput.js +++ b/dev/Component/AbstractInput.js @@ -1,6 +1,6 @@ import ko from 'ko'; import { pInt } from 'Common/Utils'; -import { SaveSettingsStep } from 'Common/Enums'; +import { SaveSettingStatus } from 'Common/Enums'; import { koComputable } from 'External/ko'; import { dispose } from 'External/ko'; @@ -23,10 +23,10 @@ export class AbstractInput { classForTrigger = ko.observable(''), setTriggerState = value => { switch (pInt(value)) { - case SaveSettingsStep.TrueResult: + case SaveSettingStatus.Success: classForTrigger('success'); break; - case SaveSettingsStep.FalseResult: + case SaveSettingStatus.Failed: classForTrigger('error'); break; default: diff --git a/dev/External/ko.js b/dev/External/ko.js index 05f0acd46..2b3b89d2b 100644 --- a/dev/External/ko.js +++ b/dev/External/ko.js @@ -1,7 +1,7 @@ import ko from 'ko'; import { i18nToNodes } from 'Common/Translator'; import { doc, createElement } from 'Common/Globals'; -import { SaveSettingsStep } from 'Common/Enums'; +import { SaveSettingStatus } from 'Common/Enums'; import { isFunction, forEachObjectEntry } from 'Common/Utils'; export const @@ -146,13 +146,13 @@ Object.assign(ko.bindingHandlers, { const value = parseInt(ko.unwrap(fValueAccessor()),10); let cl = (element.saveTriggerIcon || element).classList; if (element.saveTriggerIcon) { - cl.toggle('saving', value === SaveSettingsStep.Animate); - cl.toggle('success', value === SaveSettingsStep.TrueResult); - cl.toggle('error', value === SaveSettingsStep.FalseResult); + cl.toggle('saving', value === SaveSettingStatus.Saving); + cl.toggle('success', value === SaveSettingStatus.Success); + cl.toggle('error', value === SaveSettingStatus.Failed); } cl = element.classList; - cl.toggle('success', value === SaveSettingsStep.TrueResult); - cl.toggle('error', value === SaveSettingsStep.FalseResult); + cl.toggle('success', value === SaveSettingStatus.Success); + cl.toggle('error', value === SaveSettingStatus.Failed); } } }); diff --git a/dev/Knoin/AbstractViews.js b/dev/Knoin/AbstractViews.js index 4853a47b9..95c27ad78 100644 --- a/dev/Knoin/AbstractViews.js +++ b/dev/Knoin/AbstractViews.js @@ -4,7 +4,7 @@ import { addObservablesTo, addComputablesTo, addSubscribablesTo } from 'External import { keyScope, SettingsGet, leftPanelDisabled, elementById } from 'Common/Globals'; import { ViewTypePopup, showScreenPopup } from 'Knoin/Knoin'; -import { SaveSettingsStep } from 'Common/Enums'; +import { SaveSettingStatus } from 'Common/Enums'; class AbstractView { constructor(templateID, type) @@ -123,16 +123,16 @@ export class AbstractViewSettings trigger = prop + 'Trigger'; addObservablesTo(this, { [prop]: SettingsGet(name), - [trigger]: SaveSettingsStep.Idle, + [trigger]: SaveSettingStatus.Idle, }); addSubscribablesTo(this, { [prop]: (value => { - this[trigger](SaveSettingsStep.Animate); + this[trigger](SaveSettingStatus.Saving); valueCb?.(value); rl.app.Remote.saveSetting(name, value, iError => { - this[trigger](iError ? SaveSettingsStep.FalseResult : SaveSettingsStep.TrueResult); - setTimeout(() => this[trigger](SaveSettingsStep.Idle), 1000); + this[trigger](iError ? SaveSettingStatus.Failed : SaveSettingStatus.Success); + setTimeout(() => this[trigger](SaveSettingStatus.Idle), 1000); } ); }).debounce(999), diff --git a/dev/Settings/Admin/General.js b/dev/Settings/Admin/General.js index 81119fb33..526277cc9 100644 --- a/dev/Settings/Admin/General.js +++ b/dev/Settings/Admin/General.js @@ -8,7 +8,7 @@ import { import { addObservablesTo, addSubscribablesTo, addComputablesTo } from 'External/ko'; -import { SaveSettingsStep } from 'Common/Enums'; +import { SaveSettingStatus } from 'Common/Enums'; import { Settings, SettingsGet, SettingsCapa } from 'Common/Globals'; import { translatorReload, convertLangName } from 'Common/Translator'; @@ -38,8 +38,8 @@ export class AdminSettingsGeneral extends AbstractViewSettings { this.addSettings(['AllowLanguagesOnSettings','NewMoveToFolder']); addObservablesTo(this, { - attachmentLimitTrigger: SaveSettingsStep.Idle, - themeTrigger: SaveSettingsStep.Idle, + attachmentLimitTrigger: SaveSettingStatus.Idle, + themeTrigger: SaveSettingStatus.Idle, capaThemes: SettingsCapa('Themes'), capaUserBackground: SettingsCapa('UserBackground'), capaAdditionalAccounts: SettingsCapa('AdditionalAccounts'), @@ -82,19 +82,19 @@ export class AdminSettingsGeneral extends AbstractViewSettings { languageAdminFullName: () => convertLangName(this.languageAdmin()) }); - this.languageAdminTrigger = ko.observable(SaveSettingsStep.Idle).extend({ debounce: 100 }); + this.languageAdminTrigger = ko.observable(SaveSettingStatus.Idle).extend({ debounce: 100 }); const fReloadLanguageHelper = (saveSettingsStep) => () => { this.languageAdminTrigger(saveSettingsStep); - setTimeout(() => this.languageAdminTrigger(SaveSettingsStep.Idle), 1000); + setTimeout(() => this.languageAdminTrigger(SaveSettingStatus.Idle), 1000); }, fSaveHelper = key => value => Remote.saveSetting(key, value); addSubscribablesTo(this, { languageAdmin: value => { - this.languageAdminTrigger(SaveSettingsStep.Animate); + this.languageAdminTrigger(SaveSettingStatus.Saving); translatorReload(true, value) - .then(fReloadLanguageHelper(SaveSettingsStep.TrueResult), fReloadLanguageHelper(SaveSettingsStep.FalseResult)) + .then(fReloadLanguageHelper(SaveSettingStatus.Success), fReloadLanguageHelper(SaveSettingStatus.Failed)) .then(() => Remote.saveSetting('LanguageAdmin', value)); }, diff --git a/dev/Settings/User/General.js b/dev/Settings/User/General.js index a4fdf7ab2..4ba4863d2 100644 --- a/dev/Settings/User/General.js +++ b/dev/Settings/User/General.js @@ -1,7 +1,7 @@ import ko from 'ko'; import { SMAudio } from 'Common/Audio'; -import { SaveSettingsStep } from 'Common/Enums'; +import { SaveSettingStatus } from 'Common/Enums'; import { EditorDefaultType, Layout } from 'Common/EnumsUser'; import { Settings, SettingsGet } from 'Common/Globals'; import { isArray } from 'Common/Utils'; @@ -48,7 +48,7 @@ export class UserSettingsGeneral extends AbstractViewSettings { this.allowLanguagesOnSettings = !!SettingsGet('AllowLanguagesOnSettings'); - this.languageTrigger = ko.observable(SaveSettingsStep.Idle); + this.languageTrigger = ko.observable(SaveSettingStatus.Idle); this.identities = IdentityUserStore; @@ -103,14 +103,14 @@ export class UserSettingsGeneral extends AbstractViewSettings { const fReloadLanguageHelper = (saveSettingsStep) => () => { this.languageTrigger(saveSettingsStep); - setTimeout(() => this.languageTrigger(SaveSettingsStep.Idle), 1000); + setTimeout(() => this.languageTrigger(SaveSettingStatus.Idle), 1000); }; addSubscribablesTo(this, { language: value => { - this.languageTrigger(SaveSettingsStep.Animate); + this.languageTrigger(SaveSettingStatus.Saving); translatorReload(false, value) - .then(fReloadLanguageHelper(SaveSettingsStep.TrueResult), fReloadLanguageHelper(SaveSettingsStep.FalseResult)) + .then(fReloadLanguageHelper(SaveSettingStatus.Success), fReloadLanguageHelper(SaveSettingStatus.Failed)) .then(() => Remote.saveSetting('Language', value)); }, diff --git a/dev/Settings/User/Themes.js b/dev/Settings/User/Themes.js index 38676a770..d02075864 100644 --- a/dev/Settings/User/Themes.js +++ b/dev/Settings/User/Themes.js @@ -1,6 +1,6 @@ import { addObservablesTo } from 'External/ko'; -import { SaveSettingsStep, UploadErrorCode } from 'Common/Enums'; +import { SaveSettingStatus, UploadErrorCode } from 'Common/Enums'; import { changeTheme, convertThemeName } from 'Common/Utils'; import { themePreviewLink, serverRequest } from 'Common/Links'; import { i18n } from 'Common/Translator'; @@ -29,7 +29,7 @@ export class UserSettingsThemes /*extends AbstractViewSettings*/ { themeBackground.enabled = SettingsCapa('UserBackground'); this.background = themeBackground; - this.themeTrigger = ko.observable(SaveSettingsStep.Idle).extend({ debounce: 100 }); + this.themeTrigger = ko.observable(SaveSettingStatus.Idle).extend({ debounce: 100 }); ThemeStore.theme.subscribe(value => { this.themesObjects.forEach(theme => { From 218b512526fe41648777229a5996d7512844e097 Mon Sep 17 00:00:00 2001 From: the-djmaze <> Date: Mon, 26 Sep 2022 14:31:10 +0200 Subject: [PATCH 4/5] Drop unused translation `SETTINGS_FILTERS/LOADING_PROCESS` --- snappymail/v/0.0.0/app/localization/ar-SA/user.json | 3 +-- snappymail/v/0.0.0/app/localization/bg-BG/user.json | 3 +-- snappymail/v/0.0.0/app/localization/cs-CZ/user.json | 3 +-- snappymail/v/0.0.0/app/localization/da-DK/user.json | 3 +-- snappymail/v/0.0.0/app/localization/de-DE/user.json | 3 +-- snappymail/v/0.0.0/app/localization/el-GR/user.json | 3 +-- snappymail/v/0.0.0/app/localization/en-GB/user.json | 3 +-- snappymail/v/0.0.0/app/localization/en/user.json | 3 +-- snappymail/v/0.0.0/app/localization/es-ES/user.json | 3 +-- snappymail/v/0.0.0/app/localization/et-EE/user.json | 3 +-- snappymail/v/0.0.0/app/localization/fa-IR/user.json | 3 +-- snappymail/v/0.0.0/app/localization/fi-FI/user.json | 3 +-- snappymail/v/0.0.0/app/localization/fr-FR/user.json | 3 +-- snappymail/v/0.0.0/app/localization/hu-HU/user.json | 3 +-- snappymail/v/0.0.0/app/localization/id-ID/user.json | 3 +-- snappymail/v/0.0.0/app/localization/is-IS/user.json | 3 +-- snappymail/v/0.0.0/app/localization/it-IT/user.json | 3 +-- snappymail/v/0.0.0/app/localization/ja-JP/user.json | 3 +-- snappymail/v/0.0.0/app/localization/ko-KR/user.json | 3 +-- snappymail/v/0.0.0/app/localization/lt-LT/user.json | 3 +-- snappymail/v/0.0.0/app/localization/lv-LV/user.json | 3 +-- snappymail/v/0.0.0/app/localization/nb-NO/user.json | 3 +-- snappymail/v/0.0.0/app/localization/nl-NL/user.json | 3 +-- snappymail/v/0.0.0/app/localization/pl-PL/user.json | 3 +-- snappymail/v/0.0.0/app/localization/pt-BR/user.json | 3 +-- snappymail/v/0.0.0/app/localization/pt-PT/user.json | 3 +-- snappymail/v/0.0.0/app/localization/pt/user.json | 3 +-- snappymail/v/0.0.0/app/localization/ro-RO/user.json | 3 +-- snappymail/v/0.0.0/app/localization/ru-RU/user.json | 3 +-- snappymail/v/0.0.0/app/localization/sk-SK/user.json | 3 +-- snappymail/v/0.0.0/app/localization/sl-SI/user.json | 3 +-- snappymail/v/0.0.0/app/localization/sv-SE/user.json | 3 +-- snappymail/v/0.0.0/app/localization/tr-TR/user.json | 3 +-- snappymail/v/0.0.0/app/localization/uk-UA/user.json | 3 +-- snappymail/v/0.0.0/app/localization/vi-VN/user.json | 3 +-- snappymail/v/0.0.0/app/localization/zh-CN/user.json | 3 +-- snappymail/v/0.0.0/app/localization/zh-TW/user.json | 3 +-- 37 files changed, 37 insertions(+), 74 deletions(-) diff --git a/snappymail/v/0.0.0/app/localization/ar-SA/user.json b/snappymail/v/0.0.0/app/localization/ar-SA/user.json index 328696bbd..f0207e856 100644 --- a/snappymail/v/0.0.0/app/localization/ar-SA/user.json +++ b/snappymail/v/0.0.0/app/localization/ar-SA/user.json @@ -378,8 +378,7 @@ "SUBNAME_FORWARD_TO": "\"%EMAIL%\" إعادة توجيه الى", "SUBNAME_REJECT": "رفض", "SUBNAME_VACATION_MESSAGE": "رسالة العطلة", - "SUBNAME_DISCARD": "تجاهل", - "LOADING_PROCESS": "تحديث قائمة عوامل التصفية" + "SUBNAME_DISCARD": "تجاهل" }, "SETTINGS_SECURITY": { "LEGEND_SECURITY": "الأمان", diff --git a/snappymail/v/0.0.0/app/localization/bg-BG/user.json b/snappymail/v/0.0.0/app/localization/bg-BG/user.json index 01b4fe5a6..fed65d3e3 100644 --- a/snappymail/v/0.0.0/app/localization/bg-BG/user.json +++ b/snappymail/v/0.0.0/app/localization/bg-BG/user.json @@ -378,8 +378,7 @@ "SUBNAME_FORWARD_TO": "Препрати към \"%EMAIL%\"", "SUBNAME_REJECT": "Откажи", "SUBNAME_VACATION_MESSAGE": "Съобщение в отпуска", - "SUBNAME_DISCARD": "Отхвърли", - "LOADING_PROCESS": "Обнови списъка с филтри" + "SUBNAME_DISCARD": "Отхвърли" }, "SETTINGS_SECURITY": { "LEGEND_SECURITY": "Сигурност", diff --git a/snappymail/v/0.0.0/app/localization/cs-CZ/user.json b/snappymail/v/0.0.0/app/localization/cs-CZ/user.json index 1ff11ba80..f29539336 100644 --- a/snappymail/v/0.0.0/app/localization/cs-CZ/user.json +++ b/snappymail/v/0.0.0/app/localization/cs-CZ/user.json @@ -378,8 +378,7 @@ "SUBNAME_FORWARD_TO": "Přeposlat to \"%EMAIL%\"", "SUBNAME_REJECT": "Odmítnout", "SUBNAME_VACATION_MESSAGE": "Odpověď v nepřítomnosti", - "SUBNAME_DISCARD": "Zahodit", - "LOADING_PROCESS": "Aktualizovat seznam filtrů" + "SUBNAME_DISCARD": "Zahodit" }, "SETTINGS_SECURITY": { "LEGEND_SECURITY": "Zabezpečení", diff --git a/snappymail/v/0.0.0/app/localization/da-DK/user.json b/snappymail/v/0.0.0/app/localization/da-DK/user.json index 334e3f2a8..39e15ae23 100644 --- a/snappymail/v/0.0.0/app/localization/da-DK/user.json +++ b/snappymail/v/0.0.0/app/localization/da-DK/user.json @@ -378,8 +378,7 @@ "SUBNAME_FORWARD_TO": "Videresend til \"%EMAIL%\"", "SUBNAME_REJECT": "Afvis", "SUBNAME_VACATION_MESSAGE": "Feriemeddelelse", - "SUBNAME_DISCARD": "Kassér", - "LOADING_PROCESS": "Opdater oversigten over filtre" + "SUBNAME_DISCARD": "Kassér" }, "SETTINGS_SECURITY": { "LEGEND_SECURITY": "Sikkerhed", diff --git a/snappymail/v/0.0.0/app/localization/de-DE/user.json b/snappymail/v/0.0.0/app/localization/de-DE/user.json index 4a75ec527..b5e094cb0 100644 --- a/snappymail/v/0.0.0/app/localization/de-DE/user.json +++ b/snappymail/v/0.0.0/app/localization/de-DE/user.json @@ -378,8 +378,7 @@ "SUBNAME_FORWARD_TO": "Weiterleiten nach \"%EMAIL%\"", "SUBNAME_REJECT": "Ablehnen", "SUBNAME_VACATION_MESSAGE": "Urlaubsbenachrichtigung", - "SUBNAME_DISCARD": "Verwerfen", - "LOADING_PROCESS": "Aktualisiere Filterliste" + "SUBNAME_DISCARD": "Verwerfen" }, "SETTINGS_SECURITY": { "LEGEND_SECURITY": "Sicherheit", diff --git a/snappymail/v/0.0.0/app/localization/el-GR/user.json b/snappymail/v/0.0.0/app/localization/el-GR/user.json index 80234fb5e..0882b8e81 100644 --- a/snappymail/v/0.0.0/app/localization/el-GR/user.json +++ b/snappymail/v/0.0.0/app/localization/el-GR/user.json @@ -378,8 +378,7 @@ "SUBNAME_FORWARD_TO": "Προώθηση στο \"%EMAIL%\"", "SUBNAME_REJECT": "Απόρριψη", "SUBNAME_VACATION_MESSAGE": "Μήνυμα διακοπών", - "SUBNAME_DISCARD": "Απόρριψη", - "LOADING_PROCESS": "Ενημέρωση λίστας φίλτρων" + "SUBNAME_DISCARD": "Απόρριψη" }, "SETTINGS_SECURITY": { "LEGEND_SECURITY": "Ασφάλεια", diff --git a/snappymail/v/0.0.0/app/localization/en-GB/user.json b/snappymail/v/0.0.0/app/localization/en-GB/user.json index 4a3669d6d..147e4b097 100644 --- a/snappymail/v/0.0.0/app/localization/en-GB/user.json +++ b/snappymail/v/0.0.0/app/localization/en-GB/user.json @@ -378,8 +378,7 @@ "SUBNAME_FORWARD_TO": "Forward to \"%EMAIL%\"", "SUBNAME_REJECT": "Reject", "SUBNAME_VACATION_MESSAGE": "Vacation message", - "SUBNAME_DISCARD": "Discard", - "LOADING_PROCESS": "Updating filter list" + "SUBNAME_DISCARD": "Discard" }, "SETTINGS_SECURITY": { "LEGEND_SECURITY": "Security", diff --git a/snappymail/v/0.0.0/app/localization/en/user.json b/snappymail/v/0.0.0/app/localization/en/user.json index 71cac0f47..9256872be 100644 --- a/snappymail/v/0.0.0/app/localization/en/user.json +++ b/snappymail/v/0.0.0/app/localization/en/user.json @@ -378,8 +378,7 @@ "SUBNAME_FORWARD_TO": "Forward to \"%EMAIL%\"", "SUBNAME_REJECT": "Reject", "SUBNAME_VACATION_MESSAGE": "Vacation message", - "SUBNAME_DISCARD": "Discard", - "LOADING_PROCESS": "Updating filter list" + "SUBNAME_DISCARD": "Discard" }, "SETTINGS_SECURITY": { "LEGEND_SECURITY": "Security", diff --git a/snappymail/v/0.0.0/app/localization/es-ES/user.json b/snappymail/v/0.0.0/app/localization/es-ES/user.json index 27633b159..23e1e7acb 100644 --- a/snappymail/v/0.0.0/app/localization/es-ES/user.json +++ b/snappymail/v/0.0.0/app/localization/es-ES/user.json @@ -378,8 +378,7 @@ "SUBNAME_FORWARD_TO": "Reenviar a \"%EMAIL%\"", "SUBNAME_REJECT": "Rechazar", "SUBNAME_VACATION_MESSAGE": "Mensaje de vacaciones", - "SUBNAME_DISCARD": "Descartar", - "LOADING_PROCESS": "Actualizando lista de filtros" + "SUBNAME_DISCARD": "Descartar" }, "SETTINGS_SECURITY": { "LEGEND_SECURITY": "Seguridad", diff --git a/snappymail/v/0.0.0/app/localization/et-EE/user.json b/snappymail/v/0.0.0/app/localization/et-EE/user.json index 4eabfadc6..20d1d26cb 100644 --- a/snappymail/v/0.0.0/app/localization/et-EE/user.json +++ b/snappymail/v/0.0.0/app/localization/et-EE/user.json @@ -378,8 +378,7 @@ "SUBNAME_FORWARD_TO": "Edasta aadressile \"%EMAIL%\"", "SUBNAME_REJECT": "Lükka tagasi", "SUBNAME_VACATION_MESSAGE": "Puhkuse teade", - "SUBNAME_DISCARD": "Hülga", - "LOADING_PROCESS": "Värskendan filtrite nimekirja" + "SUBNAME_DISCARD": "Hülga" }, "SETTINGS_SECURITY": { "LEGEND_SECURITY": "Turvalisus", diff --git a/snappymail/v/0.0.0/app/localization/fa-IR/user.json b/snappymail/v/0.0.0/app/localization/fa-IR/user.json index 9e42abf40..95a707ec7 100644 --- a/snappymail/v/0.0.0/app/localization/fa-IR/user.json +++ b/snappymail/v/0.0.0/app/localization/fa-IR/user.json @@ -378,8 +378,7 @@ "SUBNAME_FORWARD_TO": "ارسال به \"%EMAIL%\"", "SUBNAME_REJECT": "برگشت‌زدن", "SUBNAME_VACATION_MESSAGE": "پیام تعطیلات", - "SUBNAME_DISCARD": "دور انداختن", - "LOADING_PROCESS": "بروزرسانی لیست فیلتر" + "SUBNAME_DISCARD": "دور انداختن" }, "SETTINGS_SECURITY": { "LEGEND_SECURITY": "امنیت", diff --git a/snappymail/v/0.0.0/app/localization/fi-FI/user.json b/snappymail/v/0.0.0/app/localization/fi-FI/user.json index 992034f21..04829d548 100644 --- a/snappymail/v/0.0.0/app/localization/fi-FI/user.json +++ b/snappymail/v/0.0.0/app/localization/fi-FI/user.json @@ -378,8 +378,7 @@ "SUBNAME_FORWARD_TO": "Välitä osoitteeseen \"%EMAIL%\"", "SUBNAME_REJECT": "Hylkää", "SUBNAME_VACATION_MESSAGE": "Lomaviesti", - "SUBNAME_DISCARD": "Poista", - "LOADING_PROCESS": "Asetetaan suodattimet" + "SUBNAME_DISCARD": "Poista" }, "SETTINGS_SECURITY": { "LEGEND_SECURITY": "Turvallisuus", diff --git a/snappymail/v/0.0.0/app/localization/fr-FR/user.json b/snappymail/v/0.0.0/app/localization/fr-FR/user.json index 71cac0f47..9256872be 100644 --- a/snappymail/v/0.0.0/app/localization/fr-FR/user.json +++ b/snappymail/v/0.0.0/app/localization/fr-FR/user.json @@ -378,8 +378,7 @@ "SUBNAME_FORWARD_TO": "Forward to \"%EMAIL%\"", "SUBNAME_REJECT": "Reject", "SUBNAME_VACATION_MESSAGE": "Vacation message", - "SUBNAME_DISCARD": "Discard", - "LOADING_PROCESS": "Updating filter list" + "SUBNAME_DISCARD": "Discard" }, "SETTINGS_SECURITY": { "LEGEND_SECURITY": "Security", diff --git a/snappymail/v/0.0.0/app/localization/hu-HU/user.json b/snappymail/v/0.0.0/app/localization/hu-HU/user.json index ee0ac9665..99ca6b46e 100644 --- a/snappymail/v/0.0.0/app/localization/hu-HU/user.json +++ b/snappymail/v/0.0.0/app/localization/hu-HU/user.json @@ -378,8 +378,7 @@ "SUBNAME_FORWARD_TO": "Továbbítás ide: \"%EMAIL%\"", "SUBNAME_REJECT": "Visszautasít", "SUBNAME_VACATION_MESSAGE": "Vakáció üzenet", - "SUBNAME_DISCARD": "Elvetés", - "LOADING_PROCESS": "Szűrő lista frissítése" + "SUBNAME_DISCARD": "Elvetés" }, "SETTINGS_SECURITY": { "LEGEND_SECURITY": "Biztonság", diff --git a/snappymail/v/0.0.0/app/localization/id-ID/user.json b/snappymail/v/0.0.0/app/localization/id-ID/user.json index 36b87ca78..0713e629b 100644 --- a/snappymail/v/0.0.0/app/localization/id-ID/user.json +++ b/snappymail/v/0.0.0/app/localization/id-ID/user.json @@ -378,8 +378,7 @@ "SUBNAME_FORWARD_TO": "Teruskan ke \"%EMAIL%\"", "SUBNAME_REJECT": "Tolak", "SUBNAME_VACATION_MESSAGE": "Pesan liburan", - "SUBNAME_DISCARD": "Buang", - "LOADING_PROCESS": "Perbarui daftar filter" + "SUBNAME_DISCARD": "Buang" }, "SETTINGS_SECURITY": { "LEGEND_SECURITY": "Keamanan", diff --git a/snappymail/v/0.0.0/app/localization/is-IS/user.json b/snappymail/v/0.0.0/app/localization/is-IS/user.json index 3b08f61bf..f81d1b072 100644 --- a/snappymail/v/0.0.0/app/localization/is-IS/user.json +++ b/snappymail/v/0.0.0/app/localization/is-IS/user.json @@ -378,8 +378,7 @@ "SUBNAME_FORWARD_TO": "Áframsenda til \"%EMAIL%\"", "SUBNAME_REJECT": "Hafna", "SUBNAME_VACATION_MESSAGE": "Skilaboð vegna fría", - "SUBNAME_DISCARD": "Henda", - "LOADING_PROCESS": "Uppfæri síulista" + "SUBNAME_DISCARD": "Henda" }, "SETTINGS_SECURITY": { "LEGEND_SECURITY": "Öryggi", diff --git a/snappymail/v/0.0.0/app/localization/it-IT/user.json b/snappymail/v/0.0.0/app/localization/it-IT/user.json index 3373cbeea..d40c2a352 100644 --- a/snappymail/v/0.0.0/app/localization/it-IT/user.json +++ b/snappymail/v/0.0.0/app/localization/it-IT/user.json @@ -378,8 +378,7 @@ "SUBNAME_FORWARD_TO": "Inoltra a \"%EMAIL%\"", "SUBNAME_REJECT": "Rifiuta", "SUBNAME_VACATION_MESSAGE": "Messaggio fuori-ufficio", - "SUBNAME_DISCARD": "Scarta", - "LOADING_PROCESS": "Aggiornamento lista filtri" + "SUBNAME_DISCARD": "Scarta" }, "SETTINGS_SECURITY": { "LEGEND_SECURITY": "Sicurezza", diff --git a/snappymail/v/0.0.0/app/localization/ja-JP/user.json b/snappymail/v/0.0.0/app/localization/ja-JP/user.json index 8ff2e4fb3..78dc6d5b8 100644 --- a/snappymail/v/0.0.0/app/localization/ja-JP/user.json +++ b/snappymail/v/0.0.0/app/localization/ja-JP/user.json @@ -378,8 +378,7 @@ "SUBNAME_FORWARD_TO": "\"%EMAIL%\"へ転送", "SUBNAME_REJECT": "拒否", "SUBNAME_VACATION_MESSAGE": "バケーションメッセージ", - "SUBNAME_DISCARD": "破棄", - "LOADING_PROCESS": "フィルターリストの更新中" + "SUBNAME_DISCARD": "破棄" }, "SETTINGS_SECURITY": { "LEGEND_SECURITY": "セキュリティ", diff --git a/snappymail/v/0.0.0/app/localization/ko-KR/user.json b/snappymail/v/0.0.0/app/localization/ko-KR/user.json index 66828f58f..1b8eb78c3 100644 --- a/snappymail/v/0.0.0/app/localization/ko-KR/user.json +++ b/snappymail/v/0.0.0/app/localization/ko-KR/user.json @@ -378,8 +378,7 @@ "SUBNAME_FORWARD_TO": "\"%EMAIL%\"(으)로 전달", "SUBNAME_REJECT": "거부", "SUBNAME_VACATION_MESSAGE": "부재 중 메시지", - "SUBNAME_DISCARD": "Discard", - "LOADING_PROCESS": "필터 목록 업데이트 중" + "SUBNAME_DISCARD": "Discard" }, "SETTINGS_SECURITY": { "LEGEND_SECURITY": "보안", diff --git a/snappymail/v/0.0.0/app/localization/lt-LT/user.json b/snappymail/v/0.0.0/app/localization/lt-LT/user.json index 4eef5056c..eeb9133e7 100644 --- a/snappymail/v/0.0.0/app/localization/lt-LT/user.json +++ b/snappymail/v/0.0.0/app/localization/lt-LT/user.json @@ -378,8 +378,7 @@ "SUBNAME_FORWARD_TO": "persiūsti \"%EMAIL%\"", "SUBNAME_REJECT": "Atmesti", "SUBNAME_VACATION_MESSAGE": "Atostogų žinutė", - "SUBNAME_DISCARD": "Nepaisyti", - "LOADING_PROCESS": "Atnaujinamas filtrų sąrašas" + "SUBNAME_DISCARD": "Nepaisyti" }, "SETTINGS_SECURITY": { "LEGEND_SECURITY": "Sauga", diff --git a/snappymail/v/0.0.0/app/localization/lv-LV/user.json b/snappymail/v/0.0.0/app/localization/lv-LV/user.json index d0fcfded6..57da36856 100644 --- a/snappymail/v/0.0.0/app/localization/lv-LV/user.json +++ b/snappymail/v/0.0.0/app/localization/lv-LV/user.json @@ -378,8 +378,7 @@ "SUBNAME_FORWARD_TO": "Forward to \"%EMAIL%\"", "SUBNAME_REJECT": "Reject", "SUBNAME_VACATION_MESSAGE": "Vacation message", - "SUBNAME_DISCARD": "Discard", - "LOADING_PROCESS": "Updating filter list" + "SUBNAME_DISCARD": "Discard" }, "SETTINGS_SECURITY": { "LEGEND_SECURITY": "Security", diff --git a/snappymail/v/0.0.0/app/localization/nb-NO/user.json b/snappymail/v/0.0.0/app/localization/nb-NO/user.json index 88eb50284..34bc4eb70 100644 --- a/snappymail/v/0.0.0/app/localization/nb-NO/user.json +++ b/snappymail/v/0.0.0/app/localization/nb-NO/user.json @@ -378,8 +378,7 @@ "SUBNAME_FORWARD_TO": "Videresend til «%EMAIL%»", "SUBNAME_REJECT": "Avvis", "SUBNAME_VACATION_MESSAGE": "Feriemelding", - "SUBNAME_DISCARD": "Forkast", - "LOADING_PROCESS": "Oppdater filterliste" + "SUBNAME_DISCARD": "Forkast" }, "SETTINGS_SECURITY": { "LEGEND_SECURITY": "Sikkerhet", diff --git a/snappymail/v/0.0.0/app/localization/nl-NL/user.json b/snappymail/v/0.0.0/app/localization/nl-NL/user.json index daa03ad40..269cc8d9e 100644 --- a/snappymail/v/0.0.0/app/localization/nl-NL/user.json +++ b/snappymail/v/0.0.0/app/localization/nl-NL/user.json @@ -378,8 +378,7 @@ "SUBNAME_FORWARD_TO": "Doorsturen naar \"%EMAIL%\"", "SUBNAME_REJECT": "Afwijzen", "SUBNAME_VACATION_MESSAGE": "Afwezigheidsbericht", - "SUBNAME_DISCARD": "Gooi weg", - "LOADING_PROCESS": "Bezig met updaten van de filter lijst" + "SUBNAME_DISCARD": "Gooi weg" }, "SETTINGS_SECURITY": { "LEGEND_SECURITY": "Beveiliging", diff --git a/snappymail/v/0.0.0/app/localization/pl-PL/user.json b/snappymail/v/0.0.0/app/localization/pl-PL/user.json index 650bf26ba..b5f4acae5 100644 --- a/snappymail/v/0.0.0/app/localization/pl-PL/user.json +++ b/snappymail/v/0.0.0/app/localization/pl-PL/user.json @@ -378,8 +378,7 @@ "SUBNAME_FORWARD_TO": "Przekaż do \"%EMAIL%\"", "SUBNAME_REJECT": "Odrzuć", "SUBNAME_VACATION_MESSAGE": "Wiadomość urlopowa", - "SUBNAME_DISCARD": "Porzuć", - "LOADING_PROCESS": "Aktualizowanie listy filtrów" + "SUBNAME_DISCARD": "Porzuć" }, "SETTINGS_SECURITY": { "LEGEND_SECURITY": "Bezpieczeństwo", diff --git a/snappymail/v/0.0.0/app/localization/pt-BR/user.json b/snappymail/v/0.0.0/app/localization/pt-BR/user.json index fdef67223..d44e49704 100644 --- a/snappymail/v/0.0.0/app/localization/pt-BR/user.json +++ b/snappymail/v/0.0.0/app/localization/pt-BR/user.json @@ -378,8 +378,7 @@ "SUBNAME_FORWARD_TO": "Encaminhar para \"%EMAIL%\"", "SUBNAME_REJECT": "Rejeitar", "SUBNAME_VACATION_MESSAGE": "Mensagem de férias", - "SUBNAME_DISCARD": "Descartar", - "LOADING_PROCESS": "Atualizando Lista de filtros" + "SUBNAME_DISCARD": "Descartar" }, "SETTINGS_SECURITY": { "LEGEND_SECURITY": "Segurança", diff --git a/snappymail/v/0.0.0/app/localization/pt-PT/user.json b/snappymail/v/0.0.0/app/localization/pt-PT/user.json index d8c0c3670..ddc3c9c02 100644 --- a/snappymail/v/0.0.0/app/localization/pt-PT/user.json +++ b/snappymail/v/0.0.0/app/localization/pt-PT/user.json @@ -378,8 +378,7 @@ "SUBNAME_FORWARD_TO": "Encaminhar para \"%EMAIL%\"", "SUBNAME_REJECT": "Rejeitar", "SUBNAME_VACATION_MESSAGE": "Mensagem de férias", - "SUBNAME_DISCARD": "Descartar", - "LOADING_PROCESS": "A atualizar lista de filtros" + "SUBNAME_DISCARD": "Descartar" }, "SETTINGS_SECURITY": { "LEGEND_SECURITY": "Segurança", diff --git a/snappymail/v/0.0.0/app/localization/pt/user.json b/snappymail/v/0.0.0/app/localization/pt/user.json index d8c0c3670..ddc3c9c02 100644 --- a/snappymail/v/0.0.0/app/localization/pt/user.json +++ b/snappymail/v/0.0.0/app/localization/pt/user.json @@ -378,8 +378,7 @@ "SUBNAME_FORWARD_TO": "Encaminhar para \"%EMAIL%\"", "SUBNAME_REJECT": "Rejeitar", "SUBNAME_VACATION_MESSAGE": "Mensagem de férias", - "SUBNAME_DISCARD": "Descartar", - "LOADING_PROCESS": "A atualizar lista de filtros" + "SUBNAME_DISCARD": "Descartar" }, "SETTINGS_SECURITY": { "LEGEND_SECURITY": "Segurança", diff --git a/snappymail/v/0.0.0/app/localization/ro-RO/user.json b/snappymail/v/0.0.0/app/localization/ro-RO/user.json index 97dff5000..22a1dea73 100644 --- a/snappymail/v/0.0.0/app/localization/ro-RO/user.json +++ b/snappymail/v/0.0.0/app/localization/ro-RO/user.json @@ -378,8 +378,7 @@ "SUBNAME_FORWARD_TO": "Forward to \"%EMAIL%\"", "SUBNAME_REJECT": "Reject", "SUBNAME_VACATION_MESSAGE": "Vacation message", - "SUBNAME_DISCARD": "Discard", - "LOADING_PROCESS": "Updating filter list" + "SUBNAME_DISCARD": "Discard" }, "SETTINGS_SECURITY": { "LEGEND_SECURITY": "Security", diff --git a/snappymail/v/0.0.0/app/localization/ru-RU/user.json b/snappymail/v/0.0.0/app/localization/ru-RU/user.json index ba4059184..b28a00718 100644 --- a/snappymail/v/0.0.0/app/localization/ru-RU/user.json +++ b/snappymail/v/0.0.0/app/localization/ru-RU/user.json @@ -378,8 +378,7 @@ "SUBNAME_FORWARD_TO": "Переслать на \"%EMAIL%\"", "SUBNAME_REJECT": "Не принимать", "SUBNAME_VACATION_MESSAGE": "Сообщение автоответчика", - "SUBNAME_DISCARD": "Уничтожить", - "LOADING_PROCESS": "Обновление списка фильтров" + "SUBNAME_DISCARD": "Уничтожить" }, "SETTINGS_SECURITY": { "LEGEND_SECURITY": "Безопасность", diff --git a/snappymail/v/0.0.0/app/localization/sk-SK/user.json b/snappymail/v/0.0.0/app/localization/sk-SK/user.json index 9cf112b37..4b32cfe04 100644 --- a/snappymail/v/0.0.0/app/localization/sk-SK/user.json +++ b/snappymail/v/0.0.0/app/localization/sk-SK/user.json @@ -378,8 +378,7 @@ "SUBNAME_FORWARD_TO": "Forward to \"%EMAIL%\"", "SUBNAME_REJECT": "Reject", "SUBNAME_VACATION_MESSAGE": "Vacation message", - "SUBNAME_DISCARD": "Discard", - "LOADING_PROCESS": "Updating filter list" + "SUBNAME_DISCARD": "Discard" }, "SETTINGS_SECURITY": { "LEGEND_SECURITY": "Security", diff --git a/snappymail/v/0.0.0/app/localization/sl-SI/user.json b/snappymail/v/0.0.0/app/localization/sl-SI/user.json index f36aa655f..506105b3f 100644 --- a/snappymail/v/0.0.0/app/localization/sl-SI/user.json +++ b/snappymail/v/0.0.0/app/localization/sl-SI/user.json @@ -378,8 +378,7 @@ "SUBNAME_FORWARD_TO": "Posreduj na \"%EMAIL%\"", "SUBNAME_REJECT": "Zavrni", "SUBNAME_VACATION_MESSAGE": "Sporočilo odsotnosti", - "SUBNAME_DISCARD": "Zavrzi", - "LOADING_PROCESS": "Posodabljanje seznama filtrov" + "SUBNAME_DISCARD": "Zavrzi" }, "SETTINGS_SECURITY": { "LEGEND_SECURITY": "Varnost", diff --git a/snappymail/v/0.0.0/app/localization/sv-SE/user.json b/snappymail/v/0.0.0/app/localization/sv-SE/user.json index 2fd5f1c0e..04a92a1b4 100644 --- a/snappymail/v/0.0.0/app/localization/sv-SE/user.json +++ b/snappymail/v/0.0.0/app/localization/sv-SE/user.json @@ -378,8 +378,7 @@ "SUBNAME_FORWARD_TO": "Vidarebefordra till \"%EMAIL%\"", "SUBNAME_REJECT": "Avvisa", "SUBNAME_VACATION_MESSAGE": "semestermeddelande", - "SUBNAME_DISCARD": "Kassera", - "LOADING_PROCESS": "Uppdaterar filter listan" + "SUBNAME_DISCARD": "Kassera" }, "SETTINGS_SECURITY": { "LEGEND_SECURITY": "Säkerhet", diff --git a/snappymail/v/0.0.0/app/localization/tr-TR/user.json b/snappymail/v/0.0.0/app/localization/tr-TR/user.json index 372836573..ae2fe1dd9 100644 --- a/snappymail/v/0.0.0/app/localization/tr-TR/user.json +++ b/snappymail/v/0.0.0/app/localization/tr-TR/user.json @@ -378,8 +378,7 @@ "SUBNAME_FORWARD_TO": "Forward to \"%EMAIL%\"", "SUBNAME_REJECT": "Reject", "SUBNAME_VACATION_MESSAGE": "Vacation message", - "SUBNAME_DISCARD": "Discard", - "LOADING_PROCESS": "Updating filter list" + "SUBNAME_DISCARD": "Discard" }, "SETTINGS_SECURITY": { "LEGEND_SECURITY": "Security", diff --git a/snappymail/v/0.0.0/app/localization/uk-UA/user.json b/snappymail/v/0.0.0/app/localization/uk-UA/user.json index a51f76a26..4e778219e 100644 --- a/snappymail/v/0.0.0/app/localization/uk-UA/user.json +++ b/snappymail/v/0.0.0/app/localization/uk-UA/user.json @@ -378,8 +378,7 @@ "SUBNAME_FORWARD_TO": "Forward to \"%EMAIL%\"", "SUBNAME_REJECT": "Reject", "SUBNAME_VACATION_MESSAGE": "Повідомлення про відпустку", - "SUBNAME_DISCARD": "Відклонити", - "LOADING_PROCESS": "Updating filter list" + "SUBNAME_DISCARD": "Відклонити" }, "SETTINGS_SECURITY": { "LEGEND_SECURITY": "Безпека", diff --git a/snappymail/v/0.0.0/app/localization/vi-VN/user.json b/snappymail/v/0.0.0/app/localization/vi-VN/user.json index 20b8d1f5e..73187742f 100644 --- a/snappymail/v/0.0.0/app/localization/vi-VN/user.json +++ b/snappymail/v/0.0.0/app/localization/vi-VN/user.json @@ -378,8 +378,7 @@ "SUBNAME_FORWARD_TO": "Chuyển tiếp đến \"%EMAIL%\"", "SUBNAME_REJECT": "Từ chối", "SUBNAME_VACATION_MESSAGE": "Thư thông báo bạn đang nghỉ lễ", - "SUBNAME_DISCARD": "Loại bỏ", - "LOADING_PROCESS": "Đang cập nhật danh sách tấm lọc thư" + "SUBNAME_DISCARD": "Loại bỏ" }, "SETTINGS_SECURITY": { "LEGEND_SECURITY": "An ninh", diff --git a/snappymail/v/0.0.0/app/localization/zh-CN/user.json b/snappymail/v/0.0.0/app/localization/zh-CN/user.json index 81699dd77..c95a04d5f 100644 --- a/snappymail/v/0.0.0/app/localization/zh-CN/user.json +++ b/snappymail/v/0.0.0/app/localization/zh-CN/user.json @@ -378,8 +378,7 @@ "SUBNAME_FORWARD_TO": "转发到 \"%EMAIL%\"", "SUBNAME_REJECT": "拒绝", "SUBNAME_VACATION_MESSAGE": "假期自动回复", - "SUBNAME_DISCARD": "取消", - "LOADING_PROCESS": "正在更新筛选规则列表" + "SUBNAME_DISCARD": "取消" }, "SETTINGS_SECURITY": { "LEGEND_SECURITY": "安全", diff --git a/snappymail/v/0.0.0/app/localization/zh-TW/user.json b/snappymail/v/0.0.0/app/localization/zh-TW/user.json index 70a4c7788..bc199223a 100644 --- a/snappymail/v/0.0.0/app/localization/zh-TW/user.json +++ b/snappymail/v/0.0.0/app/localization/zh-TW/user.json @@ -378,8 +378,7 @@ "SUBNAME_FORWARD_TO": "Forward to \"%EMAIL%\"", "SUBNAME_REJECT": "Reject", "SUBNAME_VACATION_MESSAGE": "Vacation message", - "SUBNAME_DISCARD": "Discard", - "LOADING_PROCESS": "Updating filter list" + "SUBNAME_DISCARD": "Discard" }, "SETTINGS_SECURITY": { "LEGEND_SECURITY": "Security", From 4301d92d0b9aeb3fa1a3e7e284229f1c449e3775 Mon Sep 17 00:00:00 2001 From: the-djmaze <> Date: Mon, 26 Sep 2022 14:32:47 +0200 Subject: [PATCH 5/5] Change Squire HTML<>TEXT button for clarity as discussed https://github.com/the-djmaze/snappymail/issues/498#issuecomment-1257076375 --- dev/External/SquireUI.js | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/dev/External/SquireUI.js b/dev/External/SquireUI.js index 4007dd143..fdf8bff25 100644 --- a/dev/External/SquireUI.js +++ b/dev/External/SquireUI.js @@ -78,8 +78,13 @@ class SquireUI actions = { mode: { plain: { - html: '〈〉', - cmd: () => this.setMode('plain' == this.mode ? 'wysiwyg' : 'plain'), +// html: '〈〉', +// cmd: () => this.setMode('plain' == this.mode ? 'wysiwyg' : 'plain'), + select: [ + [i18n('SETTINGS_GENERAL/LABEL_EDITOR_HTML'),'wysiwyg'], + [i18n('SETTINGS_GENERAL/LABEL_EDITOR_PLAIN'),'plain'] + ], + cmd: s => this.setMode('plain' == s.value ? 'plain' : 'wysiwyg'), hint: i18n('EDITOR/TEXT_SWITCHER_PLAIN_TEXT', 'Plain') } }, @@ -299,8 +304,9 @@ class SquireUI input.className = 'btn'; if (Array.isArray(cfg.select)) { cfg.select.forEach(value => { - var option = new Option(value, value); - option.style[action] = value; + value = Array.isArray(value) ? value : [value, value]; + var option = new Option(value[0], value[1]); + option.style[action] = value[1]; input.append(option); }); } else { @@ -347,6 +353,8 @@ class SquireUI toolgroup.children.length && toolbar.append(toolgroup); } + this.modeSelect = actions.mode.plain.input; + let changes = actions.changes; changes.undo.input.disabled = changes.redo.input.disabled = true; squire.addEventListener('undoStateChange', state => { @@ -413,6 +421,7 @@ class SquireUI this.onModeChange?.(); setTimeout(()=>this.focus(),1); } + this.modeSelect.selectedIndex = 'plain' == this.mode ? 1 : 0; } // CKeditor gimmicks used by HtmlEditor