From 4e5278882d7f2545d689cf92e1cd94f86d5f8b61 Mon Sep 17 00:00:00 2001 From: Isaac Connor <isaac@zoneminder.com> Date: Wed, 31 Aug 2022 23:38:50 +0200 Subject: [PATCH] use ajax() instead of getJSON so that we can specify no timeout. This prevents log queries from stacking up overloading the db --- web/skins/classic/views/js/events.js | 35 ++++++++++++++++++++-------- web/skins/classic/views/js/log.js | 15 ++++++++---- 2 files changed, 36 insertions(+), 14 deletions(-) diff --git a/web/skins/classic/views/js/events.js b/web/skins/classic/views/js/events.js index af5c67863..fb2dfe2f0 100644 --- a/web/skins/classic/views/js/events.js +++ b/web/skins/classic/views/js/events.js @@ -39,8 +39,11 @@ function ajaxRequest(params) { params.data.advsearch = params.data.filter; delete params.data.filter; } - $j.getJSON(thisUrl + '?view=request&request=events&task=query'+filterQuery, params.data) - .done(function(data) { + $j.ajax({ + url: thisUrl + '?view=request&request=events&task=query'+filterQuery, + data: params.data, + timeout: 0, + success: function(data) { if (data.result == 'Error') { alert(data.message); return; @@ -48,11 +51,13 @@ function ajaxRequest(params) { var rows = processRows(data.rows); // rearrange the result into what bootstrap-table expects params.success({total: data.total, totalNotFiltered: data.totalNotFiltered, rows: rows}); - }) - .fail(function(jqXHR) { - logAjaxFail(jqXHR); - $j('#eventTable').bootstrapTable('refresh'); - }); + }, + error: function(jqXHR) { + console.log("error", jqXHR); + //logAjaxFail(jqXHR); + //$j('#eventTable').bootstrapTable('refresh'); + } + }); } function processRows(rows) { @@ -110,7 +115,10 @@ function getDelConfirmModal() { insertModalHtml('deleteConfirm', data.html); manageDelConfirmModalBtns(); }) - .fail(logAjaxFail); + .fail(function(jqXHR) { + console.log("error getting delconfirm", jqXHR); + logAjaxFail(jqXHR); + }); } // Manage the DELETE CONFIRMATION modal button @@ -152,6 +160,7 @@ function deleteEvents(event_ids) { } }) .fail( function(jqxhr) { + console.log("Fail delete"); logAjaxFail(jqxhr); $j('#eventTable').bootstrapTable('refresh'); $j('#deleteConfirm').modal('hide'); @@ -169,7 +178,10 @@ function getEventDetailModal(eid) { $j('#eventDetailForm').submit(); }); }) - .fail(logAjaxFail); + .fail(function(jqxhr){ + console.log("Fail get event details"); + logAjaxFail(jqxhr); + }); } function getObjdetectModal(eid) { @@ -178,7 +190,10 @@ function getObjdetectModal(eid) { insertModalHtml('objdetectModal', data.html); $j('#objdetectModal').modal('show'); }) - .fail(logAjaxFail); + .fail(function(jqxhr){ + console.log("Fail get objdetect details"); + logAjaxFail(jqxhr); + }); } function initPage() { diff --git a/web/skins/classic/views/js/log.js b/web/skins/classic/views/js/log.js index d3824ab0d..a276b5f6b 100644 --- a/web/skins/classic/views/js/log.js +++ b/web/skins/classic/views/js/log.js @@ -27,8 +27,11 @@ var params = // Called by bootstrap-table to retrieve zm log data function ajaxRequest(params) { - $j.getJSON(thisUrl + '?view=request&request=log&task=query', params.data) - .done(function(data) { + $j.ajax({ + url: thisUrl + '?view=request&request=log&task=query', + data: params.data, + timeout: 0, + success: function(data) { //console.log('Ajax parameters: ' + JSON.stringify(params)); // rearrange the result into what bootstrap-table expects params.success({ @@ -37,9 +40,13 @@ function ajaxRequest(params) { rows: processRows(data.rows) }); updateHeaderStats(data); - }) - .fail(logAjaxFail); + }, + error: function(jqxhr) { + logAjaxFail(jqxhr); + } + }); } + function processRows(rows) { $j.each(rows, function(ndx, row) { try {