From 958a1040af0a33941e2a0ed7a75724292fd1465d Mon Sep 17 00:00:00 2001 From: InesSuess Date: Tue, 12 Mar 2019 12:54:19 +0100 Subject: [PATCH 01/10] items --- express-server/public/javascripts/ajax.js | 7 ++++++- express-server/public/stylesheets/style.css | 4 ++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/express-server/public/javascripts/ajax.js b/express-server/public/javascripts/ajax.js index 6fd53843..67ffd54c 100644 --- a/express-server/public/javascripts/ajax.js +++ b/express-server/public/javascripts/ajax.js @@ -346,7 +346,12 @@ function Detail() { `); for (let x = 0; x < el.content.length; x++) { const el2 = el.content[x] - $(`.${el.name}`).append(`
`); + $(`.${el.name}`).append(`
+
+
+ ${el2.name}${el2.count} +
+
`); } } lala(); diff --git a/express-server/public/stylesheets/style.css b/express-server/public/stylesheets/style.css index 35569f01..48c2b462 100644 --- a/express-server/public/stylesheets/style.css +++ b/express-server/public/stylesheets/style.css @@ -94,4 +94,8 @@ button:focus{ .btn:focus, .btn:active { outline: none !important; box-shadow: none !important; +} + +.itemcard{ + height: 2%; } \ No newline at end of file From 631e7103d06eda16bfb544b1e881d563c38e8187 Mon Sep 17 00:00:00 2001 From: Georg Reisinger <43533139+GeorgReisinger@users.noreply.github.com> Date: Sat, 16 Mar 2019 18:51:39 +0100 Subject: [PATCH 02/10] fix --- express-server/public/javascripts/login.js | 5 ++--- express-server/views/index.ejs | 4 ++-- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/express-server/public/javascripts/login.js b/express-server/public/javascripts/login.js index 0bedf748..b8338d65 100644 --- a/express-server/public/javascripts/login.js +++ b/express-server/public/javascripts/login.js @@ -22,7 +22,7 @@ function checkAuth() { console.error("Get id token client error: ", error) }); } catch { - console.error("checkAuth error: ") + console.error("checkAuth error: "); } // document.getElementById("loginbutton").style.display = "none"; @@ -31,8 +31,7 @@ function checkAuth() { // document.getElementById("loginbutton").style.display = "block"; console.log("Check Auth error", user) } - }) - var user = firebase.auth().currentUser; + }); } window.onload = function () { checkAuth(); diff --git a/express-server/views/index.ejs b/express-server/views/index.ejs index 7c793ec7..a634c995 100644 --- a/express-server/views/index.ejs +++ b/express-server/views/index.ejs @@ -16,9 +16,9 @@ - + - + From 51bcef67fe409e365a8d7f531c1327ef71db29fb Mon Sep 17 00:00:00 2001 From: Lukas Nowy Date: Sun, 17 Mar 2019 16:12:12 +0100 Subject: [PATCH 03/10] message ids array --- express-server/db-connect/db-connect.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/express-server/db-connect/db-connect.js b/express-server/db-connect/db-connect.js index 4b0b1521..cba9bfa0 100644 --- a/express-server/db-connect/db-connect.js +++ b/express-server/db-connect/db-connect.js @@ -11,8 +11,9 @@ const stringSimilarity = require('string-similarity'); async function updateUser(uid, mid, name, picture, email) { try { - await nonQuery('INSERT INTO "User" (username, message_id, name, picture, email) VALUES ($1, $2, $3, $4, $5);', [uid, mid, name, picture, email]); - + await nonQuery('INSERT INTO "User" (username, name, picture, email) VALUES ($1, $2, $3, $4);', [uid, name, picture, email]); + await nonQuery('UPDATE "User" SET message_id = array_append(message_id, $1) WHERE username = $2 ;', [mid, uid]); + } catch (error) { console.error(error); } From 8ec2f559ea220536fd06d3e02e60599ec704f353 Mon Sep 17 00:00:00 2001 From: Georg Reisinger <43533139+GeorgReisinger@users.noreply.github.com> Date: Mon, 18 Mar 2019 09:47:59 +0100 Subject: [PATCH 04/10] Revert "message ids array" This reverts commit 51bcef67fe409e365a8d7f531c1327ef71db29fb. --- express-server/db-connect/db-connect.js | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/express-server/db-connect/db-connect.js b/express-server/db-connect/db-connect.js index cba9bfa0..4b0b1521 100644 --- a/express-server/db-connect/db-connect.js +++ b/express-server/db-connect/db-connect.js @@ -11,9 +11,8 @@ const stringSimilarity = require('string-similarity'); async function updateUser(uid, mid, name, picture, email) { try { - await nonQuery('INSERT INTO "User" (username, name, picture, email) VALUES ($1, $2, $3, $4);', [uid, name, picture, email]); - await nonQuery('UPDATE "User" SET message_id = array_append(message_id, $1) WHERE username = $2 ;', [mid, uid]); - + await nonQuery('INSERT INTO "User" (username, message_id, name, picture, email) VALUES ($1, $2, $3, $4, $5);', [uid, mid, name, picture, email]); + } catch (error) { console.error(error); } From a95806f3d069bb19b57d0634655cce29ee469a0a Mon Sep 17 00:00:00 2001 From: Lukas Nowy Date: Mon, 18 Mar 2019 18:05:01 +0100 Subject: [PATCH 05/10] message id fix --- express-server/db-connect/db-connect.js | 40 +++++++++++++++---------- 1 file changed, 25 insertions(+), 15 deletions(-) diff --git a/express-server/db-connect/db-connect.js b/express-server/db-connect/db-connect.js index cba9bfa0..b24bf00a 100644 --- a/express-server/db-connect/db-connect.js +++ b/express-server/db-connect/db-connect.js @@ -11,8 +11,7 @@ const stringSimilarity = require('string-similarity'); async function updateUser(uid, mid, name, picture, email) { try { - await nonQuery('INSERT INTO "User" (username, name, picture, email) VALUES ($1, $2, $3, $4);', [uid, name, picture, email]); - await nonQuery('UPDATE "User" SET message_id = array_append(message_id, $1) WHERE username = $2 ;', [mid, uid]); + await nonQuery('INSERT INTO "User" (username, name, picture, email, message_id) VALUES ($1, $2, $3, $4, $5);', [uid, name, picture, email, mid]); } catch (error) { console.error(error); @@ -297,7 +296,7 @@ async function moveDoneItems(uid, sl_id, billcontent) { for (let item of removeableItems) { await nonQuery('INSERT INTO "Done_Purchase" (purchased_item_id, username, name, date, count) VALUES($1,$2,$3,$4,$5);', - [generate_item_id(), uid, item.name, today, 1]); + [generate_item_id(), uid, item.name, today, item.count]); } @@ -514,17 +513,14 @@ function compareData(listitems, doneitems) { let output = []; for (let item of listitems) { - if (doneitems.includes(item.name)) { + + if (probability(item.name, doneitems).best > 0.6) { + output.push({item: item, count: probability(item.name, doneitems).count}); + } else if (probability(item.name.toUpperCase(), doneitems.toUpperCase()).best > 0.6) { + output.push({item: item, count: probability(item.name, doneitems).count}); output.push(item); - } else if (doneitems.toUpperCase().includes(item.name.toUpperCase())) { - output.push(item); - } else if (doneitems.toLowerCase().includes(item.name.toLowerCase())) { - output.push(item); - } else if (probability(item.name, doneitems) > 0.6) { - output.push(item); - } else if (probability(item.name.toUpperCase(), doneitems.toUpperCase()) > 0.6) { - output.push(item); - } else if (probability(item.name.toLowerCase(), doneitems.toLowerCase()) > 0.6) { + } else if (probability(item.name.toLowerCase(), doneitems.toLowerCase()).best > 0.6) { + output.push({item: item, count: probability(item.name, doneitems).count}); output.push(item); } } @@ -533,19 +529,33 @@ function compareData(listitems, doneitems) { } function probability(cur_item, data) { - let best = 0; + let pos; + let count = 0; + let numbers = "123456789"; + for (let i = 0; i < data.length; i++) { let prob = stringSimilarity.compareTwoStrings(cur_item, data.slice(i, i + cur_item.length)); if (prob > best) { best = prob; + pos = i; } } - return best; + for(let i = pos; i >= 0; i--) { + if(numbers.includes(data.charAt(i)) == true) { + count = data.charAt(i); + break; + } + + } + + return { + best: best, count: count + }; } From f31b24afb93fa619c65cfe1998c3cc47d247275c Mon Sep 17 00:00:00 2001 From: Georg Reisinger <43533139+GeorgReisinger@users.noreply.github.com> Date: Mon, 18 Mar 2019 18:05:11 +0100 Subject: [PATCH 06/10] Push MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit getMessageIds wurde der sql reperiert in push wurde sendMultiplePush hinzugefügt, aber noch fehlerhaft --- express-server/db-connect/db-connect.js | 23 +++++++++++++++----- express-server/push/push.js | 29 ++++++++++++++++++++++--- express-server/routes/index.js | 1 + 3 files changed, 45 insertions(+), 8 deletions(-) diff --git a/express-server/db-connect/db-connect.js b/express-server/db-connect/db-connect.js index 4b0b1521..ebd77dff 100644 --- a/express-server/db-connect/db-connect.js +++ b/express-server/db-connect/db-connect.js @@ -1,3 +1,8 @@ +var push = require('../push/push.js') +// var axios = require('axios') + + + const { query, nonQuery @@ -6,7 +11,6 @@ const { const stringSimilarity = require('string-similarity'); - //Create User Info async function updateUser(uid, mid, name, picture, email) { @@ -20,8 +24,8 @@ async function updateUser(uid, mid, name, picture, email) { async function getmessageids(sl_id) { try { - let members = query('SELECT * FROM "Shoppinglist_member" WHERE sl_id = $1;', [sl_id]); - let admin = query('SELECT * FROM "Shoppinglist_admin" WHERE sl_id = $1;', [sl_id]); + let members = await query('SELECT row_to_json("User") AS obj FROM "Shoppinglist_member" JOIN "User" USING (username) WHERE sl_id = $1;', [sl_id]); + let admin = await query('SELECT row_to_json("User") AS obj FROM "Shoppinglist_admin" JOIN "User" USING (username) WHERE sl_id = $1;', [sl_id]); return users_to_array(admin, members); } catch (error) { @@ -141,6 +145,8 @@ async function editShoppinglist(sl_id, newname, newdescription, newcolor) { } catch (error) { console.error(error); } + + } /*async function generateUser() { @@ -193,6 +199,13 @@ async function addGroup(sl_id, name, color, hidden) { } catch (error) { console.error(error); } + var message_ids = await getmessageids(sl_id); + // for(var i = 0; i< message_ids.length(); i++){ + // console.log("msg to send: ", message_ids[i]) + // push.sendPush(message_ids[i], title, text); + // } + // push.sendPush(message_ids[0], "test", "test") + push.sendMultiplePush(message_ids, shoppinglist.name + " Gruppe wurde hinzugefügt!", "Zu " + shoppinglist.name + " wurde die Gruppe " + name + " hinzugefügt!"); } //add item into group @@ -497,10 +510,10 @@ function generateInviteLink() { function users_to_array(admin, members) { let users = []; - users.push(admin.username); + users.push(admin[0].message_id); for (let item of members) { - users.push(item.username); + users.push(item.message_id); } return users; diff --git a/express-server/push/push.js b/express-server/push/push.js index 7f2d5457..399b8910 100644 --- a/express-server/push/push.js +++ b/express-server/push/push.js @@ -1,6 +1,8 @@ - +var admin = require('firebase-admin'); function sendPush(msgtoken, title, text){ + + var message = { notification: { title: title, @@ -9,7 +11,7 @@ function sendPush(msgtoken, title, text){ token: msgtoken }; - firebaseAdmin.messaging().send(message) + admin.messaging().send(message) .then(function(response) { // See the MessagingDevicesResponse reference documentation for // the contents of response. @@ -20,6 +22,27 @@ function sendPush(msgtoken, title, text){ }); } + +function sendMultiplePush(message_ids, title, text){ + console.log(message_ids) + var message = { + data: { + title: title, + body: text + }, + tokens: message_ids + }; + + admin.messaging().sendMulticast(message) + .then(function(response) { + // See the MessagingDevicesResponse reference documentation for + // the contents of response. + console.log('Successfully sent message:', response); + }) + .catch(function(error) { + console.log('Error sending message:', error); + }); +} module.exports = { - sendPush + sendPush,sendMultiplePush } \ No newline at end of file diff --git a/express-server/routes/index.js b/express-server/routes/index.js index 5a38a682..b32cd2cb 100644 --- a/express-server/routes/index.js +++ b/express-server/routes/index.js @@ -17,6 +17,7 @@ var firebaseAdmin = admin.initializeApp({ //Push router.get('/push/:msgtoken/:message/:title', function (req, res, next) { + push.sendPush(req.params.msgtoken, req.params.title, req.params.message); var sender = "Message Token: " + req.params.msgtoken + " Message: " + req.params.message + " Title: " + req.params.title; res.status(200).send(sender); From 78997fdd83c6bc53ffe6f73e6234b54ef6785752 Mon Sep 17 00:00:00 2001 From: Lukas Nowy Date: Mon, 18 Mar 2019 18:14:54 +0100 Subject: [PATCH 07/10] ocr scan anzahl v.1 --- express-server/db-connect/db-connect.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/express-server/db-connect/db-connect.js b/express-server/db-connect/db-connect.js index b24bf00a..0d65271b 100644 --- a/express-server/db-connect/db-connect.js +++ b/express-server/db-connect/db-connect.js @@ -296,7 +296,7 @@ async function moveDoneItems(uid, sl_id, billcontent) { for (let item of removeableItems) { await nonQuery('INSERT INTO "Done_Purchase" (purchased_item_id, username, name, date, count) VALUES($1,$2,$3,$4,$5);', - [generate_item_id(), uid, item.name, today, item.count]); + [generate_item_id(), uid, item.item.name, today, item.count]); } From 8b0a30c3cfe7115fbd675e9523f2e14be1117c3a Mon Sep 17 00:00:00 2001 From: Georg Reisinger <43533139+GeorgReisinger@users.noreply.github.com> Date: Mon, 18 Mar 2019 18:39:43 +0100 Subject: [PATCH 08/10] Push Fix --- express-server/db-connect/db-connect.js | 10 ++++++---- express-server/push/push.js | 23 +++-------------------- 2 files changed, 9 insertions(+), 24 deletions(-) diff --git a/express-server/db-connect/db-connect.js b/express-server/db-connect/db-connect.js index 0d65271b..42a03e44 100644 --- a/express-server/db-connect/db-connect.js +++ b/express-server/db-connect/db-connect.js @@ -1,3 +1,4 @@ +var push = require('../push/push'); const { query, nonQuery @@ -20,8 +21,8 @@ async function updateUser(uid, mid, name, picture, email) { async function getmessageids(sl_id) { try { - let members = query('SELECT * FROM "Shoppinglist_member" WHERE sl_id = $1;', [sl_id]); - let admin = query('SELECT * FROM "Shoppinglist_admin" WHERE sl_id = $1;', [sl_id]); + let members = await query('SELECT row_to_json("User") AS obj FROM "Shoppinglist_member" JOIN "User" USING (username) WHERE sl_id = $1;', [sl_id]); + let admin = await query('SELECT row_to_json("User") AS obj FROM "Shoppinglist_admin" JOIN "User" USING (username) WHERE sl_id = $1;', [sl_id]); return users_to_array(admin, members); } catch (error) { @@ -193,6 +194,7 @@ async function addGroup(sl_id, name, color, hidden) { } catch (error) { console.error(error); } + push.sendMultiplePush(await getmessageids(sl_id), "Gruppe wurde hinzugefügt!", "Zu " + name + " wurde die Gruppe " + name + " hinzugefügt!"); } //add item into group @@ -497,10 +499,10 @@ function generateInviteLink() { function users_to_array(admin, members) { let users = []; - users.push(admin.username); + users.push(admin[0].message_id); for (let item of members) { - users.push(item.username); + users.push(item.message_id); } return users; diff --git a/express-server/push/push.js b/express-server/push/push.js index 399b8910..4f3419a8 100644 --- a/express-server/push/push.js +++ b/express-server/push/push.js @@ -1,8 +1,6 @@ var admin = require('firebase-admin'); function sendPush(msgtoken, title, text){ - - var message = { notification: { title: title, @@ -24,24 +22,9 @@ function sendPush(msgtoken, title, text){ } function sendMultiplePush(message_ids, title, text){ - console.log(message_ids) - var message = { - data: { - title: title, - body: text - }, - tokens: message_ids - }; - - admin.messaging().sendMulticast(message) - .then(function(response) { - // See the MessagingDevicesResponse reference documentation for - // the contents of response. - console.log('Successfully sent message:', response); - }) - .catch(function(error) { - console.log('Error sending message:', error); - }); + for(var i = 0; i < message_ids.length; i++){ + sendPush(message_ids[i], title, text); + } } module.exports = { sendPush,sendMultiplePush From 1ac6fe8cbd4efe4b6cfbbbe3f84dd01c517231ce Mon Sep 17 00:00:00 2001 From: Georg Reisinger <43533139+GeorgReisinger@users.noreply.github.com> Date: Mon, 18 Mar 2019 18:43:21 +0100 Subject: [PATCH 09/10] Weitere Push Nachrichten Group Add/delete/update Item Add/delete/update haben jetzt Push --- express-server/db-connect/db-connect.js | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/express-server/db-connect/db-connect.js b/express-server/db-connect/db-connect.js index 42a03e44..6ee9e470 100644 --- a/express-server/db-connect/db-connect.js +++ b/express-server/db-connect/db-connect.js @@ -194,7 +194,7 @@ async function addGroup(sl_id, name, color, hidden) { } catch (error) { console.error(error); } - push.sendMultiplePush(await getmessageids(sl_id), "Gruppe wurde hinzugefügt!", "Zu " + name + " wurde die Gruppe " + name + " hinzugefügt!"); + push.sendMultiplePush(await getmessageids(sl_id), "Gruppe wurde hinzugefügt!", "Die Gruppe " + name + " wurde hinzugefügt!"); } //add item into group @@ -206,6 +206,7 @@ async function addItem(group_id, sl_id, name, count) { } catch (error) { console.error(error); } + push.sendMultiplePush(await getmessageids(sl_id), "Item wurde hinzugefügt!", "Das Item " + name + " wurde hinzugefügt!"); } //Edit Group @@ -228,6 +229,8 @@ async function editGroup(sl_id, group_id, name, color, hidden) { } catch (error) { console.error(error); } + + push.sendMultiplePush(await getmessageids(sl_id), "Gruppe wurde bearbeitet!", "Die Gruppe " + name + " wurde bearbeitet!"); } //Edit Item @@ -247,6 +250,7 @@ async function editItem(sl_id, group_id, item_id, name, count) { } catch (error) { console.error(error); } + push.sendMultiplePush(await getmessageids(sl_id), "Item wurde bearbeitet!", "Das Item " + name + " wurde bearbeitet!"); } //Delete Group @@ -261,6 +265,8 @@ async function deleteGroup(group_id, sl_id) { } catch (error) { console.error(error); } + + push.sendMultiplePush(await getmessageids(sl_id), "Gruppe wurde gelöscht!", "Die Gruppe " + name + " wurde gelöscht!"); } //Delete Item @@ -271,6 +277,7 @@ async function deleteItem(item_id, group_id, sl_id) { } catch (error) { console.error(error); } + push.sendMultiplePush(await getmessageids(sl_id), "Item wurde gelöscht!", "Das Item " + name + " wurde gelöscht!"); } //Move to Done Purchases (delete items from shoppinglist & move into done_purchases table) From cba534ccedba20fa7d93cf50786aa16e07dd6a03 Mon Sep 17 00:00:00 2001 From: Lukas Nowy Date: Mon, 18 Mar 2019 22:48:21 +0100 Subject: [PATCH 10/10] Remove Items automatically finished --- express-server/db-connect/db-connect.js | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/express-server/db-connect/db-connect.js b/express-server/db-connect/db-connect.js index 6ee9e470..cd10b6a1 100644 --- a/express-server/db-connect/db-connect.js +++ b/express-server/db-connect/db-connect.js @@ -303,18 +303,22 @@ async function moveDoneItems(uid, sl_id, billcontent) { today = mm + '/' + dd + '/' + yyyy; + //Insert Into Done Purchases Table for (let item of removeableItems) { await nonQuery('INSERT INTO "Done_Purchase" (purchased_item_id, username, name, date, count) VALUES($1,$2,$3,$4,$5);', [generate_item_id(), uid, item.item.name, today, item.count]); } + //Update count From Item Table for (let item of removeableItems) { - await nonQuery('DELETE FROM "Item" WHERE item_id = $1 AND group_id = $2 AND sl_id = $3;', [item.item_id, item.group_id, item.sl_id]); - console.log(item); - + await nonQuery('UPDATE "Item" SET count = count - $4 WHERE item_id = $1 AND group_id = $2 AND sl_id = $3;', [item.item.item_id, item.item.group_id, item.item.sl_id, item.count]); } + //Chech if item count = 0 and delete + + await nonQuery('DELETE FROM "Item" WHERE count = 0;') + return "done" } catch (error) { console.error(error);