Add named responses

master
Skylar Ittner 6 years ago
parent ef847a13c1
commit 200762399d

Binary file not shown.

@ -1,5 +1,5 @@
-- MySQL Script generated by MySQL Workbench -- 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 -- Model: New Model Version: 1.0
-- MySQL Workbench Forward Engineering -- MySQL Workbench Forward Engineering
@ -55,6 +55,7 @@ CREATE TABLE IF NOT EXISTS `openquestion`.`responses` (
`aid` INT NOT NULL, `aid` INT NOT NULL,
`qid` INT NOT NULL, `qid` INT NOT NULL,
`timestamp` DATETIME NOT NULL, `timestamp` DATETIME NOT NULL,
`name` VARCHAR(100) NULL,
PRIMARY KEY (`rid`, `aid`, `qid`), PRIMARY KEY (`rid`, `aid`, `qid`),
UNIQUE INDEX `rid_UNIQUE` (`rid` ASC), UNIQUE INDEX `rid_UNIQUE` (`rid` ASC),
INDEX `fk_responses_answers1_idx` (`aid` ASC, `qid` ASC), INDEX `fk_responses_answers1_idx` (`aid` ASC, `qid` ASC),

@ -2,6 +2,8 @@
require_once __DIR__ . "/required.php"; require_once __DIR__ . "/required.php";
header('Content-Type: application/json');
$qid = $VARS['qid']; $qid = $VARS['qid'];
if (!$database->has('questions', ['qid' => $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); echo json_encode($data);

@ -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]); $qid = $database->get('questions', 'qid', ['qcode' => $arg1]);
?> ?>
<div class="row my-4"> <div class="row mt-4">
<div class="col-12 col-md-6"> <div class="col-12 col-md-6">
<h1><?php echo $database->get('questions', 'qtext', ['qid' => $qid]); ?></h1> <h1><?php echo $database->get('questions', 'qtext', ['qid' => $qid]); ?></h1>
</div> </div>
@ -36,33 +36,74 @@ include __DIR__ . "/../bits/navbar.php";
</div> </div>
</div> </div>
</div> </div>
<div class="list-group">
<?php <div class="nav nav-tabs">
$total = $database->count('responses', ['qid' => $qid]); <a class="nav-item nav-link active" data-toggle="tab" href="#totals" role="tab">Totals</a>
$answers = $database->select('answers', ['aid', 'atext'], ['qid' => $qid]); <a class="nav-item nav-link" data-toggle="tab" href="#results" role="tab">Results</a>
$colors = ["primary", "success", "danger", "info", "warning"]; </div>
$color = -1;
foreach ($answers as $a) { <div class="tab-content">
$color++; <div class="list-group tab-pane fade show active" id="totals" role="tabpanel">
if ($color > count($colors) - 1) { <?php
$color = 0; $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
} }
$votes = $database->count('responses', ['aid' => $a['aid']]);
?> ?>
<div class="list-group-item"> </div>
<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> <div class="tab-pane fade card-columns pt-3" id="results" role="tabpanel">
<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 <?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>
</div> </div>
<script nonce="<?php echo $SECURE_NONCE; ?>"> <script nonce="<?php echo $SECURE_NONCE; ?>">
@ -70,12 +111,18 @@ include __DIR__ . "/../bits/navbar.php";
$.getJSON('<?php echo SITE_PATH; ?>getresults.php', { $.getJSON('<?php echo SITE_PATH; ?>getresults.php', {
qid: <?php echo $qid; ?> qid: <?php echo $qid; ?>
}, function (data) { }, function (data) {
var total = data['total'];
var answers = data['answers']; var answers = data['answers'];
var responses = data['responses'];
for (var i = 0; i < answers.length; i++) { for (var i = 0; i < answers.length; i++) {
$('#progress_' + answers[i]['id']).css('width', answers[i]['percent']); $('#progress_' + answers[i]['id']).css('width', answers[i]['percent']);
$('#votes_' + answers[i]['id']).text(answers[i]['votes'] + " votes"); $('#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); }, 1000);
</script> </script>

@ -18,18 +18,16 @@
<div class="row justify-content-center mt-4"> <div class="row justify-content-center mt-4">
<div class="col-12 col-md-6 col-lg-4"> <div class="col-12 col-md-6 col-lg-4">
<div class="card border-primary"> <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> <h5 class="card-title">Enter question code:</h5>
<input type="text" class="form-control my-2" id="code" placeholder="XXXX" /> <?php if (!isset($_SESSION['name'])) { ?>
<button class="btn btn-primary btn-block" id="gobtn"> <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 Go
</button> </button>
<script nonce="<?php echo $SECURE_NONCE; ?>"> </form>
$("#gobtn").click(function () {
document.location.href = "<?php echo SITE_PATH; ?>r/" + $("#code").val();
});
</script>
</div>
</div> </div>
</div> </div>
</div> </div>
@ -67,20 +65,18 @@
</div> </div>
</div> </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 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> <h5 class="card-title">Enter question code:</h5>
<input type="text" class="form-control my-2" id="code" placeholder="XXXX" /> <?php if (!isset($_SESSION['name'])) { ?>
<button class="btn btn-primary btn-block" id="gobtn"> <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 Go
</button> </button>
<script nonce="<?php echo $SECURE_NONCE; ?>"> </form>
$("#gobtn").click(function () {
document.location.href = "<?php echo SITE_PATH; ?>r/" + $("#code").val();
});
</script>
</div>
</div> </div>
</div> </div>
</div> </div>
@ -91,18 +87,16 @@
<div class="row justify-content-center mt-4"> <div class="row justify-content-center mt-4">
<div class="col-12 col-md-6 col-lg-4"> <div class="col-12 col-md-6 col-lg-4">
<div class="card border-primary"> <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> <h5 class="card-title">Enter question code:</h5>
<input type="text" class="form-control my-2" id="code" placeholder="XXXX" /> <?php if (!isset($_SESSION['name'])) { ?>
<button class="btn btn-primary btn-block" id="gobtn"> <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 Go
</button> </button>
<script nonce="<?php echo $SECURE_NONCE; ?>"> </form>
$("#gobtn").click(function () {
document.location.href = "<?php echo SITE_PATH; ?>r/" + $("#code").val();
});
</script>
</div>
</div> </div>
</div> </div>
</div> </div>
@ -113,18 +107,16 @@
<div class="row justify-content-center mt-4"> <div class="row justify-content-center mt-4">
<div class="col-12 col-md-6 col-lg-4"> <div class="col-12 col-md-6 col-lg-4">
<div class="card border-primary"> <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> <h5 class="card-title">Enter question code:</h5>
<input type="text" class="form-control my-2" id="code" placeholder="XXXX" /> <?php if (!isset($_SESSION['name'])) { ?>
<button class="btn btn-primary btn-block" id="gobtn"> <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 Go
</button> </button>
<script nonce="<?php echo $SECURE_NONCE; ?>"> </form>
$("#gobtn").click(function () {
document.location.href = "<?php echo SITE_PATH; ?>r/" + $("#code").val();
});
</script>
</div>
</div> </div>
</div> </div>
</div> </div>

@ -17,7 +17,7 @@ if ($_SESSION['voted'][$qid] === true) {
die(); 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; $_SESSION['voted'][$qid] = true;

Loading…
Cancel
Save