mirror of
https://github.com/the-djmaze/snappymail.git
synced 2026-09-01 13:39:22 +03:00
More jQuery to native (including bootstrap.js)
This commit is contained in:
parent
bdb36ec128
commit
69fcc240e9
39 changed files with 496 additions and 344 deletions
|
|
@ -99,7 +99,7 @@ class ComposeOpenPgpPopupView extends AbstractViewNext {
|
|||
this.defautOptionsAfterRender(domOption, item);
|
||||
|
||||
if (item && undefined !== item.class && domOption) {
|
||||
jQuery(domOption).addClass(item.class);
|
||||
domOption.classList.add(item.class);
|
||||
}
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -610,7 +610,7 @@ class ContactsPopupView extends AbstractViewNext {
|
|||
}
|
||||
|
||||
onBuild(dom) {
|
||||
this.selector.init(dom[0].querySelector('.b-list-content'), KeyState.ContactList);
|
||||
this.selector.init(dom.querySelector('.b-list-content'), KeyState.ContactList);
|
||||
|
||||
key('delete', KeyState.ContactList, () => {
|
||||
this.deleteCommand();
|
||||
|
|
@ -624,11 +624,10 @@ class ContactsPopupView extends AbstractViewNext {
|
|||
|
||||
const self = this;
|
||||
|
||||
dom.on('click', '.e-pagenator .e-page', function() {
|
||||
// eslint-disable-line prefer-arrow-callback
|
||||
const page = ko.dataFor(this); // eslint-disable-line no-invalid-this
|
||||
if (page) {
|
||||
self.contactsPage(pInt(page.value));
|
||||
dom.addEventListener('click', event => {
|
||||
let el = event.target.closestWithin('.e-pagenator .e-page', dom);
|
||||
if (el && ko.dataFor(el)) {
|
||||
self.contactsPage(pInt(ko.dataFor(el).value));
|
||||
self.reloadContactList();
|
||||
}
|
||||
});
|
||||
|
|
|
|||
|
|
@ -14,27 +14,27 @@ class KeyboardShortcutsHelpPopupView extends AbstractViewNext {
|
|||
}
|
||||
|
||||
onBuild(dom) {
|
||||
dom.querySelectorAll('a[data-toggle="tab"]').forEach(node => node.Tab || new BSN.Tab(node));
|
||||
|
||||
key(
|
||||
'tab, shift+tab, left, right',
|
||||
KeyState.PopupKeyboardShortcutsHelp,
|
||||
((event, handler)=>{
|
||||
if (event && handler) {
|
||||
const $tabs = dom.find('.nav.nav-tabs > li'),
|
||||
isNext = handler && ('tab' === handler.shortcut || 'right' === handler.shortcut);
|
||||
const tabs = dom.querySelectorAll('.nav.nav-tabs > li'),
|
||||
last = tabs.length - 1;
|
||||
let next = 0;
|
||||
tabs.forEach((node, index) => {
|
||||
if (node.matches('.active')) {
|
||||
if (['tab','right'].includes(handler.shortcut)) {
|
||||
next = index < last ? index+1 : 0;
|
||||
} else {
|
||||
next = index ? index-1 : last;
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
let index = $tabs.index($tabs.filter('.active'));
|
||||
if (!isNext && 0 < index) {
|
||||
index -= 1;
|
||||
} else if (isNext && index < $tabs.length - 1) {
|
||||
index += 1;
|
||||
} else {
|
||||
index = isNext ? 0 : $tabs.length - 1;
|
||||
}
|
||||
|
||||
$tabs
|
||||
.eq(index)
|
||||
.find('a[data-toggle="tab"]')
|
||||
.tab('show');
|
||||
tabs[next].querySelector('a[data-toggle="tab"]').Tab.show();
|
||||
}
|
||||
}).throttle(100)
|
||||
);
|
||||
|
|
|
|||
|
|
@ -90,22 +90,18 @@ class MessageOpenPgpPopupView extends AbstractViewNext {
|
|||
|
||||
const self = this;
|
||||
|
||||
oDom.on('click', '.key-list__item', function() {
|
||||
// eslint-disable-line prefer-arrow-callback
|
||||
oDom.addEventListener('click', event => {
|
||||
const el = event.target.closestWithin('.key-list__item', oDom);
|
||||
if (el) {
|
||||
oDom.querySelectorAll('.key-list__item .key-list__item__radio').forEach(node => {
|
||||
node.classList.toggle('icon-radio-unchecked', el !== node);
|
||||
node.classList.toggle('icon-radio-checked', el === node);
|
||||
});
|
||||
|
||||
oDom
|
||||
.find('.key-list__item .key-list__item__radio')
|
||||
.addClass('icon-radio-unchecked')
|
||||
.removeClass('icon-radio-checked');
|
||||
self.selectedKey(ko.dataFor(el)); // eslint-disable-line no-invalid-this
|
||||
|
||||
jQuery(this)
|
||||
.find('.key-list__item__radio') // eslint-disable-line no-invalid-this
|
||||
.removeClass('icon-radio-unchecked')
|
||||
.addClass('icon-radio-checked');
|
||||
|
||||
self.selectedKey(ko.dataFor(this)); // eslint-disable-line no-invalid-this
|
||||
|
||||
// this.querySelector('.inputPassword').focus();
|
||||
// this.querySelector('.inputPassword').focus();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue