diff --git a/.idea/libraries/gson_2_8_6.xml b/.idea/libraries/gson_2_8_6.xml new file mode 100644 index 0000000..866f7ae --- /dev/null +++ b/.idea/libraries/gson_2_8_6.xml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/gson_2_8_6_sources.xml b/.idea/libraries/gson_2_8_6_sources.xml new file mode 100644 index 0000000..3f360a6 --- /dev/null +++ b/.idea/libraries/gson_2_8_6_sources.xml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml index 5a7f62a..8b90687 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -1,9 +1,6 @@ - - - - + \ No newline at end of file diff --git a/WasteInformationServer.iml b/WasteInformationServer.iml index e180db6..80d3376 100644 --- a/WasteInformationServer.iml +++ b/WasteInformationServer.iml @@ -12,7 +12,6 @@ - diff --git a/lib/gson-2.8.6-sources.jar b/lib/gson-2.8.6-sources.jar new file mode 100644 index 0000000..1e07df4 Binary files /dev/null and b/lib/gson-2.8.6-sources.jar differ diff --git a/lib/gson-2.8.6.jar b/lib/gson-2.8.6.jar new file mode 100644 index 0000000..4765c4a Binary files /dev/null and b/lib/gson-2.8.6.jar differ diff --git a/resources/wwwroot/dashboard.html b/resources/wwwroot/dashboard.html index 7f0f019..4dd9ac5 100644 --- a/resources/wwwroot/dashboard.html +++ b/resources/wwwroot/dashboard.html @@ -332,6 +332,7 @@ City Zone Waste Type + X @@ -341,6 +342,7 @@ City Zone Waste Type + X @@ -419,5 +421,7 @@ + + diff --git a/resources/wwwroot/js/dashboard.js b/resources/wwwroot/js/dashboard.js index 54be228..039d445 100644 --- a/resources/wwwroot/js/dashboard.js +++ b/resources/wwwroot/js/dashboard.js @@ -1,5 +1,4 @@ $(document).ready(function () { - // TODO: check login state console.log("page loaded"); $.post('/senddata/checkloginstate', 'action=getloginstate', function (data) { console.log(data); @@ -10,27 +9,45 @@ $(document).ready(function () { } }, 'json'); - $.post('/senddata/wastedata', 'action=getAllCities', function (data) { - console.log(data); - for (var i = 0; i < data.data.length; i++) { - $('#location-table-data').append("" + - "" + data.data[i].cityname + "" + - "" + data.data[i].zone + "" + - "" + data.data[i].wastetype + "" + - ""); - } - //todo entweda 1 od 2 - $("#example2").DataTable(); - $('#example1').DataTable({ - "paging": true, - "lengthChange": false, - "searching": false, - "ordering": true, - "info": true, - "autoWidth": false, - }); + var table; - }, 'json'); + function reloadtable() { + $.post('/senddata/wastedata', 'action=getAllCities', function (data) { + console.log(data); + $('#location-table-data').html(""); + for (var i = 0; i < data.data.length; i++) { + $('#location-table-data').append("" + + "" + data.data[i].cityname + "" + + "" + data.data[i].zone + "" + + "" + data.data[i].wastetype + "" + + "" + "" + "" + + ""); + $(".delbtn").click(function (event) { + var id = event.target.getAttribute("dataid"); + console.log("clicked btn data " + id); + $.post('/senddata/wastedata', 'action=deletecity&id=' + id, function (data) { + console.log(data); + reloadtable(); + }); + }); + } + //todo entweda 1 od 2 + // $("#example2").reload(); + table = $("#example2").DataTable(); + + // $('#example1').DataTable({ + // "paging": true, + // "lengthChange": false, + // "searching": false, + // "ordering": true, + // "info": true, + // "autoWidth": false, + // }); + + }, 'json'); + } + + reloadtable(); //btn listeners @@ -52,12 +69,39 @@ $(document).ready(function () { $.post('/senddata/wastedata', 'action=newCity&wastetype=' + wastetype + "&cityname=" + cityname + "&wastezone=" + zonename, function (data) { console.log(data); + if (data.status == "inserted") { + Swal.fire({ + type: "success", + title: 'Successfully created city!', + html: 'This alert closes automatically.', + timer: 1000, + }).then((result) => { + console.log('Popup closed. ') + + }); + table.destroy(); + reloadtable(); + } else if (data.status == "exists") { + Swal.fire({ + type: "warning", + title: 'Name already exists in db', + html: 'Close popup.', + }).then((result) => { + console.log('Popup closed. ') + + }); + } + + }, 'json'); //clear form data - var cityname = $("#new_city_cityname").val(""); - var zonename = $("#new_city_zonename").val(""); - var wastetype = $("#dropdown-wastetype").html("select waste type"); + $("#new_city_cityname").val(""); + $("#new_city_zonename").val(""); + $("#dropdown-wastetype").html("select waste type"); + + + //todo reload table. }); diff --git a/src/com/wasteinformationserver/main.java b/src/com/wasteinformationserver/main.java index 35da912..b6b3a94 100644 --- a/src/com/wasteinformationserver/main.java +++ b/src/com/wasteinformationserver/main.java @@ -25,8 +25,13 @@ public class main { Log.message("thread started"); - mqtt m = new mqtt(); - m.notifymessage(); + try{ + mqtt m = new mqtt(); + m.notifymessage(); + }catch (Exception e){ + e.printStackTrace(); + } + } } diff --git a/src/com/wasteinformationserver/website/MainPage.java b/src/com/wasteinformationserver/website/MainPage.java index 7756d32..b21bf11 100644 --- a/src/com/wasteinformationserver/website/MainPage.java +++ b/src/com/wasteinformationserver/website/MainPage.java @@ -1,3 +1,16 @@ +// Dear programmer: +// When I wrote this code, only god and +// I knew how it worked. +// Now, only god knows it! +// +// Therefore, if you are trying to optimize +// this routine and it fails (most surely), +// please increase this counter as a +// warning for the next person: +// +// total hours wasted here = 254 +// + package com.wasteinformationserver.website; import com.sun.net.httpserver.Headers; diff --git a/src/com/wasteinformationserver/website/datarequests/DataRequest.java b/src/com/wasteinformationserver/website/datarequests/DataRequest.java index fd40fda..b2603b8 100644 --- a/src/com/wasteinformationserver/website/datarequests/DataRequest.java +++ b/src/com/wasteinformationserver/website/datarequests/DataRequest.java @@ -21,19 +21,38 @@ public class DataRequest extends PostRequest { JDCB jdcb = new JDCB("users", "kOpaIJUjkgb9ur6S", "wasteinformation"); - ResultSet set = jdcb.executeQuery("select * from cities where name='" + params.get("cityname") + "' AND wastetype='" + params.get("wastetype") + "' AND zone='" + params.get("wastezone") + "'"); + Log.debug(params.get("cityname") + params.get("wastetype") + params.get("wastezone")); + ResultSet set = jdcb.executeQuery("select * from `cities` where `name`='" + params.get("cityname") + "' AND `wastetype`='" + params.get("wastetype") + "' AND `zone`='" + params.get("wastezone") + "'"); + int size = 0; try { - if (set.getFetchSize() == 0) { - //doesnt exist - System.out.println("doesnt exist"); - jdcb.executeUpdate("INSERT INTO `cities`(`userid`, `name`, `wastetype`, `zone`) VALUES ('0','" + params.get("cityname") + "','" + params.get("wastetype") + "','" + params.get("wastezone") + "');"); - } else { - //already exists - System.out.println("already exists"); + if (set != null) { + set.last(); // moves cursor to the last row + size = set.getRow(); // get row id } } catch (SQLException e) { e.printStackTrace(); } + if (size == 0) { + //doesnt exist + System.out.println("doesnt exist"); + int status = jdcb.executeUpdate("INSERT INTO `cities`(`userid`, `name`, `wastetype`, `zone`) VALUES ('0','" + params.get("cityname") + "','" + params.get("wastetype") + "','" + params.get("wastezone") + "');"); + System.out.println(status); + if (status == 1) { + result = "{\"status\" : \"inserted\"}"; + } else { + result = "{\"status\" : \"inserterror\"}"; + } + + } else if (size > 1) { + Log.warning("more than one entry in db!!!"); + result = "{\"status\" : \"exists\"}"; + } else { + //already exists + System.out.println("already exists"); + result = "{\"status\" : \"exists\"}"; + } + + Log.debug(result); break; case "getAllCities": @@ -48,10 +67,11 @@ public class DataRequest extends PostRequest { builder.append("{\"data\":["); try { while (sett.next()) { - builder.append("{\"cityname\":\""+sett.getString("name")+"\""); - builder.append(",\"wastetype\":\""+sett.getString("wastetype")+"\""); - builder.append(",\"zone\":\""+sett.getString("zone")+"\"}"); - if (!sett.isLast()){ + builder.append("{\"cityname\":\"" + sett.getString("name") + "\""); + builder.append(",\"wastetype\":\"" + sett.getString("wastetype") + "\""); + builder.append(",\"id\":\"" + sett.getString("id") + "\""); + builder.append(",\"zone\":\"" + sett.getString("zone") + "\"}"); + if (!sett.isLast()) { builder.append(","); } @@ -61,8 +81,18 @@ public class DataRequest extends PostRequest { e.printStackTrace(); } builder.append("]}"); - result= builder.toString(); + result = builder.toString(); Log.debug(result); + break; + case "deletecity": + //DELETE FROM `cities` WHERE `id`=0 + + JDCB jdcbcc = new JDCB("users", "kOpaIJUjkgb9ur6S", "wasteinformation"); + + Log.debug(params.get("id")); + int status= jdcbcc.executeUpdate("DELETE FROM `cities` WHERE `id`='" + params.get("id")+"'"); + Log.debug(status); + break; } return result; diff --git a/src/com/wasteinformationserver/website/datarequests/login/LoginRequest.java b/src/com/wasteinformationserver/website/datarequests/login/LoginRequest.java index 83a2d63..696de57 100644 --- a/src/com/wasteinformationserver/website/datarequests/login/LoginRequest.java +++ b/src/com/wasteinformationserver/website/datarequests/login/LoginRequest.java @@ -19,7 +19,7 @@ public class LoginRequest extends PostRequest { String username = params.get("username"); ResultSet s = new JDCB("users", "kOpaIJUjkgb9ur6S", "wasteinformation").executeQuery("select * from user where username ='" + username + "'"); - + Log.debug("successfully logged in to db"); String response = "{\"accept\": false}"; try { s.last();