Merge branch 'master' of https://github.com/LukasNowy/SmartShopper
This commit is contained in:
		
							
								
								
									
										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});
 | 
				
			||||||
 | 
					})
 | 
				
			||||||
@@ -6,11 +6,13 @@ var config = {
 | 
				
			|||||||
    projectId: "test-667ca",
 | 
					    projectId: "test-667ca",
 | 
				
			||||||
    storageBucket: "test-667ca.appspot.com",
 | 
					    storageBucket: "test-667ca.appspot.com",
 | 
				
			||||||
    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>
 | 
				
			||||||
		Reference in New Issue
	
	Block a user