diff --git a/functions/views/edit-item.ejs b/functions/views/edit-item.ejs
index 2604481..742b9de 100644
--- a/functions/views/edit-item.ejs
+++ b/functions/views/edit-item.ejs
@@ -50,30 +50,19 @@
+
Edit product
-
-
-
-
-
-
-
-
-
diff --git a/functions/views/js/fAuth.js b/functions/views/js/fAuth.js
index 893e8e1..e5ed199 100644
--- a/functions/views/js/fAuth.js
+++ b/functions/views/js/fAuth.js
@@ -1,119 +1 @@
-function checkAuth(){
- firebase.auth().onAuthStateChanged(function(user){
- if (user) {
-
- try {document.getElementById('uname-dom').innerHTML = "Loading..."}
- catch(error){}
-
- firebase.auth().currentUser.getIdToken().then(function(idToken) {
- let url = 'login-user-api'
- let data = {uToken: idToken}
- let postData = {method: 'POST', body: JSON.stringify(data),headers: {'Content-Type': 'application/json'}}
- fetch(url, postData)
- .then(response => response.json())
- .then(function(result){
- if (result.success == true) {
- if (result.registered) {
- document.getElementById('uname-dom').innerHTML = "Hello, " + result.name
- } else {
- try {
- document.getElementById('uname-dom').innerHTML = "Unregistered!"
- document.getElementById("notifications").innerHTML = "🔔 | Register your account"
- document.getElementById("notifications").setAttribute("href", "registration")
- document.getElementById("notifications").setAttribute("style", "color: red;")
- }
- catch(error){}
- if (window.location.href.split('/').pop() != 'registration') {
- window.location.replace('registration')
- }
- }
- }
- else {
- console.log(result.error)
- document.getElementById("notifications").innerHTML = "🔔 | What the fuck just happened....."
- document.getElementById("notifications").setAttribute("style", "color: pink;")
- }
- })
- })
- try {
- document.getElementById('uname-field').setAttribute("style", "display: block;")
- document.getElementById('login-field').setAttribute("style", "display: none;")
-
- document.getElementById('uname-field').setAttribute("style", "display: block;")
- document.getElementById('login-field').setAttribute("style", "display: none;")
- }
- catch(error) {}
- try {document.getElementById('uAuthMsg').setAttribute("style", "display: none;")}
- catch(error) {}
- try{document.getElementById('authField').setAttribute("style", "display: block;")}
- catch(error) {}
- }
- else {
- document.getElementById('uname-field').setAttribute("style", "display: none;")
- document.getElementById('login-field').setAttribute("style", "display: block;")
- document.getElementById('uname-dom').innerHTML = "Unregistered"
- try{document.getElementById('uAuthMsg').setAttribute("style", "display: block;")}
- catch(error) {}
- try{document.getElementById('authField').setAttribute("style", "display: none;")}
- catch(error) {}
- }
- })
-}
-
-checkAuth()
-
-
-function signinwithgoogle(){
- var googleAuthProvider = new firebase.auth.GoogleAuthProvider()
- firebase.auth().signInWithPopup(googleAuthProvider)
- .then(function(data){
- console.log('User signed in...')
- })
- .catch(function(error){
- console.log(error)
- })
-}
-
-function signinwithfb(){
- var fbAuthProvider = new firebase.auth.FacebookAuthProvider()
- firebase.auth().signInWithPopup(fbAuthProvider)
- .then(function(data){
- console.log('User signed in...')
- })
- .catch(function(error){
- console.log(error)
- })
-}
-
-function signinwithemail(){
- const txtEmail = document.getElementById('fuid')
- const txtPassword = document.getElementById('fpwd')
-
- var email = txtEmail.value
- var pass = txtPassword.value
- var auth = firebase.auth()
-
- auth.signInWithEmailAndPassword(email, pass)
- .catch(e => console.log(e.message))
- .then(function(data){
- txtPassword.value = ''
- txtEmail.value = ''
- })
-}
-
-function signout(){
- firebase.auth().signOut()
- window.location.replace('home')
- // window.location.replace(window.location.href.split("?")[0])
-}
-
-try {
- var pwField = document.getElementById("fpwd");
- pwField.addEventListener("keyup", function(event) {
- if (event.keyCode === 13) {
- event.preventDefault()
- document.getElementById("blogin").click()
- }
- })
-}
-catch(error) {}
+function checkAuth(){firebase.auth().onAuthStateChanged(function(e){if(e){try{document.getElementById("uname-dom").innerHTML="Loading..."}catch(e){}firebase.auth().currentUser.getIdToken().then(function(e){let t={uToken:e},n={method:"POST",body:JSON.stringify(t),headers:{"Content-Type":"application/json"}};fetch("login-user-api",n).then(e=>e.json()).then(function(e){if(1==e.success)if(e.registered)document.getElementById("uname-dom").innerHTML="Hello, "+e.name;else{try{document.getElementById("uname-dom").innerHTML="Unregistered!",document.getElementById("notifications").innerHTML="🔔 | Register your account",document.getElementById("notifications").setAttribute("href","registration"),document.getElementById("notifications").setAttribute("style","color: red;")}catch(e){}"registration"!=window.location.href.split("/").pop()&&window.location.replace("registration")}else console.log(e.error),document.getElementById("notifications").innerHTML="🔔 | What the fuck just happened.....",document.getElementById("notifications").setAttribute("style","color: pink;")})});try{document.getElementById("uname-field").setAttribute("style","display: block;"),document.getElementById("login-field").setAttribute("style","display: none;"),document.getElementById("uname-field").setAttribute("style","display: block;"),document.getElementById("login-field").setAttribute("style","display: none;")}catch(e){}try{document.getElementById("uAuthMsg").setAttribute("style","display: none;")}catch(e){}try{document.getElementById("authField").setAttribute("style","display: block;")}catch(e){}}else{document.getElementById("uname-field").setAttribute("style","display: none;"),document.getElementById("login-field").setAttribute("style","display: block;"),document.getElementById("uname-dom").innerHTML="Unregistered";try{document.getElementById("uAuthMsg").setAttribute("style","display: block;")}catch(e){}try{document.getElementById("authField").setAttribute("style","display: none;")}catch(e){}}})}function signinwithgoogle(){var e=new firebase.auth.GoogleAuthProvider;firebase.auth().signInWithPopup(e).then(function(e){console.log("User signed in...")}).catch(function(e){console.log(e)})}function signinwithfb(){var e=new firebase.auth.FacebookAuthProvider;firebase.auth().signInWithPopup(e).then(function(e){console.log("User signed in...")}).catch(function(e){console.log(e)})}function signinwithemail(){const e=document.getElementById("fuid"),t=document.getElementById("fpwd");var n=e.value,i=t.value;firebase.auth().signInWithEmailAndPassword(n,i).catch(e=>console.log(e.message)).then(function(n){t.value="",e.value=""})}function signout(){firebase.auth().signOut(),window.location.replace("home")}checkAuth();try{var pwField=document.getElementById("fpwd");pwField.addEventListener("keyup",function(e){13===e.keyCode&&(e.preventDefault(),document.getElementById("blogin").click())})}catch(e){}
\ No newline at end of file
diff --git a/functions/views/js/fAuth.src.js b/functions/views/js/fAuth.src.js
new file mode 100644
index 0000000..893e8e1
--- /dev/null
+++ b/functions/views/js/fAuth.src.js
@@ -0,0 +1,119 @@
+function checkAuth(){
+ firebase.auth().onAuthStateChanged(function(user){
+ if (user) {
+
+ try {document.getElementById('uname-dom').innerHTML = "Loading..."}
+ catch(error){}
+
+ firebase.auth().currentUser.getIdToken().then(function(idToken) {
+ let url = 'login-user-api'
+ let data = {uToken: idToken}
+ let postData = {method: 'POST', body: JSON.stringify(data),headers: {'Content-Type': 'application/json'}}
+ fetch(url, postData)
+ .then(response => response.json())
+ .then(function(result){
+ if (result.success == true) {
+ if (result.registered) {
+ document.getElementById('uname-dom').innerHTML = "Hello, " + result.name
+ } else {
+ try {
+ document.getElementById('uname-dom').innerHTML = "Unregistered!"
+ document.getElementById("notifications").innerHTML = "🔔 | Register your account"
+ document.getElementById("notifications").setAttribute("href", "registration")
+ document.getElementById("notifications").setAttribute("style", "color: red;")
+ }
+ catch(error){}
+ if (window.location.href.split('/').pop() != 'registration') {
+ window.location.replace('registration')
+ }
+ }
+ }
+ else {
+ console.log(result.error)
+ document.getElementById("notifications").innerHTML = "🔔 | What the fuck just happened....."
+ document.getElementById("notifications").setAttribute("style", "color: pink;")
+ }
+ })
+ })
+ try {
+ document.getElementById('uname-field').setAttribute("style", "display: block;")
+ document.getElementById('login-field').setAttribute("style", "display: none;")
+
+ document.getElementById('uname-field').setAttribute("style", "display: block;")
+ document.getElementById('login-field').setAttribute("style", "display: none;")
+ }
+ catch(error) {}
+ try {document.getElementById('uAuthMsg').setAttribute("style", "display: none;")}
+ catch(error) {}
+ try{document.getElementById('authField').setAttribute("style", "display: block;")}
+ catch(error) {}
+ }
+ else {
+ document.getElementById('uname-field').setAttribute("style", "display: none;")
+ document.getElementById('login-field').setAttribute("style", "display: block;")
+ document.getElementById('uname-dom').innerHTML = "Unregistered"
+ try{document.getElementById('uAuthMsg').setAttribute("style", "display: block;")}
+ catch(error) {}
+ try{document.getElementById('authField').setAttribute("style", "display: none;")}
+ catch(error) {}
+ }
+ })
+}
+
+checkAuth()
+
+
+function signinwithgoogle(){
+ var googleAuthProvider = new firebase.auth.GoogleAuthProvider()
+ firebase.auth().signInWithPopup(googleAuthProvider)
+ .then(function(data){
+ console.log('User signed in...')
+ })
+ .catch(function(error){
+ console.log(error)
+ })
+}
+
+function signinwithfb(){
+ var fbAuthProvider = new firebase.auth.FacebookAuthProvider()
+ firebase.auth().signInWithPopup(fbAuthProvider)
+ .then(function(data){
+ console.log('User signed in...')
+ })
+ .catch(function(error){
+ console.log(error)
+ })
+}
+
+function signinwithemail(){
+ const txtEmail = document.getElementById('fuid')
+ const txtPassword = document.getElementById('fpwd')
+
+ var email = txtEmail.value
+ var pass = txtPassword.value
+ var auth = firebase.auth()
+
+ auth.signInWithEmailAndPassword(email, pass)
+ .catch(e => console.log(e.message))
+ .then(function(data){
+ txtPassword.value = ''
+ txtEmail.value = ''
+ })
+}
+
+function signout(){
+ firebase.auth().signOut()
+ window.location.replace('home')
+ // window.location.replace(window.location.href.split("?")[0])
+}
+
+try {
+ var pwField = document.getElementById("fpwd");
+ pwField.addEventListener("keyup", function(event) {
+ if (event.keyCode === 13) {
+ event.preventDefault()
+ document.getElementById("blogin").click()
+ }
+ })
+}
+catch(error) {}
diff --git a/functions/views/js/fdb.js b/functions/views/js/fdb.js
index 29b7c24..b3c41b9 100644
--- a/functions/views/js/fdb.js
+++ b/functions/views/js/fdb.js
@@ -1,517 +1 @@
-function checkFields() {
- if (document.getElementById('pName').value && document.getElementById('pDesc').value
- && document.getElementById('pLoc').value && document.getElementById('pPrice').value
- && document.getElementById('imgInput').files[0]) {
- return true
- }
- return false
-}
-
-async function productSubmitEventHandler(){
- const submitBtn = document.getElementById('pSend')
- if (submitBtn.innerHTML == "Submit!") {
- if (checkFields()) {
- submitBtn.innerHTML = "Uploading..."
- submitBtn.disabled = true
-
- let newProduct = {id: 1,name: "",desc: "",img: "default.png",location: "",stock: 1,status: "on-sale",price: 0,owner: "",holder: ""}
-
- const nameField = document.getElementById('pName')
- const descField = document.getElementById('pDesc')
- const locField = document.getElementById('pLoc')
- const stockField = document.getElementById('pStock')
- const priceField = document.getElementById('pPrice')
- let fInput = document.getElementById('imgInput')
-
- let uid = firebase.auth().currentUser.uid
-
- newProduct.id = 999
- newProduct.name = nameField.value
- newProduct.desc = descField.value
- newProduct.location = locField.value
- if (stockField.value) {newProduct.stock = stockField.value}
- newProduct.price = priceField.value
- newProduct.owner = uid
- newProduct.holder = uid
-
- let image = fInput.files[0]
-
- let imageName = fInput.files[0].name
- let imagePackage = {name:imageName, b64:null}
-
- firebase.auth().currentUser.getIdToken().then(function(idToken){
- let url = 'new-product-api'
- let data = {authToken: idToken, product: newProduct, image: imagePackage}
- let postData = {method: 'POST', body: JSON.stringify(data), headers: {'Content-Type': 'application/json'}}
- fetch(url, postData)
- .then(response => response.json())
- .then(function(result){
- if (result.success) {
- let imageRef = firebase.storage().ref(result.imgRef)
- imageRef.put(image).then(function(){
- submitBtn.innerHTML = "Done! Go Home..."
- submitBtn.disabled = false
- submitBtn.setAttribute('style', 'background:#00FF55; transition:0.5s; width:162%;')
- })
- .catch(e=>{
- submitBtn.innerHTML = "Error..."
- submitBtn.setAttribute('style', 'color:red;')
- document.getElementById("api-response").innerHTML = "Error: " + e
- document.getElementById("api-response").setAttribute("style", "display: block")
- })
- }
- else {
- submitBtn.innerHTML = "Error..."
- submitBtn.setAttribute('style', 'color:red;')
- document.getElementById("api-response").innerHTML = "Error: " + result.error
- document.getElementById("api-response").setAttribute("style", "display: block")
- }
- })
- })
- } else {
- document.getElementById("api-response").innerHTML = "Fill in all required fields!"
- document.getElementById("api-response").setAttribute("style", "display: block")
- }
- } else {
- window.location.replace('home')
- }
-}
-
-function productUpdateEventHandler() {
- const submitBtn = document.getElementById('pSend')
- if (submitBtn.innerHTML == "Update") {
- const nameField = document.getElementById('pName')
- const descField = document.getElementById('pDesc')
- const locField = document.getElementById('pLoc')
- const stockField = document.getElementById('pStock')
- const priceField = document.getElementById('pPrice')
-
- const item_id_element = document.getElementById("productID")
- const item_id = item_id_element.getAttribute("product_id")
-
- submitBtn.innerHTML = "Updating..."
- submitBtn.disabled = true
-
- updates = {name: nameField.value, desc: descField.value, location: locField.value, stock: stockField.value, price: priceField.value}
-
- firebase.auth().currentUser.getIdToken().then(function(idToken){
- let url = 'update-product-api'
- let data = {authToken: idToken, product: updates, productID: item_id}
- let postData = {method: 'POST', body: JSON.stringify(data), headers: {'Content-Type': 'application/json'}}
- fetch(url, postData)
- .then(response => response.json())
- .then(function(result){
- if (result.success) {
- submitBtn.setAttribute("style", "width: 300px; background: #00DD00;cursor: pointer;")
- submitBtn.innerHTML = "Done!, Go Home..."
- submitBtn.disabled = false
- }
- else {
- submitBtn.innerHTML = "Error..."
- submitBtn.setAttribute('style', 'color:red;')
- document.getElementById("api-response").innerHTML = "Error: " + result.error
- document.getElementById("api-response").setAttribute("style", "display: block")
- }
- })
- })
- }
- else {
- window.location.replace('home')
- }
-}
-
-function updateImgs() {
- const storage = firebase.storage()
- const imgRef = storage.ref()
-
- var images = document.getElementsByClassName('dyn-img')
- // console.log(images)
- Array.from(images).forEach((image) => {
- var pathReference = imgRef.child(image.title)
- pathReference.getDownloadURL().then(function(url) {image.src = url}).catch(e => {console.log(e.message)})
- })
-}
-updateImgs()
-
-function requestItem(){
- const reqBtn = document.getElementById('req-btn')
- const bMessage = document.getElementById('bMsg')
- if (reqBtn.innerHTML == "Request!") {
- if (firebase.auth().currentUser) {
- reqBtn.setAttribute("style", "background: #87e5ff; width:300px;")
- reqBtn.innerHTML = "Send?"
- bMessage.setAttribute('style', 'display: block;')
- } else {
- reqBtn.innerHTML = "Please sign in"
- reqBtn.setAttribute("style", "background: #FFa5af; width:300px;")
- }
- }
- else if (reqBtn.innerHTML == "Send?") {
- if (firebase.auth().currentUser) {
- firebase.auth().currentUser.getIdToken().then(function(idToken) {
- reqBtn.innerHTML = "Sending..."
- reqBtn.disabled = true
- let userMessage = bMessage.value
- let item_id = document.getElementById("productID").getAttribute("product_id")
- const url = 'request-api'
- let data = {prodID: item_id, authToken: idToken, usrMsg: userMessage}
- let postData = {method: 'POST', body: JSON.stringify(data), headers: {'Content-Type': 'application/json'}}
- fetch(url, postData)
- .then(response => response.json())
- .then(function(result){
- console.log(result)
- if (result.success == true) {
- reqBtn.setAttribute("style", "background: #00DD00; width:520px; transition: 0.7s;")
- reqBtn.innerHTML = "Done! Go Home"
- reqBtn.disabled = false
- }
- else {
- reqBtn.setAttribute("style", "background: red;")
- reqBtn.disabled = true
- reqBtn.innerHTML = "ERROR"
- document.getElementById("api-response").innerHTML = "Error: " + result.error
- document.getElementById("api-response").setAttribute("style", "display: block")
- }
- })
- })
- } else {
- reqBtn.innerHTML = "Please sign in"
- }
- }
- else {
- window.location.replace('home')
- }
-}
-
-function edit_item() {
- firebase.auth().currentUser.getIdToken().then(function(idToken) {
- var item_id_element = document.getElementById("productID")
- var item_id = item_id_element.getAttribute("product_id")
- window.location.replace("edit-item?uToken=" + idToken + '&productid=' + item_id)
- })
- .catch(e => {console.log(e)})
-}
-
-function toggle_sale() {
- firebase.auth().currentUser.getIdToken().then(function(idToken) {
- let item_id = document.getElementById("productID").getAttribute("product_id")
- let item_status = document.getElementById("productID").getAttribute("product_status")
- let toggle_sale_btn = document.getElementById("toggleSaleBtn")
- toggle_sale_btn.disabled = true
- var toggle_status = true
- if (item_status == 'on-sale') {toggle_status = false}
- const url = 'toggle-sale-api'
- let data = {prodID: item_id, authToken: idToken, targetState: toggle_status}
- let postData = { method: 'POST', body: JSON.stringify(data),headers: {'Content-Type': 'application/json'}}
- fetch(url, postData)
- .then(response => response.json())
- .then(function(result){
- console.log(result)
- if (result.success == true) {
- toggle_sale_btn.setAttribute("style", "background: #00DD00; transition: 0.5s;")
- toggle_sale_btn.innerHTML = "Done!"
- let sold_btn = document.getElementById("soldBtn")
- let edit_button = document.getElementById("editBtn")
- sold_btn.disabled = true
- edit_button.disabled = true
- } else {
- toggle_sale_btn.setAttribute("style", "background: red;")
- toggle_sale_btn.innerHTML = "ERROR"
- document.getElementById("api-response").innerHTML = "Error: " + result.error
- document.getElementById("api-response").setAttribute("style", "display: block")
- }
- })
- .catch (e=>{
- toggle_sale_btn.setAttribute("style", "background: red;")
- toggle_sale_btn.innerHTML = "ERROR"
- document.getElementById("api-response").innerHTML = "Error: " + e
- document.getElementById("api-response").setAttribute("style", "display: block")
- })
- })
-}
-
-function mark_as_sold(){
- firebase.auth().currentUser.getIdToken().then(function(idToken) {
- let item_id = document.getElementById("productID").getAttribute("product_id")
- let sold_btn = document.getElementById("soldBtn")
- const url = 'sold-api'
- let data = {prodID: item_id, authToken: idToken}
- let postData = { method: 'POST', body: JSON.stringify(data), headers: {'Content-Type': 'application/json'}}
- fetch(url, postData)
- .then(response => response.json())
- .then(function(result){
- if (result.success == true) {
- sold_btn.setAttribute("style", "background: #00DD00; width:200px;")
- sold_btn.innerHTML = "Sold!"
- sold_btn.disabled = true
- let sale_button = document.getElementById("toggleSaleBtn")
- let edit_button = document.getElementById("editBtn")
- sale_button.disabled = true
- edit_button.disabled = true
- }
- else {
- sold_btn.setAttribute("style", "background: red;")
- sold_btn.innerHTML = "ERROR"
- document.getElementById("api-response").innerHTML = "Error: " + e
- document.getElementById("api-response").setAttribute("style", "display: block")
- }
- })
- .catch (e=>{
- sold_btn.setAttribute("style", "background: red;")
- sold_btn.innerHTML = "ERROR"
- document.getElementById("api-response").innerHTML = "Error: " + e
- document.getElementById("api-response").setAttribute("style", "display: block")
- })
- })
-}
-
-function my_product(productID) {
- firebase.auth().currentUser.getIdToken().then(function(idToken) {
- window.location.replace("my-product?uToken=" + idToken + '&productid=' + productID)
- })
- .catch(e => {console.log(e)})
-}
-
-function my_products() {
- firebase.auth().currentUser.getIdToken().then(function(idToken) {
- window.location.replace("my-products?uToken=" + idToken)
- })
- .catch(e => {console.log(e)})
-}
-
-function showShipField(){
- document.getElementById('shippingaddressbutton').setAttribute("style", "display:none;")
- document.getElementById('shippingaddressinput').setAttribute("style", "display:block;")
- showUserShippingAddress()
-}
-
-function showUserShippingAddress(){
- firebase.auth().currentUser.getIdToken().then(function(idToken){
- let url = 'shipping-adress-get-api'
- let data = {authToken: idToken}
- let postData = {method: 'POST', body: JSON.stringify(data),headers: {'Content-Type': 'application/json'}}
- fetch(url, postData)
- .then(response => response.json())
- .then(function(result){
- if (result.success) {
- document.getElementById("shippingaddressinput").value = result.address
- }
- else {
- document.getElementById("api-response").innerHTML = "Error: " + result.error
- document.getElementById("api-response").setAttribute("style", "display: block")
- document.getElementById("shippingaddressinput").value = ""
- document.getElementById("shippingaddressinput").placeholder = "Can't retrieve current shipping address"
- }
- })
- })
-}
-
-function addShippingAddress(){
- let newAddress = document.getElementById('shippingaddressinput').value
- firebase.auth().currentUser.getIdToken().then(function(idToken){
- let url = 'shipping-adress-edit-api'
- let data = {authToken: idToken, address: newAddress}
- let postData = {method: 'POST', body: JSON.stringify(data),headers: {'Content-Type': 'application/json'}}
- fetch(url, postData)
- .then(response => response.json())
- .then(function(result){
- if (result.success) {
- document.getElementById("shippingaddressinput").value = ""
- document.getElementById("shippingaddressinput").placeholder = "Success!"
- }
- else {
- document.getElementById("api-response").innerHTML = "Error: " + result.error
- document.getElementById("api-response").setAttribute("style", "display: block")
- document.getElementById("shippingaddressinput").value = ""
- document.getElementById("shippingaddressinput").placeholder = "ERROR!"
- }
- })
- })
-}
-
-function search(keywords){
- window.location.replace('search?search='+keywords)
-}
-
-function u_r_submit(){
- let submitBtn = document.getElementById('u-r-btn')
- if (submitBtn.innerHTML == "Submit!") {
- submitBtn.disabled = true
- if (firebase.auth().currentUser) {
- firebase.auth().currentUser.getIdToken().then(function(idToken){
- let firstNameField = document.getElementById('f-name')
- let lastNameField = document.getElementById('l-name')
- let addressField = document.getElementById('u-address')
- let fName = firstNameField.value
- let lName = lastNameField.value
- let address = addressField.value
- let fInput = document.getElementById('imgInput')
- let picName = fInput.files[0].name
- let image = fInput.files[0]
- let userData = {fName:fName, lName:lName, address:address, pPic:picName}
- let url = 'register-new-user-api'
- let data = {authToken: idToken, data: userData}
- let postData = {method: 'POST', body: JSON.stringify(data), headers: {'Content-Type': 'application/json'}}
- fetch(url, postData)
- .then(response => response.json())
- .then(function(result){
- if (result.success) {
- let imageRef = firebase.storage().ref(result.imgRef)
- submitBtn.innerHTML = "Uploading..."
- submitBtn.disabled = true
- imageRef.put(image).then(function(){
- submitBtn.setAttribute("style", "background: #00FF00; width: 100%; transition: 0.5s;")
- submitBtn.innerHTML = "Success! Go Home..."
- submitBtn.disabled = false
- })
- .catch(e=>{
- submitBtn.setAttribute("style", "background: red;")
- submitBtn.innerHTML = "ERROR"
- submitBtn.disabled = false
- document.getElementById("api-response").innerHTML = "Error: " + e
- document.getElementById("api-response").setAttribute("style", "display: block")
- })
- }
- else {
- submitBtn.setAttribute("style", "background: red;")
- submitBtn.innerHTML = "ERROR"
- submitBtn.disabled = false
- document.getElementById("api-response").innerHTML = "Error: " + result.error
- document.getElementById("api-response").setAttribute("style", "display: block")
- }
- })
- })
- .catch(e=>{
- submitBtn.setAttribute("style", "background: red;")
- submitBtn.innerHTML = "AUTH!!!"
- document.getElementById("api-response").innerHTML = "Error: " + e
- document.getElementById("api-response").setAttribute("style", "display: block")
- })
- } else {
- submitBtn.setAttribute("style", "background: red;")
- submitBtn.disabled = false
- submitBtn.innerHTML = "ERROR!"
- document.getElementById("api-response").innerHTML = "Error: Please log in"
- document.getElementById("api-response").setAttribute("style", "display: block")
- }
- } else {
- window.location.replace('home')
- }
-}
-
-function initFileDropListner() {
- let dropZone = document.getElementById("dropzone")
- if (dropZone) {
- let fInput = document.getElementById('imgInput')
- dropZone.ondragover = function(){this.className = "dropzone dragover";return false}
- dropZone.ondragleave = function(){this.className = "dropzone";return false}
- dropZone.onclick = function(){
- fInput.click()
- }
- fInput.onchange = function(event) {
- let addedFile = event.target.files[0]
- fileAddSequence(addedFile)
- }
- dropZone.ondrop = function(event) {
- event.preventDefault()
- this.className = "dropzone"
- let droppedFile = event.dataTransfer.files[0]
- fileAddSequence(droppedFile)
- }
- }
-}
-
-initFileDropListner()
-
-function fileAddSequence(file){
- let fInput = document.getElementById('imgInput')
- if (["image/jpeg", "image/png", "image/gif"].includes(file.type)) {
- let fileSize = file.size / 1024 / 1024
- if (fileSize < 10){
- fInput.files[0] = file
- let imgPreview = document.getElementById('imgPreview')
- let svgElement = document.getElementById('svgElement')
- imgPreview.src = URL.createObjectURL(file)
- imgPreview.setAttribute('style', 'display: block;')
- svgElement.setAttribute('style', 'display: none;')
- } else {
- document.getElementById("api-response").innerHTML = "Files under 10MB please..."
- document.getElementById("api-response").setAttribute("style", "display: block")
- }
- } else {
- document.getElementById("api-response").innerHTML = "Accepted formats: jpeg/jpg, png, gif"
- document.getElementById("api-response").setAttribute("style", "display: block")
- }
-}
-
-try {
- var addressField = document.getElementById("shippingaddressinput")
- addressField.addEventListener("keyup", function(event) {
- if (event.keyCode === 13) {
- event.preventDefault()
- if (addressField.value == "Success!" || addressField.value == ""){
- addressField.value = ""
- addressField.blur()
- }
- else {
- addShippingAddress()
- addressField.blur()
- }
- }
- })
-}
-catch(error) {}
-
-function bSearch(){
- let searchField = document.getElementById("sfield")
- if (searchField.value == ""){
- searchField.blur()
- }
- else {
- search(searchField.value)
- }
-}
-
-
-try {
- let searchField = document.getElementById("sfield")
- searchField.addEventListener("keyup", function(event) {
- if (event.keyCode === 13) {
- event.preventDefault()
- if (searchField.value == ""){
- searchField.blur()
- }
- else {
- search(searchField.value)
- }
- }
- })
-}
-catch(error) {}
-
-try {
- let regAddressField = document.getElementById("u-address")
- regAddressField.addEventListener("keyup", function(event) {
- if (event.keyCode === 13) {
- event.preventDefault()
- document.getElementById("u-r-btn").click()
- }
- })
-}
-catch(error) {}
-
-window.addEventListener("dragover", function(e) {
- if (e.target.id != "dropzone") {
- e.preventDefault()
- e.dataTransfer.effectAllowed = "none"
- e.dataTransfer.dropEffect = "none"
- }
-})
-
-window.addEventListener("drop", function(e) {
- if (e.target.id != "dropzone") {
- e.preventDefault()
- e.dataTransfer.effectAllowed = "none"
- e.dataTransfer.dropEffect = "none"
- }
-})
\ No newline at end of file
+function checkFields(){return!!(document.getElementById("pName").value&&document.getElementById("pDesc").value&&document.getElementById("pLoc").value&&document.getElementById("pPrice").value&&document.getElementById("imgInput").files[0])}async function productSubmitEventHandler(){const e=document.getElementById("pSend");if("Submit!"==e.innerHTML)if(checkFields()){e.innerHTML="Uploading...",e.disabled=!0;let t={id:1,name:"",desc:"",img:"default.png",location:"",stock:1,status:"on-sale",price:0,owner:"",holder:""};const n=document.getElementById("pName"),d=document.getElementById("pDesc"),r=document.getElementById("pLoc"),o=document.getElementById("pStock"),s=document.getElementById("pPrice");let i=document.getElementById("imgInput"),l=firebase.auth().currentUser.uid;t.id=999,t.name=n.value,t.desc=d.value,t.location=r.value,o.value&&(t.stock=o.value),t.price=s.value,t.owner=l,t.holder=l;let u=i.files[0],c={name:i.files[0].name,b64:null};firebase.auth().currentUser.getIdToken().then(function(n){let d={authToken:n,product:t,image:c},r={method:"POST",body:JSON.stringify(d),headers:{"Content-Type":"application/json"}};fetch("new-product-api",r).then(e=>e.json()).then(function(t){if(t.success){firebase.storage().ref(t.imgRef).put(u).then(function(){e.innerHTML="Done! Go Home...",e.disabled=!1,e.setAttribute("style","background:#00FF55; transition:0.5s; width:162%;")}).catch(t=>{e.innerHTML="Error...",e.setAttribute("style","color:red;"),document.getElementById("api-response").innerHTML="Error: "+t,document.getElementById("api-response").setAttribute("style","display: block")})}else e.innerHTML="Error...",e.setAttribute("style","color:red;"),document.getElementById("api-response").innerHTML="Error: "+t.error,document.getElementById("api-response").setAttribute("style","display: block")})})}else document.getElementById("api-response").innerHTML="Fill in all required fields!",document.getElementById("api-response").setAttribute("style","display: block");else window.location.replace("home")}function productUpdateEventHandler(){const e=document.getElementById("pSend");if("Update"==e.innerHTML){const t=document.getElementById("pName"),n=document.getElementById("pDesc"),d=document.getElementById("pLoc"),r=document.getElementById("pStock"),o=document.getElementById("pPrice"),s=document.getElementById("productID").getAttribute("product_id");e.innerHTML="Updating...",e.disabled=!0,updates={name:t.value,desc:n.value,location:d.value,stock:r.value,price:o.value},firebase.auth().currentUser.getIdToken().then(function(t){let n={authToken:t,product:updates,productID:s},d={method:"POST",body:JSON.stringify(n),headers:{"Content-Type":"application/json"}};fetch("update-product-api",d).then(e=>e.json()).then(function(t){t.success?(e.setAttribute("style","width: 310px; background: #00DD00;cursor: pointer;"),e.innerHTML="Done!, Go Home...",e.disabled=!1):(e.innerHTML="Error...",e.setAttribute("style","color:red;"),document.getElementById("api-response").innerHTML="Error: "+t.error,document.getElementById("api-response").setAttribute("style","display: block"))})})}else window.location.replace("home")}function updateImgs(){const e=firebase.storage().ref();var t=document.getElementsByClassName("dyn-img");Array.from(t).forEach(t=>{e.child(t.title).getDownloadURL().then(function(e){t.src=e}).catch(e=>{console.log(e.message)})})}function requestItem(){const e=document.getElementById("req-btn"),t=document.getElementById("bMsg");"Request!"==e.innerHTML?firebase.auth().currentUser?(e.setAttribute("style","background: #87e5ff; width:300px;"),e.innerHTML="Send?",t.setAttribute("style","display: block;")):(e.innerHTML="Please sign in",e.setAttribute("style","background: #FFa5af; width:300px;")):"Send?"==e.innerHTML?firebase.auth().currentUser?firebase.auth().currentUser.getIdToken().then(function(n){e.innerHTML="Sending...",e.disabled=!0;let d=t.value;let r={prodID:document.getElementById("productID").getAttribute("product_id"),authToken:n,usrMsg:d},o={method:"POST",body:JSON.stringify(r),headers:{"Content-Type":"application/json"}};fetch("request-api",o).then(e=>e.json()).then(function(t){console.log(t),1==t.success?(e.setAttribute("style","background: #00DD00; width:520px; transition: 0.7s;"),e.innerHTML="Done! Go Home",e.disabled=!1):(e.setAttribute("style","background: red;"),e.disabled=!0,e.innerHTML="ERROR",document.getElementById("api-response").innerHTML="Error: "+t.error,document.getElementById("api-response").setAttribute("style","display: block"))})}):e.innerHTML="Please sign in":window.location.replace("home")}function edit_item(){firebase.auth().currentUser.getIdToken().then(function(e){var t=document.getElementById("productID").getAttribute("product_id");window.location.replace("edit-item?uToken="+e+"&productid="+t)}).catch(e=>{console.log(e)})}function toggle_sale(){firebase.auth().currentUser.getIdToken().then(function(e){let t=document.getElementById("productID").getAttribute("product_id"),n=document.getElementById("productID").getAttribute("product_status"),d=document.getElementById("toggleSaleBtn");d.disabled=!0;var r=!0;"on-sale"==n&&(r=!1);let o={prodID:t,authToken:e,targetState:r},s={method:"POST",body:JSON.stringify(o),headers:{"Content-Type":"application/json"}};fetch("toggle-sale-api",s).then(e=>e.json()).then(function(e){if(console.log(e),1==e.success){d.setAttribute("style","background: #00DD00; transition: 0.5s;"),d.innerHTML="Done!";let e=document.getElementById("soldBtn"),t=document.getElementById("editBtn");e.disabled=!0,t.disabled=!0}else d.setAttribute("style","background: red;"),d.innerHTML="ERROR",document.getElementById("api-response").innerHTML="Error: "+e.error,document.getElementById("api-response").setAttribute("style","display: block")}).catch(e=>{d.setAttribute("style","background: red;"),d.innerHTML="ERROR",document.getElementById("api-response").innerHTML="Error: "+e,document.getElementById("api-response").setAttribute("style","display: block")})})}function mark_as_sold(){firebase.auth().currentUser.getIdToken().then(function(t){let n=document.getElementById("productID").getAttribute("product_id"),d=document.getElementById("soldBtn");let r={prodID:n,authToken:t},o={method:"POST",body:JSON.stringify(r),headers:{"Content-Type":"application/json"}};fetch("sold-api",o).then(e=>e.json()).then(function(t){if(1==t.success){d.setAttribute("style","background: #00DD00; width:200px;"),d.innerHTML="Sold!",d.disabled=!0;let e=document.getElementById("toggleSaleBtn"),t=document.getElementById("editBtn");e.disabled=!0,t.disabled=!0}else d.setAttribute("style","background: red;"),d.innerHTML="ERROR",document.getElementById("api-response").innerHTML="Error: "+e,document.getElementById("api-response").setAttribute("style","display: block")}).catch(e=>{d.setAttribute("style","background: red;"),d.innerHTML="ERROR",document.getElementById("api-response").innerHTML="Error: "+e,document.getElementById("api-response").setAttribute("style","display: block")})})}function my_product(e){firebase.auth().currentUser.getIdToken().then(function(t){window.location.replace("my-product?uToken="+t+"&productid="+e)}).catch(e=>{console.log(e)})}function my_products(){firebase.auth().currentUser.getIdToken().then(function(e){window.location.replace("my-products?uToken="+e)}).catch(e=>{console.log(e)})}function showShipField(){document.getElementById("shippingaddressbutton").setAttribute("style","display:none;"),document.getElementById("shippingaddressinput").setAttribute("style","display:block;"),showUserShippingAddress()}function showUserShippingAddress(){firebase.auth().currentUser.getIdToken().then(function(e){let t={authToken:e},n={method:"POST",body:JSON.stringify(t),headers:{"Content-Type":"application/json"}};fetch("shipping-adress-get-api",n).then(e=>e.json()).then(function(e){e.success?document.getElementById("shippingaddressinput").value=e.address:(document.getElementById("api-response").innerHTML="Error: "+e.error,document.getElementById("api-response").setAttribute("style","display: block"),document.getElementById("shippingaddressinput").value="",document.getElementById("shippingaddressinput").placeholder="Can't retrieve current shipping address")})})}function addShippingAddress(){let e=document.getElementById("shippingaddressinput").value;firebase.auth().currentUser.getIdToken().then(function(t){let n={authToken:t,address:e},d={method:"POST",body:JSON.stringify(n),headers:{"Content-Type":"application/json"}};fetch("shipping-adress-edit-api",d).then(e=>e.json()).then(function(e){e.success?(document.getElementById("shippingaddressinput").value="",document.getElementById("shippingaddressinput").placeholder="Success!"):(document.getElementById("api-response").innerHTML="Error: "+e.error,document.getElementById("api-response").setAttribute("style","display: block"),document.getElementById("shippingaddressinput").value="",document.getElementById("shippingaddressinput").placeholder="ERROR!")})})}function search(e){window.location.replace("search?search="+e)}function u_r_submit(){let e=document.getElementById("u-r-btn");"Submit!"==e.innerHTML?(e.disabled=!0,firebase.auth().currentUser?firebase.auth().currentUser.getIdToken().then(function(t){let n=document.getElementById("f-name"),d=document.getElementById("l-name"),r=document.getElementById("u-address"),o=n.value,s=d.value,i=r.value,l=document.getElementById("imgInput"),u=l.files[0].name,c=l.files[0],a={authToken:t,data:{fName:o,lName:s,address:i,pPic:u}},p={method:"POST",body:JSON.stringify(a),headers:{"Content-Type":"application/json"}};fetch("register-new-user-api",p).then(e=>e.json()).then(function(t){if(t.success){let n=firebase.storage().ref(t.imgRef);e.innerHTML="Uploading...",e.disabled=!0,n.put(c).then(function(){e.setAttribute("style","background: #00FF00; width: 100%; transition: 0.5s;"),e.innerHTML="Success! Go Home...",e.disabled=!1}).catch(t=>{e.setAttribute("style","background: red;"),e.innerHTML="ERROR",e.disabled=!1,document.getElementById("api-response").innerHTML="Error: "+t,document.getElementById("api-response").setAttribute("style","display: block")})}else e.setAttribute("style","background: red;"),e.innerHTML="ERROR",e.disabled=!1,document.getElementById("api-response").innerHTML="Error: "+t.error,document.getElementById("api-response").setAttribute("style","display: block")})}).catch(t=>{e.setAttribute("style","background: red;"),e.innerHTML="AUTH!!!",document.getElementById("api-response").innerHTML="Error: "+t,document.getElementById("api-response").setAttribute("style","display: block")}):(e.setAttribute("style","background: red;"),e.disabled=!1,e.innerHTML="ERROR!",document.getElementById("api-response").innerHTML="Error: Please log in",document.getElementById("api-response").setAttribute("style","display: block"))):window.location.replace("home")}function initFileDropListner(){let e=document.getElementById("dropzone");if(e){let t=document.getElementById("imgInput");e.ondragover=function(){return this.className="dropzone dragover",!1},e.ondragleave=function(){return this.className="dropzone",!1},e.onclick=function(){t.click()},t.onchange=function(e){fileAddSequence(e.target.files[0])},e.ondrop=function(e){e.preventDefault(),this.className="dropzone",fileAddSequence(e.dataTransfer.files[0])}}}function fileAddSequence(e){let t=document.getElementById("imgInput");if(["image/jpeg","image/png","image/gif"].includes(e.type)){if(e.size/1024/1024<10){t.files[0]=e;let n=document.getElementById("imgPreview"),d=document.getElementById("svgElement");n.src=URL.createObjectURL(e),n.setAttribute("style","display: block;"),d.setAttribute("style","display: none;")}else document.getElementById("api-response").innerHTML="Files under 10MB please...",document.getElementById("api-response").setAttribute("style","display: block")}else document.getElementById("api-response").innerHTML="Accepted formats: jpeg/jpg, png, gif",document.getElementById("api-response").setAttribute("style","display: block")}updateImgs(),initFileDropListner();try{var addressField=document.getElementById("shippingaddressinput");addressField.addEventListener("keyup",function(e){13===e.keyCode&&(e.preventDefault(),"Success!"==addressField.value||""==addressField.value?(addressField.value="",addressField.blur()):(addShippingAddress(),addressField.blur()))})}catch(e){}function bSearch(){let e=document.getElementById("sfield");""==e.value?e.blur():search(e.value)}try{let e=document.getElementById("sfield");e.addEventListener("keyup",function(t){13===t.keyCode&&(t.preventDefault(),""==e.value?e.blur():search(e.value))})}catch(e){}try{document.getElementById("u-address").addEventListener("keyup",function(e){13===e.keyCode&&(e.preventDefault(),document.getElementById("u-r-btn").click())})}catch(e){}window.addEventListener("dragover",function(e){"dropzone"!=e.target.id&&(e.preventDefault(),e.dataTransfer.effectAllowed="none",e.dataTransfer.dropEffect="none")}),window.addEventListener("drop",function(e){"dropzone"!=e.target.id&&(e.preventDefault(),e.dataTransfer.effectAllowed="none",e.dataTransfer.dropEffect="none")});
\ No newline at end of file
diff --git a/functions/views/js/fdb.src.js b/functions/views/js/fdb.src.js
new file mode 100644
index 0000000..e922b53
--- /dev/null
+++ b/functions/views/js/fdb.src.js
@@ -0,0 +1,518 @@
+// https://javascript-minifier.com
+function checkFields() {
+ if (document.getElementById('pName').value && document.getElementById('pDesc').value
+ && document.getElementById('pLoc').value && document.getElementById('pPrice').value
+ && document.getElementById('imgInput').files[0]) {
+ return true
+ }
+ return false
+}
+
+async function productSubmitEventHandler(){
+ const submitBtn = document.getElementById('pSend')
+ if (submitBtn.innerHTML == "Submit!") {
+ if (checkFields()) {
+ submitBtn.innerHTML = "Uploading..."
+ submitBtn.disabled = true
+
+ let newProduct = {id: 1,name: "",desc: "",img: "default.png",location: "",stock: 1,status: "on-sale",price: 0,owner: "",holder: ""}
+
+ const nameField = document.getElementById('pName')
+ const descField = document.getElementById('pDesc')
+ const locField = document.getElementById('pLoc')
+ const stockField = document.getElementById('pStock')
+ const priceField = document.getElementById('pPrice')
+ let fInput = document.getElementById('imgInput')
+
+ let uid = firebase.auth().currentUser.uid
+
+ newProduct.id = 999
+ newProduct.name = nameField.value
+ newProduct.desc = descField.value
+ newProduct.location = locField.value
+ if (stockField.value) {newProduct.stock = stockField.value}
+ newProduct.price = priceField.value
+ newProduct.owner = uid
+ newProduct.holder = uid
+
+ let image = fInput.files[0]
+
+ let imageName = fInput.files[0].name
+ let imagePackage = {name:imageName, b64:null}
+
+ firebase.auth().currentUser.getIdToken().then(function(idToken){
+ let url = 'new-product-api'
+ let data = {authToken: idToken, product: newProduct, image: imagePackage}
+ let postData = {method: 'POST', body: JSON.stringify(data), headers: {'Content-Type': 'application/json'}}
+ fetch(url, postData)
+ .then(response => response.json())
+ .then(function(result){
+ if (result.success) {
+ let imageRef = firebase.storage().ref(result.imgRef)
+ imageRef.put(image).then(function(){
+ submitBtn.innerHTML = "Done! Go Home..."
+ submitBtn.disabled = false
+ submitBtn.setAttribute('style', 'background:#00FF55; transition:0.5s; width:162%;')
+ })
+ .catch(e=>{
+ submitBtn.innerHTML = "Error..."
+ submitBtn.setAttribute('style', 'color:red;')
+ document.getElementById("api-response").innerHTML = "Error: " + e
+ document.getElementById("api-response").setAttribute("style", "display: block")
+ })
+ }
+ else {
+ submitBtn.innerHTML = "Error..."
+ submitBtn.setAttribute('style', 'color:red;')
+ document.getElementById("api-response").innerHTML = "Error: " + result.error
+ document.getElementById("api-response").setAttribute("style", "display: block")
+ }
+ })
+ })
+ } else {
+ document.getElementById("api-response").innerHTML = "Fill in all required fields!"
+ document.getElementById("api-response").setAttribute("style", "display: block")
+ }
+ } else {
+ window.location.replace('home')
+ }
+}
+
+function productUpdateEventHandler() {
+ const submitBtn = document.getElementById('pSend')
+ if (submitBtn.innerHTML == "Update") {
+ const nameField = document.getElementById('pName')
+ const descField = document.getElementById('pDesc')
+ const locField = document.getElementById('pLoc')
+ const stockField = document.getElementById('pStock')
+ const priceField = document.getElementById('pPrice')
+
+ const item_id_element = document.getElementById("productID")
+ const item_id = item_id_element.getAttribute("product_id")
+
+ submitBtn.innerHTML = "Updating..."
+ submitBtn.disabled = true
+
+ updates = {name: nameField.value, desc: descField.value, location: locField.value, stock: stockField.value, price: priceField.value}
+
+ firebase.auth().currentUser.getIdToken().then(function(idToken){
+ let url = 'update-product-api'
+ let data = {authToken: idToken, product: updates, productID: item_id}
+ let postData = {method: 'POST', body: JSON.stringify(data), headers: {'Content-Type': 'application/json'}}
+ fetch(url, postData)
+ .then(response => response.json())
+ .then(function(result){
+ if (result.success) {
+ submitBtn.setAttribute("style", "width: 310px; background: #00DD00;cursor: pointer;")
+ submitBtn.innerHTML = "Done!, Go Home..."
+ submitBtn.disabled = false
+ }
+ else {
+ submitBtn.innerHTML = "Error..."
+ submitBtn.setAttribute('style', 'color:red;')
+ document.getElementById("api-response").innerHTML = "Error: " + result.error
+ document.getElementById("api-response").setAttribute("style", "display: block")
+ }
+ })
+ })
+ }
+ else {
+ window.location.replace('home')
+ }
+}
+
+function updateImgs() {
+ const storage = firebase.storage()
+ const imgRef = storage.ref()
+
+ var images = document.getElementsByClassName('dyn-img')
+ // console.log(images)
+ Array.from(images).forEach((image) => {
+ var pathReference = imgRef.child(image.title)
+ pathReference.getDownloadURL().then(function(url) {image.src = url}).catch(e => {console.log(e.message)})
+ })
+}
+updateImgs()
+
+function requestItem(){
+ const reqBtn = document.getElementById('req-btn')
+ const bMessage = document.getElementById('bMsg')
+ if (reqBtn.innerHTML == "Request!") {
+ if (firebase.auth().currentUser) {
+ reqBtn.setAttribute("style", "background: #87e5ff; width:300px;")
+ reqBtn.innerHTML = "Send?"
+ bMessage.setAttribute('style', 'display: block;')
+ } else {
+ reqBtn.innerHTML = "Please sign in"
+ reqBtn.setAttribute("style", "background: #FFa5af; width:300px;")
+ }
+ }
+ else if (reqBtn.innerHTML == "Send?") {
+ if (firebase.auth().currentUser) {
+ firebase.auth().currentUser.getIdToken().then(function(idToken) {
+ reqBtn.innerHTML = "Sending..."
+ reqBtn.disabled = true
+ let userMessage = bMessage.value
+ let item_id = document.getElementById("productID").getAttribute("product_id")
+ const url = 'request-api'
+ let data = {prodID: item_id, authToken: idToken, usrMsg: userMessage}
+ let postData = {method: 'POST', body: JSON.stringify(data), headers: {'Content-Type': 'application/json'}}
+ fetch(url, postData)
+ .then(response => response.json())
+ .then(function(result){
+ console.log(result)
+ if (result.success == true) {
+ reqBtn.setAttribute("style", "background: #00DD00; width:520px; transition: 0.7s;")
+ reqBtn.innerHTML = "Done! Go Home"
+ reqBtn.disabled = false
+ }
+ else {
+ reqBtn.setAttribute("style", "background: red;")
+ reqBtn.disabled = true
+ reqBtn.innerHTML = "ERROR"
+ document.getElementById("api-response").innerHTML = "Error: " + result.error
+ document.getElementById("api-response").setAttribute("style", "display: block")
+ }
+ })
+ })
+ } else {
+ reqBtn.innerHTML = "Please sign in"
+ }
+ }
+ else {
+ window.location.replace('home')
+ }
+}
+
+function edit_item() {
+ firebase.auth().currentUser.getIdToken().then(function(idToken) {
+ var item_id_element = document.getElementById("productID")
+ var item_id = item_id_element.getAttribute("product_id")
+ window.location.replace("edit-item?uToken=" + idToken + '&productid=' + item_id)
+ })
+ .catch(e => {console.log(e)})
+}
+
+function toggle_sale() {
+ firebase.auth().currentUser.getIdToken().then(function(idToken) {
+ let item_id = document.getElementById("productID").getAttribute("product_id")
+ let item_status = document.getElementById("productID").getAttribute("product_status")
+ let toggle_sale_btn = document.getElementById("toggleSaleBtn")
+ toggle_sale_btn.disabled = true
+ var toggle_status = true
+ if (item_status == 'on-sale') {toggle_status = false}
+ const url = 'toggle-sale-api'
+ let data = {prodID: item_id, authToken: idToken, targetState: toggle_status}
+ let postData = { method: 'POST', body: JSON.stringify(data),headers: {'Content-Type': 'application/json'}}
+ fetch(url, postData)
+ .then(response => response.json())
+ .then(function(result){
+ console.log(result)
+ if (result.success == true) {
+ toggle_sale_btn.setAttribute("style", "background: #00DD00; transition: 0.5s;")
+ toggle_sale_btn.innerHTML = "Done!"
+ let sold_btn = document.getElementById("soldBtn")
+ let edit_button = document.getElementById("editBtn")
+ sold_btn.disabled = true
+ edit_button.disabled = true
+ } else {
+ toggle_sale_btn.setAttribute("style", "background: red;")
+ toggle_sale_btn.innerHTML = "ERROR"
+ document.getElementById("api-response").innerHTML = "Error: " + result.error
+ document.getElementById("api-response").setAttribute("style", "display: block")
+ }
+ })
+ .catch (e=>{
+ toggle_sale_btn.setAttribute("style", "background: red;")
+ toggle_sale_btn.innerHTML = "ERROR"
+ document.getElementById("api-response").innerHTML = "Error: " + e
+ document.getElementById("api-response").setAttribute("style", "display: block")
+ })
+ })
+}
+
+function mark_as_sold(){
+ firebase.auth().currentUser.getIdToken().then(function(idToken) {
+ let item_id = document.getElementById("productID").getAttribute("product_id")
+ let sold_btn = document.getElementById("soldBtn")
+ const url = 'sold-api'
+ let data = {prodID: item_id, authToken: idToken}
+ let postData = { method: 'POST', body: JSON.stringify(data), headers: {'Content-Type': 'application/json'}}
+ fetch(url, postData)
+ .then(response => response.json())
+ .then(function(result){
+ if (result.success == true) {
+ sold_btn.setAttribute("style", "background: #00DD00; width:200px;")
+ sold_btn.innerHTML = "Sold!"
+ sold_btn.disabled = true
+ let sale_button = document.getElementById("toggleSaleBtn")
+ let edit_button = document.getElementById("editBtn")
+ sale_button.disabled = true
+ edit_button.disabled = true
+ }
+ else {
+ sold_btn.setAttribute("style", "background: red;")
+ sold_btn.innerHTML = "ERROR"
+ document.getElementById("api-response").innerHTML = "Error: " + e
+ document.getElementById("api-response").setAttribute("style", "display: block")
+ }
+ })
+ .catch (e=>{
+ sold_btn.setAttribute("style", "background: red;")
+ sold_btn.innerHTML = "ERROR"
+ document.getElementById("api-response").innerHTML = "Error: " + e
+ document.getElementById("api-response").setAttribute("style", "display: block")
+ })
+ })
+}
+
+function my_product(productID) {
+ firebase.auth().currentUser.getIdToken().then(function(idToken) {
+ window.location.replace("my-product?uToken=" + idToken + '&productid=' + productID)
+ })
+ .catch(e => {console.log(e)})
+}
+
+function my_products() {
+ firebase.auth().currentUser.getIdToken().then(function(idToken) {
+ window.location.replace("my-products?uToken=" + idToken)
+ })
+ .catch(e => {console.log(e)})
+}
+
+function showShipField(){
+ document.getElementById('shippingaddressbutton').setAttribute("style", "display:none;")
+ document.getElementById('shippingaddressinput').setAttribute("style", "display:block;")
+ showUserShippingAddress()
+}
+
+function showUserShippingAddress(){
+ firebase.auth().currentUser.getIdToken().then(function(idToken){
+ let url = 'shipping-adress-get-api'
+ let data = {authToken: idToken}
+ let postData = {method: 'POST', body: JSON.stringify(data),headers: {'Content-Type': 'application/json'}}
+ fetch(url, postData)
+ .then(response => response.json())
+ .then(function(result){
+ if (result.success) {
+ document.getElementById("shippingaddressinput").value = result.address
+ }
+ else {
+ document.getElementById("api-response").innerHTML = "Error: " + result.error
+ document.getElementById("api-response").setAttribute("style", "display: block")
+ document.getElementById("shippingaddressinput").value = ""
+ document.getElementById("shippingaddressinput").placeholder = "Can't retrieve current shipping address"
+ }
+ })
+ })
+}
+
+function addShippingAddress(){
+ let newAddress = document.getElementById('shippingaddressinput').value
+ firebase.auth().currentUser.getIdToken().then(function(idToken){
+ let url = 'shipping-adress-edit-api'
+ let data = {authToken: idToken, address: newAddress}
+ let postData = {method: 'POST', body: JSON.stringify(data),headers: {'Content-Type': 'application/json'}}
+ fetch(url, postData)
+ .then(response => response.json())
+ .then(function(result){
+ if (result.success) {
+ document.getElementById("shippingaddressinput").value = ""
+ document.getElementById("shippingaddressinput").placeholder = "Success!"
+ }
+ else {
+ document.getElementById("api-response").innerHTML = "Error: " + result.error
+ document.getElementById("api-response").setAttribute("style", "display: block")
+ document.getElementById("shippingaddressinput").value = ""
+ document.getElementById("shippingaddressinput").placeholder = "ERROR!"
+ }
+ })
+ })
+}
+
+function search(keywords){
+ window.location.replace('search?search='+keywords)
+}
+
+function u_r_submit(){
+ let submitBtn = document.getElementById('u-r-btn')
+ if (submitBtn.innerHTML == "Submit!") {
+ submitBtn.disabled = true
+ if (firebase.auth().currentUser) {
+ firebase.auth().currentUser.getIdToken().then(function(idToken){
+ let firstNameField = document.getElementById('f-name')
+ let lastNameField = document.getElementById('l-name')
+ let addressField = document.getElementById('u-address')
+ let fName = firstNameField.value
+ let lName = lastNameField.value
+ let address = addressField.value
+ let fInput = document.getElementById('imgInput')
+ let picName = fInput.files[0].name
+ let image = fInput.files[0]
+ let userData = {fName:fName, lName:lName, address:address, pPic:picName}
+ let url = 'register-new-user-api'
+ let data = {authToken: idToken, data: userData}
+ let postData = {method: 'POST', body: JSON.stringify(data), headers: {'Content-Type': 'application/json'}}
+ fetch(url, postData)
+ .then(response => response.json())
+ .then(function(result){
+ if (result.success) {
+ let imageRef = firebase.storage().ref(result.imgRef)
+ submitBtn.innerHTML = "Uploading..."
+ submitBtn.disabled = true
+ imageRef.put(image).then(function(){
+ submitBtn.setAttribute("style", "background: #00FF00; width: 100%; transition: 0.5s;")
+ submitBtn.innerHTML = "Success! Go Home..."
+ submitBtn.disabled = false
+ })
+ .catch(e=>{
+ submitBtn.setAttribute("style", "background: red;")
+ submitBtn.innerHTML = "ERROR"
+ submitBtn.disabled = false
+ document.getElementById("api-response").innerHTML = "Error: " + e
+ document.getElementById("api-response").setAttribute("style", "display: block")
+ })
+ }
+ else {
+ submitBtn.setAttribute("style", "background: red;")
+ submitBtn.innerHTML = "ERROR"
+ submitBtn.disabled = false
+ document.getElementById("api-response").innerHTML = "Error: " + result.error
+ document.getElementById("api-response").setAttribute("style", "display: block")
+ }
+ })
+ })
+ .catch(e=>{
+ submitBtn.setAttribute("style", "background: red;")
+ submitBtn.innerHTML = "AUTH!!!"
+ document.getElementById("api-response").innerHTML = "Error: " + e
+ document.getElementById("api-response").setAttribute("style", "display: block")
+ })
+ } else {
+ submitBtn.setAttribute("style", "background: red;")
+ submitBtn.disabled = false
+ submitBtn.innerHTML = "ERROR!"
+ document.getElementById("api-response").innerHTML = "Error: Please log in"
+ document.getElementById("api-response").setAttribute("style", "display: block")
+ }
+ } else {
+ window.location.replace('home')
+ }
+}
+
+function initFileDropListner() {
+ let dropZone = document.getElementById("dropzone")
+ if (dropZone) {
+ let fInput = document.getElementById('imgInput')
+ dropZone.ondragover = function(){this.className = "dropzone dragover";return false}
+ dropZone.ondragleave = function(){this.className = "dropzone";return false}
+ dropZone.onclick = function(){
+ fInput.click()
+ }
+ fInput.onchange = function(event) {
+ let addedFile = event.target.files[0]
+ fileAddSequence(addedFile)
+ }
+ dropZone.ondrop = function(event) {
+ event.preventDefault()
+ this.className = "dropzone"
+ let droppedFile = event.dataTransfer.files[0]
+ fileAddSequence(droppedFile)
+ }
+ }
+}
+
+initFileDropListner()
+
+function fileAddSequence(file){
+ let fInput = document.getElementById('imgInput')
+ if (["image/jpeg", "image/png", "image/gif"].includes(file.type)) {
+ let fileSize = file.size / 1024 / 1024
+ if (fileSize < 10){
+ fInput.files[0] = file
+ let imgPreview = document.getElementById('imgPreview')
+ let svgElement = document.getElementById('svgElement')
+ imgPreview.src = URL.createObjectURL(file)
+ imgPreview.setAttribute('style', 'display: block;')
+ svgElement.setAttribute('style', 'display: none;')
+ } else {
+ document.getElementById("api-response").innerHTML = "Files under 10MB please..."
+ document.getElementById("api-response").setAttribute("style", "display: block")
+ }
+ } else {
+ document.getElementById("api-response").innerHTML = "Accepted formats: jpeg/jpg, png, gif"
+ document.getElementById("api-response").setAttribute("style", "display: block")
+ }
+}
+
+try {
+ var addressField = document.getElementById("shippingaddressinput")
+ addressField.addEventListener("keyup", function(event) {
+ if (event.keyCode === 13) {
+ event.preventDefault()
+ if (addressField.value == "Success!" || addressField.value == ""){
+ addressField.value = ""
+ addressField.blur()
+ }
+ else {
+ addShippingAddress()
+ addressField.blur()
+ }
+ }
+ })
+}
+catch(error) {}
+
+function bSearch(){
+ let searchField = document.getElementById("sfield")
+ if (searchField.value == ""){
+ searchField.blur()
+ }
+ else {
+ search(searchField.value)
+ }
+}
+
+
+try {
+ let searchField = document.getElementById("sfield")
+ searchField.addEventListener("keyup", function(event) {
+ if (event.keyCode === 13) {
+ event.preventDefault()
+ if (searchField.value == ""){
+ searchField.blur()
+ }
+ else {
+ search(searchField.value)
+ }
+ }
+ })
+}
+catch(error) {}
+
+try {
+ let regAddressField = document.getElementById("u-address")
+ regAddressField.addEventListener("keyup", function(event) {
+ if (event.keyCode === 13) {
+ event.preventDefault()
+ document.getElementById("u-r-btn").click()
+ }
+ })
+}
+catch(error) {}
+
+window.addEventListener("dragover", function(e) {
+ if (e.target.id != "dropzone") {
+ e.preventDefault()
+ e.dataTransfer.effectAllowed = "none"
+ e.dataTransfer.dropEffect = "none"
+ }
+})
+
+window.addEventListener("drop", function(e) {
+ if (e.target.id != "dropzone") {
+ e.preventDefault()
+ e.dataTransfer.effectAllowed = "none"
+ e.dataTransfer.dropEffect = "none"
+ }
+})
\ No newline at end of file