From 91541aa6b7d32562a07f44dc4808af8df46b3f64 Mon Sep 17 00:00:00 2001 From: Isaac Connor Date: Wed, 17 May 2023 14:36:09 -0400 Subject: [PATCH] Add support for placeholders, cookies, DateTime fitler, Notes, Group. Add sort_terms function. --- web/includes/Filter.php | 36 ++++++++++++++++++++++++++++++++---- 1 file changed, 32 insertions(+), 4 deletions(-) diff --git a/web/includes/Filter.php b/web/includes/Filter.php index e9b08560d..c4c9c69fa 100644 --- a/web/includes/Filter.php +++ b/web/includes/Filter.php @@ -757,6 +757,7 @@ class Filter extends ZM_Object { 'DiskPercent' => translate('AttrDiskPercent'), #'StorageDiskSpace' => translate('AttrStorageDiskSpace'), 'DiskSpace' => translate('AttrEventDiskSpace'), + 'DateTime' => translate('Date Time'), 'EndDateTime' => translate('AttrEndDateTime'), 'EndDate' => translate('AttrEndDate'), 'EndTime' => translate('AttrEndTime'), @@ -1033,12 +1034,20 @@ class Filter extends ZM_Object { } else if ( $term['attr'] == 'DateTime' || $term['attr'] == 'StartDateTime' || $term['attr'] == 'EndDateTime') { #$html .= ''. $term['op'].''.PHP_EOL; #$html .= ''.htmlSelect("filter[Query][terms][$i][op]", $opTypes, $term['op']).''.PHP_EOL; - $html .= ''.PHP_EOL; + $html .= ' value="'.(isset($term['val'])?validHtmlStr(str_replace('T', ' ', $term['val'])):'').'"'; + + if (!isset($term['placeholder'])) $term['placeholder'] = translate('Attr'.$term['attr']); + $html .= ' placeholder="'.$term['placeholder'].'"/>'.PHP_EOL; } else if ( $term['attr'] == 'Date' || $term['attr'] == 'StartDate' || $term['attr'] == 'EndDate' ) { #$html .= ''. $term['op'].''.PHP_EOL; #$html .= ''.htmlSelect("filter[Query][terms][$i][op]", $opTypes, $term['op']).''.PHP_EOL; @@ -1125,10 +1134,13 @@ class Filter extends ZM_Object { if (isset($term['cookie'])) { $attrs['data-cookie'] = $term['cookie']; - if (!$selected and isset($_COOKIE[$term['cookie']])) $selected = explode(',', $_COOKIE[$term['cookie']]); + if (!$selected and isset($_COOKIE[$term['cookie']]) and $_COOKIE[$term['cookie']]) + $selected = explode(',', $_COOKIE[$term['cookie']]); } $options = [ 'Motion' => 'Motion', + 'detected' => 'Any Object', + 'aplr' => 'Any license plate', 'person'=>'Person', 'boat' => 'Boat', 'bus' => 'Bus', @@ -1158,6 +1170,22 @@ class Filter extends ZM_Object { } return false; } + // Given an array of attr, sort terms by attr + public function sort_terms($sort) { + $new_terms = []; + $old_terms = $this->terms(); + foreach ($sort as $attr) { + for ($i=0; $i < count($old_terms); $i++) { + if ($old_terms[$i]['attr'] == $attr) { + $new_terms[] = $old_terms[$i]; + array_splice($old_terms, $i, 1); + $i--; + } + } + } + if (count($old_terms)) $new_terms += $old_terms; + $this->terms($new_terms); + } } # end class Filter ?>