Adds initial conferences search support
parent
15320854f3
commit
7f3b006d4d
|
@ -4,6 +4,7 @@ $config = [
|
|||
'domain' => 'localhost',
|
||||
'folder' => '/jilo-web/',
|
||||
'database' => '/home/yasen/work/code/git/lindeas-code/jilo-web/jilo-web.db',
|
||||
'jilo_database' => '/home/yasen/work/code/git/lindeas-code/jilo/jilo.db',
|
||||
];
|
||||
|
||||
?>
|
||||
|
|
|
@ -0,0 +1,32 @@
|
|||
<?php
|
||||
|
||||
class Conference {
|
||||
private $db;
|
||||
private $table_name = 'conferences';
|
||||
|
||||
public $jitsi_component;
|
||||
public $start;
|
||||
public $end;
|
||||
public $conference_id;
|
||||
public $conference_name;
|
||||
public $participants;
|
||||
public $name_count;
|
||||
public $conference_host;
|
||||
|
||||
public function __construct($database) {
|
||||
$this->db = $database->getConnection();
|
||||
$this->queries = include('queries.php');
|
||||
}
|
||||
|
||||
// list of all conferences
|
||||
public function conferences_all_formatted() {
|
||||
$sql = $this->queries['conferences_all_formatted'];
|
||||
$query = $this->db->prepare($sql);
|
||||
$query->execute();
|
||||
|
||||
return $query;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
?>
|
|
@ -0,0 +1,102 @@
|
|||
<?php
|
||||
|
||||
// all sql queries for the jilo database in one place
|
||||
|
||||
return [
|
||||
|
||||
// list of conferences for time period (if given)
|
||||
// fields: component, duration, conference ID, conference name, number of participants, name count (the conf name is found), conference host
|
||||
'conferences_all_formatted' => "
|
||||
SELECT DISTINCT
|
||||
c.jitsi_component,
|
||||
(SELECT ce.time
|
||||
FROM conference_events ce
|
||||
WHERE
|
||||
ce.conference_id = c.conference_id
|
||||
AND
|
||||
ce.conference_event = 'conference expired')
|
||||
AS start,
|
||||
(SELECT ce.time
|
||||
FROM conference_events ce
|
||||
WHERE
|
||||
ce.conference_id = c.conference_id
|
||||
AND
|
||||
ce.conference_event = 'conference created')
|
||||
AS end,
|
||||
c.conference_id,
|
||||
c.conference_name,
|
||||
(SELECT COUNT(pe.participant_id) AS participants
|
||||
FROM participant_events pe
|
||||
WHERE
|
||||
pe.event_type = 'participant joining'
|
||||
AND
|
||||
pe.event_param = c.conference_id),
|
||||
name_counts.name_count,
|
||||
c.conference_host
|
||||
FROM
|
||||
conferences c
|
||||
JOIN (
|
||||
SELECT
|
||||
conference_name,
|
||||
COUNT(*) AS name_count
|
||||
FROM
|
||||
conferences
|
||||
GROUP BY
|
||||
conference_name
|
||||
) AS name_counts ON c.conference_name = name_counts.conference_name
|
||||
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')
|
||||
ORDER BY
|
||||
c.id;",
|
||||
|
||||
|
||||
// search for a conference by its ID for a time period (if given)
|
||||
'conference_by_id' => "
|
||||
SELECT
|
||||
pe.time,
|
||||
c.conference_id,
|
||||
c.conference_name,
|
||||
c.conference_host,
|
||||
pe.loglevel,
|
||||
pe.event_type,
|
||||
p.endpoint_id AS participant_id,
|
||||
pe.event_param
|
||||
FROM
|
||||
conferences c
|
||||
LEFT JOIN
|
||||
conference_events ce ON c.conference_id = ce.conference_id
|
||||
LEFT JOIN
|
||||
participants p ON c.conference_id = p.conference_id
|
||||
LEFT JOIN
|
||||
participant_events pe ON p.endpoint_id = pe.participant_id
|
||||
WHERE
|
||||
c.conference_id = '%s'
|
||||
AND (pe.time >= '%s 00:00:00' AND pe.time <= '%s 23:59:59')
|
||||
|
||||
UNION
|
||||
|
||||
SELECT
|
||||
ce.time AS event_time,
|
||||
c.conference_id,
|
||||
c.conference_name,
|
||||
c.conference_host,
|
||||
ce.loglevel,
|
||||
ce.conference_event AS event_type,
|
||||
NULL AS participant_id,
|
||||
ce.conference_param AS event_param
|
||||
FROM
|
||||
conferences c
|
||||
LEFT JOIN
|
||||
conference_events ce ON c.conference_id = ce.conference_id
|
||||
WHERE
|
||||
c.conference_id = '%s'
|
||||
AND (event_time >= '%s 00:00:00' AND event_time <= '%s 23:59:59')
|
||||
|
||||
ORDER BY
|
||||
pe.time;"
|
||||
|
||||
|
||||
];
|
||||
|
||||
?>
|
|
@ -20,6 +20,7 @@ $allowed_urls = [
|
|||
'register',
|
||||
'profile',
|
||||
'config',
|
||||
'conferences',
|
||||
];
|
||||
|
||||
// cnfig file
|
||||
|
|
|
@ -0,0 +1,43 @@
|
|||
<?php
|
||||
|
||||
require_once 'classes/database.php';
|
||||
require 'classes/conference.php';
|
||||
|
||||
// list of all conferences
|
||||
try {
|
||||
$db = new Database($config['jilo_database']);
|
||||
$conference = new Conference($db);
|
||||
|
||||
$search = $conference->conferences_all_formatted();
|
||||
|
||||
if ($search->rowCount() > 0) {
|
||||
$conferences = array();
|
||||
$conferences['records'] = array();
|
||||
|
||||
while ($row = $search->fetch(PDO::FETCH_ASSOC)) {
|
||||
extract($row);
|
||||
$conference_record = array(
|
||||
'jitsi_component' => $jitsi_component,
|
||||
'start' => $start,
|
||||
'end' => $end,
|
||||
'conference_id' => $conference_id,
|
||||
'conference_name' => $conference_name,
|
||||
'participants' => $participants,
|
||||
'name_count' => $name_count,
|
||||
'conference_host' => $conference_host
|
||||
);
|
||||
array_push($conferences['records'], $conference_record);
|
||||
}
|
||||
|
||||
// FIXME format this better
|
||||
echo json_encode($conferences);
|
||||
|
||||
} else {
|
||||
echo 'No matching conferences found';
|
||||
}
|
||||
|
||||
} catch (Exception $e) {
|
||||
$error = $e->getMessage();
|
||||
}
|
||||
|
||||
?>
|
|
@ -1 +1,13 @@
|
|||
<?php ?>
|
||||
|
||||
<div>
|
||||
|
||||
<p>Jilo web configuration</p>
|
||||
|
||||
<ul>
|
||||
<?php foreach ($config as $config_item=>$config_value) { ?>
|
||||
<li><?php echo htmlspecialchars($config_item) . ': ' . htmlspecialchars($config_value); ?></li>
|
||||
<?php } ?>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
|
|
@ -1,3 +1,11 @@
|
|||
<?php ?>
|
||||
|
||||
profile of <?= $user ?>
|
||||
<div>
|
||||
|
||||
<p>Profile of <?= $user ?></p>
|
||||
|
||||
<ul>
|
||||
<li>username: <?= $_SESSION['username'] ?></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
<li><a href="index.php">home</a></li>
|
||||
<?php if ( isset($_SESSION['username']) ) { ?>
|
||||
<li><a href="?page=config">config</a></li>
|
||||
<li><a href="?page=conferences">conferences</a></li>
|
||||
<?php } ?>
|
||||
</ul>
|
||||
|
||||
|
|
Loading…
Reference in New Issue