Commit
This commit is contained in:
parent
76aca99ff0
commit
258135cd81
@ -55,18 +55,19 @@ class App
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Render given view
|
* Render given view
|
||||||
|
*
|
||||||
|
* Reason for the funky names is to avoid name conflicts
|
||||||
*/
|
*/
|
||||||
public function view(string $view, array $data = []): void
|
public function view(string $__VIEW, array $__DATA = []): void
|
||||||
{
|
{
|
||||||
// import variables into the current symbol table from an array
|
$__PATH = $this->dir . '/view/' . $__VIEW . '.php';
|
||||||
extract($data);
|
if (!file_exists($__PATH))
|
||||||
// require view file
|
|
||||||
$path = $this->dir . '/view/' . $view . '.php';
|
|
||||||
if (!file_exists($path))
|
|
||||||
{
|
{
|
||||||
throw new Exception("View does not exist");
|
throw new Exception("View does not exist");
|
||||||
}
|
}
|
||||||
require $path;
|
// import variables into the current symbol table from an array
|
||||||
|
extract($__DATA);
|
||||||
|
require $__PATH;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -1,41 +1,76 @@
|
|||||||
<?php
|
<?php
|
||||||
if (!isset($focused)) {
|
if (!isset($view))
|
||||||
$focused = FALSE;
|
{
|
||||||
|
$view = 'default';
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
<div id="alertBox" class="alert danger hidden" role="alert"></div>
|
|
||||||
|
|
||||||
<?php if ($focused == FALSE): ?>
|
<?php if ($view == 'default' || $view == 'focused'): ?>
|
||||||
<h1>Resultater</h1>
|
|
||||||
<span class="float-right">[ <a class="info" href="?focused=1" target="_blank">Fokusert visning</a> ]</span>
|
<div id="alertBox" class="alert danger hidden" role="alert"></div>
|
||||||
<br>
|
|
||||||
|
<?php if ($view == 'default'): ?>
|
||||||
|
<h1>Resultater</h1>
|
||||||
|
<p>Denne siden oppdateres automagisk.</p>
|
||||||
|
<span class="float-right">[ <a class="info" href="?view=focused" target="_blank">Fokusert visning</a> ]</span>
|
||||||
|
<span class="float-right">[ <a class="info" href="?view=summary">Sammendrag</a> ] </span>
|
||||||
|
<br>
|
||||||
|
<?php endif; ?>
|
||||||
|
|
||||||
|
<noscript>
|
||||||
|
Denne siden krever JavaScript
|
||||||
|
</noscript>
|
||||||
|
|
||||||
|
<div id="rankingTable">
|
||||||
|
Laster inn...
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
.b {
|
||||||
|
animation: coolFlash 1s;
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes coolFlash {
|
||||||
|
from { background: lightgreen; }
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<script src="<?=$this->config['root_url']?>static/js/ResultService.js"></script>
|
||||||
|
<script>
|
||||||
|
document.addEventListener('DOMContentLoaded', () => {
|
||||||
|
|
||||||
|
alertBox = document.getElementById("alertBox");
|
||||||
|
rankingTable = document.getElementById("rankingTable");
|
||||||
|
|
||||||
|
new ResultService(alertBox, rankingTable, '<?=$this->config['root_url']?>api/race/results.php?h=');
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
||||||
<?php endif; ?>
|
<?php endif; ?>
|
||||||
|
|
||||||
<noscript>
|
<?php if ($view == 'summary'): ?>
|
||||||
Denne siden krever JavaScript
|
|
||||||
</noscript>
|
|
||||||
|
|
||||||
<div id="rankingTable">
|
<h1>Sammendrag</h1>
|
||||||
Laster inn...
|
<span class="float-right">[ <a class="danger" href="?">Tilbake til resultater</a> ] </span>
|
||||||
</div>
|
<br>
|
||||||
|
|
||||||
<style>
|
<table>
|
||||||
.b {
|
<tr>
|
||||||
animation: coolFlash 1s;
|
<th>#</th>
|
||||||
}
|
<th>Lag</th>
|
||||||
|
<th>Bedrift</th>
|
||||||
|
<th>Runder</th>
|
||||||
|
<th>Bestetid</th>
|
||||||
|
</tr>
|
||||||
|
<?php $i = 1; foreach ($teams as $team): ?>
|
||||||
|
<tr>
|
||||||
|
<td><?=$i++; $i?></td>
|
||||||
|
<td><?=htmlspecialchars($team->name)?></td>
|
||||||
|
<td><?=htmlspecialchars($team->company)?></td>
|
||||||
|
<td><?=htmlspecialchars($team->rounds)?></td>
|
||||||
|
<td><?=htmlspecialchars($team->best_time)?></td>
|
||||||
|
</tr>
|
||||||
|
<?php endforeach; ?>
|
||||||
|
</table>
|
||||||
|
|
||||||
@keyframes coolFlash {
|
<?php endif; ?>
|
||||||
from { background: lightgreen; }
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
|
|
||||||
<script src="<?=$this->config['root_url']?>static/js/ResultService.js"></script>
|
|
||||||
<script>
|
|
||||||
document.addEventListener('DOMContentLoaded', () => {
|
|
||||||
|
|
||||||
alertBox = document.getElementById("alertBox");
|
|
||||||
rankingTable = document.getElementById("rankingTable");
|
|
||||||
|
|
||||||
new ResultService(alertBox, rankingTable, '<?=$this->config['root_url']?>api/race/results.php?h=');
|
|
||||||
});
|
|
||||||
</script>
|
|
@ -1,17 +1,61 @@
|
|||||||
<?php $app = require '../../app/inc.php';
|
<?php $app = require '../../app/inc.php';
|
||||||
|
|
||||||
$focused = filter_input(INPUT_GET, 'focused');
|
use App\Teamtable\TeamMapper;
|
||||||
|
|
||||||
if ($focused) {
|
$view = filter_input(INPUT_GET, 'view');
|
||||||
$app->view('template/header', [
|
|
||||||
"title" => "Resultater",
|
switch ($view) {
|
||||||
"hide_nav" => TRUE,
|
|
||||||
"hide_menu" => TRUE
|
case 'focused':
|
||||||
]);
|
|
||||||
$app->view('pages/race/results', ["focused" => TRUE]);
|
$app->view('template/header',
|
||||||
$app->view('template/footer');
|
[
|
||||||
} else {
|
"title" => "Resultater",
|
||||||
$app->view('template/header', ["title" => "Resultater"]);
|
"hide_nav" => TRUE,
|
||||||
$app->view('pages/race/results');
|
"hide_menu" => TRUE
|
||||||
$app->view('template/footer');
|
]
|
||||||
}
|
);
|
||||||
|
$app->view('pages/race/results',
|
||||||
|
[
|
||||||
|
"view" => "focused"
|
||||||
|
]
|
||||||
|
);
|
||||||
|
$app->view('template/footer');
|
||||||
|
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'summary':
|
||||||
|
|
||||||
|
$team_mapper = new TeamMapper($app->database->conn);
|
||||||
|
|
||||||
|
$teams = $team_mapper->getAll();
|
||||||
|
$filtered_teams = [];
|
||||||
|
|
||||||
|
// filter out any teams that have no rounds
|
||||||
|
foreach ($teams as $team)
|
||||||
|
{
|
||||||
|
if ($team->rounds !== 0)
|
||||||
|
{
|
||||||
|
$filtered_teams[] = $team;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$app->view('template/header', ["title" => "Sammendrag"]);
|
||||||
|
$app->view('pages/race/results',
|
||||||
|
[
|
||||||
|
"view" => "summary",
|
||||||
|
"teams" => $filtered_teams
|
||||||
|
]
|
||||||
|
);
|
||||||
|
$app->view('template/footer');
|
||||||
|
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
|
||||||
|
$app->view('template/header', ["title" => "Resultater"]);
|
||||||
|
$app->view('pages/race/results');
|
||||||
|
$app->view('template/footer');
|
||||||
|
|
||||||
|
break;
|
||||||
|
}
|
Reference in New Issue
Block a user