121 lines
5.9 KiB
Plaintext
121 lines
5.9 KiB
Plaintext
@model Nop.Web.Models.Catalog.SearchModel
|
|
@{
|
|
Layout = "_ColumnsTwo";
|
|
|
|
//title
|
|
NopHtml.AddTitleParts(T("PageTitle.Search").Text);
|
|
//page class
|
|
NopHtml.AppendPageCssClassParts("html-search-page");
|
|
}
|
|
<script asp-location="Footer">
|
|
$(function() {
|
|
$("#@Html.IdFor(model => model.advs)").on('click', toggleAdvancedSearch);
|
|
toggleAdvancedSearch();
|
|
});
|
|
|
|
function toggleAdvancedSearch() {
|
|
if ($('#@Html.IdFor(model => model.advs)').is(':checked')) {
|
|
$('#advanced-search-block').show();
|
|
}
|
|
else {
|
|
$('#advanced-search-block').hide();
|
|
}
|
|
}
|
|
</script>
|
|
|
|
@section CatalogFilters {
|
|
@await Html.PartialAsync("_CatalogFilters", Model.CatalogProductsModel)
|
|
}
|
|
|
|
<div class="page search-page">
|
|
<div class="page-title">
|
|
<h1>@T("Search")</h1>
|
|
</div>
|
|
<div class="page-body">
|
|
<div class="search-input">
|
|
<form asp-route="ProductSearch" method="get">
|
|
<div class="fieldset">
|
|
<div class="form-fields">
|
|
<div class="basic-search">
|
|
<div class="inputs">
|
|
<label asp-for="q">@T("Search.SearchTerm"):</label>
|
|
<input asp-for="q" class="search-text" />
|
|
</div>
|
|
@await Component.InvokeAsync(typeof(WidgetViewComponent), new { widgetZone = PublicWidgetZones.ProductSearchPageBasic, additionalData = Model })
|
|
<div class="inputs reversed">
|
|
<input asp-for="advs" />
|
|
<label asp-for="advs">@T("Search.AdvancedSearch")</label>
|
|
</div>
|
|
</div>
|
|
<div class="advanced-search" id="advanced-search-block">
|
|
@if (Model.AvailableCategories.Count > 0)
|
|
{
|
|
<div class="inputs">
|
|
<label asp-for="cid">@T("Search.Category"):</label>
|
|
<select asp-for="cid" asp-items="Model.AvailableCategories"></select>
|
|
</div>
|
|
<div class="inputs reversed">
|
|
<input asp-for="isc" />
|
|
<label asp-for="isc">@T("Search.IncludeSubCategories")</label>
|
|
</div>
|
|
}
|
|
@if (Model.AvailableManufacturers.Count > 0)
|
|
{
|
|
<div class="inputs">
|
|
<label asp-for="mid">@T("Search.Manufacturer"):</label>
|
|
<select asp-for="mid" asp-items="Model.AvailableManufacturers"></select>
|
|
</div>
|
|
}
|
|
@if (Model.asv && Model.AvailableVendors.Count > 0)
|
|
{
|
|
<div class="inputs">
|
|
<label asp-for="vid">@T("Search.Vendor"):</label>
|
|
<select asp-for="vid" asp-items="Model.AvailableVendors"></select>
|
|
</div>
|
|
}
|
|
<div class="inputs reversed">
|
|
<input asp-for="sid" />
|
|
<label asp-for="sid">@T("Search.SearchInDescriptions")</label>
|
|
</div>
|
|
@await Component.InvokeAsync(typeof(WidgetViewComponent), new { widgetZone = PublicWidgetZones.ProductSearchPageAdvanced, additionalData = Model })
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="buttons">
|
|
<button type="submit" class="button-1 search-button">@T("Search.Button")</button>
|
|
</div>
|
|
</form>
|
|
</div>
|
|
@await Html.PartialAsync("_CatalogSelectors", Model.CatalogProductsModel)
|
|
@await Component.InvokeAsync(typeof(WidgetViewComponent), new { widgetZone = PublicWidgetZones.ProductSearchPageBeforeResults, additionalData = Model })
|
|
<div class="search-results">
|
|
@{
|
|
var catalogProductsViewData = new ViewDataDictionary(ViewData);
|
|
catalogProductsViewData["fetchUrl"] = Html.Raw(Url.RouteUrl("SearchProducts"));
|
|
}
|
|
@await Html.PartialAsync("_CatalogProducts", Model.CatalogProductsModel, catalogProductsViewData)
|
|
<script asp-location="Footer">
|
|
$(function() {
|
|
$(CatalogProducts).on('before', function (e) {
|
|
var isAdvanced = $('#@Html.IdFor(model => model.advs)').is(':checked');
|
|
|
|
e.payload.urlBuilder
|
|
.addParameter('q', $('#@Html.IdFor(model => model.q)').val())
|
|
.addParameter('advs', isAdvanced);
|
|
|
|
if (isAdvanced) {
|
|
e.payload.urlBuilder
|
|
.addParameter('cid', $('#@Html.IdFor(model => model.cid)').val())
|
|
.addParameter('isc', $('#@Html.IdFor(model => model.isc)').is(':checked'))
|
|
.addParameter('mid', $('#@Html.IdFor(model => model.mid)').val())
|
|
.addParameter('vid', $('#@Html.IdFor(model => model.vid)').val())
|
|
.addParameter('sid', $('#@Html.IdFor(model => model.sid)').is(':checked'));
|
|
}
|
|
});
|
|
});
|
|
</script>
|
|
</div>
|
|
@await Component.InvokeAsync(typeof(WidgetViewComponent), new { widgetZone = PublicWidgetZones.ProductSearchPageAfterResults, additionalData = Model })
|
|
</div>
|
|
</div>
|