From f76fd0379456ab4eb5141153c04ee29421f054b9 Mon Sep 17 00:00:00 2001 From: Yasen Pramatarov Date: Mon, 29 Jul 2024 15:56:08 +0300 Subject: [PATCH] Adds widgets to conferences page --- public_html/pages/conferences.php | 407 +++++++---------------------- public_html/pages/conferences1.php | 354 +++++++++++++++++++++++++ public_html/templates/widget.php | 18 +- 3 files changed, 468 insertions(+), 311 deletions(-) create mode 100644 public_html/pages/conferences1.php diff --git a/public_html/pages/conferences.php b/public_html/pages/conferences.php index df2ddac..aeb5cba 100644 --- a/public_html/pages/conferences.php +++ b/public_html/pages/conferences.php @@ -22,15 +22,15 @@ if (!isset($_REQUEST['until_time']) || (isset($_REQUEST['until_time']) && $_REQU // either id OR name, id has precedence // we use $_REQUEST, so that both links and forms work if (isset($_REQUEST['id']) && $_REQUEST['id'] != '') { - $conference_id = $_REQUEST['id']; + $conferenceId = $_REQUEST['id']; unset($_REQUEST['name']); - unset($conference_name); + unset($conferenceName); } elseif (isset($_REQUEST['name']) && $_REQUEST['name'] != '') { - unset($conference_id); - $conference_name = $_REQUEST['name']; + unset($conferenceId); + $conferenceName = $_REQUEST['name']; } else { - unset($conference_id); - unset($conference_name); + unset($conferenceId); + unset($conferenceName); } // connect to database @@ -48,312 +48,103 @@ try { // -// search and list specific conference ID -if (isset($conference_id)) { - - try { - $conference = new Conference($db); - - // prepare the result - $search = $conference->conferenceById($conference_id, $from_time, $until_time); - - if (!empty($search)) { - $conferences = array(); - $conferences['records'] = array(); - - foreach ($search as $item) { - extract($item); - $conference_record = array( - // assign title to the field in the array record - 'time' => $time, - 'conference ID' => $conference_id, - 'conference name' => $conference_name, - 'conference host' => $conference_host, - 'loglevel' => $loglevel, - 'participant ID' => $participant_id, - 'event' => $event_type, - 'parameter' => $event_param - ); - // populate the result array - array_push($conferences['records'], $conference_record); - } - } - - } catch (Exception $e) { - $error = 'Error: ' . $e->getMessage(); - include 'templates/message.php'; - exit(); - } - - // display the result - echo "
\n"; - echo "
Conferences with ID matching \"$conference_id\""; - if ($time_range_specified) { - echo "
for the time period $from_time - $until_time"; - } - echo "
\n\n"; - - // filters - time selection and sorting dropdowns - include 'templates/results-filter.php'; - - echo "
\n\n"; - - // results table - echo "
\n"; - - if (!empty($conferences['records'])) { - - echo "\t\n"; - - echo "\t\t\n"; - echo "\t\t\t\n"; - - // table headers - foreach (array_keys($conferences['records'][0]) as $header) { - echo "\t\t\t\t\n"; - } - echo "\t\t\t\n"; - echo "\t\t\n"; - - echo "\t\t\n"; - - //table rows - foreach ($conferences['records'] as $row) { - echo "\t\t\t\n"; - $stats_id = false; - $participant_ip = false; - if ($row['event'] === 'stats_id') $stats_id = true; - if ($row['event'] === 'pair selected') $participant_ip = true; - // sometimes $column is empty, we make it '' then - foreach ($row as $key => $column) { - if ($key === 'conference ID' && $column === $conference_id) { - echo "\t\t\t\t\n"; - } elseif ($key === 'conference name') { - echo "\t\t\t\t\n"; - } elseif ($stats_id && $key === 'parameter') { - echo "\t\t\t\t\n"; - } elseif ($participant_ip && $key === 'parameter') { - echo "\t\t\t\t\n"; - } else { - echo "\t\t\t\t\n"; - } - } - echo "\t\t\t\n"; - } - - echo "\t\t\n"; - echo "\t
" . htmlspecialchars($header) . "
" . htmlspecialchars($column ?? '') . "" . htmlspecialchars($column ?? '') . "" . htmlspecialchars($column ?? '') . "" . htmlspecialchars($column ?? '') . "" . htmlspecialchars($column ?? '') . "
\n"; - - } else { - echo '

No matching conferences found.

'; - } - echo "\n
\n"; - +$conference = new Conference($db); // search and list specific conference ID -} elseif (isset($conference_name)) { - - try { - $conference = new Conference($db); - - // prepare the result - $search = $conference->conferenceByName($conference_name, $from_time, $until_time); - - if (!empty($search)) { - $conferences = array(); - $conferences['records'] = array(); - - foreach ($search as $item) { - extract($item); - $conference_record = array( - // assign title to the field in the array record - 'time' => $time, - 'conference ID' => $conference_id, - 'conference name' => $conference_name, - 'conference host' => $conference_host, - 'loglevel' => $loglevel, - 'participant ID' => $participant_id, - 'event' => $event_type, - 'parameter' => $event_param - ); - // populate the result array - array_push($conferences['records'], $conference_record); - } - } - - } catch (Exception $e) { - $error = 'Error: ' . $e->getMessage(); - include 'templates/message.php'; - exit(); - } - - // display the result - echo "
\n"; - echo "
Conferences with name matching \"$conference_name\""; - if ($time_range_specified) { - echo "
for the time period $from_time - $until_time"; - } - echo "
\n\n"; - - // filters - time selection and sorting dropdowns - include 'templates/results-filter.php'; - - echo "
\n\n"; - - // results table - echo "
\n"; - - if (!empty($conferences['records'])) { - - echo "\t\n"; - - echo "\t\t\n"; - echo "\t\t\t\n"; - - // table headers - foreach (array_keys($conferences['records'][0]) as $header) { - echo "\t\t\t\t\n"; - } - echo "\t\t\t\n"; - echo "\t\t\n"; - - echo "\t\t\n"; - - //table rows - foreach ($conferences['records'] as $row) { - echo "\t\t\t\n"; - $stats_id = false; - $participant_ip = false; - if ($row['event'] === 'stats_id') $stats_id = true; - if ($row['event'] === 'pair selected') $participant_ip = true; - // sometimes $column is empty, we make it '' then - foreach ($row as $key => $column) { - if ($key === 'conference name' && $column === $conference_name) { - echo "\t\t\t\t\n"; - } elseif ($key === 'conference ID') { - echo "\t\t\t\t\n"; - } elseif ($key === 'participant ID') { - echo "\t\t\t\t\n"; - } elseif ($stats_id && $key === 'parameter') { - echo "\t\t\t\t\n"; - } elseif ($participant_ip && $key === 'parameter') { - echo "\t\t\t\t\n"; - } else { - echo "\t\t\t\t\n"; - } - } - echo "\t\t\t\n"; - } - - echo "\t\t\n"; - echo "\t
" . htmlspecialchars($header) . "
" . htmlspecialchars($column ?? '') . "" . htmlspecialchars($column ?? '') . "" . htmlspecialchars($column ?? '') . "" . htmlspecialchars($column ?? '') . "" . htmlspecialchars($column ?? '') . "" . htmlspecialchars($column ?? '') . "
\n"; - - } else { - echo '

No matching conferences found.

'; - } - echo "\n
\n"; - - +if (isset($conferenceId)) { + $search = $conference->conferenceById($conferenceId, $from_time, $until_time); +// search and list specific conference name +} elseif (isset($conferenceName)) { + $search = $conference->conferenceByName($conferenceName, $from_time, $until_time); // list of all conferences (default) } else { - try { - $conference = new Conference($db); - - // prepare the result - $search = $conference->conferencesAllFormatted($from_time, $until_time); - - if (!empty($search)) { - $conferences = array(); - $conferences['records'] = array(); - - foreach ($search as $item) { - extract($item); - - // we don't have duration field, so we calculate it - if (!empty($start) && !empty($end)) { - $duration = gmdate("H:i:s", abs(strtotime($end) - strtotime($start))); - } else { - $duration = ''; - } - $conference_record = array( - // assign title to the field in the array record - 'component' => $jitsi_component, - 'start' => $start, - 'end' => $end, - 'duration' => $duration, - 'conference ID' => $conference_id, - 'conference name' => $conference_name, - 'participants' => $participants, - 'name count' => $name_count, - 'conference host' => $conference_host - ); - // populate the result array - array_push($conferences['records'], $conference_record); - } - } - - } catch (Exception $e) { - $error = 'Error: ' . $e->getMessage(); - include 'templates/message.php'; - exit(); - } - - // display the result - echo "
\n"; - echo "
All conferences"; - if ($time_range_specified) { - echo "
for the time period $from_time - $until_time"; - } - echo "
\n\n"; - - // filters - time selection and sorting dropdowns - include 'templates/results-filter.php'; - - echo "
\n\n"; - - // results table - echo "
\n"; - - if (!empty($conferences['records'])) { - - echo "\t\n"; - - echo "\t\t\n"; - echo "\t\t\t\n"; - - // table headers - foreach (array_keys($conferences['records'][0]) as $header) { - echo "\t\t\t\t\n"; - } - echo "\t\t\t\n"; - echo "\t\t\n"; - - echo "\t\t\n"; - - //table rows - foreach ($conferences['records'] as $row) { - echo "\t\t\t\n"; - // sometimes $column is empty, we make it '' then - foreach ($row as $key => $column) { - if ($key === 'conference ID') { - echo "\t\t\t\t\n"; - } elseif ($key === 'conference name') { - echo "\t\t\t\t\n"; - } else { - echo "\t\t\t\t\n"; - } - } - echo "\t\t\t\n"; - } - - echo "\t\t\n"; - echo "\t
" . htmlspecialchars($header) . "
" . htmlspecialchars($column ?? '') . "" . htmlspecialchars($column ?? '') . "" . htmlspecialchars($column ?? '') . "
\n"; - - } else { - echo '

No matching conferences found.

'; - } - echo "\n
\n"; - + $search = $conference->conferencesAllFormatted($from_time, $until_time); } +if (!empty($search)) { + $conferences = array(); + $conferences['records'] = array(); + + foreach ($search as $item) { + extract($item); + + // we don't have duration field, so we calculate it + if (!empty($start) && !empty($end)) { + $duration = gmdate("H:i:s", abs(strtotime($end) - strtotime($start))); + } else { + $duration = ''; + } + + // search and list specific conference ID + if (isset($conferenceId)) { + $conference_record = array( + // assign title to the field in the array record + 'time' => $time, + 'conference ID' => $conference_id, + 'conference name' => $conference_name, + 'conference host' => $conference_host, + 'loglevel' => $loglevel, + 'participant ID' => $participant_id, + 'event' => $event_type, + 'parameter' => $event_param + ); + // search and list specific conference name + } elseif (isset($conferenceName)) { + $conference_record = array( + // assign title to the field in the array record + 'time' => $time, + 'conference ID' => $conference_id, + 'conference name' => $conference_name, + 'conference host' => $conference_host, + 'loglevel' => $loglevel, + 'participant ID' => $participant_id, + 'event' => $event_type, + 'parameter' => $event_param + ); + // list of all conferences (default) + } else { + $conference_record = array( + // assign title to the field in the array record + 'component' => $jitsi_component, + 'start' => $start, + 'end' => $end, + 'duration' => $duration, + 'conference ID' => $conference_id, + 'conference name' => $conference_name, + 'participants' => $participants, + 'name count' => $name_count, + 'conference host' => $conference_host + ); + } + + // populate the result array + array_push($conferences['records'], $conference_record); + } +} + +// prepare the widget +$widget['full'] = false; +$widget['name'] = 'ConferenceId'; +$widget['collapsible'] = false; +$widget['collapsed'] = false; +$widget['filter'] = true; + +// widget title +if (isset($_REQUEST['name']) && $_REQUEST['name'] != '') { + $widget['title'] = 'Conferences with name matching "' . $_REQUEST['name'] . '"'; +} elseif (isset($_REQUEST['id']) && $_REQUEST['id'] != '') { + $widget['title'] = 'Conferences with ID matching "' . $_REQUEST['id'] . '"'; +} else { + $widget['title'] = 'Jitsi events for all components'; +} +// widget records +if (!empty($conferences['records'])) { + $widget['full'] = true; + $widget['table_headers'] = array_keys($conferences['records'][0]); + $widget['table_records'] = $conferences['records']; +} + +// display the widget +include('templates/widget.php'); + ?> diff --git a/public_html/pages/conferences1.php b/public_html/pages/conferences1.php new file mode 100644 index 0000000..2bde01a --- /dev/null +++ b/public_html/pages/conferences1.php @@ -0,0 +1,354 @@ +getMessage(); + include 'templates/message.php'; + exit(); +} + + +// +// Conference listings +// + + +// search and list specific conference ID +if (isset($conference_id)) { + + $conference = new Conference($db); + + // prepare the result + $search = $conference->conferenceById($conference_id, $from_time, $until_time); + + if (!empty($search)) { + $conferences = array(); + $conferences['records'] = array(); + + foreach ($search as $item) { + extract($item); + $conference_record = array( + // assign title to the field in the array record + 'time' => $time, + 'conference ID' => $conference_id, + 'conference name' => $conference_name, + 'conference host' => $conference_host, + 'loglevel' => $loglevel, + 'participant ID' => $participant_id, + 'event' => $event_type, + 'parameter' => $event_param + ); + // populate the result array + array_push($conferences['records'], $conference_record); + } + } + + // prepare the widget + $widget['full'] = false; + $widget['name'] = 'ConferenceId'; + $widget['collapsible'] = false; + $widget['collapsed'] = false; + $widget['filter'] = true; + +// widget title +if (isset($_REQUEST['name']) && $_REQUEST['name'] != '') { + $widget['title'] = 'Jitsi events for component ' . $_REQUEST['name'] . ''; +} elseif (isset($_REQUEST['id']) && $_REQUEST['id'] != '') { + $widget['title'] = 'Jitsi events for component ID
' . $_REQUEST['id'] . ''; +} else { + $widget['title'] = 'Jitsi events for all components'; +} +// widget records +if (!empty($conferences['records'])) { + $widget['full'] = true; + $widget['table_headers'] = array_keys($conferences['records'][0]); + $widget['table_records'] = $conferences['records']; +} + +// display the widget +include('templates/widget.php'); + + + // display the result + echo "
Conferences with ID matching \"$conference_id\""; + + // results table + echo "
\n"; + + if (!empty($conferences['records'])) { + + //table rows + foreach ($conferences['records'] as $row) { + echo "\t\t\t\n"; + $stats_id = false; + $participant_ip = false; + if ($row['event'] === 'stats_id') $stats_id = true; + if ($row['event'] === 'pair selected') $participant_ip = true; + // sometimes $column is empty, we make it '' then + foreach ($row as $key => $column) { + if ($key === 'conference ID' && $column === $conference_id) { + echo "\t\t\t\t" . htmlspecialchars($column ?? '') . "\n"; + } elseif ($key === 'conference name') { + echo "\t\t\t\t" . htmlspecialchars($column ?? '') . "\n"; + } elseif ($stats_id && $key === 'parameter') { + echo "\t\t\t\t" . htmlspecialchars($column ?? '') . "\n"; + } elseif ($participant_ip && $key === 'parameter') { + echo "\t\t\t\t" . htmlspecialchars($column ?? '') . "\n"; + } else { + echo "\t\t\t\t" . htmlspecialchars($column ?? '') . "\n"; + } + } + echo "\t\t\t\n"; + } + + echo "\t\t\n"; + echo "\t\n"; + + } else { + echo '

No matching conferences found.

'; + } + echo "\n
\n"; + + +// search and list specific conference ID +} elseif (isset($conference_name)) { + + try { + $conference = new Conference($db); + + // prepare the result + $search = $conference->conferenceByName($conference_name, $from_time, $until_time); + + if (!empty($search)) { + $conferences = array(); + $conferences['records'] = array(); + + foreach ($search as $item) { + extract($item); + $conference_record = array( + // assign title to the field in the array record + 'time' => $time, + 'conference ID' => $conference_id, + 'conference name' => $conference_name, + 'conference host' => $conference_host, + 'loglevel' => $loglevel, + 'participant ID' => $participant_id, + 'event' => $event_type, + 'parameter' => $event_param + ); + // populate the result array + array_push($conferences['records'], $conference_record); + } + } + + } catch (Exception $e) { + $error = 'Error: ' . $e->getMessage(); + include 'templates/message.php'; + exit(); + } + + // display the result + echo "
\n"; + echo "
Conferences with name matching \"$conference_name\""; + if ($time_range_specified) { + echo "
for the time period $from_time - $until_time"; + } + echo "
\n\n"; + + // filters - time selection and sorting dropdowns + include 'templates/results-filter.php'; + + echo "
\n\n"; + + // results table + echo "
\n"; + + if (!empty($conferences['records'])) { + + echo "\t\n"; + + echo "\t\t\n"; + echo "\t\t\t\n"; + + // table headers + foreach (array_keys($conferences['records'][0]) as $header) { + echo "\t\t\t\t\n"; + } + echo "\t\t\t\n"; + echo "\t\t\n"; + + echo "\t\t\n"; + + //table rows + foreach ($conferences['records'] as $row) { + echo "\t\t\t\n"; + $stats_id = false; + $participant_ip = false; + if ($row['event'] === 'stats_id') $stats_id = true; + if ($row['event'] === 'pair selected') $participant_ip = true; + // sometimes $column is empty, we make it '' then + foreach ($row as $key => $column) { + if ($key === 'conference name' && $column === $conference_name) { + echo "\t\t\t\t\n"; + } elseif ($key === 'conference ID') { + echo "\t\t\t\t\n"; + } elseif ($key === 'participant ID') { + echo "\t\t\t\t\n"; + } elseif ($stats_id && $key === 'parameter') { + echo "\t\t\t\t\n"; + } elseif ($participant_ip && $key === 'parameter') { + echo "\t\t\t\t\n"; + } else { + echo "\t\t\t\t\n"; + } + } + echo "\t\t\t\n"; + } + + echo "\t\t\n"; + echo "\t
" . htmlspecialchars($header) . "
" . htmlspecialchars($column ?? '') . "" . htmlspecialchars($column ?? '') . "" . htmlspecialchars($column ?? '') . "" . htmlspecialchars($column ?? '') . "" . htmlspecialchars($column ?? '') . "" . htmlspecialchars($column ?? '') . "
\n"; + + } else { + echo '

No matching conferences found.

'; + } + echo "\n
\n"; + + +// list of all conferences (default) +} else { + try { + $conference = new Conference($db); + + // prepare the result + $search = $conference->conferencesAllFormatted($from_time, $until_time); + + if (!empty($search)) { + $conferences = array(); + $conferences['records'] = array(); + + foreach ($search as $item) { + extract($item); + + // we don't have duration field, so we calculate it + if (!empty($start) && !empty($end)) { + $duration = gmdate("H:i:s", abs(strtotime($end) - strtotime($start))); + } else { + $duration = ''; + } + $conference_record = array( + // assign title to the field in the array record + 'component' => $jitsi_component, + 'start' => $start, + 'end' => $end, + 'duration' => $duration, + 'conference ID' => $conference_id, + 'conference name' => $conference_name, + 'participants' => $participants, + 'name count' => $name_count, + 'conference host' => $conference_host + ); + // populate the result array + array_push($conferences['records'], $conference_record); + } + } + + } catch (Exception $e) { + $error = 'Error: ' . $e->getMessage(); + include 'templates/message.php'; + exit(); + } + + // display the result + echo "
\n"; + echo "
All conferences"; + if ($time_range_specified) { + echo "
for the time period $from_time - $until_time"; + } + echo "
\n\n"; + + // filters - time selection and sorting dropdowns + include 'templates/results-filter.php'; + + echo "
\n\n"; + + // results table + echo "
\n"; + + if (!empty($conferences['records'])) { + + echo "\t\n"; + + echo "\t\t\n"; + echo "\t\t\t\n"; + + // table headers + foreach (array_keys($conferences['records'][0]) as $header) { + echo "\t\t\t\t\n"; + } + echo "\t\t\t\n"; + echo "\t\t\n"; + + echo "\t\t\n"; + + //table rows + foreach ($conferences['records'] as $row) { + echo "\t\t\t\n"; + // sometimes $column is empty, we make it '' then + foreach ($row as $key => $column) { + if ($key === 'conference ID') { + echo "\t\t\t\t\n"; + } elseif ($key === 'conference name') { + echo "\t\t\t\t\n"; + } else { + echo "\t\t\t\t\n"; + } + } + echo "\t\t\t\n"; + } + + echo "\t\t\n"; + echo "\t
" . htmlspecialchars($header) . "
" . htmlspecialchars($column ?? '') . "" . htmlspecialchars($column ?? '') . "" . htmlspecialchars($column ?? '') . "
\n"; + + } else { + echo '

No matching conferences found.

'; + } + echo "\n
\n"; + +} + +?> diff --git a/public_html/templates/widget.php b/public_html/templates/widget.php index b4f6270..1be0857 100644 --- a/public_html/templates/widget.php +++ b/public_html/templates/widget.php @@ -4,7 +4,7 @@ -
+
@@ -31,13 +31,25 @@ - $column) { - if ($key === 'conference ID') { ?> + $column) { + if ($key === 'conference ID' && isset($conferenceId) && $conferenceId === $column) { ?> + +
+ + + + + +