summaryrefslogtreecommitdiffstats
path: root/htdocs/page.js
diff options
context:
space:
mode:
Diffstat (limited to 'htdocs/page.js')
-rw-r--r--htdocs/page.js36
1 files changed, 30 insertions, 6 deletions
diff --git a/htdocs/page.js b/htdocs/page.js
index 9e5287a..15bf45b 100644
--- a/htdocs/page.js
+++ b/htdocs/page.js
@@ -69,12 +69,36 @@
}
if(typeof strips[which] != "undefined") {
this.parentNode.insertBefore(strips[which], this.nextSibling);
- var newOrder = document.getElementsByClassName("strip");
- var newOrderString = "";
- for(var i=0; i<newOrder.length; i++) {
- var name = newOrder[i].dataset.stripName;
- newOrderString += (newOrderString.length > 0 ? "," : "") + name;
- }
+
+ var newOrder = [];
+ if(typeof localStorage["stripsOrder"] != "undefined") {
+ newOrder = localStorage["stripsOrder"].split(/,/);
+ var oldIndex = newOrder.indexOf(which);
+ if(oldIndex >= 0) {
+ newOrder.splice(oldIndex, 1);
+ }
+ if(typeof this.dataset.stripName == "undefined") {
+ newOrder.unshift(which);
+ }
+ else {
+ var insertAfter = newOrder.indexOf(this.dataset.stripName);
+ if(insertAfter == -1) {
+ newOrder.push(which);
+ }
+ else {
+ newOrder.splice(insertAfter + 1, 0, which);
+ }
+ }
+ }
+ else {
+ var newOrderElements = document.getElementsByClassName("strip");
+ for(var i=0; i<newOrderElements.length; i++) {
+ newOrder.push(newOrderElements[i].dataset.stripName);
+ }
+ }
+
+ var newOrderString = newOrder.join(",");
+
localStorage["stripsOrder"] = newOrderString;
e.preventDefault();
}