diff --git a/client/css/make-purchase.css b/client/css/make-purchase.css index 20c55761faa31c16430a937d50a7b7689a448e18..d91a428cce02a1728f0e2d406f2b4b8ee7f7e5a0 100644 --- a/client/css/make-purchase.css +++ b/client/css/make-purchase.css @@ -138,7 +138,7 @@ margin-left: auto; } -#buy-details button { +#buy-details button{ background: #3c00a0; color: #fff; height: 40px; @@ -153,12 +153,14 @@ #buy-quantity { align-self: center; } - +#buy-quantity-input{ + width: 40px; + text-align: center; +} #quantity-price-field { flex: 1 1 auto; display: flex; flex-flow: row nowrap; - justify-content: space-between; } #buy-quantity-field { @@ -167,6 +169,18 @@ flex-flow: row nowrap; } + +/* style for hiding increment and decrement from html */ +#buy-quantity input[type="number"]::-webkit-inner-spin-button, +#buy-quantity input[type="number"]::-webkit-outer-spin-button, +#buy-quantity input[type="number"]::-webkit-clear-button { + -webkit-appearance: none; + margin: 0; +} + +#buy-quantity input[type="number"] { + -moz-appearance: textfield; +} #buy-price-field { align-self: center; } @@ -176,16 +190,17 @@ background: #3c00a0; color: #fff; height: 40px; - /* width: 40px; */ border-radius: 10px; +} + +#add2cart-button-field button { + width: auto; font-size: 20px; border: 0; outline: 0; cursor: pointer; transition: background 1s; - align-items: center; - padding: 15px; - align-self: center; + padding: 0px 15px; } #name-field { margin-bottom: 0px; diff --git a/client/js/make-purchase.js b/client/js/make-purchase.js index 03eab81046c45513fcb74319afd756650086ebb4..2bd669a7c724634b2e736eeea032e2991994c783 100644 --- a/client/js/make-purchase.js +++ b/client/js/make-purchase.js @@ -1,53 +1,22 @@ -function itemDetail(){ - var idItem = localStorage.getItem("purchase"); - var purchase = document.getElementById("purchaseform"); - const formdata = new FormData(); - formdata.append("signal", "make-purchase"); - formdata.append("item_id", idItem); - const xhr = new XMLHttpRequest(); - xhr.open('POST', '../../server/controllers/itemdetail_query.php', true); - xhr.send(formdata); - xhr.onreadystatechange = function() { - if (xhr.readyState === 4 && xhr.status === 200){ - try{ - var responseData = JSON.parse(xhr.responseText); - if (responseData.success){ - var itemList = responseData.data; - purchase.innerHTML = ` - <div class="input-group"> - <div class="input-image-field"> - <img src="../image/no_picture.jpeg" id="image-preview" alt=""> - </div> - <div class="input-text-fields"> - <div class="input-field"> - <input type="text" id="product_name" placeholder="${itemList[i][1]}" disabled> - </div> - <div class="input-field" id="product_description-field"> - <textarea type="text" id="product_description" placeholder="${itemList[i][3]}" disabled></textarea> - </div> - <div class="input-field" id="product_price-field"> - <input type="text" id="product_price" placeholder="${itemList[i][4]}" oninput="checkNumericPrice()" disabled> - </div> - <p id="price-criteria"> </p> - <div class="input-field" id="product_quantity-field"> - <input type="text" id="product_quantity" placeholder="${itemList[i][5]}" oninput="checkNumericQuantity()" required> - </div> - <p id="quantity-criteria"> </p> - </div> - - </div> - <div class="button-field"> - <button type="button" id="purchasesubmit" onclick="submitPurchase()">Done</button> - </div>`; - } else { - alert("error: " + responseData.message); - } - } catch (err){} - } else if (xhr.status === 404){ - var response = JSON.parse(xhr.responseText); - console.log(response.message); - } +incrementQuantity = () => { + document.getElementById("buy-quantity-input").stepUp(1); + subTotal(); +} +decrementQuantity = () => { + document.getElementById("buy-quantity-input").stepDown(1); + subTotal(); +} +keyboardInputQuantity = () => { + if (document.getElementById("buy-quantity-input").value > document.getElementById("buy-quantity-input").getAttribute("max")){ + document.getElementById("buy-quantity-input").value = document.getElementById("buy-quantity-input").getAttribute("max"); } + subTotal(); +} +subTotal = () => { + var buyQuantity = document.getElementById("buy-quantity-input").value; + var buyPrice = parseInt(document.getElementById("product_price").textContent); + var subTotal = buyQuantity * buyPrice; + return document.getElementById("subtotal_price").innerHTML = subTotal.toString(); } \ No newline at end of file diff --git a/client/pages/make-purchase.php b/client/pages/make-purchase.php index 68ca5b436130f1d9e8e0b23c4196ca5dc575dfa8..531695bea7e355cc3825a14ea00150e33585af28 100644 --- a/client/pages/make-purchase.php +++ b/client/pages/make-purchase.php @@ -28,7 +28,9 @@ <body> <div class="container"> <div class="tabgroup" id="tabgroup"> - <script>addnavbar();</script> + <script> + addnavbar(); + </script> </div> <div class="purchaseform-group"> <h1 id="title">Make A Purchase</h1> @@ -41,13 +43,15 @@ </div> <div id="input-text-fields"> <div class="input-field" id="name-field"> - <h2 type="text" id="product_name" disabled><?php echo $item_details["name"]?> </h2> + <h2 type="text" id="product_name" disabled><?php echo $item_details["name"]?></h2> </div> <div class="input-field" id="product_price-field"> - <h1 type="text" id="product_price" disabled>Rp<?php echo $item_details["price"]?> </h1> + <h1 style="display: inline;">Rp</h1> + <h1 type="text" id="product_price" disabled style="display: inline;"><?php echo $item_details["price"]?></h1> </div> <div class="input-field" id="product_quantity-field"> - <p type="text" id="product_quantity" disabled> Stock: <?php echo $item_details["quantity"]?> </p> + <p style="display: inline;">Stock: </p> + <p type="text" id="product_quantity" disabled style="display: inline;"><?php echo $item_details["quantity"]?></p> </div> <br> <div class="input-field" id="product_description-field"> @@ -56,23 +60,41 @@ </div> <div id= "buy-details"> <div id="buy-quantity-field"> - <button id="min-quantity"> - <i class="fa-solid fa-minus"></i> - </button> + <div> + <button id="min-quantity" onclick="decrementQuantity()"> + <i class="fa-solid fa-minus"></i> + </button> + </div> <div id="buy-quantity"> - <p>1</p> + <input + id="buy-quantity-input" + type="number" + value="1" + min="1" + oninput="keyboardInputQuantity()"/></input> + <!-- <input id="buy-quantity-input" type="text"></input> --> + </div> + <div> + <button id="plus-quantity" onclick="incrementQuantity()"> + <i class="fa-solid fa-plus"></i> + </button> </div> - <button id="plus-quantity"> - <i class="fa-solid fa-plus"></i> - </button> </div> <div id="buy-price-field"> - <p><?php echo $item_details["quantity"]?> </p> + <p style="display: inline;">Rp + </p> + <p style="display: inline;" id="subtotal_price"> + <script> + subTotal(); + </script> + </p> </div> <div id="add2cart-button-field"> - <i class="fa-solid fa-cart-shopping"> - </i> - Add To Cart + <button> + <i class="fa-solid fa-cart-shopping"> + </i> + Add To Cart + </button> </div> </div> </div> @@ -84,4 +106,7 @@ </div> </div> </body> + <script id="quantity-editor-max-setter"> + document.getElementById("buy-quantity-input").setAttribute("max", document.getElementById('product_quantity').textContent); + </script> </html> \ No newline at end of file