diff --git a/dev/External/ko.js b/dev/External/ko.js index 43274eae8..dcdb5fa7d 100644 --- a/dev/External/ko.js +++ b/dev/External/ko.js @@ -80,10 +80,6 @@ Object.assign(ko.bindingHandlers, { } }, - i18nInit: { - init: element => i18nToNodes(element) - }, - i18nUpdate: { update: (element, fValueAccessor) => { ko.unwrap(fValueAccessor()); diff --git a/dev/Knoin/Knoin.js b/dev/Knoin/Knoin.js index a029fd3df..6e2d417b3 100644 --- a/dev/Knoin/Knoin.js +++ b/dev/Knoin/Knoin.js @@ -2,6 +2,7 @@ import ko from 'ko'; import { koComputable } from 'External/ko'; import { doc, $htmlCL, elementById, fireEvent } from 'Common/Globals'; import { forEachObjectValue, forEachObjectEntry } from 'Common/Utils'; +import { i18nToNodes } from 'Common/Translator'; let SCREENS = {}, @@ -86,6 +87,7 @@ const vm.modalVisible.subscribe(value => { if (value) { + i18nToNodes(vmDom); visiblePopups.add(vm); vmDom.style.zIndex = 3000 + (visiblePopups.size * 2); vmDom.showModal(); @@ -111,7 +113,6 @@ const ko.applyBindingAccessorsToNode( vmDom, { - i18nInit: true, template: () => ({ name: id }) }, vm @@ -215,6 +216,7 @@ const forEachViewModel(vmScreen, (vm, dom) => { vm.beforeShow && vm.beforeShow(); + i18nToNodes(dom); dom.hidden = false; vm.onShow && vm.onShow(); autofocus(dom); diff --git a/dev/Screen/AbstractSettings.js b/dev/Screen/AbstractSettings.js index fd00ca9ff..4619f21e4 100644 --- a/dev/Screen/AbstractSettings.js +++ b/dev/Screen/AbstractSettings.js @@ -5,6 +5,7 @@ import { settings } from 'Common/Links'; import { createElement, elementById } from 'Common/Globals'; import { AbstractScreen } from 'Knoin/AbstractScreen'; +import { i18nToNodes } from 'Common/Translator'; const VIEW_MODELS = []; @@ -28,36 +29,33 @@ export class AbstractSettingsScreen extends AbstractScreen { ); if (RoutedSettingsViewModel) { + const vmPlace = elementById('rl-settings-subscreen'); if (RoutedSettingsViewModel.__vm) { settingsScreen = RoutedSettingsViewModel.__vm; + } else if (vmPlace) { + viewModelDom = createElement('div',{ + id: 'V-Settings-' + RoutedSettingsViewModel.name.replace(/(User|Admin)Settings/,''), + hidden: '' + }) + vmPlace.append(viewModelDom); + + settingsScreen = new RoutedSettingsViewModel(); + settingsScreen.viewModelDom = viewModelDom; + + RoutedSettingsViewModel.__dom = viewModelDom; + RoutedSettingsViewModel.__vm = settingsScreen; + + ko.applyBindingAccessorsToNode( + viewModelDom, + { + template: () => ({ name: RoutedSettingsViewModel.__rlSettingsData.template }) + }, + settingsScreen + ); + + settingsScreen.onBuild && settingsScreen.onBuild(viewModelDom); } else { - const vmPlace = elementById('rl-settings-subscreen'); - if (vmPlace) { - viewModelDom = createElement('div',{ - id: 'V-Settings-' + RoutedSettingsViewModel.name.replace(/(User|Admin)Settings/,''), - hidden: '' - }) - vmPlace.append(viewModelDom); - - settingsScreen = new RoutedSettingsViewModel(); - settingsScreen.viewModelDom = viewModelDom; - - RoutedSettingsViewModel.__dom = viewModelDom; - RoutedSettingsViewModel.__vm = settingsScreen; - - ko.applyBindingAccessorsToNode( - viewModelDom, - { - i18nInit: true, - template: () => ({ name: RoutedSettingsViewModel.__rlSettingsData.template }) - }, - settingsScreen - ); - - settingsScreen.onBuild && settingsScreen.onBuild(viewModelDom); - } else { - console.log('Cannot find sub settings view model position: SettingsSubScreen'); - } + console.log('Cannot find sub settings view model position: SettingsSubScreen'); } if (settingsScreen) { @@ -70,6 +68,7 @@ export class AbstractSettingsScreen extends AbstractScreen { // show settingsScreen.beforeShow && settingsScreen.beforeShow(); + i18nToNodes(settingsScreen.viewModelDom); settingsScreen.viewModelDom.hidden = false; settingsScreen.onShow && settingsScreen.onShow(); @@ -79,7 +78,7 @@ export class AbstractSettingsScreen extends AbstractScreen { ); }); - (elementById('rl-settings-subscreen') || {}).scrollTop = 0; + (vmPlace || {}).scrollTop = 0; // -- }, 1); } diff --git a/snappymail/v/0.0.0/app/templates/Views/User/PopupsFilter.html b/snappymail/v/0.0.0/app/templates/Views/User/PopupsFilter.html index 4db9779f7..a5e11b1bd 100644 --- a/snappymail/v/0.0.0/app/templates/Views/User/PopupsFilter.html +++ b/snappymail/v/0.0.0/app/templates/Views/User/PopupsFilter.html @@ -5,7 +5,7 @@ -