From f87be2d2895b7c3f0f77f9a42ff4b56c87155bbb Mon Sep 17 00:00:00 2001 From: Andrew Bauer Date: Sun, 25 Oct 2020 08:24:56 -0500 Subject: [PATCH 1/6] specify the table name when we sort in events view --- web/ajax/events.php | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/web/ajax/events.php b/web/ajax/events.php index d224b8742..eddd62463 100644 --- a/web/ajax/events.php +++ b/web/ajax/events.php @@ -173,6 +173,7 @@ function queryRequest($filter, $search, $advsearch, $sort, $offset, $order, $lim if ( $where ) $where = ' WHERE '.$where; + $sort = $sort == "Name" ? 'M.'.$sort : 'E.'.$sort; $col_str = 'E.*'; $query['sql'] = 'SELECT ' .$col_str. ' FROM `' .$table. '` AS E INNER JOIN Monitors AS M ON E.MonitorId = M.Id'.$where.' ORDER BY LENGTH(' .$sort. '), ' .$sort. ' ' .$order. ' LIMIT ?, ?'; array_push($query['values'], $offset, $limit); @@ -192,12 +193,6 @@ function queryRequest($filter, $search, $advsearch, $sort, $offset, $order, $lim $StorageById[$S->Id()] = $S; } - $monitor_names = ZM\Monitor::find(); - $MonitorById = array(); - foreach ( $monitor_names as $S ) { - $MonitorById[$S->Id()] = $S; - } - $rows = array(); foreach ( dbFetchAll($query['sql'], NULL, $query['values']) as $row ) { ZM\Debug("row".print_r($row,true)); @@ -212,7 +207,6 @@ function queryRequest($filter, $search, $advsearch, $sort, $offset, $order, $lim $row['Name'] = validHtmlStr($row['Name']); $row['Archived'] = $row['Archived'] ? translate('Yes') : translate('No'); $row['Emailed'] = $row['Emailed'] ? translate('Yes') : translate('No'); - $row['Monitor'] = ( $row['MonitorId'] and isset($MonitorById[$row['MonitorId']]) ) ? $MonitorById[$row['MonitorId']]->Name() : ''; $row['Cause'] = validHtmlStr($row['Cause']); $row['StartTime'] = strftime(STRF_FMT_DATETIME_SHORTER, strtotime($row['StartTime'])); $row['EndTime'] = strftime(STRF_FMT_DATETIME_SHORTER, strtotime($row['StartTime'])); From cb073950b93a6e39955f851e8ed9aea6afef34ab Mon Sep 17 00:00:00 2001 From: Andrew Bauer Date: Sun, 25 Oct 2020 10:28:22 -0500 Subject: [PATCH 2/6] events view server pagination WIP --- web/ajax/events.php | 11 +---------- web/skins/classic/views/js/events.js | 2 +- web/skins/classic/views/newevents.php | 2 +- 3 files changed, 3 insertions(+), 12 deletions(-) diff --git a/web/ajax/events.php b/web/ajax/events.php index eddd62463..f6be6e501 100644 --- a/web/ajax/events.php +++ b/web/ajax/events.php @@ -129,15 +129,6 @@ function queryRequest($filter, $search, $advsearch, $sort, $offset, $order, $lim ZM\Fatal('Invalid sort field: ' . $sort); } - $col_str = ''; - foreach ( $columns as $key => $col ) { - if ( $col == 'Name' ) { - $columns[$key] = 'M.'.$col; - } else { - $columns[$key] = 'E.'.$col; - } - } - $col_str = implode(', ', $columns); $data = array(); $query = array(); $query['values'] = array(); @@ -174,7 +165,7 @@ function queryRequest($filter, $search, $advsearch, $sort, $offset, $order, $lim $where = ' WHERE '.$where; $sort = $sort == "Name" ? 'M.'.$sort : 'E.'.$sort; - $col_str = 'E.*'; + $col_str = 'E.*, M.Name AS Monitor'; $query['sql'] = 'SELECT ' .$col_str. ' FROM `' .$table. '` AS E INNER JOIN Monitors AS M ON E.MonitorId = M.Id'.$where.' ORDER BY LENGTH(' .$sort. '), ' .$sort. ' ' .$order. ' LIMIT ?, ?'; array_push($query['values'], $offset, $limit); diff --git a/web/skins/classic/views/js/events.js b/web/skins/classic/views/js/events.js index 442eca616..b51c679a3 100644 --- a/web/skins/classic/views/js/events.js +++ b/web/skins/classic/views/js/events.js @@ -58,7 +58,7 @@ function processRows(rows) { row.Id = '' + eid + ''; row.Name = '' + row.Name + '' + '
' + archived + emailed + '
'; - if ( canEditMonitors ) row.Name = '' + row.Name + ''; + if ( canEditMonitors ) row.Monitor = '' + row.Monitor + ''; if ( canEditEvents ) row.Cause = '' + row.Cause + ''; if ( row.Notes.indexOf('detected:') >= 0 ) { row.Cause = row.Cause + '
' + row.Notes + '
'; diff --git a/web/skins/classic/views/newevents.php b/web/skins/classic/views/newevents.php index 73f9e4a4d..555f13f51 100644 --- a/web/skins/classic/views/newevents.php +++ b/web/skins/classic/views/newevents.php @@ -102,7 +102,7 @@ getBodyTopHTML(); - + From e9b71b4ce17f8c23ecfa6625d51f9b84b9eab823 Mon Sep 17 00:00:00 2001 From: Andrew Bauer Date: Sun, 25 Oct 2020 10:40:29 -0500 Subject: [PATCH 3/6] events view server pagination - fix sorting name & monitor --- web/ajax/events.php | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/web/ajax/events.php b/web/ajax/events.php index f6be6e501..eb74f543a 100644 --- a/web/ajax/events.php +++ b/web/ajax/events.php @@ -164,9 +164,10 @@ function queryRequest($filter, $search, $advsearch, $sort, $offset, $order, $lim if ( $where ) $where = ' WHERE '.$where; - $sort = $sort == "Name" ? 'M.'.$sort : 'E.'.$sort; + $sort = $sort == "Monitor" ? 'M.Name' : 'E.'.$sort; $col_str = 'E.*, M.Name AS Monitor'; - $query['sql'] = 'SELECT ' .$col_str. ' FROM `' .$table. '` AS E INNER JOIN Monitors AS M ON E.MonitorId = M.Id'.$where.' ORDER BY LENGTH(' .$sort. '), ' .$sort. ' ' .$order. ' LIMIT ?, ?'; + //$query['sql'] = 'SELECT ' .$col_str. ' FROM `' .$table. '` AS E INNER JOIN Monitors AS M ON E.MonitorId = M.Id'.$where.' ORDER BY LENGTH(' .$sort. '), ' .$sort. ' ' .$order. ' LIMIT ?, ?'; + $query['sql'] = 'SELECT ' .$col_str. ' FROM `' .$table. '` AS E INNER JOIN Monitors AS M ON E.MonitorId = M.Id'.$where.' ORDER BY ' .$sort. ' ' .$order. ' LIMIT ?, ?'; array_push($query['values'], $offset, $limit); ZM\Warning('Calling the following sql query: ' .$query['sql']); From 8cf899efc5dbf2f74292014cf80bbdf5ccb5c631 Mon Sep 17 00:00:00 2001 From: Andrew Bauer Date: Sun, 25 Oct 2020 10:58:27 -0500 Subject: [PATCH 4/6] remove commented line --- web/ajax/events.php | 1 - 1 file changed, 1 deletion(-) diff --git a/web/ajax/events.php b/web/ajax/events.php index eb74f543a..c27817be3 100644 --- a/web/ajax/events.php +++ b/web/ajax/events.php @@ -166,7 +166,6 @@ function queryRequest($filter, $search, $advsearch, $sort, $offset, $order, $lim $sort = $sort == "Monitor" ? 'M.Name' : 'E.'.$sort; $col_str = 'E.*, M.Name AS Monitor'; - //$query['sql'] = 'SELECT ' .$col_str. ' FROM `' .$table. '` AS E INNER JOIN Monitors AS M ON E.MonitorId = M.Id'.$where.' ORDER BY LENGTH(' .$sort. '), ' .$sort. ' ' .$order. ' LIMIT ?, ?'; $query['sql'] = 'SELECT ' .$col_str. ' FROM `' .$table. '` AS E INNER JOIN Monitors AS M ON E.MonitorId = M.Id'.$where.' ORDER BY ' .$sort. ' ' .$order. ' LIMIT ?, ?'; array_push($query['values'], $offset, $limit); From 6d00924c9b23539e9cde6f6bfc9b532f9bea7eb7 Mon Sep 17 00:00:00 2001 From: Andrew Bauer Date: Sun, 25 Oct 2020 12:11:34 -0500 Subject: [PATCH 5/6] deploy server pagination for events view --- web/skins/classic/views/events.php | 233 ++------------------------ web/skins/classic/views/js/events.js | 7 - web/skins/classic/views/newevents.php | 128 -------------- 3 files changed, 15 insertions(+), 353 deletions(-) delete mode 100644 web/skins/classic/views/newevents.php diff --git a/web/skins/classic/views/events.php b/web/skins/classic/views/events.php index a70fa8d19..555f13f51 100644 --- a/web/skins/classic/views/events.php +++ b/web/skins/classic/views/events.php @@ -42,73 +42,6 @@ if ( isset($_REQUEST['filter'])) { parseSort(); $filterQuery = $filter->querystring(); -ZM\Debug('Filter '.print_r($filter, true)); - -if ( $filter->sql() ) { - $eventsSql .= ' AND ('.$filter->sql().')'; -} else { - ZM\Warning('No filters'); - exit; -} -$eventsSql .= ' ORDER BY '.$sortColumn.' '.$sortOrder; -if ( $sortColumn != 'E.Id' ) $eventsSql .= ',E.Id '.$sortOrder; - -$page = isset($_REQUEST['page']) ? validInt($_REQUEST['page']) : 0; -$limit = isset($_REQUEST['limit']) ? validInt($_REQUEST['limit']) : $filter['limit']; - -if ( $_POST ) { - // I think this is basically so that a refresh doesn't repost - ZM\Debug('Redirecting to ' . $_SERVER['REQUEST_URI']); - header('Location: ?view=' . $view.htmlspecialchars_decode($filterQuery).htmlspecialchars_decode($sortQuery).$limitQuery.'&page='.$page); - exit(); -} - -$failed = !$filter->test_pre_sql_conditions(); -if ( $failed ) { - ZM\Debug('Pre conditions failed, not doing sql'); -} - -$results = $failed ? null : dbQuery($eventsSql); - -$nEvents = $results ? $results->rowCount() : 0; -if ( ! $results ) { - global $error_message; - $error_message = dbError($eventsSql); -} -ZM\Debug("Pre conditions succeeded sql return $nEvents events"); - -if ( !empty($limit) && ($nEvents > $limit) ) { - $nEvents = $limit; -} -$pages = (int)ceil($nEvents/ZM_WEB_EVENTS_PER_PAGE); -#Debug("Page $page Limit $limit #vents: $nEvents pages: $pages "); -if ( !empty($page) ) { - if ( $page < 0 ) - $page = 1; - else if ( $pages and ( $page > $pages ) ) - $page = $pages; - - $limitStart = (($page-1)*ZM_WEB_EVENTS_PER_PAGE); - if ( empty($limit) ) { - $limitAmount = ZM_WEB_EVENTS_PER_PAGE; - } else { - $limitLeft = $limit - $limitStart; - $limitAmount = ($limitLeft>ZM_WEB_EVENTS_PER_PAGE)?ZM_WEB_EVENTS_PER_PAGE:$limitLeft; - } - $eventsSql .= ' LIMIT '.$limitStart.', '.$limitAmount; -} else if ( !empty($limit) ) { - $eventsSql .= ' LIMIT 0, '.$limit; -} - -$maxShortcuts = 5; - -$focusWindow = true; - -$storage_areas = ZM\Storage::find(); -$StorageById = array(); -foreach ( $storage_areas as $S ) { - $StorageById[$S->Id()] = $S; -} xhtmlHeaders(__FILE__, translate('Events')); getBodyTopHTML(); @@ -136,6 +69,8 @@ getBodyTopHTML(); @@ -168,163 +104,24 @@ getBodyTopHTML(); - - - + + + - - - - - 1 ) { -?> - - + + + + + - - - - - - while ( $event_row = dbFetchNext($results) ) { - $event = new ZM\Event($event_row); - - if ( !$filter->test_post_sql_conditions($event) ) { - $event->remove_from_cache(); - continue; - } - $events[] = $event; - if ( $limit and (count($events) >= $limit) ) { - break; - } - ZM\Debug("Have " . count($events) . " events, limit $limit"); - } - foreach ( $events as $event ) { - - $scale = max(reScale(SCALE_BASE, $event->DefaultScale(), ZM_WEB_DEFAULT_SCALE), SCALE_BASE); -?> - Archived() ? ' class="archived"' : '' ?>> - - - - - - - - - - - - - - - - - - - 1 ) { -?> - - -DiskSpace(); -?> - -'; - $imgSrc = $event->getThumbnailSrc(array(),'&'); - $streamSrc = $event->getStreamSrc(array( - 'mode'=>'jpeg', 'scale'=>$scale, 'maxfps'=>ZM_WEB_VIDEO_MAXFPS, 'replay'=>'single', 'rate'=>'400'), '&'); - - $imgHtml = ''. validHtmlStr('Event '.$event->Id()) .''; - echo ''.$imgHtml.''; - echo ''; - } // end if ZM_WEB_LIST_THUMBS -?> - - + + - - - - -1 ) { -?> - - - - - - - - - - + diff --git a/web/skins/classic/views/js/events.js b/web/skins/classic/views/js/events.js index b51c679a3..d98d51f4f 100644 --- a/web/skins/classic/views/js/events.js +++ b/web/skins/classic/views/js/events.js @@ -321,13 +321,6 @@ function initPage() { $j('#deleteConfirm').modal('show'); }); - // Manage the eventdetail links in the events list - $j(".eDetailLink").click(function(evt) { - evt.preventDefault(); - var eid = $j(this).data('eid'); - getEventDetailModal(eid); - }); - // Update table links each time after new data is loaded table.on('post-body.bs.table', function(data) { // Manage the eventdetail links in the events list diff --git a/web/skins/classic/views/newevents.php b/web/skins/classic/views/newevents.php deleted file mode 100644 index 555f13f51..000000000 --- a/web/skins/classic/views/newevents.php +++ /dev/null @@ -1,128 +0,0 @@ -set($_REQUEST['filter']); -} - -parseSort(); - -$filterQuery = $filter->querystring(); - -xhtmlHeaders(__FILE__, translate('Events')); -getBodyTopHTML(); - -?> - -
- -
- - - - - - - - - - - -
- - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- From e5563dc901d4563e76109793b4acf51a5c169b7d Mon Sep 17 00:00:00 2001 From: Andrew Bauer Date: Sun, 25 Oct 2020 16:06:37 -0500 Subject: [PATCH 6/6] remove unwanted # --- web/skins/classic/views/js/events.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web/skins/classic/views/js/events.js b/web/skins/classic/views/js/events.js index d98d51f4f..b657c50cf 100644 --- a/web/skins/classic/views/js/events.js +++ b/web/skins/classic/views/js/events.js @@ -61,7 +61,7 @@ function processRows(rows) { if ( canEditMonitors ) row.Monitor = '' + row.Monitor + ''; if ( canEditEvents ) row.Cause = '' + row.Cause + ''; if ( row.Notes.indexOf('detected:') >= 0 ) { - row.Cause = row.Cause + '
' + row.Notes + '
'; + row.Cause = row.Cause + '
' + row.Notes + '
'; } else if ( row.Notes != 'Forced Web: ' ) { row.Cause = row.Cause + '
' + row.Notes + '
'; }