Add named responses
This commit is contained in:
parent
ef847a13c1
commit
200762399d
BIN
database.mwb
BIN
database.mwb
Binary file not shown.
@ -1,5 +1,5 @@
|
||||
-- MySQL Script generated by MySQL Workbench
|
||||
-- Mon 05 Feb 2018 02:44:01 PM MST
|
||||
-- Mon 05 Feb 2018 11:09:37 PM MST
|
||||
-- Model: New Model Version: 1.0
|
||||
-- MySQL Workbench Forward Engineering
|
||||
|
||||
@ -55,6 +55,7 @@ CREATE TABLE IF NOT EXISTS `openquestion`.`responses` (
|
||||
`aid` INT NOT NULL,
|
||||
`qid` INT NOT NULL,
|
||||
`timestamp` DATETIME NOT NULL,
|
||||
`name` VARCHAR(100) NULL,
|
||||
PRIMARY KEY (`rid`, `aid`, `qid`),
|
||||
UNIQUE INDEX `rid_UNIQUE` (`rid` ASC),
|
||||
INDEX `fk_responses_answers1_idx` (`aid` ASC, `qid` ASC),
|
||||
|
@ -2,6 +2,8 @@
|
||||
|
||||
require_once __DIR__ . "/required.php";
|
||||
|
||||
header('Content-Type: application/json');
|
||||
|
||||
$qid = $VARS['qid'];
|
||||
|
||||
if (!$database->has('questions', ['qid' => $qid])) {
|
||||
@ -22,4 +24,16 @@ foreach ($answers as $a) {
|
||||
];
|
||||
}
|
||||
|
||||
$responses = $database->select('responses', ['name', 'aid'], ['qid' => $qid]);
|
||||
$data['responses'] = [];
|
||||
foreach ($responses as $r) {
|
||||
if ($r['name'] == null) {
|
||||
$r['name'] = "Anonymous";
|
||||
}
|
||||
$data['responses'][] = [
|
||||
"name" => $r['name'],
|
||||
"aid" => $r['aid']
|
||||
];
|
||||
}
|
||||
|
||||
echo json_encode($data);
|
9
login.php
Normal file
9
login.php
Normal file
@ -0,0 +1,9 @@
|
||||
<?php
|
||||
|
||||
require __DIR__ . "/required.php";
|
||||
|
||||
if (isset($VARS['name'])) {
|
||||
$_SESSION['name'] = $VARS['name'];
|
||||
}
|
||||
|
||||
header('Location: ' . SITE_PATH . 'r/' . $VARS['code']);
|
@ -18,7 +18,7 @@ include __DIR__ . "/../bits/navbar.php";
|
||||
$qid = $database->get('questions', 'qid', ['qcode' => $arg1]);
|
||||
?>
|
||||
|
||||
<div class="row my-4">
|
||||
<div class="row mt-4">
|
||||
<div class="col-12 col-md-6">
|
||||
<h1><?php echo $database->get('questions', 'qtext', ['qid' => $qid]); ?></h1>
|
||||
</div>
|
||||
@ -36,33 +36,74 @@ include __DIR__ . "/../bits/navbar.php";
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="list-group">
|
||||
<?php
|
||||
$total = $database->count('responses', ['qid' => $qid]);
|
||||
$answers = $database->select('answers', ['aid', 'atext'], ['qid' => $qid]);
|
||||
$colors = ["primary", "success", "danger", "info", "warning"];
|
||||
$color = -1;
|
||||
foreach ($answers as $a) {
|
||||
$color++;
|
||||
if ($color > count($colors) - 1) {
|
||||
$color = 0;
|
||||
}
|
||||
$votes = $database->count('responses', ['aid' => $a['aid']]);
|
||||
?>
|
||||
<div class="list-group-item">
|
||||
<h3 class="d-flex"><?php echo $a['atext']; ?> <span class="small ml-auto" id="votes_<?php echo $a['aid']; ?>"><?php echo $votes; ?> votes</span></h3>
|
||||
<style nonce="<?php echo $SECURE_NONCE; ?>">
|
||||
#progress_<?php echo $a['aid']; ?> {
|
||||
width: <?php echo ($votes / $total) * 100.0; ?>%;
|
||||
}
|
||||
</style>
|
||||
<div class="progress">
|
||||
<div id="progress_<?php echo $a['aid']; ?>" class="progress-bar bg-<?php echo $colors[$color]; ?>" role="progressbar"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="nav nav-tabs">
|
||||
<a class="nav-item nav-link active" data-toggle="tab" href="#totals" role="tab">Totals</a>
|
||||
<a class="nav-item nav-link" data-toggle="tab" href="#results" role="tab">Results</a>
|
||||
</div>
|
||||
|
||||
<div class="tab-content">
|
||||
<div class="list-group tab-pane fade show active" id="totals" role="tabpanel">
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
$total = $database->count('responses', ['qid' => $qid]);
|
||||
$answers = $database->select('answers', ['aid', 'atext'], ['qid' => $qid]);
|
||||
$colors = ["primary", "success", "danger", "info", "warning"];
|
||||
$color = -1;
|
||||
foreach ($answers as $a) {
|
||||
$color++;
|
||||
if ($color > count($colors) - 1) {
|
||||
$color = 0;
|
||||
}
|
||||
$votes = $database->count('responses', ['aid' => $a['aid']]);
|
||||
?>
|
||||
<div class="list-group-item">
|
||||
<h3 class="d-flex"><?php echo $a['atext']; ?> <span class="small ml-auto" id="votes_<?php echo $a['aid']; ?>"><?php echo $votes; ?> votes</span></h3>
|
||||
<style nonce="<?php echo $SECURE_NONCE; ?>">
|
||||
#progress_<?php echo $a['aid']; ?> {
|
||||
width: <?php echo ($votes / $total) * 100.0; ?>%;
|
||||
}
|
||||
</style>
|
||||
<div class="progress">
|
||||
<div id="progress_<?php echo $a['aid']; ?>" class="progress-bar bg-<?php echo $colors[$color]; ?>" role="progressbar"></div>
|
||||
</div>
|
||||
</div>
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
</div>
|
||||
<div class="tab-pane fade card-columns pt-3" id="results" role="tabpanel">
|
||||
<?php
|
||||
$color = -1;
|
||||
foreach ($answers as $a) {
|
||||
$color++;
|
||||
if ($color > count($colors) - 1) {
|
||||
$color = 0;
|
||||
}
|
||||
?>
|
||||
<div class="card border-<?php echo $colors[$color]; ?>">
|
||||
<div class="card-body">
|
||||
<h4 class="card-title text-<?php echo $colors[$color]; ?>"><?php echo $a['atext']; ?></h4>
|
||||
<div class="list-group" id="answer_<?php echo $a['aid']; ?>_list">
|
||||
<?php
|
||||
$users = $database->select('responses', 'name', ['aid' => $a['aid']]);
|
||||
foreach ($users as $u) {
|
||||
if ($u == null) {
|
||||
$u = "Anonymous";
|
||||
}
|
||||
?>
|
||||
<div class="list-group-item">
|
||||
<?php echo $u; ?>
|
||||
</div>
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script nonce="<?php echo $SECURE_NONCE; ?>">
|
||||
@ -70,12 +111,18 @@ include __DIR__ . "/../bits/navbar.php";
|
||||
$.getJSON('<?php echo SITE_PATH; ?>getresults.php', {
|
||||
qid: <?php echo $qid; ?>
|
||||
}, function (data) {
|
||||
var total = data['total'];
|
||||
var answers = data['answers'];
|
||||
var responses = data['responses'];
|
||||
for (var i = 0; i < answers.length; i++) {
|
||||
$('#progress_' + answers[i]['id']).css('width', answers[i]['percent']);
|
||||
$('#votes_' + answers[i]['id']).text(answers[i]['votes'] + " votes");
|
||||
}
|
||||
for (var i = 0; i < responses.length; i++) {
|
||||
$('#answer_' + responses[i]['aid'] + "_list").html("");
|
||||
}
|
||||
for (var i = 0; i < responses.length; i++) {
|
||||
$('#answer_' + responses[i]['aid'] + "_list").append("<div class=\"list-group-item\">" + responses[i]['name'] + "</div>");
|
||||
}
|
||||
});
|
||||
}, 1000);
|
||||
</script>
|
@ -18,18 +18,16 @@
|
||||
<div class="row justify-content-center mt-4">
|
||||
<div class="col-12 col-md-6 col-lg-4">
|
||||
<div class="card border-primary">
|
||||
<div class="card-body">
|
||||
<form class="card-body" action="<?php echo SITE_PATH; ?>login.php" method="POST">
|
||||
<h5 class="card-title">Enter question code:</h5>
|
||||
<input type="text" class="form-control my-2" id="code" placeholder="XXXX" />
|
||||
<button class="btn btn-primary btn-block" id="gobtn">
|
||||
<?php if (!isset($_SESSION['name'])) { ?>
|
||||
<input type="text" class="form-control my-2" name="name" placeholder="Name" required />
|
||||
<?php } ?>
|
||||
<input type="text" class="form-control my-2" name="code" placeholder="XXXX" required />
|
||||
<button class="btn btn-primary btn-block" type="submit">
|
||||
Go
|
||||
</button>
|
||||
<script nonce="<?php echo $SECURE_NONCE; ?>">
|
||||
$("#gobtn").click(function () {
|
||||
document.location.href = "<?php echo SITE_PATH; ?>r/" + $("#code").val();
|
||||
});
|
||||
</script>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -67,20 +65,18 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-12 col-md-6 col-lg-4">
|
||||
<div class="col-12 col-md-6 col-lg-4 mt-2 mt-md-0">
|
||||
<div class="card border-primary">
|
||||
<div class="card-body">
|
||||
<form class="card-body" action="<?php echo SITE_PATH; ?>login.php" method="POST">
|
||||
<h5 class="card-title">Enter question code:</h5>
|
||||
<input type="text" class="form-control my-2" id="code" placeholder="XXXX" />
|
||||
<button class="btn btn-primary btn-block" id="gobtn">
|
||||
<?php if (!isset($_SESSION['name'])) { ?>
|
||||
<input type="text" class="form-control my-2" name="name" placeholder="Name" required />
|
||||
<?php } ?>
|
||||
<input type="text" class="form-control my-2" name="code" placeholder="XXXX" required />
|
||||
<button class="btn btn-primary btn-block" type="submit">
|
||||
Go
|
||||
</button>
|
||||
<script nonce="<?php echo $SECURE_NONCE; ?>">
|
||||
$("#gobtn").click(function () {
|
||||
document.location.href = "<?php echo SITE_PATH; ?>r/" + $("#code").val();
|
||||
});
|
||||
</script>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -91,18 +87,16 @@
|
||||
<div class="row justify-content-center mt-4">
|
||||
<div class="col-12 col-md-6 col-lg-4">
|
||||
<div class="card border-primary">
|
||||
<div class="card-body">
|
||||
<form class="card-body" action="<?php echo SITE_PATH; ?>login.php" method="POST">
|
||||
<h5 class="card-title">Enter question code:</h5>
|
||||
<input type="text" class="form-control my-2" id="code" placeholder="XXXX" />
|
||||
<button class="btn btn-primary btn-block" id="gobtn">
|
||||
<?php if (!isset($_SESSION['name'])) { ?>
|
||||
<input type="text" class="form-control my-2" name="name" placeholder="Name" required />
|
||||
<?php } ?>
|
||||
<input type="text" class="form-control my-2" name="code" placeholder="XXXX" required />
|
||||
<button class="btn btn-primary btn-block" type="submit">
|
||||
Go
|
||||
</button>
|
||||
<script nonce="<?php echo $SECURE_NONCE; ?>">
|
||||
$("#gobtn").click(function () {
|
||||
document.location.href = "<?php echo SITE_PATH; ?>r/" + $("#code").val();
|
||||
});
|
||||
</script>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -113,18 +107,16 @@
|
||||
<div class="row justify-content-center mt-4">
|
||||
<div class="col-12 col-md-6 col-lg-4">
|
||||
<div class="card border-primary">
|
||||
<div class="card-body">
|
||||
<form class="card-body" action="<?php echo SITE_PATH; ?>login.php" method="POST">
|
||||
<h5 class="card-title">Enter question code:</h5>
|
||||
<input type="text" class="form-control my-2" id="code" placeholder="XXXX" />
|
||||
<button class="btn btn-primary btn-block" id="gobtn">
|
||||
<?php if (!isset($_SESSION['name'])) { ?>
|
||||
<input type="text" class="form-control my-2" name="name" placeholder="Name" required />
|
||||
<?php } ?>
|
||||
<input type="text" class="form-control my-2" name="code" placeholder="XXXX" required />
|
||||
<button class="btn btn-primary btn-block" type="submit">
|
||||
Go
|
||||
</button>
|
||||
<script nonce="<?php echo $SECURE_NONCE; ?>">
|
||||
$("#gobtn").click(function () {
|
||||
document.location.href = "<?php echo SITE_PATH; ?>r/" + $("#code").val();
|
||||
});
|
||||
</script>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
2
vote.php
2
vote.php
@ -17,7 +17,7 @@ if ($_SESSION['voted'][$qid] === true) {
|
||||
die();
|
||||
}
|
||||
|
||||
$database->insert("responses", ['qid' => $qid, 'aid' => $aid, 'timestamp' => date('Y-m-d H:i:s')]);
|
||||
$database->insert("responses", ['qid' => $qid, 'aid' => $aid, 'timestamp' => date('Y-m-d H:i:s'), 'name' => $_SESSION['name']]);
|
||||
|
||||
$_SESSION['voted'][$qid] = true;
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user