fehler beoben
This commit is contained in:
		@@ -13,12 +13,26 @@ const stringSimilarity = require('string-similarity');
 | 
				
			|||||||
async function updateUser(uid, mid, name, picture, email) {
 | 
					async function updateUser(uid, mid, name, picture, email) {
 | 
				
			||||||
    try {
 | 
					    try {
 | 
				
			||||||
        await nonQuery('INSERT INTO "User" (username, name, picture, email, message_id) VALUES ($1, $2, $3, $4, $5);', [uid, name, picture, email, mid]);
 | 
					        await nonQuery('INSERT INTO "User" (username, name, picture, email, message_id) VALUES ($1, $2, $3, $4, $5);', [uid, name, picture, email, mid]);
 | 
				
			||||||
        
 | 
					        return 'done'
 | 
				
			||||||
    } catch (error) {
 | 
					    } catch (error) {
 | 
				
			||||||
        console.error(error);
 | 
					        console.error(error);
 | 
				
			||||||
 | 
					        return error
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					async function realUpdateUser(uid, mid, name, picture, email){
 | 
				
			||||||
 | 
					    console.log("DBCONNECT UPDATE PIC: ", picture)
 | 
				
			||||||
 | 
					    try {
 | 
				
			||||||
 | 
					        await nonQuery('Update "User" set message_id = $1, name = $2, picture = $3, email = $4 WHERE username = $5', [mid, name, picture, email, uid]);
 | 
				
			||||||
 | 
					        return 'done'
 | 
				
			||||||
 | 
					    } catch (error){
 | 
				
			||||||
 | 
					        console.error(error);
 | 
				
			||||||
 | 
					        return error
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
async function getmessageids(sl_id) {
 | 
					async function getmessageids(sl_id) {
 | 
				
			||||||
    try {
 | 
					    try {
 | 
				
			||||||
        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 members = await query('SELECT row_to_json("User") AS obj FROM "Shoppinglist_member" JOIN "User" USING (username) WHERE sl_id = $1;', [sl_id]);
 | 
				
			||||||
@@ -643,6 +657,10 @@ module.exports = {
 | 
				
			|||||||
    removeMember,
 | 
					    removeMember,
 | 
				
			||||||
    moveDoneItemMan,
 | 
					    moveDoneItemMan,
 | 
				
			||||||
    getUser,
 | 
					    getUser,
 | 
				
			||||||
 | 
					<<<<<<< HEAD
 | 
				
			||||||
    getUserDB,
 | 
					    getUserDB,
 | 
				
			||||||
    deleteDonePurchase
 | 
					    deleteDonePurchase
 | 
				
			||||||
 | 
					=======
 | 
				
			||||||
 | 
					    realUpdateUser
 | 
				
			||||||
 | 
					>>>>>>> 3ab823a0258758dd48a687eaafed77ee36832b61
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@@ -9,6 +9,12 @@ var config = {
 | 
				
			|||||||
};
 | 
					};
 | 
				
			||||||
firebase.initializeApp(config);
 | 
					firebase.initializeApp(config);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					var storage = firebase.storage();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					var msg = firebase.messaging();
 | 
				
			||||||
 | 
					// import postgres from "./../db-connect/db-connect";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
var vue = new Vue({
 | 
					var vue = new Vue({
 | 
				
			||||||
    el: '#vue-app',
 | 
					    el: '#vue-app',
 | 
				
			||||||
    prop: {
 | 
					    prop: {
 | 
				
			||||||
@@ -16,14 +22,175 @@ var vue = new Vue({
 | 
				
			|||||||
        getpic: ''
 | 
					        getpic: ''
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    data: {
 | 
					    data: {
 | 
				
			||||||
            dataPic: ''
 | 
					        dataPic: '',
 | 
				
			||||||
 | 
					        image: '',
 | 
				
			||||||
 | 
					        idToken: '',
 | 
				
			||||||
 | 
					        mid: '',
 | 
				
			||||||
 | 
					        showUploadButtons: ''
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    methods: {
 | 
					    methods: {
 | 
				
			||||||
        updateUser(){
 | 
					        backToDash(){
 | 
				
			||||||
 | 
					            window.location.href = "/";
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        fertig() {
 | 
				
			||||||
 | 
					            if(!this.image){
 | 
				
			||||||
 | 
					                this.image = this.dataPic
 | 
				
			||||||
 | 
					                var currentUser = firebase.auth().currentUser;
 | 
				
			||||||
 | 
					                var vm = this;
 | 
				
			||||||
 | 
					                currentUser.getIdToken( /* forceRefresh */ true).then(function (idToken) {
 | 
				
			||||||
 | 
					                    console.log("Vor Replace");
 | 
				
			||||||
 | 
					                    msg.requestPermission()
 | 
				
			||||||
 | 
					                        .then(function () {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                            return msg.getToken();
 | 
				
			||||||
 | 
					                        })
 | 
				
			||||||
 | 
					                        .then(token => {
 | 
				
			||||||
 | 
					                            console.log("Zugriff auf msg", token, this.name, vm.dataPic);
 | 
				
			||||||
 | 
					                            vm.idToken = idToken;
 | 
				
			||||||
 | 
					                            vm.mid = token;
 | 
				
			||||||
 | 
					                            console.log("IMAGE befor dbuserupdate: ", vm.image)
 | 
				
			||||||
 | 
					                            vm.dbUserUpdate(vm.idToken, name, vm.image, vm.mid);
 | 
				
			||||||
 | 
					                            vm.image = '';
 | 
				
			||||||
 | 
					                            vm.startGetUser();
 | 
				
			||||||
 | 
					                        })
 | 
				
			||||||
 | 
					                        .catch(err => {
 | 
				
			||||||
 | 
					                            console.error("Msg Error: ", err);
 | 
				
			||||||
 | 
					                            vm.idToken = idToken;
 | 
				
			||||||
 | 
					                            vm.mid = "";
 | 
				
			||||||
 | 
					                            console.log("IMAGE befor dbuserupdate: ", vm.image)
 | 
				
			||||||
 | 
					                            vm.dbUserUpdate(vm.idToken, name, vm.image, vm.mid);
 | 
				
			||||||
 | 
					                            vm.image = '';
 | 
				
			||||||
 | 
					                            vm.startGetUser();
 | 
				
			||||||
 | 
					                        })
 | 
				
			||||||
 | 
					                    
 | 
				
			||||||
 | 
					                }).catch(function (error) {
 | 
				
			||||||
 | 
					                    console.error("Get id token client error: ", error)
 | 
				
			||||||
 | 
					                });
 | 
				
			||||||
 | 
					            }else{
 | 
				
			||||||
 | 
					                console.log("IMAGE befor dbuserupdate: ", this.image)
 | 
				
			||||||
 | 
					                this.dbUserUpdate(this.idToken, name, this.image, this.mid);
 | 
				
			||||||
 | 
					                this.image = '';
 | 
				
			||||||
 | 
					                this.startGetUser();
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
            
 | 
					            
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        fotoChoose(){
 | 
					        updateUser() {
 | 
				
			||||||
 | 
					            console.log("updateuser")
 | 
				
			||||||
 | 
					            var currentUser = firebase.auth().currentUser;
 | 
				
			||||||
 | 
					            var vm = this;
 | 
				
			||||||
 | 
					            currentUser.getIdToken( /* forceRefresh */ true).then(function (idToken) {
 | 
				
			||||||
 | 
					                console.log("Vor Replace");
 | 
				
			||||||
 | 
					                msg.requestPermission()
 | 
				
			||||||
 | 
					                    .then(function () {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                        return msg.getToken();
 | 
				
			||||||
 | 
					                    })
 | 
				
			||||||
 | 
					                    .then(token => {
 | 
				
			||||||
 | 
					                        console.log("Zugriff auf msg", token, this.name, vm.dataPic);
 | 
				
			||||||
 | 
					                        vm.idToken = idToken;
 | 
				
			||||||
 | 
					                        vm.mid = token;
 | 
				
			||||||
 | 
					                    })
 | 
				
			||||||
 | 
					                    .catch(err => {
 | 
				
			||||||
 | 
					                        console.error("Msg Error: ", err);
 | 
				
			||||||
 | 
					                        vm.idToken = idToken;
 | 
				
			||||||
 | 
					                        vm.mid = "";
 | 
				
			||||||
 | 
					                    })
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            }).catch(function (error) {
 | 
				
			||||||
 | 
					                console.error("Get id token client error: ", error)
 | 
				
			||||||
 | 
					            });
 | 
				
			||||||
 | 
					            this.showUploadButtons = '';
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        dbUserUpdate(token, name, pic, mid) {
 | 
				
			||||||
 | 
					            console.log("dbuserupdate: ", token, "\nname", name, "\npic: ", pic, "\nMId: ", mid)
 | 
				
			||||||
 | 
					            var vm = this;
 | 
				
			||||||
 | 
					            var user = firebase.auth().currentUser;
 | 
				
			||||||
 | 
					            user.updateProfile({
 | 
				
			||||||
 | 
					                displayName: name,
 | 
				
			||||||
 | 
					                photoURL: "https://example.com/jane-q-user/profile.jpg"
 | 
				
			||||||
 | 
					            }).then(async function () {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            }).catch(function (error) {
 | 
				
			||||||
 | 
					                console.error(error)
 | 
				
			||||||
 | 
					            });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            console.log('Pic for upload: ', vm.image)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            //   let req = {
 | 
				
			||||||
 | 
					            //     url: '/userbearbeiten/'+vm.idToken+'/'+name+'/'+vm.dataPic+'/'+vm.mid,
 | 
				
			||||||
 | 
					            //     method: 'POST',
 | 
				
			||||||
 | 
					            //   }
 | 
				
			||||||
 | 
					            //   axios(req).then(response => {
 | 
				
			||||||
 | 
					            //     resolve(response.data.content)
 | 
				
			||||||
 | 
					            //     console.log("POST result: ", response)
 | 
				
			||||||
 | 
					            //     vm.startGetUser();
 | 
				
			||||||
 | 
					            //   }, response => {
 | 
				
			||||||
 | 
					            //     this.handleEditError(response)
 | 
				
			||||||
 | 
					            //   })
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            // axios.post('/userbearbeiten/'+vm.idToken+'/'+name+'/'+vm.dataPic+'/'+vm.mid).then(result => {
 | 
				
			||||||
 | 
					            //     console.log("POST result: ", result.data)
 | 
				
			||||||
 | 
					            //     vm.startGetUser();
 | 
				
			||||||
 | 
					            // }).catch(err => console.error("Axios error: ", err));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            $.ajax({
 | 
				
			||||||
 | 
					                type: "POST",
 | 
				
			||||||
 | 
					                url: '/userbearbeiten',
 | 
				
			||||||
 | 
					                data: {
 | 
				
			||||||
 | 
					                    token: vm.idToken,
 | 
				
			||||||
 | 
					                    mid: vm.mid,
 | 
				
			||||||
 | 
					                    pic: vm.image,
 | 
				
			||||||
 | 
					                    name: name
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                success(result) {
 | 
				
			||||||
 | 
					                    console.log("POST result: ", result)
 | 
				
			||||||
 | 
					                    vm.startGetUser();
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                error(err) {
 | 
				
			||||||
 | 
					                    console.error("Error: " + err);
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					            });
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        fotoChoose() {
 | 
				
			||||||
 | 
					            console.log("fotochoose")
 | 
				
			||||||
 | 
					            var vm = this;
 | 
				
			||||||
 | 
					            var currentUser = firebase.auth().currentUser;
 | 
				
			||||||
 | 
					            var uid = currentUser.uid;
 | 
				
			||||||
 | 
					            this.dataPic = this.image;
 | 
				
			||||||
 | 
					            var uploadTask = storage.ref('/').child(uid).putString(this.image, 'data_url', {
 | 
				
			||||||
 | 
					                contentType: 'image/jpeg'
 | 
				
			||||||
 | 
					            });
 | 
				
			||||||
 | 
					            uploadTask.on(firebase.storage.TaskEvent.STATE_CHANGED, // or 'state_changed'
 | 
				
			||||||
 | 
					                function (snapshot) {
 | 
				
			||||||
 | 
					                    // Get task progress, including the number of bytes uploaded and the total number of bytes to be uploaded
 | 
				
			||||||
 | 
					                    var progress = (snapshot.bytesTransferred / snapshot.totalBytes) * 100;
 | 
				
			||||||
 | 
					                    console.log('Upload is ' + progress + '% done');
 | 
				
			||||||
 | 
					                    switch (snapshot.state) {
 | 
				
			||||||
 | 
					                        case firebase.storage.TaskState.PAUSED: // or 'paused'
 | 
				
			||||||
 | 
					                            console.log('Upload is paused');
 | 
				
			||||||
 | 
					                            break;
 | 
				
			||||||
 | 
					                        case firebase.storage.TaskState.RUNNING: // or 'running'
 | 
				
			||||||
 | 
					                            console.log('Upload is running');
 | 
				
			||||||
 | 
					                            break;
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                function (error) {
 | 
				
			||||||
 | 
					                    console.log(error);
 | 
				
			||||||
 | 
					                },
 | 
				
			||||||
 | 
					                function () {
 | 
				
			||||||
 | 
					                    // Upload completed successfully, now we can get the download URL
 | 
				
			||||||
 | 
					                    var downloadURL = uploadTask.snapshot.downloadURL;
 | 
				
			||||||
 | 
					                    if (!downloadURL) {
 | 
				
			||||||
 | 
					                        downloadURL = 'https://firebasestorage.googleapis.com/v0/b/test-667ca.appspot.com/o/' + uid + '?alt=media&token=7e5f49c8-0e1f-4073-be30-5feaa691a770';
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
 | 
					                    console.log("download Url", downloadURL)
 | 
				
			||||||
 | 
					                    vm.image = downloadURL;
 | 
				
			||||||
 | 
					                    vm.updateUser();
 | 
				
			||||||
 | 
					                });
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        getPicUrl() {
 | 
					        getPicUrl() {
 | 
				
			||||||
            return this.picUrl;
 | 
					            return this.picUrl;
 | 
				
			||||||
@@ -34,9 +201,55 @@ var vue = new Vue({
 | 
				
			|||||||
                this.dataPic = result.data[0].picture + "";
 | 
					                this.dataPic = result.data[0].picture + "";
 | 
				
			||||||
                console.log("Created: ", this.dataPic, name)
 | 
					                console.log("Created: ", this.dataPic, name)
 | 
				
			||||||
            }).catch(err => console.error(err));
 | 
					            }).catch(err => console.error(err));
 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
    created() {
 | 
					        onFileChange(e) {
 | 
				
			||||||
 | 
					            var files = e.target.files || e.dataTransfer.files;
 | 
				
			||||||
 | 
					            if (!files.length)
 | 
				
			||||||
 | 
					                return;
 | 
				
			||||||
 | 
					            this.createImage(files[0]);
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        createImage(file) {
 | 
				
			||||||
 | 
					            var image = new Image();
 | 
				
			||||||
 | 
					            var reader = new FileReader();
 | 
				
			||||||
 | 
					            var vm = this;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            reader.onload = (e) => {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                var tempImg = new Image();
 | 
				
			||||||
 | 
					                tempImg.src = reader.result;
 | 
				
			||||||
 | 
					                tempImg.onload = function () {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    var MAX_WIDTH = 350;
 | 
				
			||||||
 | 
					                    var MAX_HEIGHT = 350;
 | 
				
			||||||
 | 
					                    var tempW = tempImg.width;
 | 
				
			||||||
 | 
					                    var tempH = tempImg.height;
 | 
				
			||||||
 | 
					                    if (tempW > tempH) {
 | 
				
			||||||
 | 
					                        if (tempW > MAX_WIDTH) {
 | 
				
			||||||
 | 
					                            tempH *= MAX_WIDTH / tempW;
 | 
				
			||||||
 | 
					                            tempW = MAX_WIDTH;
 | 
				
			||||||
 | 
					                        }
 | 
				
			||||||
 | 
					                    } else {
 | 
				
			||||||
 | 
					                        if (tempH > MAX_HEIGHT) {
 | 
				
			||||||
 | 
					                            tempW *= MAX_HEIGHT / tempH;
 | 
				
			||||||
 | 
					                            tempH = MAX_HEIGHT;
 | 
				
			||||||
 | 
					                        }
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    var canvas = document.createElement('canvas');
 | 
				
			||||||
 | 
					                    canvas.width = tempW;
 | 
				
			||||||
 | 
					                    canvas.height = tempH;
 | 
				
			||||||
 | 
					                    var ctx = canvas.getContext("2d");
 | 
				
			||||||
 | 
					                    ctx.drawImage(this, 0, 0, tempW, tempH);
 | 
				
			||||||
 | 
					                    var dataURL = canvas.toDataURL("image/jpeg");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    vm.dataPic = dataURL;
 | 
				
			||||||
 | 
					                    vm.image = dataURL;
 | 
				
			||||||
 | 
					                    vm.showUploadButtons = 'true';
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					            };
 | 
				
			||||||
 | 
					            reader.readAsDataURL(file);
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        startGetUser() {
 | 
				
			||||||
            firebase.auth().onAuthStateChanged(user => {
 | 
					            firebase.auth().onAuthStateChanged(user => {
 | 
				
			||||||
                if (user) {
 | 
					                if (user) {
 | 
				
			||||||
                    //GetUser
 | 
					                    //GetUser
 | 
				
			||||||
@@ -45,6 +258,13 @@ var vue = new Vue({
 | 
				
			|||||||
                    window.location("/");
 | 
					                    window.location("/");
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
            });
 | 
					            });
 | 
				
			||||||
          
 | 
					        },
 | 
				
			||||||
 | 
					        removeImage: function (e) {
 | 
				
			||||||
 | 
					            this.image = '';
 | 
				
			||||||
 | 
					            this.startGetUser();
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    created() {
 | 
				
			||||||
 | 
					        this.startGetUser();
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
});
 | 
					});
 | 
				
			||||||
@@ -19,6 +19,27 @@ var firebaseAdmin = admin.initializeApp({
 | 
				
			|||||||
    res.status(200).render('user');
 | 
					    res.status(200).render('user');
 | 
				
			||||||
  });
 | 
					  });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  router.post('/userbearbeiten', function(req, res, next){
 | 
				
			||||||
 | 
					    var mid = req.body.mid;
 | 
				
			||||||
 | 
					    var token = req.body.token;
 | 
				
			||||||
 | 
					    var name = req.body.name;
 | 
				
			||||||
 | 
					    var pic = req.body.pic;
 | 
				
			||||||
 | 
					    var vm = this;
 | 
				
			||||||
 | 
					    firebaseAdmin.auth().verifyIdToken(token)
 | 
				
			||||||
 | 
					    .then(async function (decodedToken) {
 | 
				
			||||||
 | 
					      console.log("UID: ", decodedToken.uid);
 | 
				
			||||||
 | 
					      console.log("Name: ", name, ' \nPic: ', pic, ' \nToken: ', token, ' \nMID: ' , mid, "\nDecoded token: ", decodedToken.uid, decodedToken.email);
 | 
				
			||||||
 | 
					      try {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        res.status(200).send(await postgres.realUpdateUser(decodedToken.uid, mid, name, pic, decodedToken.email));
 | 
				
			||||||
 | 
					      } catch (err) {
 | 
				
			||||||
 | 
					        res.status(400).send(await err);
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    }).catch(async function (error) {
 | 
				
			||||||
 | 
					      console.error(await error);
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  });
 | 
				
			||||||
  router.get('/getuser/:uid', async function(req, res){
 | 
					  router.get('/getuser/:uid', async function(req, res){
 | 
				
			||||||
    try {
 | 
					    try {
 | 
				
			||||||
      var sender = await postgres.getUser(req.params.uid);
 | 
					      var sender = await postgres.getUser(req.params.uid);
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -6,8 +6,8 @@
 | 
				
			|||||||
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
 | 
					    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
 | 
				
			||||||
    <link rel='stylesheet' href='/stylesheets/style.css'>
 | 
					    <link rel='stylesheet' href='/stylesheets/style.css'>
 | 
				
			||||||
    <link rel='stylesheet' href='/stylesheets/colorpicker-style.css'>
 | 
					    <link rel='stylesheet' href='/stylesheets/colorpicker-style.css'>
 | 
				
			||||||
    <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.5.0/css/all.css" integrity="sha384-B4dIYHKNBt8Bc12p+WXckhzcICo0wtJAoU8YZTY5qE0Id1GSseTk6S+L3BlXeVIU"
 | 
					    <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.5.0/css/all.css"
 | 
				
			||||||
        crossorigin="anonymous">
 | 
					        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>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -28,9 +28,21 @@
 | 
				
			|||||||
                <button class="btn btn-outline-light border-secondary sl_add" style="color: black">Shoppingliste
 | 
					                <button class="btn btn-outline-light border-secondary sl_add" style="color: black">Shoppingliste
 | 
				
			||||||
                    Hinzufügen</button>
 | 
					                    Hinzufügen</button>
 | 
				
			||||||
            </li>
 | 
					            </li>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        </ul>
 | 
				
			||||||
 | 
					        <ul class="nav justify-content-end liste">
 | 
				
			||||||
 | 
					            <li class="nav-item">
 | 
				
			||||||
 | 
					                <a class="btn btn-outline-light border-secondary userbearbeiten" href="/user" style="color: black">User
 | 
				
			||||||
 | 
					                    bearbeiten</a>
 | 
				
			||||||
 | 
					            </li>
 | 
				
			||||||
 | 
					             
 | 
				
			||||||
 | 
					            <li class="nav-item">
 | 
				
			||||||
 | 
					                <button class="btn btn-outline-danger logout" style="color: red">Logout</button>
 | 
				
			||||||
 | 
					            </li>
 | 
				
			||||||
        </ul>
 | 
					        </ul>
 | 
				
			||||||
        <!-- <a href="/logout"> -->
 | 
					        <!-- <a href="/logout"> -->
 | 
				
			||||||
        <button class="btn btn-outline-light border-secondary logout" style="color: black">Logout</button>
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        <!-- </a> -->
 | 
					        <!-- </a> -->
 | 
				
			||||||
    </nav>
 | 
					    </nav>
 | 
				
			||||||
    <br>
 | 
					    <br>
 | 
				
			||||||
@@ -60,8 +72,8 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    <!-- Modal Group Hinzufügen -->
 | 
					    <!-- Modal Group Hinzufügen -->
 | 
				
			||||||
    <div class="modal fade bd-example-modal-sm ListenDetailAdd" tabindex="-1" role="dialog" aria-labelledby="mySmallModalLabel"
 | 
					    <div class="modal fade bd-example-modal-sm ListenDetailAdd" tabindex="-1" role="dialog"
 | 
				
			||||||
        aria-hidden="true">
 | 
					        aria-labelledby="mySmallModalLabel" aria-hidden="true">
 | 
				
			||||||
        <div class="modal-dialog modal-sm">
 | 
					        <div class="modal-dialog modal-sm">
 | 
				
			||||||
            <div class="modal-content">
 | 
					            <div class="modal-content">
 | 
				
			||||||
                <div>
 | 
					                <div>
 | 
				
			||||||
@@ -129,8 +141,8 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    <!-- Modal Item Hinzufügen -->
 | 
					    <!-- Modal Item Hinzufügen -->
 | 
				
			||||||
    <div class="modal fade bd-example-modal-sm GroupItemAdd" tabindex="-1" role="dialog" aria-labelledby="mySmallModalLabel"
 | 
					    <div class="modal fade bd-example-modal-sm GroupItemAdd" tabindex="-1" role="dialog"
 | 
				
			||||||
        aria-hidden="true">
 | 
					        aria-labelledby="mySmallModalLabel" aria-hidden="true">
 | 
				
			||||||
        <div class="modal-dialog modal-sm">
 | 
					        <div class="modal-dialog modal-sm">
 | 
				
			||||||
            <div class="modal-content">
 | 
					            <div class="modal-content">
 | 
				
			||||||
                <div class="inhalt">
 | 
					                <div class="inhalt">
 | 
				
			||||||
@@ -145,7 +157,8 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
                    <div class="form-group layout">
 | 
					                    <div class="form-group layout">
 | 
				
			||||||
                        <label for="Anzahl-example">Anzahl</label>
 | 
					                        <label for="Anzahl-example">Anzahl</label>
 | 
				
			||||||
                        <input type="number" class="form-control" id="inputGroupSelect01" placeholder="zB: 2" maxlength="3">
 | 
					                        <input type="number" class="form-control" id="inputGroupSelect01" placeholder="zB: 2"
 | 
				
			||||||
 | 
					                            maxlength="3">
 | 
				
			||||||
                    </div>
 | 
					                    </div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                </div>
 | 
					                </div>
 | 
				
			||||||
@@ -170,7 +183,8 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
                    <div class="form-group layout">
 | 
					                    <div class="form-group layout">
 | 
				
			||||||
                        <label for="exampleInputPassword1">Beschreibung</label>
 | 
					                        <label for="exampleInputPassword1">Beschreibung</label>
 | 
				
			||||||
                        <input type="text" class="form-control" id="einkaufslistenbeschreibung" placeholder="zB: Großeinkauf bei Billa">
 | 
					                        <input type="text" class="form-control" id="einkaufslistenbeschreibung"
 | 
				
			||||||
 | 
					                            placeholder="zB: Großeinkauf bei Billa">
 | 
				
			||||||
                    </div>
 | 
					                    </div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                    <div class="form-group layout">
 | 
					                    <div class="form-group layout">
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,78 +1,76 @@
 | 
				
			|||||||
<!DOCTYPE html>
 | 
					<!DOCTYPE html>
 | 
				
			||||||
<html lang="en">
 | 
					<html lang="de">
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<head>
 | 
					<head>
 | 
				
			||||||
  <meta charset="UTF-8">
 | 
					  <meta charset="UTF-8">
 | 
				
			||||||
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
 | 
					  <meta name="viewport" content="width=device-width, initial-scale=1.0">
 | 
				
			||||||
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
 | 
					  <meta http-equiv="X-UA-Compatible" content="ie=edge">
 | 
				
			||||||
<!-- production version, optimized for size and speed -->
 | 
					 | 
				
			||||||
<script src="https://unpkg.com/axios/dist/axios.min.js"></script>
 | 
					 | 
				
			||||||
  <script src="https://cdn.jsdelivr.net/npm/vue"></script>
 | 
					  <script src="https://cdn.jsdelivr.net/npm/vue"></script>
 | 
				
			||||||
  <script src="https://www.gstatic.com/firebasejs/5.7.0/firebase-app.js"></script>
 | 
					  <script src="https://www.gstatic.com/firebasejs/5.7.0/firebase-app.js"></script>
 | 
				
			||||||
  <script src="https://www.gstatic.com/firebasejs/5.7.0/firebase-auth.js"></script>
 | 
					  <script src="https://www.gstatic.com/firebasejs/5.7.0/firebase-auth.js"></script>
 | 
				
			||||||
 | 
					  <script src="https://www.gstatic.com/firebasejs/5.7.0/firebase-storage.js"></script>
 | 
				
			||||||
 | 
					  <script src="https://www.gstatic.com/firebasejs/5.7.0/firebase-messaging.js"></script>
 | 
				
			||||||
  <link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons">
 | 
					  <link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons">
 | 
				
			||||||
  <link rel="stylesheet" href="https://code.getmdl.io/1.3.0/material.indigo-pink.min.css">
 | 
					  <link rel="stylesheet" href="https://code.getmdl.io/1.3.0/material.indigo-pink.min.css">
 | 
				
			||||||
  <script defer src="https://code.getmdl.io/1.3.0/material.min.js"></script>
 | 
					  <script defer src="https://code.getmdl.io/1.3.0/material.min.js"></script>
 | 
				
			||||||
 | 
					  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
 | 
				
			||||||
    <title>Document</title>
 | 
					  <title>User bearbeiten</title>
 | 
				
			||||||
</head>
 | 
					</head>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<body>
 | 
					<body>
 | 
				
			||||||
  <div id="vue-app">
 | 
					  <div id="vue-app">
 | 
				
			||||||
    <!-- Square card -->
 | 
					    <!-- Square card -->
 | 
				
			||||||
        
 | 
					    <center>
 | 
				
			||||||
      <div class="demo-card-image mdl-card mdl-shadow--2dp">
 | 
					      <div class="demo-card-image mdl-card mdl-shadow--2dp">
 | 
				
			||||||
 | 
					          <button @click="backToDash" class="mdl-button mdl-js-button mdl-button--raised mdl-button--colored mdl-js-ripple-effect"> Zurück
 | 
				
			||||||
 | 
					              zu SmartShopper</button>
 | 
				
			||||||
        <img v-bind:src="this.dataPic" width="100%" />
 | 
					        <img v-bind:src="this.dataPic" width="100%" />
 | 
				
			||||||
        <div class="mdl-card__title mdl-card--expand"></div>
 | 
					        <div class="mdl-card__title mdl-card--expand">
 | 
				
			||||||
 | 
					            
 | 
				
			||||||
 | 
					        </div>
 | 
				
			||||||
        <div class="mdl-card__actions">
 | 
					        <div class="mdl-card__actions">
 | 
				
			||||||
          <label for="nameinput">Name: </label><input type="text" id="nameinput" v-model="name">
 | 
					          <label for="nameinput">Name: </label><input type="text" id="nameinput" v-model="name">
 | 
				
			||||||
        </div>
 | 
					        </div>
 | 
				
			||||||
        <div class="mdl-card__actions mdl-card--border">
 | 
					        <div class="mdl-card__actions mdl-card--border">
 | 
				
			||||||
                <button @click="fotoChoose" class="mdl-button mdl-button--colored mdl-js-button mdl-js-ripple-effect">
 | 
					          <div v-if="!showUploadButtons">
 | 
				
			||||||
                  Foto setzten
 | 
					              <Label class="input-custom-file mdl-button mdl-js-button mdl-button--raised mdl-js-ripple-effect mdl-button--colored">
 | 
				
			||||||
                </button>
 | 
					                  Foto ändern
 | 
				
			||||||
                <button @click="updateUser" class="mdl-button mdl-button--colored mdl-js-button mdl-js-ripple-effect">
 | 
					                  <input type="file" @change="onFileChange">
 | 
				
			||||||
 | 
					                </label>
 | 
				
			||||||
 | 
					            <button @click="fertig" class="mdl-button mdl-button--colored mdl-js-button mdl-js-ripple-effect">
 | 
				
			||||||
              Fertig
 | 
					              Fertig
 | 
				
			||||||
            </button>
 | 
					            </button>
 | 
				
			||||||
          </div>
 | 
					          </div>
 | 
				
			||||||
 | 
					          <div v-else>
 | 
				
			||||||
 | 
					            <button @click="removeImage" class="mdl-button mdl-js-button mdl-button--raised mdl-button--coloredmdl-js-ripple-effect mdl-button--accent">Remove image</button>
 | 
				
			||||||
 | 
					            <button @click="fotoChoose" class="mdl-button mdl-js-button mdl-button--raised mdl-button--colored mdl-js-ripple-effect">
 | 
				
			||||||
 | 
					              Foto setzten
 | 
				
			||||||
 | 
					            </button>
 | 
				
			||||||
          </div>
 | 
					          </div>
 | 
				
			||||||
          
 | 
					          
 | 
				
			||||||
        </div>
 | 
					        </div>
 | 
				
			||||||
 | 
					      </div>
 | 
				
			||||||
 | 
					    </center>
 | 
				
			||||||
 | 
					  </div>
 | 
				
			||||||
  <style lang="scss">
 | 
					  <style lang="scss">
 | 
				
			||||||
    .demo-card-square.mdl-card {
 | 
					    .demo-card-square.mdl-card {
 | 
				
			||||||
      width: 320px;
 | 
					      width: 320px;
 | 
				
			||||||
      height: 320px;
 | 
					      height: 320px;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    .demo-card-square>.mdl-card__title {
 | 
					    .demo-card-square>.mdl-card__title {
 | 
				
			||||||
      color: #fff;
 | 
					      color: #fff;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
        .dropbox {
 | 
					 | 
				
			||||||
    outline: 2px dashed grey; /* the dash box */
 | 
					 | 
				
			||||||
    outline-offset: -10px;
 | 
					 | 
				
			||||||
    background: lightcyan;
 | 
					 | 
				
			||||||
    color: dimgray;
 | 
					 | 
				
			||||||
    padding: 10px 10px;
 | 
					 | 
				
			||||||
    min-height: 200px; /* minimum height */
 | 
					 | 
				
			||||||
    position: relative;
 | 
					 | 
				
			||||||
    cursor: pointer;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
  .input-file {
 | 
					    .fotochooserimg {
 | 
				
			||||||
    opacity: 0; /* invisible but it's there! */
 | 
					      width: 30%;
 | 
				
			||||||
    width: 100%;
 | 
					      margin: auto;
 | 
				
			||||||
    height: 200px;
 | 
					      display: block;
 | 
				
			||||||
    position: absolute;
 | 
					      margin-bottom: 10px;
 | 
				
			||||||
    cursor: pointer;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  .dropbox:hover {
 | 
					 | 
				
			||||||
    background: lightblue; /* when mouse over to the drop zone, change color */
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  .dropbox p {
 | 
					 | 
				
			||||||
    font-size: 1.2em;
 | 
					 | 
				
			||||||
    text-align: center;
 | 
					 | 
				
			||||||
    padding: 50px 0;
 | 
					 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
  </style>
 | 
					  </style>
 | 
				
			||||||
 | 
					  <script src="https://unpkg.com/axios@0.18.0/dist/axios.min.js"></script>
 | 
				
			||||||
  <script src="javascripts/user.js"></script>
 | 
					  <script src="javascripts/user.js"></script>
 | 
				
			||||||
</body>
 | 
					</body>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
</html>
 | 
					</html>
 | 
				
			||||||
		Reference in New Issue
	
	Block a user