From 264dcb64b2f2db997a6504a4c29eafee70b1002c Mon Sep 17 00:00:00 2001 From: jules Date: Thu, 2 Jan 2014 00:17:24 -0500 Subject: remove shader locally --- js/user.js | 52 ++++++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 46 insertions(+), 6 deletions(-) (limited to 'js') 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 -- cgit v1.2.3-70-g09d2