summaryrefslogtreecommitdiff
path: root/js
diff options
context:
space:
mode:
Diffstat (limited to 'js')
-rw-r--r--js/CommonFilters.js60
1 files changed, 28 insertions, 32 deletions
diff --git a/js/CommonFilters.js b/js/CommonFilters.js
index fb1cfacb9..7b7d64958 100644
--- a/js/CommonFilters.js
+++ b/js/CommonFilters.js
@@ -30,52 +30,48 @@ const Filters = {
params.offset = offset;
params.limit = test_dialog.limit;
- console.log("getTestResults:" + offset);
-
xhr.json("backend.php", params, (result) => {
try {
if (result && test_dialog && test_dialog.open) {
- test_dialog.results += result.length;
-
- console.log("got results:" + result.length);
-
const loading_message = test_dialog.domNode.querySelector(".loading-message");
const results_list = test_dialog.domNode.querySelector(".filter-results-list");
- loading_message.innerHTML = __("Looking for articles (%d processed, %f found)...")
- .replace("%f", test_dialog.results)
- .replace("%d", offset);
+ if (result.pre_filtering_count > 0) {
+ test_dialog.results += result.items.length;
- console.log(offset + " " + test_dialog.max_offset);
+ loading_message.innerHTML = __("Looking for articles (%d processed, %f found)...")
+ .replace("%f", test_dialog.results)
+ .replace("%d", offset);
- for (let i = 0; i < result.length; i++) {
- const tmp = dojo.create("div", { innerHTML: result[i]});
+ for (let i = 0; i < result.items.length; i++) {
+ const tmp = dojo.create("div", { innerHTML: result.items[i]});
- results_list.innerHTML += tmp.innerHTML;
- }
-
- if (test_dialog.results < 30 && offset < test_dialog.max_offset) {
+ results_list.innerHTML += tmp.innerHTML;
+ }
- // get the next batch
- window.setTimeout(function () {
- test_dialog.getTestResults(params, offset + test_dialog.limit);
- }, 0);
+ // get the next batch if there may be more available and testing limits haven't been reached
+ if (result.pre_filtering_count === test_dialog.limit &&
+ test_dialog.results < 30 &&
+ offset < test_dialog.max_offset) {
+ window.setTimeout(function () {
+ test_dialog.getTestResults(params, offset + test_dialog.limit);
+ }, 0);
- } else {
- // all done
-
- test_dialog.domNode.querySelector(".loading-indicator").hide();
+ return;
+ }
+ }
- if (test_dialog.results == 0) {
- results_list.innerHTML = `<li class="text-center text-muted">
- ${__('No recent articles matching this filter have been found.')}</li>`;
+ // all done-- either the backend found no more pre-filtering entries, or test limits were reached
+ test_dialog.domNode.querySelector(".loading-indicator").hide();
- loading_message.innerHTML = __("Articles matching this filter:");
- } else {
- loading_message.innerHTML = __("Found at least %d articles matching this filter:")
- .replace("%d", test_dialog.results);
- }
+ if (test_dialog.results == 0) {
+ results_list.innerHTML = `<li class="text-center text-muted">
+ ${__('No recent articles matching this filter have been found.')}</li>`;
+ loading_message.innerHTML = __("Articles matching this filter:");
+ } else {
+ loading_message.innerHTML = __("Found at least %d articles matching this filter:")
+ .replace("%d", test_dialog.results);
}
} else if (!result) {