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 1228: 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_a47860d3463d4db9b85f1a529ee58545 : 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_a47860d3463d4db9b85f1a529ee58545() { 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 <!-- Products for search engines that do not support dynam" + 994 "ic rendering with js -->\n<ul itemscope"); 995 996 WriteLiteral(" itemtype=\"http://schema.org/ItemList\""); 997 998 WriteLiteral(">\n"); 999 1000 1001 #line 282 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml" 1002 1003 1004 #line default 1005 #line hidden 1006 1007 #line 282 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml" 1008 foreach ( LoopItem product in GetLoop( "Products" ) ) 1009 { 1010 string productLink = getProductLink( product.GetString("Ecom:Product.PrimaryOrFirstGroupID"), product.GetString("Ecom:Product.ID") ); 1011 1012 1013 #line default 1014 #line hidden 1015 WriteLiteral(" <li"); 1016 1017 WriteLiteral(" itemprop=\"itemListElement\""); 1018 1019 WriteLiteral(" itemscope"); 1020 1021 WriteLiteral(" itemtype=\"http://schema.org/Product\""); 1022 1023 WriteLiteral(">\n <a"); 1024 1025 WriteAttribute("href", Tuple.Create(" href=\"", 18256), Tuple.Create("\"", 18275) 1026 1027 #line 286 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml" 1028 , Tuple.Create(Tuple.Create("", 18263), Tuple.Create<System.Object, System.Int32>(productLink 1029 1030 #line default 1031 #line hidden 1032 , 18263), false) 1033 ); 1034 1035 WriteAttribute("title", Tuple.Create(" title=\"", 18276), Tuple.Create("\"", 18323) 1036 1037 #line 286 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml" 1038 , Tuple.Create(Tuple.Create("", 18284), Tuple.Create<System.Object, System.Int32>(product.GetString("Ecom:Product.Name") 1039 1040 #line default 1041 #line hidden 1042 , 18284), false) 1043 ); 1044 1045 WriteLiteral(" itemprop=\"url\""); 1046 1047 WriteLiteral(">\n <h3"); 1048 1049 WriteLiteral(" itemprop=\"name\""); 1050 1051 WriteLiteral(">"); 1052 1053 1054 #line 287 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml" 1055 Write(product.GetString("Ecom:Product.Name")); 1056 1057 1058 #line default 1059 #line hidden 1060 WriteLiteral("</h3>\n <p"); 1061 1062 WriteLiteral(" itemprop=\"description\""); 1063 1064 WriteLiteral(">"); 1065 1066 1067 #line 288 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml" 1068 Write(product.GetString("Ecom:Product.ShortDescription")); 1069 1070 1071 #line default 1072 #line hidden 1073 WriteLiteral("</p>\n </a>\n </li>\n"); 1074 1075 1076 #line 291 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml" 1077 } 1078 1079 1080 #line default 1081 #line hidden 1082 WriteLiteral("</ul>\n"); 1083 1084 1085 #line 293 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml" 1086 if ( GetLoop( "Ecom:ProductList.Pages" ).Count > 0 ) 1087 { 1088 1089 1090 #line default 1091 #line hidden 1092 WriteLiteral(" <ol>\n"); 1093 1094 1095 #line 296 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml" 1096 1097 1098 #line default 1099 #line hidden 1100 1101 #line 296 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml" 1102 foreach ( LoopItem page in GetLoop( "Ecom:ProductList.Pages" ) ) 1103 { 1104 string pagingPageUrl = page.GetString( "Ecom:ProductList.Pages.Page.Url" ); 1105 string pagingPageNumber = page.GetString( "Ecom:ProductList.Pages.Page.Number" ); 1106 1107 1108 #line default 1109 #line hidden 1110 WriteLiteral(" <li>\n <a"); 1111 1112 WriteAttribute("href", Tuple.Create(" href=\"", 18865), Tuple.Create("\"", 18886) 1113 1114 #line 301 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml" 1115 , Tuple.Create(Tuple.Create("", 18872), Tuple.Create<System.Object, System.Int32>(pagingPageUrl 1116 1117 #line default 1118 #line hidden 1119 , 18872), false) 1120 ); 1121 1122 WriteLiteral(">"); 1123 1124 1125 #line 301 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml" 1126 Write(pagingPageNumber); 1127 1128 1129 #line default 1130 #line hidden 1131 WriteLiteral("</a>\n </li>\n"); 1132 1133 1134 #line 303 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml" 1135 } 1136 1137 1138 #line default 1139 #line hidden 1140 WriteLiteral(" </ol>\n"); 1141 1142 1143 #line 305 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml" 1144 } 1145 1146 1147 #line default 1148 #line hidden 1149 WriteLiteral("<!--/ Products for search engines that do not support dynamic rendering with js " + 1150 "-->\n\n <script"); 1151 1152 WriteLiteral(" id=\"js-e-productlist-products-handlebars-template\""); 1153 1154 WriteLiteral(" type=\"text/x-handlebars-template\""); 1155 1156 WriteLiteral(">\r\n <div class=\"e-products\">\r\n <div class=\"row p-b-1 e-products-top\">" + 1157 "\r\n"); 1158 1159 1160 #line 311 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml" 1161 1162 1163 #line default 1164 #line hidden 1165 1166 #line 311 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml" 1167 if(Espresso.Item.Filters == "True"){ 1168 1169 1170 #line default 1171 #line hidden 1172 WriteLiteral(" <div"); 1173 1174 WriteLiteral(" class=\"col-xs-12 m-b-2 hidden-lg-up\""); 1175 1176 WriteLiteral(">\r\n <button"); 1177 1178 WriteLiteral(" class=\"btn btn-block btn-primary\""); 1179 1180 WriteLiteral(" type=\"button\""); 1181 1182 WriteLiteral(" data-toggle=\"modal\""); 1183 1184 WriteLiteral(" data-target=\"#js-e-productlist-filters-modal\""); 1185 1186 WriteLiteral(">"); 1187 1188 1189 #line 313 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml" 1190 Write(Translate( "eCom_Productlist_FiltersHeaderText", "Tilpas udvalg")); 1191 1192 1193 #line default 1194 #line hidden 1195 WriteLiteral(" ({{page.filtersAppliedCount}})</button>\r\n </div>\r\n"); 1196 1197 1198 #line 315 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml" 1199 } 1200 1201 1202 #line default 1203 #line hidden 1204 WriteLiteral("\n string[] excludedOptions = {\"Name DESC\", \"Created ASC\", \"Created DESC\", \"Ratin" + 1205 "g ASC\", \"Number ASC\", \"Rating ASC\", \"Rating DESC\", \"Price ASC\", \"Price DESC\"};\n\n" + 1206 "\n<div class=\"col-xs-6 form-inline\">\n <label for=\"Sort\" class=\"m-b-0\">\n <stro" + 1207 "ng>"); 1208 1209 1210 #line 322 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml" 1211 Write(Translate( "eCom_Productlist_SortLabelText", "Sorter: ")); 1212 1213 1214 #line default 1215 #line hidden 1216 WriteLiteral("</strong>\n <select name=\"Sort\" class=\"js-e-productlist-sort form-control\">\n"); 1217 1218 1219 #line 324 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml" 1220 1221 1222 #line default 1223 #line hidden 1224 1225 #line 324 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml" 1226 foreach( FieldOptionMetadata sortByOption in ItemManager.Metadata.GetItemFields( "ParagraphModule_EcomProductList" ).FirstOrDefault( f => f.SystemName == "SortBy" ).Options.Values ){ 1227 foreach( FieldOptionMetadata sortOrderOption in ItemManager.Metadata.GetItemFields( "ParagraphModule_EcomProductList" ).FirstOrDefault( f => f.SystemName == "SortOrder" ).Options.Values ){ 1228 if(excludedOptions.Any(o => o.Contains(String.Format("{0} {1}", sortByOption.Value, sortOrderOption.Value ))) == false){ 1229 1230 1231 #line default 1232 #line hidden 1233 WriteLiteral(" <option"); 1234 1235 WriteAttribute("value", Tuple.Create(" value=\"", 20477), Tuple.Create("\"", 20553) 1236 1237 #line 327 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml" 1238 , Tuple.Create(Tuple.Create("", 20485), Tuple.Create<System.Object, System.Int32>(String.Format("{0} {1}", sortByOption.Value, sortOrderOption.Value) 1239 1240 #line default 1241 #line hidden 1242 , 20485), false) 1243 ); 1244 1245 WriteLiteral(" {{#compare sort.sort \'===\' \'"); 1246 1247 1248 #line 327 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml" 1249 Write(String.Format("{0} {1}", sortByOption.Value, sortOrderOption.Value)); 1250 1251 1252 #line default 1253 #line hidden 1254 WriteLiteral("\'}}selected{{/compare}}>\n"); 1255 1256 WriteLiteral(" "); 1257 1258 1259 #line 328 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml" 1260 Write(Translate(String.Format("eCom_Productlist_SortOptionLabel_{0}_{1}", sortByOption.Value, sortOrderOption.Value ), String.Format("{0} {1}", sortByOption.Name, sortOrderOption.Name))); 1261 1262 1263 #line default 1264 #line hidden 1265 WriteLiteral("\n </option>\n"); 1266 1267 1268 #line 330 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml" 1269 } 1270 } 1271 } 1272 1273 1274 #line default 1275 #line hidden 1276 WriteLiteral(" </select>\n </label>\n</div>\n\r\n<div class=\"e-products-paging col-xs-6 small\">\r" + 1277 "\n <small>\r\n {{#if page.productCount}}\r\n <strong>{{page.viewing.from" + 1278 "}} - {{page.viewing.to}}</strong> "); 1279 1280 1281 #line 340 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml" 1282 Write(Translate( "eCom_Productlist_ProductcountOffText", "ud af ")); 1283 1284 1285 #line default 1286 #line hidden 1287 WriteLiteral(@" 1288 {{/if}} 1289 <strong>{{page.productCount}}</strong> 1290 </small> 1291 {{#compare page.prevPage '!==' 0 }} 1292 <a href=""#"" class=""btn btn-link p-a-0 m-l-1 js-e-productlist-set-pagenum"" data-page-num=""{{page.prevPage}}""> 1293 <i class=""material-icons"">keyboard_arrow_left</i> 1294 <span class=""hidden-lg-down""> 1295 "); 1296 1297 WriteLiteral(" "); 1298 1299 1300 #line 348 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml" 1301 Write(Translate( "eCom_Productlist_Pages_Prev", "Forrige")); 1302 1303 1304 #line default 1305 #line hidden 1306 WriteLiteral(@" 1307 </span> 1308 </a> 1309 {{/compare}} 1310 {{#compare page.nextPage '!==' 0 }} 1311 <a href=""#"" class=""btn btn-link p-a-0 m-x-1 js-e-productlist-set-pagenum"" data-page-num=""{{page.nextPage}}""> 1312 <span class=""hidden-lg-down""> 1313 "); 1314 1315 WriteLiteral(" "); 1316 1317 1318 #line 355 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml" 1319 Write(Translate( "eCom_Productlist_Pages_Next", "Næste")); 1320 1321 1322 #line default 1323 #line hidden 1324 WriteLiteral(@" 1325 </span> 1326 <i class=""material-icons"">keyboard_arrow_right</i></a> 1327 {{/compare}} 1328 {{#compare page.pageSize '!==' 999}} 1329 {{#compare page.totalPages '>' 1 }} 1330 <a href=""#"" class=""btn btn-link p-a-0 m-l-1 js-e-productlist-set-pagesize hidden-md-down"" data-page-size=""999""> 1331 "); 1332 1333 WriteLiteral(" "); 1334 1335 1336 #line 362 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml" 1337 Write(Translate( "eCom_Productlist_Pages_Show_All", "Vis alle")); 1338 1339 1340 #line default 1341 #line hidden 1342 WriteLiteral("\r\n </a>\r\n {{/compare}}\r\n {{/compare}}\r\n {{#compare page.p" + 1343 "ageSize \'===\' 999}}\r\n <a href=\"#\" class=\"btn btn-link p-a-0 m-l-1 js-e-pr" + 1344 "oductlist-set-pagesize hidden-md-down\" data-page-size=\""); 1345 1346 1347 #line 367 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml" 1348 Write(Espresso.Item.Pagesize); 1349 1350 1351 #line default 1352 #line hidden 1353 WriteLiteral("\">"); 1354 1355 1356 #line 367 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml" 1357 Write(Translate( "eCom_Productlist_Pages_Show_Fewer", "Nulstil")); 1358 1359 1360 #line default 1361 #line hidden 1362 WriteLiteral(@"</a> 1363 {{/compare}} 1364 </div> 1365 1366 1367 1368 1369 </div> 1370 <div class=""e-loading-overlay e-product-grid-loading-overlay js-e-product-grid-loading-overlay is-loading""> 1371 <div class=""e-loading-spinner""></div> 1372 </div> 1373 {{#if page.productCount}} 1374 <ul class=""e-grid""> 1375 {{#each products}} 1376 <li class="""); 1377 1378 1379 #line 381 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml" 1380 Write(productListLayout); 1381 1382 1383 #line default 1384 #line hidden 1385 WriteLiteral(@" js-e-grid-item""> 1386 <div class=""e-product-container"" data-variant-id=""{{variantId}}""> 1387 <div class=""e-product""> 1388 <div class=""e-product-image-container""> 1389 <a class=""e-product-image-wrapper"" href=""{{url}}""> 1390 <img src=""{{imageLarge}}"" alt="""" class=""e-product-image""> 1391 </a> 1392 </div> 1393 <div class=""e-product-text-container""> 1394 <h3 class=""e-product-text m-b-0""> 1395 {{number}} <small>{{color}}</small> 1396 </h3> 1397 <p class=""e-product-name small m-b-0 m-t-0""><a href=""{{url}}"">{{name}}</a></p> 1398 {{#if descriptionShortExtra01}} 1399 <p class=""e-product-text small""> 1400 <a href=""{{url}}""> 1401 {{descriptionShortExtra01}} 1402 </a> 1403 </p> 1404 {{/if}} 1405 </div> 1406 </div> 1407 </div> 1408 </li> 1409 1410 {{/each}} 1411 </ul> 1412 {{else}} 1413 <div class=""alert alert-warning m-t-2"" role=""alert""> 1414 <strong><i class=""material-icons material-icons-2x"">sentiment_dissatisfied</i> "); 1415 1416 1417 #line 410 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml" 1418 Write(Translate( "eCom_Productlist_No_Products_Header", "Desværre..")); 1419 1420 1421 #line default 1422 #line hidden 1423 WriteLiteral("</strong>\r\n <br> "); 1424 1425 1426 #line 411 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml" 1427 Write(Translate( "eCom_Productlist_No_Products_Text", "Ingen produkter matcher dine valg.")); 1428 1429 1430 #line default 1431 #line hidden 1432 WriteLiteral("\r\n </div>\r\n {{/if}}\r\n <div class=\"row p-t-1 e-products-botto" + 1433 "m\">\r\n \r\n<div class=\"col-xs-6\">\r\n <small>"); 1434 1435 1436 #line 417 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml" 1437 Write(Translate( "eCom_PriceInfoText_Public", "Alle priser er inkl. moms" )); 1438 1439 1440 #line default 1441 #line hidden 1442 WriteLiteral("</small>\r\n</div>\r\n\r\n<div class=\"e-products-paging col-xs-6 small\">\r\n <small>\r\n" + 1443 " {{#if page.productCount}}\r\n <strong>{{page.viewing.from}} - {{page.vi" + 1444 "ewing.to}}</strong> "); 1445 1446 1447 #line 423 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml" 1448 Write(Translate( "eCom_Productlist_ProductcountOffText", "ud af ")); 1449 1450 1451 #line default 1452 #line hidden 1453 WriteLiteral(@" 1454 {{/if}} 1455 <strong>{{page.productCount}}</strong> 1456 </small> 1457 {{#compare page.prevPage '!==' 0 }} 1458 <a href=""#"" class=""btn btn-link p-a-0 m-l-1 js-e-productlist-set-pagenum"" data-page-num=""{{page.prevPage}}""> 1459 <i class=""material-icons"">keyboard_arrow_left</i> 1460 <span class=""hidden-lg-down""> 1461 "); 1462 1463 WriteLiteral(" "); 1464 1465 1466 #line 431 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml" 1467 Write(Translate( "eCom_Productlist_Pages_Prev", "Forrige")); 1468 1469 1470 #line default 1471 #line hidden 1472 WriteLiteral(@" 1473 </span> 1474 </a> 1475 {{/compare}} 1476 {{#compare page.nextPage '!==' 0 }} 1477 <a href=""#"" class=""btn btn-link p-a-0 m-x-1 js-e-productlist-set-pagenum"" data-page-num=""{{page.nextPage}}""> 1478 <span class=""hidden-lg-down""> 1479 "); 1480 1481 WriteLiteral(" "); 1482 1483 1484 #line 438 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml" 1485 Write(Translate( "eCom_Productlist_Pages_Next", "Næste")); 1486 1487 1488 #line default 1489 #line hidden 1490 WriteLiteral(@" 1491 </span> 1492 <i class=""material-icons"">keyboard_arrow_right</i></a> 1493 {{/compare}} 1494 {{#compare page.pageSize '!==' 999}} 1495 {{#compare page.totalPages '>' 1 }} 1496 <a href=""#"" class=""btn btn-link p-a-0 m-l-1 js-e-productlist-set-pagesize hidden-md-down"" data-page-size=""999""> 1497 "); 1498 1499 WriteLiteral(" "); 1500 1501 1502 #line 445 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml" 1503 Write(Translate( "eCom_Productlist_Pages_Show_All", "Vis alle")); 1504 1505 1506 #line default 1507 #line hidden 1508 WriteLiteral("\r\n </a>\r\n {{/compare}}\r\n {{/compare}}\r\n {{#compare page.p" + 1509 "ageSize \'===\' 999}}\r\n <a href=\"#\" class=\"btn btn-link p-a-0 m-l-1 js-e-pr" + 1510 "oductlist-set-pagesize hidden-md-down\" data-page-size=\""); 1511 1512 1513 #line 450 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml" 1514 Write(Espresso.Item.Pagesize); 1515 1516 1517 #line default 1518 #line hidden 1519 WriteLiteral("\">"); 1520 1521 1522 #line 450 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml" 1523 Write(Translate( "eCom_Productlist_Pages_Show_Fewer", "Nulstil")); 1524 1525 1526 #line default 1527 #line hidden 1528 WriteLiteral("</a>\r\n {{/compare}}\r\n</div>\r\n\r\n"); 1529 1530 1531 #line 454 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml" 1532 if(Espresso.Item.Filters == "True"){ 1533 1534 1535 1536 #line default 1537 #line hidden 1538 WriteLiteral(" <div"); 1539 1540 WriteLiteral(" class=\"col-xs-12 m-t-2 hidden-lg-up\""); 1541 1542 WriteLiteral(">\r\n <button"); 1543 1544 WriteLiteral(" class=\"btn btn-block btn-primary\""); 1545 1546 WriteLiteral(" type=\"button\""); 1547 1548 WriteLiteral(" data-toggle=\"modal\""); 1549 1550 WriteLiteral(" data-target=\"#js-e-productlist-filters-modal\""); 1551 1552 WriteLiteral(">"); 1553 1554 1555 #line 457 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml" 1556 Write(Translate( "eCom_Productlist_FiltersHeaderText", "Tilpas udvalg")); 1557 1558 1559 #line default 1560 #line hidden 1561 WriteLiteral(" ({{page.filtersAppliedCount}})</button>\r\n </div>\r\n"); 1562 1563 1564 #line 459 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml" 1565 1566 } 1567 1568 1569 #line default 1570 #line hidden 1571 WriteLiteral(" </div>\r\n </div>\r\n </script>\n </div>\n </di" + 1572 "v>\n </div>\n</div>\n\n"); 1573 1574 1575 #line 469 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml" 1576 if(Espresso.Item.ShowFilters == "True"){ 1577 1578 1579 #line default 1580 #line hidden 1581 WriteLiteral(" <div"); 1582 1583 WriteLiteral(" id=\"js-e-productlist-filters-modal\""); 1584 1585 WriteLiteral(" class=\"modal fade e-productlist-filters-modal js-e-productlist-filters-modal mod" + 1586 "al-fullscreen hidden-lg-up\""); 1587 1588 WriteLiteral(" data-backdrop=\"false\""); 1589 1590 WriteLiteral(">\r\n <script"); 1591 1592 WriteLiteral(" id=\"js-e-productlist-filters-modal-template\""); 1593 1594 WriteLiteral(" type=\"text/x-handlebars-template\""); 1595 1596 WriteLiteral(@"> 1597 <div class=""modal-dialog"" role=""document""> 1598 <div class=""modal-content""> 1599 <button type=""button"" class=""close"" data-dismiss=""modal""> 1600 <i class=""material-icons"">close</i> 1601 </button> 1602 <legend class=""modal-header""> 1603 "); 1604 1605 WriteLiteral(" "); 1606 1607 1608 #line 478 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml" 1609 Write(Translate( "eCom_Productlist_FiltersHeaderText", "Tilpas udvalg")); 1610 1611 1612 #line default 1613 #line hidden 1614 WriteLiteral("\r\n </legend>\r\n <div class=\"modal-body\">\r\n <ul class=\"list-" + 1615 "group\">\r\n <strong>"); 1616 1617 1618 #line 482 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml" 1619 Write(Translate( "eCom_Productlist_FiltersHeaderText", "Tilpas udvalg")); 1620 1621 1622 #line default 1623 #line hidden 1624 WriteLiteral(@"</strong> 1625 {{#each facets}} 1626 <li class=""list-group-item e-productlist-filters-items"" role=""tablist"" aria-multiselectable=""true""> 1627 <h4 class=""m-b-0""> 1628 <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}}""> 1629 {{label}} 1630 {{#if selectedOptions.length}} 1631 <span>({{selectedOptions.length}})</span> 1632 {{/if}} 1633 <i class=""material-icons e-productlist-filters-collapse-icon"">keyboard_arrow_right</i> 1634 </a> 1635 </h4> 1636 <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}}""> 1637 <div class=""row m-t-2""> 1638 <div class=""col-xs-6 col-sm-4 col-md-3""> 1639 <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}}> 1640 <label for=""reset-filter-{{param}}""> 1641 "); 1642 1643 WriteLiteral(" "); 1644 1645 1646 #line 499 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml" 1647 Write(Translate( "eCom_Productlist_FiltersAllLabelText", "Alle ")); 1648 1649 1650 #line default 1651 #line hidden 1652 WriteLiteral(@" 1653 </label> 1654 </div> 1655 {{#each options}} 1656 <div class=""col-xs-6 col-sm-4 col-md-3""> 1657 <input type=""checkbox"" value=""{{value}}"" {{#if isSelected}}checked{{/if}} {{#if isDisabled}}disabled{{/if}}> 1658 <label class=""js-e-productlist-filter-label-mobile"" for=""{{id}}"">{{label}} <span class=""small"">({{count}})</span></label> 1659 </div> 1660 {{/each}} 1661 </div> 1662 </div> 1663 </li> 1664 {{/each}} 1665 <li class=""list-group-item e-productlist-filters-items"" role=""tablist"" aria-multiselectable=""true""> 1666 <h4 class=""m-b-0""> 1667 <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""> 1668 "); 1669 1670 WriteLiteral(" "); 1671 1672 1673 #line 515 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml" 1674 Write(Translate( "eCom_Productlist_FiltersPriceRangeHeader", "Pris")); 1675 1676 1677 #line default 1678 #line hidden 1679 WriteLiteral(@" 1680 {{#compare page.minPrice.clean '&&' page.maxPrice.clean}} 1681 <span>(1)</span> 1682 {{/compare}} 1683 <i class=""material-icons e-productlist-filters-collapse-icon"">keyboard_arrow_right</i> 1684 </a> 1685 </h4> 1686 <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""> 1687 <div class=""row m-t-1 e-productlist-filters-range-group js-e-productlist-filters-range-group""> 1688 <div class=""col-xs-4""> 1689 <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="""); 1690 1691 1692 #line 525 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml" 1693 Write(Translate("eCom_Productlist_Filters_Price_Min_Text", "Fra")); 1694 1695 1696 #line default 1697 #line hidden 1698 WriteLiteral(@""" min=""0""> 1699 </div> 1700 <div class=""col-xs-4""> 1701 <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="""); 1702 1703 1704 #line 528 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml" 1705 Write(Translate("eCom_Productlist_Filters_Price_Max_Text", "Til")); 1706 1707 1708 #line default 1709 #line hidden 1710 WriteLiteral("\" data-msg-pricerange=\""); 1711 1712 1713 #line 528 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml" 1714 Write(Translate("eCom_Productlist_Filters_Price_Error_Msg", "Priser indtastet forkert")); 1715 1716 1717 #line default 1718 #line hidden 1719 WriteLiteral(@"""> 1720 </div> 1721 <div class=""col-xs-1""> 1722 <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> 1723 </div> 1724 <div class=""col-xs-3""> 1725 <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> 1726 </div> 1727 1728 </div> 1729 </li> 1730 </ul> 1731 </div> 1732 <div class=""modal-footer""> 1733 <a href=""#"" class=""btn btn-secondary js-e-productlist-filter-clear-all"">"); 1734 1735 1736 #line 542 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml" 1737 Write(Translate( "eCom_Productlist_FiltersResetFilterLinkText", "Nulstil alle filtre")); 1738 1739 1740 #line default 1741 #line hidden 1742 WriteLiteral("</a>\r\n <button type=\"button\" class=\"btn btn-primary\" data-dismiss=\"modal" + 1743 "\">\r\n"); 1744 1745 WriteLiteral(" "); 1746 1747 1748 #line 544 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml" 1749 Write(Translate( "eCom_Productlist_FiltersApplyTextModal", "Anvend")); 1750 1751 1752 #line default 1753 #line hidden 1754 WriteLiteral("\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </script>\r\n</d" + 1755 "iv>\r\n"); 1756 1757 1758 #line 551 "D:\dynamicweb.net\Solutions\id.espresso4.dk\Files\Templates\Designs\sevenseas\eCom\Productlist\espresso-product-grid.cshtml" 1759 1760 1761 } 1762 1763 #line default 1764 #line hidden 1765 } 1766 } 1767 } 1768

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 <!-- Products for search engines that do not support dynamic rendering with js --> 281 <ul itemscope itemtype="http://schema.org/ItemList"> 282 @foreach ( LoopItem product in GetLoop( "Products" ) ) 283 { 284 string productLink = getProductLink( product.GetString("Ecom:Product.PrimaryOrFirstGroupID"), product.GetString("Ecom:Product.ID") ); 285 <li itemprop="itemListElement" itemscope itemtype="http://schema.org/Product"> 286 <a href="@productLink" title="@product.GetString("Ecom:Product.Name")" itemprop="url"> 287 <h3 itemprop="name">@product.GetString("Ecom:Product.Name")</h3> 288 <p itemprop="description">@product.GetString("Ecom:Product.ShortDescription")</p> 289 </a> 290 </li> 291 } 292 </ul> 293 @if ( GetLoop( "Ecom:ProductList.Pages" ).Count > 0 ) 294 { 295 <ol> 296 @foreach ( LoopItem page in GetLoop( "Ecom:ProductList.Pages" ) ) 297 { 298 string pagingPageUrl = page.GetString( "Ecom:ProductList.Pages.Page.Url" ); 299 string pagingPageNumber = page.GetString( "Ecom:ProductList.Pages.Page.Number" ); 300 <li> 301 <a href="@pagingPageUrl">@pagingPageNumber</a> 302 </li> 303 } 304 </ol> 305 } 306 <!--/ Products for search engines that do not support dynamic rendering with js --> 307 308 <script id="js-e-productlist-products-handlebars-template" type="text/x-handlebars-template"> 309 <div class="e-products"> 310 <div class="row p-b-1 e-products-top"> 311 @if(Espresso.Item.Filters == "True"){ 312 <div class="col-xs-12 m-b-2 hidden-lg-up"> 313 <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> 314 </div> 315 } 316 317 string[] excludedOptions = {"Name DESC", "Created ASC", "Created DESC", "Rating ASC", "Number ASC", "Rating ASC", "Rating DESC", "Price ASC", "Price DESC"}; 318 319 320 <div class="col-xs-6 form-inline"> 321 <label for="Sort" class="m-b-0"> 322 <strong>@Translate( "eCom_Productlist_SortLabelText", "Sorter: ")</strong> 323 <select name="Sort" class="js-e-productlist-sort form-control"> 324 @foreach( FieldOptionMetadata sortByOption in ItemManager.Metadata.GetItemFields( "ParagraphModule_EcomProductList" ).FirstOrDefault( f => f.SystemName == "SortBy" ).Options.Values ){ 325 foreach( FieldOptionMetadata sortOrderOption in ItemManager.Metadata.GetItemFields( "ParagraphModule_EcomProductList" ).FirstOrDefault( f => f.SystemName == "SortOrder" ).Options.Values ){ 326 if(excludedOptions.Any(o => o.Contains(String.Format("{0} {1}", sortByOption.Value, sortOrderOption.Value ))) == false){ 327 <option value="@String.Format("{0} {1}", sortByOption.Value, sortOrderOption.Value)" {{#compare sort.sort '===' '@String.Format("{0} {1}", sortByOption.Value, sortOrderOption.Value)'}}selected{{/compare}}> 328 @Translate(String.Format("eCom_Productlist_SortOptionLabel_{0}_{1}", sortByOption.Value, sortOrderOption.Value ), String.Format("{0} {1}", sortByOption.Name, sortOrderOption.Name)) 329 </option> 330 } 331 } 332 } 333 </select> 334 </label> 335 </div> 336 337 <div class="e-products-paging col-xs-6 small"> 338 <small> 339 {{#if page.productCount}} 340 <strong>{{page.viewing.from}} - {{page.viewing.to}}</strong> @Translate( "eCom_Productlist_ProductcountOffText", "ud af ") 341 {{/if}} 342 <strong>{{page.productCount}}</strong> 343 </small> 344 {{#compare page.prevPage '!==' 0 }} 345 <a href="#" class="btn btn-link p-a-0 m-l-1 js-e-productlist-set-pagenum" data-page-num="{{page.prevPage}}"> 346 <i class="material-icons">keyboard_arrow_left</i> 347 <span class="hidden-lg-down"> 348 @Translate( "eCom_Productlist_Pages_Prev", "Forrige") 349 </span> 350 </a> 351 {{/compare}} 352 {{#compare page.nextPage '!==' 0 }} 353 <a href="#" class="btn btn-link p-a-0 m-x-1 js-e-productlist-set-pagenum" data-page-num="{{page.nextPage}}"> 354 <span class="hidden-lg-down"> 355 @Translate( "eCom_Productlist_Pages_Next", "Næste") 356 </span> 357 <i class="material-icons">keyboard_arrow_right</i></a> 358 {{/compare}} 359 {{#compare page.pageSize '!==' 999}} 360 {{#compare page.totalPages '>' 1 }} 361 <a href="#" class="btn btn-link p-a-0 m-l-1 js-e-productlist-set-pagesize hidden-md-down" data-page-size="999"> 362 @Translate( "eCom_Productlist_Pages_Show_All", "Vis alle") 363 </a> 364 {{/compare}} 365 {{/compare}} 366 {{#compare page.pageSize '===' 999}} 367 <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> 368 {{/compare}} 369 </div> 370 371 372 373 374 </div> 375 <div class="e-loading-overlay e-product-grid-loading-overlay js-e-product-grid-loading-overlay is-loading"> 376 <div class="e-loading-spinner"></div> 377 </div> 378 {{#if page.productCount}} 379 <ul class="e-grid"> 380 {{#each products}} 381 <li class="@productListLayout js-e-grid-item"> 382 <div class="e-product-container" data-variant-id="{{variantId}}"> 383 <div class="e-product"> 384 <div class="e-product-image-container"> 385 <a class="e-product-image-wrapper" href="{{url}}"> 386 <img src="{{imageLarge}}" alt="" class="e-product-image"> 387 </a> 388 </div> 389 <div class="e-product-text-container"> 390 <h3 class="e-product-text m-b-0"> 391 {{number}} <small>{{color}}</small> 392 </h3> 393 <p class="e-product-name small m-b-0 m-t-0"><a href="{{url}}">{{name}}</a></p> 394 {{#if descriptionShortExtra01}} 395 <p class="e-product-text small"> 396 <a href="{{url}}"> 397 {{descriptionShortExtra01}} 398 </a> 399 </p> 400 {{/if}} 401 </div> 402 </div> 403 </div> 404 </li> 405 406 {{/each}} 407 </ul> 408 {{else}} 409 <div class="alert alert-warning m-t-2" role="alert"> 410 <strong><i class="material-icons material-icons-2x">sentiment_dissatisfied</i> @Translate( "eCom_Productlist_No_Products_Header", "Desværre..")</strong> 411 <br> @Translate( "eCom_Productlist_No_Products_Text", "Ingen produkter matcher dine valg.") 412 </div> 413 {{/if}} 414 <div class="row p-t-1 e-products-bottom"> 415 416 <div class="col-xs-6"> 417 <small>@Translate( "eCom_PriceInfoText_Public", "Alle priser er inkl. moms" )</small> 418 </div> 419 420 <div class="e-products-paging col-xs-6 small"> 421 <small> 422 {{#if page.productCount}} 423 <strong>{{page.viewing.from}} - {{page.viewing.to}}</strong> @Translate( "eCom_Productlist_ProductcountOffText", "ud af ") 424 {{/if}} 425 <strong>{{page.productCount}}</strong> 426 </small> 427 {{#compare page.prevPage '!==' 0 }} 428 <a href="#" class="btn btn-link p-a-0 m-l-1 js-e-productlist-set-pagenum" data-page-num="{{page.prevPage}}"> 429 <i class="material-icons">keyboard_arrow_left</i> 430 <span class="hidden-lg-down"> 431 @Translate( "eCom_Productlist_Pages_Prev", "Forrige") 432 </span> 433 </a> 434 {{/compare}} 435 {{#compare page.nextPage '!==' 0 }} 436 <a href="#" class="btn btn-link p-a-0 m-x-1 js-e-productlist-set-pagenum" data-page-num="{{page.nextPage}}"> 437 <span class="hidden-lg-down"> 438 @Translate( "eCom_Productlist_Pages_Next", "Næste") 439 </span> 440 <i class="material-icons">keyboard_arrow_right</i></a> 441 {{/compare}} 442 {{#compare page.pageSize '!==' 999}} 443 {{#compare page.totalPages '>' 1 }} 444 <a href="#" class="btn btn-link p-a-0 m-l-1 js-e-productlist-set-pagesize hidden-md-down" data-page-size="999"> 445 @Translate( "eCom_Productlist_Pages_Show_All", "Vis alle") 446 </a> 447 {{/compare}} 448 {{/compare}} 449 {{#compare page.pageSize '===' 999}} 450 <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> 451 {{/compare}} 452 </div> 453 454 @if(Espresso.Item.Filters == "True"){ 455 456 <div class="col-xs-12 m-t-2 hidden-lg-up"> 457 <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> 458 </div> 459 460 } 461 </div> 462 </div> 463 </script> 464 </div> 465 </div> 466 </div> 467 </div> 468 469 @if(Espresso.Item.ShowFilters == "True"){ 470 <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"> 471 <script id="js-e-productlist-filters-modal-template" type="text/x-handlebars-template"> 472 <div class="modal-dialog" role="document"> 473 <div class="modal-content"> 474 <button type="button" class="close" data-dismiss="modal"> 475 <i class="material-icons">close</i> 476 </button> 477 <legend class="modal-header"> 478 @Translate( "eCom_Productlist_FiltersHeaderText", "Tilpas udvalg") 479 </legend> 480 <div class="modal-body"> 481 <ul class="list-group"> 482 <strong>@Translate( "eCom_Productlist_FiltersHeaderText", "Tilpas udvalg")</strong> 483 {{#each facets}} 484 <li class="list-group-item e-productlist-filters-items" role="tablist" aria-multiselectable="true"> 485 <h4 class="m-b-0"> 486 <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}}"> 487 {{label}} 488 {{#if selectedOptions.length}} 489 <span>({{selectedOptions.length}})</span> 490 {{/if}} 491 <i class="material-icons e-productlist-filters-collapse-icon">keyboard_arrow_right</i> 492 </a> 493 </h4> 494 <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}}"> 495 <div class="row m-t-2"> 496 <div class="col-xs-6 col-sm-4 col-md-3"> 497 <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}}> 498 <label for="reset-filter-{{param}}"> 499 @Translate( "eCom_Productlist_FiltersAllLabelText", "Alle ") 500 </label> 501 </div> 502 {{#each options}} 503 <div class="col-xs-6 col-sm-4 col-md-3"> 504 <input type="checkbox" value="{{value}}" {{#if isSelected}}checked{{/if}} {{#if isDisabled}}disabled{{/if}}> 505 <label class="js-e-productlist-filter-label-mobile" for="{{id}}">{{label}} <span class="small">({{count}})</span></label> 506 </div> 507 {{/each}} 508 </div> 509 </div> 510 </li> 511 {{/each}} 512 <li class="list-group-item e-productlist-filters-items" role="tablist" aria-multiselectable="true"> 513 <h4 class="m-b-0"> 514 <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"> 515 @Translate( "eCom_Productlist_FiltersPriceRangeHeader", "Pris") 516 {{#compare page.minPrice.clean '&&' page.maxPrice.clean}} 517 <span>(1)</span> 518 {{/compare}} 519 <i class="material-icons e-productlist-filters-collapse-icon">keyboard_arrow_right</i> 520 </a> 521 </h4> 522 <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"> 523 <div class="row m-t-1 e-productlist-filters-range-group js-e-productlist-filters-range-group"> 524 <div class="col-xs-4"> 525 <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"> 526 </div> 527 <div class="col-xs-4"> 528 <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")"> 529 </div> 530 <div class="col-xs-1"> 531 <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> 532 </div> 533 <div class="col-xs-3"> 534 <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> 535 </div> 536 537 </div> 538 </li> 539 </ul> 540 </div> 541 <div class="modal-footer"> 542 <a href="#" class="btn btn-secondary js-e-productlist-filter-clear-all">@Translate( "eCom_Productlist_FiltersResetFilterLinkText", "Nulstil alle filtre")</a> 543 <button type="button" class="btn btn-primary" data-dismiss="modal"> 544 @Translate( "eCom_Productlist_FiltersApplyTextModal", "Anvend") 545 </button> 546 </div> 547 </div> 548 </div> 549 </script> 550 </div> 551 552 553 }
keyboard_arrow_up