From 6357c02ec938bf0931149e8b516bd6931e3e06eb Mon Sep 17 00:00:00 2001 From: Andrew Bauer Date: Tue, 20 Oct 2020 12:13:12 -0500 Subject: [PATCH 1/2] WIP events view server pagination --- web/ajax/events.php | 7 +++++++ web/skins/classic/views/js/events.js | 6 ++++++ 2 files changed, 13 insertions(+) diff --git a/web/ajax/events.php b/web/ajax/events.php index e241067ad..448fdf6d4 100644 --- a/web/ajax/events.php +++ b/web/ajax/events.php @@ -185,7 +185,14 @@ function queryRequest($search, $advsearch, $sort, $offset, $order, $limit) { $rows = array(); foreach ( dbFetchAll($query['sql'], NULL, $query['values']) as $row ) { + $event = new ZM\Event($row['Id']); + $scale = max(reScale(SCALE_BASE, $event->DefaultScale(), ZM_WEB_DEFAULT_SCALE), SCALE_BASE); + $imgSrc = $event->getThumbnailSrc(array(),'&'); + $streamSrc = $event->getStreamSrc(array( + 'mode'=>'jpeg', 'scale'=>$scale, 'maxfps'=>ZM_WEB_VIDEO_MAXFPS, 'replay'=>'single', 'rate'=>'400'), '&'); + // Modify the row data as needed + $row['imgHtml'] = '' .validHtmlStr('Event ' .$event->Id()). ''; $row['Name'] = validHtmlStr($row['Name']); $row['Archived'] = $row['Archived'] ? translate('Yes') : translate('No'); $row['Emailed'] = $row['Emailed'] ? translate('Yes') : translate('No'); diff --git a/web/skins/classic/views/js/events.js b/web/skins/classic/views/js/events.js index b24f65e5f..9c07088ed 100644 --- a/web/skins/classic/views/js/events.js +++ b/web/skins/classic/views/js/events.js @@ -67,6 +67,7 @@ function processRows(rows) { row.Frames = '' + row.Frames + ''; row.AlarmFrames = '' + row.AlarmFrames + ''; row.MaxScore = '' + row.MaxScore + ''; + row.Thumbnail = '' + row.imgHtml + ''; }); return rows; @@ -334,6 +335,11 @@ function initPage() { var eid = $j(this).data('eid'); getEventDetailModal(eid); }); + + var thumb_ndx = $j('#eventTable tr th').filter(function() { + return $j(this).text().trim() == 'Thumbnail'; + }).index(); + table.find("tr td:nth-child(" + (thumb_ndx+1) + ")").addClass('colThumbnail zoom'); }); // The table is initially given a hidden style, so now that we are done rendering, show it From b5aa215e31611c5e4573bac7ee38ac026725897c Mon Sep 17 00:00:00 2001 From: Andrew Bauer Date: Tue, 20 Oct 2020 12:59:30 -0500 Subject: [PATCH 2/2] WIP events view server pagination --- web/ajax/events.php | 2 +- web/skins/classic/js/skin.js.php | 2 ++ web/skins/classic/views/js/events.js | 9 +++------ 3 files changed, 6 insertions(+), 7 deletions(-) diff --git a/web/ajax/events.php b/web/ajax/events.php index 448fdf6d4..f9a4fc14b 100644 --- a/web/ajax/events.php +++ b/web/ajax/events.php @@ -186,7 +186,7 @@ function queryRequest($search, $advsearch, $sort, $offset, $order, $limit) { $rows = array(); foreach ( dbFetchAll($query['sql'], NULL, $query['values']) as $row ) { $event = new ZM\Event($row['Id']); - $scale = max(reScale(SCALE_BASE, $event->DefaultScale(), ZM_WEB_DEFAULT_SCALE), SCALE_BASE); + $scale = intval(5*100*ZM_WEB_LIST_THUMB_WIDTH / $event->Width()); $imgSrc = $event->getThumbnailSrc(array(),'&'); $streamSrc = $event->getStreamSrc(array( 'mode'=>'jpeg', 'scale'=>$scale, 'maxfps'=>ZM_WEB_VIDEO_MAXFPS, 'replay'=>'single', 'rate'=>'400'), '&'); diff --git a/web/skins/classic/js/skin.js.php b/web/skins/classic/js/skin.js.php index 64f80363e..6bf426454 100644 --- a/web/skins/classic/js/skin.js.php +++ b/web/skins/classic/js/skin.js.php @@ -44,6 +44,8 @@ var canEditSystem = ; var canViewSystem = ; var canEditEvents = ; var canViewEvents = ; +var canEditMonitors = ; +var canViewMonitors = ; var canEditGroups = ; diff --git a/web/skins/classic/views/js/events.js b/web/skins/classic/views/js/events.js index 9c07088ed..f037795e8 100644 --- a/web/skins/classic/views/js/events.js +++ b/web/skins/classic/views/js/events.js @@ -37,17 +37,14 @@ var params = function ajaxRequest(params) { $j.getJSON(thisUrl + '?view=request&request=events&task=query', params.data) .done(function(data) { - //console.log('Ajax parameters: ' + JSON.stringify(params)); - // rearrange the result into what bootstrap-table expects var rows = processRows(data.rows); + // rearrange the result into what bootstrap-table expects params.success({total: data.total, totalNotFiltered: data.totalNotFiltered, rows: rows}); }) .fail(logAjaxFail); } function processRows(rows) { - // WIP: Inject desired html and formatting for the cells in each row - // REMINDER: Make these lines dependent on user permissions e.g. canEditEvents $j.each(rows, function(ndx, row) { var eid = row.Id; var mid = row.MonitorId; @@ -57,8 +54,8 @@ function processRows(rows) { row.Id = '' + eid + ''; row.Name = '' + row.Name + '' + '
' + archived + emailed + '
'; - row.Monitor = '' + row.Monitor + ''; - row.Cause = '' + row.Cause + ''; + if ( canEditMonitors ) row.Monitor = '' + row.Monitor + ''; + if ( canEditEvents ) row.Cause = '' + row.Cause + ''; if ( row.Notes.indexOf('detected:') >= 0 ) { row.Cause = row.Cause + '
' + row.Notes + '
'; } else if ( row.Notes != 'Forced Web: ' ) {