aboutsummaryrefslogtreecommitdiffstats
path: root/templates
diff options
context:
space:
mode:
authorJan Tuomi <jans.tuomi@gmail.com>2024-03-01 13:55:25 +0200
committerJan Tuomi <jan@jantuomi.fi>2024-12-21 19:43:13 +0200
commitef8c2c576043330a7a22d9549284003e57c284bb (patch)
tree187b131cb0c9441ce7dbfde7b65b6378ae216d98 /templates
parente348c0f2a6941810060b4add3dce7080175ad749 (diff)
Add possibility to manage own vote
Diffstat (limited to 'templates')
-rw-r--r--templates/poll.html.j223
-rw-r--r--templates/poll_vote_list.html.j223
-rw-r--r--templates/poll_vote_table.html.j219
3 files changed, 52 insertions, 13 deletions
diff --git a/templates/poll.html.j2 b/templates/poll.html.j2
index e0ede1f..1661b79 100644
--- a/templates/poll.html.j2
+++ b/templates/poll.html.j2
@@ -21,14 +21,23 @@
</form>
</div>
-<form action="/poll/{{ poll.id }}/vote" method="post">
- {% if display_mode == "table" %}
- {% include "poll_vote_table.html.j2" %}
- {% else %}
- {% include "poll_vote_list.html.j2" %}
- {% endif %}
-</form>
+
+{% if display_mode == "table" %}
+{% include "poll_vote_table.html.j2" %}
+{% else %}
+{% include "poll_vote_list.html.j2" %}
{% endif %}
+<script>
+ const query = new URLSearchParams(window.location.search);
+ const prefill_voter_name = query.get("prefill_voter_name");
+ if (prefill_voter_name !== null) {
+ document.querySelector("input[name=voter_name]").focus()
+ document.querySelector("input[name=voter_name]").select();
+ query.delete("prefill_voter_name");
+ history.replaceState(null, "", window.location.pathname + (query.toString() ? "?" + query.toString() : ""));
+ }
+ </script>
+{% endif %}
{% endblock %}
diff --git a/templates/poll_vote_list.html.j2 b/templates/poll_vote_list.html.j2
index 9d3a15c..ef09af4 100644
--- a/templates/poll_vote_list.html.j2
+++ b/templates/poll_vote_list.html.j2
@@ -23,8 +23,25 @@
</div>
<div>
- <label for="voter_name" hidden>Your name</label>
- <input type="text" name="voter_name" placeholder="Your name" required>
- <input class="green" type="submit" value="Submit">
+ <form action="/poll/{{ poll.id }}/vote" method="post">
+ <label for="voter_name" hidden>Your name</label>
+ <input type="text" name="voter_name" placeholder="Your name" required
+ {% if prefill_voter_name %}value="{{ prefill_voter_name }}"{% endif %}>
+ <input class="green" type="submit" value="Submit">
+ </form>
</div>
+{% if managed_voter_names | length != 0 %}
+<br>
+<br>
+<h3>Remove submission(s)</h3>
+{% endif %}
+<div>
+ {% for voter_name in managed_voter_names %}
+ <form action="/poll/{{ poll.id }}/delete_voter" method="post">
+ <input type="hidden" name="voter_code" value="{{ managed_voter_names[voter_name] }}">
+ {{ voter_name }}
+ <input class="delete-voter-btn" type="submit" value="❌">
+ </form>
+ {% endfor %}
+</div> \ No newline at end of file
diff --git a/templates/poll_vote_table.html.j2 b/templates/poll_vote_table.html.j2
index a7aa434..440f2b7 100644
--- a/templates/poll_vote_table.html.j2
+++ b/templates/poll_vote_table.html.j2
@@ -12,7 +12,17 @@
</tr>
{% for voter_name in voter_names %}
<tr>
- <td>{{ voter_name }}</td>
+ <td>
+ {% if voter_name in managed_voter_names %}
+ <form action="/poll/{{ poll.id }}/delete_voter" method="post">
+ <input type="hidden" name="voter_code" value="{{ managed_voter_names[voter_name] }}">
+ {{ voter_name }}
+ <input class="delete-voter-btn" type="submit" value="❌">
+ </form>
+ {% else %}
+ {{ voter_name }}
+ {% endif %}
+ </td>
{% for choice in choices %}
{% if selections[(voter_name, choice.id)] == 1 %}
<td>
@@ -32,10 +42,13 @@
{% endfor %}
<!-- Add a row for the current user -->
+ <form action="/poll/{{ poll.id }}/vote" method="post">
<tr>
<td>
<label for="voter_name" hidden>Your name</label>
- <input type="text" name="voter_name" placeholder="Your name" required>
+ <input type="text" name="voter_name" placeholder="Your name" required
+ {% if prefill_voter_name %}value="{{ prefill_voter_name }}"{% endif %}>
+ <input class="green" type="submit" value="Submit">
</td>
{% for choice in choices %}
<td>
@@ -43,7 +56,7 @@
</td>
{% endfor %}
</tr>
+ </form>
<!-- End of the row for the current user -->
</table>
-<input class="green" type="submit" value="Submit">