Add removeFromCart template & displaying products availability
This commit is contained in:
parent
1aa32c0de9
commit
141c357e32
@ -13,6 +13,7 @@ func initializePages() {
|
||||
Pages["product"] = Page{"/product", "templates/product.html", map[string]interface{}{}, ProductView}
|
||||
Pages["cart"] = Page{"/cart", "templates/cart.html", map[string]interface{}{}, CartView}
|
||||
Pages["addToCart"] = Page{"/addToCart", "templates/addToCart.html", map[string]interface{}{}, AddToCartView}
|
||||
Pages["removeFromCart"] = Page{"/removeFromCart", "templates/removeFromCart.html", map[string]interface{}{}, RemoveFromCartView}
|
||||
}
|
||||
|
||||
func initializeData() {
|
||||
|
@ -160,7 +160,7 @@ input[type="button"] {
|
||||
}
|
||||
|
||||
.cartItemColumn {
|
||||
width: 25%;
|
||||
width: 20%;
|
||||
margin: auto;
|
||||
}
|
||||
|
||||
@ -173,3 +173,8 @@ input[type="button"] {
|
||||
background-repeat: no-repeat;
|
||||
margin: auto;
|
||||
}
|
||||
|
||||
.productUnavailable {
|
||||
color: red;
|
||||
font-size: 20px;
|
||||
}
|
||||
|
@ -1,10 +1,16 @@
|
||||
{{define "content"}}
|
||||
<script type="text/javascript">
|
||||
function deleteitem(id) {
|
||||
location.href = 'http://127.0.0.1:8000/removeFromCart?id=' + id;
|
||||
}
|
||||
</script>
|
||||
<h1>Koszyk</h1>
|
||||
<div class="cartItem">
|
||||
<div class="cartItemColumn"><h3>Produkt</h3></div>
|
||||
<div class="cartItemColumn"><h3>Cena za szt.</h3></div>
|
||||
<div class="cartItemColumn"><h3>Ilość</h3></div>
|
||||
<div class="cartItemColumn"><h3>Łącznie</h3></div>
|
||||
<div class="cartItemColumn"></div>
|
||||
</div>
|
||||
{{range $.cart.Products}}
|
||||
<div class="cartItem">
|
||||
@ -15,7 +21,8 @@
|
||||
<div class="cartItemColumn">{{ .Product.Price }} zł</div>
|
||||
<div class="cartItemColumn">{{ .Quantity }}</div>
|
||||
<div class="cartItemColumn">{{ .PriceTotal }} zł</div>
|
||||
<div class="cartItemColumn"><input type="button" value="Usuń" onclick="deleteitem({{ .Product.Id }});" style="background-color: red;"></div>
|
||||
</div>
|
||||
{{end}}
|
||||
{{ .cart.PriceTotal }} zł
|
||||
Wartość koszyka: {{ .cart.PriceTotal }} zł
|
||||
{{end}}
|
||||
|
@ -3,6 +3,9 @@
|
||||
{{range $.products}}
|
||||
<a href="http://127.0.0.1:8000/product?id={{ .Id }}">
|
||||
<div class="productTile">
|
||||
{{if le .Quantity 0}}
|
||||
<div class="productUnavailable" style="width: 350px; position:absolute;">Produkt niedostępny</div>
|
||||
{{end}}
|
||||
<div class="categoryTileContent">
|
||||
<div class="productIcon" style="background-image: url({{ .ImgUrl }});"></div>
|
||||
<div class="categoryName">{{ .Name }}</div>
|
||||
|
@ -14,10 +14,16 @@ function buy() {
|
||||
<div class="productDescriptionColumn">
|
||||
<div class="productDescriptionText">
|
||||
{{.product.Description}}<br><br>
|
||||
{{if gt .product.Quantity 0}}
|
||||
<div class="productPrice">Ilość sztuk: <input id="quantity" type="number" name="quantity" min="1" max="{{.product.Quantity}}" value="1"></div>
|
||||
<small>Dostępna Ilość: {{.product.Quantity}}</small><br><br>
|
||||
{{end}}
|
||||
<div class="productPrice">Cena: {{.product.Price}} zł</div><br>
|
||||
{{if gt .product.Quantity 0}}
|
||||
<input type="button" value="Dodaj do koszyka" onclick="buy();">
|
||||
{{else}}
|
||||
<div class="productUnavailable">Produkt niedostępny</div>
|
||||
{{end}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
0
templates/removeFromCart.html
Normal file
0
templates/removeFromCart.html
Normal file
@ -66,3 +66,20 @@ func AddToCartView(p Page, w http.ResponseWriter, r *http.Request) {
|
||||
}
|
||||
ExecuteView(w, r, "templates/cart.html", p.Data)
|
||||
}
|
||||
|
||||
func RemoveFromCartView(p Page, w http.ResponseWriter, r *http.Request) {
|
||||
id, err := strconv.Atoi(r.URL.Query()["id"][0])
|
||||
if err == nil {
|
||||
for i:= range ShoppingCart.Products {
|
||||
if id == ShoppingCart.Products[i].Product.Id {
|
||||
prod := GetProductById(id)
|
||||
prod.Quantity += ShoppingCart.Products[i].Quantity
|
||||
prod.Save()
|
||||
ShoppingCart.Products = append(ShoppingCart.Products[:i], ShoppingCart.Products[i+1:]...)
|
||||
break
|
||||
}
|
||||
}
|
||||
ShoppingCart.Calculate()
|
||||
}
|
||||
ExecuteView(w, r, "templates/cart.html", p.Data)
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user