This commit is contained in:
LukasNowy 2019-03-19 09:45:36 +01:00
commit 8c01024d99
7 changed files with 70 additions and 31 deletions

View File

@ -1,3 +1,4 @@
var push = require('../push/push');
const {
query,
nonQuery
@ -11,8 +12,8 @@ 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, message_id) VALUES ($1, $2, $3, $4, $5);', [uid, name, picture, email, mid]);
} catch (error) {
console.error(error);
}
@ -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!", "Die Gruppe " + name + " wurde hinzugefügt!");
}
//add item into group
@ -204,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
@ -226,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
@ -245,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
@ -259,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
@ -269,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)
@ -294,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.name, today, 1]);
[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);
@ -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;
@ -513,17 +526,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);
}
}
@ -532,19 +542,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
};
}

View File

@ -346,7 +346,12 @@ function Detail() {
`);
for (let x = 0; x < el.content.length; x++) {
const el2 = el.content[x]
$(`.${el.name}`).append(`<div class="collapse" id="${el.name}"><ul><li>${el2.count}x ${el2.name}</li></ul></div>`);
$(`.${el.name}`).append(`<div class="collapse" id="${el.name}">
<div class="card itemcard" style="background-color: transparent; ">
<div class="card-body">
${el2.name}${el2.count}
</div>
</div>`);
}
}
lala();

View File

@ -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();

View File

@ -94,4 +94,8 @@ button:focus{
.btn:focus, .btn:active {
outline: none !important;
box-shadow: none !important;
}
.itemcard{
height: 2%;
}

View File

@ -1,4 +1,4 @@
var admin = require('firebase-admin');
function sendPush(msgtoken, title, text){
var message = {
@ -9,7 +9,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 +20,12 @@ function sendPush(msgtoken, title, text){
});
}
function sendMultiplePush(message_ids, title, text){
for(var i = 0; i < message_ids.length; i++){
sendPush(message_ids[i], title, text);
}
}
module.exports = {
sendPush
sendPush,sendMultiplePush
}

View File

@ -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);

View File

@ -16,9 +16,9 @@
<input v-model="email" id="email" type="email">
<input v-model="password" id="password" type="password">
<button id="loginemailbutton" @click="loginemail()">Login with Email</button>
<button id="loginemailbutton" @click="loginemail">Login with Email</button>
<button id="loginbutton" @click="login()">Login with google</button>
<button id="loginbutton" @click="login">Login with google</button>
<a href="/registrieren"><button>Jetzt mit Email und Passwort Registrieren!</button></a>