From d5060d96f0c36e2d25e1ece7d9028bd0bbd3f216 Mon Sep 17 00:00:00 2001 From: Lukas Nowy Date: Mon, 19 Nov 2018 17:18:04 +0100 Subject: [PATCH] =?UTF-8?q?einkaufslisten=20=C3=BCbersicht,=20detailansich?= =?UTF-8?q?t?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- express-server/db-connect/db-connect.js | 35 ++++++++++++- express-server/public/javascripts/ajax.js | 5 -- express-server/public/javascripts/test.js | 27 ++++++++++ express-server/public/stylesheets/test.css | 0 express-server/routes/index.js | 20 ++++++-- express-server/views/index.ejs | 1 - express-server/views/index1.ejs | 60 ++++++++++++++++------ 7 files changed, 120 insertions(+), 28 deletions(-) create mode 100644 express-server/public/javascripts/test.js create mode 100644 express-server/public/stylesheets/test.css diff --git a/express-server/db-connect/db-connect.js b/express-server/db-connect/db-connect.js index f18f39a8..ea01d163 100644 --- a/express-server/db-connect/db-connect.js +++ b/express-server/db-connect/db-connect.js @@ -79,6 +79,20 @@ async function generateUser() { } } +async function displayShoppinglist(sl_id) { + try { + let groups = await query('SELECT row_to_json("Group") AS obj FROM "Group" JOIN "Shoppinglist" USING (sl_id) WHERE sl_id = $1;', [sl_id]); + let items = await query('SELECT row_to_json("Item") AS obj FROM "Item" JOIN "Group" USING (group_id) WHERE "Group".sl_id = $1;', [sl_id]); + return items_in_groups(groups, items); + + + } + + catch (error) { + console.error(error); + } +} + //sl_id generieren function generate_sl_id() { @@ -92,6 +106,23 @@ function generate_sl_id() { return output; } -module.exports = { - getShoppinglistsAdmin, getShoppinglistsShared, newShoppinglist +function items_in_groups(groups, items) { + + let result = []; + + for(let item of groups) { + + result.push({ + group_id: item.group_id, + name: item.name, + color: item.color, + content: items.filter(function(obj) {return obj.group_id == item.group_id}) + }); + } + + return result; +} + +module.exports = { + getShoppinglistsAdmin, getShoppinglistsShared, newShoppinglist, displayShoppinglist } diff --git a/express-server/public/javascripts/ajax.js b/express-server/public/javascripts/ajax.js index af181a4d..065cf1c9 100644 --- a/express-server/public/javascripts/ajax.js +++ b/express-server/public/javascripts/ajax.js @@ -28,9 +28,4 @@ $(document).ready(function() { }); }); - - - - - }); \ No newline at end of file diff --git a/express-server/public/javascripts/test.js b/express-server/public/javascripts/test.js new file mode 100644 index 00000000..c0f784c4 --- /dev/null +++ b/express-server/public/javascripts/test.js @@ -0,0 +1,27 @@ +$(document).ready(function() { + $.ajax({ + type: "GET", + url: "/myshoppinglists", + success(data) { + for(let item of data) { + $(".tb_myshoppinglists").append("" + item.name + "" + item.description + + " forward"); + } + } + }); + + $.ajax({ + type: "GET", + url: "/sharedshoppinglists", + success(data) { + for(let item of data) { + $(".tb_sharedshoppinglists").append("" + item.name + "" + item.description + + " forward"); + } + } + }); + + $(document).on("click", ".btn_detail", function() { + window.location.replace("/shoppinglist/" + $(this).closest("tr").attr("id")); + }); +}); \ No newline at end of file diff --git a/express-server/public/stylesheets/test.css b/express-server/public/stylesheets/test.css new file mode 100644 index 00000000..e69de29b diff --git a/express-server/routes/index.js b/express-server/routes/index.js index 81d0ad36..ec9c306c 100644 --- a/express-server/routes/index.js +++ b/express-server/routes/index.js @@ -63,7 +63,7 @@ router.get("/myshoppinglists", async function(req, res, next) { try { //Get user id: req.session.passport.user.profile.id - res.status(200).send(await postgres.getShoppinglistsAdmin("testuser")); + res.status(200).send(await postgres.getShoppinglistsAdmin("testuser1")); } catch(err) { @@ -77,7 +77,7 @@ router.get("/myshoppinglists", async function(req, res, next) { router.get("/sharedshoppinglists", async function(req, res, next) { try { //Get user id: req.session.passport.user.profile.id - res.status(200).send(await postgres.getShoppinglistsShared("testuser")); + res.status(200).send(await postgres.getShoppinglistsShared("testuser1")); } catch(err) { @@ -90,7 +90,19 @@ router.get("/sharedshoppinglists", async function(req, res, next) { router.post("/shoppinglist", async function(req, res, next) { try { - res.status(200).send(await postgres.newShoppinglist(req.body.name, req.body.description, "testuser")); + res.status(200).send(await postgres.newShoppinglist(req.body.name, req.body.description, "testuser1")); + } + + catch(err) { + res.status(400).send(await err); + } +}); + +//GET Shoppinglist detail + +router.get("/shoppinglist/:sl_id", async (req, res) => { + try { + res.status(200).send(await postgres.displayShoppinglist(req.params.sl_id)); } catch(err) { @@ -99,7 +111,7 @@ router.post("/shoppinglist", async function(req, res, next) { }); router.get("/test1", (req, res) => { - res.send(req.user); + res.render("index1"); }); module.exports = router; diff --git a/express-server/views/index.ejs b/express-server/views/index.ejs index 7d5f4c2b..b75ef06e 100644 --- a/express-server/views/index.ejs +++ b/express-server/views/index.ejs @@ -67,7 +67,6 @@ - Meine Einkaufslisten anzeigen
diff --git a/express-server/views/index1.ejs b/express-server/views/index1.ejs index 6d18ef62..6813f8ac 100644 --- a/express-server/views/index1.ejs +++ b/express-server/views/index1.ejs @@ -1,20 +1,48 @@ - - - - - - - - - Meine Einkaufslisten anzeigen
- Mit mir geteilte Einkaufslisten anzeigen
- Einkaufsliste erstellen
- Logout - - - - + + + + + + + + + + +
+

Logged in as: testuser1

+
+
+

My Shoppinglists

+ + + + + + + +
NameDescriptionOpen
+
+ +
+

Shared Shoppinglists

+ + + + + + + +
NameDescriptionOpen
+
+
+
+ + + + + + \ No newline at end of file