diff --git a/express-server/public/firebase-messaging-sw.js b/express-server/public/firebase-messaging-sw.js new file mode 100644 index 00000000..9225721b --- /dev/null +++ b/express-server/public/firebase-messaging-sw.js @@ -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}); +}) \ No newline at end of file diff --git a/express-server/public/javascripts/ajax.js b/express-server/public/javascripts/ajax.js index d542eafb..e759e10c 100644 --- a/express-server/public/javascripts/ajax.js +++ b/express-server/public/javascripts/ajax.js @@ -6,11 +6,13 @@ var config = { projectId: "test-667ca", storageBucket: "test-667ca.appspot.com", messagingSenderId: "221332577314" -}; + }; + firebase.initializeApp(config); + $(document).ready(function() { firebase.auth().onAuthStateChanged(async function(user){if(user){firebase.auth().currentUser.getIdToken(/* forceRefresh */ true).then(function(idtoken) { console.log("/shoppinglistx idtoken:", idtoken); @@ -108,7 +110,7 @@ function eigeneEinkaufslisten(){ }, success(res){ firebase.auth().onAuthStateChanged(async function(user){if(user){firebase.auth().currentUser.getIdToken(/* forceRefresh */ true).then(function(idtoken) { - console.log("/userinfo_json idtoken: ",idtoken) + console.log("/userinfo_json idtoken: ",idtoken) $.ajax({ type: "GET", url: "/userinfo_json", @@ -116,17 +118,19 @@ function eigeneEinkaufslisten(){ idtoken: idtoken }, success(data){ - let userinfo = "jhsbdjhf"; - // console.log(userinfo); - + const userinfo = data.name; + const picture = data.picture; + console.log(data) for(let i = 0; i < res.length; i++){ const el = res[i]; $(".listen-ausgabe").append(`
- ${userinfo} - + + Avatar + ${userinfo} +
@@ -246,7 +250,28 @@ function Detail(){ const neu = result.filter(obj => obj.sl_id === id); - $(".card-header").append(`

${neu[0].name}

+ var link = "/dash/"+idtoken; + + //ITEM ADD + // von Card Header Kopiert + + // + // + // + + $(".card-header").append(` + + + + + + +

+ ${neu[0].name} +

+ + + `); for (let i = 0; i < res.length; i++) { const el = res[i]; diff --git a/express-server/public/javascripts/firebase-app.js b/express-server/public/javascripts/firebase-app.js new file mode 100644 index 00000000..8c278144 --- /dev/null +++ b/express-server/public/javascripts/firebase-app.js @@ -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}); + }) \ No newline at end of file diff --git a/express-server/routes/index.js b/express-server/routes/index.js index 78bc06b0..88899b92 100644 --- a/express-server/routes/index.js +++ b/express-server/routes/index.js @@ -27,6 +27,33 @@ var firebaseAdmin = admin.initializeApp({ 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 router.get('/', function(req, res, next) { @@ -35,8 +62,8 @@ router.get('/', function(req, res, next) { router.get('/dash/:idtoken', function(req, res, next) { - - var token = req.params.idtoken; + // const msgtoken = req.params.msgtoken; + const token = req.params.idtoken; var uid; firebaseAdmin.auth().verifyIdToken(token) .then(function(decodedToken) { @@ -48,16 +75,13 @@ router.get('/dash/:idtoken', function(req, res, next) { }).catch(function(error) { console.log(error) }); - + + + res.render('dash'); }); -router.get('/logout', (req, res, next) => { - - -}); - // SmartShopper @@ -126,6 +150,7 @@ router.post("/shoppinglist", async function(req, res, next) { try { 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) { @@ -162,6 +187,7 @@ router.get("/shoppinglist_json/:sl_id", async (req, res) => { router.delete("/shoppinglist", async (req, res) => { try { 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) { diff --git a/express-server/views/dash.ejs b/express-server/views/dash.ejs index 52c499d0..f187b070 100644 --- a/express-server/views/dash.ejs +++ b/express-server/views/dash.ejs @@ -6,6 +6,7 @@ + @@ -40,11 +41,10 @@
-
+
-
-

+
@@ -112,5 +112,6 @@ + \ No newline at end of file