summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjules <jules@okfoc.us>2014-01-02 00:17:24 -0500
committerjules <jules@okfoc.us>2014-01-02 00:17:24 -0500
commit264dcb64b2f2db997a6504a4c29eafee70b1002c (patch)
tree213c860a60fb81942d26993af16f5a78541514bb
parentb0abdb7bb0980474048110d683a81fb037854103 (diff)
remove shader locally
-rw-r--r--js/user.js52
-rw-r--r--shader-picker.html1
2 files changed, 47 insertions, 6 deletions
diff --git a/js/user.js b/js/user.js
index 98af86f..fa74227 100644
--- a/js/user.js
+++ b/js/user.js
@@ -38,40 +38,80 @@ user.setCookie = function(username){
document.cookie = "imname="+username+";path=/;domain=.asdf.us;max-age=1086400"
localStorage.setItem("im.name", username);
}
+
+
user.shaders = new function(){}
user.shaders.init = function(){
user.shaders.bind()
}
user.shaders.bind = function(){
- var shaders = JSON.parse( localStorage.getItem("im.shaders") ) || []
+ var shaders = user.shaders.getShaders()
+ user.shaders.buttons = {}
for (var i = 0; i < shaders.length; i++){
user.shaders.bindButton(shaders[i])
}
document.getElementById("add-shader").addEventListener("click", user.shaders.save, false)
+ document.getElementById("remove-shader").addEventListener("click", user.shaders.remove, false)
}
user.shaders.bindButton = function(name){
+ console.log("button >> " + name)
var button = document.createElement("button")
button.innerHTML = name
button.addEventListener("click", user.shaders.load.bind(this, name), false)
document.getElementById("shaders").appendChild(button)
+ user.shaders.buttons[name] = button
}
user.shaders.load = function(name){
+ console.log(name)
var shader = localStorage.getItem("im.shaders." + name)
- console.log(name,shader)
if (shader && shader.length > 0) {
+ user.shaders.name = name
$("#shader").val(shader)
shader_build()
}
}
+user.shaders.getShader = function(name){
+ return localStorage.getItem("im.shaders."+name) || null
+}
+user.shaders.setShader = function(name, shader){
+ if (! name.length || ! shader.length || !name.length || !shader.length)
+ { return }
+ localStorage.setItem("im.shaders." + name, shader)
+}
+user.shaders.removeShader = function(name){
+ localStorage.removeItem("im.shaders." + name)
+}
+user.shaders.getShaders = function(){
+ return JSON.parse( localStorage.getItem("im.shaders") ) || []
+}
+user.shaders.setShaders = function(shaders){
+ localStorage.setItem("im.shaders", JSON.stringify(shaders))
+}
user.shaders.save = function(){
var name = prompt("enter shader name")
var shader = $("#shader").val()
- console.log(name,shader)
+
if (! name) return;
if (shade !== shade_no_error_handling) return;
- localStorage.setItem("im.shaders." + name, shader)
- var shaders = JSON.parse( localStorage.getItem("im.shaders") ) || []
+
+ user.shaders.setShader(name, shader)
+
+ var shaders = user.shaders.getShaders()
shaders.push(name)
- localStorage.setItem("im.shaders", JSON.stringify(shaders))
+ user.shaders.setShaders(shaders)
+
+ user.shaders.name = name
user.shaders.bindButton(name)
}
+user.shaders.remove = function(){
+ var name = user.shaders.name
+ if (! name || ! name.length) return
+
+ var shaders = user.shaders.getShaders()
+ if (shaders.splice( shaders.indexOf(name), 1 )) {
+ user.shaders.setShaders(shaders)
+ user.shaders.removeShader(name)
+ $(user.shaders.buttons[name]).remove()
+ user.shaders.name = ""
+ }
+} \ No newline at end of file
diff --git a/shader-picker.html b/shader-picker.html
index 5561b6a..e7d60d4 100644
--- a/shader-picker.html
+++ b/shader-picker.html
@@ -80,6 +80,7 @@ form { display: inline-block; }
<button id="dither-demo">dither</button>
<div id="shaders"></div>
<button id="add-shader">+</button>
+ <button id="remove-shader">x</button>
<br>
</div>