User Bearbeiten

User bearbeiten, holt die daten des Users vom server (Bild und Name)

Beides kommt an, aber nur der Name wird angezeigt, das Bild wird nicht gesetzt, aber kann manuell gesetzt werden, wenn man bei data einen link reinschreibt
This commit is contained in:
Georg Reisinger 2019-03-20 20:10:21 +01:00
parent e1c3a6864f
commit 85b88b7d17
4 changed files with 124 additions and 2 deletions

View File

@ -30,6 +30,15 @@ async function getmessageids(sl_id) {
}
}
async function getUser(uid){
try {
var users = await query('SELECT row_to_json("User") AS obj FROM "User" WHERE username = $1;', [uid]);
return users;
} catch (error) {
console.error("Error", error);
}
}
async function searchUsers(searchstring) {
try {
@ -39,7 +48,7 @@ async function searchUsers(searchstring) {
for(let item of users) {
if(item.name != null) {
if(item.name.includes(searchstring)) {
output.push(item)
output.push(item);
}
}
}
@ -606,5 +615,6 @@ module.exports = {
getShoppinglistsByLink,
searchUsers,
removeMember,
moveDoneItemMan
moveDoneItemMan,
getUser
}

View File

@ -0,0 +1,50 @@
// Initialize Firebase
var config = {
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(config);
var fireuser;
var vue = new Vue({
el: '#vue-app',
prop: {
name: ''
},
data() {
return {
dataPic: ''
}
},
methods: {
updateUser(){
},
getPicUrl(){
return this.picUrl;
}
},
beforeCreate() {
firebase.auth().onAuthStateChanged(function(user) {
if (user) {
fireuser = user;
//GetUser
axios.get('/getUser/' + fireuser.uid).then(result => {
name = result.data[0].name;
dataPic = result.data[0].picture + "";
console.log("DataPic: ", dataPic)
}).catch(err => console.error(err));
} else {
window.location("/");
this.dataPic = "error"
}
});
},
});

View File

@ -15,6 +15,19 @@ var firebaseAdmin = admin.initializeApp({
databaseURL: 'https://test-667ca.firebaseio.com'
});
router.get('/user', function(req, res, next){
res.status(200).render('user');
});
router.get('/getuser/:uid', async function(req, res){
try {
var sender = await postgres.getUser(req.params.uid);
res.status(200).send(sender);
}catch (err) {
res.status(400).send(await err);
}
});
//Push
router.get('/push/:msgtoken/:message/:title', function (req, res, next) {

View File

@ -0,0 +1,49 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<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://www.gstatic.com/firebasejs/5.7.0/firebase.js"></script>
<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">
<script defer src="https://code.getmdl.io/1.3.0/material.min.js"></script>
<title>Document</title>
</head>
<body>
<div id="vue-app">
<!-- Square card -->
<style>
.demo-card-square.mdl-card {
width: 320px;
height: 320px;
}
.demo-card-square > .mdl-card__title {
color: #fff;
}
</style>
{{dataPic}}
<div class="demo-card-image mdl-card mdl-shadow--2dp">
<img v-bind:src="dataPic" width="100%"/>
<div class="mdl-card__title mdl-card--expand"></div>
<div class="mdl-card__actions">
<label for="nameinput">Name: </label><input type="text" id="nameinput" v-model="name">
</div>
<div class="mdl-card__actions mdl-card--border">
<a class="mdl-button mdl-button--colored mdl-js-button mdl-js-ripple-effect">
Ändere Foto
</a>
<a class="mdl-button mdl-button--colored mdl-js-button mdl-js-ripple-effect">
Fertig
</a>
</div>
</div>
</div>
<script src="javascripts/user.js"></script>
</body>
</html>