|
@@ -1,9 +1,9 @@
|
|
|
|
|
|
-
|
|
|
+
|
|
|
|
|
|
-searxng.ready(function() {
|
|
|
+searxng.ready(function () {
|
|
|
|
|
|
- function isElementInDetail(el) {
|
|
|
+ function isElementInDetail (el) {
|
|
|
while (el !== undefined) {
|
|
|
if (el.classList.contains('detail')) {
|
|
|
return true;
|
|
@@ -18,7 +18,7 @@ searxng.ready(function() {
|
|
|
return false;
|
|
|
}
|
|
|
|
|
|
- function getResultElement(el) {
|
|
|
+ function getResultElement (el) {
|
|
|
while (el !== undefined) {
|
|
|
if (el.classList.contains('result')) {
|
|
|
return el;
|
|
@@ -28,11 +28,11 @@ searxng.ready(function() {
|
|
|
return undefined;
|
|
|
}
|
|
|
|
|
|
- function isImageResult(resultElement) {
|
|
|
+ function isImageResult (resultElement) {
|
|
|
return resultElement && resultElement.classList.contains('result-images');
|
|
|
}
|
|
|
|
|
|
- searxng.on('.result', 'click', function(e) {
|
|
|
+ searxng.on('.result', 'click', function (e) {
|
|
|
if (!isElementInDetail(e.target)) {
|
|
|
highlightResult(this)(true);
|
|
|
let resultElement = getResultElement(e.target);
|
|
@@ -43,7 +43,7 @@ searxng.ready(function() {
|
|
|
}
|
|
|
});
|
|
|
|
|
|
- searxng.on('.result a', 'focus', function(e) {
|
|
|
+ searxng.on('.result a', 'focus', function (e) {
|
|
|
if (!isElementInDetail(e.target)) {
|
|
|
let resultElement = getResultElement(e.target);
|
|
|
if (resultElement && resultElement.getAttribute("data-vim-selected") === null) {
|
|
@@ -155,7 +155,7 @@ searxng.ready(function() {
|
|
|
};
|
|
|
|
|
|
if (searxng.hotkeys) {
|
|
|
- searxng.on(document, "keydown", function(e) {
|
|
|
+ searxng.on(document, "keydown", function (e) {
|
|
|
|
|
|
if (Object.prototype.hasOwnProperty.call(vimKeys, e.keyCode) && !e.ctrlKey && !e.altKey && !e.shiftKey && !e.metaKey) {
|
|
|
var tagName = e.target.tagName.toLowerCase();
|
|
@@ -171,10 +171,10 @@ searxng.ready(function() {
|
|
|
});
|
|
|
}
|
|
|
|
|
|
- function highlightResult(which) {
|
|
|
- return function(noScroll) {
|
|
|
+ function highlightResult (which) {
|
|
|
+ return function (noScroll) {
|
|
|
var current = document.querySelector('.result[data-vim-selected]'),
|
|
|
- effectiveWhich = which;
|
|
|
+ effectiveWhich = which;
|
|
|
if (current === null) {
|
|
|
|
|
|
current = document.querySelector('.result');
|
|
@@ -194,7 +194,7 @@ searxng.ready(function() {
|
|
|
next = effectiveWhich;
|
|
|
} else {
|
|
|
switch (effectiveWhich) {
|
|
|
- case 'visible':
|
|
|
+ case 'visible':
|
|
|
var top = document.documentElement.scrollTop || document.body.scrollTop;
|
|
|
var bot = top + document.documentElement.clientHeight;
|
|
|
|
|
@@ -208,24 +208,24 @@ searxng.ready(function() {
|
|
|
}
|
|
|
}
|
|
|
break;
|
|
|
- case 'down':
|
|
|
+ case 'down':
|
|
|
next = current.nextElementSibling;
|
|
|
if (next === null) {
|
|
|
next = results[0];
|
|
|
}
|
|
|
break;
|
|
|
- case 'up':
|
|
|
+ case 'up':
|
|
|
next = current.previousElementSibling;
|
|
|
if (next === null) {
|
|
|
next = results[results.length - 1];
|
|
|
}
|
|
|
break;
|
|
|
- case 'bottom':
|
|
|
+ case 'bottom':
|
|
|
next = results[results.length - 1];
|
|
|
break;
|
|
|
- case 'top':
|
|
|
+ case 'top':
|
|
|
|
|
|
- default:
|
|
|
+ default:
|
|
|
next = results[0];
|
|
|
}
|
|
|
}
|
|
@@ -244,11 +244,11 @@ searxng.ready(function() {
|
|
|
};
|
|
|
}
|
|
|
|
|
|
- function reloadPage() {
|
|
|
+ function reloadPage () {
|
|
|
document.location.reload(true);
|
|
|
}
|
|
|
|
|
|
- function removeFocus(e) {
|
|
|
+ function removeFocus (e) {
|
|
|
const tagName = e.target.tagName.toLowerCase();
|
|
|
if (document.activeElement && (tagName === 'input' || tagName === 'select' || tagName === 'textarea')) {
|
|
|
document.activeElement.blur();
|
|
@@ -257,8 +257,8 @@ searxng.ready(function() {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- function pageButtonClick(css_selector) {
|
|
|
- return function() {
|
|
|
+ function pageButtonClick (css_selector) {
|
|
|
+ return function () {
|
|
|
var button = document.querySelector(css_selector);
|
|
|
if (button) {
|
|
|
button.click();
|
|
@@ -266,24 +266,24 @@ searxng.ready(function() {
|
|
|
};
|
|
|
}
|
|
|
|
|
|
- function GoToNextPage() {
|
|
|
+ function GoToNextPage () {
|
|
|
return pageButtonClick('nav#pagination .next_page button[type="submit"]');
|
|
|
}
|
|
|
|
|
|
- function GoToPreviousPage() {
|
|
|
+ function GoToPreviousPage () {
|
|
|
return pageButtonClick('nav#pagination .previous_page button[type="submit"]');
|
|
|
}
|
|
|
|
|
|
- function scrollPageToSelected() {
|
|
|
+ function scrollPageToSelected () {
|
|
|
var sel = document.querySelector('.result[data-vim-selected]');
|
|
|
if (sel === null) {
|
|
|
return;
|
|
|
}
|
|
|
var wtop = document.documentElement.scrollTop || document.body.scrollTop,
|
|
|
- wheight = document.documentElement.clientHeight,
|
|
|
- etop = sel.offsetTop,
|
|
|
- ebot = etop + sel.clientHeight,
|
|
|
- offset = 120;
|
|
|
+ wheight = document.documentElement.clientHeight,
|
|
|
+ etop = sel.offsetTop,
|
|
|
+ ebot = etop + sel.clientHeight,
|
|
|
+ offset = 120;
|
|
|
|
|
|
if ((sel.previousElementSibling === null) && (ebot < wheight)) {
|
|
|
|
|
@@ -301,27 +301,27 @@ searxng.ready(function() {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- function scrollPage(amount) {
|
|
|
- return function() {
|
|
|
+ function scrollPage (amount) {
|
|
|
+ return function () {
|
|
|
window.scrollBy(0, amount);
|
|
|
highlightResult('visible')();
|
|
|
};
|
|
|
}
|
|
|
|
|
|
- function scrollPageTo(position, nav) {
|
|
|
- return function() {
|
|
|
+ function scrollPageTo (position, nav) {
|
|
|
+ return function () {
|
|
|
window.scrollTo(0, position);
|
|
|
highlightResult(nav)();
|
|
|
};
|
|
|
}
|
|
|
|
|
|
- function searchInputFocus() {
|
|
|
+ function searchInputFocus () {
|
|
|
window.scrollTo(0, 0);
|
|
|
document.querySelector('#q').focus();
|
|
|
}
|
|
|
|
|
|
- function openResult(newTab) {
|
|
|
- return function() {
|
|
|
+ function openResult (newTab) {
|
|
|
+ return function () {
|
|
|
var link = document.querySelector('.result[data-vim-selected] h3 a');
|
|
|
if (link === null) {
|
|
|
link = document.querySelector('.result[data-vim-selected] > a');
|
|
@@ -337,7 +337,7 @@ searxng.ready(function() {
|
|
|
};
|
|
|
}
|
|
|
|
|
|
- function initHelpContent(divElement) {
|
|
|
+ function initHelpContent (divElement) {
|
|
|
var categories = {};
|
|
|
|
|
|
for (var k in vimKeys) {
|
|
@@ -346,7 +346,7 @@ searxng.ready(function() {
|
|
|
categories[key.cat].push(key);
|
|
|
}
|
|
|
|
|
|
- var sorted = Object.keys(categories).sort(function(a, b) {
|
|
|
+ var sorted = Object.keys(categories).sort(function (a, b) {
|
|
|
return categories[b].length - categories[a].length;
|
|
|
});
|
|
|
|
|
@@ -386,23 +386,23 @@ searxng.ready(function() {
|
|
|
|
|
|
html += '</table>';
|
|
|
|
|
|
- divElement.innerHTML = html;
|
|
|
+ divElement.innerHTML = html;
|
|
|
}
|
|
|
|
|
|
- function toggleHelp() {
|
|
|
+ function toggleHelp () {
|
|
|
var helpPanel = document.querySelector('#vim-hotkeys-help');
|
|
|
if (helpPanel === undefined || helpPanel === null) {
|
|
|
-
|
|
|
+
|
|
|
helpPanel = document.createElement('div');
|
|
|
- helpPanel.id = 'vim-hotkeys-help';
|
|
|
- helpPanel.className='dialog-modal';
|
|
|
+ helpPanel.id = 'vim-hotkeys-help';
|
|
|
+ helpPanel.className = 'dialog-modal';
|
|
|
+ initHelpContent(helpPanel);
|
|
|
initHelpContent(helpPanel);
|
|
|
- initHelpContent(helpPanel);
|
|
|
initHelpContent(helpPanel);
|
|
|
var body = document.getElementsByTagName('body')[0];
|
|
|
body.appendChild(helpPanel);
|
|
|
} else {
|
|
|
-
|
|
|
+
|
|
|
helpPanel.classList.toggle('invisible');
|
|
|
return;
|
|
|
}
|