From 2e2f642cf6144cbc84bff0094d34ab40de6a4b11 Mon Sep 17 00:00:00 2001 From: tomsmeding Date: Wed, 18 Sep 2019 17:08:15 +0200 Subject: lijst: Proper delete button --- modules/lijst/lijst.html | 22 ++++++++++++++-------- modules/lijst/lijst.js | 26 +++++++++++++++----------- 2 files changed, 29 insertions(+), 19 deletions(-) (limited to 'modules') diff --git a/modules/lijst/lijst.html b/modules/lijst/lijst.html index 0c1a3dd..b849720 100644 --- a/modules/lijst/lijst.html +++ b/modules/lijst/lijst.html @@ -11,20 +11,28 @@ function addItem() { xhr.open("POST", location.href + "/add"); xhr.responseType = "text"; xhr.onreadystatechange = function() { - if (xhr.readyState == 4 && xhr.status == 200) { - location.href = location.href; + if (xhr.readyState == 4) { + if (xhr.status == 200) { + location.href = location.href; + } else { + alert(xhr.responseText); + } } }; xhr.send(text); } -function removeItem() { +function removeItem(id) { var xhr = new XMLHttpRequest(); - xhr.open("POST", location.href + "/remove"); + xhr.open("POST", location.href + "/remove/" + id); xhr.responseType = "text"; xhr.onreadystatechange = function() { - if (xhr.readyState == 4 && xhr.status == 200) { - location.href = location.href; + if (xhr.readyState == 4) { + if (xhr.status == 200) { + location.href = location.href; + } else { + alert(xhr.responseText); + } } }; xhr.send(); @@ -40,7 +48,5 @@ function removeItem() {
-
- 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\n"; + for(var i=0;ix\n"; } html=html.replace("",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(); }); }; -- cgit v1.2.3-70-g09d2