Error executing template "Designs/ambu/_parsed/espresso.parsed.cshtml"
System.NullReferenceException: Object reference not set to an instance of an object.
   at CompiledRazorTemplates.Dynamic.RazorEngine_9ce942cdf67a48e89b41d5f72a0b517d.Execute() in E:\dynamicweb.net\SolutionsCustom\Co3\ambu-com.espresso4.dk\files\Templates\Designs\ambu\_parsed\espresso.parsed.cshtml:line 29
   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 @inherits Co3.Espresso.Website.TemplateBases.Pages.PageBase 2 @using Co3.Ambu.Dw.Services; 3 @using Co3.Ambu.Dw.DAL.Models; 4 @using System.Web; 5 @using Co3.Ambu.Dw.Models.Frontend 6 @using Co3.Espresso.Base.Extensions 7 @using Dynamicweb.Frontend; 8 @using Dynamicweb.Rendering; 9 10 @{ 11 string globalAreaLang = GetGlobalValue("Global:Area.Lang"); 12 //DomainLocalization domainLocalization = LocalizationService.Instance.GetDomainLocalizationIfMatch(); 13 string siteHost = HttpContext.Current.Request.Url.Host; 14 int globalAreaID = PageView.Current().Area.ID; 15 } 16 17 <!DOCTYPE html> 18 <html lang="@globalAreaLang"> 19 <head> 20 @GetValue("CopyRightNotice") 21 <meta charset="utf-8"> 22 <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no, minimal-ui"> 23 <meta http-equiv="x-ua-compatible" content="ie=edge"> 24 <title> 25 @GetValue("Title") 26 </title> 27 28 @Espresso.CriticalCSS 29 @if( string.IsNullOrEmpty( Espresso.Area.GoogleTagManagerID ) == false && Espresso.Area.GoogleTagManagerID != "GTM-XXXX" ){ 30 <!-- Google Tag Manager --> 31 <script> 32 (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': 33 new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], 34 j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 35 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); 36 })(window,document,'script','dataLayer','@Espresso.Area.GoogleTagManagerID'); 37 </script> 38 <!-- End Google Tag Manager --> 39 } 40 <link href="https://fonts.googleapis.com/css?family=Material+Icons" media="@Espresso.StylesheetAttributeMedia" rel="@Espresso.StylesheetAttributeRel" as="style"> 41 <link href="https://hello.myfonts.net/count/3488f9" media="@Espresso.StylesheetAttributeMedia" rel="@Espresso.StylesheetAttributeRel" as="style"> 42 <link href="/Files/Templates/Designs/ambu/assets/_dist/css/default.css?v=3.077" media="@Espresso.StylesheetAttributeMedia" rel="@Espresso.StylesheetAttributeRel" as="style"> 43 44 <script src="https://player.vimeo.com/api/player.js"></script> 45 46 @Espresso.CriticalJS 47 48 <link rel="shortcut icon" href="@Espresso.Area.Item.Favicon"> 49 @GetValue("MetaTags") 50 @if( Espresso.IsStagingUrl == true || siteHost.Contains("webtester.dk") ) { 51 <meta name="robots" content="noindex,nofollow"> 52 } 53 @{ 54 string OpenGraphURL = GetGlobalValue( "Global:Request.Scheme" ) + "://" + GetGlobalValue( "Global:Request.Host" ) + GetGlobalValue( "Global:Pageview.Url" ); 55 } 56 <meta property="og:url" content="@OpenGraphURL"> 57 <meta property="og:title" content="@Espresso.OpenGraphTitle"> 58 <meta property="og:description" content="@Espresso.OpenGraphDescription"> 59 <meta property="og:image" content="@Espresso.OpenGraphImage"> 60 @if( string.IsNullOrEmpty( Espresso.Area.Item.GoogleSiteVerification ) == false ){ 61 <meta name="google-site-verification" content="@Espresso.Area.Item.GoogleSiteVerification"> 62 } 63 @{ 64 if(1 == 2){ 65 @GetValue("Stylesheets") 66 } 67 } 68 69 @using Dynamicweb.Content 70 @using Dynamicweb.Frontend 71 72 <!-- Hreflang --> 73 @{ 74 @* Get areas from service *@ 75 Dynamicweb.Content.AreaService areaService = new Dynamicweb.Content.AreaService(); 76 IList<Area> areas = areaService.GetAreas(); 77 78 @* Get current page's relation-text from page-item *@ 79 string currentPageRelation = PageView.Current().Page.Item["PageRelation"] != null ? PageView.Current().Page.Item["PageRelation"].ToString() : string.Empty; 80 81 @* Frontpage must have 'frontpage' as relation-text *@ 82 string CONST_frontpageRelation = "frontpage"; 83 84 @* Iterate areas *@ 85 foreach ( Area area in areas ) 86 { 87 if ( area.Active == true ) 88 { 89 90 91 92 @* Get current area's culture *@ 93 string culture = area.Culture; 94 @* Check for IsDefault Hreflang on area *@ 95 string isDefaultHrefLang = area.Item["IsDefaultHrefLang"] != null ? area.Item["IsDefaultHrefLang"].ToString() : string.Empty; 96 @* Check for override-culture text on area *@ 97 string hreflangCultureOverride = area.Item["HreflangLanguageOverride"] != null ? area.Item["HreflangLanguageOverride"].ToString() : string.Empty; 98 99 @* Get scheme and domain *@ 100 string scheme = GetGlobalValue( "Global:Request.Scheme" ); 101 102 string domain = area.DomainLock; 103 @* If we have a primary domain call pageservice and get pages *@ 104 if ( string.IsNullOrEmpty( currentPageRelation ) == false && string.IsNullOrEmpty( domain ) == false ) 105 { 106 Dynamicweb.Content.PageService pageService = new Dynamicweb.Content.PageService(); 107 IEnumerable<Dynamicweb.Content.Page> pages = pageService.GetPagesByAreaID( area.ID ); 108 109 @* Iterate pages in area - check if is active + has item + has item-pagerelation + item-pagerelation equals current pagerelation *@ 110 foreach ( Dynamicweb.Content.Page page in pages.Where( p => p.Published && p.Item != null && p.Item["PageRelation"] != null && p.Item["PageRelation"].ToString().Equals( currentPageRelation ) ) ) 111 { 112 string productId = HttpContext.Current.Request["productid"]; 113 114 string url = string.Empty; 115 116 if ( string.IsNullOrEmpty( productId ) == false ) 117 { 118 @* Build url to area product page *@ 119 string prodUrl = string.Format( "Default.aspx?ID={0}&ProductId={1}", page.ID, productId ); 120 url = string.Format( "{0}://{1}{2}", scheme, domain, SearchEngineFriendlyURLs.GetFriendlyUrl( prodUrl, area.EcomLanguageId ) ); 121 } 122 else 123 { 124 @* Build url to area page *@ 125 url = string.Format( "{0}://{1}{2}", scheme, domain, SearchEngineFriendlyURLs.GetFriendlyUrl( page.GetPageHrefValue() ) ); 126 } 127 128 @* If our current page relation match frontpage - set link to domain only *@ 129 if ( currentPageRelation == CONST_frontpageRelation ) 130 { 131 url = string.Format( "{0}://{1}", scheme, domain ); 132 } 133 @* If our area item has checked in Default hreflang, we render x-default link *@ 134 if ( isDefaultHrefLang == "True" ) 135 { 136 <link rel="alternate" hreflang="x-default" href="@url"> 137 } 138 @* If we have a value in the area-item to overrule the culture, override the value here *@ 139 if ( string.IsNullOrEmpty( hreflangCultureOverride ) == false ) 140 { 141 culture = hreflangCultureOverride; 142 } 143 @* Render hreflang-link *@ 144 <link rel="alternate" hreflang="@culture.ToLower()" href="@url"> 145 } 146 } 147 } 148 } 149 } 150 <!-- End Hreflang --> 151 152 @* AMBU.COM *@ 153 @if ( globalAreaID == 1 ) { 154 <script id="CookieConsent" data-culture="EN" src="https://policy.cookieinformation.com/uc.js" data-cbid="23c055d5-4252-4e34-aeb7-1a77ba7a5c4a" type="text/javascript" async=""></script> 155 } 156 @* AMBU.CO.UK *@ 157 @if ( globalAreaID == 27 ) { 158 <script id="CookieConsent" data-culture="EN" src="https://policy.cookieinformation.com/uc.js" data-cbid="23c055d5-4252-4e34-aeb7-1a77ba7a5c4a" type="text/javascript" async=""></script> 159 } 160 @* AMBUUSA.COM *@ 161 @if ( globalAreaID == 25 ) { 162 <script id="CookieConsent" data-culture="EN" src="https://policy.cookieinformation.com/uc.js" data-cbid="a65d9cd7-2ed8-4dd5-bfdc-df9de6e1b6f4" type="text/javascript" async=""></script> 163 } 164 @* AMBU.DE *@ 165 @if ( globalAreaID == 26 ) { 166 <script id="CookieConsent" data-culture="DE" src="https://policy.cookieinformation.com/uc.js" data-cbid="23c055d5-4252-4e34-aeb7-1a77ba7a5c4a" type="text/javascript" async=""></script> 167 } 168 @* AMBU.FR *@ 169 @if ( globalAreaID == 28 ) { 170 <script id="CookieConsent" data-culture="FR" src="https://policy.cookieinformation.com/uc.js" data-cbid="23c055d5-4252-4e34-aeb7-1a77ba7a5c4a" type="text/javascript" async=""></script> 171 } 172 @* AMBU.ES *@ 173 @if ( globalAreaID == 31 ) { 174 <script id="CookieConsent" data-culture="ES" src="https://policy.cookieinformation.com/uc.js" data-cbid="23c055d5-4252-4e34-aeb7-1a77ba7a5c4a" type="text/javascript" async=""></script> 175 } 176 @* AMBUAUSTRALIA.COM.AU *@ 177 @if ( globalAreaID == 33 ) { 178 } 179 @* AMBU.COM - Global (mastersite) *@ 180 @if ( globalAreaID == 35 ) { 181 <script id="CookieConsent" data-culture="EN" src="https://policy.cookieinformation.com/uc.js" data-cbid="23c055d5-4252-4e34-aeb7-1a77ba7a5c4a" type="text/javascript" async=""></script> 182 } 183 @* AMBU.DK - Denmark (mastersite) *@ 184 @if ( globalAreaID == 36 ) { 185 <script id="CookieConsent" data-culture="EN" src="https://policy.cookieinformation.com/uc.js" data-cbid="23c055d5-4252-4e34-aeb7-1a77ba7a5c4a" type="text/javascript" async=""></script> 186 } 187 @* AMBU.NL - Netherlands (mastersite) *@ 188 @if ( globalAreaID == 38 ) { 189 <script id="CookieConsent" data-culture="EN" src="https://policy.cookieinformation.com/uc.js" data-cbid="23c055d5-4252-4e34-aeb7-1a77ba7a5c4a" type="text/javascript" async=""></script> 190 } 191 192 @*@Include( "../_inc/ambu-disclaimer-modal.cshtml" )*@ 193 194 <!-- Google reCAPTCHA --> 195 <script src="https://www.google.com/recaptcha/api.js" async="" defer=""></script> 196 <!-- End Google reCAPTCHA --> 197 198 @GetValue("Javascripts") 199 </head> 200 201 <body class="@Espresso.Item.CustomClasses"> 202 203 @if ( string.IsNullOrEmpty( Espresso.Area.GoogleTagManagerID ) == false && Espresso.Area.GoogleTagManagerID != "GTM-XXXX" ) 204 { 205 <!-- Google Tag Manager (noscript) --> 206 <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=@Espresso.Area.GoogleTagManagerID" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> 207 <!-- End Google Tag Manager (noscript) --> 208 } 209 210 @using Co3.Ambu.Dw.Services 211 @{ 212 if( Espresso.Canvas.ClassList.ToString().Contains("e-page-is-loading") == true ){ 213 Espresso.Canvas.ClassList.RemoveClasses("e-page-is-loading"); 214 Espresso.Canvas.ClassList.AddClasses("is-loading"); 215 } 216 } 217 218 219 @if( Espresso.Area.Item.OptimizedLoading == "True" ){ 220 <div id="js-e-page-loading-overlay" class="e-page-loading-overlay e-loading-overlay is-loading"><div class="e-loading-spinner"></div></div> 221 } 222 223 <div class="@Espresso.Canvas.ClassList" id="js-e-canvas"> 224 @{ string Logo = Espresso.Area.Item.Logo; string Tagline = Espresso.Area.Item.Tagline; } 225 @if( Espresso.Item.HeaderHide != "True" ){ 226 <header class="e-header js-e-header is-sticky"> 227 <div class="e-header-container"> 228 <div class="container-fluid"> 229 <div class="row"> 230 <div class="col-xs-12"> 231 <article class="e-header-wrapper"> 232 <div class="e-logo"> 233 <a href="/" class="e-logo-link"> 234 <img src="@Logo" class="e-logo-img" alt="@Tagline"> @if( string.IsNullOrEmpty( Tagline ) == false ){ 235 <p class="e-logo-tagline">@Tagline</p> 236 } 237 </a> 238 </div> 239 @if( Espresso.Item.NavigationHide != "True" ){ 240 @GetValue("DwNavigation(dwnavheadercta)") 241 if( Espresso.Area.Item.Search == "True" ){ 242 <div class="e-search-toggle e-header-btn"> 243 <a data-toggle="modal" data-target=".modal.e-search" class="btn text-auto"> 244 <i class="material-icons m-a-0">search</i> 245 </a> 246 </div> 247 } 248 if (!string.IsNullOrWhiteSpace(GetGlobalValue("Global:eCommerce.Order.OrderLines.TotalProductQuantity"))) { 249 if( Espresso.Area.Item.Shop == "True" ){ 250 <div class="e-header-btn e-cart-mini"> 251 <a href="/quote/cart/" class="btn text-auto"> 252 <i class="material-icons m-a-0">shopping_basket</i> 253 <span class="e-cart-count js-e-cart-count">@GetGlobalValue("Global:eCommerce.Order.OrderLines.TotalProductQuantity")</span> 254 </a> 255 </div> 256 } 257 } 258 <div class="e-header-btn e-nav-toggle"> 259 <a data-toggle="modal" data-target=".modal.e-nav-container" class="btn text-auto"> 260 <i class="material-icons">menu</i> @Translate("Header menu button text", "Menu") 261 </a> 262 </div> 263 <div class="e-nav-container modal js-e-nav-container" data-backdrop="false"> 264 <nav class="e-nav"> 265 <div class="e-nav-masthead"> 266 <div class="e-logo"> 267 <a href="/" class="e-logo-link"> 268 <img src="@Logo" class="e-logo-img" alt="@Tagline"> @if( string.IsNullOrEmpty( Tagline ) == false ){ 269 <p class="e-logo-tagline">@Tagline</p> 270 } 271 </a> 272 </div> 273 <div class="e-nav-toggle e-header-btn"> 274 <button type="button" data-toggle="modal" data-target=".modal.e-nav-container" class="btn text-auto"> 275 <i class="material-icons">close</i> 276 </button> 277 </div> 278 @if( Espresso.Area.Item.Search == "True" ){ 279 <div class="e-search-toggle e-header-btn"> 280 <button type="button" data-toggle="modal" data-target=".modal.e-search" class="btn text-auto"> 281 <i class="material-icons">search</i> 282 </button> 283 </div> 284 } 285 @if (!string.IsNullOrWhiteSpace(GetGlobalValue("Global:eCommerce.Order.OrderLines.TotalProductQuantity"))) { 286 if( Espresso.Area.Item.Shop == "True" ){ 287 <div class="e-header-btn e-cart-mini"> 288 <a href="/quote/cart/" class="btn text-auto"> 289 <i class="material-icons m-a-0">shopping_basket</i> 290 <span class="e-cart-count js-e-cart-count">@GetGlobalValue("Global:eCommerce.Order.OrderLines.TotalProductQuantity")</span> 291 </a> 292 </div> 293 } 294 } 295 </div> 296 <section class="e-nav-global"> 297 <ul class="nav"> 298 @GetValue("DwNavigation(dwnavglobal)") 299 </ul> 300 </section> 301 @if( Espresso.Area.Item.Search == "True" ){ 302 <div class="e-search-toggle"> 303 <button type="button" data-toggle="modal" data-target=".modal.e-search" class="btn text-auto"> 304 <i class="material-icons">search</i> 305 </button> 306 </div> 307 } 308 @if (!string.IsNullOrWhiteSpace(GetGlobalValue("Global:eCommerce.Order.OrderLines.TotalProductQuantity"))) { 309 if( Espresso.Area.Item.Shop == "True" ){ 310 <div class="e-cart-mini"> 311 <a href="/quote/cart/" class="btn text-auto"> 312 <i class="material-icons m-a-0">shopping_basket</i> 313 <span class="e-cart-count js-e-cart-count">@GetGlobalValue("Global:eCommerce.Order.OrderLines.TotalProductQuantity")</span> 314 </a> 315 </div> 316 }} 317 @if( string.IsNullOrEmpty( GetString("DwNavigation(dwnavcta)") ) == false ){ 318 <section class="e-nav-cta"> 319 <ul class="nav"> 320 @GetValue("DwNavigation(dwnavcta)") 321 </ul> 322 </section> 323 } 324 @if( string.IsNullOrEmpty( GetString("DwNavigation(dwnavutilitiesprimary)") ) == false ){ 325 <section class="e-nav-utilities-primary"> 326 <ul class="nav"> 327 @if( Espresso.Item.NavigationHide != "True" ){ 328 @GetValue("DwNavigation(dwnavutilitiesprimary)") 329 } 330 </ul> 331 </section> 332 } 333 @if( string.IsNullOrEmpty( GetString("DwNavigation(dwnavutilitiessecondaryheader)") ) == false ){ 334 <section class="e-nav-utilities-secondary"> 335 <ul class="nav"> 336 @GetValue("DwNavigation(dwnavutilitiessecondaryheader)") 337 </ul> 338 </section> 339 } 340 @if( string.IsNullOrEmpty( GetString("DwNavigation(dwnavcontext)") ) == false ){ 341 <section class="e-nav-context"> 342 <ul class="nav"> 343 @GetValue("DwNavigation(dwnavcontext)") 344 </ul> 345 </section> 346 } 347 </nav> 348 349 </div> 350 } 351 </article> 352 </div> 353 </div> 354 </div> 355 </div> 356 </header> 357 } 358 359 <main class="e-content"> 360 @{ 361 string eBreadcrumbClasslist = "e-breadcrumb js-e-breadcrumb"; 362 if( String.IsNullOrEmpty( Espresso.Item.BreadcrumbColor ) == false && Espresso.Item.BreadcrumbColor != "auto"){ 363 eBreadcrumbClasslist += string.Format(" e-breadcrumb-{0}", Espresso.Item.BreadcrumbColor); 364 } 365 } 366 @if( Espresso.Item.BreadcrumbShow == "True" ){ 367 <nav class="@eBreadcrumbClasslist"> 368 <div class="container-fluid"> 369 <div class="row"> 370 <div class="col-xs-12"> 371 @GetValue("DwNavigation(dwnavbreadcrumb)") 372 </div> 373 </div> 374 </div> 375 </nav> 376 } 377 378 <article id="dwcontentmain" class="e-content-main @Espresso.ContentArea.ClassList"> 379 @using Dynamicweb.Admin.dk.dynamicweb.templates 380 @{ 381 string NavigationLocalHorizontalClassList = "e-nav-local e-nav-local-horizontal js-e-nav-local-horizontal"; 382 @* reset-animate *@ 383 string NavigationLocalHorizontalContainerClassList = "e-nav-local-container"; 384 if( Espresso.Item.NavigationLocalShow == "True" && Espresso.Item.NavigationLocalLayout == "horizontal" ) { 385 NavigationLocalHorizontalClassList += " " + Espresso.Item.NavigationLocalCustomClasses; 386 if( Espresso.Item.NavigationLocalSticky == "True" ) { 387 NavigationLocalHorizontalClassList += " is-sticky"; 388 } 389 if( Espresso.Item.NavigationLocalAbsolute == "True" ) { 390 NavigationLocalHorizontalClassList += " is-absolute"; 391 } 392 else{ 393 if( Espresso.Item.NavigationLocalMarginTop != "0" && Espresso.Item.NavigationLocalMarginTop != "" ) { 394 NavigationLocalHorizontalClassList += " m-t-" + Espresso.Item.NavigationLocalMarginTop; 395 } 396 if( Espresso.Item.NavigationLocalMarginBottom != "0" && Espresso.Item.NavigationLocalMarginBottom != "" ) { 397 NavigationLocalHorizontalClassList += " m-b-" + Espresso.Item.NavigationLocalMarginBottom; 398 } 399 } 400 } 401 } 402 403 @if( Espresso.Item.NavigationLocalShow == "True" && Espresso.Item.NavigationLocalLayout == "horizontal" ) { 404 <section class="e-section @NavigationLocalHorizontalClassList"> 405 <div class="container-fluid"> 406 <div class="row"> 407 <div class="col-xs-12"> 408 <div class="row"> 409 410 <div class="col-xs-12"> 411 <nav id="dwnav-local-@Espresso.DynamicwebPage.ID" class="@NavigationLocalHorizontalContainerClassList"> 412 <ul class="nav"> 413 @if( Espresso.Item.NavigationLocalHeading != "" ){ 414 <li class="e-nav-local-heading"><h2><a class="e-nav-local-heading-link" href="/default.aspx?ID=@Espresso.Item.NavigationLocalParentPage">@Espresso.Item.NavigationLocalHeading</a></h2></li> 415 } 416 @RenderNavigation( new { 417 id = "dwnav-local-" + Espresso.DynamicwebPage.ID, 418 parentid = string.IsNullOrEmpty( Espresso.Item.NavigationLocalParentPage ) == false ? Espresso.Item.NavigationLocalParentPage : Espresso.DynamicwebPage.ID, 419 template = string.IsNullOrEmpty( Espresso.Item.NavigationLocalTemplate ) == false ? Espresso.Item.NavigationLocalTemplate : "local-" + Espresso.Item.NavigationLocalLayout + ".xslt", 420 startlevel = Espresso.Item.NavigationLocalLevelStart, 421 endlevel = Espresso.Item.NavigationLocalLevelEnd, 422 expandmode = Espresso.Item.NavigationLocalExpandMode, 423 } ) 424 </ul> 425 </nav> 426 </div> 427 428 </div> 429 </div> 430 </div> 431 </div> 432 </section> 433 434 } 435 @{ 436 string NavigationLocalVerticalClassList = "e-nav-local e-nav-local-vertical js-e-nav-local-vertical reset-animate"; 437 string NavigationLocalVerticalContainerClassList = "e-nav-local-container"; 438 if( Espresso.Item.NavigationLocalShow == "True" && Espresso.Item.NavigationLocalLayout == "vertical" ) { 439 NavigationLocalVerticalClassList += " " + Espresso.Item.NavigationLocalCustomClasses; 440 //NavigationLocalVerticalClassList += " col-xs-3"; 441 442 if( Espresso.Item.NavigationLocalMarginTop != "0" && Espresso.Item.NavigationLocalMarginTop != "" ) { 443 NavigationLocalVerticalClassList += " p-t-" + Espresso.Item.NavigationLocalMarginTop; 444 } 445 if( Espresso.Item.NavigationLocalMarginBottom != "0" && Espresso.Item.NavigationLocalMarginBottom != "" ) { 446 NavigationLocalVerticalClassList += " p-b-" + Espresso.Item.NavigationLocalMarginBottom; 447 } 448 449 if( Espresso.Item.NavigationLocalSticky == "True" ) { 450 NavigationLocalVerticalClassList += " is-sticky"; 451 } 452 if( Espresso.Item.NavigationLocalAbsolute == "True" ) { 453 NavigationLocalVerticalClassList += " is-absolute"; 454 } 455 else{ 456 Espresso.ContentSection.ClassList.RemoveClasses("col-xs-12 col-md-12 col-lg-12 col-md-10 col-md-11 col-lg-8 col-md-offset-1 col-lg-offset-2"); 457 Espresso.ContentSection.ClassList.AddClasses("col-xs-12 col-lg-9 col-lg-offset-3"); 458 } 459 } 460 } 461 462 @if( Espresso.Item.NavigationLocalShow == "True" && Espresso.Item.NavigationLocalLayout == "vertical" ) { 463 <section class="e-section @NavigationLocalVerticalClassList"> 464 <div class="container-fluid"> 465 <div class="row"> 466 <div class="col-xs-12"> 467 <div class="row"> 468 469 <div class="col-xs-3"> 470 <nav id="dwnav-local-@Espresso.DynamicwebPage.ID" class="@NavigationLocalVerticalContainerClassList"> 471 <ul class="nav"> 472 @if( Espresso.Item.NavigationLocalHeading != "" ){ 473 <li class="e-nav-local-heading"><h2><a class="e-nav-local-heading-link" href="/default.aspx?ID=@Espresso.Item.NavigationLocalParentPage">@Espresso.Item.NavigationLocalHeading</a></h2></li> 474 } 475 @RenderNavigation( new { 476 id = "dwnav-local-" + Espresso.DynamicwebPage.ID, 477 parentid = string.IsNullOrEmpty( Espresso.Item.NavigationLocalParentPage ) == false ? Espresso.Item.NavigationLocalParentPage : Espresso.DynamicwebPage.ID, 478 template = string.IsNullOrEmpty( Espresso.Item.NavigationLocalTemplate ) == false ? Espresso.Item.NavigationLocalTemplate : "local-" + Espresso.Item.NavigationLocalLayout + ".xslt", 479 startlevel = Espresso.Item.NavigationLocalLevelStart, 480 endlevel = Espresso.Item.NavigationLocalLevelEnd, 481 expandmode = Espresso.Item.NavigationLocalExpandMode, 482 } ) 483 </ul> 484 </nav> 485 </div> 486 487 </div> 488 </div> 489 </div> 490 </div> 491 </section> 492 } 493 494 495 <section class="e-section"> 496 <div class="container-fluid"> 497 <div class="row"> 498 <div class="@Espresso.ContentSection.ClassList"> 499 <div class="row"> 500 @GetValue("DwContent(dwcontentmain)") 501 </div> 502 </div> 503 </div> 504 </div> 505 </section> 506 </article> 507 </main> 508 <footer class="e-footer"> 509 <article class="e-footer-wrapper"> 510 @if( Espresso.Item.FooterHide != "True" ){ 511 <section class="e-footer-content e-section"> 512 <div class="container-fluid"> 513 <div class="row"> 514 @if( string.IsNullOrEmpty( Espresso.Area.Item.FooterParagraphs ) == false ){ 515 foreach( string paragraphID in Espresso.Area.Item.FooterParagraphs.Split( new char[]{','}, StringSplitOptions.None ) ){ 516 @RenderParagraphContent( int.Parse( paragraphID ) ); 517 } 518 } 519 @if( string.IsNullOrEmpty( GetString("DwNavigation(dwnavutilitiessecondaryfooter)") ) == false ){ 520 <div class="col-xs-12"> 521 <aside class="e-nav-utilities-secondary"> 522 <ul class="nav nav-inline"> 523 @GetValue("DwNavigation(dwnavutilitiessecondaryfooter)") 524 </ul> 525 </aside> 526 </div> 527 } 528 </div> 529 </div> 530 </section> 531 } 532 <section class="e-footer-copyright e-section"> 533 <div class="container-fluid"> 534 <div class="row p-t-1"> 535 @if( string.IsNullOrEmpty( Espresso.Area.Item.FooterParagraphsUtility ) == false ){ 536 foreach( string paragraphID in Espresso.Area.Item.FooterParagraphsUtility.Split( new char[]{','}, StringSplitOptions.None ) ){ 537 @RenderParagraphContent( int.Parse( paragraphID ) ); 538 } 539 } 540 <div class="p p-imagetext col-xs-12 text-xs-center"> 541 <p class="e-copyright"> 542 @Translate("Footer CopyrightText", "Copyright &copy;") 543 @GetGlobalValue("Global:Server.Date.Year") 544 @Espresso.Area.Item.CompanyName. 545 </p> 546 </div> 547 </div> 548 </div> 549 </section> 550 </article> 551 </footer> 552 553 </div> 554 @using Dynamicweb.Admin.dk.dynamicweb.templates 555 @using Dynamicweb.Ecommerce.Products 556 <div class="e-cart-msg" id="js-e-cart-msg"> 557 <button class="close" data-dismiss="msg" type="button"> 558 <i class="material-icons">close</i> 559 </button> 560 <section class="e-section p-b-3 p-t-3"> 561 <div class="container-fluid"> 562 <div class="row"> 563 <div class="col-xs-12"> 564 <div class="js-e-cart-msg-content"> 565 <script id="js-handlebars-tmpl-cart-msg-content" type="text/x-handlebars-template"> 566 <div class="row"> 567 <div class="col-xs-12"> 568 <div class="e-cart-msg-last-added p-t-1"> 569 <div class="row"> 570 <div class="col-xs-12"> 571 572 <div class="row"> 573 <div class="col-xs-12"> 574 @if ( GetInteger( "Ecom:Order.OrderLines.TotalProductQuantity" ) > 1 ) 575 { 576 <h2 class="m-b-0">{{totalProductQuantity}} @Translate( "Quote requests in your basket", "Quote requests in your basket" )</h2> 577 } 578 else 579 { 580 <h2 class="m-b-0"><i class="material-icons text-success">check</i> {{lastAdded.quantity}} @Translate( "Quote request in your basket", "Quote request in your basket" )</h2> 581 } 582 </div> 583 </div> 584 585 <div class="row"> 586 <div class="col-xs-12 m-t-3"> 587 <div class=""> 588 <div class="row"> 589 <div class="col-xs-5 col-sm-7"> 590 <h3>@Translate( "Product", "Product" )</h3></div> 591 <div class="col-xs-4 col-sm-3"> 592 <h3>@Translate( "Product no.", "Product no." )</h3></div> 593 <div class="col-xs-3 col-sm-2 text-xs-center"> 594 <h3>@Translate( "QTY", "QTY" )</h3></div> 595 </div> 596 <hr class="m-t-1"> 597 598 <div class="js-e-cart-orderlines"> 599 {{#each orderlines}} 600 <div class="js-e-orderline e-orderline" id="{{id}}"> 601 <div class="row"> 602 <div class="col-xs-5 col-sm-7 e-orderline-product-text"> 603 <p class="m-b-0"> 604 <strong>{{{product.name}}}</strong> 605 </p> 606 </div> 607 <div class="col-xs-4 col-sm-3"> 608 {{{product.number}}} 609 </div> 610 <div class="col-xs-3 col-sm-2"> 611 <div class="row row-xs-center"> 612 <div class="col-xs-12"> 613 <input class="form-control text-xs-center js-e-orderline-quantity" type="number" value="{{quantity}}" name="QuantityOrderLine{{id}}" data-rule-min="0" data-rule-digits="true"> 614 </div> 615 </div> 616 </div> 617 </div> 618 <hr> 619 </div> 620 {{/each}} 621 </div> 622 </div> 623 </div> 624 </div> 625 </div> 626 </div> 627 </div> 628 </div> 629 </div> 630 </script> 631 </div> 632 <div class="col-xs-6 col-xs-offset-6 e-cart-actions m-b-1 text-xs-right"> 633 <div class="row"> 634 <div class="col-xs-6 hidden-sm-down m-b-1"> 635 <a class="btn btn-block btn-outline-success" href="javascript:history.back();">@Translate( "Continue shopping", "Continue shopping" )</a> 636 </div> 637 <div class="col-md-6 col-xs-12 m-b-1"> 638 <a class="btn btn-block btn-success" href="/quote/cart">@Translate( "Request Quote", "Request Quote" )</a> 639 </div> 640 </div> 641 </div> 642 </div> 643 </div> 644 </div> 645 </section> 646 </div> 647 @if( Espresso.Area.Item.Search == "True" ){ 648 <div class="modal fade e-search js-e-search js-e-search-modal modal-fullscreen" data-backdrop="false"> 649 <div class="modal-dialog"> 650 <div class="modal-content"> 651 <div class="modal-body"> 652 <button type="button" class="close" data-dismiss="modal"> 653 <i class="material-icons">close</i> 654 </button> 655 <div class="container-fluid"> 656 657 <div class="e-search-form-container"> 658 <div class="row"> 659 <div class="col-xs-12 col-md-10 col-lg-8 col-xl-6 col-md-offset-1 col-lg-offset-2 col-xl-offset-3 m-t-3"> 660 <form action="" class="e-search-form js-e-search-form"> 661 <div class="js-e-search-input-group e-search-input-group is-empty"> 662 <label class="e-search-label" for="e-search-input"><i class="material-icons">search</i></label> 663 @{ string Translate_Search_InputDefaultText = Translate("Search InputDefaultText", "Søgning"); } 664 <input type="text" class="js-e-search-input e-search-input form-control" name="q" id="e-search-input" placeholder="@Translate_Search_InputDefaultText"> 665 <span class="js-e-search-clear e-search-clear"><i class="material-icons">close</i></span> 666 <button class="e-search-submit btn btn-primary" type="submit"><i class="material-icons p-a-0">search</i></button> 667 </div> 668 </form> 669 </div> 670 </div> 671 </div> 672 673 <div class="js-e-search-result-container e-search-result-container"> 674 <div class="row"> 675 676 <div class="col-xs-12 col-md-10 col-lg-8 col-xl-6 col-md-offset-1 col-lg-offset-2 col-xl-offset-3"> 677 <p class="e-search-result-info small text-muted m-t-1 m-b-3"><span class="js-e-search-result-count">0</span> @Translate("Search ResultCountText", "resultater")</p> 678 </div> 679 680 <div class="col-xs-12 col-xl-10 col-xl-offset-1" style="z-index: 0;"> 681 <div class="js-e-search-result-products e-search-result-products is-empty m-b-4"> 682 <script id="js-handlebars-tmpl-search-result-item-product" type="text/x-handlebars-template"> 683 <div class="e-products"> 684 <ul class="e-grid"> 685 {{#loop products}} 686 <li class="col-xs-6 col-md-3 m-b-4"> 687 <div class="e-product-container"> 688 <div class="ambu-products-image-box"> 689 <a href="{{{url}}}"> 690 <img src="{{imageLarge}}" alt="{{primaryImageAltText}}"> 691 </a> 692 </div> 693 <div class="e-product-text-container text-xs-center"> 694 <h3 class="e-product-name m-b-0 m-t-2"><a href="{{{url}}}">{{name}}</a></h3> 695 <p class="e-product-text"> 696 <a href="{{{url}}}">{{descriptionShortExtra01}}</a> 697 </p> 698 </div> 699 </div> 700 </li> 701 {{/loop}} 702 </ul> 703 <p class="js-e-search-products-show-all text-xs-center"><a href="" class="btn btn-secondary p-x-6">@Translate("Search ViewAllProductsButtonText", "Vis alle produkter")</a></p> 704 </div> 705 </script> 706 </div> 707 </div> 708 709 <div class="col-xs-12 col-md-10 col-lg-8 col-xl-6 col-md-offset-1 col-lg-offset-2 col-xl-offset-3"> 710 <div class="js-e-search-result-pages e-search-result-pages is-empty m-b-3"> 711 <script id="js-handlebars-tmpl-search-result-item-page" type="text/x-handlebars-template"> 712 <div class="row"> 713 {{#loop pages}} 714 <div class="col-xs-12"> 715 <p class="m-b-0"><a href="{{{url}}}" class="text-bold">{{{title}}}</a></p> 716 <p class="m-b-0 small text-truncate"> 717 <a href="{{{url}}}" class="text-auto text-muted"><span class="hidden-xs-down">@GetGlobalValue( "Global:Request.Host" )</span>{{{url}}}</a></p> 718 <p class="small">{{{text}}}...</p> 719 </div> 720 {{/loop}} 721 </div> 722 </script> 723 </div> 724 </div> 725 726 </div> 727 728 <div class="js-e-search-loading-overlay e-loading-overlay e-search-loading-overlay"> 729 <div class="e-loading-spinner"></div> 730 </div> 731 732 </div> 733 734 </div> 735 </div> 736 </div> 737 </div> 738 </div> 739 } 740 741 @if( Espresso.Area.Item.BackToTopLink == "True" ){ 742 <a href="#top" class="e-back-to-top js-e-back-to-top"><i class="material-icons">keyboard_arrow_up</i></a> 743 } 744 745 @RenderingService.Instance.PartialView( "_partials/redirect.cshtml" ) 746 747 <script src="/Files/Templates/Designs/ambu/assets/_dist/js/default.js?v=3.073" async=""></script> 748 749 @{ 750 SidebarPopup sidebarPopupModel = new SidebarPopup() 751 { 752 SidebarPopupContent = Pageview.Area.Item.GetValue< string >( "SidebarPopupContent" ), 753 SidebarPopupButtonIcon = Pageview.Area.Item.GetValue< string >( "SidebarPopupButtonIcon" ), 754 SidebarPopupButtonText = Pageview.Area.Item.GetValue< string >( "SidebarPopupButtonText" ) 755 }; 756 } 757 758 @RenderingService.Instance.PartialView( "../_partials/ambu-sidebar-popup.cshtml", sidebarPopupModel ) 759 760 761 <div class="modal fade ambu-languages" id="ambu-languages" tabindex="-1" role="dialog" aria-hidden="true" data-backdrop="true"> 762 <button type="button" class="close" data-dismiss="modal" aria-label="Close"> 763 <span aria-hidden="true">&times;</span> 764 </button> 765 <div class="modal-dialog"> 766 <div class="modal-content"> 767 <section class="p-t-3 p-b-3"> 768 <div class="container-fluid"> 769 <div class="row"> 770 <div class="col-xs-12"> 771 <div class="row"> 772 <div class="col-xs-12 text-xs-center m-b-2"> 773 <img src="/Files/Images/worldmap.svg" class="col-xs-4 m-b-1"> 774 </div> 775 <div class="col-xs-12 col-md-10 col-md-offset-1"> 776 <p class="h2 text-xs-center">@Translate("Choose your country","Find your local Ambu website")</p> 777 <ul class="nav small"> 778 @GetValue("DwNavigation(dwnavambulanguages)") 779 </ul> 780 <p class="text-xs-center modal-text">@Translate("Choose your country additional text","Looking for a local Ambu representative in your country?<br><a href='/Default.aspx?Id=12845'>Go to our local distributors page</a>")</p> 781 </div> 782 </div> 783 </div> 784 </div> 785 </div> 786 </section> 787 </div> 788 </div> 789 </div> 790 791 <script type="text/javascript"> 792 window.dataLayer = window.dataLayer || []; 793 var regexname = 794 /^77\.243\.43\.128$|^194\.182\.2\.128$|^87\.128\.25\.218$|^212\.118\.223\.24$|^195\.77\.35\.160$|^80\.14\.131\.94$|^93\.51\.217\.48$|^78\.156\.74\.88$|^207\.10\.193\.160$|^71\.16\.198\.32$|^50\.203\.113\.0$|^202\.68\.175\.148$|^59\.60\.7\.48$|^118\.101\.192\.0$|^59\.167\.228\.249$|^59\.167\.228\.250$|^59\.60\.7\.48$|^87\.128\.25\.218$|^212\.118\.223\.24$|^212\.98\.112\.128$|^62\.82\.131\.0$|^80\.14\.131\.94$|^93\.51\.217\.48$|^121\.121\.43\.200$|^118\.101\.192\.2$|^77\.243\.43\.128$|^78\.156\.74\.88$|^207\.10\.193\.160$|^71\.16\.198\.32$|^50\.203\.113\.1$/; 795 var visitorIp = "@HttpContext.Current.Request.UserHostAddress"; 796 if (visitorIp.match(regexname)) { 797 window.dataLayer.push({ 798 'Ambu_Internal': 'true' //if IP address is belonging to ambu variable has value 'true' 799 }); 800 } else { 801 window.dataLayer.push({ 802 'Ambu_Internal': 'false' //if IP address is *NOT* belonging to ambu value is 'false' 803 }); 804 } 805 </script> 806 </body> 807 @GetValue("CopyRightNotice") 808 </html>