This commit is contained in:
Max Hunt 2020-04-27 10:48:40 +01:00
parent d7a6efbd49
commit 57b0b525ff
7 changed files with 48 additions and 33 deletions

View File

@ -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) {

View File

@ -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>

View File

@ -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;

View File

@ -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

View File

@ -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>

View File

@ -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">

View File

@ -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) {