Update
This commit is contained in:
parent
32cfa1d0cc
commit
e154e882d1
@ -21,13 +21,18 @@ app.set('views', __dirname + '/views')
|
|||||||
|
|
||||||
app.get("/", function(request, responce) {
|
app.get("/", function(request, responce) {
|
||||||
dbRef = database.ref("/products")
|
dbRef = database.ref("/products")
|
||||||
dbRef.once('value', function(snapshot){
|
dbRef.limitToFirst(5).once('value', function(snapshot){
|
||||||
var data = snapshot.val()
|
var data = snapshot.val()
|
||||||
if (!data) {
|
if (!data) {
|
||||||
data = {}
|
data = {}
|
||||||
}
|
}
|
||||||
console.log(data)
|
console.log(data)
|
||||||
responce.render('home.ejs', {products: data})
|
console.log(data.length)
|
||||||
|
var x = "none"
|
||||||
|
if (request.query.itemAdded == "true") {
|
||||||
|
x = 'block'
|
||||||
|
}
|
||||||
|
responce.render('home.ejs', {products: data, message: x})
|
||||||
})
|
})
|
||||||
|
|
||||||
// responce.render("home.ejs")
|
// responce.render("home.ejs")
|
||||||
|
|||||||
@ -14,22 +14,7 @@
|
|||||||
<script src="https://www.gstatic.com/firebasejs/7.14.1/firebase-analytics.js"></script>
|
<script src="https://www.gstatic.com/firebasejs/7.14.1/firebase-analytics.js"></script>
|
||||||
<script src="https://www.gstatic.com/firebasejs/7.14.1/firebase-auth.js"></script>
|
<script src="https://www.gstatic.com/firebasejs/7.14.1/firebase-auth.js"></script>
|
||||||
<script defer src="https://www.gstatic.com/firebasejs/7.14.1/firebase-database.js"></script>
|
<script defer src="https://www.gstatic.com/firebasejs/7.14.1/firebase-database.js"></script>
|
||||||
<script>
|
<script src="js/fInit.js"></script>
|
||||||
// Your web app's Firebase configuration
|
|
||||||
var firebaseConfig = {
|
|
||||||
apiKey: "AIzaSyCrhgibbVUCOu3Vz3pw9iutGwTXen724eU",
|
|
||||||
authDomain: "project-gg-3b754.firebaseapp.com",
|
|
||||||
databaseURL: "https://project-gg-3b754.firebaseio.com",
|
|
||||||
projectId: "project-gg-3b754",
|
|
||||||
storageBucket: "project-gg-3b754.appspot.com",
|
|
||||||
messagingSenderId: "338558477178",
|
|
||||||
appId: "1:338558477178:web:f1b9069d1da04749a26cc3",
|
|
||||||
measurementId: "G-Y42R9NNJXS"
|
|
||||||
};
|
|
||||||
// Initialize Firebase
|
|
||||||
firebase.initializeApp(firebaseConfig);
|
|
||||||
firebase.analytics();
|
|
||||||
</script>
|
|
||||||
|
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
@ -39,7 +24,7 @@
|
|||||||
<div class="navbar">
|
<div class="navbar">
|
||||||
<div class="logon-crumbs">
|
<div class="logon-crumbs">
|
||||||
<div id="uname-field" style="display: none;">
|
<div id="uname-field" style="display: none;">
|
||||||
<a id="uname-dom" class="user-name" href="#">Unregistered user</a>
|
<a id="uname-dom" class="user-name" href="/">Unregistered user</a>
|
||||||
<div class="user-logout">
|
<div class="user-logout">
|
||||||
<a onclick={signout()}>Log out</a>
|
<a onclick={signout()}>Log out</a>
|
||||||
</div>
|
</div>
|
||||||
@ -49,6 +34,7 @@
|
|||||||
<input id="fpwd" type="password" placeholder="Password">
|
<input id="fpwd" type="password" placeholder="Password">
|
||||||
<button id="blogin" onclick={signinwithemail()} class="btn-login">➤</button>
|
<button id="blogin" onclick={signinwithemail()} class="btn-login">➤</button>
|
||||||
<button id="blogin_g" onclick={signinwithgoogle()} class="btn-g-login"><img src="media/g_logon.png" class="img-g-login" alt="img"></button>
|
<button id="blogin_g" onclick={signinwithgoogle()} class="btn-g-login"><img src="media/g_logon.png" class="img-g-login" alt="img"></button>
|
||||||
|
<button id="blogin_g" onclick={signinwithfb()} class="btn-fb-login"><img src="media/fb_logon.png" class="img-g-login" alt="img"></button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="user-info">
|
<div class="user-info">
|
||||||
@ -63,9 +49,9 @@
|
|||||||
|
|
||||||
<div class="space"></div>
|
<div class="space"></div>
|
||||||
|
|
||||||
<div class="user-auth-message" id="uAuthMsg" style="display: none;"><p>Please log in to continue</p></div>
|
<div class="user-auth-message" id="uAuthMsg" style="display: block;"><p>Please log in to continue</p></div>
|
||||||
|
|
||||||
<div class="new-product-field" style="display: block;">
|
<div class="new-product-field" id="npf" style="display: none;">
|
||||||
<p>Add product</p>
|
<p>Add product</p>
|
||||||
<div class="npf-short">
|
<div class="npf-short">
|
||||||
<input type="text" id="pName" placeholder="Product Name">
|
<input type="text" id="pName" placeholder="Product Name">
|
||||||
@ -82,7 +68,7 @@
|
|||||||
<div class="npf-short">
|
<div class="npf-short">
|
||||||
<input type="text" id="pPrice" placeholder="Price £">
|
<input type="text" id="pPrice" placeholder="Price £">
|
||||||
</div>
|
</div>
|
||||||
<button id="pSend">Submit</button>
|
<button id="pSend" onclick={productSubmutEventHandler()}>Submit</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
@ -116,5 +102,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</footer>
|
</footer>
|
||||||
<script src="js/fAuth.js"></script>
|
<script src="js/fAuth.js"></script>
|
||||||
|
|
||||||
|
<script src="js/fdb.js"></script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
@ -49,6 +49,7 @@ footer a {
|
|||||||
|
|
||||||
::placeholder {
|
::placeholder {
|
||||||
color: #aaaaaa;
|
color: #aaaaaa;
|
||||||
|
font-family: osl;
|
||||||
}
|
}
|
||||||
|
|
||||||
.page {
|
.page {
|
||||||
@ -263,6 +264,12 @@ footer a {
|
|||||||
margin-top: 10px;
|
margin-top: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.product-list-container {
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
.product-container {
|
.product-container {
|
||||||
width: 160px;
|
width: 160px;
|
||||||
}
|
}
|
||||||
@ -393,4 +400,17 @@ footer a {
|
|||||||
|
|
||||||
.npf-short input {
|
.npf-short input {
|
||||||
width: 150px;
|
width: 150px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.user-message {
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.user-message p {
|
||||||
|
position: relative;
|
||||||
|
font-family: osl;
|
||||||
|
font-size: 20px;
|
||||||
|
color: green;
|
||||||
|
left: 50%;
|
||||||
|
transform: translate(-10%, 0);
|
||||||
}
|
}
|
||||||
@ -14,22 +14,7 @@
|
|||||||
<script src="https://www.gstatic.com/firebasejs/7.14.1/firebase-analytics.js"></script>
|
<script src="https://www.gstatic.com/firebasejs/7.14.1/firebase-analytics.js"></script>
|
||||||
<script src="https://www.gstatic.com/firebasejs/7.14.1/firebase-auth.js"></script>
|
<script src="https://www.gstatic.com/firebasejs/7.14.1/firebase-auth.js"></script>
|
||||||
<script defer src="https://www.gstatic.com/firebasejs/7.14.1/firebase-database.js"></script>
|
<script defer src="https://www.gstatic.com/firebasejs/7.14.1/firebase-database.js"></script>
|
||||||
<script>
|
<script src="js/fInit.js"></script>
|
||||||
// Your web app's Firebase configuration
|
|
||||||
var firebaseConfig = {
|
|
||||||
apiKey: "AIzaSyCrhgibbVUCOu3Vz3pw9iutGwTXen724eU",
|
|
||||||
authDomain: "project-gg-3b754.firebaseapp.com",
|
|
||||||
databaseURL: "https://project-gg-3b754.firebaseio.com",
|
|
||||||
projectId: "project-gg-3b754",
|
|
||||||
storageBucket: "project-gg-3b754.appspot.com",
|
|
||||||
messagingSenderId: "338558477178",
|
|
||||||
appId: "1:338558477178:web:f1b9069d1da04749a26cc3",
|
|
||||||
measurementId: "G-Y42R9NNJXS"
|
|
||||||
};
|
|
||||||
// Initialize Firebase
|
|
||||||
firebase.initializeApp(firebaseConfig);
|
|
||||||
firebase.analytics();
|
|
||||||
</script>
|
|
||||||
|
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
@ -39,7 +24,7 @@
|
|||||||
<div class="navbar">
|
<div class="navbar">
|
||||||
<div class="logon-crumbs">
|
<div class="logon-crumbs">
|
||||||
<div id="uname-field" style="display: none;">
|
<div id="uname-field" style="display: none;">
|
||||||
<a id="uname-dom" class="user-name" href="#">Unregistered user</a>
|
<a id="uname-dom" class="user-name" href="/">Unregistered user</a>
|
||||||
<div class="user-logout">
|
<div class="user-logout">
|
||||||
<a onclick={signout()}>Log out</a>
|
<a onclick={signout()}>Log out</a>
|
||||||
</div>
|
</div>
|
||||||
@ -64,57 +49,86 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="user-message" style="display: <%= message %>;">
|
||||||
|
<p>Product added successfully</p>
|
||||||
|
</div>
|
||||||
<div class="sbar">
|
<div class="sbar">
|
||||||
<img src="media/gg_logo.png" alt="img">
|
<img src="media/gg_logo.png" alt="img">
|
||||||
<input id="sfield" type="text" placeholder="I Want...">
|
<input id="sfield" type="text" placeholder="I Want...">
|
||||||
<button id="sbutton">Go!</button>
|
<button id="sbutton">Go!</button>
|
||||||
<a href="#">Extras</a>
|
<a href="#">Extras</a>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="space"></div>
|
<div class="space"></div>
|
||||||
|
|
||||||
<div class="welcome">
|
<div class="welcome">
|
||||||
<img src="media/welcome.png">
|
<img src="media/welcome.png">
|
||||||
</div>
|
</div>
|
||||||
<div class="space"></div>
|
<div class="space"></div>
|
||||||
<div class="products">
|
<div class="products">
|
||||||
<p>Popular:</p>
|
<p>Popular:</p>
|
||||||
<div class="product-container">
|
<div class="product-list-container">
|
||||||
<img src="media/var.png" alt="img">
|
<% var keys = Object.keys(products) %>
|
||||||
<p class="l"><%= "Item name"%></p>
|
<% keys.forEach(function(key){ %>
|
||||||
<p class="r">£<%= "20.99"%></p>
|
<div class="product-container">
|
||||||
|
<a href="#"><img src="media/var.png" alt="img"></a>
|
||||||
|
<p class="l"><%= products[key].name%></p>
|
||||||
|
<p class="r">£ <%= products[key].price%></p>
|
||||||
|
</div>
|
||||||
|
<% }) %>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<div class="products">
|
<div class="products">
|
||||||
<p>Personalised 1:</p>
|
<p>Personalised 1:</p>
|
||||||
<div class="product-container">
|
<div class="product-list-container">
|
||||||
<img src="media/var.png" alt="img">
|
<div class="product-container">
|
||||||
<p class="l"><%= "Item name"%></p>
|
<a href="#"><img src="media/var.png" alt="img"></a>
|
||||||
<p class="r">£<%= "20.99"%></p>
|
<p class="l"><%= "Item name"%></p>
|
||||||
|
<p class="r">£ <%= "20.99"%></p>
|
||||||
|
</div>
|
||||||
|
<div class="product-container">
|
||||||
|
<a href="#"><img src="media/var.png" alt="img"></a>
|
||||||
|
<p class="l"><%= "Item name"%></p>
|
||||||
|
<p class="r">£ <%= "20.99"%></p>
|
||||||
|
</div>
|
||||||
|
<div class="product-container">
|
||||||
|
<a href="#"><img src="media/var.png" alt="img"></a>
|
||||||
|
<p class="l"><%= "Item name"%></p>
|
||||||
|
<p class="r">£ <%= "20.99"%></p>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="products">
|
<div class="products">
|
||||||
<p>Personalised 2:</p>
|
<p>Personalised 2:</p>
|
||||||
<div class="product-container">
|
<div class="product-list-container">
|
||||||
<img src="media/var.png" alt="img">
|
<div class="product-container">
|
||||||
<p class="l"><%= "Item name"%></p>
|
<a href="#"><img src="media/var.png" alt="img"></a>
|
||||||
<p class="r">£<%= "20.99"%></p>
|
<p class="l"><%= "Item name"%></p>
|
||||||
|
<p class="r">£ <%= "20.99"%></p>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="products">
|
<div class="products">
|
||||||
<p>Personalised 3:</p>
|
<p>Personalised 3:</p>
|
||||||
<div class="product-container">
|
<div class="product-list-container">
|
||||||
<img src="media/var.png" alt="img">
|
<div class="product-container">
|
||||||
<p class="l"><%= "Item name"%></p>
|
<a href="#"><img src="media/var.png" alt="img"></a>
|
||||||
<p class="r">£<%= "20.99"%></p>
|
<p class="l"><%= "Item name"%></p>
|
||||||
|
<p class="r">£ <%= "20.99"%></p>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="products">
|
<div class="products">
|
||||||
<p>Recent:</p>
|
<p>Recent:</p>
|
||||||
<div class="product-container">
|
<div class="product-list-container">
|
||||||
<img src="media/var.png" alt="img">
|
<div class="product-container">
|
||||||
<p class="l"><%= "Item name"%></p>
|
<a href="#"><img src="media/var.png" alt="img"></a>
|
||||||
<p class="r">£<%= "20.99"%></p>
|
<p class="l"><%= "Item name"%></p>
|
||||||
|
<p class="r">£ <%= "20.99"%></p>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|||||||
@ -4,11 +4,17 @@ function checkAuth(){
|
|||||||
document.getElementById('uname-field').setAttribute("style", "display: block;")
|
document.getElementById('uname-field').setAttribute("style", "display: block;")
|
||||||
document.getElementById('login-field').setAttribute("style", "display: none;")
|
document.getElementById('login-field').setAttribute("style", "display: none;")
|
||||||
document.getElementById('uname-dom').innerHTML = "Hello, " + user.displayName
|
document.getElementById('uname-dom').innerHTML = "Hello, " + user.displayName
|
||||||
|
document.getElementById('uname-field').setAttribute("style", "display: block;")
|
||||||
|
document.getElementById('login-field').setAttribute("style", "display: none;")
|
||||||
|
document.getElementById('uAuthMsg').setAttribute("style", "display: none;")
|
||||||
|
document.getElementById('npf').setAttribute("style", "display: block;")
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
document.getElementById('uname-field').setAttribute("style", "display: none;")
|
document.getElementById('uname-field').setAttribute("style", "display: none;")
|
||||||
document.getElementById('login-field').setAttribute("style", "display: block;")
|
document.getElementById('login-field').setAttribute("style", "display: block;")
|
||||||
document.getElementById('uname-dom').innerHTML = "Unregistered"
|
document.getElementById('uname-dom').innerHTML = "Unregistered"
|
||||||
|
document.getElementById('uAuthMsg').setAttribute("style", "display: block;")
|
||||||
|
document.getElementById('npf').setAttribute("style", "display: none;")
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|||||||
14
views/js/fInit.js
Normal file
14
views/js/fInit.js
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
// Your web app's Firebase configuration
|
||||||
|
var firebaseConfig = {
|
||||||
|
apiKey: "AIzaSyCrhgibbVUCOu3Vz3pw9iutGwTXen724eU",
|
||||||
|
authDomain: "project-gg-3b754.firebaseapp.com",
|
||||||
|
databaseURL: "https://project-gg-3b754.firebaseio.com",
|
||||||
|
projectId: "project-gg-3b754",
|
||||||
|
storageBucket: "project-gg-3b754.appspot.com",
|
||||||
|
messagingSenderId: "338558477178",
|
||||||
|
appId: "1:338558477178:web:f1b9069d1da04749a26cc3",
|
||||||
|
measurementId: "G-Y42R9NNJXS"
|
||||||
|
};
|
||||||
|
// Initialize Firebase
|
||||||
|
firebase.initializeApp(firebaseConfig);
|
||||||
|
firebase.analytics();
|
||||||
51
views/js/fdb.js
Normal file
51
views/js/fdb.js
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
function productSubmutEventHandler(){
|
||||||
|
data = {
|
||||||
|
id: 1,
|
||||||
|
name: "",
|
||||||
|
desc: "",
|
||||||
|
img: "",
|
||||||
|
location: "",
|
||||||
|
stock: 0,
|
||||||
|
public: true,
|
||||||
|
price: 0,
|
||||||
|
owner: "",
|
||||||
|
holder: ""
|
||||||
|
}
|
||||||
|
|
||||||
|
const nameField = document.getElementById('pName')
|
||||||
|
const descField = document.getElementById('pDesc')
|
||||||
|
const imgField = document.getElementById('pImgUrl')
|
||||||
|
const locField = document.getElementById('pLoc')
|
||||||
|
const stockField = document.getElementById('pStock')
|
||||||
|
const publicField = document.getElementById('pPublic')
|
||||||
|
const priceField = document.getElementById('pPrice')
|
||||||
|
|
||||||
|
var sessUid = firebase.auth().currentUser.uid
|
||||||
|
|
||||||
|
data.id = 999
|
||||||
|
data.name = nameField.value
|
||||||
|
data.desc = descField.value
|
||||||
|
data.img = imgField.value
|
||||||
|
data.location = locField.value
|
||||||
|
data.stock = stockField.value
|
||||||
|
data.public = publicField.value
|
||||||
|
data.price = priceField.value
|
||||||
|
data.owner = sessUid
|
||||||
|
data.holder = sessUid
|
||||||
|
|
||||||
|
|
||||||
|
addItem(data)
|
||||||
|
}
|
||||||
|
|
||||||
|
function addItem(item){
|
||||||
|
var database = firebase.database()
|
||||||
|
var itemRef = database.ref('/products')
|
||||||
|
|
||||||
|
itemRef.push(item)
|
||||||
|
.then(function(){
|
||||||
|
window.location.replace('/?itemAdded=true')
|
||||||
|
})
|
||||||
|
.catch(function(error){
|
||||||
|
console.log(error)
|
||||||
|
})
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue
Block a user