Error executing template "Designs/IBH/_parsed/WithoutSidebar.parsed.cshtml"
System.Exception: URL index rebuild timed out. It took more than 10 s to build the index.
   at Dynamicweb.Frontend.UrlHandling.UrlIndex.AwaitIndexBuild()
   at Dynamicweb.Frontend.SearchEngineFriendlyURLs.ResolveQueryString(String fullQueryString, Int32 pageid, String alternatekey)
   at Dynamicweb.Frontend.SearchEngineFriendlyURLs.GetFriendlyUrl(Int32 pageID, String alternatekey)
   at Dynamicweb.Frontend.XmlNavigation.MakeHrefs(String& href, String& friendlyHref, Page page, String[] params)
   at Dynamicweb.Frontend.XmlNavigation.GenerateXml(IEnumerable`1 pages, XmlElement parentNode)
   at Dynamicweb.Frontend.XmlNavigation.MakeXml(Int32 parentId, Int32 levelStart, Int32 levelStop, Expand expand, Int32 selectedAreaId)
   at Dynamicweb.Frontend.XmlNavigation.GetNavigationHtml(Int32 parentId, Int32 levelStart, Int32 levelStop, Expand expand, String name, String xsltPath, Int32 selectedAreaId, Boolean sitemapMode, NameValueCollection settings, NameValueCollection attributes, IncludeMode mode)
   at Dynamicweb.Frontend.XmlNavigation.GetNavigationHtml(NameValueCollection settings, NameValueCollection attributes)
   at Dynamicweb.Rendering.TemplateBase`1.RenderNavigation(Object settings)
   at CompiledRazorTemplates.Dynamic.RazorEngine_6c0eebb364ab48f6af6e08f364ea5042.b__3_2() in E:\Solutions\IBH\Web\Live\Files\Templates\Designs\IBH\_parsed\WithoutSidebar.parsed.cshtml:line 646
   at NORRIQ.Common8.Caching.CacheItemContainer.BuildItem[T](Func`1 buildmethod, Type dependencyType)
   at NORRIQ.Common8.Caching.HttpCache.GetOrInsert[T](String cacheKey, Func`1 buildCacheDependency, Func`1 buildNewItem)
   at NORRIQ.Common8.Caching.HttpCache`1.GetOrInsert[T](String cacheKey, Func`1 buildNewItem)
   at NORRIQ.Common8.Caching.AreaCache.GetOrInsert[T](String cacheKey, Func`1 buildNewItem)
   at NORRIQ.Common8.Caching.DwCaching.CacheByArea(String cacheKey, Func`1 buildFunc)
   at CompiledRazorTemplates.Dynamic.RazorEngine_6c0eebb364ab48f6af6e08f364ea5042.b__3_0(TextWriter __razor_helper_writer) in E:\Solutions\IBH\Web\Live\Files\Templates\Designs\IBH\_parsed\WithoutSidebar.parsed.cshtml:line 646
   at CompiledRazorTemplates.Dynamic.RazorEngine_6c0eebb364ab48f6af6e08f364ea5042.Execute() in E:\Solutions\IBH\Web\Live\Files\Templates\Designs\IBH\_parsed\WithoutSidebar.parsed.cshtml:line 64
   at RazorEngine.Templating.TemplateBase.RazorEngine.Templating.ITemplate.Run(ExecuteContext context, TextWriter reader)
   at RazorEngine.Templating.RazorEngineService.RunCompile(ITemplateKey key, TextWriter writer, Type modelType, Object model, DynamicViewBag viewBag)
   at RazorEngine.Templating.RazorEngineServiceExtensions.<>c__DisplayClass16_0.b__0(TextWriter writer)
   at RazorEngine.Templating.RazorEngineServiceExtensions.WithWriter(Action`1 withWriter)
   at Dynamicweb.Rendering.Template.RenderRazorTemplate()

1 @using Dynamicweb 2 @using Dynamicweb.Content 3 @using Dynamicweb.Ecommerce.Common; 4 @using Dynamicweb.Ecommerce.Orders 5 @using Dynamicweb.Ecommerce.Prices 6 @using Dynamicweb.Frontend; 7 @using StandardWebshop.CustomCode.Razor; 8 @using NORRIQ.Common8.Factory 9 @using NORRIQ.Common8.Caching 10 @using Page = System.Web.UI.Page 11 @inherits Dynamicweb.Rendering.ViewModelTemplate<Dynamicweb.Frontend.PageViewModel> 12 @{ 13 var navigationTag = Pageview.Page.NavigationTag.ToString(); 14 string canonical = null; 15 string canonicalBase = string.Format("{0}://{1}", System.Web.HttpContext.Current.Request.Url.Scheme, System.Web.HttpContext.Current.Request.Url.Host); 16 if (System.Web.HttpContext.Current.Response.StatusCode == 200) 17 { 18 canonical = Pageview.Page.NavigationTag.Contains("home") ? 19 canonicalBase + "/" 20 : canonicalBase + (Dynamicweb.Frontend.SearchEngineFriendlyURLs.GetFriendlyUrl(System.Web.HttpContext.Current.Request.Url.PathAndQuery.TrimStart('/')) ?? "").Split('?')[0]; 21 } 22 } 23 <!DOCTYPE html> 24 <html lang="@Pageview.Area.Culture"> 25 <head> 26 <title>@Model.Title</title> 27 @if (Model.Area.Item.GetBoolean("NoIndex")) 28 { 29 <meta name="robots" content="noindex, nofollow" /> 30 <!-- TODO: remove on launch--> 31 } 32 <meta charset='utf-8' /> 33 <meta name="description" content="@Model.Description" /> 34 <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=yes, shrink-to-fit=no" /> 35 <meta http-equiv="x-ua-compatible" content="ie=edge"> 36 <link rel="shortcut icon" href="/Files/dist/images/favicon.ico"> 37 <link rel="apple-touch-icon" href="/Files/dist/images/ibh-appleicon.png"> 38 <link rel="preload" href="/Files/dist/fonts/BerlingLTStd-Roman.woff" as="font" crossorigin> 39 <link href="@NORRIQ.Common8.Razor.TimestampSource.GetSourceWithTimestamp("/Files/dist/css/master-min.css")" rel="stylesheet" /> 40 @*Canonical, assuming all url's have friendly names :) *@ 41 @if (!string.IsNullOrEmpty(canonical)) 42 { 43 <link rel="canonical" href="@System.Web.HttpUtility.HtmlAttributeEncode(canonical)" /> 44 } 45 </head> 46 <body class="@Pageview.Item.SystemName.ToString().ToLower() @(navigationTag.Contains("checkout") ? "not-fixed" : "fixed")" id="top"> 47 @if (!String.IsNullOrEmpty(Model.Area.Item.GetString("GoogleTagManager"))) 48 { 49 <!-- Google Tag Manager (noscript) --> 50 var gtmid = Model.Area.Item.GetString("GoogleTagManager"); 51 <noscript> 52 <iframe src="https://www.googletagmanager.com/ns.html?id=@gtmid" 53 height="0" width="0" style="display:none;visibility:hidden"></iframe> 54 </noscript> 55 <!-- End Google Tag Manager (noscript) --> 56 } 57 <div class="overlay"></div> 58 @if (navigationTag.Contains("checkout")) 59 { 60 @HeaderCheckout() 61 } 62 else 63 { 64 @HeaderDefault() 65 } 66 <main class="@(navigationTag.Contains("checkout") ? "main-checkout" : "main-pages")"> 67 @using Dynamicweb.Frontend; 68 @inherits Dynamicweb.Rendering.ViewModelTemplate<Dynamicweb.Frontend.PageViewModel> 69 @using NORRIQ.Common8.Caching 70 71 @Title("Wide Page") 72 @Description("Template with edge-to-edge layout") 73 @if (!String.IsNullOrEmpty(Model.Item.GetString("TopText")) && !String.IsNullOrEmpty(Model.Item.GetValue<ListViewModel>("TopStyle").SelectedValue)) 74 { 75 var backgroundImage = Model.Item.GetFile("TopImage") != null ? " style=\"background-image:url(" + Model.Item.GetFile("TopImage").Path + ");\"" : ""; 76 <section class="top-banner @(Model.Item.GetValue<ListViewModel>("TopStyle").SelectedValue)"@backgroundImage> 77 <div class="container"> 78 @Model.Item.GetString("TopText") 79 </div> 80 </section> 81 82 if (!Model.Item.GetBoolean("HideBreadcrumb")) 83 { 84 <div class="container"> 85 @DwCaching.CacheByPage("breadcrumb.xslt", () => RenderNavigation(new { Template = "Breadcrumb.xslt", Expandmode = "all", StartLevel = 1, EndLevel = 5 })) 86 87 </div> 88 } 89 } 90 @Model.Placeholder("row01", "Content", "unwrap:true;default:true") 91 92 </main> 93 <footer class="footer"> 94 @if (navigationTag.Contains("checkout")) 95 { 96 @FooterSub() 97 } 98 else 99 { 100 @FooterMain() 101 @FooterSub() 102 } 103 </footer> 104 <script src="@NORRIQ.Common8.Razor.TimestampSource.GetSourceWithTimestamp("/files/dist/scripts/bundle.min.js")" data-category-consent="cookie_cat_necessary"></script> 105 @{ 106 var locale = Pageview.Area.Culture.Split('-').FirstOrDefault() ?? ""; 107 } 108 <script> 109 $(document).ready(function() { 110 var jqueryValidatelocalization = new AppStart.JqueryValidateLocalizationManager(); 111 jqueryValidatelocalization.LoadLocale("@locale.ToUpper()"); 112 }); 113 </script> 114 @{ 115 var websiteScript = DwCaching.CacheByArea("website_scripts", () => 116 { 117 object scriptObj = null; 118 return Pageview.Area.Item.TryGetValue("Scripts", ref scriptObj) ? scriptObj.ToString() : null; 119 }); 120 } 121 @if (!string.IsNullOrWhiteSpace(websiteScript)) 122 { 123 @websiteScript 124 } 125 126 <script append="replace"></script> 127 <script> 128 // This is used for testing cloudflare 129 console.log('@(DateTime.Now.ToString("s"))'); 130 </script> 131 </body> 132 </html> 133 134 @helper FooterLinkItem(ItemViewModel item) 135 { 136 if (!String.IsNullOrEmpty(item.GetString("Link"))) 137 { 138 <a href="@item.GetString("Link")"> 139 @item.GetString("Label") 140 </a> 141 } 142 else 143 { 144 <span> 145 @item.GetString("Label") 146 </span> 147 } 148 } 149 @helper FooterMain() 150 { 151 var topLinks = Model.Area.Item.GetItemsCached("TopLinks"); 152 if (topLinks.Any()) 153 { 154 <div class="footer-top"> 155 <div class="container"> 156 <ul class="nav-foot"> 157 @foreach (var link in topLinks) 158 { 159 <li class="nav-foot-item"> 160 @FooterLinkItem(link) 161 </li> 162 } 163 <li class="nav-foot-item"> 164 <a href="#top"> 165 @Translate("Scroll top", "Til toppen") 166 </a> 167 </li> 168 </ul> 169 </div> 170 </div> 171 } 172 <div class="footer-main"> 173 <div class="container"> 174 <div class="row"> 175 <div class="col-12 col-md-4 col-lg-2"> 176 @if (!String.IsNullOrEmpty(Model.Area.Item.GetString("ColumnOneTitle"))) 177 { 178 var columnOneLinks = Model.Area.Item.GetItemsCached("ColumnOneLinks"); 179 if (columnOneLinks.Any()) 180 { 181 <div class="footer-box"> 182 <div class="footer-heading"> 183 <a role="button" href="#col-1-links" data-toggle="collapse" aria-expanded="false" aria-controls="col-1-links" class="footer-title"> 184 @Model.Area.Item.GetString("ColumnOneTitle") 185 </a> 186 </div> 187 <nav class="collapse collapse-foot" id="col-1-links"> 188 <ul class="nav-foot"> 189 @foreach (var link in columnOneLinks) 190 { 191 <li class="nav-foot-item"> 192 @FooterLinkItem(link) 193 </li> 194 } 195 </ul> 196 </nav> 197 </div> 198 } 199 200 } 201 </div> 202 <div class="col-0 col-lg-2"></div> 203 <div class="col-12 col-md-4 col-lg-2"> 204 @if (!String.IsNullOrEmpty(Model.Area.Item.GetString("ColumnTwoTitle"))) 205 { 206 var columnTwoLinks = Model.Area.Item.GetItemsCached("ColumnTwoLinks"); 207 if (columnTwoLinks.Any()) 208 { 209 <div class="footer-box"> 210 <div> 211 <a role="button" href="#col-2-links" data-toggle="collapse" aria-expanded="false" aria-controls="col-2-links" class="footer-title"> 212 @Model.Area.Item.GetString("ColumnTwoTitle") 213 </a> 214 </div> 215 <nav class="collapse collapse-foot" id="col-2-links"> 216 <ul class="nav-foot"> 217 @foreach (var link in columnTwoLinks) 218 { 219 <li class="nav-foot-item"> 220 @FooterLinkItem(link) 221 </li> 222 } 223 </ul> 224 </nav> 225 </div> 226 } 227 228 } 229 </div> 230 <div class="col-0 col-lg-2"></div> 231 <div class="col-12 col-md-4 col-lg-2"> 232 @if (!String.IsNullOrEmpty(Model.Area.Item.GetString("ContactTitle"))) 233 { 234 <div class="footer-box footer-contact"> 235 <div> 236 <a role="button" 237 href="#foot-contact" 238 class="footer-title" 239 data-toggle="collapse" 240 aria-expanded="false" 241 aria-controls="foot-contact"> 242 @Model.Area.Item.GetString("ContactTitle") 243 </a> 244 </div> 245 @if (!String.IsNullOrEmpty(Model.Area.Item.GetString("ContactPhone")) || !String.IsNullOrEmpty(Model.Area.Item.GetString("ContactEmail"))) 246 { 247 <div class="collapse collapse-foot" id="foot-contact"> 248 @if (!String.IsNullOrEmpty(Model.Area.Item.GetString("ContactPhone"))) 249 { 250 <p>@Model.Area.Item.GetString("ContactPhone")</p> 251 } 252 @if (!String.IsNullOrEmpty(Model.Area.Item.GetString("ContactEmail"))) 253 { 254 <p> 255 <a href="mailto:@Model.Area.Item.GetString("ContactEmail")"> 256 @Model.Area.Item.GetString("ContactEmail") 257 </a> 258 </p> 259 } 260 </div> 261 } 262 </div> 263 } 264 @if (!String.IsNullOrEmpty(Model.Area.Item.GetString("FindUsTitle"))) 265 { 266 <div class="footer-box footer-shops"> 267 <div class="footer-heading"> 268 <a role="button" 269 href="#foot-shops" 270 class="footer-title" 271 data-toggle="collapse" 272 aria-expanded="false" 273 aria-controls="foot-shops"> 274 @Model.Area.Item.GetString("FindUsTitle") 275 </a> 276 </div> 277 <div class="collapse collapse-foot" id="foot-shops"> 278 <p> 279 @if (!String.IsNullOrEmpty(Model.Area.Item.GetString("FindUsStoreName"))) 280 { 281 @Model.Area.Item.GetString("FindUsStoreName")<br /> 282 } 283 @if (!String.IsNullOrEmpty(Model.Area.Item.GetString("FindUsStoreAddress"))) 284 { 285 @Model.Area.Item.GetString("FindUsStoreAddress")<br /> 286 } 287 @if (!String.IsNullOrEmpty(Model.Area.Item.GetString("FindUsStoreCity"))) 288 { 289 @Model.Area.Item.GetString("FindUsStoreCity") 290 } 291 </p> 292 @if (!String.IsNullOrEmpty(Model.Area.Item.GetString("FindUsLink")) && !String.IsNullOrEmpty(Model.Area.Item.GetString("FindUsLinkLabel"))) 293 { 294 <p> 295 <a href="@Model.Area.Item.GetString("FindUsLink")"> 296 @Model.Area.Item.GetString("FindUsLinkLabel") 297 </a> 298 </p> 299 } 300 </div> 301 </div> 302 } 303 @if (!String.IsNullOrEmpty(Model.Area.Item.GetString("FollowUsTitle")) && !String.IsNullOrEmpty(Model.Area.Item.GetString("InstagramLink")) || !String.IsNullOrEmpty(Model.Area.Item.GetString("FacebookLink"))) 304 { 305 <div class="footer-box footer-social"> 306 <p class="footer-title"> 307 @Model.Area.Item.GetString("FollowUsTitle") 308 </p> 309 310 @if (!String.IsNullOrEmpty(Model.Area.Item.GetString("FacebookLink"))) 311 { 312 <p> 313 <a href="@Model.Area.Item.GetString("FacebookLink")"> 314 <svg class="icon icon-sm"> 315 <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="/Files/dist/icons/icons.svg#facebook"></use> 316 </svg> 317 @if (!String.IsNullOrEmpty(Model.Area.Item.GetString("FacebookLabel"))) 318 { 319 <span> 320 @Model.Area.Item.GetString("FacebookLabel") 321 </span> 322 } 323 </a> 324 </p> 325 } 326 @if (!String.IsNullOrEmpty(Model.Area.Item.GetString("InstagramLink"))) 327 { 328 <p> 329 <a href="@Model.Area.Item.GetString("InstagramLink")"> 330 <svg class="icon icon-sm"> 331 <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="/Files/dist/icons/icons.svg#instagram"></use> 332 </svg> 333 @if (!String.IsNullOrEmpty(Model.Area.Item.GetString("InstagramLabel"))) 334 { 335 <span> 336 @Model.Area.Item.GetString("InstagramLabel") 337 </span> 338 } 339 </a> 340 </p> 341 } 342 </div> 343 } 344 @if (!String.IsNullOrEmpty(Model.Area.Item.GetString("KlarnaLogo"))) 345 { 346 <p> 347 @if (!String.IsNullOrEmpty(Model.Area.Item.GetString("KlarnaLink"))) 348 { 349 <a href="@Model.Area.Item.GetString("KlarnaLink")" target="_blank"> 350 <img src="@Model.Area.Item.GetFile("KlarnaLogo").Path" alt="Klarna" class="img-fluid"/> 351 </a> 352 } 353 else 354 { 355 <img src="@Model.Area.Item.GetFile("KlarnaLogo").Path" alt="Klarna" class="img-fluid"/> 356 } 357 </p> 358 } 359 </div> 360 <div class="col-12"> 361 <div class="footer-box footer-logo"> 362 @if (Model.Area.Item.GetFile("Logo") != null) 363 { 364 <img src="@Pageview.CdnWrap(string.Format("/Admin/Public/GetImage.ashx?Image={0}&amp;Width=300&amp;Compression=90", Model.Area.Item.GetFile("Logo").Path))" alt="Illums Bolighus A/S" class="img-fluid" /> 365 } 366 else 367 { 368 <span>@Translate("No logo defined in website properties!!!")</span> 369 } 370 </div> 371 </div> 372 </div> 373 </div> 374 </div> 375 } 376 377 @helper FooterSub() 378 { 379 var subLinks = Model.Area.Item.GetItemsCached("SubLinks"); 380 if (subLinks.Any()) 381 { 382 <div class="footer-sub"> 383 <div class="container"> 384 <ul class="nav-foot"> 385 @foreach (var link in subLinks) 386 { 387 <li class="nav-foot-item"> 388 @FooterLinkItem(link) 389 </li> 390 } 391 </ul> 392 </div> 393 </div> 394 } 395 } 396 397 @helper HeaderDefault() 398 { 399 400 var currency = Dynamicweb.Ecommerce.Common.Context.Currency.Code; 401 <header class="header"> 402 <div class="header-top"> 403 @{ var uspList = Model.Area.Item.GetItemsCached("USPList");} 404 @if (uspList.Any()) 405 { 406 <div class="header-usp" data-slick='{"slidesToShow": 1, "slidesToScroll": 1, "dots": false, "arrows": false, "autoplay": true, "autoplaySpeed": 5000, "speed": 1000,"fade": true, "infinite": true, "adaptiveHeight":false}'> 407 @foreach (var usp in uspList) 408 { 409 <div class="header-usp-item"> 410 411 @if (!String.IsNullOrEmpty(usp.GetString("Link"))) 412 { 413 <a href="@usp.GetString("Link")" class="header-usp-link"> 414 @usp.GetString("Title") 415 </a> 416 } 417 else 418 { 419 <span class="header-usp-label"> 420 @usp.GetString("Title") 421 </span> 422 } 423 </div> 424 } 425 </div> 426 } 427 </div> 428 <div class="header-main"> 429 <div class="header-left"> 430 <div class="btn-toggle btn-toggle-menu" data-target="#navigation"> 431 <span></span> 432 <span></span> 433 <span></span> 434 </div> 435 </div> 436 <div class="header-logo"> 437 <a href="/" title="@Translate("logo_title", "Til forsiden")"> 438 @if (Model.Area.Item.GetFile("Logo") != null) 439 { 440 <img src="@Pageview.CdnWrap(string.Format("/Admin/Public/GetImage.ashx?Image={0}&amp;Width=300&amp;Crop=5&amp;Compression=90", Model.Area.Item.GetFile("Logo").Path))" alt="Illums Bolighus A/S" class="img-fluid" /> 441 } 442 else 443 { 444 <span>@Translate("No logo defined in website properties!!!")</span> 445 } 446 </a> 447 </div> 448 <div class="header-right"> 449 <div class="header-search" id="searchbar"> 450 <div class="instantsearch" id="instantsearch"> 451 <form class="form-search " id="search-form" method="get" action="@SearchEngineFriendlyURLs.GetFriendlyUrl(GetPageIdByNavigationTag("search"))"> 452 <label for="searchTerm2">@Translate("Search", "Søg")</label> 453 <input type="search" class="form-control" id="searchTerm2" name="eComQuery" autocomplete="off" placeholder="@Translate("Searchlabel", "Varesøgning")" /> 454 <button type="submit" role="button" class="btn btn-search" name="@Translate("Search", "Søg")"> 455 <svg class="icon icon-xs"> 456 <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="/Files/dist/icons/icons.svg#search"></use> 457 </svg> 458 </button> 459 </form> 460 </div> 461 </div> 462 <div class="header-mini"> 463 <div class="btn-toggle" data-target="#minicart"> 464 <svg class="icon"> 465 <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="/Files/dist/icons/icons.svg#shopping"></use> 466 </svg> 467 <span data-bind="text: Quantity" class="header-mini-qty" style="display: none;"> 468 0 469 </span> 470 </div> 471 <div class="header-cart header-toggle" id="minicart"> 472 <div class="header-cart-head"> 473 <span>@Translate("Shoppingcart", "Indkøbskurv")</span> 474 </div> 475 <div class="header-cart-inner loaded"> 476 @*TODO: SIN - Remove/Add loaded to show spinner instead of orderlines*@ 477 <div class="cart-summary-loader"> 478 <span class="loader loading"></span> 479 <span>@Translate("Loading orderlines", "Henter ordrelinjer...")</span> 480 </div> 481 <div data-bind="foreach: OrderLines" class="cart-summary-products"> 482 @*Products: LineType === 0, Discount: LineType === 3*@ 483 <div class="cart-summary-item" data-bind="if:LineType === 0"> 484 <figure class="cart-summary-thumb"> 485 <a data-bind="attr: {href: OrderProduct.ProductLink}, visible: OrderProduct.ProductImage" href="#"> 486 <img data-bind="attr: { src: OrderProduct.ProductImage, alt: OrderProduct.Name }" src="" alt="@Translate("Tomt billede", "Tomt billede")" /> 487 </a> 488 </figure> 489 <div class="cart-summary-product"> 490 <div class="cart-summary-head"> 491 <span data-bind="text: OrderProduct.ProductBrand" class="cart-summary-brand"></span> 492 </div> 493 <div class="cart-summary-body"> 494 <span class="cart-summary-info"> 495 <a data-bind="attr: {href: OrderProduct.ProductLink}" href="#" class="cart-summary-name"><span data-bind="text: OrderProduct.Name"></span></a> 496 <span class="cart-summary-sku"> 497 <span>@Translate("Product ID", "Varenummer"):</span> 498 <span data-bind="text: OrderProduct.ProductNumber"></span> 499 </span> 500 </span> 501 502 <span class="cart-summary-data"> 503 <span class="cart-summary-qty"> 504 <span>@Translate("Number", "Antal"):</span> 505 <span data-bind="text: Quantity">1</span> 506 </span> 507 <span class="cart-summary-price"> 508 <span>@Translate("Price", "Pris"):</span> 509 <span data-bind="text: LinePrice">1.050.00 DKK</span> 510 <span>@currency</span> 511 </span> 512 </span> 513 </div> 514 </div> 515 516 </div> 517 <div class="cart-summary-discount" data-bind="if:LineType === 3"> 518 <span data-bind="text: OrderProduct.Name"></span> <span data-bind="text: LinePrice"></span> <span>@currency</span> 519 </div> 520 </div> 521 <div class="cart-summary-total"> 522 <span class="cart-summary-totalprice"> 523 <span>@Translate("Total price without VAT", "Pris ekskl. moms")</span> 524 <span data-bind="text: TotalPriceWithoutVAT">1.239,20 DKK</span> 525 <span>@currency</span> 526 </span> 527 <span class="cart-summary-totalprice"> 528 <span>@Translate("Total price with VAT", "Pris i alt")</span> 529 <span data-bind="text: TotalPriceWithVAT"></span> 530 <span>@currency</span> 531 </span> 532 </div> 533 </div> 534 <div class="header-cart-foot"> 535 <a href="@NORRIQ.Common8.Razor.Navigation.GetUrlByNavigationTag("cart")" class="btn btn-outline-dark"> 536 @Translate("Show cart", "Vis kurv") 537 </a> 538 <a href="@NORRIQ.Common8.Razor.Navigation.GetUrlByNavigationTag("checkout")" class="btn btn-secondary"> 539 @Translate("Checkout", "Checkout") 540 </a> 541 </div> 542 </div> 543 </div> 544 </div> 545 </div> 546 <nav class="header-nav header-toggle" id="navigation"> 547 <div class="nav-overflow"> 548 @{var languages = Model.Area.Item.GetItemsCached("Languages");} 549 @if (languages.Any()) 550 { 551 <ul class="nav-lang"> 552 @foreach (var lang in languages) 553 { 554 var activeLang = Pageview.Area.Culture.ToLower().Contains(lang.GetString("Title").ToLower()) ? " active" : ""; 555 <li class="nav-lang-item"> 556 <a href="@lang.GetString("Link")" class="nav-lang-link@(activeLang)"> 557 @lang.GetString("Title") 558 </a> 559 </li> 560 } 561 </ul> 562 } 563 564 <ul class="nav-icon"> 565 <li class="nav-icon-item"> 566 <a href="@NORRIQ.Common8.Razor.Navigation.GetUrlByNavigationTag("findstore")" class="nav-icon-link"> 567 <svg class="icon"> 568 <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="/Files/dist/icons/icons.svg#map-marker"></use> 569 </svg> 570 <span> 571 @Translate("FindStore", "Find butik") 572 </span> 573 </a> 574 </li> 575 <li class="nav-icon-item nav-icon-user dropdown"> 576 <a href="javascript:void()" class="nav-icon-link"> 577 <svg class="icon"> 578 <use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="/Files/dist/icons/icons.svg#account"></use> 579 </svg> 580 @*Label not logged in*@ 581 <span id="loggedOutName" class="nav-icon-label" style="display: none;"> 582 @Translate("Login", "Log ind") 583 </span> 584 <span id="loggedInName" data-bind="text: UserName" class="nav-icon-label" style="display: none;"> 585 </span> 586 </a> 587 <form class="form" data-action="submitLogin" id="loginForm" name="loginForm"> 588 <div class="dropdown-menu"> 589 @*Dropdown not logged in*@ 590 <div id="notLoggedInMenu" class="dropdown-menu-inner "> 591 <div class="form-group"> 592 <label for="Username">@Translate("usernameLabel", "Brugernavn")</label> 593 <input id="Username" name="Username" type="text" value="" class="form-control" required> 594 </div> 595 <div class="form-group"> 596 <label for="Password">@Translate("password", "Adgangskode")</label> 597 <input id="Password" name="Password" type="password" value="" class="form-control" required> 598 </div> 599 <div id="loginFeedback" style="display: none;" class="loginFeedback"> 600 <p class="alert alert-warning"> 601 @Translate("Cart Login Error", "Har du glemt dit brugernavn eller adgangskode?") 602 <a href="@NORRIQ.Common8.Razor.Navigation.GetUriByNavigationTag("forgot-password")">@Translate("Cart Login Error Label", " Så klik her")</a> 603 </p> 604 </div> 605 <button type="submit" role="button" class="btn btn-primary btn-block"> 606 <span data-bind="ifnot: $root.loggingIn"> 607 <span class="login-btn-label">@Translate("buttonLogin", "Log ind")</span> 608 </span> 609 <span data-bind="if: $root.loggingIn, attr: { 'style': 'display:flex' }" style="display: none;"> 610 <span class="loader loader-xs loader-light loading"></span> <span class="login-btn-label">@Translate("Signing in")</span> 611 </span> 612 </button> 613 <a href="@NORRIQ.Common8.Razor.Navigation.GetUrlByNavigationTag("forgot-password")" class="dropdown-item">@Translate("label_forgotten_password", "Glemt adgangskode")</a> 614 <a href="@NORRIQ.Common8.Razor.Navigation.GetUrlByNavigationTag("new-user")" class="dropdown-item">@Translate("label_create_new_user", "Opret ny bruger")</a> 615 <a href="@NORRIQ.Common8.Razor.Navigation.GetUrlByNavigationTag("user-activation-page")" class="dropdown-item">@Translate("label_activate_your_user", "Aktiver din No1 konto")</a> 616 </div> 617 @*Dropdown logged in*@ 618 <div id="loggedInMenu" class="dropdown-menu-inner" style="display: none;"> 619 @{ 620 var pageService = ObjectFactory.GetInstance<PageService>(); 621 var pages = pageService.GetPagesByParentID(GetPageIdByNavigationTag("user")).Where(page => !page.NavigationTag.Contains("onlyNotAuth") && page.Active); 622 } 623 624 <ul class="nav-user"> 625 @foreach (var page in pages) 626 { 627 <li class="nav-item"> 628 @{var href = "/Default.aspx?ID=" + page.ID;} 629 <a class="nav-link" href="@href">@page.GetDisplayName()</a> 630 </li> 631 } 632 </ul> 633 634 @*@RenderNavigation(new {Template = "UserLoggedIn.xslt", Expandmode = "all", StartLevel = 1, EndLevel = 2, NavigationTag = "user"})*@ 635 <a id="logoutButton" class="btn btn-outline-dark btn-sm btn-block"> 636 <span> 637 @Translate("Logout", "Log ud") 638 </span> 639 </a> 640 </div> 641 </div> 642 </form> 643 </li> 644 </ul> 645 646 @DwCaching.CacheByArea("primary.xslt", () => RenderNavigation(new { Template = "Primary.xslt", Expandmode = "all", StartLevel = 1, EndLevel = 3 })) 647 @{ var secondaryNavigation = Model.Area.Item.GetItemsCached("SecondaryNavigation");} 648 @if (secondaryNavigation.Any()) 649 { 650 <ul class="nav-top"> 651 @foreach (var link in secondaryNavigation) 652 { 653 <li class="nav-top-item"> 654 <a href="@link.GetString("Link")" class="nav-top-link"> 655 @link.GetString("Label") 656 </a> 657 </li> 658 } 659 </ul> 660 } 661 </div> 662 </nav> 663 </header> 664 } 665 666 @helper HeaderCheckout() 667 { 668 <header class="header-checkout"> 669 <div class="header-main"> 670 <div class="header-logo"> 671 <a href="/" title="@Translate("logo_title", "Til forsiden")"> 672 @if (Model.Area.Item.GetFile("Logo") != null) 673 { 674 <img src="@Pageview.CdnWrap(string.Format("/Admin/Public/GetImage.ashx?Image={0}&amp;Width=300&amp;Crop=5&amp;Compression=90", Model.Area.Item.GetFile("Logo").Path))" alt="Illums Bolighus A/S" class="img-fluid" /> 675 } 676 else 677 { 678 <span>@Translate("No logo defined in website properties!!!")</span> 679 } 680 </a> 681 </div> 682 </div> 683 </header> 684 }