diff --git a/app/classes/conference.php b/app/classes/conference.php index 8dd79c0..165640b 100644 --- a/app/classes/conference.php +++ b/app/classes/conference.php @@ -274,25 +274,52 @@ ORDER BY $until_time = htmlspecialchars(strip_tags($until_time)); // number of conferences for time period (if given) - // NB we need to cross check with first occurrence of "bridge selected" - // as in Jicofo logs there is no way to get the time for conference ID creation + // FIXME sometimes there is no start/end time, find a way around this $sql = " -SELECT COUNT(c.conference_id) as conferences -FROM - conferences c -LEFT JOIN ( - SELECT ce.conference_id, MIN(ce.time) as first_event_time - FROM conference_events ce - WHERE ce.conference_event = 'bridge selected' - GROUP BY ce.conference_id -) AS first_event ON c.conference_id = first_event.conference_id -LEFT JOIN - conference_events ce ON c.conference_id = ce.conference_id -WHERE - (ce.time >= '%s 00:00:00' AND ce.time <= '%s 23:59:59') -AND (ce.conference_event = 'conference created' - OR (ce.conference_event = 'bridge selected' AND ce.time = first_event.first_event_time) -)"; +SELECT COUNT(*) AS conferences + FROM ( + SELECT DISTINCT + (SELECT COALESCE + ( + (SELECT ce.time + FROM conference_events ce + WHERE + ce.conference_id = c.conference_id + AND + ce.conference_event = 'conference created' + ), + (SELECT ce.time + FROM conference_events ce + WHERE + ce.conference_id = c.conference_id + AND + ce.conference_event = 'bridge selected' + ) + ) + ) AS start, + (SELECT COALESCE + ( + (SELECT ce.time + FROM conference_events ce + WHERE + ce.conference_id = c.conference_id + AND + (ce.conference_event = 'conference expired' OR ce.conference_event = 'conference stopped') + ), + (SELECT pe.time + FROM participant_events pe + WHERE + pe.event_param = c.conference_id + ORDER BY pe.time DESC + LIMIT 1 + ) + ) + ) AS end + FROM conferences c + JOIN + conference_events ce ON c.conference_id = ce.conference_id + WHERE (start >= '%s 00:00:00' AND end <= '%s 23:59:59') + ) AS subquery"; $sql = sprintf($sql, $from_time, $until_time); diff --git a/app/helpers/pagination.php b/app/helpers/pagination.php index 1614e39..9a36352 100644 --- a/app/helpers/pagination.php +++ b/app/helpers/pagination.php @@ -15,6 +15,12 @@ if (isset($_REQUEST['event'])) { $param .= '&event=' . $_REQUEST['event']; } + if (isset($_REQUEST['from_time'])) { + $param .= '&from_time=' . $_REQUEST['from_time']; + } + if (isset($_REQUEST['until_time'])) { + $param .= '&until_time=' . $_REQUEST['until_time']; + } $max_visible_pages = 10; $step_pages = 10; diff --git a/app/pages/conferences.php b/app/pages/conferences.php index 30308c0..9915faf 100644 --- a/app/pages/conferences.php +++ b/app/pages/conferences.php @@ -9,8 +9,12 @@ $db = connectDB($config, 'jilo', $platformDetails[0]['jilo_database'], $platform include '../app/helpers/time_range.php'; // conference id/name are specified when searching specific conference(s) -// either id OR name, id has precedence // we use $_REQUEST, so that both links and forms work +// if it's there, but empty, we make it same as the field name; otherwise assign the value + +//$conferenceName = !empty($_REQUEST['name']) ? "'" . $_REQUEST['name'] . "'" : 'conference_name'; +//$conferenceId = !empty($_REQUEST['id']) ? "'" . $_REQUEST['id'] . "'" : 'conference_id'; + if (isset($_REQUEST['id']) && $_REQUEST['id'] != '') { $conferenceId = $_REQUEST['id']; unset($_REQUEST['name']); @@ -140,6 +144,6 @@ if (!empty($conferences['records'])) { } // display the widget -include '../app/templates/widget.php'; +include '../app/templates/event-list-conferences.php'; ?> diff --git a/app/templates/event-list-conferences.php b/app/templates/event-list-conferences.php new file mode 100644 index 0000000..f90f3b6 --- /dev/null +++ b/app/templates/event-list-conferences.php @@ -0,0 +1,79 @@ + +
+
+ + +
+
+ + /> + + /> + /> + /> + + +
+ +
+ + +
+ + +
+ +

time period: -

+ +
+ + + + + + + + + + + + + $column) { + if ($key === 'conference ID' && isset($conferenceId) && $conferenceId === $column) { ?> + + + + + + + + + + + + + +
+ $items_per_page) { + $url = "$app_root?platform=$platform_id&page=$page"; + include '../app/helpers/pagination.php'; +} +?> + +

No matching records found.

+ +
+
+