aboutsummaryrefslogtreecommitdiff
path: root/static/js
diff options
context:
space:
mode:
Diffstat (limited to 'static/js')
-rw-r--r--static/js/posts.js26
-rw-r--r--static/js/themes.js40
2 files changed, 46 insertions, 20 deletions
diff --git a/static/js/posts.js b/static/js/posts.js
index 455e7ea..30f4893 100644
--- a/static/js/posts.js
+++ b/static/js/posts.js
@@ -2,29 +2,16 @@ function startNewPost(){
var el = document.getElementById("newpostbtn");
el.style="display:none;";
el.setAttribute("state", "1");
- document.getElementById("newpost").style = "display: block;";
+ document.getElementById("newpost").style = "";
+ sessionStorage.setItem("newpostState", true);
}
function stopNewPost(){
var el = document.getElementById("newpostbtn");
el.style="display:block;";
el.setAttribute("state", "0");
- document.getElementById("newpost").style = "display: hidden;";
-}
-
-function newpost()
-{
- var state = document.getElementById("newpostbtn").getAttribute("state");
- if(state === "0")
- {
- startNewPost();
- sessionStorage.setItem("newpostState", true);
- }
- else
- {
- stopNewPost();
- sessionStorage.setItem("newpostState", false);
- }
+ document.getElementById("newpost").style = "display: none;";
+ sessionStorage.setItem("newpostState", false);
}
function shortURL(actorName, url)
@@ -182,7 +169,7 @@ function quote(actorName, opid, id)
var h = document.getElementById(id + "-content").offsetTop - 348;
}
- const boxStyle = "display: block; position: absolute; width: 400px; height: 600px; z-index: 9; top: " + h + "px; left: " + w + "px; padding: 5px;";
+ const boxStyle = "top: " + h + "px; left: " + w + "px;";
box.setAttribute("style", boxStyle);
sessionStorage.setItem("element-reply-style", boxStyle);
sessionStorage.setItem("reply-top", h);
@@ -202,7 +189,6 @@ function quote(actorName, opid, id)
sessionStorage.setItem("element-reply-comment", comment.value);
dragElement(header);
-
}
function report(actorName, id)
@@ -216,7 +202,7 @@ function report(actorName, id)
var w = window.innerWidth / 2 - 200;
var h = document.getElementById(id + "-content").offsetTop - 348;
- const boxStyle = "display: block; position: absolute; width: 400px; height: 480px; z-index: 9; top: " + h + "px; left: " + w + "px; padding: 5px;";
+ const boxStyle = "top: " + h + "px; left: " + w + "px;";
box.setAttribute("style", boxStyle);
sessionStorage.setItem("element-report-style", boxStyle);
sessionStorage.setItem("report-top", h);
diff --git a/static/js/themes.js b/static/js/themes.js
new file mode 100644
index 0000000..3f1b906
--- /dev/null
+++ b/static/js/themes.js
@@ -0,0 +1,40 @@
+function setCookie(key, value, age) {
+ document.cookie = key + "=" + encodeURIComponent(value) + ";sameSite=strict;max-age=" + 60 * 60 * 24 * age + ";path=/";
+}
+
+function getCookie(key) {
+ if (document.cookie.length != 0) {
+ return document.cookie.split('; ').find(row => row.startsWith(key)).split('=')[1];
+ }
+ return "";
+}
+
+function setTheme(name) {
+ for (let i = 0, tags = document.getElementsByTagName("link"); i < tags.length; i++) {
+ if (tags[i].type === "text/css" && tags[i].title) {
+ tags[i].disabled = !(tags[i].title === name);
+ }
+ }
+
+ setCookie("theme", name, 3650);
+}
+
+function applyTheme() {
+ // HACK: disable all of the themes first. this for some reason makes things work.
+ for (let i = 0, tags = document.getElementsByTagName("link"); i < tags.length; i++) {
+ if (tags[i].type === "text/css" && tags[i].title) {
+ tags[i].disabled = true;
+ }
+ }
+ let theme = getCookie("theme") || "default";
+ setTheme(theme);
+
+ // reflect this in the switcher
+ let switcher = document.getElementById("themeSwitcher");
+ for(var i = 0; i < switcher.options.length; i++) {
+ if (switcher.options[i].value === theme) {
+ switcher.selectedIndex = i;
+ break;
+ }
+ }
+}