Update
This commit is contained in:
parent
d7a6efbd49
commit
57b0b525ff
@ -35,9 +35,9 @@ app.get("/home", function(request, responce) {
|
|||||||
|
|
||||||
function homePage(request, responce) {
|
function homePage(request, responce) {
|
||||||
var dbRef = database.ref("/products")
|
var dbRef = database.ref("/products")
|
||||||
dbRef.limitToLast(5).once('value', function(snapshot){
|
dbRef.orderByChild("status").equalTo("on-sale").limitToLast(5).once('value', function(snapshot){
|
||||||
var data = {}
|
var data = {}
|
||||||
data = snapshot.val()
|
if (snapshot.val()) {data = snapshot.val()}
|
||||||
var x = "none"
|
var x = "none"
|
||||||
if (request.query.itemAdded == "true") {
|
if (request.query.itemAdded == "true") {
|
||||||
x = 'block'
|
x = 'block'
|
||||||
@ -96,6 +96,27 @@ app.get('/my-products', function(request, responce){
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
app.get('/my-product', function(request, responce){
|
||||||
|
if (request.query.uToken && request.query.productid) {
|
||||||
|
admin.auth().verifyIdToken(request.query.uToken)
|
||||||
|
.then(function(decodedToken) {
|
||||||
|
let uid = decodedToken.uid;
|
||||||
|
var dbRef = database.ref("/products/"+request.query.productid)
|
||||||
|
dbRef.once('value', function(snapshot){
|
||||||
|
data = snapshot.val()
|
||||||
|
responce.render('my-product.ejs', {item:data, key:request.query.productid})
|
||||||
|
})
|
||||||
|
})
|
||||||
|
.catch(function(error) {
|
||||||
|
console.log(error)
|
||||||
|
responce.send("<h1>Bad Auth Token</h1><a href='home'>Home</a>")
|
||||||
|
});
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
responce.send("<h1>No Auth Token Provided</h1><a href='home'>Home</a>")
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
app.get('/product', function(request, responce){
|
app.get('/product', function(request, responce){
|
||||||
if (request.query.productid) {
|
if (request.query.productid) {
|
||||||
var dbRef = database.ref("/products/"+request.query.productid)
|
var dbRef = database.ref("/products/"+request.query.productid)
|
||||||
@ -121,7 +142,7 @@ app.post('/purchase-api', function(request, responce){
|
|||||||
let uid = decodedToken.uid;
|
let uid = decodedToken.uid;
|
||||||
let product = request.body.item
|
let product = request.body.item
|
||||||
var productRef = database.ref("/products/"+product)
|
var productRef = database.ref("/products/"+product)
|
||||||
productRef.update({owner:uid})
|
productRef.update({owner:uid, status:"sold"})
|
||||||
responce.send({success:true, error:null})
|
responce.send({success:true, error:null})
|
||||||
})
|
})
|
||||||
.catch(function(error) {
|
.catch(function(error) {
|
||||||
|
|||||||
@ -63,9 +63,6 @@
|
|||||||
<input required type="file" id="pImg" value="upload" accept="image/jpeg, image/png, image/gif">
|
<input required type="file" id="pImg" value="upload" accept="image/jpeg, image/png, image/gif">
|
||||||
<input required type="text" id="pLoc" placeholder="Location (eg. London)">
|
<input required type="text" id="pLoc" placeholder="Location (eg. London)">
|
||||||
<input required type="text" id="pStock" placeholder="Quantity in stock (default: 1)">
|
<input required type="text" id="pStock" placeholder="Quantity in stock (default: 1)">
|
||||||
<div class="npf-long">
|
|
||||||
<input type="text" id="pPublic" placeholder="Display: leave empty for public, type for private, CHECKBOXES ARE FUCKING HARD">
|
|
||||||
</div>
|
|
||||||
<div class="npf-short">
|
<div class="npf-short">
|
||||||
<input required type="text" id="pPrice" placeholder="Price £">
|
<input required type="text" id="pPrice" placeholder="Price £">
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -511,18 +511,18 @@ footer a {
|
|||||||
.my-products-container {
|
.my-products-container {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.my-product-container {
|
.my-product-container {
|
||||||
padding-top: 15px;
|
padding-top: 15px;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
|
height: 160px;
|
||||||
display: inline-flex;
|
display: inline-flex;
|
||||||
}
|
}
|
||||||
.my-product-container a {
|
|
||||||
width: 20%;
|
|
||||||
max-height: 20%;
|
|
||||||
}
|
|
||||||
.my-product-container img {
|
.my-product-container img {
|
||||||
width: 100%;
|
width: 20%;
|
||||||
height: 100%;
|
max-height: 90%;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
}
|
}
|
||||||
.my-product-details-container {
|
.my-product-details-container {
|
||||||
@ -590,7 +590,7 @@ footer a {
|
|||||||
background-color: #CB0070;
|
background-color: #CB0070;
|
||||||
}
|
}
|
||||||
.edit-btn button:hover {
|
.edit-btn button:hover {
|
||||||
background-color: #20A0A0;
|
background-color: #ea62ff;
|
||||||
}
|
}
|
||||||
.sell-btn button:hover {
|
.sell-btn button:hover {
|
||||||
background-color: #AAFF00;
|
background-color: #AAFF00;
|
||||||
|
|||||||
@ -12,10 +12,10 @@ function productSubmitEventHandler(){
|
|||||||
id: 1,
|
id: 1,
|
||||||
name: "",
|
name: "",
|
||||||
desc: "",
|
desc: "",
|
||||||
img: "",
|
img: "default.png",
|
||||||
location: "",
|
location: "",
|
||||||
stock: 0,
|
stock: 1,
|
||||||
public: true,
|
status: "on-sale",
|
||||||
price: 0,
|
price: 0,
|
||||||
owner: "",
|
owner: "",
|
||||||
holder: ""
|
holder: ""
|
||||||
@ -25,7 +25,6 @@ function productSubmitEventHandler(){
|
|||||||
const descField = document.getElementById('pDesc')
|
const descField = document.getElementById('pDesc')
|
||||||
const locField = document.getElementById('pLoc')
|
const locField = document.getElementById('pLoc')
|
||||||
const stockField = document.getElementById('pStock')
|
const stockField = document.getElementById('pStock')
|
||||||
const publicField = document.getElementById('pPublic')
|
|
||||||
const priceField = document.getElementById('pPrice')
|
const priceField = document.getElementById('pPrice')
|
||||||
|
|
||||||
const imgBtn = document.getElementById('pImg')
|
const imgBtn = document.getElementById('pImg')
|
||||||
@ -35,10 +34,10 @@ function productSubmitEventHandler(){
|
|||||||
data.id = 999
|
data.id = 999
|
||||||
data.name = nameField.value
|
data.name = nameField.value
|
||||||
data.desc = descField.value
|
data.desc = descField.value
|
||||||
data.img = "default.png"
|
|
||||||
data.location = locField.value
|
data.location = locField.value
|
||||||
|
if (stockField.value) {
|
||||||
data.stock = stockField.value
|
data.stock = stockField.value
|
||||||
data.public = publicField.value
|
}
|
||||||
data.price = priceField.value
|
data.price = priceField.value
|
||||||
data.owner = sessUid
|
data.owner = sessUid
|
||||||
data.holder = sessUid
|
data.holder = sessUid
|
||||||
@ -119,12 +118,15 @@ function purchaseItem() {
|
|||||||
.then(function(result){
|
.then(function(result){
|
||||||
console.log(result)
|
console.log(result)
|
||||||
if (result.success == true) {
|
if (result.success == true) {
|
||||||
document.getElementById("api-response").setAttribute("style", "display: block")
|
purchaseBtn.setAttribute("style", "background: #00DD00; width:500px;")
|
||||||
|
purchaseBtn.innerHTML = "Item Purchased, Congratulations!"
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
purchaseBtn.setAttribute("style", "background: red;")
|
||||||
|
purchaseBtn.disabled = true
|
||||||
|
purchaseBtn.innerHTML = "ERROR"
|
||||||
document.getElementById("api-response").innerHTML = "Error: " + result.error
|
document.getElementById("api-response").innerHTML = "Error: " + result.error
|
||||||
document.getElementById("api-response").setAttribute("style", "display: block")
|
document.getElementById("api-response").setAttribute("style", "display: block")
|
||||||
document.getElementById("api-response").setAttribute("style", "color: #DD0000")
|
|
||||||
}
|
}
|
||||||
//check return value
|
//check return value
|
||||||
//update element accordingly
|
//update element accordingly
|
||||||
|
|||||||
@ -66,14 +66,10 @@
|
|||||||
<% var keys = Object.keys(products) %>
|
<% var keys = Object.keys(products) %>
|
||||||
<% keys.forEach(function(key){ %>
|
<% keys.forEach(function(key){ %>
|
||||||
<div class="my-product-container">
|
<div class="my-product-container">
|
||||||
<a>
|
|
||||||
<img class="dyn-img" onclick={my_product("<%= key%>")} title="<%= products[key].img %>" alt="img" src="media/var.png">
|
<img class="dyn-img" onclick={my_product("<%= key%>")} title="<%= products[key].img %>" alt="img" src="media/var.png">
|
||||||
</a>
|
|
||||||
<div class="my-product-details-container">
|
<div class="my-product-details-container">
|
||||||
<p class="top"><%= products[key].name%></p>
|
<p class="top"><%= products[key].name%></p>
|
||||||
<% var publicField %>
|
<p class="middle-top"><%= products[key].status%></p>
|
||||||
<% if (products[key].public == "") {publicField = "On sale"} else {publicField = "Hidden"}%>
|
|
||||||
<p class="middle-top"><%= publicField%></p>
|
|
||||||
<p class="middle-bottom"><%= products[key].location%></p>
|
<p class="middle-bottom"><%= products[key].location%></p>
|
||||||
<p class="bottom">£ <%= products[key].price%></p>
|
<p class="bottom">£ <%= products[key].price%></p>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -58,8 +58,7 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="space"></div>
|
<div class="space"></div>
|
||||||
<div id="api-response" class="purchase-message" style="display: none;">Congratulations, you own the item</div>
|
<div id="api-response" class="purchase-message" style="display: none;color: #DD0000"></div>
|
||||||
|
|
||||||
<div id="productID" style="display: none;" product_id="<%= key%>"></div>
|
<div id="productID" style="display: none;" product_id="<%= key%>"></div>
|
||||||
<div class="product-page-container">
|
<div class="product-page-container">
|
||||||
<div class="product-page-info-container">
|
<div class="product-page-info-container">
|
||||||
|
|||||||
@ -32,9 +32,9 @@ app.get("/home", function(request, responce) {
|
|||||||
|
|
||||||
function homePage(request, responce) {
|
function homePage(request, responce) {
|
||||||
var dbRef = database.ref("/products")
|
var dbRef = database.ref("/products")
|
||||||
dbRef.orderByChild("public").equalTo("").limitToLast(5).once('value', function(snapshot){
|
dbRef.orderByChild("status").equalTo("on-sale").limitToLast(5).once('value', function(snapshot){
|
||||||
var data = {}
|
var data = {}
|
||||||
data = snapshot.val()
|
if (snapshot.val()) {data = snapshot.val()}
|
||||||
var x = "none"
|
var x = "none"
|
||||||
if (request.query.itemAdded == "true") {
|
if (request.query.itemAdded == "true") {
|
||||||
x = 'block'
|
x = 'block'
|
||||||
@ -139,7 +139,7 @@ app.post('/purchase-api', function(request, responce){
|
|||||||
let uid = decodedToken.uid;
|
let uid = decodedToken.uid;
|
||||||
let product = request.body.item
|
let product = request.body.item
|
||||||
var productRef = database.ref("/products/"+product)
|
var productRef = database.ref("/products/"+product)
|
||||||
productRef.update({owner:uid, public:"no"})
|
productRef.update({owner:uid, status:"sold"})
|
||||||
responce.send({success:true, error:null})
|
responce.send({success:true, error:null})
|
||||||
})
|
})
|
||||||
.catch(function(error) {
|
.catch(function(error) {
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user