diff options
Diffstat (limited to 'modules/lijst/lijst.js')
-rw-r--r-- | modules/lijst/lijst.js | 26 |
1 files changed, 15 insertions, 11 deletions
diff --git a/modules/lijst/lijst.js b/modules/lijst/lijst.js index eccbba7..028e6ce 100644 --- a/modules/lijst/lijst.js +++ b/modules/lijst/lijst.js @@ -11,8 +11,8 @@ persist=persist.create({ persist.initSync(); var lijst=persist.getItemSync("lijst"); -if(!lijst){ - lijst=[]; +if(!lijst||Array.isArray(lijst)){ + lijst={lijst:[],nextid:0}; persist.setItemSync("lijst",lijst); } @@ -21,8 +21,9 @@ var moddir; function render(res){ var html=fs.readFileSync(moddir+"/lijst.html")+""; var s=""; - for(var i=0;i<lijst.length;i++){ - s+="<li>"+lijst[i].replace(/</g,"<")+"</li>\n"; + for(var i=0;i<lijst.lijst.length;i++){ + var text=lijst.lijst[i].text.replace(/</g,"<"); + s+="<li>"+text+" <a href=\"javascript:removeItem("+lijst.lijst[i].id+")\">x</a></li>\n"; } html=html.replace("<!--[[LIJST_ITEMS]]-->",s); res.send(html); @@ -34,16 +35,19 @@ module.exports=function(app,io,_moddir){ render(res); }); app.post("/lijst/add",function(req,res){ - lijst.push(req.body.trim()); + lijst.lijst.push({text:req.body.trim(),id:lijst.nextid++}); persist.setItemSync("lijst",lijst); res.status(200).end(); }); - app.post("/lijst/remove",function(req,res){ - if(lijst.length>0){ - console.log("Removed item: "+lijst[0]); - lijst.shift(); + app.post("/lijst/remove/:id",function(req,res){ + var idx=lijst.lijst.findIndex(function(o){return o.id==+req.params.id;}); + if(idx!=-1){ + console.log("Removed item: "+lijst.lijst[idx].text); + lijst.lijst.splice(idx,1); + persist.setItemSync("lijst",lijst); + res.status(200).end(); + } else { + res.status(404).end("ID not found"); } - persist.setItemSync("lijst",lijst); - res.status(200).end(); }); }; |