Sweatshirts

Error compiling template "Designs/sevenseas/eCom/Productlist/espresso-product-grid.cshtml"
Line 125: 'Currency.Format(double, bool)' is obsolete: 'Use Ecommerce.Services.Currencies.Format instead'
Line 1368: The name 'excludedOptions' does not exist in the current context

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

1 @inherits Co3.Espresso.Website.TemplateBases.Paragraphs.Module @using Dynamicweb.Content.Items.Metadata @using Dynamicweb.Content.Items @using System.Linq @using System.Web @using Dynamicweb.Frontend @using System.Globalization; 2 @using System.Text.RegularExpressions; 3 @using Dynamicweb.Ecommerce.Common; 4 @using Co3.Espresso.Website.Services; 5 6 @functions { 7 CultureInfo AreaCultureInfo = Dynamicweb.Frontend.PageView.Current().Area.CultureInfo; 8 9 public string getProductLink( string groupID, string productID, string variantID = "" ) { 10 string result = string.Empty; 11 string displayPage = Co3.Espresso.Website.Services.ProductService.Instance.GetGroupDisplayPage( groupID ); 12 if( string.IsNullOrEmpty( displayPage ) == false ) { 13 if( string.IsNullOrEmpty( variantID ) == false ) { 14 result = "{0}&ProductID={1}&variantID={2}"; 15 result = string.Format( result, displayPage, productID, variantID ); 16 } 17 else { 18 result = "{0}&ProductID={1}"; 19 result = string.Format( result, displayPage, productID ); 20 } 21 } 22 return result; 23 } 24 25 public bool isProductGroupPublishedOnWebsite( string groupID ) { 26 bool result = false; 27 string displayPage = Co3.Espresso.Website.Services.ProductService.Instance.GetGroupDisplayPage( groupID ); 28 if( string.IsNullOrEmpty( displayPage ) == false ) { 29 result = true; 30 } 31 return result; 32 } 33 34 public string getNewsLink( string categoryName, string newsID ) { 35 string result = NewsService.Instance.GetNewsDisplayPage( categoryName, newsID ); 36 string displayPage = NewsService.Instance.GetNewsDisplayPage( categoryName, newsID ); 37 if( string.IsNullOrEmpty( displayPage ) == false ) { 38 result = "/" + displayPage.Replace( "Id", "ID" ).Replace( "#", "&PID=" ) + "&M=NewsV2&Action=1&NewsID=" + newsID; 39 //result = SearchEngineFriendlyURLs.GetFriendlyUrl( result ); 40 } 41 return result; 42 } 43 44 public string getImageURL( string url, int width = 2560, int height = 0, int crop = 0, int quality = 75, string format = "jpg" ) { 45 string result = string.Empty; 46 if( string.IsNullOrEmpty( url ) == false ) { 47 result = "/admin/public/getimage.ashx?Image={0}&Width={1}&Height={2}&Format={3}&Quality={4}&Crop={5}"; 48 result = string.Format( result, url, width, height, format, quality, crop ); 49 } 50 return result; 51 } 52 53 public string getPriceFormatted( string price ) { 54 string result = string.Empty; 55 if( string.IsNullOrEmpty( price ) == true ) { 56 price = Context.Currency.Format(0.00, false); 57 } 58 if ( Context.Currency.SymbolPlace == 0 ) { 59 result = string.Format( "<span class=\"e-product-price-symbol\">{1}</span>&nbsp;<strong>{0}</strong>", price, Context.Currency.Code ); 60 } 61 else{ 62 result = string.Format( "<strong>{0}</strong>&nbsp;<span class=\"e-product-price-symbol\">{1}</span>", price, Context.Currency.Code ); 63 } 64 return result; 65 } 66 67 public string getShortDate( DateTime date ) { 68 string result = string.Empty; 69 result = date.Date.ToString( AreaCultureInfo.DateTimeFormat.ShortDatePattern ).Replace( "-" , "." ); 70 return result; 71 } 72 73 public string getLongDate( DateTime date ) { 74 string result = string.Empty; 75 result = date.Date.ToString( AreaCultureInfo.DateTimeFormat.LongDatePattern ); 76 return result; 77 } 78 } @{ string productListClassList = "col-xs-12"; string visibleFacetOptionCount = Espresso.Item.VisibleFacetsOptionsCount; string productListLayout = Espresso.Item.Layout; string sortBy = string.IsNullOrEmpty(System.Web.HttpContext.Current.Request["SortBy"]) ? Espresso.Item.SortBy : System.Web.HttpContext.Current.Request["SortBy"]; string sortOrder = string.IsNullOrEmpty(System.Web.HttpContext.Current.Request["SortOrder"]) ? Espresso.Item.SortOrder : System.Web.HttpContext.Current.Request["SortOrder"]; string pageSize = string.IsNullOrEmpty(System.Web.HttpContext.Current.Request["PageSize"]) ? Espresso.Item.Pagesize : System.Web.HttpContext.Current.Request["PageSize"]; string pageNum = string.IsNullOrEmpty(System.Web.HttpContext.Current.Request["PageNum"]) ? GetString("Ecom:ProductList.CurrentPage") : System.Web.HttpContext.Current.Request["PageNum"]; } <div class="e-loading-overlay e-productlist-filters-preloader-overlay js-e-productlist-filters-preloader-overlay is-loading"> <div class="e-loading-spinner"></div> </div> <div class="js-e-productlist" data-cart-redirect-to="@PageView.Current().Page.ID"> <div class="row"> <div class="hidden-md-down col-md-4"> @if(Espresso.Item.ShowNavigation == "True" && Espresso.Item.ShowFilters != "True"){ if( string.IsNullOrEmpty(Espresso.Item.NavigationHeading) == false ){ <h3>@Espresso.Item.NavigationHeading</h3> } <ul class="nav e-nav-local m-b-2"> @RenderNavigation( new { id = "dwnav-local-" + Espresso.Id, parentid = Espresso.Page.ID, template = "local-vertical.xslt", startlevel = 1, endlevel = 99, expandmode = "path", } ) </ul> } <form class="js-e-productlist-form"> <input type="hidden" name="ID" value="@Espresso.Page.ID"> <input type="hidden" name="PageNum" value="@pageNum"> <input type="hidden" name="Sort" value="@sortBy @sortOrder"> <input type="hidden" name="SortBy" value="@sortBy"> <input type="hidden" name="SortOrder" value="@sortOrder"> <input type="hidden" name="PageSize" value="@pageSize"> <input type="hidden" class="js-e-visible-options-count" value="@visibleFacetOptionCount"> @foreach(LoopItem item in GetLoop("Query.Parameters")){ if(string.IsNullOrEmpty(item.GetString("Parameter.Value")) == false){ <input type="hidden" name="@item.GetString("Parameter.Name")" value="@item.GetString("Parameter.Value")"> } } @foreach (LoopItem facetGroup in GetLoop("FacetGroups")) { if(string.IsNullOrEmpty(facetGroup.GetString("FacetGroup.Name")) == false){ <input type="hidden" name="SelectedFacetParams" value="@HttpContext.Current.Server.UrlEncode(facetGroup.GetString("FacetGroup.Name"))"> } } @if(Espresso.Item.ShowFilters == "True"){ productListClassList = "col-xs-12 col-lg-8"; <div id="js-e-productlist-filters"> <script id="js-e-productlist-filters-handlebars-template" type="text/x-handlebars-template"> 79 <h3>@Translate( "eCom_Productlist_FiltersHeaderText", "Tilpas udvalg")</h3> 80 <ul class="list-group m-t-1"> 81 <div class="list-group-item e-productlist-filter-selected small p-y-1"> 82 {{#if page.filtersAppliedCount}} 83 <div class="e-productlist-filter-selected-header"> 84 <h4>@Translate( "eCom_Productlist_FiltersSelectedText", "Valgte filtre")</h4> 85 <a href="#" class="small p-a-0 btn btn-link js-e-productlist-filter-clear-all">@Translate( "eCom_Productlist_FiltersResetFilterLinkText", "Nulstil alle")</a> 86 </div> 87 {{#each facets}} 88 {{#if selectedOptions.length}} 89 <ul class="e-productlist-filter-selected-items"> 90 {{#each selectedOptions}} 91 <li class="e-productlist-filter-selected-item small"><a class="e-productlist-filter-selected-item-remove js-e-productlist-filter-remove" href="#" data-value="{{value}}"><i class="material-icons">clear</i></a> {{../name}}: {{label}}</li> 92 {{/each}} 93 </ul> 94 {{/if}} 95 {{/each}} 96 {{#if page.q}} 97 <ul class="e-productlist-filter-selected-items"> 98 <li class="e-productlist-filter-selected-item small"><a class="e-productlist-filter-selected-item-remove js-e-productlist-filter-search-clear" href="#"><i class="material-icons">clear</i></a> @Translate( "eCom_Productlist_FiltersSearchHeader", "Søgning:") {{page.q}}</li> 99 </ul> 100 {{/if}} 101 {{#compare page.minPrice.clean '&&' page.maxPrice.clean}} 102 <ul class="e-productlist-filter-selected-items"> 103 <li class="e-productlist-filter-selected-item small"><a class="e-productlist-filter-selected-item-remove js-e-productlist-filter-range-clear" href="#" data-group-id="js-e-productlist-filters-range-group-price"><i class="material-icons">clear</i></a> @Translate( "eCom_Productlist_FiltersPriceHeader", "Pris:") {{{page.minPrice.formatted}}} - {{{page.maxPrice.formatted}}}</li> 104 </ul> 105 {{/compare}} 106 {{else}} 107 <p class="m-b-0 small text-muted">@Translate("eCom_Productlist_Filters_No_Filters_Applied_Text", "Ingen filtre valgt")</p> 108 {{/if}} 109 </div> 110 @if(Espresso.Item.ShowNavigation == "True"){ 111 <li class="list-group-item e-productlist-filters-items js-e-productlist-filters-items"> 112 <h4 class="m-b-0"> 113 <a id="filter-header-navigation" class="e-productlist-filters-header" href="#" data-toggle="collapse" data-target="#filter-panel-navigation" aria-expanded="false" aria-controls="filter-panel-navigation"> 114 @if( string.IsNullOrEmpty(Espresso.Item.NavigationHeading) == false ){ 115 @Espresso.Item.NavigationHeading 116 } else{ 117 @Translate( "eCom_Productlist_FiltersNavigationHeader", "Kategorier") 118 } 119 <i class="material-icons e-productlist-filters-collapse-icon">keyboard_arrow_right</i> 120 </a> 121 </h4> 122 <fieldset id="filter-panel-navigation" class="e-productlist-filters-collapse form-group collapse js-e-productlist-filters-collapse m-b-0" role="tabpanel" aria-labelledby="filter-header-navigation"> 123 <ul class="nav e-nav-local m-t-1"> 124 @RenderNavigation( new { 125 id = "dwnav-local-" + Espresso.Id, 126 parentid = Espresso.Page.ID, 127 template = "local-vertical.xslt", 128 startlevel = 1, 129 endlevel = 99, 130 expandmode = "path", 131 } ) 132 </ul> 133 </fieldset> 134 </li> 135 } 136 @if(Espresso.Item.ShowSearch == "True"){ 137 <li class="list-group-item e-productlist-filters-items js-e-productlist-filters-items"> 138 <h4 class="m-b-0"> 139 <a id="filter-header-search" class="e-productlist-filters-header" href="#" data-toggle="collapse" data-target="#filter-panel-search" data-testers="#filter-panel-search" aria-expanded="{{#if page.q }}true{{else}}false{{/if}}" aria-controls="filter-panel-search"> 140 @Translate( "eCom_Productlist_FiltersSearchHeader", "Søgning") 141 <i class="material-icons e-productlist-filters-collapse-icon">keyboard_arrow_right</i> 142 </a> 143 </h4> 144 <fieldset id="filter-panel-search" class="e-productlist-filters-collapse form-group collapse js-e-productlist-filters-collapse {{#if page.q}}in{{/if}} m-b-0" role="tabpanel" aria-labelledby="filter-header-search"> 145 <div class="js-e-search-input-group e-search-input-group {{#unless page.q}}is-empty{{/unless}} m-t-1"> 146 <label class="e-search-label" for="filter_search"><i class="material-icons">search</i></label> 147 <input type="text" class="js-e-search-input e-search-input e-productlist-filters-search-input form-control" name="q" id="filter_search" placeholder="Søgning" value="{{page.q}}"> 148 <span class="js-e-search-clear e-search-clear"><i class="material-icons">close</i></span> 149 <button class="e-search-submit btn btn-primary js-e-productlist-filters-search-submit" type="button"><i class="material-icons p-a-0">search</i></button> 150 </div> 151 </fieldset> 152 </li> 153 } 154 {{#each facets}} 155 {{#compare count '>' 0}} 156 <li class="list-group-item e-productlist-filters-items js-e-productlist-filters-items" role="tablist" aria-multiselectable="true"> 157 <h4 class="m-b-0"> 158 <a id="filter-header-{{param}}" class="e-productlist-filters-header" href="#" data-toggle="collapse" data-target="#filter-panel-{{param}}" aria-expanded="{{#if selectedOptions.length }}true{{else}}{{#compare @@first '&&' @@root.page.hasNoInteraction}}true{{/compare}}{{/if}}" aria-controls="filter-panel-{{param}}"> 159 {{label}} 160 {{#if selectedOptions.length}} 161 <span class="m-l-1">({{selectedOptions.length}})</span> 162 {{/if}} 163 <i class="material-icons e-productlist-filters-collapse-icon">keyboard_arrow_right</i> 164 </a> 165 </h4> 166 <fieldset id="filter-panel-{{param}}" class="e-productlist-filters-collapse form-group collapse js-e-productlist-filters-collapse {{#if selectedOptions.length }}in{{else}}{{#compare @@first '&&' @@root.page.hasNoInteraction}}in{{/compare}}{{/if}} {{#compare count '>' @visibleFacetOptionCount }}js-e-productlist-filters-collapse-peek e-productlist-filters-collapse-peek{{/compare}} m-b-0" role="tabpanel" aria-labelledby="filter-header-{{param}}"> 167 <div class="e-productlist-filters-item m-t-1"> 168 <input class="js-e-productlist-filter-reset-all" name="reset-filter-{{param}}" id="reset-filter-{{param}}" type="checkbox" value="true" {{#compare isCleared '||' isEmpty}}checked{{/compare}}> 169 <label for="reset-filter-{{param}}"> 170 @Translate( "eCom_Productlist_FiltersAllLabelText", "Alle ") 171 </label> 172 </div> 173 {{#each options}} 174 <div class="e-productlist-filters-item js-e-productlist-filters-item {{#if isSelected}}js-e-productlist-filters-item-checked{{/if}}"> 175 <input id="{{id}}" name="{{param}}" class="js-e-productlist-filter" type="checkbox" value="{{value}}" {{#if isSelected}}checked{{/if}} {{#if isDisabled}}disabled{{/if}}> 176 <label for="{{id}}"> 177 {{label}}<span class="m-l-1">({{count}})</span> 178 </label> 179 </div> 180 {{/each}} 181 {{#compare count '>' @visibleFacetOptionCount }} 182 <a href="#" class="js-e-productlist-filters-collapse-peek-toggle e-productlist-filters-collapse-peek-toggle m-t-1" data-closed-text="@Translate("eCom_Productlist_Filters_See_More ", "Vis flere")" data-open-text="@Translate("eCom_Productlist_Filters_See_Less ", "Vis færre")"><i class="material-icons e-productlist-filters-collapse-peek-toggle-icon">keyboard_arrow_down</i></a> 183 {{/compare}} 184 </fieldset> 185 </li> 186 {{/compare}} 187 {{/each}} 188 <li class="list-group-item e-productlist-filters-items js-e-productlist-filters-items"> 189 <h4 class="m-b-0"> 190 <a id="filter-header-pricerange" class="e-productlist-filters-header" href="#" data-toggle="collapse" data-target="#filter-panel-pricerange" aria-expanded="{{#compare page.minPrice.clean '||' page.maxPrice.clean}}true{{else}}false{{/compare}}" aria-controls="filter-panel-pricerange"> 191 @Translate( "eCom_Productlist_FiltersPriceRangeHeader", "Pris") 192 <i class="material-icons e-productlist-filters-collapse-icon">keyboard_arrow_right</i> 193 </a> 194 </h4> 195 <fieldset id="filter-panel-pricerange" class="e-productlist-filters-collapse form-group collapse js-e-productlist-filters-collapse {{#compare page.minPrice.clean '||' page.maxPrice.clean}}in{{/compare}} m-b-0" role="tabpanel" aria-labelledby="filter-header-pricerange"> 196 <div id="js-e-productlist-filters-range-group-price" class="row m-t-1 e-productlist-filters-range-group js-e-productlist-filters-range-group"> 197 <div class="col-xs-4"> 198 <input type="number" class="form-control js-e-productlist-filter-range js-e-productlist-filter-range-min" name="PriceRangeMin" id="PriceRangeMin" value="{{page.minPrice.clean}}" placeholder="@Translate("eCom_Productlist_Filters_Price_Min_Text", "Fra")" min="0"> 199 </div> 200 <div class="col-xs-4"> 201 <input type="number" class="form-control js-e-productlist-filter-range js-e-productlist-filter-range-max" name="PriceRangeMax" id="PriceRangeMax" value="{{page.maxPrice.clean}}" placeholder="@Translate("eCom_Productlist_Filters_Price_Max_Text", "Til")" data-msg-rangeValid="@Translate("eCom_Productlist_Filters_Price_Error_Msg", "Priser indtastet forkert")"> 202 </div> 203 <div class="col-xs-1"> 204 <button type="button" class="btn btn-link p-x-0 e-productlist-filter-clear-range js-e-productlist-filter-range-clear" data-group-id="js-e-productlist-filters-range-group-price"><i class="material-icons">clear</i></button> 205 </div> 206 <div class="col-xs-3"> 207 <button type="button" class="btn btn-primary p-x-0 btn-sm btn-block e-productlist-filter-apply-range js-e-productlist-filter-apply-range"><i class="material-icons">sync</i></button> 208 </div> 209 210 </div> 211 </fieldset> 212 </li> 213 </ul> 214 </script> </div> } </form> </div> <div class="@productListClassList"> <div id="js-e-productlist-products" > @{ int gtmProductLoopCounter = 0; string websiteIntegerSeparator = GetGlobalValue( "Global:eCommerce.Currency.IntegerSeparator" ); string websiteDecimalSeparator = GetGlobalValue( "Global:eCommerce.Currency.DecimalSeparator" ); } <script> var arrProducts = []; </script> <!-- Products for search engines that do not support dynamic rendering with js --> <ul itemscope itemtype="http://schema.org/ItemList"> @foreach ( LoopItem product in GetLoop( "Products" ) ) { string productLink = getProductLink( product.GetString("Ecom:Product.PrimaryOrFirstGroupID"), product.GetString("Ecom:Product.ID") ); <li itemprop="itemListElement" itemscope itemtype="http://schema.org/Product"> <a href="@productLink" title="@product.GetString("Ecom:Product.Name")" itemprop="url"> <h3 itemprop="name">@product.GetString("Ecom:Product.Name")</h3> <p itemprop="description">@product.GetString("Ecom:Product.ShortDescription")</p> </a> </li> gtmProductLoopCounter++; @:<script> <text> arrProducts.push( { "name": "@product.GetString("Ecom:Product.Name")", "id": "@product.GetString("Ecom:Product.ID")", "price": "@product.GetString("Ecom:Product.Price.Price").Replace(websiteIntegerSeparator, string.Empty).Replace(websiteDecimalSeparator, ".")", "brand": "@product.GetString("Ecom:Product:Field.BrandCode.Value")", "category": "@product.GetString("Ecom:Product:Field.Category.Value")", "variant": "@product.GetString("Ecom:Product:Field.ColorVariantText.Value")", "list": "@GetGlobalValue("Global:Page.Name")", "position": @gtmProductLoopCounter }); </text> @:</script> } </ul> @if ( GetLoop( "Ecom:ProductList.Pages" ).Count > 0 ) { <ol> @foreach ( LoopItem page in GetLoop( "Ecom:ProductList.Pages" ) ) { string pagingPageUrl = page.GetString( "Ecom:ProductList.Pages.Page.Url" ); string pagingPageNumber = page.GetString( "Ecom:ProductList.Pages.Page.Number" ); <li> <a href="@pagingPageUrl">@pagingPageNumber</a> </li> } </ol> } <!--/ Products for search engines that do not support dynamic rendering with js --> <script> dataLayer.push({ 'ecommerce': { 'currencyCode': '@GetGlobalValue("Global:eCommerce.Currency")', 'impressions': arrProducts } }); </script> <script id="js-e-productlist-products-handlebars-template" type="text/x-handlebars-template"> 215 <div class="e-products"> 216 <div class="row p-b-1 e-products-top"> 217 @if(Espresso.Item.Filters == "True"){ 218 <div class="col-xs-12 m-b-2 hidden-lg-up"> 219 <button class="btn btn-block btn-primary" type="button" data-toggle="modal" data-target="#js-e-productlist-filters-modal">@Translate( "eCom_Productlist_FiltersHeaderText", "Tilpas udvalg") ({{page.filtersAppliedCount}})</button> 220 </div> 221 } 222 string[] excludedOptions = {"Name DESC", "Created ASC", "Created DESC", "Rating ASC", "Number ASC", "Rating ASC", "Rating DESC", "Price ASC", "Price DESC"}; <div class="col-xs-6 form-inline"> <label for="Sort" class="m-b-0"> <strong>@Translate( "eCom_Productlist_SortLabelText", "Sorter: ")</strong> <select name="Sort" class="js-e-productlist-sort form-control"> @foreach( FieldOptionMetadata sortByOption in ItemManager.Metadata.GetItemFields( "ParagraphModule_EcomProductList" ).FirstOrDefault( f => f.SystemName == "SortBy" ).Options.Values ){ foreach( FieldOptionMetadata sortOrderOption in ItemManager.Metadata.GetItemFields( "ParagraphModule_EcomProductList" ).FirstOrDefault( f => f.SystemName == "SortOrder" ).Options.Values ){ if(excludedOptions.Any(o => o.Contains(String.Format("{0} {1}", sortByOption.Value, sortOrderOption.Value ))) == false){ <option value="@String.Format("{0} {1}", sortByOption.Value, sortOrderOption.Value)" {{#compare sort.sort '===' '@String.Format("{0} {1}", sortByOption.Value, sortOrderOption.Value)'}}selected{{/compare}}> @Translate(String.Format("eCom_Productlist_SortOptionLabel_{0}_{1}", sortByOption.Value, sortOrderOption.Value ), String.Format("{0} {1}", sortByOption.Name, sortOrderOption.Name)) </option> } } } </select> </label> </div> 223 <div class="e-products-paging col-xs-6 small"> 224 <small> 225 {{#if page.productCount}} 226 <strong>{{page.viewing.from}} - {{page.viewing.to}}</strong> @Translate( "eCom_Productlist_ProductcountOffText", "ud af ") 227 {{/if}} 228 <strong>{{page.productCount}}</strong> 229 </small> 230 {{#compare page.prevPage '!==' 0 }} 231 <a href="#" class="btn btn-link p-a-0 m-l-1 js-e-productlist-set-pagenum" data-page-num="{{page.prevPage}}"> 232 <i class="material-icons">keyboard_arrow_left</i> 233 <span class="hidden-lg-down"> 234 @Translate( "eCom_Productlist_Pages_Prev", "Forrige") 235 </span> 236 </a> 237 {{/compare}} 238 {{#compare page.nextPage '!==' 0 }} 239 <a href="#" class="btn btn-link p-a-0 m-x-1 js-e-productlist-set-pagenum" data-page-num="{{page.nextPage}}"> 240 <span class="hidden-lg-down"> 241 @Translate( "eCom_Productlist_Pages_Next", "Næste") 242 </span> 243 <i class="material-icons">keyboard_arrow_right</i></a> 244 {{/compare}} 245 {{#compare page.pageSize '!==' 999}} 246 {{#compare page.totalPages '>' 1 }} 247 <a href="#" class="btn btn-link p-a-0 m-l-1 js-e-productlist-set-pagesize hidden-md-down" data-page-size="999"> 248 @Translate( "eCom_Productlist_Pages_Show_All", "Vis alle") 249 </a> 250 {{/compare}} 251 {{/compare}} 252 {{#compare page.pageSize '===' 999}} 253 <a href="#" class="btn btn-link p-a-0 m-l-1 js-e-productlist-set-pagesize hidden-md-down" data-page-size="@Espresso.Item.Pagesize">@Translate( "eCom_Productlist_Pages_Show_Fewer", "Nulstil")</a> 254 {{/compare}} 255 </div> 256 257 258 259 260 </div> 261 <div class="e-loading-overlay e-product-grid-loading-overlay js-e-product-grid-loading-overlay is-loading"> 262 <div class="e-loading-spinner"></div> 263 </div> 264 {{#if page.productCount}} 265 <ul class="e-grid"> 266 {{#each products}} 267 <li class="@productListLayout js-e-grid-item"> 268 <div class="e-product-container" data-variant-id="{{variantId}}"> 269 <div class="e-product"> 270 <div class="e-product-image-container"> 271 <a class="e-product-image-wrapper" href="{{url}}"> 272 <img src="{{imageLarge}}" alt="" class="e-product-image"> 273 </a> 274 </div> 275 <div class="e-product-text-container"> 276 <h3 class="e-product-text m-b-0"> 277 {{number}} <small>{{color}}</small> 278 </h3> 279 <p class="e-product-name small m-b-0 m-t-0"><a href="{{url}}">{{name}}</a></p> 280 {{#if descriptionShortExtra01}} 281 <p class="e-product-text small"> 282 <a href="{{url}}"> 283 {{descriptionShortExtra01}} 284 </a> 285 </p> 286 {{/if}} 287 </div> 288 </div> 289 </div> 290 </li> 291 292 {{/each}} 293 </ul> 294 {{else}} 295 <div class="alert alert-warning m-t-2" role="alert"> 296 <strong><i class="material-icons material-icons-2x">sentiment_dissatisfied</i> @Translate( "eCom_Productlist_No_Products_Header", "Desværre..")</strong> 297 <br> @Translate( "eCom_Productlist_No_Products_Text", "Ingen produkter matcher dine valg.") 298 </div> 299 {{/if}} 300 <div class="row p-t-1 e-products-bottom"> 301 302 <div class="col-xs-6"> 303 <small>@Translate( "eCom_PriceInfoText_Public", "Alle priser er inkl. moms" )</small> 304 </div> 305 306 <div class="e-products-paging col-xs-6 small"> 307 <small> 308 {{#if page.productCount}} 309 <strong>{{page.viewing.from}} - {{page.viewing.to}}</strong> @Translate( "eCom_Productlist_ProductcountOffText", "ud af ") 310 {{/if}} 311 <strong>{{page.productCount}}</strong> 312 </small> 313 {{#compare page.prevPage '!==' 0 }} 314 <a href="#" class="btn btn-link p-a-0 m-l-1 js-e-productlist-set-pagenum" data-page-num="{{page.prevPage}}"> 315 <i class="material-icons">keyboard_arrow_left</i> 316 <span class="hidden-lg-down"> 317 @Translate( "eCom_Productlist_Pages_Prev", "Forrige") 318 </span> 319 </a> 320 {{/compare}} 321 {{#compare page.nextPage '!==' 0 }} 322 <a href="#" class="btn btn-link p-a-0 m-x-1 js-e-productlist-set-pagenum" data-page-num="{{page.nextPage}}"> 323 <span class="hidden-lg-down"> 324 @Translate( "eCom_Productlist_Pages_Next", "Næste") 325 </span> 326 <i class="material-icons">keyboard_arrow_right</i></a> 327 {{/compare}} 328 {{#compare page.pageSize '!==' 999}} 329 {{#compare page.totalPages '>' 1 }} 330 <a href="#" class="btn btn-link p-a-0 m-l-1 js-e-productlist-set-pagesize hidden-md-down" data-page-size="999"> 331 @Translate( "eCom_Productlist_Pages_Show_All", "Vis alle") 332 </a> 333 {{/compare}} 334 {{/compare}} 335 {{#compare page.pageSize '===' 999}} 336 <a href="#" class="btn btn-link p-a-0 m-l-1 js-e-productlist-set-pagesize hidden-md-down" data-page-size="@Espresso.Item.Pagesize">@Translate( "eCom_Productlist_Pages_Show_Fewer", "Nulstil")</a> 337 {{/compare}} 338 </div> 339 340 @if(Espresso.Item.Filters == "True"){ 341 342 <div class="col-xs-12 m-t-2 hidden-lg-up"> 343 <button class="btn btn-block btn-primary" type="button" data-toggle="modal" data-target="#js-e-productlist-filters-modal">@Translate( "eCom_Productlist_FiltersHeaderText", "Tilpas udvalg") ({{page.filtersAppliedCount}})</button> 344 </div> 345 346 } 347 </div> 348 </div> 349 </script> </div> </div> </div> </div> @if(Espresso.Item.ShowFilters == "True"){ <div id="js-e-productlist-filters-modal" class="modal fade e-productlist-filters-modal js-e-productlist-filters-modal modal-fullscreen hidden-lg-up" data-backdrop="false"> 350 <script id="js-e-productlist-filters-modal-template" type="text/x-handlebars-template"> 351 <div class="modal-dialog" role="document"> 352 <div class="modal-content"> 353 <button type="button" class="close" data-dismiss="modal"> 354 <i class="material-icons">close</i> 355 </button> 356 <legend class="modal-header"> 357 @Translate( "eCom_Productlist_FiltersHeaderText", "Tilpas udvalg") 358 </legend> 359 <div class="modal-body"> 360 <ul class="list-group"> 361 <strong>@Translate( "eCom_Productlist_FiltersHeaderText", "Tilpas udvalg")</strong> 362 {{#each facets}} 363 <li class="list-group-item e-productlist-filters-items" role="tablist" aria-multiselectable="true"> 364 <h4 class="m-b-0"> 365 <a id="filter-header-{{param}}" class="e-productlist-filters-header" data-toggle="collapse" href="#filter-modal-panel-{{param}}" aria-expanded="{{#if selectedOptions.length}}true{{else}}false{{/if}}" aria-controls="filter-modal-panel-{{param}}"> 366 {{label}} 367 {{#if selectedOptions.length}} 368 <span>({{selectedOptions.length}})</span> 369 {{/if}} 370 <i class="material-icons e-productlist-filters-collapse-icon">keyboard_arrow_right</i> 371 </a> 372 </h4> 373 <div id="filter-modal-panel-{{param}}" class="e-productlist-filters-collapse form-group collapse js-e-productlist-filters-collapse {{#if selectedOptions.length }}in{{/if}} m-b-0" role="tabpanel" aria-labelledby="filter-header-{{param}}"> 374 <div class="row m-t-2"> 375 <div class="col-xs-6 col-sm-4 col-md-3"> 376 <input class="js-e-productlist-filter-reset-all" name="reset-filter-{{param}}" id="reset-filter-{{param}}" type="checkbox" value="true" {{#compare isCleared '||' isEmpty}}checked{{/compare}}> 377 <label for="reset-filter-{{param}}"> 378 @Translate( "eCom_Productlist_FiltersAllLabelText", "Alle ") 379 </label> 380 </div> 381 {{#each options}} 382 <div class="col-xs-6 col-sm-4 col-md-3"> 383 <input type="checkbox" value="{{value}}" {{#if isSelected}}checked{{/if}} {{#if isDisabled}}disabled{{/if}}> 384 <label class="js-e-productlist-filter-label-mobile" for="{{id}}">{{label}} <span class="small">({{count}})</span></label> 385 </div> 386 {{/each}} 387 </div> 388 </div> 389 </li> 390 {{/each}} 391 <li class="list-group-item e-productlist-filters-items" role="tablist" aria-multiselectable="true"> 392 <h4 class="m-b-0"> 393 <a id="filter-header-price" class="e-productlist-filters-header" data-toggle="collapse" href="#filter-modal-panel-price" aria-expanded="{{#compare page.minPrice.clean '||' page.maxPrice.clean}}true{{else}}false{{/compare}}" aria-controls="filter-modal-panel-price"> 394 @Translate( "eCom_Productlist_FiltersPriceRangeHeader", "Pris") 395 {{#compare page.minPrice.clean '&&' page.maxPrice.clean}} 396 <span>(1)</span> 397 {{/compare}} 398 <i class="material-icons e-productlist-filters-collapse-icon">keyboard_arrow_right</i> 399 </a> 400 </h4> 401 <div id="filter-modal-panel-price" class="e-productlist-filters-collapse form-group collapse js-e-productlist-filters-collapse {{#compare page.minPrice.clean '||' page.maxPrice.clean}}in{{/compare}} m-b-0" role="tabpanel" aria-labelledby="filter-header-price"> 402 <div class="row m-t-1 e-productlist-filters-range-group js-e-productlist-filters-range-group"> 403 <div class="col-xs-4"> 404 <input type="number" class="form-control js-e-productlist-filter-range js-e-productlist-filter-range-min" name="PriceRangeMin" id="PriceRangeMinModal" value="{{page.minPrice.clean}}" placeholder="@Translate("eCom_Productlist_Filters_Price_Min_Text", "Fra")" min="0"> 405 </div> 406 <div class="col-xs-4"> 407 <input type="number" class="form-control js-e-productlist-filter-range js-e-productlist-filter-range-max" name="PriceRangeMax" id="PriceRangeMaxModal" value="{{page.maxPrice.clean}}" placeholder="@Translate("eCom_Productlist_Filters_Price_Max_Text", "Til")" data-msg-pricerange="@Translate("eCom_Productlist_Filters_Price_Error_Msg", "Priser indtastet forkert")"> 408 </div> 409 <div class="col-xs-1"> 410 <button type="button" class="btn btn-link p-x-0 e-productlist-filter-clear-range js-e-productlist-filter-range-clear" data-group-id="js-e-productlist-filters-range-group-price"><i class="material-icons">clear</i></button> 411 </div> 412 <div class="col-xs-3"> 413 <button type="button" class="btn btn-primary p-x-0 btn-sm btn-block e-productlist-filter-apply-range js-e-productlist-filter-apply-range"><i class="material-icons">sync</i></button> 414 </div> 415 416 </div> 417 </li> 418 </ul> 419 </div> 420 <div class="modal-footer"> 421 <a href="#" class="btn btn-secondary js-e-productlist-filter-clear-all">@Translate( "eCom_Productlist_FiltersResetFilterLinkText", "Nulstil alle filtre")</a> 422 <button type="button" class="btn btn-primary" data-dismiss="modal"> 423 @Translate( "eCom_Productlist_FiltersApplyTextModal", "Anvend") 424 </button> 425 </div> 426 </div> 427 </div> 428 </script> 429 </div> 430 431 }
keyboard_arrow_up