Error compiling template "Designs/sevenseas/eCom/Productlist/espresso-product-grid.cshtml"
Line 125: 'Currency.Format(double, bool)' is obsolete: 'Use Ecommerce.Services.Currencies.Format instead'
Line 1368: The name 'excludedOptions' does not exist in the current context
1 //------------------------------------------------------------------------------
2 // <auto-generated>
3 // This code was generated by a tool.
4 // Runtime Version:4.0.30319.42000
5 //
6 // Changes to this file may cause incorrect behavior and will be lost if
7 // the code is regenerated.
8 // </auto-generated>
9 //------------------------------------------------------------------------------
10
11 namespace CompiledRazorTemplates.Dynamic {
12 using System;
13 using System.Collections.Generic;
14
15 #line 4 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml"
16 using System.Linq;
17
18 #line default
19 #line hidden
20
21 #line 2 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml"
22 using Dynamicweb.Content.Items.Metadata;
23
24 #line default
25 #line hidden
26
27 #line 3 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml"
28 using Dynamicweb.Content.Items;
29
30 #line default
31 #line hidden
32
33 #line 5 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml"
34 using System.Web;
35
36 #line default
37 #line hidden
38
39 #line 6 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml"
40 using Dynamicweb.Frontend;
41
42 #line default
43 #line hidden
44
45 #line 8 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml"
46 using System.Globalization;
47
48 #line default
49 #line hidden
50
51 #line 9 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml"
52 using System.Text.RegularExpressions;
53
54 #line default
55 #line hidden
56
57 #line 10 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml"
58 using Dynamicweb.Ecommerce.Common;
59
60 #line default
61 #line hidden
62
63 #line 11 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml"
64 using Co3.Espresso.Website.Services;
65
66 #line default
67 #line hidden
68
69
70 public class RazorEngine_2366ce69c193430fb5a63971d8c4f9fb : Co3.Espresso.Website.TemplateBases.Paragraphs.Module {
71
72 #line hidden
73
74 #line 13 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml"
75
76 CultureInfo AreaCultureInfo = Dynamicweb.Frontend.PageView.Current().Area.CultureInfo;
77
78 public string getProductLink( string groupID, string productID, string variantID = "" ) {
79 string result = string.Empty;
80 string displayPage = Co3.Espresso.Website.Services.ProductService.Instance.GetGroupDisplayPage( groupID );
81 if( string.IsNullOrEmpty( displayPage ) == false ) {
82 if( string.IsNullOrEmpty( variantID ) == false ) {
83 result = "{0}&ProductID={1}&variantID={2}";
84 result = string.Format( result, displayPage, productID, variantID );
85 }
86 else {
87 result = "{0}&ProductID={1}";
88 result = string.Format( result, displayPage, productID );
89 }
90 }
91 return result;
92 }
93
94 public bool isProductGroupPublishedOnWebsite( string groupID ) {
95 bool result = false;
96 string displayPage = Co3.Espresso.Website.Services.ProductService.Instance.GetGroupDisplayPage( groupID );
97 if( string.IsNullOrEmpty( displayPage ) == false ) {
98 result = true;
99 }
100 return result;
101 }
102
103 public string getNewsLink( string categoryName, string newsID ) {
104 string result = NewsService.Instance.GetNewsDisplayPage( categoryName, newsID );
105 string displayPage = NewsService.Instance.GetNewsDisplayPage( categoryName, newsID );
106 if( string.IsNullOrEmpty( displayPage ) == false ) {
107 result = "/" + displayPage.Replace( "Id", "ID" ).Replace( "#", "&PID=" ) + "&M=NewsV2&Action=1&NewsID=" + newsID;
108 //result = SearchEngineFriendlyURLs.GetFriendlyUrl( result );
109 }
110 return result;
111 }
112
113 public string getImageURL( string url, int width = 2560, int height = 0, int crop = 0, int quality = 75, string format = "jpg" ) {
114 string result = string.Empty;
115 if( string.IsNullOrEmpty( url ) == false ) {
116 result = "/admin/public/getimage.ashx?Image={0}&Width={1}&Height={2}&Format={3}&Quality={4}&Crop={5}";
117 result = string.Format( result, url, width, height, format, quality, crop );
118 }
119 return result;
120 }
121
122 public string getPriceFormatted( string price ) {
123 string result = string.Empty;
124 if( string.IsNullOrEmpty( price ) == true ) {
125 price = Context.Currency.Format(0.00, false);
126 }
127 if ( Context.Currency.SymbolPlace == 0 ) {
128 result = string.Format( "<span class=\"e-product-price-symbol\">{1}</span> <strong>{0}</strong>", price, Context.Currency.Code );
129 }
130 else{
131 result = string.Format( "<strong>{0}</strong> <span class=\"e-product-price-symbol\">{1}</span>", price, Context.Currency.Code );
132 }
133 return result;
134 }
135
136 public string getShortDate( DateTime date ) {
137 string result = string.Empty;
138 result = date.Date.ToString( AreaCultureInfo.DateTimeFormat.ShortDatePattern ).Replace( "-" , "." );
139 return result;
140 }
141
142 public string getLongDate( DateTime date ) {
143 string result = string.Empty;
144 result = date.Date.ToString( AreaCultureInfo.DateTimeFormat.LongDatePattern );
145 return result;
146 }
147
148 #line default
149 #line hidden
150
151
152 public RazorEngine_2366ce69c193430fb5a63971d8c4f9fb() {
153 }
154
155 public override void Execute() {
156 WriteLiteral("\n");
157
158 WriteLiteral("\r\n");
159
160 WriteLiteral("\n");
161
162
163 #line 87 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml"
164
string productListClassList = "col-xs-12";
string visibleFacetOptionCount = Espresso.Item.VisibleFacetsOptionsCount;
string productListLayout = Espresso.Item.Layout;
string sortBy = string.IsNullOrEmpty(System.Web.HttpContext.Current.Request["SortBy"]) ? Espresso.Item.SortBy : System.Web.HttpContext.Current.Request["SortBy"];
string sortOrder = string.IsNullOrEmpty(System.Web.HttpContext.Current.Request["SortOrder"]) ? Espresso.Item.SortOrder : System.Web.HttpContext.Current.Request["SortOrder"];
string pageSize = string.IsNullOrEmpty(System.Web.HttpContext.Current.Request["PageSize"]) ? Espresso.Item.Pagesize : System.Web.HttpContext.Current.Request["PageSize"];
string pageNum = string.IsNullOrEmpty(System.Web.HttpContext.Current.Request["PageNum"]) ? GetString("Ecom:ProductList.CurrentPage") : System.Web.HttpContext.Current.Request["PageNum"];
165
166 #line default
167 #line hidden
168 WriteLiteral("\n<div");
169
170 WriteLiteral(" class=\"e-loading-overlay e-productlist-filters-preloader-overlay js-e-productlis" +
171 "t-filters-preloader-overlay is-loading\"");
172
173 WriteLiteral(">\n <div");
174
175 WriteLiteral(" class=\"e-loading-spinner\"");
176
177 WriteLiteral("></div>\n</div>\n<div");
178
179 WriteLiteral(" class=\"js-e-productlist\"");
180
181 WriteLiteral(" data-cart-redirect-to=\"");
182
183
184 #line 99 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml"
185 Write(PageView.Current().Page.ID);
186
187
188 #line default
189 #line hidden
190 WriteLiteral("\"");
191
192 WriteLiteral(">\n <div");
193
194 WriteLiteral(" class=\"row\"");
195
196 WriteLiteral(">\n <div");
197
198 WriteLiteral(" class=\"hidden-md-down col-md-4\"");
199
200 WriteLiteral(">\n");
201
202
203 #line 102 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml"
204
205
206 #line default
207 #line hidden
208
209 #line 102 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml"
210 if(Espresso.Item.ShowNavigation == "True" && Espresso.Item.ShowFilters != "True"){
if( string.IsNullOrEmpty(Espresso.Item.NavigationHeading) == false ){
211
212 #line default
213 #line hidden
214 WriteLiteral(" <h3>");
215
216
217 #line 104 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml"
218 Write(Espresso.Item.NavigationHeading);
219
220
221 #line default
222 #line hidden
223 WriteLiteral("</h3>\n");
224
225
226 #line 105 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml"
227 }
228
229 #line default
230 #line hidden
231 WriteLiteral(" <ul");
232
233 WriteLiteral(" class=\"nav e-nav-local m-b-2\"");
234
235 WriteLiteral(">\n");
236
237 WriteLiteral(" ");
238
239
240 #line 107 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml"
241 Write(RenderNavigation( new {
id = "dwnav-local-" + Espresso.Id,
parentid = Espresso.Page.ID,
template = "local-vertical.xslt",
startlevel = 1,
endlevel = 99,
expandmode = "path",
} ));
242
243
244 #line default
245 #line hidden
246 WriteLiteral("\n </ul>\n");
247
248
249 #line 116 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml"
250 }
251
252 #line default
253 #line hidden
254 WriteLiteral(" <form");
255
256 WriteLiteral(" class=\"js-e-productlist-form\"");
257
258 WriteLiteral(">\n <input");
259
260 WriteLiteral(" type=\"hidden\"");
261
262 WriteLiteral(" name=\"ID\"");
263
264 WriteAttribute("value", Tuple.Create(" value=\"", 5609), Tuple.Create("\"", 5634)
265
266 #line 118 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml"
267 , Tuple.Create(Tuple.Create("", 5617), Tuple.Create<System.Object, System.Int32>(Espresso.Page.ID
268
269 #line default
270 #line hidden
271 , 5617), false)
272 );
273
274 WriteLiteral(">\n <input");
275
276 WriteLiteral(" type=\"hidden\"");
277
278 WriteLiteral(" name=\"PageNum\"");
279
280 WriteAttribute("value", Tuple.Create(" value=\"", 5692), Tuple.Create("\"", 5708)
281
282 #line 119 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml"
283 , Tuple.Create(Tuple.Create("", 5700), Tuple.Create<System.Object, System.Int32>(pageNum
284
285 #line default
286 #line hidden
287 , 5700), false)
288 );
289
290 WriteLiteral(">\n <input");
291
292 WriteLiteral(" type=\"hidden\"");
293
294 WriteLiteral(" name=\"Sort\"");
295
296 WriteAttribute("value", Tuple.Create(" value=\"", 5763), Tuple.Create("\"", 5789)
297
298 #line 120 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml"
299 , Tuple.Create(Tuple.Create("", 5771), Tuple.Create<System.Object, System.Int32>(sortBy
300
301 #line default
302 #line hidden
303 , 5771), false)
304
305 #line 120 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml"
306 , Tuple.Create(Tuple.Create(" ", 5778), Tuple.Create<System.Object, System.Int32>(sortOrder
307
308 #line default
309 #line hidden
310 , 5779), false)
311 );
312
313 WriteLiteral(">\n <input");
314
315 WriteLiteral(" type=\"hidden\"");
316
317 WriteLiteral(" name=\"SortBy\"");
318
319 WriteAttribute("value", Tuple.Create(" value=\"", 5846), Tuple.Create("\"", 5861)
320
321 #line 121 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml"
322 , Tuple.Create(Tuple.Create("", 5854), Tuple.Create<System.Object, System.Int32>(sortBy
323
324 #line default
325 #line hidden
326 , 5854), false)
327 );
328
329 WriteLiteral(">\n <input");
330
331 WriteLiteral(" type=\"hidden\"");
332
333 WriteLiteral(" name=\"SortOrder\"");
334
335 WriteAttribute("value", Tuple.Create(" value=\"", 5921), Tuple.Create("\"", 5939)
336
337 #line 122 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml"
338 , Tuple.Create(Tuple.Create("", 5929), Tuple.Create<System.Object, System.Int32>(sortOrder
339
340 #line default
341 #line hidden
342 , 5929), false)
343 );
344
345 WriteLiteral(">\n <input");
346
347 WriteLiteral(" type=\"hidden\"");
348
349 WriteLiteral(" name=\"PageSize\"");
350
351 WriteAttribute("value", Tuple.Create(" value=\"", 5998), Tuple.Create("\"", 6015)
352
353 #line 123 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml"
354 , Tuple.Create(Tuple.Create("", 6006), Tuple.Create<System.Object, System.Int32>(pageSize
355
356 #line default
357 #line hidden
358 , 6006), false)
359 );
360
361 WriteLiteral(">\n <input");
362
363 WriteLiteral(" type=\"hidden\"");
364
365 WriteLiteral(" class=\"js-e-visible-options-count\"");
366
367 WriteAttribute("value", Tuple.Create(" value=\"", 6093), Tuple.Create("\"", 6125)
368
369 #line 124 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml"
370 , Tuple.Create(Tuple.Create("", 6101), Tuple.Create<System.Object, System.Int32>(visibleFacetOptionCount
371
372 #line default
373 #line hidden
374 , 6101), false)
375 );
376
377 WriteLiteral(">\n");
378
379
380 #line 125 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml"
381
382
383 #line default
384 #line hidden
385
386 #line 125 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml"
387 foreach(LoopItem item in GetLoop("Query.Parameters")){
if(string.IsNullOrEmpty(item.GetString("Parameter.Value")) == false){
388
389 #line default
390 #line hidden
391 WriteLiteral(" <input");
392
393 WriteLiteral(" type=\"hidden\"");
394
395 WriteAttribute("name", Tuple.Create(" name=\"", 6346), Tuple.Create("\"", 6386)
396
397 #line 127 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml"
398 , Tuple.Create(Tuple.Create("", 6353), Tuple.Create<System.Object, System.Int32>(item.GetString("Parameter.Name")
399
400 #line default
401 #line hidden
402 , 6353), false)
403 );
404
405 WriteAttribute("value", Tuple.Create(" value=\"", 6387), Tuple.Create("\"", 6429)
406
407 #line 127 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml"
408 , Tuple.Create(Tuple.Create("", 6395), Tuple.Create<System.Object, System.Int32>(item.GetString("Parameter.Value")
409
410 #line default
411 #line hidden
412 , 6395), false)
413 );
414
415 WriteLiteral(">\n");
416
417
418 #line 128 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml"
419 }
}
420
421 #line default
422 #line hidden
423 WriteLiteral(" ");
424
425
426 #line 130 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml"
427 foreach (LoopItem facetGroup in GetLoop("FacetGroups")) {
if(string.IsNullOrEmpty(facetGroup.GetString("FacetGroup.Name")) == false){
428
429 #line default
430 #line hidden
431 WriteLiteral(" <input");
432
433 WriteLiteral(" type=\"hidden\"");
434
435 WriteLiteral(" name=\"SelectedFacetParams\"");
436
437 WriteAttribute("value", Tuple.Create(" value=\"", 6734), Tuple.Create("\"", 6820)
438
439 #line 132 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml"
440 , Tuple.Create(Tuple.Create("", 6742), Tuple.Create<System.Object, System.Int32>(HttpContext.Current.Server.UrlEncode(facetGroup.GetString("FacetGroup.Name"))
441
442 #line default
443 #line hidden
444 , 6742), false)
445 );
446
447 WriteLiteral(">\n");
448
449
450 #line 133 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml"
451 }
}
452
453 #line default
454 #line hidden
455 WriteLiteral(" ");
456
457
458 #line 135 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml"
459 if(Espresso.Item.ShowFilters == "True"){
productListClassList = "col-xs-12 col-lg-8";
460
461 #line default
462 #line hidden
463 WriteLiteral(" <div");
464
465 WriteLiteral(" id=\"js-e-productlist-filters\"");
466
467 WriteLiteral(">\n <script");
468
469 WriteLiteral(" id=\"js-e-productlist-filters-handlebars-template\"");
470
471 WriteLiteral(" type=\"text/x-handlebars-template\"");
472
473 WriteLiteral(">\r\n <h3>");
474
475
476 #line 139 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml"
477 Write(Translate( "eCom_Productlist_FiltersHeaderText", "Tilpas udvalg"));
478
479
480 #line default
481 #line hidden
482 WriteLiteral("</h3>\r\n <ul class=\"list-group m-t-1\">\r\n <div class=\"list-group-item e-pro" +
483 "ductlist-filter-selected small p-y-1\">\r\n {{#if page.filtersAppliedCount}}" +
484 "\r\n <div class=\"e-productlist-filter-selected-header\">\r\n <h4>" +
485 "");
486
487
488 #line 144 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml"
489 Write(Translate( "eCom_Productlist_FiltersSelectedText", "Valgte filtre"));
490
491
492 #line default
493 #line hidden
494 WriteLiteral("</h4>\r\n <a href=\"#\" class=\"small p-a-0 btn btn-link js-e-productlist-f" +
495 "ilter-clear-all\">");
496
497
498 #line 145 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml"
499 Write(Translate( "eCom_Productlist_FiltersResetFilterLinkText", "Nulstil alle"));
500
501
502 #line default
503 #line hidden
504 WriteLiteral(@"</a>
505 </div>
506 {{#each facets}}
507 {{#if selectedOptions.length}}
508 <ul class=""e-productlist-filter-selected-items"">
509 {{#each selectedOptions}}
510 <li class=""e-productlist-filter-selected-item small""><a class=""e-productlist-filter-selected-item-remove js-e-productlist-filter-remove"" href=""#"" data-value=""{{value}}""><i class=""material-icons"">clear</i></a> {{../name}}: {{label}}</li>
511 {{/each}}
512 </ul>
513 {{/if}}
514 {{/each}}
515 {{#if page.q}}
516 <ul class=""e-productlist-filter-selected-items"">
517 <li class=""e-productlist-filter-selected-item small""><a class=""e-productlist-filter-selected-item-remove js-e-productlist-filter-search-clear"" href=""#""><i class=""material-icons"">clear</i></a> ");
518
519
520 #line 158 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml"
521 Write(Translate( "eCom_Productlist_FiltersSearchHeader", "Søgning:"));
522
523
524 #line default
525 #line hidden
526 WriteLiteral(@" {{page.q}}</li>
527 </ul>
528 {{/if}}
529 {{#compare page.minPrice.clean '&&' page.maxPrice.clean}}
530 <ul class=""e-productlist-filter-selected-items"">
531 <li class=""e-productlist-filter-selected-item small""><a class=""e-productlist-filter-selected-item-remove js-e-productlist-filter-range-clear"" href=""#"" data-group-id=""js-e-productlist-filters-range-group-price""><i class=""material-icons"">clear</i></a> ");
532
533
534 #line 163 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml"
535 Write(Translate( "eCom_Productlist_FiltersPriceHeader", "Pris:"));
536
537
538 #line default
539 #line hidden
540 WriteLiteral(" {{{page.minPrice.formatted}}} - {{{page.maxPrice.formatted}}}</li>\r\n " +
541 "</ul>\r\n {{/compare}}\r\n {{else}}\r\n <p class=\"m-b-0 small" +
542 " text-muted\">");
543
544
545 #line 167 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml"
546 Write(Translate("eCom_Productlist_Filters_No_Filters_Applied_Text", "Ingen filtre valgt"));
547
548
549 #line default
550 #line hidden
551 WriteLiteral("</p>\r\n {{/if}}\r\n </div>\r\n");
552
553
554 #line 170 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml"
555
556
557 #line default
558 #line hidden
559
560 #line 170 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml"
561 if(Espresso.Item.ShowNavigation == "True"){
562
563
564 #line default
565 #line hidden
566 WriteLiteral(" <li");
567
568 WriteLiteral(" class=\"list-group-item e-productlist-filters-items js-e-productlist-filters-item" +
569 "s\"");
570
571 WriteLiteral(">\r\n <h4");
572
573 WriteLiteral(" class=\"m-b-0\"");
574
575 WriteLiteral(">\r\n <a");
576
577 WriteLiteral(" id=\"filter-header-navigation\"");
578
579 WriteLiteral(" class=\"e-productlist-filters-header\"");
580
581 WriteLiteral(" href=\"#\"");
582
583 WriteLiteral(" data-toggle=\"collapse\"");
584
585 WriteLiteral(" data-target=\"#filter-panel-navigation\"");
586
587 WriteLiteral(" aria-expanded=\"false\"");
588
589 WriteLiteral(" aria-controls=\"filter-panel-navigation\"");
590
591 WriteLiteral(">\r\n");
592
593
594 #line 174 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml"
595
596
597 #line default
598 #line hidden
599
600 #line 174 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml"
601 if( string.IsNullOrEmpty(Espresso.Item.NavigationHeading) == false ){
602
603
604 #line default
605 #line hidden
606
607 #line 175 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml"
608 Write(Espresso.Item.NavigationHeading);
609
610
611 #line default
612 #line hidden
613
614 #line 175 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml"
615
616 } else{
617
618
619 #line default
620 #line hidden
621
622 #line 177 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml"
623 Write(Translate( "eCom_Productlist_FiltersNavigationHeader", "Kategorier"));
624
625
626 #line default
627 #line hidden
628
629 #line 177 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml"
630
631 }
632
633
634 #line default
635 #line hidden
636 WriteLiteral(" <i");
637
638 WriteLiteral(" class=\"material-icons e-productlist-filters-collapse-icon\"");
639
640 WriteLiteral(">keyboard_arrow_right</i>\r\n </a>\r\n </h4>\r\n <fieldset");
641
642 WriteLiteral(" id=\"filter-panel-navigation\"");
643
644 WriteLiteral(" class=\"e-productlist-filters-collapse form-group collapse js-e-productlist-filte" +
645 "rs-collapse m-b-0\"");
646
647 WriteLiteral(" role=\"tabpanel\"");
648
649 WriteLiteral(" aria-labelledby=\"filter-header-navigation\"");
650
651 WriteLiteral(">\r\n <ul");
652
653 WriteLiteral(" class=\"nav e-nav-local m-t-1\"");
654
655 WriteLiteral(">\r\n");
656
657 WriteLiteral(" ");
658
659
660 #line 184 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml"
661 Write(RenderNavigation( new {
662 id = "dwnav-local-" + Espresso.Id,
663 parentid = Espresso.Page.ID,
664 template = "local-vertical.xslt",
665 startlevel = 1,
666 endlevel = 99,
667 expandmode = "path",
668 } ));
669
670
671 #line default
672 #line hidden
673 WriteLiteral("\r\n </ul>\r\n </fieldset>\r\n </li>\r\n");
674
675
676 #line 195 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml"
677 }
678
679
680 #line default
681 #line hidden
682 WriteLiteral(" ");
683
684
685 #line 196 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml"
686 if(Espresso.Item.ShowSearch == "True"){
687
688
689 #line default
690 #line hidden
691 WriteLiteral(" <li");
692
693 WriteLiteral(" class=\"list-group-item e-productlist-filters-items js-e-productlist-filters-item" +
694 "s\"");
695
696 WriteLiteral(">\r\n <h4");
697
698 WriteLiteral(" class=\"m-b-0\"");
699
700 WriteLiteral(">\r\n <a");
701
702 WriteLiteral(" id=\"filter-header-search\"");
703
704 WriteLiteral(" class=\"e-productlist-filters-header\"");
705
706 WriteLiteral(" href=\"#\"");
707
708 WriteLiteral(" data-toggle=\"collapse\"");
709
710 WriteLiteral(" data-target=\"#filter-panel-search\"");
711
712 WriteLiteral(" data-testers=\"#filter-panel-search\"");
713
714 WriteLiteral(" aria-expanded=\"{{#if page.q }}true{{else}}false{{/if}}\"");
715
716 WriteLiteral(" aria-controls=\"filter-panel-search\"");
717
718 WriteLiteral(">\r\n");
719
720 WriteLiteral(" ");
721
722
723 #line 200 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml"
724 Write(Translate( "eCom_Productlist_FiltersSearchHeader", "Søgning"));
725
726
727 #line default
728 #line hidden
729 WriteLiteral("\r\n <i");
730
731 WriteLiteral(" class=\"material-icons e-productlist-filters-collapse-icon\"");
732
733 WriteLiteral(">keyboard_arrow_right</i>\r\n </a>\r\n </h4>\r\n <fieldset");
734
735 WriteLiteral(" id=\"filter-panel-search\"");
736
737 WriteLiteral(" class=\"e-productlist-filters-collapse form-group collapse js-e-productlist-filte" +
738 "rs-collapse {{#if page.q}}in{{/if}} m-b-0\"");
739
740 WriteLiteral(" role=\"tabpanel\"");
741
742 WriteLiteral(" aria-labelledby=\"filter-header-search\"");
743
744 WriteLiteral(">\r\n <div");
745
746 WriteLiteral(" class=\"js-e-search-input-group e-search-input-group {{#unless page.q}}is-empty{{" +
747 "/unless}} m-t-1\"");
748
749 WriteLiteral(">\r\n <label");
750
751 WriteLiteral(" class=\"e-search-label\"");
752
753 WriteLiteral(" for=\"filter_search\"");
754
755 WriteLiteral("><i");
756
757 WriteLiteral(" class=\"material-icons\"");
758
759 WriteLiteral(">search</i></label>\r\n <input");
760
761 WriteLiteral(" type=\"text\"");
762
763 WriteLiteral(" class=\"js-e-search-input e-search-input e-productlist-filters-search-input form-" +
764 "control\"");
765
766 WriteLiteral(" name=\"q\"");
767
768 WriteLiteral(" id=\"filter_search\"");
769
770 WriteLiteral(" placeholder=\"Søgning\"");
771
772 WriteLiteral(" value=\"{{page.q}}\"");
773
774 WriteLiteral(">\r\n <span");
775
776 WriteLiteral(" class=\"js-e-search-clear e-search-clear\"");
777
778 WriteLiteral("><i");
779
780 WriteLiteral(" class=\"material-icons\"");
781
782 WriteLiteral(">close</i></span>\r\n <button");
783
784 WriteLiteral(" class=\"e-search-submit btn btn-primary js-e-productlist-filters-search-submit\"");
785
786 WriteLiteral(" type=\"button\"");
787
788 WriteLiteral("><i");
789
790 WriteLiteral(" class=\"material-icons p-a-0\"");
791
792 WriteLiteral(">search</i></button>\r\n </div>\r\n </fieldset>\r\n </li>\r\n");
793
794
795 #line 213 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml"
796 }
797
798
799 #line default
800 #line hidden
801 WriteLiteral(@" {{#each facets}}
802 {{#compare count '>' 0}}
803 <li class=""list-group-item e-productlist-filters-items js-e-productlist-filters-items"" role=""tablist"" aria-multiselectable=""true"">
804 <h4 class=""m-b-0"">
805 <a id=""filter-header-{{param}}"" class=""e-productlist-filters-header"" href=""#"" data-toggle=""collapse"" data-target=""#filter-panel-{{param}}"" aria-expanded=""{{#if selectedOptions.length }}true{{else}}{{#compare ");
806
807 WriteLiteral("@first \'&&\' ");
808
809 WriteLiteral(@"@root.page.hasNoInteraction}}true{{/compare}}{{/if}}"" aria-controls=""filter-panel-{{param}}"">
810 {{label}}
811 {{#if selectedOptions.length}}
812 <span class=""m-l-1"">({{selectedOptions.length}})</span>
813 {{/if}}
814 <i class=""material-icons e-productlist-filters-collapse-icon"">keyboard_arrow_right</i>
815 </a>
816 </h4>
817 <fieldset id=""filter-panel-{{param}}"" class=""e-productlist-filters-collapse form-group collapse js-e-productlist-filters-collapse {{#if selectedOptions.length }}in{{else}}{{#compare ");
818
819 WriteLiteral("@first \'&&\' ");
820
821 WriteLiteral("@root.page.hasNoInteraction}}in{{/compare}}{{/if}} {{#compare count \'>\' ");
822
823
824 #line 226 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml"
825 Write(visibleFacetOptionCount);
826
827
828 #line default
829 #line hidden
830 WriteLiteral(@" }}js-e-productlist-filters-collapse-peek e-productlist-filters-collapse-peek{{/compare}} m-b-0"" role=""tabpanel"" aria-labelledby=""filter-header-{{param}}"">
831 <div class=""e-productlist-filters-item m-t-1"">
832 <input class=""js-e-productlist-filter-reset-all"" name=""reset-filter-{{param}}"" id=""reset-filter-{{param}}"" type=""checkbox"" value=""true"" {{#compare isCleared '||' isEmpty}}checked{{/compare}}>
833 <label for=""reset-filter-{{param}}"">
834 ");
835
836 WriteLiteral(" ");
837
838
839 #line 230 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml"
840 Write(Translate( "eCom_Productlist_FiltersAllLabelText", "Alle "));
841
842
843 #line default
844 #line hidden
845 WriteLiteral(@"
846 </label>
847 </div>
848 {{#each options}}
849 <div class=""e-productlist-filters-item js-e-productlist-filters-item {{#if isSelected}}js-e-productlist-filters-item-checked{{/if}}"">
850 <input id=""{{id}}"" name=""{{param}}"" class=""js-e-productlist-filter"" type=""checkbox"" value=""{{value}}"" {{#if isSelected}}checked{{/if}} {{#if isDisabled}}disabled{{/if}}>
851 <label for=""{{id}}"">
852 {{label}}<span class=""m-l-1"">({{count}})</span>
853 </label>
854 </div>
855 {{/each}}
856 {{#compare count '>' ");
857
858
859 #line 241 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml"
860 Write(visibleFacetOptionCount);
861
862
863 #line default
864 #line hidden
865 WriteLiteral(" }}\r\n <a href=\"#\" class=\"js-e-productlist-filters-collapse-peek-toggle" +
866 " e-productlist-filters-collapse-peek-toggle m-t-1\" data-closed-text=\"");
867
868
869 #line 242 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml"
870 Write(Translate("eCom_Productlist_Filters_See_More ", "Vis flere"));
871
872
873 #line default
874 #line hidden
875 WriteLiteral("\" data-open-text=\"");
876
877
878 #line 242 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml"
879 Write(Translate("eCom_Productlist_Filters_See_Less ", "Vis færre"));
880
881
882 #line default
883 #line hidden
884 WriteLiteral(@"""><i class=""material-icons e-productlist-filters-collapse-peek-toggle-icon"">keyboard_arrow_down</i></a>
885 {{/compare}}
886 </fieldset>
887 </li>
888 {{/compare}}
889 {{/each}}
890 <li class=""list-group-item e-productlist-filters-items js-e-productlist-filters-items"">
891 <h4 class=""m-b-0"">
892 <a id=""filter-header-pricerange"" class=""e-productlist-filters-header"" href=""#"" data-toggle=""collapse"" data-target=""#filter-panel-pricerange"" aria-expanded=""{{#compare page.minPrice.clean '||' page.maxPrice.clean}}true{{else}}false{{/compare}}"" aria-controls=""filter-panel-pricerange"">
893 ");
894
895 WriteLiteral(" ");
896
897
898 #line 251 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml"
899 Write(Translate( "eCom_Productlist_FiltersPriceRangeHeader", "Pris"));
900
901
902 #line default
903 #line hidden
904 WriteLiteral(@"
905 <i class=""material-icons e-productlist-filters-collapse-icon"">keyboard_arrow_right</i>
906 </a>
907 </h4>
908 <fieldset id=""filter-panel-pricerange"" class=""e-productlist-filters-collapse form-group collapse js-e-productlist-filters-collapse {{#compare page.minPrice.clean '||' page.maxPrice.clean}}in{{/compare}} m-b-0"" role=""tabpanel"" aria-labelledby=""filter-header-pricerange"">
909 <div id=""js-e-productlist-filters-range-group-price"" class=""row m-t-1 e-productlist-filters-range-group js-e-productlist-filters-range-group"">
910 <div class=""col-xs-4"">
911 <input type=""number"" class=""form-control js-e-productlist-filter-range js-e-productlist-filter-range-min"" name=""PriceRangeMin"" id=""PriceRangeMin"" value=""{{page.minPrice.clean}}"" placeholder=""");
912
913
914 #line 258 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml"
915 Write(Translate("eCom_Productlist_Filters_Price_Min_Text", "Fra"));
916
917
918 #line default
919 #line hidden
920 WriteLiteral(@""" min=""0"">
921 </div>
922 <div class=""col-xs-4"">
923 <input type=""number"" class=""form-control js-e-productlist-filter-range js-e-productlist-filter-range-max"" name=""PriceRangeMax"" id=""PriceRangeMax"" value=""{{page.maxPrice.clean}}"" placeholder=""");
924
925
926 #line 261 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml"
927 Write(Translate("eCom_Productlist_Filters_Price_Max_Text", "Til"));
928
929
930 #line default
931 #line hidden
932 WriteLiteral("\" data-msg-rangeValid=\"");
933
934
935 #line 261 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml"
936 Write(Translate("eCom_Productlist_Filters_Price_Error_Msg", "Priser indtastet forkert"));
937
938
939 #line default
940 #line hidden
941 WriteLiteral(@""">
942 </div>
943 <div class=""col-xs-1"">
944 <button type=""button"" class=""btn btn-link p-x-0 e-productlist-filter-clear-range js-e-productlist-filter-range-clear"" data-group-id=""js-e-productlist-filters-range-group-price""><i class=""material-icons"">clear</i></button>
945 </div>
946 <div class=""col-xs-3"">
947 <button type=""button"" class=""btn btn-primary p-x-0 btn-sm btn-block e-productlist-filter-apply-range js-e-productlist-filter-apply-range""><i class=""material-icons"">sync</i></button>
948 </div>
949
950 </div>
951 </fieldset>
952 </li>
953 </ul>
954 </script>
</div>
");
955
956
957 #line 276 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml"
958 }
959
960 #line default
961 #line hidden
962 WriteLiteral(" </form>\n </div>\n <div");
963
964 WriteAttribute("class", Tuple.Create(" class=\"", 17802), Tuple.Create("\"", 17831)
965
966 #line 279 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml"
967 , Tuple.Create(Tuple.Create("", 17810), Tuple.Create<System.Object, System.Int32>(productListClassList
968
969 #line default
970 #line hidden
971 , 17810), false)
972 );
973
974 WriteLiteral(">\n <div");
975
976 WriteLiteral(" id=\"js-e-productlist-products\"");
977
978 WriteLiteral(" >\n");
979
980
981 #line 281 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml"
982
983
984 #line default
985 #line hidden
986
987 #line 281 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml"
988
int gtmProductLoopCounter = 0;
string websiteIntegerSeparator = GetGlobalValue( "Global:eCommerce.Currency.IntegerSeparator" );
string websiteDecimalSeparator = GetGlobalValue( "Global:eCommerce.Currency.DecimalSeparator" );
989
990 #line default
991 #line hidden
992 WriteLiteral("\n\n<script>\nvar arrProducts = [];\n</script>\n\n<!-- Products for search engines that" +
993 " do not support dynamic rendering with js -->\n<ul itemscope");
994
995 WriteLiteral(" itemtype=\"http://schema.org/ItemList\"");
996
997 WriteLiteral(">\n");
998
999
1000 #line 293 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml"
1001
1002
1003 #line default
1004 #line hidden
1005
1006 #line 293 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml"
1007 foreach ( LoopItem product in GetLoop( "Products" ) )
{
string productLink = getProductLink( product.GetString("Ecom:Product.PrimaryOrFirstGroupID"), product.GetString("Ecom:Product.ID") );
1008
1009 #line default
1010 #line hidden
1011 WriteLiteral(" <li");
1012
1013 WriteLiteral(" itemprop=\"itemListElement\"");
1014
1015 WriteLiteral(" itemscope");
1016
1017 WriteLiteral(" itemtype=\"http://schema.org/Product\"");
1018
1019 WriteLiteral(">\n <a");
1020
1021 WriteAttribute("href", Tuple.Create(" href=\"", 18614), Tuple.Create("\"", 18633)
1022
1023 #line 297 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml"
1024 , Tuple.Create(Tuple.Create("", 18621), Tuple.Create<System.Object, System.Int32>(productLink
1025
1026 #line default
1027 #line hidden
1028 , 18621), false)
1029 );
1030
1031 WriteAttribute("title", Tuple.Create(" title=\"", 18634), Tuple.Create("\"", 18681)
1032
1033 #line 297 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml"
1034 , Tuple.Create(Tuple.Create("", 18642), Tuple.Create<System.Object, System.Int32>(product.GetString("Ecom:Product.Name")
1035
1036 #line default
1037 #line hidden
1038 , 18642), false)
1039 );
1040
1041 WriteLiteral(" itemprop=\"url\"");
1042
1043 WriteLiteral(">\n <h3");
1044
1045 WriteLiteral(" itemprop=\"name\"");
1046
1047 WriteLiteral(">");
1048
1049
1050 #line 298 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml"
1051 Write(product.GetString("Ecom:Product.Name"));
1052
1053
1054 #line default
1055 #line hidden
1056 WriteLiteral("</h3>\n <p");
1057
1058 WriteLiteral(" itemprop=\"description\"");
1059
1060 WriteLiteral(">");
1061
1062
1063 #line 299 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml"
1064 Write(product.GetString("Ecom:Product.ShortDescription"));
1065
1066
1067 #line default
1068 #line hidden
1069 WriteLiteral("</p>\n </a>\n </li>\n");
1070
1071
1072 #line 302 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml"
1073
gtmProductLoopCounter++;
1074
1075 #line default
1076 #line hidden
1077 WriteLiteral(" ");
1078
1079 WriteLiteral("<script>\n");
1080
1081 WriteLiteral(" ");
1082
1083 WriteLiteral("\n arrProducts.push( {\n \"name\": \"");
1084
1085
1086 #line 308 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml"
1087 Write(product.GetString("Ecom:Product.Name"));
1088
1089
1090 #line default
1091 #line hidden
1092 WriteLiteral("\",\n \"id\": \"");
1093
1094
1095 #line 309 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml"
1096 Write(product.GetString("Ecom:Product.ID"));
1097
1098
1099 #line default
1100 #line hidden
1101 WriteLiteral("\",\n \"price\": \"");
1102
1103
1104 #line 310 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml"
1105 Write(product.GetString("Ecom:Product.Price.Price").Replace(websiteIntegerSeparator, string.Empty).Replace(websiteDecimalSeparator, "."));
1106
1107
1108 #line default
1109 #line hidden
1110 WriteLiteral("\",\n \"brand\": \"");
1111
1112
1113 #line 311 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml"
1114 Write(product.GetString("Ecom:Product:Field.BrandCode.Value"));
1115
1116
1117 #line default
1118 #line hidden
1119 WriteLiteral("\",\n \"category\": \"");
1120
1121
1122 #line 312 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml"
1123 Write(product.GetString("Ecom:Product:Field.Category.Value"));
1124
1125
1126 #line default
1127 #line hidden
1128 WriteLiteral("\",\n \"variant\": \"");
1129
1130
1131 #line 313 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml"
1132 Write(product.GetString("Ecom:Product:Field.ColorVariantText.Value"));
1133
1134
1135 #line default
1136 #line hidden
1137 WriteLiteral("\",\n \"list\": \"");
1138
1139
1140 #line 314 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml"
1141 Write(GetGlobalValue("Global:Page.Name"));
1142
1143
1144 #line default
1145 #line hidden
1146 WriteLiteral("\",\n \"position\": ");
1147
1148
1149 #line 315 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml"
1150 Write(gtmProductLoopCounter);
1151
1152
1153 #line default
1154 #line hidden
1155 WriteLiteral("\n \n });\n ");
1156
1157 WriteLiteral("\n");
1158
1159 WriteLiteral(" ");
1160
1161 WriteLiteral("</script>\n");
1162
1163
1164 #line 320 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml"
1165 }
1166
1167 #line default
1168 #line hidden
1169 WriteLiteral("</ul>\n");
1170
1171
1172 #line 322 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml"
1173 if ( GetLoop( "Ecom:ProductList.Pages" ).Count > 0 )
{
1174
1175 #line default
1176 #line hidden
1177 WriteLiteral(" <ol>\n");
1178
1179
1180 #line 325 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml"
1181
1182
1183 #line default
1184 #line hidden
1185
1186 #line 325 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml"
1187 foreach ( LoopItem page in GetLoop( "Ecom:ProductList.Pages" ) )
{
string pagingPageUrl = page.GetString( "Ecom:ProductList.Pages.Page.Url" );
string pagingPageNumber = page.GetString( "Ecom:ProductList.Pages.Page.Number" );
1188
1189 #line default
1190 #line hidden
1191 WriteLiteral(" <li>\n <a");
1192
1193 WriteAttribute("href", Tuple.Create(" href=\"", 20005), Tuple.Create("\"", 20026)
1194
1195 #line 330 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml"
1196 , Tuple.Create(Tuple.Create("", 20012), Tuple.Create<System.Object, System.Int32>(pagingPageUrl
1197
1198 #line default
1199 #line hidden
1200 , 20012), false)
1201 );
1202
1203 WriteLiteral(">");
1204
1205
1206 #line 330 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml"
1207 Write(pagingPageNumber);
1208
1209
1210 #line default
1211 #line hidden
1212 WriteLiteral("</a>\n </li>\n");
1213
1214
1215 #line 332 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml"
1216 }
1217
1218 #line default
1219 #line hidden
1220 WriteLiteral(" </ol>\n");
1221
1222
1223 #line 334 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml"
1224 }
1225
1226 #line default
1227 #line hidden
1228 WriteLiteral("<!--/ Products for search engines that do not support dynamic rendering with js " +
1229 "-->\n\n\n<script>\n\ndataLayer.push({\n \'ecommerce\': {\n \'currencyCode\': \'");
1230
1231
1232 #line 342 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml"
1233 Write(GetGlobalValue("Global:eCommerce.Currency"));
1234
1235
1236 #line default
1237 #line hidden
1238 WriteLiteral("\',\n \'impressions\': arrProducts\n }\n});\n\n</script>\n\n <script" +
1239 "");
1240
1241 WriteLiteral(" id=\"js-e-productlist-products-handlebars-template\"");
1242
1243 WriteLiteral(" type=\"text/x-handlebars-template\"");
1244
1245 WriteLiteral(">\r\n <div class=\"e-products\">\r\n <div class=\"row p-b-1 e-products-top\">" +
1246 "\r\n");
1247
1248
1249 #line 352 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml"
1250
1251
1252 #line default
1253 #line hidden
1254
1255 #line 352 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml"
1256 if(Espresso.Item.Filters == "True"){
1257
1258
1259 #line default
1260 #line hidden
1261 WriteLiteral(" <div");
1262
1263 WriteLiteral(" class=\"col-xs-12 m-b-2 hidden-lg-up\"");
1264
1265 WriteLiteral(">\r\n <button");
1266
1267 WriteLiteral(" class=\"btn btn-block btn-primary\"");
1268
1269 WriteLiteral(" type=\"button\"");
1270
1271 WriteLiteral(" data-toggle=\"modal\"");
1272
1273 WriteLiteral(" data-target=\"#js-e-productlist-filters-modal\"");
1274
1275 WriteLiteral(">");
1276
1277
1278 #line 354 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml"
1279 Write(Translate( "eCom_Productlist_FiltersHeaderText", "Tilpas udvalg"));
1280
1281
1282 #line default
1283 #line hidden
1284 WriteLiteral(" ({{page.filtersAppliedCount}})</button>\r\n </div>\r\n");
1285
1286
1287 #line 356 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml"
1288 }
1289
1290
1291 #line default
1292 #line hidden
1293 WriteLiteral("\n string[] excludedOptions = {\"Name DESC\", \"Created ASC\", \"Created DESC\", \"Ratin" +
1294 "g ASC\", \"Number ASC\", \"Rating ASC\", \"Rating DESC\", \"Price ASC\", \"Price DESC\"};\n\n" +
1295 "\n<div class=\"col-xs-6 form-inline\">\n <label for=\"Sort\" class=\"m-b-0\">\n <stro" +
1296 "ng>");
1297
1298
1299 #line 363 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml"
1300 Write(Translate( "eCom_Productlist_SortLabelText", "Sorter: "));
1301
1302
1303 #line default
1304 #line hidden
1305 WriteLiteral("</strong>\n <select name=\"Sort\" class=\"js-e-productlist-sort form-control\">\n");
1306
1307
1308 #line 365 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml"
1309
1310
1311 #line default
1312 #line hidden
1313
1314 #line 365 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml"
1315 foreach( FieldOptionMetadata sortByOption in ItemManager.Metadata.GetItemFields( "ParagraphModule_EcomProductList" ).FirstOrDefault( f => f.SystemName == "SortBy" ).Options.Values ){
foreach( FieldOptionMetadata sortOrderOption in ItemManager.Metadata.GetItemFields( "ParagraphModule_EcomProductList" ).FirstOrDefault( f => f.SystemName == "SortOrder" ).Options.Values ){
if(excludedOptions.Any(o => o.Contains(String.Format("{0} {1}", sortByOption.Value, sortOrderOption.Value ))) == false){
1316
1317 #line default
1318 #line hidden
1319 WriteLiteral(" <option");
1320
1321 WriteAttribute("value", Tuple.Create(" value=\"", 21781), Tuple.Create("\"", 21857)
1322
1323 #line 368 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml"
1324 , Tuple.Create(Tuple.Create("", 21789), Tuple.Create<System.Object, System.Int32>(String.Format("{0} {1}", sortByOption.Value, sortOrderOption.Value)
1325
1326 #line default
1327 #line hidden
1328 , 21789), false)
1329 );
1330
1331 WriteLiteral(" {{#compare sort.sort \'===\' \'");
1332
1333
1334 #line 368 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml"
1335 Write(String.Format("{0} {1}", sortByOption.Value, sortOrderOption.Value));
1336
1337
1338 #line default
1339 #line hidden
1340 WriteLiteral("\'}}selected{{/compare}}>\n");
1341
1342 WriteLiteral(" ");
1343
1344
1345 #line 369 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml"
1346 Write(Translate(String.Format("eCom_Productlist_SortOptionLabel_{0}_{1}", sortByOption.Value, sortOrderOption.Value ), String.Format("{0} {1}", sortByOption.Name, sortOrderOption.Name)));
1347
1348
1349 #line default
1350 #line hidden
1351 WriteLiteral("\n </option>\n");
1352
1353
1354 #line 371 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml"
1355 }
}
}
1356
1357 #line default
1358 #line hidden
1359 WriteLiteral(" </select>\n </label>\n</div>\n\r\n<div class=\"e-products-paging col-xs-6 small\">\r" +
1360 "\n <small>\r\n {{#if page.productCount}}\r\n <strong>{{page.viewing.from" +
1361 "}} - {{page.viewing.to}}</strong> ");
1362
1363
1364 #line 381 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml"
1365 Write(Translate( "eCom_Productlist_ProductcountOffText", "ud af "));
1366
1367
1368 #line default
1369 #line hidden
1370 WriteLiteral(@"
1371 {{/if}}
1372 <strong>{{page.productCount}}</strong>
1373 </small>
1374 {{#compare page.prevPage '!==' 0 }}
1375 <a href=""#"" class=""btn btn-link p-a-0 m-l-1 js-e-productlist-set-pagenum"" data-page-num=""{{page.prevPage}}"">
1376 <i class=""material-icons"">keyboard_arrow_left</i>
1377 <span class=""hidden-lg-down"">
1378 ");
1379
1380 WriteLiteral(" ");
1381
1382
1383 #line 389 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml"
1384 Write(Translate( "eCom_Productlist_Pages_Prev", "Forrige"));
1385
1386
1387 #line default
1388 #line hidden
1389 WriteLiteral(@"
1390 </span>
1391 </a>
1392 {{/compare}}
1393 {{#compare page.nextPage '!==' 0 }}
1394 <a href=""#"" class=""btn btn-link p-a-0 m-x-1 js-e-productlist-set-pagenum"" data-page-num=""{{page.nextPage}}"">
1395 <span class=""hidden-lg-down"">
1396 ");
1397
1398 WriteLiteral(" ");
1399
1400
1401 #line 396 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml"
1402 Write(Translate( "eCom_Productlist_Pages_Next", "Næste"));
1403
1404
1405 #line default
1406 #line hidden
1407 WriteLiteral(@"
1408 </span>
1409 <i class=""material-icons"">keyboard_arrow_right</i></a>
1410 {{/compare}}
1411 {{#compare page.pageSize '!==' 999}}
1412 {{#compare page.totalPages '>' 1 }}
1413 <a href=""#"" class=""btn btn-link p-a-0 m-l-1 js-e-productlist-set-pagesize hidden-md-down"" data-page-size=""999"">
1414 ");
1415
1416 WriteLiteral(" ");
1417
1418
1419 #line 403 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml"
1420 Write(Translate( "eCom_Productlist_Pages_Show_All", "Vis alle"));
1421
1422
1423 #line default
1424 #line hidden
1425 WriteLiteral("\r\n </a>\r\n {{/compare}}\r\n {{/compare}}\r\n {{#compare page.p" +
1426 "ageSize \'===\' 999}}\r\n <a href=\"#\" class=\"btn btn-link p-a-0 m-l-1 js-e-pr" +
1427 "oductlist-set-pagesize hidden-md-down\" data-page-size=\"");
1428
1429
1430 #line 408 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml"
1431 Write(Espresso.Item.Pagesize);
1432
1433
1434 #line default
1435 #line hidden
1436 WriteLiteral("\">");
1437
1438
1439 #line 408 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml"
1440 Write(Translate( "eCom_Productlist_Pages_Show_Fewer", "Nulstil"));
1441
1442
1443 #line default
1444 #line hidden
1445 WriteLiteral(@"</a>
1446 {{/compare}}
1447 </div>
1448
1449
1450
1451
1452 </div>
1453 <div class=""e-loading-overlay e-product-grid-loading-overlay js-e-product-grid-loading-overlay is-loading"">
1454 <div class=""e-loading-spinner""></div>
1455 </div>
1456 {{#if page.productCount}}
1457 <ul class=""e-grid"">
1458 {{#each products}}
1459 <li class=""");
1460
1461
1462 #line 422 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml"
1463 Write(productListLayout);
1464
1465
1466 #line default
1467 #line hidden
1468 WriteLiteral(@" js-e-grid-item"">
1469 <div class=""e-product-container"" data-variant-id=""{{variantId}}"">
1470 <div class=""e-product"">
1471 <div class=""e-product-image-container"">
1472 <a class=""e-product-image-wrapper"" href=""{{url}}"">
1473 <img src=""{{imageLarge}}"" alt="""" class=""e-product-image"">
1474 </a>
1475 </div>
1476 <div class=""e-product-text-container"">
1477 <h3 class=""e-product-text m-b-0"">
1478 {{number}} <small>{{color}}</small>
1479 </h3>
1480 <p class=""e-product-name small m-b-0 m-t-0""><a href=""{{url}}"">{{name}}</a></p>
1481 {{#if descriptionShortExtra01}}
1482 <p class=""e-product-text small"">
1483 <a href=""{{url}}"">
1484 {{descriptionShortExtra01}}
1485 </a>
1486 </p>
1487 {{/if}}
1488 </div>
1489 </div>
1490 </div>
1491 </li>
1492
1493 {{/each}}
1494 </ul>
1495 {{else}}
1496 <div class=""alert alert-warning m-t-2"" role=""alert"">
1497 <strong><i class=""material-icons material-icons-2x"">sentiment_dissatisfied</i> ");
1498
1499
1500 #line 451 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml"
1501 Write(Translate( "eCom_Productlist_No_Products_Header", "Desværre.."));
1502
1503
1504 #line default
1505 #line hidden
1506 WriteLiteral("</strong>\r\n <br> ");
1507
1508
1509 #line 452 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml"
1510 Write(Translate( "eCom_Productlist_No_Products_Text", "Ingen produkter matcher dine valg."));
1511
1512
1513 #line default
1514 #line hidden
1515 WriteLiteral("\r\n </div>\r\n {{/if}}\r\n <div class=\"row p-t-1 e-products-botto" +
1516 "m\">\r\n \r\n<div class=\"col-xs-6\">\r\n <small>");
1517
1518
1519 #line 458 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml"
1520 Write(Translate( "eCom_PriceInfoText_Public", "Alle priser er inkl. moms" ));
1521
1522
1523 #line default
1524 #line hidden
1525 WriteLiteral("</small>\r\n</div>\r\n\r\n<div class=\"e-products-paging col-xs-6 small\">\r\n <small>\r\n" +
1526 " {{#if page.productCount}}\r\n <strong>{{page.viewing.from}} - {{page.vi" +
1527 "ewing.to}}</strong> ");
1528
1529
1530 #line 464 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml"
1531 Write(Translate( "eCom_Productlist_ProductcountOffText", "ud af "));
1532
1533
1534 #line default
1535 #line hidden
1536 WriteLiteral(@"
1537 {{/if}}
1538 <strong>{{page.productCount}}</strong>
1539 </small>
1540 {{#compare page.prevPage '!==' 0 }}
1541 <a href=""#"" class=""btn btn-link p-a-0 m-l-1 js-e-productlist-set-pagenum"" data-page-num=""{{page.prevPage}}"">
1542 <i class=""material-icons"">keyboard_arrow_left</i>
1543 <span class=""hidden-lg-down"">
1544 ");
1545
1546 WriteLiteral(" ");
1547
1548
1549 #line 472 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml"
1550 Write(Translate( "eCom_Productlist_Pages_Prev", "Forrige"));
1551
1552
1553 #line default
1554 #line hidden
1555 WriteLiteral(@"
1556 </span>
1557 </a>
1558 {{/compare}}
1559 {{#compare page.nextPage '!==' 0 }}
1560 <a href=""#"" class=""btn btn-link p-a-0 m-x-1 js-e-productlist-set-pagenum"" data-page-num=""{{page.nextPage}}"">
1561 <span class=""hidden-lg-down"">
1562 ");
1563
1564 WriteLiteral(" ");
1565
1566
1567 #line 479 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml"
1568 Write(Translate( "eCom_Productlist_Pages_Next", "Næste"));
1569
1570
1571 #line default
1572 #line hidden
1573 WriteLiteral(@"
1574 </span>
1575 <i class=""material-icons"">keyboard_arrow_right</i></a>
1576 {{/compare}}
1577 {{#compare page.pageSize '!==' 999}}
1578 {{#compare page.totalPages '>' 1 }}
1579 <a href=""#"" class=""btn btn-link p-a-0 m-l-1 js-e-productlist-set-pagesize hidden-md-down"" data-page-size=""999"">
1580 ");
1581
1582 WriteLiteral(" ");
1583
1584
1585 #line 486 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml"
1586 Write(Translate( "eCom_Productlist_Pages_Show_All", "Vis alle"));
1587
1588
1589 #line default
1590 #line hidden
1591 WriteLiteral("\r\n </a>\r\n {{/compare}}\r\n {{/compare}}\r\n {{#compare page.p" +
1592 "ageSize \'===\' 999}}\r\n <a href=\"#\" class=\"btn btn-link p-a-0 m-l-1 js-e-pr" +
1593 "oductlist-set-pagesize hidden-md-down\" data-page-size=\"");
1594
1595
1596 #line 491 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml"
1597 Write(Espresso.Item.Pagesize);
1598
1599
1600 #line default
1601 #line hidden
1602 WriteLiteral("\">");
1603
1604
1605 #line 491 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml"
1606 Write(Translate( "eCom_Productlist_Pages_Show_Fewer", "Nulstil"));
1607
1608
1609 #line default
1610 #line hidden
1611 WriteLiteral("</a>\r\n {{/compare}}\r\n</div>\r\n\r\n");
1612
1613
1614 #line 495 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml"
1615 if(Espresso.Item.Filters == "True"){
1616
1617
1618
1619 #line default
1620 #line hidden
1621 WriteLiteral(" <div");
1622
1623 WriteLiteral(" class=\"col-xs-12 m-t-2 hidden-lg-up\"");
1624
1625 WriteLiteral(">\r\n <button");
1626
1627 WriteLiteral(" class=\"btn btn-block btn-primary\"");
1628
1629 WriteLiteral(" type=\"button\"");
1630
1631 WriteLiteral(" data-toggle=\"modal\"");
1632
1633 WriteLiteral(" data-target=\"#js-e-productlist-filters-modal\"");
1634
1635 WriteLiteral(">");
1636
1637
1638 #line 498 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml"
1639 Write(Translate( "eCom_Productlist_FiltersHeaderText", "Tilpas udvalg"));
1640
1641
1642 #line default
1643 #line hidden
1644 WriteLiteral(" ({{page.filtersAppliedCount}})</button>\r\n </div>\r\n");
1645
1646
1647 #line 500 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml"
1648
1649 }
1650
1651
1652 #line default
1653 #line hidden
1654 WriteLiteral(" </div>\r\n </div>\r\n </script>\n </div>\n </di" +
1655 "v>\n </div>\n</div>\n\n");
1656
1657
1658 #line 510 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml"
1659 if(Espresso.Item.ShowFilters == "True"){
1660
1661 #line default
1662 #line hidden
1663 WriteLiteral(" <div");
1664
1665 WriteLiteral(" id=\"js-e-productlist-filters-modal\"");
1666
1667 WriteLiteral(" class=\"modal fade e-productlist-filters-modal js-e-productlist-filters-modal mod" +
1668 "al-fullscreen hidden-lg-up\"");
1669
1670 WriteLiteral(" data-backdrop=\"false\"");
1671
1672 WriteLiteral(">\r\n <script");
1673
1674 WriteLiteral(" id=\"js-e-productlist-filters-modal-template\"");
1675
1676 WriteLiteral(" type=\"text/x-handlebars-template\"");
1677
1678 WriteLiteral(@">
1679 <div class=""modal-dialog"" role=""document"">
1680 <div class=""modal-content"">
1681 <button type=""button"" class=""close"" data-dismiss=""modal"">
1682 <i class=""material-icons"">close</i>
1683 </button>
1684 <legend class=""modal-header"">
1685 ");
1686
1687 WriteLiteral(" ");
1688
1689
1690 #line 519 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml"
1691 Write(Translate( "eCom_Productlist_FiltersHeaderText", "Tilpas udvalg"));
1692
1693
1694 #line default
1695 #line hidden
1696 WriteLiteral("\r\n </legend>\r\n <div class=\"modal-body\">\r\n <ul class=\"list-" +
1697 "group\">\r\n <strong>");
1698
1699
1700 #line 523 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml"
1701 Write(Translate( "eCom_Productlist_FiltersHeaderText", "Tilpas udvalg"));
1702
1703
1704 #line default
1705 #line hidden
1706 WriteLiteral(@"</strong>
1707 {{#each facets}}
1708 <li class=""list-group-item e-productlist-filters-items"" role=""tablist"" aria-multiselectable=""true"">
1709 <h4 class=""m-b-0"">
1710 <a id=""filter-header-{{param}}"" class=""e-productlist-filters-header"" data-toggle=""collapse"" href=""#filter-modal-panel-{{param}}"" aria-expanded=""{{#if selectedOptions.length}}true{{else}}false{{/if}}"" aria-controls=""filter-modal-panel-{{param}}"">
1711 {{label}}
1712 {{#if selectedOptions.length}}
1713 <span>({{selectedOptions.length}})</span>
1714 {{/if}}
1715 <i class=""material-icons e-productlist-filters-collapse-icon"">keyboard_arrow_right</i>
1716 </a>
1717 </h4>
1718 <div id=""filter-modal-panel-{{param}}"" class=""e-productlist-filters-collapse form-group collapse js-e-productlist-filters-collapse {{#if selectedOptions.length }}in{{/if}} m-b-0"" role=""tabpanel"" aria-labelledby=""filter-header-{{param}}"">
1719 <div class=""row m-t-2"">
1720 <div class=""col-xs-6 col-sm-4 col-md-3"">
1721 <input class=""js-e-productlist-filter-reset-all"" name=""reset-filter-{{param}}"" id=""reset-filter-{{param}}"" type=""checkbox"" value=""true"" {{#compare isCleared '||' isEmpty}}checked{{/compare}}>
1722 <label for=""reset-filter-{{param}}"">
1723 ");
1724
1725 WriteLiteral(" ");
1726
1727
1728 #line 540 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml"
1729 Write(Translate( "eCom_Productlist_FiltersAllLabelText", "Alle "));
1730
1731
1732 #line default
1733 #line hidden
1734 WriteLiteral(@"
1735 </label>
1736 </div>
1737 {{#each options}}
1738 <div class=""col-xs-6 col-sm-4 col-md-3"">
1739 <input type=""checkbox"" value=""{{value}}"" {{#if isSelected}}checked{{/if}} {{#if isDisabled}}disabled{{/if}}>
1740 <label class=""js-e-productlist-filter-label-mobile"" for=""{{id}}"">{{label}} <span class=""small"">({{count}})</span></label>
1741 </div>
1742 {{/each}}
1743 </div>
1744 </div>
1745 </li>
1746 {{/each}}
1747 <li class=""list-group-item e-productlist-filters-items"" role=""tablist"" aria-multiselectable=""true"">
1748 <h4 class=""m-b-0"">
1749 <a id=""filter-header-price"" class=""e-productlist-filters-header"" data-toggle=""collapse"" href=""#filter-modal-panel-price"" aria-expanded=""{{#compare page.minPrice.clean '||' page.maxPrice.clean}}true{{else}}false{{/compare}}"" aria-controls=""filter-modal-panel-price"">
1750 ");
1751
1752 WriteLiteral(" ");
1753
1754
1755 #line 556 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml"
1756 Write(Translate( "eCom_Productlist_FiltersPriceRangeHeader", "Pris"));
1757
1758
1759 #line default
1760 #line hidden
1761 WriteLiteral(@"
1762 {{#compare page.minPrice.clean '&&' page.maxPrice.clean}}
1763 <span>(1)</span>
1764 {{/compare}}
1765 <i class=""material-icons e-productlist-filters-collapse-icon"">keyboard_arrow_right</i>
1766 </a>
1767 </h4>
1768 <div id=""filter-modal-panel-price"" class=""e-productlist-filters-collapse form-group collapse js-e-productlist-filters-collapse {{#compare page.minPrice.clean '||' page.maxPrice.clean}}in{{/compare}} m-b-0"" role=""tabpanel"" aria-labelledby=""filter-header-price"">
1769 <div class=""row m-t-1 e-productlist-filters-range-group js-e-productlist-filters-range-group"">
1770 <div class=""col-xs-4"">
1771 <input type=""number"" class=""form-control js-e-productlist-filter-range js-e-productlist-filter-range-min"" name=""PriceRangeMin"" id=""PriceRangeMinModal"" value=""{{page.minPrice.clean}}"" placeholder=""");
1772
1773
1774 #line 566 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml"
1775 Write(Translate("eCom_Productlist_Filters_Price_Min_Text", "Fra"));
1776
1777
1778 #line default
1779 #line hidden
1780 WriteLiteral(@""" min=""0"">
1781 </div>
1782 <div class=""col-xs-4"">
1783 <input type=""number"" class=""form-control js-e-productlist-filter-range js-e-productlist-filter-range-max"" name=""PriceRangeMax"" id=""PriceRangeMaxModal"" value=""{{page.maxPrice.clean}}"" placeholder=""");
1784
1785
1786 #line 569 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml"
1787 Write(Translate("eCom_Productlist_Filters_Price_Max_Text", "Til"));
1788
1789
1790 #line default
1791 #line hidden
1792 WriteLiteral("\" data-msg-pricerange=\"");
1793
1794
1795 #line 569 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml"
1796 Write(Translate("eCom_Productlist_Filters_Price_Error_Msg", "Priser indtastet forkert"));
1797
1798
1799 #line default
1800 #line hidden
1801 WriteLiteral(@""">
1802 </div>
1803 <div class=""col-xs-1"">
1804 <button type=""button"" class=""btn btn-link p-x-0 e-productlist-filter-clear-range js-e-productlist-filter-range-clear"" data-group-id=""js-e-productlist-filters-range-group-price""><i class=""material-icons"">clear</i></button>
1805 </div>
1806 <div class=""col-xs-3"">
1807 <button type=""button"" class=""btn btn-primary p-x-0 btn-sm btn-block e-productlist-filter-apply-range js-e-productlist-filter-apply-range""><i class=""material-icons"">sync</i></button>
1808 </div>
1809
1810 </div>
1811 </li>
1812 </ul>
1813 </div>
1814 <div class=""modal-footer"">
1815 <a href=""#"" class=""btn btn-secondary js-e-productlist-filter-clear-all"">");
1816
1817
1818 #line 583 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml"
1819 Write(Translate( "eCom_Productlist_FiltersResetFilterLinkText", "Nulstil alle filtre"));
1820
1821
1822 #line default
1823 #line hidden
1824 WriteLiteral("</a>\r\n <button type=\"button\" class=\"btn btn-primary\" data-dismiss=\"modal" +
1825 "\">\r\n");
1826
1827 WriteLiteral(" ");
1828
1829
1830 #line 585 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml"
1831 Write(Translate( "eCom_Productlist_FiltersApplyTextModal", "Anvend"));
1832
1833
1834 #line default
1835 #line hidden
1836 WriteLiteral("\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </script>\r\n</d" +
1837 "iv>\r\n");
1838
1839
1840 #line 592 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml"
1841
1842
}
1843
1844 #line default
1845 #line hidden
1846 }
1847 }
1848 }
1849
1 @inherits Co3.Espresso.Website.TemplateBases.Paragraphs.Module
@using Dynamicweb.Content.Items.Metadata
@using Dynamicweb.Content.Items
@using System.Linq
@using System.Web
@using Dynamicweb.Frontend
@using System.Globalization;
2 @using System.Text.RegularExpressions;
3 @using Dynamicweb.Ecommerce.Common;
4 @using Co3.Espresso.Website.Services;
5
6 @functions {
7 CultureInfo AreaCultureInfo = Dynamicweb.Frontend.PageView.Current().Area.CultureInfo;
8
9 public string getProductLink( string groupID, string productID, string variantID = "" ) {
10 string result = string.Empty;
11 string displayPage = Co3.Espresso.Website.Services.ProductService.Instance.GetGroupDisplayPage( groupID );
12 if( string.IsNullOrEmpty( displayPage ) == false ) {
13 if( string.IsNullOrEmpty( variantID ) == false ) {
14 result = "{0}&ProductID={1}&variantID={2}";
15 result = string.Format( result, displayPage, productID, variantID );
16 }
17 else {
18 result = "{0}&ProductID={1}";
19 result = string.Format( result, displayPage, productID );
20 }
21 }
22 return result;
23 }
24
25 public bool isProductGroupPublishedOnWebsite( string groupID ) {
26 bool result = false;
27 string displayPage = Co3.Espresso.Website.Services.ProductService.Instance.GetGroupDisplayPage( groupID );
28 if( string.IsNullOrEmpty( displayPage ) == false ) {
29 result = true;
30 }
31 return result;
32 }
33
34 public string getNewsLink( string categoryName, string newsID ) {
35 string result = NewsService.Instance.GetNewsDisplayPage( categoryName, newsID );
36 string displayPage = NewsService.Instance.GetNewsDisplayPage( categoryName, newsID );
37 if( string.IsNullOrEmpty( displayPage ) == false ) {
38 result = "/" + displayPage.Replace( "Id", "ID" ).Replace( "#", "&PID=" ) + "&M=NewsV2&Action=1&NewsID=" + newsID;
39 //result = SearchEngineFriendlyURLs.GetFriendlyUrl( result );
40 }
41 return result;
42 }
43
44 public string getImageURL( string url, int width = 2560, int height = 0, int crop = 0, int quality = 75, string format = "jpg" ) {
45 string result = string.Empty;
46 if( string.IsNullOrEmpty( url ) == false ) {
47 result = "/admin/public/getimage.ashx?Image={0}&Width={1}&Height={2}&Format={3}&Quality={4}&Crop={5}";
48 result = string.Format( result, url, width, height, format, quality, crop );
49 }
50 return result;
51 }
52
53 public string getPriceFormatted( string price ) {
54 string result = string.Empty;
55 if( string.IsNullOrEmpty( price ) == true ) {
56 price = Context.Currency.Format(0.00, false);
57 }
58 if ( Context.Currency.SymbolPlace == 0 ) {
59 result = string.Format( "<span class=\"e-product-price-symbol\">{1}</span> <strong>{0}</strong>", price, Context.Currency.Code );
60 }
61 else{
62 result = string.Format( "<strong>{0}</strong> <span class=\"e-product-price-symbol\">{1}</span>", price, Context.Currency.Code );
63 }
64 return result;
65 }
66
67 public string getShortDate( DateTime date ) {
68 string result = string.Empty;
69 result = date.Date.ToString( AreaCultureInfo.DateTimeFormat.ShortDatePattern ).Replace( "-" , "." );
70 return result;
71 }
72
73 public string getLongDate( DateTime date ) {
74 string result = string.Empty;
75 result = date.Date.ToString( AreaCultureInfo.DateTimeFormat.LongDatePattern );
76 return result;
77 }
78 }
@{
string productListClassList = "col-xs-12";
string visibleFacetOptionCount = Espresso.Item.VisibleFacetsOptionsCount;
string productListLayout = Espresso.Item.Layout;
string sortBy = string.IsNullOrEmpty(System.Web.HttpContext.Current.Request["SortBy"]) ? Espresso.Item.SortBy : System.Web.HttpContext.Current.Request["SortBy"];
string sortOrder = string.IsNullOrEmpty(System.Web.HttpContext.Current.Request["SortOrder"]) ? Espresso.Item.SortOrder : System.Web.HttpContext.Current.Request["SortOrder"];
string pageSize = string.IsNullOrEmpty(System.Web.HttpContext.Current.Request["PageSize"]) ? Espresso.Item.Pagesize : System.Web.HttpContext.Current.Request["PageSize"];
string pageNum = string.IsNullOrEmpty(System.Web.HttpContext.Current.Request["PageNum"]) ? GetString("Ecom:ProductList.CurrentPage") : System.Web.HttpContext.Current.Request["PageNum"];
}
<div class="e-loading-overlay e-productlist-filters-preloader-overlay js-e-productlist-filters-preloader-overlay is-loading">
<div class="e-loading-spinner"></div>
</div>
<div class="js-e-productlist" data-cart-redirect-to="@PageView.Current().Page.ID">
<div class="row">
<div class="hidden-md-down col-md-4">
@if(Espresso.Item.ShowNavigation == "True" && Espresso.Item.ShowFilters != "True"){
if( string.IsNullOrEmpty(Espresso.Item.NavigationHeading) == false ){
<h3>@Espresso.Item.NavigationHeading</h3>
}
<ul class="nav e-nav-local m-b-2">
@RenderNavigation( new {
id = "dwnav-local-" + Espresso.Id,
parentid = Espresso.Page.ID,
template = "local-vertical.xslt",
startlevel = 1,
endlevel = 99,
expandmode = "path",
} )
</ul>
}
<form class="js-e-productlist-form">
<input type="hidden" name="ID" value="@Espresso.Page.ID">
<input type="hidden" name="PageNum" value="@pageNum">
<input type="hidden" name="Sort" value="@sortBy @sortOrder">
<input type="hidden" name="SortBy" value="@sortBy">
<input type="hidden" name="SortOrder" value="@sortOrder">
<input type="hidden" name="PageSize" value="@pageSize">
<input type="hidden" class="js-e-visible-options-count" value="@visibleFacetOptionCount">
@foreach(LoopItem item in GetLoop("Query.Parameters")){
if(string.IsNullOrEmpty(item.GetString("Parameter.Value")) == false){
<input type="hidden" name="@item.GetString("Parameter.Name")" value="@item.GetString("Parameter.Value")">
}
}
@foreach (LoopItem facetGroup in GetLoop("FacetGroups")) {
if(string.IsNullOrEmpty(facetGroup.GetString("FacetGroup.Name")) == false){
<input type="hidden" name="SelectedFacetParams" value="@HttpContext.Current.Server.UrlEncode(facetGroup.GetString("FacetGroup.Name"))">
}
}
@if(Espresso.Item.ShowFilters == "True"){
productListClassList = "col-xs-12 col-lg-8";
<div id="js-e-productlist-filters">
<script id="js-e-productlist-filters-handlebars-template" type="text/x-handlebars-template">
79 <h3>@Translate( "eCom_Productlist_FiltersHeaderText", "Tilpas udvalg")</h3>
80 <ul class="list-group m-t-1">
81 <div class="list-group-item e-productlist-filter-selected small p-y-1">
82 {{#if page.filtersAppliedCount}}
83 <div class="e-productlist-filter-selected-header">
84 <h4>@Translate( "eCom_Productlist_FiltersSelectedText", "Valgte filtre")</h4>
85 <a href="#" class="small p-a-0 btn btn-link js-e-productlist-filter-clear-all">@Translate( "eCom_Productlist_FiltersResetFilterLinkText", "Nulstil alle")</a>
86 </div>
87 {{#each facets}}
88 {{#if selectedOptions.length}}
89 <ul class="e-productlist-filter-selected-items">
90 {{#each selectedOptions}}
91 <li class="e-productlist-filter-selected-item small"><a class="e-productlist-filter-selected-item-remove js-e-productlist-filter-remove" href="#" data-value="{{value}}"><i class="material-icons">clear</i></a> {{../name}}: {{label}}</li>
92 {{/each}}
93 </ul>
94 {{/if}}
95 {{/each}}
96 {{#if page.q}}
97 <ul class="e-productlist-filter-selected-items">
98 <li class="e-productlist-filter-selected-item small"><a class="e-productlist-filter-selected-item-remove js-e-productlist-filter-search-clear" href="#"><i class="material-icons">clear</i></a> @Translate( "eCom_Productlist_FiltersSearchHeader", "Søgning:") {{page.q}}</li>
99 </ul>
100 {{/if}}
101 {{#compare page.minPrice.clean '&&' page.maxPrice.clean}}
102 <ul class="e-productlist-filter-selected-items">
103 <li class="e-productlist-filter-selected-item small"><a class="e-productlist-filter-selected-item-remove js-e-productlist-filter-range-clear" href="#" data-group-id="js-e-productlist-filters-range-group-price"><i class="material-icons">clear</i></a> @Translate( "eCom_Productlist_FiltersPriceHeader", "Pris:") {{{page.minPrice.formatted}}} - {{{page.maxPrice.formatted}}}</li>
104 </ul>
105 {{/compare}}
106 {{else}}
107 <p class="m-b-0 small text-muted">@Translate("eCom_Productlist_Filters_No_Filters_Applied_Text", "Ingen filtre valgt")</p>
108 {{/if}}
109 </div>
110 @if(Espresso.Item.ShowNavigation == "True"){
111 <li class="list-group-item e-productlist-filters-items js-e-productlist-filters-items">
112 <h4 class="m-b-0">
113 <a id="filter-header-navigation" class="e-productlist-filters-header" href="#" data-toggle="collapse" data-target="#filter-panel-navigation" aria-expanded="false" aria-controls="filter-panel-navigation">
114 @if( string.IsNullOrEmpty(Espresso.Item.NavigationHeading) == false ){
115 @Espresso.Item.NavigationHeading
116 } else{
117 @Translate( "eCom_Productlist_FiltersNavigationHeader", "Kategorier")
118 }
119 <i class="material-icons e-productlist-filters-collapse-icon">keyboard_arrow_right</i>
120 </a>
121 </h4>
122 <fieldset id="filter-panel-navigation" class="e-productlist-filters-collapse form-group collapse js-e-productlist-filters-collapse m-b-0" role="tabpanel" aria-labelledby="filter-header-navigation">
123 <ul class="nav e-nav-local m-t-1">
124 @RenderNavigation( new {
125 id = "dwnav-local-" + Espresso.Id,
126 parentid = Espresso.Page.ID,
127 template = "local-vertical.xslt",
128 startlevel = 1,
129 endlevel = 99,
130 expandmode = "path",
131 } )
132 </ul>
133 </fieldset>
134 </li>
135 }
136 @if(Espresso.Item.ShowSearch == "True"){
137 <li class="list-group-item e-productlist-filters-items js-e-productlist-filters-items">
138 <h4 class="m-b-0">
139 <a id="filter-header-search" class="e-productlist-filters-header" href="#" data-toggle="collapse" data-target="#filter-panel-search" data-testers="#filter-panel-search" aria-expanded="{{#if page.q }}true{{else}}false{{/if}}" aria-controls="filter-panel-search">
140 @Translate( "eCom_Productlist_FiltersSearchHeader", "Søgning")
141 <i class="material-icons e-productlist-filters-collapse-icon">keyboard_arrow_right</i>
142 </a>
143 </h4>
144 <fieldset id="filter-panel-search" class="e-productlist-filters-collapse form-group collapse js-e-productlist-filters-collapse {{#if page.q}}in{{/if}} m-b-0" role="tabpanel" aria-labelledby="filter-header-search">
145 <div class="js-e-search-input-group e-search-input-group {{#unless page.q}}is-empty{{/unless}} m-t-1">
146 <label class="e-search-label" for="filter_search"><i class="material-icons">search</i></label>
147 <input type="text" class="js-e-search-input e-search-input e-productlist-filters-search-input form-control" name="q" id="filter_search" placeholder="Søgning" value="{{page.q}}">
148 <span class="js-e-search-clear e-search-clear"><i class="material-icons">close</i></span>
149 <button class="e-search-submit btn btn-primary js-e-productlist-filters-search-submit" type="button"><i class="material-icons p-a-0">search</i></button>
150 </div>
151 </fieldset>
152 </li>
153 }
154 {{#each facets}}
155 {{#compare count '>' 0}}
156 <li class="list-group-item e-productlist-filters-items js-e-productlist-filters-items" role="tablist" aria-multiselectable="true">
157 <h4 class="m-b-0">
158 <a id="filter-header-{{param}}" class="e-productlist-filters-header" href="#" data-toggle="collapse" data-target="#filter-panel-{{param}}" aria-expanded="{{#if selectedOptions.length }}true{{else}}{{#compare @@first '&&' @@root.page.hasNoInteraction}}true{{/compare}}{{/if}}" aria-controls="filter-panel-{{param}}">
159 {{label}}
160 {{#if selectedOptions.length}}
161 <span class="m-l-1">({{selectedOptions.length}})</span>
162 {{/if}}
163 <i class="material-icons e-productlist-filters-collapse-icon">keyboard_arrow_right</i>
164 </a>
165 </h4>
166 <fieldset id="filter-panel-{{param}}" class="e-productlist-filters-collapse form-group collapse js-e-productlist-filters-collapse {{#if selectedOptions.length }}in{{else}}{{#compare @@first '&&' @@root.page.hasNoInteraction}}in{{/compare}}{{/if}} {{#compare count '>' @visibleFacetOptionCount }}js-e-productlist-filters-collapse-peek e-productlist-filters-collapse-peek{{/compare}} m-b-0" role="tabpanel" aria-labelledby="filter-header-{{param}}">
167 <div class="e-productlist-filters-item m-t-1">
168 <input class="js-e-productlist-filter-reset-all" name="reset-filter-{{param}}" id="reset-filter-{{param}}" type="checkbox" value="true" {{#compare isCleared '||' isEmpty}}checked{{/compare}}>
169 <label for="reset-filter-{{param}}">
170 @Translate( "eCom_Productlist_FiltersAllLabelText", "Alle ")
171 </label>
172 </div>
173 {{#each options}}
174 <div class="e-productlist-filters-item js-e-productlist-filters-item {{#if isSelected}}js-e-productlist-filters-item-checked{{/if}}">
175 <input id="{{id}}" name="{{param}}" class="js-e-productlist-filter" type="checkbox" value="{{value}}" {{#if isSelected}}checked{{/if}} {{#if isDisabled}}disabled{{/if}}>
176 <label for="{{id}}">
177 {{label}}<span class="m-l-1">({{count}})</span>
178 </label>
179 </div>
180 {{/each}}
181 {{#compare count '>' @visibleFacetOptionCount }}
182 <a href="#" class="js-e-productlist-filters-collapse-peek-toggle e-productlist-filters-collapse-peek-toggle m-t-1" data-closed-text="@Translate("eCom_Productlist_Filters_See_More ", "Vis flere")" data-open-text="@Translate("eCom_Productlist_Filters_See_Less ", "Vis færre")"><i class="material-icons e-productlist-filters-collapse-peek-toggle-icon">keyboard_arrow_down</i></a>
183 {{/compare}}
184 </fieldset>
185 </li>
186 {{/compare}}
187 {{/each}}
188 <li class="list-group-item e-productlist-filters-items js-e-productlist-filters-items">
189 <h4 class="m-b-0">
190 <a id="filter-header-pricerange" class="e-productlist-filters-header" href="#" data-toggle="collapse" data-target="#filter-panel-pricerange" aria-expanded="{{#compare page.minPrice.clean '||' page.maxPrice.clean}}true{{else}}false{{/compare}}" aria-controls="filter-panel-pricerange">
191 @Translate( "eCom_Productlist_FiltersPriceRangeHeader", "Pris")
192 <i class="material-icons e-productlist-filters-collapse-icon">keyboard_arrow_right</i>
193 </a>
194 </h4>
195 <fieldset id="filter-panel-pricerange" class="e-productlist-filters-collapse form-group collapse js-e-productlist-filters-collapse {{#compare page.minPrice.clean '||' page.maxPrice.clean}}in{{/compare}} m-b-0" role="tabpanel" aria-labelledby="filter-header-pricerange">
196 <div id="js-e-productlist-filters-range-group-price" class="row m-t-1 e-productlist-filters-range-group js-e-productlist-filters-range-group">
197 <div class="col-xs-4">
198 <input type="number" class="form-control js-e-productlist-filter-range js-e-productlist-filter-range-min" name="PriceRangeMin" id="PriceRangeMin" value="{{page.minPrice.clean}}" placeholder="@Translate("eCom_Productlist_Filters_Price_Min_Text", "Fra")" min="0">
199 </div>
200 <div class="col-xs-4">
201 <input type="number" class="form-control js-e-productlist-filter-range js-e-productlist-filter-range-max" name="PriceRangeMax" id="PriceRangeMax" value="{{page.maxPrice.clean}}" placeholder="@Translate("eCom_Productlist_Filters_Price_Max_Text", "Til")" data-msg-rangeValid="@Translate("eCom_Productlist_Filters_Price_Error_Msg", "Priser indtastet forkert")">
202 </div>
203 <div class="col-xs-1">
204 <button type="button" class="btn btn-link p-x-0 e-productlist-filter-clear-range js-e-productlist-filter-range-clear" data-group-id="js-e-productlist-filters-range-group-price"><i class="material-icons">clear</i></button>
205 </div>
206 <div class="col-xs-3">
207 <button type="button" class="btn btn-primary p-x-0 btn-sm btn-block e-productlist-filter-apply-range js-e-productlist-filter-apply-range"><i class="material-icons">sync</i></button>
208 </div>
209
210 </div>
211 </fieldset>
212 </li>
213 </ul>
214 </script>
</div>
}
</form>
</div>
<div class="@productListClassList">
<div id="js-e-productlist-products" >
@{
int gtmProductLoopCounter = 0;
string websiteIntegerSeparator = GetGlobalValue( "Global:eCommerce.Currency.IntegerSeparator" );
string websiteDecimalSeparator = GetGlobalValue( "Global:eCommerce.Currency.DecimalSeparator" );
}
<script>
var arrProducts = [];
</script>
<!-- Products for search engines that do not support dynamic rendering with js -->
<ul itemscope itemtype="http://schema.org/ItemList">
@foreach ( LoopItem product in GetLoop( "Products" ) )
{
string productLink = getProductLink( product.GetString("Ecom:Product.PrimaryOrFirstGroupID"), product.GetString("Ecom:Product.ID") );
<li itemprop="itemListElement" itemscope itemtype="http://schema.org/Product">
<a href="@productLink" title="@product.GetString("Ecom:Product.Name")" itemprop="url">
<h3 itemprop="name">@product.GetString("Ecom:Product.Name")</h3>
<p itemprop="description">@product.GetString("Ecom:Product.ShortDescription")</p>
</a>
</li>
gtmProductLoopCounter++;
@:<script>
<text>
arrProducts.push( {
"name": "@product.GetString("Ecom:Product.Name")",
"id": "@product.GetString("Ecom:Product.ID")",
"price": "@product.GetString("Ecom:Product.Price.Price").Replace(websiteIntegerSeparator, string.Empty).Replace(websiteDecimalSeparator, ".")",
"brand": "@product.GetString("Ecom:Product:Field.BrandCode.Value")",
"category": "@product.GetString("Ecom:Product:Field.Category.Value")",
"variant": "@product.GetString("Ecom:Product:Field.ColorVariantText.Value")",
"list": "@GetGlobalValue("Global:Page.Name")",
"position": @gtmProductLoopCounter
});
</text>
@:</script>
}
</ul>
@if ( GetLoop( "Ecom:ProductList.Pages" ).Count > 0 )
{
<ol>
@foreach ( LoopItem page in GetLoop( "Ecom:ProductList.Pages" ) )
{
string pagingPageUrl = page.GetString( "Ecom:ProductList.Pages.Page.Url" );
string pagingPageNumber = page.GetString( "Ecom:ProductList.Pages.Page.Number" );
<li>
<a href="@pagingPageUrl">@pagingPageNumber</a>
</li>
}
</ol>
}
<!--/ Products for search engines that do not support dynamic rendering with js -->
<script>
dataLayer.push({
'ecommerce': {
'currencyCode': '@GetGlobalValue("Global:eCommerce.Currency")',
'impressions': arrProducts
}
});
</script>
<script id="js-e-productlist-products-handlebars-template" type="text/x-handlebars-template">
215 <div class="e-products">
216 <div class="row p-b-1 e-products-top">
217 @if(Espresso.Item.Filters == "True"){
218 <div class="col-xs-12 m-b-2 hidden-lg-up">
219 <button class="btn btn-block btn-primary" type="button" data-toggle="modal" data-target="#js-e-productlist-filters-modal">@Translate( "eCom_Productlist_FiltersHeaderText", "Tilpas udvalg") ({{page.filtersAppliedCount}})</button>
220 </div>
221 }
222
string[] excludedOptions = {"Name DESC", "Created ASC", "Created DESC", "Rating ASC", "Number ASC", "Rating ASC", "Rating DESC", "Price ASC", "Price DESC"};
<div class="col-xs-6 form-inline">
<label for="Sort" class="m-b-0">
<strong>@Translate( "eCom_Productlist_SortLabelText", "Sorter: ")</strong>
<select name="Sort" class="js-e-productlist-sort form-control">
@foreach( FieldOptionMetadata sortByOption in ItemManager.Metadata.GetItemFields( "ParagraphModule_EcomProductList" ).FirstOrDefault( f => f.SystemName == "SortBy" ).Options.Values ){
foreach( FieldOptionMetadata sortOrderOption in ItemManager.Metadata.GetItemFields( "ParagraphModule_EcomProductList" ).FirstOrDefault( f => f.SystemName == "SortOrder" ).Options.Values ){
if(excludedOptions.Any(o => o.Contains(String.Format("{0} {1}", sortByOption.Value, sortOrderOption.Value ))) == false){
<option value="@String.Format("{0} {1}", sortByOption.Value, sortOrderOption.Value)" {{#compare sort.sort '===' '@String.Format("{0} {1}", sortByOption.Value, sortOrderOption.Value)'}}selected{{/compare}}>
@Translate(String.Format("eCom_Productlist_SortOptionLabel_{0}_{1}", sortByOption.Value, sortOrderOption.Value ), String.Format("{0} {1}", sortByOption.Name, sortOrderOption.Name))
</option>
}
}
}
</select>
</label>
</div>
223 <div class="e-products-paging col-xs-6 small">
224 <small>
225 {{#if page.productCount}}
226 <strong>{{page.viewing.from}} - {{page.viewing.to}}</strong> @Translate( "eCom_Productlist_ProductcountOffText", "ud af ")
227 {{/if}}
228 <strong>{{page.productCount}}</strong>
229 </small>
230 {{#compare page.prevPage '!==' 0 }}
231 <a href="#" class="btn btn-link p-a-0 m-l-1 js-e-productlist-set-pagenum" data-page-num="{{page.prevPage}}">
232 <i class="material-icons">keyboard_arrow_left</i>
233 <span class="hidden-lg-down">
234 @Translate( "eCom_Productlist_Pages_Prev", "Forrige")
235 </span>
236 </a>
237 {{/compare}}
238 {{#compare page.nextPage '!==' 0 }}
239 <a href="#" class="btn btn-link p-a-0 m-x-1 js-e-productlist-set-pagenum" data-page-num="{{page.nextPage}}">
240 <span class="hidden-lg-down">
241 @Translate( "eCom_Productlist_Pages_Next", "Næste")
242 </span>
243 <i class="material-icons">keyboard_arrow_right</i></a>
244 {{/compare}}
245 {{#compare page.pageSize '!==' 999}}
246 {{#compare page.totalPages '>' 1 }}
247 <a href="#" class="btn btn-link p-a-0 m-l-1 js-e-productlist-set-pagesize hidden-md-down" data-page-size="999">
248 @Translate( "eCom_Productlist_Pages_Show_All", "Vis alle")
249 </a>
250 {{/compare}}
251 {{/compare}}
252 {{#compare page.pageSize '===' 999}}
253 <a href="#" class="btn btn-link p-a-0 m-l-1 js-e-productlist-set-pagesize hidden-md-down" data-page-size="@Espresso.Item.Pagesize">@Translate( "eCom_Productlist_Pages_Show_Fewer", "Nulstil")</a>
254 {{/compare}}
255 </div>
256
257
258
259
260 </div>
261 <div class="e-loading-overlay e-product-grid-loading-overlay js-e-product-grid-loading-overlay is-loading">
262 <div class="e-loading-spinner"></div>
263 </div>
264 {{#if page.productCount}}
265 <ul class="e-grid">
266 {{#each products}}
267 <li class="@productListLayout js-e-grid-item">
268 <div class="e-product-container" data-variant-id="{{variantId}}">
269 <div class="e-product">
270 <div class="e-product-image-container">
271 <a class="e-product-image-wrapper" href="{{url}}">
272 <img src="{{imageLarge}}" alt="" class="e-product-image">
273 </a>
274 </div>
275 <div class="e-product-text-container">
276 <h3 class="e-product-text m-b-0">
277 {{number}} <small>{{color}}</small>
278 </h3>
279 <p class="e-product-name small m-b-0 m-t-0"><a href="{{url}}">{{name}}</a></p>
280 {{#if descriptionShortExtra01}}
281 <p class="e-product-text small">
282 <a href="{{url}}">
283 {{descriptionShortExtra01}}
284 </a>
285 </p>
286 {{/if}}
287 </div>
288 </div>
289 </div>
290 </li>
291
292 {{/each}}
293 </ul>
294 {{else}}
295 <div class="alert alert-warning m-t-2" role="alert">
296 <strong><i class="material-icons material-icons-2x">sentiment_dissatisfied</i> @Translate( "eCom_Productlist_No_Products_Header", "Desværre..")</strong>
297 <br> @Translate( "eCom_Productlist_No_Products_Text", "Ingen produkter matcher dine valg.")
298 </div>
299 {{/if}}
300 <div class="row p-t-1 e-products-bottom">
301
302 <div class="col-xs-6">
303 <small>@Translate( "eCom_PriceInfoText_Public", "Alle priser er inkl. moms" )</small>
304 </div>
305
306 <div class="e-products-paging col-xs-6 small">
307 <small>
308 {{#if page.productCount}}
309 <strong>{{page.viewing.from}} - {{page.viewing.to}}</strong> @Translate( "eCom_Productlist_ProductcountOffText", "ud af ")
310 {{/if}}
311 <strong>{{page.productCount}}</strong>
312 </small>
313 {{#compare page.prevPage '!==' 0 }}
314 <a href="#" class="btn btn-link p-a-0 m-l-1 js-e-productlist-set-pagenum" data-page-num="{{page.prevPage}}">
315 <i class="material-icons">keyboard_arrow_left</i>
316 <span class="hidden-lg-down">
317 @Translate( "eCom_Productlist_Pages_Prev", "Forrige")
318 </span>
319 </a>
320 {{/compare}}
321 {{#compare page.nextPage '!==' 0 }}
322 <a href="#" class="btn btn-link p-a-0 m-x-1 js-e-productlist-set-pagenum" data-page-num="{{page.nextPage}}">
323 <span class="hidden-lg-down">
324 @Translate( "eCom_Productlist_Pages_Next", "Næste")
325 </span>
326 <i class="material-icons">keyboard_arrow_right</i></a>
327 {{/compare}}
328 {{#compare page.pageSize '!==' 999}}
329 {{#compare page.totalPages '>' 1 }}
330 <a href="#" class="btn btn-link p-a-0 m-l-1 js-e-productlist-set-pagesize hidden-md-down" data-page-size="999">
331 @Translate( "eCom_Productlist_Pages_Show_All", "Vis alle")
332 </a>
333 {{/compare}}
334 {{/compare}}
335 {{#compare page.pageSize '===' 999}}
336 <a href="#" class="btn btn-link p-a-0 m-l-1 js-e-productlist-set-pagesize hidden-md-down" data-page-size="@Espresso.Item.Pagesize">@Translate( "eCom_Productlist_Pages_Show_Fewer", "Nulstil")</a>
337 {{/compare}}
338 </div>
339
340 @if(Espresso.Item.Filters == "True"){
341
342 <div class="col-xs-12 m-t-2 hidden-lg-up">
343 <button class="btn btn-block btn-primary" type="button" data-toggle="modal" data-target="#js-e-productlist-filters-modal">@Translate( "eCom_Productlist_FiltersHeaderText", "Tilpas udvalg") ({{page.filtersAppliedCount}})</button>
344 </div>
345
346 }
347 </div>
348 </div>
349 </script>
</div>
</div>
</div>
</div>
@if(Espresso.Item.ShowFilters == "True"){
<div id="js-e-productlist-filters-modal" class="modal fade e-productlist-filters-modal js-e-productlist-filters-modal modal-fullscreen hidden-lg-up" data-backdrop="false">
350 <script id="js-e-productlist-filters-modal-template" type="text/x-handlebars-template">
351 <div class="modal-dialog" role="document">
352 <div class="modal-content">
353 <button type="button" class="close" data-dismiss="modal">
354 <i class="material-icons">close</i>
355 </button>
356 <legend class="modal-header">
357 @Translate( "eCom_Productlist_FiltersHeaderText", "Tilpas udvalg")
358 </legend>
359 <div class="modal-body">
360 <ul class="list-group">
361 <strong>@Translate( "eCom_Productlist_FiltersHeaderText", "Tilpas udvalg")</strong>
362 {{#each facets}}
363 <li class="list-group-item e-productlist-filters-items" role="tablist" aria-multiselectable="true">
364 <h4 class="m-b-0">
365 <a id="filter-header-{{param}}" class="e-productlist-filters-header" data-toggle="collapse" href="#filter-modal-panel-{{param}}" aria-expanded="{{#if selectedOptions.length}}true{{else}}false{{/if}}" aria-controls="filter-modal-panel-{{param}}">
366 {{label}}
367 {{#if selectedOptions.length}}
368 <span>({{selectedOptions.length}})</span>
369 {{/if}}
370 <i class="material-icons e-productlist-filters-collapse-icon">keyboard_arrow_right</i>
371 </a>
372 </h4>
373 <div id="filter-modal-panel-{{param}}" class="e-productlist-filters-collapse form-group collapse js-e-productlist-filters-collapse {{#if selectedOptions.length }}in{{/if}} m-b-0" role="tabpanel" aria-labelledby="filter-header-{{param}}">
374 <div class="row m-t-2">
375 <div class="col-xs-6 col-sm-4 col-md-3">
376 <input class="js-e-productlist-filter-reset-all" name="reset-filter-{{param}}" id="reset-filter-{{param}}" type="checkbox" value="true" {{#compare isCleared '||' isEmpty}}checked{{/compare}}>
377 <label for="reset-filter-{{param}}">
378 @Translate( "eCom_Productlist_FiltersAllLabelText", "Alle ")
379 </label>
380 </div>
381 {{#each options}}
382 <div class="col-xs-6 col-sm-4 col-md-3">
383 <input type="checkbox" value="{{value}}" {{#if isSelected}}checked{{/if}} {{#if isDisabled}}disabled{{/if}}>
384 <label class="js-e-productlist-filter-label-mobile" for="{{id}}">{{label}} <span class="small">({{count}})</span></label>
385 </div>
386 {{/each}}
387 </div>
388 </div>
389 </li>
390 {{/each}}
391 <li class="list-group-item e-productlist-filters-items" role="tablist" aria-multiselectable="true">
392 <h4 class="m-b-0">
393 <a id="filter-header-price" class="e-productlist-filters-header" data-toggle="collapse" href="#filter-modal-panel-price" aria-expanded="{{#compare page.minPrice.clean '||' page.maxPrice.clean}}true{{else}}false{{/compare}}" aria-controls="filter-modal-panel-price">
394 @Translate( "eCom_Productlist_FiltersPriceRangeHeader", "Pris")
395 {{#compare page.minPrice.clean '&&' page.maxPrice.clean}}
396 <span>(1)</span>
397 {{/compare}}
398 <i class="material-icons e-productlist-filters-collapse-icon">keyboard_arrow_right</i>
399 </a>
400 </h4>
401 <div id="filter-modal-panel-price" class="e-productlist-filters-collapse form-group collapse js-e-productlist-filters-collapse {{#compare page.minPrice.clean '||' page.maxPrice.clean}}in{{/compare}} m-b-0" role="tabpanel" aria-labelledby="filter-header-price">
402 <div class="row m-t-1 e-productlist-filters-range-group js-e-productlist-filters-range-group">
403 <div class="col-xs-4">
404 <input type="number" class="form-control js-e-productlist-filter-range js-e-productlist-filter-range-min" name="PriceRangeMin" id="PriceRangeMinModal" value="{{page.minPrice.clean}}" placeholder="@Translate("eCom_Productlist_Filters_Price_Min_Text", "Fra")" min="0">
405 </div>
406 <div class="col-xs-4">
407 <input type="number" class="form-control js-e-productlist-filter-range js-e-productlist-filter-range-max" name="PriceRangeMax" id="PriceRangeMaxModal" value="{{page.maxPrice.clean}}" placeholder="@Translate("eCom_Productlist_Filters_Price_Max_Text", "Til")" data-msg-pricerange="@Translate("eCom_Productlist_Filters_Price_Error_Msg", "Priser indtastet forkert")">
408 </div>
409 <div class="col-xs-1">
410 <button type="button" class="btn btn-link p-x-0 e-productlist-filter-clear-range js-e-productlist-filter-range-clear" data-group-id="js-e-productlist-filters-range-group-price"><i class="material-icons">clear</i></button>
411 </div>
412 <div class="col-xs-3">
413 <button type="button" class="btn btn-primary p-x-0 btn-sm btn-block e-productlist-filter-apply-range js-e-productlist-filter-apply-range"><i class="material-icons">sync</i></button>
414 </div>
415
416 </div>
417 </li>
418 </ul>
419 </div>
420 <div class="modal-footer">
421 <a href="#" class="btn btn-secondary js-e-productlist-filter-clear-all">@Translate( "eCom_Productlist_FiltersResetFilterLinkText", "Nulstil alle filtre")</a>
422 <button type="button" class="btn btn-primary" data-dismiss="modal">
423 @Translate( "eCom_Productlist_FiltersApplyTextModal", "Anvend")
424 </button>
425 </div>
426 </div>
427 </div>
428 </script>
429 </div>
430
431
}