Merge branch 'master' of https://github.com/LukasNowy/SmartShopper
This commit is contained in:
commit
70fdcbab4c
27
express-server/public/firebase-messaging-sw.js
Normal file
27
express-server/public/firebase-messaging-sw.js
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
// Give the service worker access to Firebase Messaging.
|
||||||
|
// Note that you can only use Firebase Messaging here, other Firebase libraries
|
||||||
|
// are not available in the service worker.
|
||||||
|
importScripts('https://www.gstatic.com/firebasejs/4.8.1/firebase-app.js');
|
||||||
|
importScripts('https://www.gstatic.com/firebasejs/4.8.1/firebase-messaging.js');
|
||||||
|
|
||||||
|
// Initialize the Firebase app in the service worker by passing in the
|
||||||
|
// messagingSenderId.
|
||||||
|
firebase.initializeApp({
|
||||||
|
'messagingSenderId': 'YOUR-SENDER-ID'
|
||||||
|
});
|
||||||
|
|
||||||
|
// Retrieve an instance of Firebase Messaging so that it can handle background
|
||||||
|
// messages.
|
||||||
|
const messaging = firebase.messaging();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
messaging.setBackgroundMessageHandler(payload => {
|
||||||
|
// const title = payload.data.title
|
||||||
|
// const options = {
|
||||||
|
// body: payload.data.text
|
||||||
|
// }
|
||||||
|
// return self.registration.showNotification(title, options)
|
||||||
|
const title = payload.data.title
|
||||||
|
new Notification(title, { body: payload.data.text});
|
||||||
|
})
|
@ -8,9 +8,11 @@ var config = {
|
|||||||
messagingSenderId: "221332577314"
|
messagingSenderId: "221332577314"
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
firebase.initializeApp(config);
|
firebase.initializeApp(config);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
$(document).ready(function() {
|
$(document).ready(function() {
|
||||||
firebase.auth().onAuthStateChanged(async function(user){if(user){firebase.auth().currentUser.getIdToken(/* forceRefresh */ true).then(function(idtoken) {
|
firebase.auth().onAuthStateChanged(async function(user){if(user){firebase.auth().currentUser.getIdToken(/* forceRefresh */ true).then(function(idtoken) {
|
||||||
console.log("/shoppinglistx idtoken:", idtoken);
|
console.log("/shoppinglistx idtoken:", idtoken);
|
||||||
@ -116,17 +118,19 @@ function eigeneEinkaufslisten(){
|
|||||||
idtoken: idtoken
|
idtoken: idtoken
|
||||||
},
|
},
|
||||||
success(data){
|
success(data){
|
||||||
let userinfo = "jhsbdjhf";
|
const userinfo = data.name;
|
||||||
// console.log(userinfo);
|
const picture = data.picture;
|
||||||
|
console.log(data)
|
||||||
for(let i = 0; i < res.length; i++){
|
for(let i = 0; i < res.length; i++){
|
||||||
const el = res[i];
|
const el = res[i];
|
||||||
|
|
||||||
$(".listen-ausgabe").append(`<div class="col-md-12 karten">
|
$(".listen-ausgabe").append(`<div class="col-md-12 karten">
|
||||||
<div class="card border-light mb-3" style="max-width: 18rem;" id="${el.sl_id}">
|
<div class="card border-light mb-3" style="max-width: 18rem;" id="${el.sl_id}">
|
||||||
<div class="card-header">
|
<div class="card-header">
|
||||||
<span>${userinfo}</span>
|
<span>
|
||||||
<button class="btn edit"><i class="fas fa-angle-down"></i></button>
|
<img src="${picture}" alt="Avatar" style="width:10%; border-radius: 50%;">
|
||||||
|
${userinfo}</span>
|
||||||
|
<button class="btn edit"><i class="fas fa-pencil-alt "></i></button>
|
||||||
<button class="btn trash"><i class="far fa-trash-alt"></i></button>
|
<button class="btn trash"><i class="far fa-trash-alt"></i></button>
|
||||||
<button class="btn groupadd" data-toggle="modal" data-target=".ListenDetailAdd"><i class="fas fa-ellipsis-v"></i></button>
|
<button class="btn groupadd" data-toggle="modal" data-target=".ListenDetailAdd"><i class="fas fa-ellipsis-v"></i></button>
|
||||||
</div>
|
</div>
|
||||||
@ -246,7 +250,28 @@ function Detail(){
|
|||||||
|
|
||||||
const neu = result.filter(obj => obj.sl_id === id);
|
const neu = result.filter(obj => obj.sl_id === id);
|
||||||
|
|
||||||
$(".card-header").append(`<h1 class="text-center">${neu[0].name}</h1><button class="btn itemadd"><ion-icon name="more" size="large"></ion-icon></button>
|
var link = "/dash/"+idtoken;
|
||||||
|
|
||||||
|
//ITEM ADD
|
||||||
|
// von Card Header Kopiert
|
||||||
|
|
||||||
|
// <a href="" class="itemadd">
|
||||||
|
// <i class="fas fa-plus"></i>
|
||||||
|
// </a>
|
||||||
|
|
||||||
|
$(".card-header").append(`
|
||||||
|
<a href="${link}" style="left: 5px; margin-top: -50px">
|
||||||
|
<i class="fas fa-caret-left"></i>
|
||||||
|
</a>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<h1 class="text-center">
|
||||||
|
${neu[0].name}
|
||||||
|
</h1>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
`);
|
`);
|
||||||
for (let i = 0; i < res.length; i++) {
|
for (let i = 0; i < res.length; i++) {
|
||||||
const el = res[i];
|
const el = res[i];
|
||||||
|
32
express-server/public/javascripts/firebase-app.js
Normal file
32
express-server/public/javascripts/firebase-app.js
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
|
||||||
|
// Initialize Firebase
|
||||||
|
// const firebaseconfig = {
|
||||||
|
// apiKey: "AIzaSyCuvwf78cmSDoZ2yS4XxHZhnjUn7yIHYfw",
|
||||||
|
// authDomain: "test-667ca.firebaseapp.com",
|
||||||
|
// databaseURL: "https://test-667ca.firebaseio.com",
|
||||||
|
// projectId: "test-667ca",
|
||||||
|
// storageBucket: "test-667ca.appspot.com",
|
||||||
|
// messagingSenderId: "221332577314"
|
||||||
|
// };
|
||||||
|
// firebase.initializeApp(firebaseconfig);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
var msg = firebase.messaging();
|
||||||
|
msg.requestPermission()
|
||||||
|
.then(function(){
|
||||||
|
console.log("Zugriff auf msg")
|
||||||
|
return msg.getToken();
|
||||||
|
})
|
||||||
|
.then(token => {
|
||||||
|
console.log("MSG TOKEN: ", token)
|
||||||
|
|
||||||
|
})
|
||||||
|
.catch(err => {
|
||||||
|
console.error("Msg Error: ", err)
|
||||||
|
})
|
||||||
|
|
||||||
|
msg.onMessage(payload => {
|
||||||
|
const title = payload.data.title
|
||||||
|
new Notification(title, { body: payload.data.text});
|
||||||
|
})
|
@ -27,6 +27,33 @@ var firebaseAdmin = admin.initializeApp({
|
|||||||
databaseURL: 'https://test-667ca.firebaseio.com'
|
databaseURL: 'https://test-667ca.firebaseio.com'
|
||||||
});
|
});
|
||||||
|
|
||||||
|
function sendPush(msgtoken, title, text){
|
||||||
|
var message = {
|
||||||
|
data: {
|
||||||
|
title: title,
|
||||||
|
text: text
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
firebaseAdmin.messaging().sendToDevice(msgtoken, 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);
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
//Push
|
||||||
|
router.get('/push/:msgtoken', function (req, res, next) {
|
||||||
|
sendPush(req.params.msgtoken, "Update", "Einkaufsliste wurde geändert")
|
||||||
|
res.status(200)
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
// Login und Dash
|
// Login und Dash
|
||||||
router.get('/', function(req, res, next) {
|
router.get('/', function(req, res, next) {
|
||||||
@ -35,8 +62,8 @@ router.get('/', function(req, res, next) {
|
|||||||
|
|
||||||
|
|
||||||
router.get('/dash/:idtoken', function(req, res, next) {
|
router.get('/dash/:idtoken', function(req, res, next) {
|
||||||
|
// const msgtoken = req.params.msgtoken;
|
||||||
var token = req.params.idtoken;
|
const token = req.params.idtoken;
|
||||||
var uid;
|
var uid;
|
||||||
firebaseAdmin.auth().verifyIdToken(token)
|
firebaseAdmin.auth().verifyIdToken(token)
|
||||||
.then(function(decodedToken) {
|
.then(function(decodedToken) {
|
||||||
@ -50,14 +77,11 @@ router.get('/dash/:idtoken', function(req, res, next) {
|
|||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
res.render('dash');
|
res.render('dash');
|
||||||
});
|
});
|
||||||
|
|
||||||
router.get('/logout', (req, res, next) => {
|
|
||||||
|
|
||||||
|
|
||||||
});
|
|
||||||
|
|
||||||
|
|
||||||
// SmartShopper
|
// SmartShopper
|
||||||
|
|
||||||
@ -126,6 +150,7 @@ router.post("/shoppinglist", async function(req, res, next) {
|
|||||||
try {
|
try {
|
||||||
|
|
||||||
res.status(200).send(await postgres.newShoppinglist(req.body.name, req.body.description, uid, req.body.color));
|
res.status(200).send(await postgres.newShoppinglist(req.body.name, req.body.description, uid, req.body.color));
|
||||||
|
sendPush("enG4tJ6LyyU:APA91bEYjUEs7Sdzvu2ivgfqtpzlg42BZLlujDSRg0WLBvfZ_oD4V7cTx2o6MVr4oAdeHaK0wttPMQ85GMMOkgM7xvbHFcwXUG4MCr8JXX16S-OV2CS4ikQ286DOHPtBotbM7pqFTvIM", "Einkaufsliste " + req.body.name + " wurde erstellt!", req.body.description)
|
||||||
}
|
}
|
||||||
|
|
||||||
catch(err) {
|
catch(err) {
|
||||||
@ -162,6 +187,7 @@ router.get("/shoppinglist_json/:sl_id", async (req, res) => {
|
|||||||
router.delete("/shoppinglist", async (req, res) => {
|
router.delete("/shoppinglist", async (req, res) => {
|
||||||
try {
|
try {
|
||||||
res.status(200).send(await postgres.deleteShoppinglist(req.body.sl_id));
|
res.status(200).send(await postgres.deleteShoppinglist(req.body.sl_id));
|
||||||
|
sendPush("enG4tJ6LyyU:APA91bEYjUEs7Sdzvu2ivgfqtpzlg42BZLlujDSRg0WLBvfZ_oD4V7cTx2o6MVr4oAdeHaK0wttPMQ85GMMOkgM7xvbHFcwXUG4MCr8JXX16S-OV2CS4ikQ286DOHPtBotbM7pqFTvIM", "Die Einkaufsliste " + req.body.sl_id + " wurde gelöscht!", "Einkaufsliste wurde geändert")
|
||||||
}
|
}
|
||||||
|
|
||||||
catch(err) {
|
catch(err) {
|
||||||
|
@ -6,6 +6,7 @@
|
|||||||
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.5.0/css/all.css" integrity="sha384-B4dIYHKNBt8Bc12p+WXckhzcICo0wtJAoU8YZTY5qE0Id1GSseTk6S+L3BlXeVIU" crossorigin="anonymous">
|
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.5.0/css/all.css" integrity="sha384-B4dIYHKNBt8Bc12p+WXckhzcICo0wtJAoU8YZTY5qE0Id1GSseTk6S+L3BlXeVIU" crossorigin="anonymous">
|
||||||
<link rel='stylesheet' href='/bootstrap/dist/css/bootstrap.min.css'>
|
<link rel='stylesheet' href='/bootstrap/dist/css/bootstrap.min.css'>
|
||||||
<script src="https://www.gstatic.com/firebasejs/5.7.0/firebase.js"></script>
|
<script src="https://www.gstatic.com/firebasejs/5.7.0/firebase.js"></script>
|
||||||
|
|
||||||
</head>
|
</head>
|
||||||
<body id="vue-app">
|
<body id="vue-app">
|
||||||
|
|
||||||
@ -40,11 +41,10 @@
|
|||||||
<!-- detail card -->
|
<!-- detail card -->
|
||||||
<div class="row justify-content-center ">
|
<div class="row justify-content-center ">
|
||||||
<div class="card border-light mb-3 detailcardausgabe" style="width: 50rem;">
|
<div class="card border-light mb-3 detailcardausgabe" style="width: 50rem;">
|
||||||
<div class="card-header text-center"></div>
|
<div class="card-header"></div>
|
||||||
|
|
||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
<h5 class="card-title"></h5>
|
|
||||||
<p class="card-text"></p>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@ -112,5 +112,6 @@
|
|||||||
<script src="/javascripts/ajax.js"></script>
|
<script src="/javascripts/ajax.js"></script>
|
||||||
<script src="https://unpkg.com/ionicons@4.4.8/dist/ionicons.js"></script>
|
<script src="https://unpkg.com/ionicons@4.4.8/dist/ionicons.js"></script>
|
||||||
<script src="/javascripts/test.js"></script>
|
<script src="/javascripts/test.js"></script>
|
||||||
|
<script src="/javascripts/firebase-app.js"></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
Loading…
x
Reference in New Issue
Block a user