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

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

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