diff --git a/src/admin/parsers.php b/src/admin/parsers.php index c7f0bda..2381a9a 100644 --- a/src/admin/parsers.php +++ b/src/admin/parsers.php @@ -139,6 +139,11 @@ if ( isset($_GET['op']) ) } else if ($_GET['op'] == "removeparser") { + // --- Only if the user is an admin! + if ( !isset($_SESSION['SESSION_ISADMIN']) || $_SESSION['SESSION_ISADMIN'] == 0 ) + DieWithFriendlyErrorMsg( $content['LN_ADMIN_ERROR_NOTALLOWED'] ); + // --- + if ( isset($_GET['id']) ) { //PreInit these values @@ -194,6 +199,11 @@ if ( isset($_GET['op']) ) } else if ($_GET['op'] == "initparser") { + // --- Only if the user is an admin! + if ( !isset($_SESSION['SESSION_ISADMIN']) || $_SESSION['SESSION_ISADMIN'] == 0 ) + DieWithFriendlyErrorMsg( $content['LN_ADMIN_ERROR_NOTALLOWED'] ); + // --- + if ( isset($_GET['id']) ) { //PreInit these values diff --git a/src/admin/views.php b/src/admin/views.php index ecc354c..4a78f04 100644 --- a/src/admin/views.php +++ b/src/admin/views.php @@ -336,7 +336,7 @@ if ( isset($_POST['op']) ) $content['groupid'] = "null"; } } - + // --- Check mandotary values if ( $content['DisplayName'] == "" ) { @@ -347,6 +347,26 @@ if ( isset($_POST['op']) ) if ( !isset($content['ISERROR']) ) { + + // --- Set SUBOP Helpers + if ( $content['userid'] == "null" ) + $content['CHECKED_ISUSERONLY'] = ""; + else + $content['CHECKED_ISUSERONLY'] = "checked"; + + if ( $content['ISGROUPSAVAILABLE'] && $content['groupid'] != "null" ) + { + // Process All Groups + for($i = 0; $i < count($content['SUBGROUPS']); $i++) + { + if ( $content['SUBGROUPS'][$i]['mygroupid'] == $content['groupid'] ) + $content['SUBGROUPS'][$i]['group_selected'] = "selected"; + else + $content['SUBGROUPS'][$i]['group_selected'] = ""; + } + } + // --- + // Check subop's first! if ( isset($_POST['subop']) ) { diff --git a/src/include/functions_filters.php b/src/include/functions_filters.php index 8ac5e85..cc36b80 100644 --- a/src/include/functions_filters.php +++ b/src/include/functions_filters.php @@ -78,6 +78,13 @@ function InitFilterHelpers() $content['months'][] = $i; for ( $i = 1; $i <= 31; $i++ ) $content['days'][] = $i; + // Init Hour, minute and second array + for ( $i = 0; $i <= 23; $i++ ) + $content['hours'][] = ($i < 10) ? '0' . $i : $i; + for ( $i = 0; $i <= 59; $i++ ) + $content['minutes'][] = ($i < 10) ? '0' . $i : $i; + for ( $i = 0; $i <= 59; $i++ ) + $content['seconds'][] = ($i < 10) ? '0' . $i : $i; // Init filter_daterange_from_year if ( isset($_SESSION['filter_daterange_from_year']) ) @@ -121,6 +128,48 @@ function InitFilterHelpers() $filters['filter_daterange_to_day'] = $tomorrowDay; FillDateRangeArray($content['days'], "filter_daterange_to_day_list", "filter_daterange_to_day"); + // Init filter_daterange_from_hour + if ( isset($_SESSION['filter_daterange_from_hour']) ) + $filters['filter_daterange_from_hour'] = intval($_SESSION['filter_daterange_from_hour']); + else + $filters['filter_daterange_from_hour'] = 0; + FillDateRangeArray($content['hours'], "filter_daterange_from_hour_list", "filter_daterange_from_hour"); + + // Init filter_daterange_from_minute + if ( isset($_SESSION['filter_daterange_from_minute']) ) + $filters['filter_daterange_from_minute'] = intval($_SESSION['filter_daterange_from_minute']); + else + $filters['filter_daterange_from_minute'] = 0; + FillDateRangeArray($content['minutes'], "filter_daterange_from_minute_list", "filter_daterange_from_minute"); + + // Init filter_daterange_from_second + if ( isset($_SESSION['filter_daterange_from_second']) ) + $filters['filter_daterange_from_second'] = intval($_SESSION['filter_daterange_from_second']); + else + $filters['filter_daterange_from_second'] = 0; + FillDateRangeArray($content['seconds'], "filter_daterange_from_second_list", "filter_daterange_from_second"); + + // Init filter_daterange_to_hour + if ( isset($_SESSION['filter_daterange_to_hour']) ) + $filters['filter_daterange_to_hour'] = intval($_SESSION['filter_daterange_to_hour']); + else + $filters['filter_daterange_to_hour'] = 23; + FillDateRangeArray($content['hours'], "filter_daterange_to_hour_list", "filter_daterange_to_hour"); + + // Init filter_daterange_to_minute + if ( isset($_SESSION['filter_daterange_to_minute']) ) + $filters['filter_daterange_to_minute'] = intval($_SESSION['filter_daterange_to_minute']); + else + $filters['filter_daterange_to_minute'] = 59; + FillDateRangeArray($content['minutes'], "filter_daterange_to_minute_list", "filter_daterange_to_minute"); + + // Init filter_daterange_to_second + if ( isset($_SESSION['filter_daterange_to_second']) ) + $filters['filter_daterange_to_second'] = intval($_SESSION['filter_daterange_to_second']); + else + $filters['filter_daterange_to_second'] = 59; + FillDateRangeArray($content['seconds'], "filter_daterange_to_second_list", "filter_daterange_to_second"); + // --- Define LASTX Array // Init Default DateMode from SESSION! diff --git a/src/js/searchhelpers.js b/src/js/searchhelpers.js index a0fb96f..181e658 100644 --- a/src/js/searchhelpers.js +++ b/src/js/searchhelpers.js @@ -25,6 +25,12 @@ function toggleDatefiltervisibility(FormName) toggleformelement('filter_daterange_to_year', false); toggleformelement('filter_daterange_to_month', false); toggleformelement('filter_daterange_to_day', false); + toggleformelement('filter_daterange_from_hour', false); + toggleformelement('filter_daterange_from_minute', false); + toggleformelement('filter_daterange_from_second', false); + toggleformelement('filter_daterange_to_hour', false); + toggleformelement('filter_daterange_to_minute', false); + toggleformelement('filter_daterange_to_second', false); toggleformelement('filter_daterange_last_x', false); } @@ -39,6 +45,12 @@ function toggleDatefiltervisibility(FormName) toggleformelement('filter_daterange_to_year', true); toggleformelement('filter_daterange_to_month', true); toggleformelement('filter_daterange_to_day', true); + toggleformelement('filter_daterange_from_hour', true); + toggleformelement('filter_daterange_from_minute', true); + toggleformelement('filter_daterange_from_second', true); + toggleformelement('filter_daterange_to_hour', true); + toggleformelement('filter_daterange_to_minute', true); + toggleformelement('filter_daterange_to_second', true); toggleformelement('filter_daterange_last_x', false); } @@ -53,6 +65,12 @@ function toggleDatefiltervisibility(FormName) toggleformelement('filter_daterange_to_year', false); toggleformelement('filter_daterange_to_month', false); toggleformelement('filter_daterange_to_day', false); + toggleformelement('filter_daterange_from_hour', false); + toggleformelement('filter_daterange_from_minute', false); + toggleformelement('filter_daterange_from_second', false); + toggleformelement('filter_daterange_to_hour', false); + toggleformelement('filter_daterange_to_minute', false); + toggleformelement('filter_daterange_to_second', false); toggleformelement('filter_daterange_last_x', true); } @@ -70,10 +88,16 @@ function CalculateSearchPreview(szSearchFormName, szPreviewArea) { szOutString += "datefrom:" + mySearchform.elements['filter_daterange_from_year'].value + "-" + mySearchform.elements['filter_daterange_from_month'].value + "-" - + mySearchform.elements['filter_daterange_from_day'].value + "T00:00:00 "; + + mySearchform.elements['filter_daterange_from_day'].value + "T" + + mySearchform.elements['filter_daterange_from_hour'].value + ":" + + mySearchform.elements['filter_daterange_from_minute'].value + ":" + + mySearchform.elements['filter_daterange_from_second'].value + " "; szOutString += "dateto:" + mySearchform.elements['filter_daterange_to_year'].value + "-" + mySearchform.elements['filter_daterange_to_month'].value + "-" - + mySearchform.elements['filter_daterange_to_day'].value + "T00:00:00 "; + + mySearchform.elements['filter_daterange_to_day'].value + "T" + + mySearchform.elements['filter_daterange_to_hour'].value + ":" + + mySearchform.elements['filter_daterange_to_minute'].value + ":" + + mySearchform.elements['filter_daterange_to_second'].value + " "; } else if (mySearchform.elements['filter_datemode'].value == DATEMODE_LASTX) { diff --git a/src/lang/de/main.php b/src/lang/de/main.php index 8a5c732..f850915 100644 --- a/src/lang/de/main.php +++ b/src/lang/de/main.php @@ -164,6 +164,8 @@ $content['LN_DATEMODE_RANGE'] = "Zeitspanne"; $content['LN_DATEMODE_LASTX'] = "Seit heute, x Uhr"; $content['LN_FILTER_DATEFROM'] = "Zeitraum seit x"; $content['LN_FILTER_DATETO'] = "Zeitraum bis x"; +$content['LN_FILTER_TIMEFROM'] = "Time range from"; +$content['LN_FILTER_TIMETO'] = "Time range to"; $content['LN_FILTER_DATELASTX'] = "Zeit seit"; $content['LN_FILTER_ADD2SEARCH'] = "Zur Suche hinzufügen"; $content['LN_DATE_LASTX_HOUR'] = "in der letzten Stunde"; diff --git a/src/lang/en/main.php b/src/lang/en/main.php index 4944982..8a3ca50 100644 --- a/src/lang/en/main.php +++ b/src/lang/en/main.php @@ -170,6 +170,8 @@ $content['LN_DATEMODE_RANGE'] = "Time range"; $content['LN_DATEMODE_LASTX'] = "Time x since today"; $content['LN_FILTER_DATEFROM'] = "Date range from"; $content['LN_FILTER_DATETO'] = "Date range to"; +$content['LN_FILTER_TIMEFROM'] = "Time range from"; +$content['LN_FILTER_TIMETO'] = "Time range to"; $content['LN_FILTER_DATELASTX'] = "Time since"; $content['LN_FILTER_ADD2SEARCH'] = "Add to search"; $content['LN_DATE_LASTX_HOUR'] = "Last hour"; diff --git a/src/lang/it_IT/main.php b/src/lang/it_IT/main.php index 166f9ea..c20a0dc 100644 --- a/src/lang/it_IT/main.php +++ b/src/lang/it_IT/main.php @@ -102,6 +102,8 @@ $content['LN_DATEMODE_RANGE'] = "Intervallo orario"; $content['LN_DATEMODE_LASTX'] = "Ultimi x ore/giorni"; $content['LN_FILTER_DATEFROM'] = "Dalla data"; $content['LN_FILTER_DATETO'] = "Alla data"; +$content['LN_FILTER_TIMEFROM'] = "Time range from"; +$content['LN_FILTER_TIMETO'] = "Time range to"; $content['LN_FILTER_DATELASTX'] = "Ultime ore oppure ultimi giorni"; $content['LN_FILTER_ADD2SEARCH'] = "Aggiungi alla ricerca"; $content['LN_DATE_LASTX_HOUR'] = "Ultima ora"; diff --git a/src/lang/pt_BR/main.php b/src/lang/pt_BR/main.php index 61d6f71..71895ba 100644 --- a/src/lang/pt_BR/main.php +++ b/src/lang/pt_BR/main.php @@ -165,6 +165,8 @@ $content['LN_DATEMODE_RANGE'] = "Intervalo de tempo"; $content['LN_DATEMODE_LASTX'] = "Tempo X desde hoje"; $content['LN_FILTER_DATEFROM'] = "Data a partir de "; $content['LN_FILTER_DATETO'] = "Até"; +$content['LN_FILTER_TIMEFROM'] = "Time range from"; +$content['LN_FILTER_TIMETO'] = "Time range to"; $content['LN_FILTER_DATELASTX'] = "Tempo desde"; $content['LN_FILTER_ADD2SEARCH'] = "Adicionar a busca"; $content['LN_DATE_LASTX_HOUR'] = "Última hora"; diff --git a/src/search.php b/src/search.php index 91114b6..5d241fd 100644 --- a/src/search.php +++ b/src/search.php @@ -90,14 +90,59 @@ if ( (isset($_POST['search']) || isset($_GET['search'])) ) $filters['filter_daterange_to_month'] = intval($_GET['filter_daterange_to_month']); if ( isset($_GET['filter_daterange_to_day']) ) $filters['filter_daterange_to_day'] = intval($_GET['filter_daterange_to_day']); + + // Read range values and prepend leading zeroes for values < 10 + if ( isset($_GET['filter_daterange_from_hour']) ) + { + $filters['filter_daterange_from_hour'] = intval($_GET['filter_daterange_from_hour']); + if ($filters['filter_daterange_from_hour'] < 10) + $filters['filter_daterange_from_hour'] = '0' . $filters['filter_daterange_from_hour']; + } + if ( isset($_GET['filter_daterange_from_minute']) ) + { + $filters['filter_daterange_from_minute'] = intval($_GET['filter_daterange_from_minute']); + if ($filters['filter_daterange_from_minute'] < 10) + $filters['filter_daterange_from_minute'] = '0' . $filters['filter_daterange_from_minute']; + } + if ( isset($_GET['filter_daterange_from_second']) ) + { + $filters['filter_daterange_from_second'] = intval($_GET['filter_daterange_from_second']); + if ($filters['filter_daterange_from_second'] < 10) + $filters['filter_daterange_from_second'] = '0' . $filters['filter_daterange_from_second']; + } + if ( isset($_GET['filter_daterange_to_hour']) ) + { + $filters['filter_daterange_to_hour'] = intval($_GET['filter_daterange_to_hour']); + if ($filters['filter_daterange_to_hour'] < 10) + $filters['filter_daterange_to_hour'] = '0' . $filters['filter_daterange_to_hour'] = '0'; + } + if ( isset($_GET['filter_daterange_to_minute']) ) + { + $filters['filter_daterange_to_minute'] = intval($_GET['filter_daterange_to_minute']); + if ($filters['filter_daterange_to_minute'] < 10) + $filters['filter_daterange_to_minute'] = '0' . $filters['filter_daterange_to_minute']; + } + if ( isset($_GET['filter_daterange_to_second']) ) + { + $filters['filter_daterange_to_second'] = intval($_GET['filter_daterange_to_second']); + if ($filters['filter_daterange_to_second'] < 10) + $filters['filter_daterange_to_second'] = '0' . $filters['filter_daterange_to_second'] = '0'; + } // Append to searchstring $content['searchstr'] .= "datefrom:" . $filters['filter_daterange_from_year'] . "-" . $filters['filter_daterange_from_month'] . "-" . - $filters['filter_daterange_from_day'] . "T00:00:00 "; + $filters['filter_daterange_from_day'] . "T" . + $filters['filter_daterange_from_hour'] . ":" . + $filters['filter_daterange_from_minute'] . ":" . + $filters['filter_daterange_from_second'] . " "; + $content['searchstr'] .= "dateto:" . $filters['filter_daterange_to_year'] . "-" . $filters['filter_daterange_to_month'] . "-" . - $filters['filter_daterange_to_day'] . "T23:59:59 "; + $filters['filter_daterange_to_day'] . "T" . + $filters['filter_daterange_to_hour'] . ":" . + $filters['filter_daterange_to_minute'] . ":" . + $filters['filter_daterange_to_second'] . " "; } else if ( $filters['filter_datemode'] == DATEMODE_LASTX ) diff --git a/src/templates/search.html b/src/templates/search.html index d1238b5..6a297cf 100644 --- a/src/templates/search.html +++ b/src/templates/search.html @@ -81,6 +81,50 @@ + + {LN_FILTER_TIMEFROM} + + + - + + - + + + + + {LN_FILTER_TIMETO} + + + - + + - + + +