diff --git a/app/classes/conference.php b/app/classes/conference.php index 4a5813e..8dd79c0 100644 --- a/app/classes/conference.php +++ b/app/classes/conference.php @@ -9,7 +9,7 @@ class Conference { // search/list specific conference ID - public function conferenceById($conference_id, $from_time, $until_time) { + public function conferenceById($conference_id, $from_time, $until_time, $offset=0, $items_per_page='') { // time period drill-down // FIXME make it similar to the bash version @@ -69,6 +69,11 @@ AND (event_time >= '%s 00:00:00' AND event_time <= '%s 23:59:59') ORDER BY pe.time"; + if ($items_per_page) { + $items_per_page = (int)$items_per_page; + $sql .= ' LIMIT ' . $offset . ',' . $items_per_page; + } + $sql = sprintf($sql, $conference_id, $from_time, $until_time, $conference_id, $from_time, $until_time); $query = $this->db->prepare($sql); @@ -79,7 +84,7 @@ ORDER BY // search/list specific conference name - public function conferenceByName($conference_name, $from_time, $until_time) { + public function conferenceByName($conference_name, $from_time, $until_time, $offset=0, $items_per_page='') { // time period drill-down // FIXME make it similar to the bash version @@ -139,6 +144,11 @@ AND (event_time >= '%s 00:00:00' AND event_time <= '%s 23:59:59') ORDER BY pe.time"; + if ($items_per_page) { + $items_per_page = (int)$items_per_page; + $sql .= ' LIMIT ' . $offset . ',' . $items_per_page; + } + $sql = sprintf($sql, $conference_name, $from_time, $until_time, $conference_name, $from_time, $until_time); $query = $this->db->prepare($sql); @@ -149,7 +159,7 @@ ORDER BY // list of all conferences - public function conferencesAllFormatted($from_time, $until_time) { + public function conferencesAllFormatted($from_time, $until_time, $offset=0, $items_per_page='') { // time period drill-down // FIXME make it similar to the bash version @@ -234,6 +244,11 @@ WHERE (ce.time >= '%s 00:00:00' AND ce.time <= '%s 23:59:59') ORDER BY c.id"; + if ($items_per_page) { + $items_per_page = (int)$items_per_page; + $sql .= ' LIMIT ' . $offset . ',' . $items_per_page; + } + $sql = sprintf($sql, $from_time, $until_time); $query = $this->db->prepare($sql); diff --git a/app/classes/participant.php b/app/classes/participant.php index 373ca31..d3ab0cf 100644 --- a/app/classes/participant.php +++ b/app/classes/participant.php @@ -9,7 +9,7 @@ class Participant { // search/list specific participant ID - public function conferenceByParticipantId($participant_id, $from_time, $until_time) { + public function conferenceByParticipantId($participant_id, $from_time, $until_time, $offset=0, $items_per_page='') { // time period drill-down // FIXME make it similar to the bash version @@ -69,6 +69,11 @@ AND (event_time >= '%s 00:00:00' AND event_time <= '%s 23:59:59') ORDER BY pe.time"; + if ($items_per_page) { + $items_per_page = (int)$items_per_page; + $sql .= ' LIMIT ' . $offset . ',' . $items_per_page; + } + $sql = sprintf($sql, $participant_id, $from_time, $until_time, $participant_id, $from_time, $until_time); $query = $this->db->prepare($sql); @@ -79,7 +84,7 @@ ORDER BY // search/list specific participant name (stats_id) - public function conferenceByParticipantName($participant_name, $from_time, $until_time) { + public function conferenceByParticipantName($participant_name, $from_time, $until_time, $offset=0, $items_per_page='') { // time period drill-down // FIXME make it similar to the bash version @@ -139,6 +144,11 @@ AND (event_time >= '%s 00:00:00' AND event_time <= '%s 23:59:59') ORDER BY pe.time"; + if ($items_per_page) { + $items_per_page = (int)$items_per_page; + $sql .= ' LIMIT ' . $offset . ',' . $items_per_page; + } + $sql = sprintf($sql, $participant_name, $from_time, $until_time, $participant_name, $from_time, $until_time); $query = $this->db->prepare($sql); @@ -149,7 +159,7 @@ ORDER BY // search/list specific participant IP - public function conferenceByParticipantIP($participant_ip, $from_time, $until_time) { + public function conferenceByParticipantIP($participant_ip, $from_time, $until_time, $offset=0, $items_per_page='') { // time period drill-down // FIXME make it similar to the bash version @@ -209,6 +219,11 @@ AND (event_time >= '%s 00:00:00' AND event_time <= '%s 23:59:59') ORDER BY pe.time"; + if ($items_per_page) { + $items_per_page = (int)$items_per_page; + $sql .= ' LIMIT ' . $offset . ',' . $items_per_page; + } + $sql = sprintf($sql, $participant_ip, $from_time, $until_time, $participant_ip, $from_time, $until_time); $query = $this->db->prepare($sql); @@ -219,7 +234,7 @@ ORDER BY // list of all participants - public function participantsAll($from_time, $until_time) { + public function participantsAll($from_time, $until_time, $offset=0, $items_per_page='') { // time period drill-down // FIXME make it similar to the bash version @@ -246,6 +261,11 @@ WHERE pe.time >= '%s 00:00:00' AND pe.time <= '%s 23:59:59' ORDER BY p.id"; + if ($items_per_page) { + $items_per_page = (int)$items_per_page; + $sql .= ' LIMIT ' . $offset . ',' . $items_per_page; + } + $sql = sprintf($sql, $from_time, $until_time); $query = $this->db->prepare($sql); diff --git a/app/helpers/pagination.php b/app/helpers/pagination.php new file mode 100644 index 0000000..c48b3eb --- /dev/null +++ b/app/helpers/pagination.php @@ -0,0 +1,47 @@ + +
No matching records found.
diff --git a/public_html/static/all.css b/public_html/static/all.css index a3c1786..18429d9 100644 --- a/public_html/static/all.css +++ b/public_html/static/all.css @@ -230,3 +230,13 @@ left: 5px; } +.pagination { + font-size: 0.66em; + text-align: center; + display: block; +} + +.pagination span { + margin-left: 5px; + margin-right: 5px; +}