summaryrefslogtreecommitdiff
path: root/searx/static/plugins/js
diff options
context:
space:
mode:
authorMarkus Heiser <markus.heiser@darmarIT.de>2020-04-29 12:55:13 +0000
committerGitHub <noreply@github.com>2020-04-29 12:55:13 +0000
commit4bae1a9eabd33ee095002c0392d26c45e8319159 (patch)
tree43601cb54beca64d63457f66a46b1633ffb522c6 /searx/static/plugins/js
parentceceee546b5273d9a1ebce6638ab98c7c34ed58f (diff)
parent7342806987aec05c50f12e149683609640ba66a0 (diff)
Merge branch 'master' into fix/manage.sh
Diffstat (limited to 'searx/static/plugins/js')
-rw-r--r--searx/static/plugins/js/infinite_scroll.js44
-rw-r--r--searx/static/plugins/js/vim_hotkeys.js12
2 files changed, 43 insertions, 13 deletions
diff --git a/searx/static/plugins/js/infinite_scroll.js b/searx/static/plugins/js/infinite_scroll.js
index 1a95756a0..9930880e3 100644
--- a/searx/static/plugins/js/infinite_scroll.js
+++ b/searx/static/plugins/js/infinite_scroll.js
@@ -1,18 +1,40 @@
+function hasScrollbar() {
+ var root = document.compatMode=='BackCompat'? document.body : document.documentElement;
+ return root.scrollHeight>root.clientHeight;
+}
+
+function loadNextPage() {
+ var formData = $('#pagination form:last').serialize();
+ if (formData) {
+ $('#pagination').html('<div class="loading-spinner"></div>');
+ $.ajax({
+ type: "POST",
+ url: './',
+ data: formData,
+ dataType: 'html',
+ success: function(data) {
+ var body = $(data);
+ $('#pagination').remove();
+ $('#main_results').append('<hr/>');
+ $('#main_results').append(body.find('.result'));
+ $('#main_results').append(body.find('#pagination'));
+ if(!hasScrollbar()) {
+ loadNextPage();
+ }
+ }
+ });
+ }
+}
+
$(document).ready(function() {
var win = $(window);
+ if(!hasScrollbar()) {
+ loadNextPage();
+ }
win.scroll(function() {
+ $("#pagination button").css("visibility", "hidden");
if ($(document).height() - win.height() - win.scrollTop() < 150) {
- var formData = $('#pagination form:last').serialize();
- if (formData) {
- $('#pagination').html('<div class="loading-spinner"></div>');
- $.post('./', formData, function (data) {
- var body = $(data);
- $('#pagination').remove();
- $('#main_results').append('<hr/>');
- $('#main_results').append(body.find('.result'));
- $('#main_results').append(body.find('#pagination'));
- });
- }
+ loadNextPage();
}
});
});
diff --git a/searx/static/plugins/js/vim_hotkeys.js b/searx/static/plugins/js/vim_hotkeys.js
index 13bd070e0..b0f265cb5 100644
--- a/searx/static/plugins/js/vim_hotkeys.js
+++ b/searx/static/plugins/js/vim_hotkeys.js
@@ -125,6 +125,14 @@ $(document).ready(function() {
}
});
+ function nextResult(current, direction) {
+ var next = current[direction]();
+ while (!next.is('.result') && next.length !== 0) {
+ next = next[direction]();
+ }
+ return next
+ }
+
function highlightResult(which) {
return function() {
var current = $('.result[data-vim-selected]');
@@ -157,13 +165,13 @@ $(document).ready(function() {
}
break;
case 'down':
- next = current.next('.result');
+ next = nextResult(current, 'next');
if (next.length === 0) {
next = $('.result:first');
}
break;
case 'up':
- next = current.prev('.result');
+ next = nextResult(current, 'prev');
if (next.length === 0) {
next = $('.result:last');
}