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