summaryrefslogtreecommitdiff
path: root/srv/src/http/tpl/finalize.html
diff options
context:
space:
mode:
Diffstat (limited to 'srv/src/http/tpl/finalize.html')
-rw-r--r--srv/src/http/tpl/finalize.html45
1 files changed, 45 insertions, 0 deletions
diff --git a/srv/src/http/tpl/finalize.html b/srv/src/http/tpl/finalize.html
new file mode 100644
index 0000000..8bdfceb
--- /dev/null
+++ b/srv/src/http/tpl/finalize.html
@@ -0,0 +1,45 @@
+{{ define "body" }}
+
+<script async type="module" src="{{ StaticURL "api.js" }}"></script>
+
+<style>
+#result.success { color: green; }
+#result.fail { color: red; }
+</style>
+
+<span id="result"></span>
+
+<script>
+
+(async () => {
+
+ const resultSpan = document.getElementById("result");
+
+ try {
+
+ const urlParams = new URLSearchParams(window.location.search);
+ const subToken = urlParams.get('subToken');
+
+ if (!subToken) throw "No subscription token provided";
+
+ const api = await import("{{ StaticURL "api.js" }}");
+
+ await api.call('/api/mailinglist/finalize', {
+ body: { subToken },
+ });
+
+ resultSpan.className = "success";
+ resultSpan.innerHTML = "Your email subscription has been finalized! Please go on about your day.";
+
+ } catch (e) {
+ resultSpan.className = "fail";
+ resultSpan.innerHTML = e;
+ }
+
+})();
+
+</script>
+
+{{ end }}
+
+{{ template "base.html" . }}