208 lines
8.5 KiB
PHP
208 lines
8.5 KiB
PHP
<?php
|
|
|
|
$title = "Games";
|
|
$description = "View previous games.";
|
|
|
|
if (!isset($_SESSION["account"])) {
|
|
$title = "Log In";
|
|
$description = "Login to view details about this vote.";
|
|
http_response_code(401);
|
|
}
|
|
|
|
if (LOGGED_IN && isset($_GET["game"])) {
|
|
$sql = "SELECT games.id, games.name, games.status_id,
|
|
games.submitstart, games.submitend,
|
|
games.onestart, games.twostart, games.threestart, games.gameend
|
|
FROM games
|
|
JOIN game_status ON games.status_id = game_status.id
|
|
WHERE games.id = :id";
|
|
|
|
$stmt = $db["data"]->prepare($sql);
|
|
$stmt->execute([
|
|
"id" => $_GET["game"],
|
|
]);
|
|
|
|
$game = $stmt->fetch(PDO::FETCH_OBJ);
|
|
unset($stmt);
|
|
|
|
$title = "Game: " . $game->name;
|
|
$description = "View details about the " . $game->name . " vote.";
|
|
}
|
|
|
|
include "partials/head.php";
|
|
?>
|
|
<body>
|
|
<?php include "partials/header.php"; ?>
|
|
<main id="main" class="flow">
|
|
<header>
|
|
<h1><?= $title ?></h1>
|
|
</header>
|
|
<?php if (!LOGGED_IN) {
|
|
include "partials/login-form.php";
|
|
} else {
|
|
$stmt = $db["data"]->prepare(
|
|
"SELECT * FROM assignments WHERE assignments.game_id = :game_id"
|
|
);
|
|
$stmt->execute([
|
|
"game_id" => $_GET["game"],
|
|
]);
|
|
$assignments = $stmt->execute();
|
|
|
|
$stmt = $db["data"]->prepare(
|
|
"SELECT * FROM submissions WHERE game_id = :game_id AND member_id = :member_id"
|
|
);
|
|
$stmt->execute([
|
|
"game_id" => $_GET["game"],
|
|
"member_id" => $_SESSION["account"]->id,
|
|
]);
|
|
$submission = $stmt->fetch(PDO::FETCH_OBJ);
|
|
unset($stmt);
|
|
|
|
if ($game->status_id === STATUS_ENROLLING && $submission) {
|
|
$participant_state = 'GAME_OPEN_WITH_SUBMISSION';
|
|
} elseif ($game->status_id === STATUS_ENROLLING && !$submission) {
|
|
$participant_state = 'GAME_OPEN_WITHOUT_SUBMISSION';
|
|
} elseif ($submission && in_array($game->status_id, [
|
|
STATUS_ROUND_ONE,
|
|
STATUS_ROUND_TWO,
|
|
STATUS_ROUND_THREE,
|
|
STATUS_DONE,
|
|
])) {
|
|
$participant_state = 'GAME_CLOSED_WITH_SUBMISSION';
|
|
} else {
|
|
$participant_state = 'GAME_CLOSED_WITHOUT_SUBMISSION';
|
|
}
|
|
|
|
$dates = [
|
|
"submitstart" => DateTimeImmutable::createFromFormat(
|
|
"U",
|
|
$game->submitstart
|
|
)->setTimezone($time_zone),
|
|
"submitend" => DateTimeImmutable::createFromFormat(
|
|
"U",
|
|
$game->submitend
|
|
)->setTimezone($time_zone),
|
|
"onestart" => DateTimeImmutable::createFromFormat(
|
|
"U",
|
|
$game->onestart
|
|
)->setTimezone($time_zone),
|
|
"twostart" => DateTimeImmutable::createFromFormat(
|
|
"U",
|
|
$game->twostart
|
|
)->setTimezone($time_zone),
|
|
"threestart" => DateTimeImmutable::createFromFormat(
|
|
"U",
|
|
$game->threestart
|
|
)->setTimezone($time_zone),
|
|
"gameend" => DateTimeImmutable::createFromFormat(
|
|
"U",
|
|
$game->gameend
|
|
)->setTimezone($time_zone),
|
|
];
|
|
?>
|
|
<article>
|
|
<div class="flow">
|
|
<h2>Your Submission</h2>
|
|
<?php
|
|
switch ($participant_state) {
|
|
case 'GAME_OPEN_WITH_SUBMISSION': ?>
|
|
<p><a href='/docs/<?= $submission->hash ?>'><?= $submission->title ?></a></p>
|
|
<p><a href="/games/<?= $game->id ?>/update" class='call-to-action'>Update submission</a></p>
|
|
<?php break;
|
|
case 'GAME_OPEN_WITHOUT_SUBMISSION': ?>
|
|
<p>You haven't submitted work to this contest.</p>
|
|
<p><a href="/games/<?= $game->id ?>/submit" class='call-to-action'>Submit to <?= $game->name ?></a></p>
|
|
<?php break;
|
|
case 'GAME_CLOSED_WITH_SUBMISSION': ?>
|
|
<?php include "partials/submission-info.php"; ?>
|
|
<p><a href='/games/<?= $game->id ?>/update' class='call-to-action'>Update submission visibility</a></p>
|
|
<?php include "partials/feedback.php"; ?>
|
|
<?php include "partials/assignments.php"; ?>
|
|
<?php break;
|
|
case 'GAME_CLOSED_WITHOUT_SUBMISSION': ?>
|
|
<p>You didn't submit a work to this contest.</p>
|
|
<?php break;
|
|
default: ?>
|
|
<?php break;
|
|
} ?>
|
|
</div>
|
|
<hr/>
|
|
<div>
|
|
<h2>Schedule</h2>
|
|
<dl class="flow" data-game-status="<?= $game->status_id ?>">
|
|
<div data-status="<?= STATUS_ENROLLING ?>">
|
|
<dt>Submissions</dt>
|
|
<dd><span>Open: </span><time datetime="<?= $dates[
|
|
"submitstart"
|
|
]->format("c") ?>"><?= $dates["submitstart"]->format(
|
|
'l, j F, o \a\t h:i A T'
|
|
) ?></time></dd>
|
|
<dd><span>Close: </span><time datetime="<?= $dates[
|
|
"submitend"
|
|
]->format("c") ?>"><?= $dates["submitend"]->format(
|
|
'l, j F, o \a\t h:i A T'
|
|
) ?></time></dd>
|
|
</div>
|
|
<div data-status="<?= STATUS_REVIEW ?>">
|
|
<dt>Document Review</dt>
|
|
<dd><span>Start: </span><time datetime="<?= $dates[
|
|
"submitend"
|
|
]
|
|
->add($one_second)
|
|
->format("c") ?>"><?= $dates["submitend"]
|
|
->add($one_second)
|
|
->format('l, j F, o \a\t h:i A T') ?></time></dd>
|
|
<dd><span>End: </span><time datetime="<?= $dates["onestart"]
|
|
->sub($one_second)
|
|
->format("c") ?>"><?= $dates["onestart"]
|
|
->sub($one_second)
|
|
->format('l, j F, o \a\t h:i A T') ?></time></dd>
|
|
</div>
|
|
<div data-status="<?= STATUS_ROUND_ONE ?>">
|
|
<dt>Round One</dt>
|
|
<dd><span>Start: </span><time datetime="<?= $dates[
|
|
"onestart"
|
|
]->format("c") ?>"><?= $dates["onestart"]->format(
|
|
'l, j F, o \a\t h:i A T'
|
|
) ?></time></dd>
|
|
<dd><span>End: </span><time datetime="<?= $dates["twostart"]
|
|
->sub($one_second)
|
|
->format("c") ?>"><?= $dates["twostart"]
|
|
->sub($one_second)
|
|
->format('l, j F, o \a\t h:i A T') ?></time></dd>
|
|
</div>
|
|
<div data-status="<?= STATUS_ROUND_TWO ?>">
|
|
<dt>Round Two</dt>
|
|
<dd><span>Start: </span><time datetime="<?= $dates[
|
|
"twostart"
|
|
]->format("c") ?>"><?= $dates["twostart"]->format(
|
|
'l, j F, o \a\t h:i A T'
|
|
) ?></time></dd>
|
|
<dd><span>End: </span><time datetime="<?= $dates[
|
|
"threestart"
|
|
]
|
|
->sub($one_second)
|
|
->format("c") ?>"><?= $dates["threestart"]
|
|
->sub($one_second)
|
|
->format('l, j F, o \a\t h:i A T') ?></time></dd>
|
|
</div>
|
|
<div data-status="<?= STATUS_ROUND_THREE ?>">
|
|
<dt>Round Three</dt>
|
|
<dd><span>Start: </span><time datetime="<?= $dates[
|
|
"threestart"
|
|
]->format("c") ?>"><?= $dates["threestart"]->format(
|
|
'l, j F, o \a\t h:i A T'
|
|
) ?></time></dd>
|
|
<dd><span>End: </span><time datetime="<?= $dates[
|
|
"gameend"
|
|
]->format("c") ?>"><?= $dates["gameend"]->format(
|
|
'l, j F, o \a\t h:i A T'
|
|
) ?></time></dd>
|
|
</div>
|
|
</dl>
|
|
</div>
|
|
</article>
|
|
<?php
|
|
} ?>
|
|
</main>
|
|
<?php include "partials/footer.php"; ?>
|