Error executing template "Designs/SF2019/_parsed/Page.parsed.cshtml"
System.NullReferenceException: Object reference not set to an instance of an object.
   at CompiledRazorTemplates.Dynamic.RazorEngine_272a651b9b0c406193a4e686af2d0cd8.Execute() in E:\dynamicweb.net\Solutions\Upsite\SilkeborgForsyningWebsite.net.dynamicweb.dk\Application\Files\Templates\Designs\SF2019\_parsed\Page.parsed.cshtml:line 96
   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 Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>> 2 @using Dynamicweb.Environment 3 4 @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>> 5 @using Newtonsoft.Json 6 @using System.Web 7 @using System.IO 8 @SnippetStart("RenderWarningIcon") 9 <span class="counter warning-counter"><text>0</text></span> 10 @SnippetEnd("RenderWarningIcon") 11 12 13 @functions{ 14 string Rot13(string value) { 15 var chars = value.ToCharArray(); 16 17 for (var i = 0; i < chars.Length; i++) { 18 var number = (int)chars[i]; 19 20 if (number >= 'a' && number <= 'z') { 21 if (number > 'm') { 22 number -= 13; 23 } else { 24 number += 13; 25 } 26 } else if (number >= 'A' && number <= 'Z') { 27 if (number > 'M') { 28 number -= 13; 29 } else { 30 number += 13; 31 } 32 } 33 chars[i] = (char)number; 34 } 35 return new string(chars); 36 } 37 } 38 39 @helper Rot13_Email(string email, string text = "") { 40 var tpl = new char[] { 41 '<', 'a', ' ', 'h', 'r', 'e', 'f', '=', '"', 'm', 'a', 'i', 'l', 't', 'o', ':', '#', '1', '"', ' ', 'r', 'e', 'l', '=', '"', 'n', 'o', 'f', 'o', 'l', 'l', 'o', 'w', '"', '>', '#', '2', '<', '/', 'a', '>' 42 }; 43 <span class="rot13Email">@Rot13(new string(tpl).Replace("#1", email).Replace("#2", string.IsNullOrWhiteSpace(text) ? email : text).Replace("[a]", "@"))</span> 44 } 45 46 @{ 47 string companyName = GetString("Item.Area.Company_Name"); 48 string companyAddress = GetString("Item.Area.Company_Address"); 49 string companyZipAndCity = GetString("Item.Area.Company_Postal") + " " + GetString("Item.Area.Company_City"); 50 string companyMail = GetString("Item.Area.Company_Email"); 51 string companyPhone = GetString("Item.Area.Company_Phone"); 52 string companyPhoneClean = companyPhone.Replace(" ", ""); 53 54 string companyLogo = GetString("Item.Area.Company_Logo"); 55 string companyLogoAlternative = GetString("Item.Area.Company_Logo_Alternative"); 56 57 string companyPhoneService = GetString("Item.Area.Company_Customer_Service"); 58 string companyPhoneServiceClean = companyPhoneService.Replace(" ", ""); 59 60 string companyPhoneWathSewage = GetString("Item.Area.Company_Watchphone_Sewage"); 61 string companyPhoneWathSewageClean = companyPhoneWathSewage.Replace(" ", ""); 62 63 string companyPhoneWathWater = GetString("Item.Area.Company_Watchphone_Water"); 64 string companyPhoneWathWaterClean = companyPhoneWathWater.Replace(" ", ""); 65 66 string Contact_Formular_Btn_Text = GetString("Item.Area.Contact_Formular_Btn_Text"); 67 68 string footerText = GetString("Item.Area.Footer_Text"); 69 string footerEkstraText = GetString("Item.Area.Footer_EkstraText"); 70 71 string googleAnalytics = GetString("Item.Area.Google_Analytics_Code"); 72 73 string topPageName = GetString("DwTopPageName"); 74 int topPageId = GetInteger("DwTopPageID"); 75 76 var pageService = Dynamicweb.Services.Pages; 77 var indexPage = Dynamicweb.Services.Pages.GetFirstPageForArea(Pageview.AreaID); 78 var topPage = Dynamicweb.Services.Pages.GetPage(GetInteger("DwTopPageID")); 79 80 string designBaseUrl = GetString("Template:DesignBaseUrl"); 81 string commentLogo = designBaseUrl + "img/Icons/icon-commenting.png"; 82 commentLogo = "/Admin/Public/GetImage.ashx?Image=" + commentLogo + "&Format=" + commentLogo.Substring(commentLogo.LastIndexOf(".")) + "&Width=" + 48 + "&Crop=6&DoNotUpscale=1"; 83 84 var bannerCookie = Dynamicweb.Environment.CookieManager.GetCookie("infobanner"); 85 86 87 int ServiceMenuID = GetInteger("Item.Area.Service_Menu_ID"); 88 int searchPageID = 4868; 89 var searchPage = Dynamicweb.Services.Pages.GetPageByNavigationTag(Pageview.AreaID, "searchresult"); 90 91 92 string device = Dynamicweb.Frontend.Devices.DeviceInfo.ParseFromUserAgentString(Dynamicweb.Context.Current.Request.UserAgent).DeviceType.ToString(); 93 bool isMobile = device == "Mobile"; 94 int image_full_width = isMobile || device == "Bot" ? 400 : device == "Tablet" ? 720 : 1140; 95 string pageTitle = GetString("Title"); 96 if (Pageview.Item.SystemName == "Waste_Place") { 97 pageTitle = GetString("Item.Text"); 98 if (pageTitle.IndexOf("(pil)") > 0) { 99 pageTitle = pageTitle.Substring(pageTitle.IndexOf("(pil)") + 6); 100 } 101 102 Dynamicweb.Frontend.PageView.Current().Meta.Title = pageTitle; 103 } 104 if (GetString("Item.SystemName") == "Page_News") { 105 pageTitle = "Nyhed - " + pageTitle; 106 Dynamicweb.Frontend.PageView.Current().Meta.Title = pageTitle; 107 } 108 109 // COOKIE-------------------------- - 110 IList<string> AllowedCookieCategories = new List<string>() { "Essential" }; 111 foreach (string s in CookieManager.GetCategories()) { 112 if (s == "Essential") { 113 continue; 114 } else if (CookieManager.CookieOptInLevelExists && (CookieManager.GetCookieOptInLevel() == CookieOptInLevel.All || (CookieManager.CookieOptInLevelExists && System.Web.HttpContext.Current.Request.Cookies.Get("Dynamicweb.CookieOptInLevel").Value.IndexOf(s) > -1))) { 115 AllowedCookieCategories.Add(s); 116 } 117 } 118 119 //var categories = Dynamicweb.Environment.CookieManager.GetCategories(); 120 string cookieChoiceId = "cookie-choice-renew"; 121 string cookieWarningClass = "custom-cookie"; 122 if (Dynamicweb.Environment.CookieManager.CookieOptInLevelExists) { 123 cookieWarningClass += " \" style=\"display:none\" tab-index=\"-1\" aria-hidden=\"true\""; 124 } else { 125 cookieChoiceId += "\" style=\"display:none;"; 126 } 127 var cookieSettingsPage = Dynamicweb.Services.Pages.GetPageByNavigationTag(Pageview.AreaID, "cookiesettings"); 128 129 //bool cookieActivated = cookieSettingsPage != null && cookieSettingsPage.Item["CookieActivated"] != null ? (bool)cookieSettingsPage.Item["CookieActivated"] : false; 130 bool cookieActivated = true; 131 132 // /COOKIE --------------------------- 133 } 134 135 @helper iconLink(string image_name, int size, string rel, string type = "") 136 { 137 string iconfileurl = GetString("Template:DesignBaseUrl") + "img/Icons/Fav/" + image_name + "-" + size + "x" + size + ".png"; 138 string iconLink = "/Admin/Public/GetImage.ashx?Image=" + iconfileurl + "&Format=" + iconfileurl.Substring(iconfileurl.LastIndexOf(".")) + "&Width=" + size + "&Crop=6&DoNotUpscale=1"; 139 if (!string.IsNullOrWhiteSpace(iconLink)) { 140 <link rel="@rel" sizes="@(size)x@(size)" href="@iconLink"> 141 } else { 142 <link rel="@rel" type="@type" sizes="@(size)x@(size)" href="@iconLink"> 143 } 144 } 145 <!DOCTYPE html> 146 <html lang="@Pageview.Area.CultureInfo.TwoLetterISOLanguageName"> 147 <head> 148 <meta charset="utf-8"> 149 <title>@GetValue("Title")</title> 150 @GetValue("MetaTags") 151 @GetValue("CopyRightNotice") 152 153 <meta http-equiv="X-UA-Compatible" content="IE=edge"> 154 <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> 155 <meta name="msapplication-TileColor" content="#ffffff"> 156 <meta name="msapplication-TileImage" content="/Admin/Public/GetImage.ashx?Image=@(designBaseUrl)img/Icons/Fav/ms-icon-144x144.png&Format=.png&Width=144&Crop=6&DoNotUpscale=1"> 157 <meta name="theme-color" content="#ffffff"> 158 <meta name="facebook-domain-verification" content="u5pkvaq9s1j7c8z4yt55ies6rlbq83"> 159 <meta name="google-site-verification" content="W5IayHAQaI_rbHR4gTAOV4Bqo2smwdjZRjXLCvndh5M"> 160 @RenderSnippet("OpenGraph") 161 @* FAV *@ 162 @*@iconLink("apple-icon", 57, "apple-touch-icon") 163 @iconLink("apple-icon", 60, "apple-touch-icon") 164 @iconLink("apple-icon", 72, "apple-touch-icon") 165 @iconLink("apple-icon", 76, "apple-touch-icon") 166 @iconLink("apple-icon", 114, "apple-touch-icon") 167 @iconLink("apple-icon", 120, "apple-touch-icon") 168 @iconLink("apple-icon", 144, "apple-touch-icon") 169 @iconLink("apple-icon", 152, "apple-touch-icon") 170 @iconLink("apple-icon", 180, "apple-touch-icon") 171 @iconLink("android-icon", 192, "icon", "image/png") 172 @iconLink("favicon", 32, "icon", "image/png") 173 @iconLink("favicon", 96, "icon", "image/png") 174 @iconLink("favicon", 16, "icon", "image/png") 175 <link rel="manifest" href="@(designBaseUrl)img/Icons/Fav/manifest.json">*@ 176 177 <link rel="icon" type="image/png" href="/Files/Templates/Designs/SF2019/\img\Icons\Fav/favicon-96x96.png" sizes="96x96"> 178 <link rel="icon" type="image/svg+xml" href="/Files/Templates/Designs/SF2019/\img\Icons\Fav/favicon.svg"> 179 <link rel="shortcut icon" href="/Files/Templates/Designs/SF2019/\img\Icons\Fav/favicon.ico"> 180 <link rel="apple-touch-icon" sizes="180x180" href="/Files/Templates/Designs/SF2019/\img\Icons\Fav/apple-touch-icon.png"> 181 <meta name="apple-mobile-web-app-title" content="Silkeborg Forsyning"> 182 <link rel="manifest" href="/Files/Templates/Designs/SF2019/\img\Icons\Fav/site.webmanifest"> 183 184 @if (!string.IsNullOrWhiteSpace(googleAnalytics) && AllowedCookieCategories.Contains("Statistical")) { 185 <!-- Google Tag Manager --> 186 <script> 187 (function (w, d, s, l, i) { 188 w[l] = w[l] || []; w[l].push({ 189 'gtm.start': new Date().getTime(), event: 'gtm.js' 190 }); 191 var f = d.getElementsByTagName(s)[0], j = d.createElement(s), dl = l != 'dataLayer' ? '&l=' + l : ''; j.async = true; 192 j.src = 'https://www.googletagmanager.com/gtm.js?id=' + i + dl; f.parentNode.insertBefore(j, f); 193 })(window, document, 'script', 'dataLayer', 'GTM-5T3TJQR');</script> 194 <!-- End Google Tag Manager --> 195 } 196 197 @*<link rel="stylesheet" href="@(designBaseUrl)assets/fontawesome-pro/css/fontawesome.min.css">*@ 198 <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.4/css/all.min.css" integrity="sha512-1ycn6IcaQQ40/MKBW2W4Rhis/DbILU74C1vSrLJxCq57o941Ym01SwNsOMqvEBFlcgUa6xLiPY/NS5R+E6ztJQ==" crossorigin="anonymous" referrerpolicy="no-referrer"> 199 200 <!-- BOOTSTRAP --> 201 <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.1/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-+0n0xVW2eSR5OomGNYDnhzAbDsOXxcvSN1TPprVMTNDbiYZCxYbOOl7+AMvyTG2x" crossorigin="anonymous"> 202 <link href="/Files/Templates/Designs/SF2019/assets/formvalidation/css/formValidation.min.css" rel="stylesheet"> 203 204 <!-- CUSTOM --> 205 <link href="@(designBaseUrl)css/simple-lightbox.min.css" rel="stylesheet"> 206 207 <link href="@(designBaseUrl)css/style.min.css?v=17062025" rel="stylesheet"> 208 209 <script src="https://code.jquery.com/jquery-3.2.1.min.js" integrity="sha256-hwg4gsxgFZhOsEEamdOYGBf13FyQuiTwlAQgxVSNgt4=" crossorigin="anonymous"></script> 210 211 <script defer="defer" src="@(designBaseUrl)assets/fontawesome-pro/js/all.min.js"></script> 212 213 @if (AllowedCookieCategories.Contains("Marketing")) { 214 <!-- Facebook Pixel Code --> 215 <script> 216 !function (f, b, e, v, n, t, s) { 217 if (f.fbq) return; n = f.fbq = function () { 218 n.callMethod ? 219 n.callMethod.apply(n, arguments) : n.queue.push(arguments) 220 }; 221 if (!f._fbq) f._fbq = n; n.push = n; n.loaded = !0; n.version = '2.0'; 222 n.queue = []; t = b.createElement(e); t.async = !0; 223 t.src = v; s = b.getElementsByTagName(e)[0]; 224 s.parentNode.insertBefore(t, s) 225 }(window, document, 'script', 226 'https://connect.facebook.net/en_US/fbevents.js'); 227 fbq('init', '1159581371178090'); 228 fbq('track', 'PageView'); 229 </script> 230 <noscript> 231 <img height="1" width="1" style="display:none" src="https://www.facebook.com/tr?id=1159581371178090&ev=PageView&noscript=1"> 232 </noscript> 233 <!-- End Facebook Pixel Code --> 234 } 235 236 @GetValue("Stylesheets") 237 @GetValue("Javascripts") 238 </head> 239 240 <body data-rootpage="@topPageName" data-rootpageid="@topPageId" class=""> 241 242 @{ 243 string skibText = "Spring hovednavigationen over"; 244 } 245 246 <a id="skip" class="sr-only sr-only-focusable" tabindex="0" href="/Default.aspx?ID=@(Pageview.ID)#content" title="@skibText" role="link">@skibText</a> 247 248 @* -- -- -- -- -- MOBILE NAV -- -- -- -- -- *@ 249 <div class="container-fluid d-lg-none"> 250 <div class="floatcontainer"> 251 <div class="inner"> 252 <button type="button" class="btn-open" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation"> 253 <div> 254 <div class="nav-icon"> 255 <div></div> 256 </div> 257 </div> 258 </button> 259 </div> 260 </div> 261 </div> 262 263 <div class="zeynep-overlay"></div> 264 265 <div class="zeynep d-lg-none" style="transform: translateX(-295px);"> 266 267 <div class="golden-buzz"> 268 @{ 269 string searchInputValue = "" + Dynamicweb.Context.Current.Request.QueryString.Get("Search"); 270 } 271 @if (searchPage != null) { 272 <div class="container"> 273 <div class="top-search"> 274 <div class="typeahead-wrapper"> 275 <div class="typeahead-input"> 276 <form method="get" action="/Default.aspx" role="search" onsubmit="searchSubmit(this)"> 277 <input type="hidden" name="Id" value="@searchPageID"> 278 279 <div class="input-group mb-3 search-field-wrapper"> 280 <input type="text" class="form-control" id="search-field" name="q" autocomplete="off" placeholder="Indtast søgeord" aria-label="Recipient's username" aria-describedby="search-btn" value=""> 281 <button class="btn btn-outline-secondary" type="submit" id="search-btn"> 282 <span class="sr-only sr-only-focusable">@Translate("Search")</span> 283 284 <span> 285 @Skabertrang.Helpers.Icons.Search 286 </span> 287 </button> 288 </div> 289 290 </form> 291 </div> 292 <div class="typeahead-menu tt-empty"></div> 293 </div> 294 </div> 295 </div> 296 } 297 298 </div> 299 300 <div class="main-nav"> 301 302 @RenderNavigation(new 303 { 304 startlevel = 1, 305 endlevel = 2, 306 template = "TopBarNav-Mobile.xslt", 307 expandmode = "All", 308 parentid = 0, 309 areaid = Pageview.AreaID, 310 includemode = "All" 311 }) 312 313 </div> 314 315 @* FOR LIVE: parentid = *@ 316 @* FOR LOCAL: parentid = 4807 *@ 317 @* FOR KVALITET: parentid = *@ 318 <div class="service-nav"> 319 320 @RenderNavigation(new 321 { 322 startlevel = 1, 323 endlevel = 99, // ÆNDRET TIL 99 fra 2, hvor det ikke fungere 324 template = "TopBarNav-Mobile.xslt", 325 expandmode = "All", 326 parentid = ServiceMenuID, 327 areaid = Pageview.AreaID, 328 includemode = "All", 329 }) 330 331 332 </div> 333 334 </div> 335 336 <div class="zeynep-overlay zeynep-overlay-under"></div> 337 @* -- -- -- -- -- /MOBILE NAV -- -- -- -- -- *@ 338 339 <header id="navSticky" class=""> 340 <div class="container d-none d-lg-block"> 341 <div class="row header-top"> 342 343 <div class="col-md-12"> 344 <nav class="service-menu navbar-default navbar-expand-md top-nav" aria-label="service menu"> 345 <div id="mymenu" class="collapse navbar-collapse w-100 mb-auto top-nav"> 346 @RenderNavigation(new 347 { 348 startlevel = 1, 349 endlevel = 99, 350 template = "TopBarNav.xslt", 351 expandmode = "All", 352 parentid = ServiceMenuID, 353 areaid = Pageview.AreaID, 354 includemode = "All" 355 }) 356 </div> 357 </nav> 358 </div> 359 360 </div> 361 </div> 362 363 <div class="container align-items-center justify-content-between"> 364 <div class="row"> 365 <div class="col-12 col-md-7 col-xl-8"> 366 <a href="/" class="logo" aria-label="Logo"> 367 368 <?xml version="1.0" encoding="UTF-8"?> 369 370 <svg id="Layer_2" xmlns="http://www.w3.org/2000/svg" viewbox="0 0 427.68 99.5" class="green-logo" width="270"> 371 <defs> 372 <style> 373 .green-logo .cls-1 { 374 fill: #003e32; 375 } 376 </style> 377 </defs> 378 <g id="Layer_1-2"> 379 <path class="cls-1" d="M42.5,88.44v-22.17c14.47,0,19.48-8.67,27.79-25.29C78.65,24.25,89.06,3.44,117.9,3.44v22.17c-14.47,0-19.48,8.67-27.79,25.29-8.36,16.73-18.77,37.54-47.61,37.54Z"></path> 380 <path class="cls-1" d="M117.9,88.44v-22.17c11.21,0,20.33-9.12,20.33-20.33h22.17c0,23.43-19.06,42.5-42.5,42.5Z"></path> 381 <path class="cls-1" d="M22.17,45.94H0C0,22.5,19.06,3.44,42.5,3.44v22.17c-11.21,0-20.33,9.12-20.33,20.33Z"></path> 382 <path class="cls-1" d="M207.51,39.06c-3.12,0-5.82-.53-8.11-1.59-2.29-1.06-4.07-2.54-5.32-4.46s-1.9-4.13-1.93-6.64l7.09.11c.14,2.01.96,3.64,2.45,4.89,1.49,1.26,3.47,1.88,5.94,1.88,2.08,0,3.78-.43,5.1-1.29s1.99-2.13,1.99-3.81c0-.89-.22-1.63-.65-2.2-.43-.57-1.07-1.05-1.91-1.42s-1.85-.7-3.04-.97-2.54-.55-4.08-.83c-1.54-.29-3.04-.65-4.49-1.1-1.45-.45-2.74-1.07-3.87-1.85-1.13-.79-2.02-1.81-2.69-3.06-.66-1.25-.99-2.83-.99-4.73,0-2.18.57-4.12,1.72-5.8,1.15-1.68,2.74-3,4.78-3.95,2.04-.95,4.44-1.42,7.2-1.42,2.94,0,5.47.48,7.6,1.45,2.13.97,3.79,2.33,4.97,4.08,1.18,1.76,1.81,3.81,1.88,6.18h-7.04c-.22-1.76-.97-3.17-2.26-4.24-1.29-1.08-3.01-1.61-5.16-1.61-1.9,0-3.47.4-4.7,1.21-1.24.81-1.85,2.01-1.85,3.63,0,.86.22,1.58.64,2.15.43.57,1.05,1.04,1.85,1.4.81.36,1.8.67,2.98.94,1.18.27,2.53.55,4.03.83,1.58.25,3.1.6,4.57,1.05,1.47.45,2.78,1.06,3.92,1.83s2.05,1.78,2.71,3.04c.66,1.25.99,2.81.99,4.67,0,2.29-.6,4.32-1.8,6.07s-2.87,3.13-5.02,4.11c-2.15.99-4.66,1.48-7.52,1.48Z"></path> 383 <path class="cls-1" d="M229.75,7.79c-1.11,0-2.05-.37-2.82-1.1-.77-.73-1.16-1.66-1.16-2.77s.39-2.09,1.16-2.82,1.71-1.1,2.82-1.1,2.05.37,2.82,1.1c.77.73,1.15,1.67,1.15,2.82s-.38,2.03-1.15,2.77c-.77.73-1.71,1.1-2.82,1.1ZM226.37,11.18h6.72v27.56h-6.72V11.18Z"></path> 384 <path class="cls-1" d="M238.56,1.13h6.72v18.8s0,18.81,0,18.81h-6.72v-18.81s0-18.8,0-18.8Z"></path> 385 <path class="cls-1" d="M250.71,1.13h6.72v22.57l11.6-12.52h7.68l-10.16,11.01,10.75,16.55h-7.79l-7.58-11.66-4.51,4.84v6.82h-6.72V1.13Z"></path> 386 <path class="cls-1" d="M291.65,39.06c-2.94,0-5.49-.58-7.66-1.75-2.17-1.16-3.83-2.8-5-4.92-1.16-2.11-1.75-4.57-1.75-7.36s.58-5.35,1.75-7.47c1.16-2.11,2.78-3.76,4.86-4.94,2.08-1.18,4.49-1.77,7.25-1.77s5.11.54,7.15,1.61c2.04,1.07,3.63,2.6,4.78,4.57,1.15,1.97,1.74,4.3,1.77,6.98,0,.39,0,.8-.03,1.21-.02.41-.06.81-.14,1.21h-20.36v.38c.07,1.43.39,2.68.97,3.73.57,1.06,1.39,1.87,2.44,2.44,1.06.57,2.28.86,3.68.86,1.61,0,2.98-.38,4.11-1.16,1.13-.77,1.89-1.85,2.28-3.25h6.61c-.29,1.79-.99,3.41-2.1,4.86-1.11,1.45-2.57,2.61-4.38,3.47-1.81.86-3.9,1.29-6.26,1.29ZM284.45,21.81h13.54c-.22-1.86-.93-3.3-2.15-4.3-1.22-1-2.78-1.5-4.67-1.5-1.11,0-2.16.24-3.14.73s-1.79,1.15-2.42,1.99c-.63.84-1.01,1.87-1.16,3.09Z"></path> 387 <path class="cls-1" d="M335.76,17.38c-1.11-2.09-2.63-3.71-4.57-4.83-1.93-1.13-4.16-1.69-6.66-1.69s-4.44.56-6.02,1.67c-1.01.71-1.86,1.53-2.58,2.44V1.13h-6.72v37.61h5.86l.72-3.91c.68.93,1.52,1.77,2.56,2.51,1.61,1.15,3.67,1.72,6.18,1.72s4.73-.59,6.66-1.77c1.93-1.18,3.46-2.83,4.57-4.94,1.11-2.11,1.67-4.58,1.67-7.42s-.56-5.45-1.67-7.55ZM329.69,29.39c-.61,1.29-1.47,2.3-2.58,3.04-1.11.73-2.42,1.1-3.92,1.1s-2.76-.37-3.87-1.1c-1.11-.73-1.97-1.75-2.58-3.04-.61-1.29-.91-2.78-.91-4.46s.3-3.16.91-4.43c.61-1.27,1.47-2.28,2.58-3.01,1.11-.73,2.4-1.1,3.87-1.1s2.81.37,3.92,1.1c1.11.73,1.97,1.74,2.58,3.01.61,1.27.91,2.77.91,4.49s-.3,3.12-.91,4.41Z"></path> 388 <path class="cls-1" d="M354.61,39.06c-2.87,0-5.37-.59-7.52-1.77-2.15-1.18-3.82-2.83-5.02-4.94-1.2-2.11-1.8-4.57-1.8-7.36s.6-5.3,1.8-7.41c1.2-2.11,2.87-3.76,5.02-4.94,2.15-1.18,4.66-1.77,7.52-1.77s5.36.59,7.5,1.77c2.13,1.18,3.8,2.83,5,4.94s1.8,4.58,1.8,7.41-.6,5.25-1.8,7.36-2.87,3.76-5,4.94c-2.13,1.18-4.63,1.77-7.5,1.77ZM354.61,33.53c1.54,0,2.86-.38,3.98-1.13,1.11-.75,1.97-1.76,2.58-3.04.61-1.27.91-2.73.91-4.38s-.31-3.16-.91-4.43c-.61-1.27-1.47-2.27-2.58-3.01-1.11-.73-2.44-1.1-3.98-1.1s-2.87.37-3.98,1.1c-1.11.73-1.97,1.74-2.58,3.01-.61,1.27-.91,2.75-.91,4.43s.3,3.11.91,4.38c.61,1.27,1.47,2.28,2.58,3.04,1.11.75,2.44,1.13,3.98,1.13Z"></path> 389 <path class="cls-1" d="M387.76,11.18c-1.79,0-3.26.27-4.41.81-1.15.54-2.06,1.24-2.74,2.12-.31.4-.6.83-.87,1.28l-.69-4.21h-6.02v27.56h6.72v-13.65c0-1.43.21-2.73.62-3.89.41-1.16,1.09-2.1,2.04-2.82.95-.72,2.23-1.07,3.84-1.07h2.79v-6.12h-1.29Z"></path> 390 <path class="cls-1" d="M411.4,11.18l-.66,4.09c-.71-1.02-1.57-1.93-2.62-2.69-1.61-1.18-3.67-1.77-6.18-1.77s-4.63.57-6.58,1.72c-1.95,1.15-3.49,2.77-4.62,4.86-1.13,2.1-1.69,4.56-1.69,7.39s.56,5.35,1.69,7.44c1.13,2.1,2.67,3.7,4.62,4.81,1.95,1.11,4.16,1.67,6.63,1.67s4.5-.55,6.1-1.64c1.03-.7,1.88-1.55,2.61-2.52v3.03c0,2.36-.65,4.13-1.93,5.29-1.29,1.16-3.1,1.75-5.43,1.75-1.9,0-3.43-.39-4.59-1.18-1.16-.79-1.91-1.9-2.23-3.33h-6.77c.14,2.08.78,3.84,1.91,5.29,1.13,1.45,2.65,2.55,4.57,3.3,1.92.75,4.13,1.13,6.63,1.13,3.44,0,6.21-.5,8.33-1.5,2.11-1,3.66-2.42,4.65-4.24s1.48-3.92,1.48-6.29V11.18h-5.91ZM407.24,32.18c-1.09.72-2.39,1.07-3.9,1.07s-2.81-.36-3.92-1.07c-1.11-.72-1.97-1.71-2.58-2.98-.61-1.27-.91-2.73-.91-4.38s.3-3.16.91-4.43c.61-1.27,1.47-2.27,2.58-2.98,1.11-.72,2.42-1.07,3.92-1.07s2.8.36,3.9,1.07c1.09.72,1.94,1.72,2.55,3.01.61,1.29.91,2.78.91,4.46s-.31,3.05-.91,4.33c-.61,1.27-1.46,2.27-2.55,2.98Z"></path> 391 <path class="cls-1" d="M193.65,50.83h24.45v6.23h-17.35v9.83h14.24v5.96h-14.24v15.58h-7.09v-37.61Z"></path> 392 <path class="cls-1" d="M232.33,88.76c-2.87,0-5.37-.59-7.52-1.77-2.15-1.18-3.82-2.83-5.02-4.94-1.2-2.11-1.8-4.57-1.8-7.36s.6-5.3,1.8-7.41c1.2-2.11,2.87-3.76,5.02-4.94,2.15-1.18,4.66-1.77,7.52-1.77s5.36.59,7.5,1.77c2.13,1.18,3.8,2.83,5,4.94s1.8,4.58,1.8,7.41-.6,5.25-1.8,7.36-2.87,3.76-5,4.94c-2.13,1.18-4.63,1.77-7.5,1.77ZM232.33,83.22c1.54,0,2.86-.38,3.98-1.13,1.11-.75,1.97-1.76,2.58-3.04.61-1.27.91-2.73.91-4.38s-.31-3.16-.91-4.43c-.61-1.27-1.47-2.27-2.58-3.01-1.11-.73-2.44-1.1-3.98-1.1s-2.87.37-3.98,1.1c-1.11.73-1.97,1.74-2.58,3.01-.61,1.27-.91,2.75-.91,4.43s.3,3.11.91,4.38c.61,1.27,1.47,2.28,2.58,3.04,1.11.75,2.44,1.13,3.98,1.13Z"></path> 393 <path class="cls-1" d="M265.48,60.87c-1.79,0-3.26.27-4.41.81-1.15.54-2.06,1.24-2.74,2.12-.31.4-.6.83-.87,1.28l-.69-4.21h-6.02v27.56h6.72v-13.65c0-1.43.21-2.73.62-3.89.41-1.16,1.09-2.1,2.04-2.82.95-.72,2.23-1.07,3.84-1.07h2.79v-6.12h-1.29Z"></path> 394 <path class="cls-1" d="M281.12,88.76c-3.76,0-6.82-.83-9.19-2.5-2.36-1.67-3.6-3.98-3.71-6.96h6.45c.11,1.32.72,2.41,1.83,3.25,1.11.84,2.67,1.26,4.67,1.26,1.11,0,2.08-.12,2.9-.38s1.47-.64,1.93-1.16c.46-.52.7-1.12.7-1.8,0-.86-.25-1.5-.75-1.91-.5-.41-1.24-.71-2.2-.89-.97-.18-2.17-.36-3.6-.54-1.61-.18-3.11-.43-4.49-.75-1.38-.32-2.58-.76-3.6-1.32-1.02-.55-1.83-1.3-2.42-2.23-.59-.93-.89-2.11-.89-3.55,0-1.79.49-3.35,1.48-4.67s2.35-2.35,4.08-3.06c1.74-.72,3.75-1.07,6.04-1.07,3.55.04,6.45.81,8.73,2.34,2.27,1.52,3.5,3.7,3.68,6.53h-6.5c-.11-1.18-.68-2.13-1.72-2.85-1.04-.72-2.38-1.07-4.03-1.07s-2.85.29-3.81.86c-.97.57-1.45,1.36-1.45,2.37,0,.79.26,1.37.78,1.75.52.38,1.27.64,2.26.81s2.14.33,3.47.51c2.08.22,3.99.57,5.75,1.08,1.75.5,3.15,1.31,4.19,2.42,1.04,1.11,1.56,2.7,1.56,4.78,0,1.76-.53,3.3-1.58,4.62-1.06,1.32-2.49,2.35-4.3,3.06-1.81.72-3.89,1.07-6.26,1.07Z"></path> 395 <path class="cls-1" d="M294.49,60.87h7.15l7.2,20.25,7.04-20.25h7.15l-12.36,31.7c-.57,1.5-1.15,2.74-1.72,3.71s-1.28,1.69-2.12,2.18-1.96.73-3.36.73h-6.82v-5.75h4.14c.72,0,1.28-.07,1.69-.22.41-.14.75-.4,1.02-.78.27-.38.53-.91.78-1.59l.91-2.26-10.69-27.72Z"></path> 396 <path class="cls-1" d="M350.48,65.71c-1-1.83-2.34-3.14-4-3.95-1.67-.81-3.52-1.21-5.56-1.21-2.62,0-4.67.55-6.15,1.64-.96.7-1.75,1.51-2.46,2.35l-.68-3.67h-5.86v27.56h6.72v-14.02c0-1.72.26-3.2.78-4.43.52-1.24,1.29-2.18,2.31-2.82,1.02-.65,2.23-.97,3.63-.97,2.08,0,3.62.64,4.62,1.91,1,1.27,1.5,3.16,1.5,5.67v14.67h6.66v-15.31c0-3.12-.5-5.59-1.5-7.41Z"></path> 397 <path class="cls-1" d="M360.42,57.49c-1.11,0-2.05-.37-2.82-1.1-.77-.73-1.16-1.66-1.16-2.77s.39-2.09,1.16-2.82,1.71-1.1,2.82-1.1,2.05.37,2.82,1.1c.77.73,1.15,1.67,1.15,2.82s-.38,2.03-1.15,2.77c-.77.73-1.71,1.1-2.82,1.1ZM357.03,60.87h6.72v27.56h-6.72v-27.56Z"></path> 398 <path class="cls-1" d="M393.94,65.71c-1-1.83-2.34-3.14-4-3.95-1.67-.81-3.52-1.21-5.56-1.21-2.62,0-4.67.55-6.15,1.64-.96.7-1.75,1.51-2.46,2.35l-.68-3.67h-5.86v27.56h6.72v-14.02c0-1.72.26-3.2.78-4.43.52-1.24,1.29-2.18,2.31-2.82,1.02-.65,2.23-.97,3.63-.97,2.08,0,3.62.64,4.62,1.91,1,1.27,1.5,3.16,1.5,5.67v14.67h6.66v-15.31c0-3.12-.5-5.59-1.5-7.41Z"></path> 399 <path class="cls-1" d="M421.77,60.87l-.66,4.09c-.71-1.02-1.57-1.93-2.62-2.69-1.61-1.18-3.67-1.77-6.18-1.77s-4.63.57-6.58,1.72c-1.95,1.15-3.49,2.77-4.62,4.86-1.13,2.1-1.69,4.56-1.69,7.39s.56,5.35,1.69,7.44c1.13,2.1,2.67,3.7,4.62,4.81,1.95,1.11,4.16,1.67,6.63,1.67s4.5-.55,6.1-1.64c1.03-.7,1.88-1.55,2.61-2.52v3.03c0,2.36-.65,4.13-1.93,5.29-1.29,1.16-3.1,1.75-5.43,1.75-1.9,0-3.43-.39-4.59-1.18-1.16-.79-1.91-1.9-2.23-3.33h-6.77c.14,2.08.78,3.84,1.91,5.29,1.13,1.45,2.65,2.55,4.57,3.3,1.92.75,4.13,1.13,6.63,1.13,3.44,0,6.21-.5,8.33-1.5,2.11-1,3.66-2.42,4.65-4.24s1.48-3.92,1.48-6.29v-26.6h-5.91ZM417.61,81.88c-1.09.72-2.39,1.07-3.9,1.07s-2.81-.36-3.92-1.07c-1.11-.72-1.97-1.71-2.58-2.98-.61-1.27-.91-2.73-.91-4.38s.3-3.16.91-4.43c.61-1.27,1.47-2.27,2.58-2.98,1.11-.72,2.42-1.07,3.92-1.07s2.8.36,3.9,1.07c1.09.72,1.94,1.72,2.55,3.01.61,1.29.91,2.78.91,4.46s-.31,3.05-.91,4.33c-.61,1.27-1.46,2.27-2.55,2.98Z"></path> 400 </g> 401 </svg> 402 403 </a> 404 </div> 405 406 <div class="col-12 col-md-5 col-xl-4 top-search-col d-none d-lg-block"> 407 <div class="top-search-wrapper w-100"> 408 <div class="top-search pull-right"> 409 <div class="typeahead-wrapper"> 410 <div class="typeahead-input"> 411 <form method="get" action="/Default.aspx" role="search" onsubmit="searchSubmit(this)"> 412 <input type="hidden" name="Id" value="@searchPageID"> 413 414 <div class="input-group mb-3 search-field-wrapper"> 415 <input type="text" class="form-control" id="search-field" name="q" autocomplete="off" placeholder="Indtast søgeord" aria-label="Recipient's username" aria-describedby="search-btn" value=""> 416 <button class="btn btn-outline-secondary" type="submit" id="search-btn"> 417 <span class="sr-only sr-only-focusable">@Translate("Søg")</span> 418 <span> 419 <svg class="search-icon-svg" xmlns="http://www.w3.org/2000/svg" width="17.751" height="17.755" viewbox="0 0 17.751 17.755"> 420 <path class="a" d="M22.042,20.963,17.106,15.98a7.035,7.035,0,1,0-1.068,1.082l4.9,4.951a.76.76,0,0,0,1.072.028A.765.765,0,0,0,22.042,20.963ZM11.577,17.122a5.555,5.555,0,1,1,3.929-1.627A5.521,5.521,0,0,1,11.577,17.122Z" transform="translate(-4.5 -4.493)"></path> 421 </svg> 422 </span> 423 </button> 424 </div> 425 426 </form> 427 </div> 428 <div class="typeahead-menu tt-empty"></div> 429 </div> 430 </div> 431 </div> 432 </div> 433 </div> 434 </div> 435 436 @{ 437 string alertHeadline = GetString("Item.Area.Alert_Headline"); 438 string alertText = GetString("Item.Area.Alert_Text"); 439 bool alertShown = GetBoolean("Item.Area.Alert_Shown"); 440 } 441 442 @if (alertShown && (!string.IsNullOrWhiteSpace(alertHeadline) || !string.IsNullOrWhiteSpace(alertText))) { 443 444 var alert_cookie = Dynamicweb.Environment.CookieManager.GetCookie("hidealert"); 445 446 if (alert_cookie == null || string.IsNullOrWhiteSpace(alert_cookie.Value)) { 447 string title = Translate("Luk"); 448 string ariaLabel = Translate("Luk advarsel"); 449 <div id="alert-box" class="jumbotron"> 450 <div class="container text-center"> 451 452 <i onclick="hideAlertBox()" class="fal fa-times-circle" aria-label="@ariaLabel" title="@title"></i> 453 454 @if (!string.IsNullOrWhiteSpace(alertHeadline)) { 455 <h1>@alertHeadline</h1> 456 } 457 @if (!string.IsNullOrWhiteSpace(alertText)) { 458 <text>@alertText</text> 459 } 460 </div> 461 </div> 462 } 463 464 } 465 466 </header> 467 468 <div id="main-nav" class="d-none d-lg-block"> 469 <div class="container"> 470 471 <nav class="navbar navbar-default main-nav CustomHidden"> 472 @{ 473 Dynamicweb.Content.Page selfservicePage = Dynamicweb.Services.Pages.GetPageByNavigationTag(Pageview.AreaID, "selfservicePage"); 474 475 int dataInpathSelfservicePage = selfservicePage != null && Pageview.ID == selfservicePage.ID ? 1 : 0; 476 } 477 <ul class="scroolNav ps-0"> 478 @foreach (Dynamicweb.Content.Page rootPage in pageService.GetRootPagesForArea(GetInteger("DwAreaID")).Where(x => x.Active && x != selfservicePage)) { 479 var childPages = pageService.GetPagesByParentID(rootPage.ID).Where(x => x.Active); 480 481 if (rootPage.ItemType != "Page_Root" || !rootPage.Active) { 482 continue; 483 } 484 485 string rootPageArea = (string)rootPage.Item["Site_Area"]; 486 487 string liClass = "nav-tab area-color-" + rootPageArea; 488 if (childPages.Any()) { 489 liClass += " hasChildren"; 490 } 491 492 int dataInpath = 0; 493 if (topPage.ID == rootPage.ID || topPage.MenuText == rootPage.MenuText) { 494 dataInpath = 1; 495 } 496 497 string rootPageIcon = (string)rootPage.Item["Site_Area"]; 498 string wrapperclass = "columnParent scroll-dropdown hidden d-none area-color-" + rootPageIcon; 499 500 <li class="@liClass" data-inpath="@dataInpath"> 501 <a href="@rootPage.GetPageHrefValue()"> 502 @rootPage.MenuText 503 504 @if (rootPageIcon == "warning_counter") { 505 506 @RenderSnippet("RenderWarningIcon") 507 508 } 509 </a> 510 511 @if (childPages.Any()) { 512 513 string rootPageInfoText = (string)rootPage.Item["Info_Text"]; 514 string iconClass = "icon icon-" + rootPageIcon; 515 516 <div class="@wrapperclass" data-root-page="@rootPage.ID"> 517 <div class="row pb-5"> 518 <div class="col-10"> 519 <ul class="column_2 ps-0"> 520 521 @foreach (var childPage in childPages) { 522 523 if (!childPage.Active) { 524 continue; 525 } 526 527 <li><a href="@childPage.GetPageHrefValue()">@childPage.MenuText</a></li> 528 } 529 </ul> 530 </div> 531 @if (!string.IsNullOrWhiteSpace(rootPageIcon)) { 532 <div class="col-2"> 533 534 <div class="d-flex h-100 nav-icon"> 535 @Skabertrang.Helpers.Icons.GetIcon(rootPageIcon) 536 </div> 537 538 </div> 539 } 540 541 </div> 542 543 @if (!string.IsNullOrWhiteSpace(rootPageInfoText)) { 544 545 string rootPageInfoLink = (string)rootPage.Item["Info_Link"]; 546 string rootPageInfoLinkText = (string)rootPage.Item["Info_Link_Text"]; 547 548 string rootpageinfotextclass = !string.IsNullOrWhiteSpace(rootPageInfoLink) ? "col-12 col-sm-6" : "col-12 col-cm-8"; 549 550 <div class="info"> 551 <a href="@rootPageInfoLink" class="row"> 552 553 <div class="@rootpageinfotextclass"> 554 @rootPageInfoText 555 </div> 556 @if (!string.IsNullOrWhiteSpace(rootPageInfoLink)) { 557 <div class="col-12 col-sm-6"> 558 <div class="d-flex h-100 pb-4"> 559 <span class="btn btn-primary ms-auto mt-auto"> 560 561 @if (!string.IsNullOrWhiteSpace(rootPageInfoLinkText)) { 562 @rootPageInfoLinkText 563 } else { 564 @Translate("Menu_Info_Button", "Læs mere") 565 566 } 567 568 </span> 569 </div> 570 </div> 571 } 572 </a> 573 </div> 574 } 575 </div> 576 } 577 </li> 578 } 579 </ul> 580 581 @if (selfservicePage != null) { 582 <ul class="scroolNav ps-0" id="right-nav"> 583 <li class="area-color-customer_service nav-tab" data-inpath="@dataInpathSelfservicePage"> 584 <a href="/Default.aspx?ID=@selfservicePage.ID" class="btn btn-primary"> 585 @selfservicePage.MenuText 586 </a> 587 </li> 588 589 </ul> 590 } 591 592 </nav> 593 </div> 594 </div> 595 596 <main> 597 598 @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>> 599 @using Dynamicweb.Core.Helpers 600 601 602 @SnippetStart("sidebar") 603 @GetValue("DwContent(contentsidebar)") 604 @SnippetEnd("sidebar") 605 606 @{ 607 string page_banner = GetString("Item.Banner_Image"); 608 string page_banner_alt = GetString("Item.Banner_Image_Alt"); 609 string page_banner_title = GetString("Item.Banner_Image_Title"); 610 string page_text = GetString("Item.Text"); 611 string page_heading = GetString("Item.Heading"); 612 //var indexPage = pageService.GetFirstPageForArea(Pageview.AreaID); 613 //var topPage = pageService.GetPage(GetInteger("DwTopPageID")); 614 615 var selfservice_list = GetLoop("Item.SelfService_List.Options"); 616 bool page_show_latest_news = GetBoolean("Item.Show_Latest_News"); 617 618 string page_area = GetString("Item.Site_Area"); 619 if (string.IsNullOrEmpty(page_area) && topPage != null && !topPage.IsFolder && topPage.Item["Site_Area"] != null) { 620 page_area = (string)topPage.Item["Site_Area"]; 621 } 622 623 Dictionary<Dynamicweb.Content.Page, System.Collections.Generic.IEnumerable<Dynamicweb.Content.Page>> menuPages = new Dictionary<Dynamicweb.Content.Page, System.Collections.Generic.IEnumerable<Dynamicweb.Content.Page>>(); 624 625 // LLA --------------------------- 626 string colClass = "col-md-8"; 627 bool rightCol = false; 628 string selfserviceList = GetString("Item.SelfService_List"); 629 string sidebar = GetString("DwContent(contentsidebar)"); 630 int pageID = GetInteger("DwPageID"); 631 632 if (!string.IsNullOrWhiteSpace(selfserviceList) || page_show_latest_news || !string.IsNullOrWhiteSpace(sidebar)) { 633 rightCol = true; 634 } 635 // Selvbetjening - 4819 636 // Nyheder - 4813 637 if (pageID == 4819 || pageID == 4813) { 638 colClass = "col-md-12"; 639 640 } else if (!rightCol) { 641 //colClass = "col-md-12"; 642 colClass = "col-md-8"; 643 } 644 645 // DELETE FOLLOWING ----------------- 646 bool isLocalSpecialIndex = Dynamicweb.Context.Current.Request.Url.GetLeftPart(UriPartial.Authority).IndexOf("https://localhost:") == 0; 647 bool isLocalIndex = isLocalSpecialIndex || Dynamicweb.Context.Current.Request.Url.GetLeftPart(UriPartial.Authority) == "http://silkeborgforsyning.local.dynamicweb.dk"; 648 649 } 650 651 @SnippetStart("OpenGraph") 652 @{ 653 // Opengraph ------------------------ 654 string openGraphDomain = Dynamicweb.Context.Current.Request.Url.Scheme + "://" + Dynamicweb.Context.Current.Request.Url.Host; 655 656 string openGraphDescription = page_text; 657 658 var openGraphImage = page_banner; 659 660 string openGraphImageAlt = page_banner_alt; 661 662 string facebookAppId = GetString("Item.SoMeFacebookAppID"); 663 664 // Opengraph end -------------------- 665 } 666 667 <!-- OpenGraph --> 668 <meta property="og:url" content="@Pageview.SearchFriendlyUrl"> 669 <meta property="og:type" content="website"> 670 <meta property="og:title" content="@page_heading"> 671 @if (!string.IsNullOrWhiteSpace(facebookAppId)) { 672 <meta property="fb:app_id" content="@facebookAppId"> 673 } 674 @if (!string.IsNullOrWhiteSpace(openGraphDescription)) { 675 string stripDescription = StringHelper.StripHtml(openGraphDescription); 676 if (stripDescription.Length > 200) { 677 stripDescription = HttpUtility.HtmlDecode(stripDescription.Substring(0, 200)); 678 } else { 679 stripDescription = HttpUtility.HtmlDecode(stripDescription); 680 } 681 682 <meta property="og:description" content="@HttpUtility.HtmlDecode(stripDescription)"> 683 } 684 685 @if (openGraphImage != null) { 686 <meta name="image" property="og:image" content="@(openGraphDomain + openGraphImage)"> 687 if (!string.IsNullOrWhiteSpace(openGraphImageAlt)) { 688 <meta property="og:image:alt" content="@openGraphImageAlt"> 689 } 690 } 691 <meta property="og:site_name" content='@Pageview.Area.Name'> 692 693 <!-- OpenGraph end --> 694 695 @SnippetEnd("OpenGraph") 696 697 <div class="container-fluid g-0"> 698 699 700 @if (!string.IsNullOrWhiteSpace(page_banner)) { 701 page_banner = "/Admin/Public/GetImage.ashx?Image=" + page_banner + "&Format=webp&Quality=85&Width=1920&Height=260&Crop=7&DoNotUpscale=false"; 702 703 <div class="img-cover-bg"> 704 <img src="@page_banner" class="img-fluid w-100" alt="@page_banner_alt" title="@page_banner_title"> 705 </div> 706 } 707 708 </div> 709 710 <div class="container mb-5 mt-3"> 711 <div class="row"> 712 713 <div class="col-md-12"> 714 <div class="row"> 715 <div class="col-12"> 716 <nav class="mb-4" aria-label="breadcrumb"> 717 718 @RenderNavigation(new { 719 startlevel = 1, 720 endlevel = 99, 721 template = "Breadcrumb.xslt", 722 expandmode = "All", 723 parentid = 0, 724 areaid = Pageview.AreaID, 725 includemode = "All", 726 _pageFirstId = indexPage.ID, 727 _pageFirstTitle = (string)indexPage.Item["Title"] 728 }) 729 </nav> 730 </div> 731 732 <div class="@colClass"> 733 734 <div id="content" class="page"> 735 736 <section class="row"> 737 @if (!string.IsNullOrWhiteSpace(page_heading) || !string.IsNullOrWhiteSpace(page_text)) { 738 <article class="col-md-12 editor"> 739 @if (!string.IsNullOrWhiteSpace(page_heading)) { 740 <h1>@page_heading</h1> 741 } 742 @if (!string.IsNullOrWhiteSpace(page_text)) { 743 @page_text 744 } 745 </article> 746 } 747 748 @GetValue("DwContent(contentarea)") 749 750 </section> 751 </div> 752 </div> 753 754 @if (rightCol) { 755 <aside class="col-md-4 custom-left-side"> 756 757 <!-- SUB MENU --> 758 759 760 761 762 @if (!string.IsNullOrWhiteSpace(GetString("Item.SelfService_List"))) { 763 764 <div class="box-container layout-grey p-4 mb-4 sub-menu hidden-sm hidden-xs"> 765 <div class="flex-item-top"> 766 <h3>@Translate("Genveje til selvbetjening")</h3> 767 <ul> 768 @foreach (var s in selfservice_list.Where(o => o.GetBoolean("Item.SelfService_List.Option.IsSelected"))) { 769 Dynamicweb.Content.Page selfServicePage = pageService.GetPageForItem("Page_SelfService", s.GetString("Item.SelfService_List.Option.Value")); 770 if (selfServicePage.Active) { 771 string selfServicePageLink = "/Default.aspx?ID=" + selfServicePage.ID; 772 <li><a href="@selfServicePageLink">@s.GetString("Item.SelfService_List.Option.Label")</a></li> 773 } 774 775 } 776 </ul> 777 </div> 778 779 <div class="flex-item-bottom"> 780 781 @Skabertrang.Helpers.Icons.GetIcon("customerservice") 782 @*<i class="icon icon-customer_service"></i>*@ 783 784 </div> 785 </div> 786 787 } 788 789 <!-- LATEST NEWS FOR AREA --> 790 @if (page_show_latest_news) { 791 DateTime now = DateTime.Now; 792 793 //pageService.GetPagesForItems( new List<string>() { "Page_News" }); 794 foreach (var i in Dynamicweb.Services.Pages.GetPagesForItems(new List<string>() { "Page_News" }) 795 .Where(x => x.Active && x.Item["Site_Area"] != null && ((string)x.Item["Site_Area"]).IndexOf(page_area) > -1 796 && x.Item["Publishing_Date_Start"] != null 797 && ((DateTime)x.Item["Publishing_Date_Start"] < now 798 && (x.Item["Unpublishing_Date_Start"] == null || (DateTime)x.Item["Unpublishing_Date_Start"] > now))) 799 .OrderByDescending(x => x.Item["Is_Pinned"]).ThenByDescending(x => x.Item["Publishing_Date_Start"])) { 800 801 string list_image = ""+ i.Item["Preview_Image"]; 802 string list_image_title = "" + i.Item["Preview_Image_Title"]; 803 string list_image_alt = "" + i.Item["Preview_Image_ALt"]; 804 string list_text = ""+ i.Item["Preview_Text"]; 805 806 <a href="/Default.aspx?ID=@i.ID" class="box-container layout-grey d-block p-4 mb-4"> 807 <div class="mb-5"> 808 @if (!string.IsNullOrWhiteSpace(list_image)) { 809 <img src="@list_image" class="img-fluid w-100" alt="@list_image_alt" title="@list_image_title"> 810 } 811 <h3 class="mt-4"> 812 @i.MenuText 813 </h3> 814 @list_text 815 </div> 816 817 <div class="row"> 818 <div class="col-md-7 col-sm-6"> 819 @if (i.Item["Site_Area"] != null) { 820 foreach (string t in ((string)i.Item["Site_Area"]).Split(',')) { 821 @*<i class="icon icon-@t"></i>*@ 822 @Skabertrang.Helpers.Icons.GetIcon(t) 823 } 824 } 825 </div> 826 <div class="col-md-5 col-sm-6 col-xs-8 text-end"> 827 <span type="button" class="btn btn-primary">@Translate("News_Spot_Button", "Læs mere")</span> 828 </div> 829 </div> 830 </a> 831 break; 832 } 833 } 834 835 <div class="row box-row"> 836 @RenderSnippet("sidebar") 837 </div> 838 839 </aside> 840 } 841 842 </div> 843 </div> 844 845 </div> 846 </div> 847 848 @SnippetStart("PageJs") 849 <script> 850 function goBack() { 851 window.history.back(); 852 } 853 854 $(document).ready(function () { 855 $('#nav-container').on({ 856 focusout: function (e) { 857 $(this).data('submenuTimer', setTimeout(function () { 858 $(".nav-tabs > a.hasChildren.active").removeClass('active'); 859 $('#nav-container').find(".nav-dropdown").addClass('hidden'); 860 }.bind(this), 0)); 861 }, 862 focusin: function (e) { 863 clearTimeout($(this).data('submenuTimer')); 864 }, 865 keydown: function (e) { 866 if (e.which === 27) { 867 $(".nav-tabs > a.hasChildren.active").removeClass('active'); 868 $('#nav-container').find(".nav-dropdown").addClass('hidden'); 869 e.preventDefault(); 870 } 871 } 872 }); 873 }); 874 $(".nav-tabs > a.hasChildren").click(function (evt) { 875 evt.preventDefault(); 876 $(this).siblings().removeClass('active'); 877 $(this).toggleClass('active'); 878 879 var currentRootPageId = $(this).attr('data-root-page'); 880 var parentRow = $(this).closest('#nav-container'); 881 $('#nav-container').find(".nav-dropdown[data-root-page='" + currentRootPageId + "']").toggleClass('hidden'); 882 $('#nav-container').find(".nav-dropdown[data-root-page!='" + currentRootPageId + "']").addClass('hidden'); 883 }); 884 885 $(".scroolNav > li.hasChildren > a").click(function (evt) { 886 887 evt.preventDefault(); 888 889 var $parentLi = $(this).parent('li'); 890 var $parentLiSiblings = $parentLi.siblings(); 891 892 $parentLiSiblings.removeClass('active'); 893 $parentLiSiblings.find(".scroll-dropdown").addClass('hidden'); 894 895 $parentLi.toggleClass('active'); 896 $parentLi.find(".scroll-dropdown").toggleClass('hidden'); 897 }); 898 899 // STICKY MENU 900 $(window).scroll(function () { 901 if ($(this).scrollTop() > 650) { 902 903 $('.scroll').removeClass('CustomHidden'); 904 $('.scroll').addClass('show'); 905 } else { 906 $('.scroll').addClass('CustomHidden'); 907 $('.scroll').removeClass('show'); 908 $('.scroll-dropdown').addClass('hidden'); 909 $('.scroolNav > li.active').removeClass('active'); 910 } 911 }); 912 913 //$(".nav-tabs > a").mouseenter(function () { 914 // $(this).siblings().removeClass('active'); 915 // $(this).addClass('active'); 916 917 918 // var currentRootPageId = $(this).attr('data-root-page'); 919 // var parentRow = $(this).closest('#nav-container'); 920 // $('#nav-container').find(".nav-dropdown[data-root-page='" + currentRootPageId + "']").removeClass('hidden'); 921 // $('#nav-container').find(".nav-dropdown[data-root-page!='" + currentRootPageId + "']").addClass('hidden'); 922 //}); 923 //$("#nav-container").mouseleave(function () { 924 // $(".nav-tabs > a").removeClass('active'); 925 // $('#nav-container .nav-dropdown').addClass('hidden'); 926 //}); 927 928 (function () { 929 $('a').click(function (e) { e.stopPropagation(); }) 930 }).on('click', 'a', function (e) { e.stopPropagation(); }) 931 </script> 932 <!-- https://stackoverflow.com/questions/18325779/bootstrap-3-collapse-show-state-with-chevron-icon --> 933 @SnippetEnd("PageJs") 934 935 936 </main> 937 938 <footer id="footer" class="layout-dark-blue"> 939 <div class="container"> 940 <div class="row"> 941 <div class="col-md-12 mb-5"> 942 943 <?xml version="1.0" encoding="UTF-8"?> 944 945 <svg id="Layer_2" xmlns="http://www.w3.org/2000/svg" viewbox="0 0 427.68 99.5" class="light-green-logo" width="270"> 946 <defs> 947 <style> 948 .light-green-logo .cls-1 { 949 fill: #bbe6bf; 950 } 951 </style> 952 </defs> 953 <g id="Layer_1-2"> 954 <path class="cls-1" d="M42.5,88.44v-22.17c14.47,0,19.48-8.67,27.79-25.29C78.65,24.25,89.06,3.44,117.9,3.44v22.17c-14.47,0-19.48,8.67-27.79,25.29-8.36,16.73-18.77,37.54-47.61,37.54Z"></path> 955 <path class="cls-1" d="M117.9,88.44v-22.17c11.21,0,20.33-9.12,20.33-20.33h22.17c0,23.43-19.06,42.5-42.5,42.5Z"></path> 956 <path class="cls-1" d="M22.17,45.94H0C0,22.5,19.06,3.44,42.5,3.44v22.17c-11.21,0-20.33,9.12-20.33,20.33Z"></path> 957 <path class="cls-1" d="M207.51,39.06c-3.12,0-5.82-.53-8.11-1.59-2.29-1.06-4.07-2.54-5.32-4.46s-1.9-4.13-1.93-6.64l7.09.11c.14,2.01.96,3.64,2.45,4.89,1.49,1.26,3.47,1.88,5.94,1.88,2.08,0,3.78-.43,5.1-1.29s1.99-2.13,1.99-3.81c0-.89-.22-1.63-.65-2.2-.43-.57-1.07-1.05-1.91-1.42s-1.85-.7-3.04-.97-2.54-.55-4.08-.83c-1.54-.29-3.04-.65-4.49-1.1-1.45-.45-2.74-1.07-3.87-1.85-1.13-.79-2.02-1.81-2.69-3.06-.66-1.25-.99-2.83-.99-4.73,0-2.18.57-4.12,1.72-5.8,1.15-1.68,2.74-3,4.78-3.95,2.04-.95,4.44-1.42,7.2-1.42,2.94,0,5.47.48,7.6,1.45,2.13.97,3.79,2.33,4.97,4.08,1.18,1.76,1.81,3.81,1.88,6.18h-7.04c-.22-1.76-.97-3.17-2.26-4.24-1.29-1.08-3.01-1.61-5.16-1.61-1.9,0-3.47.4-4.7,1.21-1.24.81-1.85,2.01-1.85,3.63,0,.86.22,1.58.64,2.15.43.57,1.05,1.04,1.85,1.4.81.36,1.8.67,2.98.94,1.18.27,2.53.55,4.03.83,1.58.25,3.1.6,4.57,1.05,1.47.45,2.78,1.06,3.92,1.83s2.05,1.78,2.71,3.04c.66,1.25.99,2.81.99,4.67,0,2.29-.6,4.32-1.8,6.07s-2.87,3.13-5.02,4.11c-2.15.99-4.66,1.48-7.52,1.48Z"></path> 958 <path class="cls-1" d="M229.75,7.79c-1.11,0-2.05-.37-2.82-1.1-.77-.73-1.16-1.66-1.16-2.77s.39-2.09,1.16-2.82,1.71-1.1,2.82-1.1,2.05.37,2.82,1.1c.77.73,1.15,1.67,1.15,2.82s-.38,2.03-1.15,2.77c-.77.73-1.71,1.1-2.82,1.1ZM226.37,11.18h6.72v27.56h-6.72V11.18Z"></path> 959 <path class="cls-1" d="M238.56,1.13h6.72v18.8s0,18.81,0,18.81h-6.72v-18.81s0-18.8,0-18.8Z"></path> 960 <path class="cls-1" d="M250.71,1.13h6.72v22.57l11.6-12.52h7.68l-10.16,11.01,10.75,16.55h-7.79l-7.58-11.66-4.51,4.84v6.82h-6.72V1.13Z"></path> 961 <path class="cls-1" d="M291.65,39.06c-2.94,0-5.49-.58-7.66-1.75-2.17-1.16-3.83-2.8-5-4.92-1.16-2.11-1.75-4.57-1.75-7.36s.58-5.35,1.75-7.47c1.16-2.11,2.78-3.76,4.86-4.94,2.08-1.18,4.49-1.77,7.25-1.77s5.11.54,7.15,1.61c2.04,1.07,3.63,2.6,4.78,4.57,1.15,1.97,1.74,4.3,1.77,6.98,0,.39,0,.8-.03,1.21-.02.41-.06.81-.14,1.21h-20.36v.38c.07,1.43.39,2.68.97,3.73.57,1.06,1.39,1.87,2.44,2.44,1.06.57,2.28.86,3.68.86,1.61,0,2.98-.38,4.11-1.16,1.13-.77,1.89-1.85,2.28-3.25h6.61c-.29,1.79-.99,3.41-2.1,4.86-1.11,1.45-2.57,2.61-4.38,3.47-1.81.86-3.9,1.29-6.26,1.29ZM284.45,21.81h13.54c-.22-1.86-.93-3.3-2.15-4.3-1.22-1-2.78-1.5-4.67-1.5-1.11,0-2.16.24-3.14.73s-1.79,1.15-2.42,1.99c-.63.84-1.01,1.87-1.16,3.09Z"></path> 962 <path class="cls-1" d="M335.76,17.38c-1.11-2.09-2.63-3.71-4.57-4.83-1.93-1.13-4.16-1.69-6.66-1.69s-4.44.56-6.02,1.67c-1.01.71-1.86,1.53-2.58,2.44V1.13h-6.72v37.61h5.86l.72-3.91c.68.93,1.52,1.77,2.56,2.51,1.61,1.15,3.67,1.72,6.18,1.72s4.73-.59,6.66-1.77c1.93-1.18,3.46-2.83,4.57-4.94,1.11-2.11,1.67-4.58,1.67-7.42s-.56-5.45-1.67-7.55ZM329.69,29.39c-.61,1.29-1.47,2.3-2.58,3.04-1.11.73-2.42,1.1-3.92,1.1s-2.76-.37-3.87-1.1c-1.11-.73-1.97-1.75-2.58-3.04-.61-1.29-.91-2.78-.91-4.46s.3-3.16.91-4.43c.61-1.27,1.47-2.28,2.58-3.01,1.11-.73,2.4-1.1,3.87-1.1s2.81.37,3.92,1.1c1.11.73,1.97,1.74,2.58,3.01.61,1.27.91,2.77.91,4.49s-.3,3.12-.91,4.41Z"></path> 963 <path class="cls-1" d="M354.61,39.06c-2.87,0-5.37-.59-7.52-1.77-2.15-1.18-3.82-2.83-5.02-4.94-1.2-2.11-1.8-4.57-1.8-7.36s.6-5.3,1.8-7.41c1.2-2.11,2.87-3.76,5.02-4.94,2.15-1.18,4.66-1.77,7.52-1.77s5.36.59,7.5,1.77c2.13,1.18,3.8,2.83,5,4.94s1.8,4.58,1.8,7.41-.6,5.25-1.8,7.36-2.87,3.76-5,4.94c-2.13,1.18-4.63,1.77-7.5,1.77ZM354.61,33.53c1.54,0,2.86-.38,3.98-1.13,1.11-.75,1.97-1.76,2.58-3.04.61-1.27.91-2.73.91-4.38s-.31-3.16-.91-4.43c-.61-1.27-1.47-2.27-2.58-3.01-1.11-.73-2.44-1.1-3.98-1.1s-2.87.37-3.98,1.1c-1.11.73-1.97,1.74-2.58,3.01-.61,1.27-.91,2.75-.91,4.43s.3,3.11.91,4.38c.61,1.27,1.47,2.28,2.58,3.04,1.11.75,2.44,1.13,3.98,1.13Z"></path> 964 <path class="cls-1" d="M387.76,11.18c-1.79,0-3.26.27-4.41.81-1.15.54-2.06,1.24-2.74,2.12-.31.4-.6.83-.87,1.28l-.69-4.21h-6.02v27.56h6.72v-13.65c0-1.43.21-2.73.62-3.89.41-1.16,1.09-2.1,2.04-2.82.95-.72,2.23-1.07,3.84-1.07h2.79v-6.12h-1.29Z"></path> 965 <path class="cls-1" d="M411.4,11.18l-.66,4.09c-.71-1.02-1.57-1.93-2.62-2.69-1.61-1.18-3.67-1.77-6.18-1.77s-4.63.57-6.58,1.72c-1.95,1.15-3.49,2.77-4.62,4.86-1.13,2.1-1.69,4.56-1.69,7.39s.56,5.35,1.69,7.44c1.13,2.1,2.67,3.7,4.62,4.81,1.95,1.11,4.16,1.67,6.63,1.67s4.5-.55,6.1-1.64c1.03-.7,1.88-1.55,2.61-2.52v3.03c0,2.36-.65,4.13-1.93,5.29-1.29,1.16-3.1,1.75-5.43,1.75-1.9,0-3.43-.39-4.59-1.18-1.16-.79-1.91-1.9-2.23-3.33h-6.77c.14,2.08.78,3.84,1.91,5.29,1.13,1.45,2.65,2.55,4.57,3.3,1.92.75,4.13,1.13,6.63,1.13,3.44,0,6.21-.5,8.33-1.5,2.11-1,3.66-2.42,4.65-4.24s1.48-3.92,1.48-6.29V11.18h-5.91ZM407.24,32.18c-1.09.72-2.39,1.07-3.9,1.07s-2.81-.36-3.92-1.07c-1.11-.72-1.97-1.71-2.58-2.98-.61-1.27-.91-2.73-.91-4.38s.3-3.16.91-4.43c.61-1.27,1.47-2.27,2.58-2.98,1.11-.72,2.42-1.07,3.92-1.07s2.8.36,3.9,1.07c1.09.72,1.94,1.72,2.55,3.01.61,1.29.91,2.78.91,4.46s-.31,3.05-.91,4.33c-.61,1.27-1.46,2.27-2.55,2.98Z"></path> 966 <path class="cls-1" d="M193.65,50.83h24.45v6.23h-17.35v9.83h14.24v5.96h-14.24v15.58h-7.09v-37.61Z"></path> 967 <path class="cls-1" d="M232.33,88.76c-2.87,0-5.37-.59-7.52-1.77-2.15-1.18-3.82-2.83-5.02-4.94-1.2-2.11-1.8-4.57-1.8-7.36s.6-5.3,1.8-7.41c1.2-2.11,2.87-3.76,5.02-4.94,2.15-1.18,4.66-1.77,7.52-1.77s5.36.59,7.5,1.77c2.13,1.18,3.8,2.83,5,4.94s1.8,4.58,1.8,7.41-.6,5.25-1.8,7.36-2.87,3.76-5,4.94c-2.13,1.18-4.63,1.77-7.5,1.77ZM232.33,83.22c1.54,0,2.86-.38,3.98-1.13,1.11-.75,1.97-1.76,2.58-3.04.61-1.27.91-2.73.91-4.38s-.31-3.16-.91-4.43c-.61-1.27-1.47-2.27-2.58-3.01-1.11-.73-2.44-1.1-3.98-1.1s-2.87.37-3.98,1.1c-1.11.73-1.97,1.74-2.58,3.01-.61,1.27-.91,2.75-.91,4.43s.3,3.11.91,4.38c.61,1.27,1.47,2.28,2.58,3.04,1.11.75,2.44,1.13,3.98,1.13Z"></path> 968 <path class="cls-1" d="M265.48,60.87c-1.79,0-3.26.27-4.41.81-1.15.54-2.06,1.24-2.74,2.12-.31.4-.6.83-.87,1.28l-.69-4.21h-6.02v27.56h6.72v-13.65c0-1.43.21-2.73.62-3.89.41-1.16,1.09-2.1,2.04-2.82.95-.72,2.23-1.07,3.84-1.07h2.79v-6.12h-1.29Z"></path> 969 <path class="cls-1" d="M281.12,88.76c-3.76,0-6.82-.83-9.19-2.5-2.36-1.67-3.6-3.98-3.71-6.96h6.45c.11,1.32.72,2.41,1.83,3.25,1.11.84,2.67,1.26,4.67,1.26,1.11,0,2.08-.12,2.9-.38s1.47-.64,1.93-1.16c.46-.52.7-1.12.7-1.8,0-.86-.25-1.5-.75-1.91-.5-.41-1.24-.71-2.2-.89-.97-.18-2.17-.36-3.6-.54-1.61-.18-3.11-.43-4.49-.75-1.38-.32-2.58-.76-3.6-1.32-1.02-.55-1.83-1.3-2.42-2.23-.59-.93-.89-2.11-.89-3.55,0-1.79.49-3.35,1.48-4.67s2.35-2.35,4.08-3.06c1.74-.72,3.75-1.07,6.04-1.07,3.55.04,6.45.81,8.73,2.34,2.27,1.52,3.5,3.7,3.68,6.53h-6.5c-.11-1.18-.68-2.13-1.72-2.85-1.04-.72-2.38-1.07-4.03-1.07s-2.85.29-3.81.86c-.97.57-1.45,1.36-1.45,2.37,0,.79.26,1.37.78,1.75.52.38,1.27.64,2.26.81s2.14.33,3.47.51c2.08.22,3.99.57,5.75,1.08,1.75.5,3.15,1.31,4.19,2.42,1.04,1.11,1.56,2.7,1.56,4.78,0,1.76-.53,3.3-1.58,4.62-1.06,1.32-2.49,2.35-4.3,3.06-1.81.72-3.89,1.07-6.26,1.07Z"></path> 970 <path class="cls-1" d="M294.49,60.87h7.15l7.2,20.25,7.04-20.25h7.15l-12.36,31.7c-.57,1.5-1.15,2.74-1.72,3.71s-1.28,1.69-2.12,2.18-1.96.73-3.36.73h-6.82v-5.75h4.14c.72,0,1.28-.07,1.69-.22.41-.14.75-.4,1.02-.78.27-.38.53-.91.78-1.59l.91-2.26-10.69-27.72Z"></path> 971 <path class="cls-1" d="M350.48,65.71c-1-1.83-2.34-3.14-4-3.95-1.67-.81-3.52-1.21-5.56-1.21-2.62,0-4.67.55-6.15,1.64-.96.7-1.75,1.51-2.46,2.35l-.68-3.67h-5.86v27.56h6.72v-14.02c0-1.72.26-3.2.78-4.43.52-1.24,1.29-2.18,2.31-2.82,1.02-.65,2.23-.97,3.63-.97,2.08,0,3.62.64,4.62,1.91,1,1.27,1.5,3.16,1.5,5.67v14.67h6.66v-15.31c0-3.12-.5-5.59-1.5-7.41Z"></path> 972 <path class="cls-1" d="M360.42,57.49c-1.11,0-2.05-.37-2.82-1.1-.77-.73-1.16-1.66-1.16-2.77s.39-2.09,1.16-2.82,1.71-1.1,2.82-1.1,2.05.37,2.82,1.1c.77.73,1.15,1.67,1.15,2.82s-.38,2.03-1.15,2.77c-.77.73-1.71,1.1-2.82,1.1ZM357.03,60.87h6.72v27.56h-6.72v-27.56Z"></path> 973 <path class="cls-1" d="M393.94,65.71c-1-1.83-2.34-3.14-4-3.95-1.67-.81-3.52-1.21-5.56-1.21-2.62,0-4.67.55-6.15,1.64-.96.7-1.75,1.51-2.46,2.35l-.68-3.67h-5.86v27.56h6.72v-14.02c0-1.72.26-3.2.78-4.43.52-1.24,1.29-2.18,2.31-2.82,1.02-.65,2.23-.97,3.63-.97,2.08,0,3.62.64,4.62,1.91,1,1.27,1.5,3.16,1.5,5.67v14.67h6.66v-15.31c0-3.12-.5-5.59-1.5-7.41Z"></path> 974 <path class="cls-1" d="M421.77,60.87l-.66,4.09c-.71-1.02-1.57-1.93-2.62-2.69-1.61-1.18-3.67-1.77-6.18-1.77s-4.63.57-6.58,1.72c-1.95,1.15-3.49,2.77-4.62,4.86-1.13,2.1-1.69,4.56-1.69,7.39s.56,5.35,1.69,7.44c1.13,2.1,2.67,3.7,4.62,4.81,1.95,1.11,4.16,1.67,6.63,1.67s4.5-.55,6.1-1.64c1.03-.7,1.88-1.55,2.61-2.52v3.03c0,2.36-.65,4.13-1.93,5.29-1.29,1.16-3.1,1.75-5.43,1.75-1.9,0-3.43-.39-4.59-1.18-1.16-.79-1.91-1.9-2.23-3.33h-6.77c.14,2.08.78,3.84,1.91,5.29,1.13,1.45,2.65,2.55,4.57,3.3,1.92.75,4.13,1.13,6.63,1.13,3.44,0,6.21-.5,8.33-1.5,2.11-1,3.66-2.42,4.65-4.24s1.48-3.92,1.48-6.29v-26.6h-5.91ZM417.61,81.88c-1.09.72-2.39,1.07-3.9,1.07s-2.81-.36-3.92-1.07c-1.11-.72-1.97-1.71-2.58-2.98-.61-1.27-.91-2.73-.91-4.38s.3-3.16.91-4.43c.61-1.27,1.47-2.27,2.58-2.98,1.11-.72,2.42-1.07,3.92-1.07s2.8.36,3.9,1.07c1.09.72,1.94,1.72,2.55,3.01.61,1.29.91,2.78.91,4.46s-.31,3.05-.91,4.33c-.61,1.27-1.46,2.27-2.55,2.98Z"></path> 975 </g> 976 </svg> 977 978 </div> 979 <div class="col-12"> 980 <div class="row"> 981 982 <div class="col-lg-12 col-xl-8"> 983 <div class="row"> 984 985 986 <div class="col-lg-6 col-xl-6"> 987 <h3>@Translate("Kontakt")</h3> 988 <address> 989 <p> 990 @companyAddress 991 <br> 992 @companyZipAndCity 993 </p> 994 <p> 995 @Translate("Telefon"): <a href="tel:@companyPhoneClean" target="_top">@companyPhone</a> 996 997 @if (!string.IsNullOrWhiteSpace(companyMail)) { 998 <br> 999 @Translate("Email")<span>:</span> @Skabertrang.Helpers.Text.Rot13_Email(companyMail) 1000 } 1001 </p> 1002 1003 <p> 1004 <a href="/Default.aspx?ID=4818#spot-14962">@Translate("Skriv til os")</a> 1005 </p> 1006 1007 </address> 1008 1009 @footerText 1010 </div> 1011 1012 <div class="col-lg-6 col-xl-6 "> 1013 @footerEkstraText 1014 </div> 1015 1016 1017 </div> 1018 </div> 1019 1020 <div class="col-lg-12 col-xl-4 "> 1021 1022 <div class="row"> 1023 @foreach (var group in GetLoop("Item.Area.Footer_Links")) { 1024 <div class="col-lg-6 col-xl-12 footer-space"> 1025 <h3>@group.GetString("Item.Area.Footer_Links.Text")</h3> 1026 <ul class="list-unstyled"> 1027 @foreach (var link in group.GetLoop("Item.Area.Footer_Links.List")) { 1028 string footerLink = link.GetString("Item.Area.Footer_Links.List.Link"); 1029 <li> 1030 <a href="@footerLink">@link.GetString("Item.Area.Footer_Links.List.Text")</a> 1031 </li> 1032 } 1033 </ul> 1034 </div> 1035 } 1036 </div> 1037 </div> 1038 1039 </div> 1040 </div> 1041 1042 <div class="col-md-12 text-right"> 1043 <div class="linkToIntranet"> 1044 <a href="https://intranet.silkeborgforsyning.dk/forside" target="_blank" title="Silkeborg Forsyning Intranet"> 1045 <i class="fal fa-lock-alt"></i> 1046 </a> 1047 </div> 1048 </div> 1049 </div> 1050 </div> 1051 1052 </footer> 1053 1054 1055 <!-- ------------------------------------------------------------------- --> 1056 @* -- -- -- -- -- COOKIE -- -- -- -- -- *@ 1057 @if (cookieSettingsPage != null && cookieSettingsPage.Item["CookieCategories"] != null) { 1058 var cookieCategoryItems = Dynamicweb.Content.Items.ItemList.GetItemListById((int)cookieSettingsPage.Item["CookieCategories"]).Relations; 1059 1060 if (cookieCategoryItems.Any()) { 1061 1062 <div id="cookie-choice-renew" title="Cookie valg" aria-label="renew-consent"> 1063 <svg class="svg-inline--fa fa-cookie-bite fa-w-16" aria-hidden="true" focusable="false" data-prefix="fal" data-icon="cookie-bite" role="img" xmlns="http://www.w3.org/2000/svg" viewbox="0 0 512 512" data-fa-i2svg=""><path fill="currentColor" d="M352 328c-13.25 0-24 10.74-24 24 0 13.25 10.75 24 24 24s24-10.75 24-24c0-13.26-10.75-24-24-24zM184 192c0-13.26-10.75-24-24-24s-24 10.74-24 24c0 13.25 10.75 24 24 24s24-10.75 24-24zm8 136c-13.25 0-24 10.74-24 24 0 13.25 10.75 24 24 24s24-10.75 24-24c0-13.26-10.75-24-24-24zm96-96c-13.25 0-24 10.74-24 24 0 13.25 10.75 24 24 24s24-10.75 24-24c0-13.26-10.75-24-24-24zm222.52 23.82c-69.97-.85-126.47-57.69-126.47-127.86-70.17 0-127-56.49-127.86-126.45C249.57.5 242.9 0 236.26 0c-20.68 0-41.18 4.85-59.79 14.33l-69.13 35.22a132.221 132.221 0 0 0-57.79 57.81l-35.1 68.88a132.645 132.645 0 0 0-12.82 80.95l12.08 76.28a132.555 132.555 0 0 0 37.16 72.96l54.77 54.76a132.036 132.036 0 0 0 72.71 37.06l76.71 12.14c6.86 1.09 13.76 1.62 20.64 1.62 20.72 0 41.25-4.88 59.89-14.38l69.13-35.22a132.221 132.221 0 0 0 57.79-57.81l35.1-68.88c12.56-24.63 17.01-52.57 12.91-79.9zm-41.42 65.36L434 390.07c-9.68 19-24.83 34.15-43.81 43.82l-69.13 35.22C307.08 476.23 291.39 480 275.7 480c-5.21 0-10.47-.41-15.63-1.23l-76.7-12.14c-21-3.33-40.05-13.04-55.09-28.08l-54.77-54.76c-15.1-15.09-24.84-34.23-28.18-55.33l-12.08-76.27c-3.35-21.12.02-42.36 9.72-61.41l35.1-68.88c9.68-19 24.83-34.15 43.81-43.82L191 42.85c11.33-5.77 23.8-9.33 36.51-10.46 13.15 63.15 63.84 112.95 127.25 124.86 11.91 63.42 61.71 114.11 124.87 127.25-1.1 12.73-4.64 25.14-10.53 36.68z"></path></svg> 1064 </div> 1065 1066 <div id="cookieWarningContainer" class="@cookieWarningClass"> 1067 <form id="cookieWarningForm" method="post" action="/Admin/Public/CookieOptInLevelConfig.aspx"> 1068 <input type="hidden" name="cmd" value="SetCookieOptInLevel"> 1069 <input type="hidden" name="OptInLevel" id="OptInLevel" value="1"> 1070 1071 <fieldset> 1072 <legend>@cookieSettingsPage.Item["CookieHeader"]</legend> 1073 <div class="modal-header"> 1074 <div class="row"> 1075 <div class="col-xs-12 editor"> 1076 @cookieSettingsPage.Item["CookieIntro"] 1077 <hr class="mt-4 mb-2 w-100"> 1078 <p class="text-center"> 1079 <button type="button" class="btn btn-primary-naked ml-3" onclick="setOptInCookie(1);" tabindex="1">@Translate("Tillad valgte")</button> 1080 <button type="button" class="rm-button btn btn-primary ml-3" onclick="setOptInCookie(2);">@Translate("Tillad alle")</button> 1081 <button type="submit" style="display: none; visibility: hidden;">Send</button> 1082 </p> 1083 </div> 1084 </div> 1085 </div> 1086 @{ 1087 string showDetails = Translate("Vis detaljer"); 1088 string hideDetails = Translate("Skjul detaljer"); 1089 <div class="p-4"> 1090 <div class="row justify-content-md-center"> 1091 @foreach (Dynamicweb.Content.Items.Item category in cookieCategoryItems) { 1092 string categoryName = "" + category["Name"]; 1093 string categorySysName = "" + category["SysName"]; 1094 string categoryID = "cookecategory-" + category.Id; 1095 string categoryDescription = "" + category["Description"]; 1096 var cookies = Dynamicweb.Content.Items.ItemList.GetItemListById((int)category["Cookies"]).Relations; 1097 string translateLabel = Translate("Accepter") + " " + categoryName + " " + Translate("cookies"); 1098 1099 if (cookies.Any()) { 1100 <div class="col-sm-4 col-xs-4 checkbox-container"> 1101 <div class="custom-control custom-checkbox text-center" data-nogutter="1"> 1102 <span class="d-block">@categoryName</span> 1103 @if (categorySysName == "Essential") { 1104 <input type="checkbox" class="custom-control-input" id="chk-cookie-@categorySysName" value="@categorySysName" checked="checked" disabled='disabled'> 1105 } else { 1106 if (AllowedCookieCategories.Contains(categorySysName)) { 1107 <input type="checkbox" class="custom-control-input" checked="checked" id="chk-cookie-@categorySysName" name="OptInCategory" value="@categorySysName"> 1108 } else { 1109 <input type="checkbox" class="custom-control-input" id="chk-cookie-@categorySysName" name="OptInCategory" value="@categorySysName"> 1110 } 1111 } 1112 <label class="custom-control-label" for="chk-cookie-@categorySysName"><span class="sr-only">@translateLabel</span></label> 1113 </div> 1114 </div> 1115 } 1116 } 1117 </div> 1118 1119 <div class="row"> 1120 <div class="col-12"> 1121 <p class="text-center"> 1122 <a class="btn btn-primary-naked mr-3 collapsed" id="cookie-details-button" data-toggle="collapse" role="button" aria-expanded="false" data-open-text="Vis detaljer" data-close-text="Skjul detaljer" aria-controls="collapse-cookie-info-container">Vis detaljer</a> 1123 </p> 1124 </div> 1125 </div> 1126 </div> 1127 <div class="collapse" id="collapse-cookie-info-container"> 1128 <div class="cookie-info-container"> 1129 @foreach (Dynamicweb.Content.Items.Item category in cookieCategoryItems) { 1130 string categoryName = "" + category["Name"]; 1131 string categorySysName = "" + category["SysName"]; 1132 string categoryID = "cookecategory-" + category.Id; 1133 string categoryDescription = "" + category["Description"]; 1134 var cookies = Dynamicweb.Content.Items.ItemList.GetItemListById((int)category["Cookies"]).Relations; 1135 if (cookies.Any()) { 1136 <div class="d-block toogle-f-content" data-toggle="collapse" role="button" aria-expanded="false" aria-controls="collapse-cookie-info-@categoryID" tabindex="0"> 1137 <div class="row"> 1138 <div class="col-xs-12 col-sm-3 cookie-info-container-title"> 1139 1140 <div class="plus-tab"> 1141 <div class="plus-btn"> 1142 <span></span> 1143 <span></span> 1144 <span></span> 1145 </div> 1146 </div> 1147 1148 <strong>@categoryName</strong> 1149 1150 </div> 1151 <div class="col-xs-12 col-sm-9"> 1152 @categoryDescription 1153 </div> 1154 </div> 1155 </div> 1156 <div class="collapse" id="collapse-cookie-info-@categoryID"> 1157 @foreach (Dynamicweb.Content.Items.Item cookie in cookies) { 1158 string titleClass = "col-xs-12 col-sm-3"; 1159 string contentClass = "col-xs-12 col-sm-9"; 1160 string dataProcessor = Translate("Databehandler"); 1161 1162 string privacyPolicyLink = cookie["PrivacyPolicy"].ToString(); 1163 1164 string privacyPolicy = Translate("Privatlivspolitik"); 1165 1166 <div class="collapse-cookie-detail"> 1167 <div class="row collapse-cookie-info-header"> 1168 <div class="@titleClass"> 1169 <strong> 1170 @dataProcessor 1171 </strong> 1172 </div> 1173 <div class="@contentClass"> 1174 <p>@cookie["DataProcessor"]</p> 1175 </div> 1176 </div> 1177 1178 <div class="row"> 1179 <div class="@titleClass"> 1180 <strong> 1181 @Translate("Formål") 1182 </strong> 1183 </div> 1184 <div class="@contentClass"> 1185 @cookie["Purpose"] 1186 </div> 1187 </div> 1188 <div class="row"> 1189 <div class="@titleClass"> 1190 <strong> 1191 @privacyPolicy 1192 </strong> 1193 </div> 1194 <div class="@contentClass"> 1195 <p><a target="_blank" href="@privacyPolicyLink" tabindex="0">@privacyPolicyLink</a></p> 1196 </div> 1197 </div> 1198 <div class="row"> 1199 <div class="@titleClass"> 1200 <strong> 1201 @Translate("Udløb") 1202 </strong> 1203 </div> 1204 <div class="@contentClass"> 1205 <p>@cookie["Expires"]</p> 1206 </div> 1207 </div> 1208 <div class="row"> 1209 <div class="@titleClass"> 1210 <strong> 1211 @Translate("Navn") 1212 </strong> 1213 </div> 1214 <div class="@contentClass"> 1215 <p>@cookie["Name"]</p> 1216 </div> 1217 </div> 1218 <div class="row"> 1219 <div class="@titleClass"> 1220 <strong> 1221 @Translate("Udbyder") 1222 </strong> 1223 </div> 1224 <div class="@contentClass"> 1225 <p>@cookie["Provider"]</p> 1226 </div> 1227 </div> 1228 1229 </div> 1230 } 1231 </div> 1232 1233 } 1234 } 1235 </div> 1236 </div> 1237 } 1238 </fieldset> 1239 </form> 1240 1241 </div> 1242 } 1243 } 1244 1245 1246 @* -- -- -- -- -- /COOKIE -- -- -- -- -- *@ 1247 1248 1249 <!-- ------------------------------------------------------------------- --> 1250 @{ 1251 string popperJsPath = "https://cdn.jsdelivr.net/npm/@popperjs/core@2.9.2/dist/umd/popper.min.js"; 1252 } 1253 <script src="@(designBaseUrl)js/plugins.js"></script> 1254 <script src="@popperJsPath" integrity="sha384-IQsoLXl5PILFhosVNubq5LC7Qb9DXgDA9i+tQ8Zj3iwWAwPtgFTxbJ8NT4GN1R8p" crossorigin="anonymous"></script> 1255 <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.1/dist/js/bootstrap.min.js" integrity="sha384-Atwg2Pkwv9vp0ygtn1JAojH0nYbwNJLPhwyoVbhoPwBhjQPR5VtM2+xf0Uwh9KtT" crossorigin="anonymous"></script> 1256 <script src="https://cdnjs.cloudflare.com/ajax/libs/typeahead.js/0.11.1/typeahead.bundle.min.js"></script> 1257 <script src="@(designBaseUrl)assets/formvalidation/js/formValidation.min.js"></script> 1258 <script src="@(designBaseUrl)assets/formvalidation/js/framework/bootstrap.min.js"></script> 1259 <script src="@(designBaseUrl)assets/formvalidation/js/language/da_DK.js"></script> 1260 1261 <script src="@(designBaseUrl)js/simple-lightbox.min.js"></script> 1262 <script src="@(designBaseUrl)js/custom.min.js"></script> 1263 1264 <script async="async" src="/Files/Templates/Designs/SF2019/js/zeynep.js"></script> 1265 1266 @* -- WCAG -- *@ 1267 <script src="https://cdnjs.cloudflare.com/polyfill/v3/polyfill.min.js?version=4.8.0&features=Element.prototype.classList"></script> 1268 <script src="https://unpkg.com/focus-visible"></script> 1269 1270 @RenderSnippet("PageJs") 1271 @RenderSnippet("ParagraphJs") 1272 @RenderSnippet("MapScript") 1273 @RenderSnippet("RenderWarningIconScript") 1274 1275 </body> 1276 </html> 1277 1278 @* -- -- -- -- -- SKAL FLYTTES -- -- -- -- -- *@ 1279 <script> 1280 1281 // GO BACK -------------------------------------------------------------------------------------------------------------------- 1282 function goBack() { 1283 window.history.back(); 1284 } 1285 1286 $(document).ready(function () { 1287 $('#nav-container').on({ 1288 focusout: function (e) { 1289 $(this).data('submenuTimer', setTimeout(function () { 1290 $(".nav-tabs > a.hasChildren.active").removeClass('active'); 1291 $('#nav-container').find(".nav-dropdown").addClass('d-none'); 1292 }.bind(this), 0)); 1293 }, 1294 focusin: function (e) { 1295 clearTimeout($(this).data('submenuTimer')); 1296 }, 1297 keydown: function (e) { 1298 if (e.which === 27) { 1299 $(".nav-tabs > a.hasChildren.active").removeClass('active'); 1300 $('#nav-container').find(".nav-dropdown").addClass('d-none'); 1301 e.preventDefault(); 1302 } 1303 } 1304 }); 1305 }); 1306 $(".nav-tabs > a.hasChildren").click(function (evt) { 1307 evt.preventDefault(); 1308 $(this).siblings().removeClass('active'); 1309 $(this).toggleClass('active'); 1310 1311 var currentRootPageId = $(this).attr('data-root-page'); 1312 var parentRow = $(this).closest('#nav-container'); 1313 $('#nav-container').find(".nav-dropdown[data-root-page='" + currentRootPageId + "']").toggleClass('d-none'); 1314 $('#nav-container').find(".nav-dropdown[data-root-page!='" + currentRootPageId + "']").addClass('d-none'); 1315 }); 1316 1317 $(".scroolNav > li.hasChildren > a").click(function (evt) { 1318 1319 evt.preventDefault(); 1320 1321 var $parentLi = $(this).parent('li'); 1322 var $parentLiSiblings = $parentLi.siblings(); 1323 1324 $parentLiSiblings.removeClass('active'); 1325 $parentLiSiblings.find(".scroll-dropdown").addClass('d-none'); 1326 1327 $parentLi.toggleClass('active'); 1328 $parentLi.find(".scroll-dropdown").toggleClass('d-none'); 1329 }); 1330 1331 // STICKY MENU ---------------------------------------------------------------------------------------------------------------- 1332 $(window).scroll(function () { 1333 if ($(this).scrollTop() > 650) { 1334 1335 $('.scroll').removeClass('CustomHidden'); 1336 $('.scroll').addClass('show'); 1337 } else { 1338 $('.scroll').addClass('CustomHidden'); 1339 $('.scroll').removeClass('show'); 1340 $('.scroll-dropdown').addClass('d-none'); 1341 $('.scroolNav > li.active').removeClass('active'); 1342 } 1343 }); 1344 var lightbox = new SimpleLightbox('.gallery a', { /* options */ }); 1345 </script> 1346 @* COOKIE --------------------------------- *@ 1347 <script> 1348 document.getElementById("cookie-choice-renew").onclick = function () { 1349 showCookieChoice(); 1350 }; 1351 document.getElementById("cookie-details-button").onclick = function () { 1352 1353 if (this.classList.contains("opened")) { 1354 this.text = this.getAttribute("data-open-text"); 1355 this.classList.remove("opened"); 1356 document.getElementById("collapse-cookie-info-container").classList.remove("show"); 1357 } else { 1358 this.text = this.getAttribute("data-close-text"); 1359 this.classList.add("opened"); 1360 1361 document.getElementById("collapse-cookie-info-container").classList.add("show"); 1362 } 1363 }; 1364 var cookieExtraInfoElements = document.getElementsByClassName("toogle-f-content"); 1365 for (var i = 0; i < cookieExtraInfoElements.length; i++) { 1366 1367 // --------------------------------------------------------------------------------- 1368 1369 // Get the input field 1370 var input = cookieExtraInfoElements[i]; 1371 1372 // Execute a function when the user releases a key on the keyboard 1373 input.addEventListener("click", toggleExtraInfo); 1374 input.addEventListener("keyup", toggleExtraInfo); 1375 1376 // --------------------------------------------------------------------------------- 1377 } 1378 function toggleExtraInfo(event) { 1379 // Number 13 is the "Enter" key on the keyboard 1380 if (event.keyCode === 13 || event.type == "click") { 1381 // Cancel the default action, if needed 1382 1383 event.preventDefault(); 1384 1385 var elementToToggle = this.getAttribute("aria-controls"); 1386 if (this.classList.contains("opened")) { 1387 this.classList.remove("opened"); 1388 document.getElementById(elementToToggle).classList.remove("show"); 1389 } else { 1390 this.classList.add("opened"); 1391 document.getElementById(elementToToggle).classList.add("show"); 1392 } 1393 1394 // Trigger the button element with a click 1395 cookieExtraInfoElements[i].onclick = function () { 1396 var elementToToggle = this.getAttribute("aria-controls"); 1397 if (this.classList.contains("opened")) { 1398 this.classList.remove("opened"); 1399 document.getElementById(elementToToggle).classList.remove("show"); 1400 } else { 1401 this.classList.add("opened"); 1402 document.getElementById(elementToToggle).classList.add("show"); 1403 } 1404 } 1405 } 1406 } 1407 1408 function setOptInCookie(optInLevel) { 1409 document.getElementById("OptInLevel").value = optInLevel; 1410 var formElement = document.getElementById("cookieWarningForm"); 1411 if (optInLevel == 1) { 1412 var essentialElement = document.createElement('input'); 1413 if (document.getElementById('cookie-essential') === null) { 1414 essentialElement.setAttribute("name", "OptInCategory"); 1415 essentialElement.setAttribute("value", "Essential"); 1416 essentialElement.setAttribute("type", "hidden"); 1417 essentialElement.setAttribute("id", "cookie-essential"); 1418 formElement.appendChild(essentialElement); 1419 } 1420 1421 if (document.getElementById("chk-cookie-Marketing") != null && document.getElementById("chk-cookie-Marketing").checked && typeof fbq !== 'undefined') { 1422 fbq('consent', 'grant'); 1423 } 1424 } 1425 if (optInLevel == 2) { 1426 if (document.getElementById("chk-cookie-Statistical") != null) { 1427 document.getElementById("chk-cookie-Statistical").checked = true; 1428 } 1429 if (document.getElementById("chk-cookie-Marketing") != null) { 1430 document.getElementById("chk-cookie-Marketing").checked = true; 1431 } 1432 if (typeof fbq !== 'undefined') { 1433 fbq('consent', 'grant'); 1434 } 1435 } 1436 var formData = new FormData(formElement); 1437 1438 var xmlhttp = new XMLHttpRequest(); 1439 xmlhttp.onreadystatechange = function () { 1440 if (xmlhttp.readyState == 4 && xmlhttp.status == 200) { 1441 hideCookieChoice(); 1442 return false; 1443 } 1444 } 1445 1446 xmlhttp.open(formElement.method, formElement.action); 1447 xmlhttp.send(formData); 1448 1449 return false; 1450 } 1451 function showCookieChoice() { 1452 1453 var cookieWarningContainer = document.getElementById("cookieWarningContainer"); 1454 cookieWarningContainer.style.display = "flex"; 1455 cookieWarningContainer.removeAttribute("tab-index"); 1456 cookieWarningContainer.removeAttribute("aria-hidden"); 1457 document.getElementById("cookie-choice-renew").style.display = "none"; 1458 } 1459 function hideCookieChoice() { 1460 1461 var cookieWarningContainer = document.getElementById("cookieWarningContainer"); 1462 cookieWarningContainer.style.display = "none"; 1463 cookieWarningContainer.setAttribute("tab-index", "-1"); 1464 cookieWarningContainer.setAttribute("aria-hidden", "true"); 1465 document.getElementById("cookie-choice-re new").style.display = "block"; 1466 } 1467 </script> 1468 @* COOKIE --------------------------------- *@ 1469 1470 <script> 1471 $(".nav-item[data-dropdown='1']").on("keydown", function (event) { 1472 if (event.which == 13) 1473 1474 if ($(this).hasClass("dd-active")) { 1475 $(this).removeClass("dd-active") 1476 } else { 1477 $(this).addClass("dd-active") 1478 } 1479 }); 1480 </script>