aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGalen Guyer <galen@galenguyer.com>2022-08-10 12:18:21 -0400
committerGalen Guyer <galen@galenguyer.com>2022-08-10 12:18:21 -0400
commitf3d7edb8ec60b3cae9a548a1177c132b52a51873 (patch)
treef7225fce40ff787d53c7c6a4d31f322787e14b88
parentbe595a8507b91034347382727e8fdc8be662debe (diff)
Allow for custom vote options
-rw-r--r--main.go6
-rw-r--r--templates/create.tmpl24
2 files changed, 27 insertions, 3 deletions
diff --git a/main.go b/main.go
index 373ed2e..78919e1 100644
--- a/main.go
+++ b/main.go
@@ -5,6 +5,7 @@ import (
"net/http"
"os"
"sort"
+ "strings"
"time"
csh_auth "github.com/computersciencehouse/csh-auth"
@@ -109,6 +110,11 @@ func main() {
poll.Options = []string{"Pass", "Fail/Conditional", "Abstain"}
case "fail-conditional":
poll.Options = []string{"Fail", "Conditional", "Abstain"}
+ case "custom":
+ poll.Options = []string{}
+ for _, opt := range strings.Split(c.PostForm("customOptions"), ",") {
+ poll.Options = append(poll.Options, strings.TrimSpace(opt))
+ }
case "pass-fail":
default:
poll.Options = []string{"Pass", "Fail", "Abstain"}
diff --git a/templates/create.tmpl b/templates/create.tmpl
index 6f7cfed..79f07b8 100644
--- a/templates/create.tmpl
+++ b/templates/create.tmpl
@@ -5,14 +5,14 @@
<!-- <link rel="stylesheet" href="https://themeswitcher.csh.rit.edu/api/get" /> -->
<link rel="stylesheet" href="https://assets.csh.rit.edu/csh-material-bootstrap/4.3.1/dist/csh-material-bootstrap.min.css" media="screen"/>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
- </head>
+ </head>
<body>
<nav class="navbar navbar-expand-lg navbar-dark bg-primary">
<div class="container">
<a class="navbar-brand" href="/">Vote</a>
<div class="nav navbar-nav ml-auto">
<div class="navbar-user">
- <img src="https://profiles.csh.rit.edu/image/{{ .Username }}" />
+ <img alt="User profile photo" src="https://profiles.csh.rit.edu/image/{{ .Username }}" />
<span class="text-light">{{ .FullName }}</span>
<a href="/auth/logout" style="color: #c3c3c3;"><i>(logout)</i></a>
</div>
@@ -39,16 +39,34 @@
/>
</div>
<div class="form-group">
- <select name="options" class="form-control">
+ <select name="options" id="options" onChange="onOptionsChange()" class="form-control">
<option value="pass_fail" selected>Pass/Fail</option>
<option value="pass-fail-conditional">
Pass/Fail or Conditional
</option>
<option value="fail-conditional">Fail/Conditional</option>
+ <option value="custom">Custom</option>
</select>
</div>
+ <div style="display:none;" id="customOptions" class="form-group">
+ <input
+ type="text"
+ name="customOptions"
+ class="form-control"
+ placeholder="Custom Options (Comma-separated)"
+ />
+ </div>
<input type="submit" class="btn btn-primary" value="Create" />
</form>
</div>
+ <script>
+ function onOptionsChange() {
+ if (document.getElementById("options").value == "custom") {
+ document.getElementById("customOptions").style.display = null;
+ } else {
+ document.getElementById("customOptions").style.display = "none";
+ }
+ }
+ </script>
</body>
</html>