More jQuery to native (including bootstrap.js)

This commit is contained in:
djmaze 2020-08-30 10:30:50 +02:00
parent bdb36ec128
commit 69fcc240e9
39 changed files with 496 additions and 344 deletions

View file

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

View file

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

View file

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

View file

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