diff --git a/app/classes/component.php b/app/classes/component.php index 341f4d8..7317381 100644 --- a/app/classes/component.php +++ b/app/classes/component.php @@ -9,7 +9,7 @@ class Component { // list of component events - public function jitsiComponents($jitsi_component, $component_id, $from_time, $until_time) { + public function jitsiComponents($jitsi_component, $component_id, $from_time, $until_time, $offset=0, $items_per_page='') { // time period drill-down // FIXME make it similar to the bash version @@ -37,6 +37,11 @@ AND ORDER BY time"; + if ($items_per_page) { + $items_per_page = (int)$items_per_page; + $sql .= ' LIMIT ' . $offset . ',' . $items_per_page; + } + $sql = sprintf($sql, $jitsi_component, $component_id, $from_time, $until_time); $query = $this->db->prepare($sql); diff --git a/app/pages/components.php b/app/pages/components.php index bcad820..848289a 100644 --- a/app/pages/components.php +++ b/app/pages/components.php @@ -31,10 +31,21 @@ if (isset($_REQUEST['name']) && $_REQUEST['name'] != '') { // list of all component events (default) $componentObject = new Component($db); +// pagination variables +$items_per_page = 15; +$browse_page = $_REQUEST['p'] ?? 1; +$browse_page = (int)$browse_page; +$offset = ($browse_page -1) * $items_per_page; + // prepare the result -$search = $componentObject->jitsiComponents($jitsi_component, $component_id, $from_time, $until_time); +$search = $componentObject->jitsiComponents($jitsi_component, $component_id, $from_time, $until_time, $offset, $items_per_page); +$search_all = $componentObject->jitsiComponents($jitsi_component, $component_id, $from_time, $until_time); if (!empty($search)) { + // we get total items and number of pages + $item_count = count($search_all); + $page_count = ceil($item_count / $items_per_page); + $components = array(); $components['records'] = array(); @@ -60,6 +71,7 @@ $widget['name'] = 'AllComponents'; $widget['collapsible'] = false; $widget['collapsed'] = false; $widget['filter'] = true; +$widget['pagination'] = true; // widget title if (isset($_REQUEST['name']) && $_REQUEST['name'] != '') { diff --git a/app/pages/dashboard.php b/app/pages/dashboard.php index f774117..a8e268a 100644 --- a/app/pages/dashboard.php +++ b/app/pages/dashboard.php @@ -69,6 +69,8 @@ $widget['filter'] = false; if (!empty($searchConferenceNumber) && !empty($searchParticipantNumber)) { $widget['full'] = true; } +$widget['pagination'] = false; + // display the widget include '../app/templates/widget-monthly.php'; @@ -127,6 +129,7 @@ if (!empty($conferences['records'])) { $widget['table_headers'] = array_keys($conferences['records'][0]); $widget['table_records'] = $conferences['records']; } +$widget['pagination'] = false; // display the widget include '../app/templates/widget.php'; @@ -187,6 +190,7 @@ $widget['title'] = 'The last ' . $conference_number . ' conferences'; $widget['collapsible'] = true; $widget['collapsed'] = false; $widget['filter'] = false; +$widget['pagination'] = false; if (!empty($conferences['records'])) { $widget['full'] = true;