diff options
author | Phillip Berndt <pberndt@spline.de> | 2013-10-29 12:55:29 +0100 |
---|---|---|
committer | Phillip Berndt <pberndt@spline.de> | 2015-05-20 09:33:12 +0200 |
commit | 5540f747361cd950b588e54e61c53697a11526fc (patch) | |
tree | e2f368ebbcf1946d84c985afc50ae367f6566ead /htdocs/page.js | |
parent | b76be28036a500f92f2c2f9db0bef0a4f29e6e20 (diff) | |
download | comics-5540f747361cd950b588e54e61c53697a11526fc.tar.gz comics-5540f747361cd950b588e54e61c53697a11526fc.tar.bz2 comics-5540f747361cd950b588e54e61c53697a11526fc.zip |
When sorting, do not delete comics from the list which are not present today
Diffstat (limited to 'htdocs/page.js')
-rw-r--r-- | htdocs/page.js | 36 |
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(); } |