forked from wanderer/pwt-0x01-ng
* solves similar product uniqueness issues * solves issue with checkboxes for similar products not showing as selected fixes #15 fixes #16
80 lines
3.1 KiB
Plaintext
80 lines
3.1 KiB
Plaintext
@using pwt_0x01_ng.Areas.Admin.Controllers;
|
|
@model Product
|
|
@{
|
|
IList<Product> products;
|
|
IList<SimilarProduct> similar;
|
|
products = (IList<Product>)ViewData["prods"];
|
|
similar = new List<SimilarProduct>();
|
|
if((!String.IsNullOrEmpty(ViewBag.Action))||(!String.IsNullOrWhiteSpace(ViewBag.Action)))
|
|
{
|
|
<div class="row">
|
|
<form asp-action="@ViewBag.Action" enctype="multipart/form-data" method="post">
|
|
<div class="form-group col-sm-4">
|
|
<div asp-validation-summary="ModelOnly" class="text-danger"></div>
|
|
@{
|
|
if (@ViewBag.Action == nameof(ProductController.Edit)){
|
|
<input type="hidden" asp-for="@Model.id" class="form-control">
|
|
}
|
|
}
|
|
<div class="form-group">
|
|
<label asp-for="@Model.Name"></label>
|
|
<input asp-for="@Model.Name" class="form-control" aria-describedby="product name" placeholder="product name">
|
|
<span asp-validation-for="@Model.Name" class="text-danger"></span>
|
|
</div>
|
|
<div class="form-group">
|
|
<label asp-for="@Model.Price"></label>
|
|
<input asp-for="@Model.Price" class="form-control" aria-describedby="product price" placeholder="price">
|
|
<span asp-validation-for="@Model.Price" class="text-danger"></span>
|
|
</div>
|
|
<div class="form-group">
|
|
<label asp-for="@Model.Description"></label>
|
|
<input asp-for="@Model.Description" class="form-control" aria-describedby="product description" placeholder="description">
|
|
<span asp-validation-for="@Model.Description" class="text-danger"></span>
|
|
</div>
|
|
<div class="form-group">
|
|
<label asp-for="@Model.Image"></label>
|
|
<input id="file" asp-for="@Model.Image" accept="image/*" class="form-inline" aria-describedby="product image">
|
|
<span asp-validation-for="@Model.Image" class="text-danger"></span>
|
|
</div>
|
|
<div class="form-group">
|
|
<label asp-for="@Model.ImageAlt"></label>
|
|
<input asp-for="@Model.ImageAlt" class="form-control" aria-describedby="product image alt text" placeholder="Image alt">
|
|
<span asp-validation-for="@Model.ImageAlt" class="text-danger"></span>
|
|
</div>
|
|
@{
|
|
if(@Model != null && products != null && products.Count > 0){
|
|
<div class="form-group form-check">
|
|
<div>
|
|
<label>similar products</label>
|
|
</div>
|
|
@if(@Model.Similar != null){
|
|
similar = @Model.Similar;
|
|
}
|
|
@for(int i = 0; i < products.Count; i++){
|
|
@if(products.ElementAt(i).id != @Model.id){
|
|
<label class="form-check-label checkbox-inline">@products.ElementAt(i).Name</label>
|
|
@if(similar[i].Selected){
|
|
<input asp-for="@Model.Similar[i].Selected" type="checkbox" checked>
|
|
<input asp-for="@Model.Similar[i].id" type="hidden">
|
|
} else {
|
|
<input asp-for="@Model.Similar[i].Selected" type="checkbox">
|
|
<input asp-for="@Model.Similar[i].id" type="hidden">
|
|
}
|
|
} else {
|
|
<input asp-for="@Model.Similar[i].Selected" type="checkbox" hidden>
|
|
<input asp-for="@Model.Similar[i].id" type="hidden">
|
|
}
|
|
}
|
|
</div>
|
|
}
|
|
}
|
|
<button type="submit" class="btn btn-primary">Submit</button>
|
|
</div>
|
|
</form>
|
|
</div>
|
|
}
|
|
else {
|
|
<h2>Error: Action is not set</h2>
|
|
}
|
|
}
|