mirror of
https://github.com/the-djmaze/snappymail.git
synced 2025-02-03 20:49:31 +08:00
Drop the ko.bindingHandlers.modal as click.koModal is never used
And replace hideScreenPopup() with this.closeCommand();
This commit is contained in:
parent
2e34f98c80
commit
880d4a05e9
30 changed files with 66 additions and 69 deletions
12
dev/External/ko.js
vendored
12
dev/External/ko.js
vendored
|
@ -45,18 +45,6 @@ ko.bindingHandlers.onSpace = {
|
|||
}
|
||||
};
|
||||
|
||||
ko.bindingHandlers.modal = {
|
||||
init: (element, fValueAccessor) => {
|
||||
const close = element.querySelector('.close'),
|
||||
click = () => fValueAccessor()(false);
|
||||
close && close.addEventListener('click.koModal', click);
|
||||
|
||||
ko.utils.domNodeDisposal.addDisposeCallback(element, () =>
|
||||
close.removeEventListener('click.koModal', click)
|
||||
);
|
||||
}
|
||||
};
|
||||
|
||||
ko.bindingHandlers.i18nInit = {
|
||||
init: element => i18nToNodes(element)
|
||||
};
|
||||
|
|
|
@ -13,8 +13,6 @@ class AbstractView {
|
|||
this.viewType = type;
|
||||
this.viewModelDom = null;
|
||||
|
||||
this.modalVisibility = ko.observable(false).extend({ rateLimit: 0 });
|
||||
|
||||
this.keyScope = {
|
||||
scope: Scope.None,
|
||||
previous: Scope.None,
|
||||
|
@ -62,6 +60,7 @@ export class AbstractViewPopup extends AbstractView
|
|||
this.keyScope.scope = Scope[name];
|
||||
}
|
||||
this.bDisabeCloseOnEsc = false;
|
||||
this.modalVisibility = ko.observable(false).extend({ rateLimit: 0 });
|
||||
}
|
||||
/*
|
||||
onShowWithDelay() {}
|
||||
|
|
|
@ -45,9 +45,7 @@ const
|
|||
ViewModelClass.__dom = vmDom;
|
||||
|
||||
if (ViewType.Popup === position) {
|
||||
vm.cancelCommand = vm.closeCommand = createCommand(() => {
|
||||
hideScreenPopup(ViewModelClass);
|
||||
});
|
||||
vm.cancelCommand = vm.closeCommand = createCommand(() => hideScreenPopup(ViewModelClass));
|
||||
|
||||
// show/hide popup/modal
|
||||
const endShowHide = e => {
|
||||
|
@ -81,6 +79,17 @@ const
|
|||
arePopupsVisible(0 < visiblePopups.size);
|
||||
}
|
||||
vmDom.setAttribute('aria-hidden', !value);
|
||||
/*
|
||||
// the old ko.bindingHandlers.modal
|
||||
const close = vmDom.querySelector('.close'),
|
||||
click = () => vm.modalVisibility(false);
|
||||
if (close) {
|
||||
close.addEventListener('click.koModal', click);
|
||||
ko.utils.domNodeDisposal.addDisposeCallback(vmDom, () =>
|
||||
close.removeEventListener('click.koModal', click)
|
||||
);
|
||||
}
|
||||
*/
|
||||
});
|
||||
if ('ontransitionend' in vmDom) {
|
||||
vmDom.addEventListener('transitionend', endShowHide);
|
||||
|
@ -134,6 +143,16 @@ const
|
|||
});
|
||||
},
|
||||
|
||||
/**
|
||||
* @param {Function} ViewModelClassToHide
|
||||
* @returns {void}
|
||||
*/
|
||||
hideScreenPopup = ViewModelClassToHide => {
|
||||
if (ViewModelClassToHide && ViewModelClassToHide.__vm && ViewModelClassToHide.__dom) {
|
||||
ViewModelClassToHide.__vm.modalVisibility(false);
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* @param {string} screenName
|
||||
* @param {string} subPart
|
||||
|
@ -236,16 +255,6 @@ export const
|
|||
return fResult;
|
||||
},
|
||||
|
||||
/**
|
||||
* @param {Function} ViewModelClassToHide
|
||||
* @returns {void}
|
||||
*/
|
||||
hideScreenPopup = ViewModelClassToHide => {
|
||||
if (ViewModelClassToHide && ViewModelClassToHide.__vm && ViewModelClassToHide.__dom) {
|
||||
ViewModelClassToHide.__vm.modalVisibility(false);
|
||||
}
|
||||
},
|
||||
|
||||
getScreenPopupViewModel = ViewModelClassToShow =>
|
||||
(buildViewModel(ViewModelClassToShow) && ViewModelClassToShow.__dom) && ViewModelClassToShow.__vm,
|
||||
|
||||
|
|
|
@ -35,7 +35,7 @@ import Remote from 'Remote/User/Fetch';
|
|||
|
||||
import { ComposeAttachmentModel } from 'Model/ComposeAttachment';
|
||||
|
||||
import { decorateKoCommands, isPopupVisible, showScreenPopup, hideScreenPopup } from 'Knoin/Knoin';
|
||||
import { decorateKoCommands, isPopupVisible, showScreenPopup } from 'Knoin/Knoin';
|
||||
import { AbstractViewPopup } from 'Knoin/AbstractViews';
|
||||
|
||||
import { FolderSystemPopupView } from 'View/Popup/FolderSystem';
|
||||
|
@ -500,7 +500,7 @@ class ComposePopupView extends AbstractViewPopup {
|
|||
() => {
|
||||
if (this.modalVisibility()) {
|
||||
rl.app.deleteMessagesFromFolderWithoutCheck(this.draftFolder(), [this.draftUid()]);
|
||||
hideScreenPopup(ComposePopupView);
|
||||
this.closeCommand();
|
||||
}
|
||||
}
|
||||
]);
|
||||
|
@ -1064,9 +1064,7 @@ class ComposePopupView extends AbstractViewPopup {
|
|||
} else {
|
||||
showScreenPopup(AskPopupView, [
|
||||
i18n('POPUPS_ASK/DESC_WANT_CLOSE_THIS_WINDOW'),
|
||||
() => {
|
||||
this.modalVisibility() && this.closeCommand();
|
||||
}
|
||||
() => this.closeCommand()
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -23,7 +23,7 @@ import { EmailModel } from 'Model/Email';
|
|||
import { ContactModel } from 'Model/Contact';
|
||||
import { ContactPropertyModel, ContactPropertyType } from 'Model/ContactProperty';
|
||||
|
||||
import { decorateKoCommands, hideScreenPopup } from 'Knoin/Knoin';
|
||||
import { decorateKoCommands } from 'Knoin/Knoin';
|
||||
import { AbstractViewPopup } from 'Knoin/AbstractViews';
|
||||
|
||||
const CONTACTS_PER_PAGE = 50,
|
||||
|
@ -183,7 +183,7 @@ class ContactsPopupView extends AbstractViewPopup {
|
|||
if (arrayLength(aE)) {
|
||||
this.bBackToCompose = false;
|
||||
|
||||
hideScreenPopup(ContactsPopupView);
|
||||
this.closeCommand();
|
||||
|
||||
switch (this.sLastComposeFocusedField) {
|
||||
case 'cc':
|
||||
|
|
|
@ -32,8 +32,8 @@
|
|||
<div id="rl-content" hidden="">
|
||||
<div id="rl-left"></div>
|
||||
<div id="rl-right"></div>
|
||||
<div id="rl-popups"></div>
|
||||
</div>
|
||||
<div id="rl-popups"></div>
|
||||
{{BaseTemplates}}
|
||||
<script nonce="" type="text/javascript">{{BaseAppBootScript}}{{BaseLanguage}}</script>
|
||||
</body>
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<div class="modal fade b-domain-content g-ui-user-select-none"
|
||||
data-bind="modal: modalVisibility, css: {'domain-edit': edit}">
|
||||
data-bind="css: {'domain-edit': edit}">
|
||||
<div class="modal-header">
|
||||
<button type="button" class="close" data-bind="command: cancelCommand">×</button>
|
||||
<h3 data-bind="text: headerText"></h3>
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
<div class="modal fade b-domain-alias-content" data-bind="modal: modalVisibility">
|
||||
<div class="modal fade b-domain-alias-content">
|
||||
<div class="modal-header">
|
||||
<button type="button" class="close" data-bind="command: cancelCommand">×</button>
|
||||
<h3 data-i18n="POPUPS_DOMAIN_ALIAS/TITLE_ADD_DOMAIN_ALIAS"></h3>
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
<div class="modal fade b-plugin-content" data-bind="modal: modalVisibility">
|
||||
<div class="modal fade b-plugin-content">
|
||||
<div class="modal-header">
|
||||
<button type="button" class="close" data-bind="command: cancelCommand">×</button>
|
||||
<h4>
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
<div class="e-paginator g-ui-user-select-none" data-bind="foreach: $data">
|
||||
<nav class="e-paginator g-ui-user-select-none" data-bind="foreach: $data">
|
||||
<a data-bind="css: { 'current': current, 'custom': custom }, title: title, text: name"></a>
|
||||
</div>
|
||||
</nav>
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
<div class="modal fade b-ask-content g-ui-user-select-none" data-bind="modal: modalVisibility">
|
||||
<div class="modal fade b-ask-content g-ui-user-select-none">
|
||||
<div class="modal-body" data-bind="html: askDesc"></div>
|
||||
<div class="modal-footer">
|
||||
<button class="btn buttonYes" data-bind="click: yesClick">
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
<div class="modal fade b-languages-content g-ui-user-select-none" data-bind="modal: modalVisibility">
|
||||
<div class="modal fade b-languages-content g-ui-user-select-none">
|
||||
<div class="modal-header">
|
||||
<button type="button" class="close" data-bind="command: cancelCommand">×</button>
|
||||
<h3 data-i18n="POPUPS_LANGUAGES/TITLE_LANGUAGES"></h3>
|
||||
|
|
|
@ -7,7 +7,18 @@
|
|||
<a class="btn buttonContacts fontastic" data-bind="visible: allowContacts, click: contactsClick" data-i18n="[title]GLOBAL/CONTACTS">📇</a>
|
||||
</div>
|
||||
<div class="b-content">
|
||||
<ul class="b-folders-system" data-bind="template: { name: 'MailFolderListSystemItem', foreach: folderListSystem }"></ul>
|
||||
<ul class="b-folders-system" data-bind="foreach: folderListSystem">
|
||||
<li>
|
||||
<a data-bind="dropmessages: $data,
|
||||
css: { 'selected': selected, 'selectable': selectable, 'anim-action-class': actionBlink, 'is-flagged': isFlagged },
|
||||
attr: { 'data-unread': printableUnreadCount }">
|
||||
<!-- ko text: localName --><!-- /ko -->
|
||||
<!-- ko if: isInbox -->
|
||||
<span class="flag-icon fontastic"></span>
|
||||
<!-- /ko -->
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
<hr/>
|
||||
<ul class="b-folders-user" data-bind="template: { name: 'MailFolderListItem', foreach: folderListVisible }"></ul>
|
||||
<div class="move-action-content-wrapper" data-bind="visible: moveAction"></div>
|
||||
|
|
|
@ -1,10 +0,0 @@
|
|||
<li>
|
||||
<a data-bind="dropmessages: $data,
|
||||
css: { 'selected': selected, 'selectable': selectable, 'anim-action-class': actionBlink, 'is-flagged': isFlagged },
|
||||
attr: { 'data-unread': printableUnreadCount }">
|
||||
<!-- ko text: localName --><!-- /ko -->
|
||||
<!-- ko if: isInbox -->
|
||||
<span class="flag-icon fontastic"></span>
|
||||
<!-- /ko -->
|
||||
</a>
|
||||
</li>
|
|
@ -224,9 +224,11 @@
|
|||
<div id="messagesDragImage"><span class="text"></span> <i class="icon-mail"></i></div>
|
||||
</div>
|
||||
<div class="b-footer thm-message-list-bottom-toolbar">
|
||||
<span data-bind="visible: 0 < userUsageProc(), attr: { title: quotaTooltip() }" class="e-quota">
|
||||
<!-- ko if: 0 < userUsageProc() -->
|
||||
<span data-bind="attr: { title: quotaTooltip() }" class="e-quota">
|
||||
<!-- ko text: userUsageProc --><!-- /ko -->%
|
||||
</span>
|
||||
<!-- /ko -->
|
||||
<div class="pull-right">
|
||||
<!-- ko template: { name: 'Paginator', data: messageListPaginator } --><!-- /ko -->
|
||||
</div>
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
<div class="modal fade b-account-add-content g-ui-user-select-none" data-bind="modal: modalVisibility">
|
||||
<div class="modal fade b-account-add-content g-ui-user-select-none">
|
||||
<div class="modal-header">
|
||||
<button type="button" class="close" data-bind="command: cancelCommand">×</button>
|
||||
<h3>
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
<div class="modal fade b-open-pgp-key-add-content g-ui-user-select-none" data-bind="modal: modalVisibility">
|
||||
<div class="modal fade b-open-pgp-key-add-content g-ui-user-select-none">
|
||||
<div class="modal-header">
|
||||
<button type="button" class="close" data-bind="command: cancelCommand">×</button>
|
||||
<h3 data-i18n="POPUPS_IMPORT_OPEN_PGP_KEY/TITLE_IMPORT_OPEN_PGP_KEY"></h3>
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
<div class="modal fade b-advanced-search-content g-ui-user-select-none" data-bind="modal: modalVisibility">
|
||||
<div class="modal fade b-advanced-search-content g-ui-user-select-none">
|
||||
<div class="modal-header">
|
||||
<button type="button" class="close" data-bind="command: cancelCommand">×</button>
|
||||
<h3 data-i18n="SEARCH/TITLE_ADV"></h3>
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
<div class="modal fade b-compose" data-bind="modal: modalVisibility, css: {'loading': saving() || sending()}">
|
||||
<div class="modal fade b-compose" data-bind="css: {'loading': saving() || sending()}">
|
||||
<div class="modal-header b-header-toolbar g-ui-user-select-none">
|
||||
<a class="btn button-send" data-bind="command: sendCommand, tooltipErrorTip: sendErrorDesc, css: {'btn-success': sendButtonSuccess, 'btn-danger': sendError, 'btn-warning': sendSuccessButSaveError }">
|
||||
<i data-bind="css: {'icon-paper-plane': !sending(), 'icon-spinner': sending()}"></i>
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
<div class="modal fade b-compose-open-pgp-content g-ui-user-select-none" data-bind="modal: modalVisibility">
|
||||
<div class="modal fade b-compose-open-pgp-content g-ui-user-select-none">
|
||||
<div class="modal-header">
|
||||
<button type="button" class="close" data-bind="command: cancelCommand">×</button>
|
||||
<h3 data-i18n="POPUPS_COMPOSE_OPEN_PGP/TITLE_COMPOSE_OPEN_PGP"></h3>
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
<div class="modal fade b-filter-content g-ui-user-select-none" data-bind="modal: modalVisibility">
|
||||
<div class="modal fade b-filter-content g-ui-user-select-none">
|
||||
<div class="modal-header">
|
||||
<button type="button" class="close" data-bind="command: cancelCommand">×</button>
|
||||
<h3>
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
<div class="modal fade b-folder-clear-content g-ui-user-select-none" data-bind="modal: modalVisibility">
|
||||
<div class="modal fade b-folder-clear-content g-ui-user-select-none">
|
||||
<div class="modal-header">
|
||||
<button type="button" class="close" data-bind="command: cancelCommand">×</button>
|
||||
<h3>
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
<div class="modal fade b-folder-create-content g-ui-user-select-none" data-bind="modal: modalVisibility">
|
||||
<div class="modal fade b-folder-create-content g-ui-user-select-none">
|
||||
<div class="modal-header">
|
||||
<button type="button" class="close" data-bind="command: cancelCommand">×</button>
|
||||
<h3 data-i18n="POPUPS_CREATE_FOLDER/TITLE_CREATE_FOLDER"></h3>
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
<div class="modal fade b-folder-system-content g-ui-user-select-none" data-bind="modal: modalVisibility">
|
||||
<div class="modal fade b-folder-system-content g-ui-user-select-none">
|
||||
<div class="modal-header">
|
||||
<button type="button" class="close" data-bind="command: cancelCommand">×</button>
|
||||
<h3 data-i18n="POPUPS_SYSTEM_FOLDERS/TITLE_SYSTEM_FOLDERS"></h3>
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
<div class="modal fade b-identity-content" data-bind="modal: modalVisibility">
|
||||
<div class="modal fade b-identity-content">
|
||||
<div class="modal-header g-ui-user-select-none">
|
||||
<button type="button" class="close" data-bind="command: cancelCommand">×</button>
|
||||
<h3>
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
<div class="modal fade b-shortcuts-content" data-bind="modal: modalVisibility">
|
||||
<div class="modal fade b-shortcuts-content">
|
||||
<div class="modal-header">
|
||||
<button type="button" class="close" data-bind="command: cancelCommand">×</button>
|
||||
<h3 data-i18n="SHORTCUTS_HELP/LEGEND_SHORTCUTS_HELP"></h3>
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
<div class="modal fade b-message-open-pgp-content g-ui-user-select-none" data-bind="modal: modalVisibility">
|
||||
<div class="modal fade b-message-open-pgp-content g-ui-user-select-none">
|
||||
<div class="modal-header">
|
||||
<button type="button" class="close" data-bind="command: cancelCommand">×</button>
|
||||
<h3 data-i18n="POPUPS_MESSAGE_OPEN_PGP/TITLE_MESSAGE_OPEN_PGP"></h3>
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
<div class="modal fade b-open-pgp-key-generate-content g-ui-user-select-none" data-bind="modal: modalVisibility">
|
||||
<div class="modal fade b-open-pgp-key-generate-content g-ui-user-select-none">
|
||||
<div class="modal-header">
|
||||
<button type="button" class="close" data-bind="command: cancelCommand">×</button>
|
||||
<h3 data-i18n="POPUPS_GENERATE_OPEN_PGP_KEYS/TITLE_GENERATE_OPEN_PGP_KEYS"></h3>
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
<div class="modal fade b-filter-script g-ui-user-select-none" data-bind="modal: modalVisibility, with: script">
|
||||
<div class="modal fade b-filter-script g-ui-user-select-none" data-bind="with: script">
|
||||
<div class="modal-header">
|
||||
<button type="button" class="close" data-bind="command: $root.cancelCommand">×</button>
|
||||
<h3>
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
<div class="modal fade b-open-pgp-key-view-content" data-bind="modal: modalVisibility">
|
||||
<div class="modal fade b-open-pgp-key-view-content">
|
||||
<div class="modal-header g-ui-user-select-none">
|
||||
<button type="button" class="close" data-bind="command: cancelCommand">×</button>
|
||||
<h3 data-i18n="POPUPS_VIEW_OPEN_PGP_KEY/TITLE_VIEW_OPEN_PGP_KEY"></h3>
|
||||
|
|
Loading…
Reference in a new issue