This commit is contained in:
William 2022-04-26 19:55:10 +00:00
parent 800551f0a9
commit 1b83f16213
18 changed files with 64 additions and 65 deletions

View File

@ -23,7 +23,6 @@ class AccessControl
// routes that need power level 1 and up
[
"routes" => [
"race/simulator.php",
"race/configure/*"
],
"catcher" => [

View File

@ -8,7 +8,7 @@ namespace App\Core;
*/
class ErrorHandler
{
public array $error_messages;
public array $error_messages = [];
public function __construct()
{
@ -17,7 +17,7 @@ class ErrorHandler
set_error_handler([$this, 'error']);
set_exception_handler([$this, 'exception']);
$this->error_messages = [];
register_shutdown_function([$this, 'shutdown']);
}
public function error($errno, $errstr, $errfile, $errline): void
@ -31,7 +31,7 @@ class ErrorHandler
$this->error_messages[] = "<b>Uncaught Exception:</b> " . $exception;
}
public function __destruct()
private function shutdown(): void
{
if (!$this->error_messages) {
return;

View File

@ -1,6 +1,6 @@
<h1>Endre lagtabell</h1>
<h1>Konfigurer</h1>
<span class="float-right">[&nbsp;<a class="success" href="update.php">Opprett lag</a>&nbsp;]</span>
<span class="float-right">[&nbsp;<a class="danger" href="../reset.php">Nullstill runder</a>&nbsp;]&nbsp;</span>
<span class="float-right">[&nbsp;<a class="danger" href="reset.php">Nullstill runder</a>&nbsp;]&nbsp;</span>
<br>
<table>
<tr>

View File

@ -1,7 +1,7 @@
<h1>Simulator</h1>
<p>Skriv inn et kortnummer:</p>
<form method="post" autocomplete="off">
<input type="text" name="cardnumber" maxlength="32">
<input type="text" name="cardnumber" maxlength="32" autofocus>
<br>
<br>
<input type="submit" value="Send">

View File

@ -1,14 +0,0 @@
<div id="alert" class="alert danger hidden" role="alert"></div>
<h1>Resultat service</h1>
<br>
<noscript>
Denne siden krever JavaScript
</noscript>
<div id="ranking-table">
Laster inn...
</div>
<script src="../static/js/resultservice.js"></script>

View File

@ -0,0 +1,19 @@
<div id="alertBox" class="alert danger hidden" role="alert"></div>
<h1>Resultatservice</h1>
<br>
<noscript>
Denne siden krever JavaScript
</noscript>
<div id="rankingTable">
Laster inn...
</div>
<script src="../static/js/ResultService.js"></script>
<script>
document.addEventListener('DOMContentLoaded', () => {
new ResultService(alertBox, rankingTable, '../api/v1/race/sync.php?h=');
});
</script>

View File

@ -38,15 +38,15 @@
<h4>Felles</h4>
<ul>
<li><a href="<?=$this->config['root_url']?>index.php">Forside</a></li>
<li><a href="<?=$this->config['root_url']?>race/live.php">Resultater</a></li>
<li><a href="<?=$this->config['root_url']?>race/resultservice.php">Resultater</a></li>
</ul>
<?php if ($this->user->logged_in): ?>
<?php if ($this->user->power_level > 0): ?>
<h4>Tillatelser</h4>
<h4>Admin</h4>
<ul>
<li><a href="<?=$this->config['root_url']?>race/simulator.php">Simulator</a></li>
<li><a href="<?=$this->config['root_url']?>race/configure/index.php">Konfigurer</a></li>
<li><a href="<?=$this->config['root_url']?>race/configure/simulator.php">Simulator</a></li>
</ul>
<?php endif; ?>
<?php endif; ?>

View File

@ -32,7 +32,7 @@ foreach ($time_mapper->getAll() as $time)
if (!isset($name_map[$team->id]))
{
$name_map[$team->id] = $team->name;
$name_map[$team->id] = htmlspecialchars($team->name);
}
if ($time_ref === NULL)

View File

@ -1,4 +1,4 @@
<?php $app = require '../../../../app/inc.php';
<?php $app = require '../../../app/inc.php';
/**
* Deletes both team and related times
*/
@ -32,7 +32,7 @@ if (!$team)
if (!$confirm)
{
$app->view('template/header', ['title' => 'Bekreft sletting']);
$app->view('pages/race/configure/teams/delete', ['team' => $team]);
$app->view('pages/race/configure/delete', ['team' => $team]);
$app->view('template/footer');
die();
}

View File

@ -1,4 +1,11 @@
<?php $app = require '../../../app/inc.php';
// redirect
$app->redirect('teams/');
use App\Teamtable\TeamMapper;
$team_mapper = new TeamMapper($app->database->conn);
$teams = $team_mapper->getAll();
$app->view('template/header', ['title' => 'Konfigurer']);
$app->view('pages/race/configure/index', ["teams" => $teams]);
$app->view('template/footer');

View File

@ -1,4 +1,4 @@
<?php $app = require '../../app/inc.php';
<?php $app = require '../../../app/inc.php';
// uh oh.. stinky
@ -11,7 +11,7 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST')
$cardnumber = (string)$_POST['cardnumber'];
try {
$code = $baton_reader->receive($cardnumber, 0);
$code = $baton_reader->receive($cardnumber, -1);
switch ($code) {
case 0:
$app->session->flash('Opprettet nytt lag', 'success');
@ -46,5 +46,5 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST')
}
$app->view('template/header', ['title' => 'Simulator']);
$app->view('pages/race/simulator');
$app->view('pages/race/configure/simulator');
$app->view('template/footer');

View File

@ -1,11 +0,0 @@
<?php $app = require '../../../../app/inc.php';
use App\Teamtable\TeamMapper;
$team_mapper = new TeamMapper($app->database->conn);
$teams = $team_mapper->getAll();
$app->view('template/header', ['title' => 'Endre lagtabell']);
$app->view('pages/race/configure/teams/index', ["teams" => $teams]);
$app->view('template/footer');

View File

@ -1,4 +1,4 @@
<?php $app = require '../../../../app/inc.php';
<?php $app = require '../../../app/inc.php';
/**
* Creates and updates team in teamtable
*/
@ -68,7 +68,7 @@ if ($item !== NULL)
$app->view('template/header', [
'title' => $title
]);
$app->view('pages/race/configure/teams/update', [
$app->view('pages/race/configure/update', [
"team" => $team,
"title" => $title
]);
@ -81,7 +81,7 @@ $title = "Legg til lag";
$app->view('template/header', [
'title' => $title
]);
$app->view('pages/race/configure/teams/update', [
$app->view('pages/race/configure/update', [
"team" => new Team,
"title" => $title
]);

View File

@ -1,5 +0,0 @@
<?php $app = require '../../app/inc.php';
$app->view('template/header', ["title" => "Live resultater"]);
$app->view('pages/race/live');
$app->view('template/footer');

View File

@ -0,0 +1,5 @@
<?php $app = require '../../app/inc.php';
$app->view('template/header', ["title" => "Resultatservice"]);
$app->view('pages/race/resultservice');
$app->view('template/footer');

View File

@ -1,16 +1,11 @@
document.addEventListener('DOMContentLoaded', () => {
new ResultService();
});
class ResultService
{
hash = 0;
alertbox = document.getElementById("alert");
table = document.getElementById("ranking-table");
endpoint = "../api/v1/race/sync.php?h=";
constructor()
constructor(alertBox, rankingTable, endpoint)
{
this.alertBox = alertBox;
this.rankingTable = rankingTable;
this.endpoint = endpoint;
this.hash = 0;
this.loop();
}
@ -18,11 +13,11 @@ class ResultService
{
try {
await this.updateTable();
this.alertbox.classList.add("hidden");
this.alertBox.classList.add("hidden");
} catch (error) {
console.log(error);
this.alertbox.innerHTML = "<b>Noe gikk galt: </b>" + error;
this.alertbox.classList.remove("hidden");
this.alertBox.innerHTML = "<b>Noe gikk galt: </b>" + error;
this.alertBox.classList.remove("hidden");
}
setTimeout(() => {
@ -48,12 +43,16 @@ class ResultService
let tableHTML = "";
tableHTML += "<table>";
tableHTML += "<tr>";
tableHTML += "<th>#</th>";
tableHTML += "<th>Lag</th>";
tableHTML += "<th>Tid</th>";
tableHTML += "</tr>";
let iterator = 0;
data.times.reverse().forEach(element => {
iterator++;
tableHTML += "<tr>";
tableHTML += "<td>" + iterator + "</td>";
tableHTML += "<td>" + data.map.team.name[element.id] + "</td>";
tableHTML += "<td>" + element.time + "</td>";
tableHTML += "</tr>";
@ -61,6 +60,6 @@ class ResultService
tableHTML += "<table>";
this.table.innerHTML = tableHTML;
this.rankingTable.innerHTML = tableHTML;
}
}