diff options
| author | Markus Heiser <markus.heiser@darmarIT.de> | 2020-04-29 12:55:13 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-04-29 12:55:13 +0000 |
| commit | 4bae1a9eabd33ee095002c0392d26c45e8319159 (patch) | |
| tree | 43601cb54beca64d63457f66a46b1633ffb522c6 /searx/static/plugins | |
| parent | ceceee546b5273d9a1ebce6638ab98c7c34ed58f (diff) | |
| parent | 7342806987aec05c50f12e149683609640ba66a0 (diff) | |
Merge branch 'master' into fix/manage.sh
Diffstat (limited to 'searx/static/plugins')
| -rw-r--r-- | searx/static/plugins/js/infinite_scroll.js | 44 | ||||
| -rw-r--r-- | searx/static/plugins/js/vim_hotkeys.js | 12 |
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'); } |