Error executing template "Designs/Hags2024/_parsed/default.parsed.cshtml"
System.TypeInitializationException: The type initializer for 'System.Collections.Generic.EqualityComparer`1' threw an exception. ---> System.OutOfMemoryException: Exception of type 'System.OutOfMemoryException' was thrown.
   at System.Collections.Generic.EqualityComparer`1.CreateComparer()
   at System.Collections.Generic.EqualityComparer`1..cctor()
   --- End of inner exception stack trace ---
   at System.Collections.Generic.EqualityComparer`1.get_Default()
   at System.Array.IndexOf[T](T[] array, T value, Int32 startIndex, Int32 count)
   at System.Array.IndexOf[T](T[] array, T value)
   at System.SZArrayHelper.Contains[T](T value)
   at System.Linq.Enumerable.Contains[TSource](IEnumerable`1 source, TSource value)
   at Microsoft.CodeAnalysis.CSharp.CSharpDiagnosticFilter.Filter(Diagnostic d, Int32 warningLevelOption, NullableContextOptions nullableOption, ReportDiagnostic generalDiagnosticOption, IDictionary`2 specificDiagnosticOptions)
   at Microsoft.CodeAnalysis.CSharp.CSharpCompilationOptions.FilterDiagnostic(Diagnostic diagnostic)
   at Microsoft.CodeAnalysis.Compilation.FilterAndAppendDiagnostics(DiagnosticBag accumulator, IEnumerable`1 incoming, HashSet`1 exclude)
   at Microsoft.CodeAnalysis.Compilation.FilterAndAppendAndFreeDiagnostics(DiagnosticBag accumulator, DiagnosticBag& incoming)
   at Microsoft.CodeAnalysis.CSharp.CSharpCompilation.CompileMethods(CommonPEModuleBuilder moduleBuilder, Boolean emittingPdb, Boolean emitMetadataOnly, Boolean emitTestCoverageData, DiagnosticBag diagnostics, Predicate`1 filterOpt, CancellationToken cancellationToken)
   at Microsoft.CodeAnalysis.Compilation.Emit(Stream peStream, Stream metadataPEStream, Stream pdbStream, Stream xmlDocumentationStream, Stream win32Resources, IEnumerable`1 manifestResources, EmitOptions options, IMethodSymbol debugEntryPoint, Stream sourceLinkStream, IEnumerable`1 embeddedTexts, CompilationTestData testData, CancellationToken cancellationToken)
   at Microsoft.CodeAnalysis.Compilation.Emit(Stream peStream, Stream pdbStream, Stream xmlDocumentationStream, Stream win32Resources, IEnumerable`1 manifestResources, EmitOptions options, IMethodSymbol debugEntryPoint, Stream sourceLinkStream, IEnumerable`1 embeddedTexts, Stream metadataPEStream, CancellationToken cancellationToken)
   at Microsoft.CodeAnalysis.Compilation.Emit(Stream peStream, Stream pdbStream, Stream xmlDocumentationStream, Stream win32Resources, IEnumerable`1 manifestResources, EmitOptions options, CancellationToken cancellationToken)
   at RazorEngine.Roslyn.CSharp.RoslynCompilerServiceBase.CompileType(TypeContext context)
   at RazorEngine.Templating.RazorEngineCore.CreateTemplateType(ITemplateSource razorTemplate, Type modelType)
   at RazorEngine.Templating.RazorEngineCore.Compile(ITemplateKey key, Type modelType)
   at RazorEngine.Templating.RazorEngineService.CompileAndCacheInternal(ITemplateKey key, Type modelType)
   at RazorEngine.Templating.RazorEngineService.GetCompiledTemplate(ITemplateKey key, Type modelType, Boolean compileOnCacheMiss)
   at RazorEngine.Templating.RazorEngineService.RunCompile(ITemplateKey key, TextWriter writer, Type modelType, Object model, DynamicViewBag viewBag)
   at RazorEngine.Templating.DynamicWrapperService.RunCompile(ITemplateKey key, TextWriter writer, Type modelType, Object model, DynamicViewBag viewBag)
   at RazorEngine.Templating.RazorEngineServiceExtensions.<>c__DisplayClass16_0.<RunCompile>b__0(TextWriter writer)
   at RazorEngine.Templating.RazorEngineServiceExtensions.WithWriter(Action`1 withWriter)
   at RazorEngine.Templating.RazorEngineServiceExtensions.RunCompile(IRazorEngineService service, String name, Type modelType, Object model, DynamicViewBag viewBag)
   at Dynamicweb.Rendering.RazorTemplateRenderingProvider.Render(Template template)
   at Dynamicweb.Rendering.TemplateRenderingService.Render(Template template)
   at Dynamicweb.Rendering.Template.RenderRazorTemplate()

1 @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>> 2 @using System; 3 @using System.Linq; 4 @using System.Web.Optimization; 5 @using HagsWeb.Library.Methods.Page; 6 @using HagsWeb.Library.State; 7 @using HagsWeb.Library.Utilities; 8 @using Dynamicweb.Content; 9 @using Dynamicweb.Ecommerce.International; 10 11 12 @{ 13 //set up Content Security Policy nonce and header 14 string nonce = Convert.ToBase64String(Guid.NewGuid().ToByteArray()); 15 string cspDefaultSrc = "default-src 'self' cdn.fonts.net;"; 16 string cspImageSrc = "img-src 'self';"; 17 string cspScriptSrc = "script-src 'self' 'unsafe-eval' nonce-" + nonce + "' consent.cookiebot.com www.googletagmanager.com connect.facebook.net www.facebook.com cdn.weglot.com;"; 18 string cspStyleSrc = "style-src 'self' 'unsafe-inline' https://cdn.weglot.com https://cdn.fonts.net;"; 19 20 string csp = cspDefaultSrc + cspImageSrc + cspStyleSrc + cspScriptSrc; 21 22 23 24 // switch off for now - but we will need to add this to the eternal scripts if we tighten the security headers 25 //System.Web.HttpContext.Items["ScriptNonce"] = nonce; 26 27 // switch off for now 28 //System.Web.HttpContext.Current.Response.Headers.Add("Content-Security-Policy",csp); 29 30 // end of CSP stuff 31 32 bool inDev = false; 33 inDev = inDev || GetGlobalValue("Global:Request.Url").Contains("http://hagsdw915solution."); 34 inDev = inDev || GetGlobalValue("Global:Request.Url").Contains("https://hagsdev.hags."); 35 inDev = inDev || GetGlobalValue("Global:Request.Url").Contains("https://hagslang.hags."); 36 inDev = inDev || GetGlobalValue("Global:Request.Url").Contains("https://hagslive.hags."); 37 38 int masterAreaId = int.TryParse(GetGlobalValue("Global:Area.ID"), out masterAreaId) ? masterAreaId : 0; 39 Dynamicweb.Content.Area masterArea = new Dynamicweb.Content.AreaService().GetArea(masterAreaId); 40 41 string themeTag = HagsPages.GetThemeByNavigationTag(GetGlobalValue("Global:Page.Top.ID")); // gets the page ID at the top of the tree this page sits on. 42 string siteNavigation = HagsPages.GetActiveAreas(); 43 string htmlLang = GetGlobalValue("Global:Area.LongLang"); 44 string siteAreaName = GetString("DwAreaName"); 45 string designBaseUrl = GetString("Template:DesignBaseUrl"); 46 var unixTimestamp = ((DateTimeOffset)DateTime.UtcNow).ToUnixTimeSeconds(); 47 var jsTimestamp = inDev ? unixTimestamp : 0; 48 string currentUser = GetString("DW_extranet_AccessUserName"); 49 string userGroups = GetString("DW_extranet_Groups"); 50 51 var siteFirstPageId = GetString("DwAreaFirstPageID"); // for the Hags Logo url. Go to the WEBSITE home page 52 var thisSiteName = HagsWeb.Library.Methods.Page.HagsPages.GetSiteCountryName(@GetGlobalValue("Global:Area.LongLang"), @GetGlobalValue("Global:Area.Name")); 53 var websites = GetLoop("WebsiteLanguages"); 54 string worldwideContactsLink = DWUtilities.GetPageByNavigationTag("worldwide-contacts", masterAreaId); 55 56 string baseWeglotLang = System.Web.HttpContext.Current.Request.Headers["weglot-language"]; 57 string baseActualLang = baseWeglotLang; 58 if ( baseWeglotLang == "se" ) { 59 baseActualLang = "sv"; 60 } 61 string testCountryCode = System.Web.HttpContext.Current.Request.QueryString["tc"]; 62 63 64 } 65 <!DOCTYPE html> 66 <html class="no-js" lang="@htmlLang"> 67 <head> 68 <meta charset="utf-8"> 69 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 70 <title>@GetValue("Title")</title> 71 @GetValue("MetaTags") 72 @GetValue("CopyRightNotice") 73 74 75 <meta name="author" content="HAGS @(siteAreaName)"> 76 <link rel="icon" href="@(designBaseUrl)assets/img/favicon.ico" sizes="32x32"> 77 <link rel="icon" href="@(designBaseUrl)assets/img/icon.svg" type="image/svg+xml"> 78 <link rel="apple-touch-icon" href="@(designBaseUrl)assets/img/apple-touch-icon.png"> 79 80 <script nonce="@nonce">(function (H) { H.className = H.className.replace(/\bno-js\b/, 'js') })(document.documentElement)</script> 81 82 <!--link rel="preconnect" href="https://cdn.fonts.net"--> 83 <link rel="stylesheet" href="@(designBaseUrl)assets/styles/monotype-redux.css"> 84 85 <link rel="stylesheet" href="@(designBaseUrl)assets/styles/reset.css?v=1.1"> 86 <link rel="stylesheet" href="@(designBaseUrl)assets/styles/core.css?ts=@unixTimestamp"> 87 <link rel="stylesheet" href="@(designBaseUrl)assets/styles/nav-mega.css?ts=@unixTimestamp"> 88 <link rel="stylesheet" href="@(designBaseUrl)assets/styles/forms.css?ts=@unixTimestamp"> 89 <link rel="stylesheet" href="@(designBaseUrl)assets/styles/country-rules.css?ts=@unixTimestamp"> 90 <link rel="stylesheet" href="@(designBaseUrl)assets/js/libraries/range-slider/range-slider-element.css"> 91 92 @if (!inDev) 93 { 94 <script id="Cookiebot" src="https://consent.cookiebot.com/uc.js" data-culture="@baseActualLang" data-cbid="89c7e0fa-fa61-446d-9c96-866489bcea3c" data-blockingmode="auto" type="text/javascript"></script> 95 } 96 97 @foreach (var language in GetLoop("Languages")) 98 { 99 string pageid = language.GetString("PageID"); 100 string url = string.Empty; 101 string productId = System.Web.HttpContext.Current.Request.QueryString.Get("productid"); 102 if (string.IsNullOrEmpty(productId)) 103 { 104 url = @GetGlobalValue("Global:Request.Scheme") + "://" + language.GetString("PrimaryDomain"); 105 url = url + Dynamicweb.Frontend.SearchEngineFriendlyURLs.GetFriendlyUrl("default.aspx?id=" + pageid); 106 } 107 else 108 { 109 string productSystemUrl = "default.aspx?id=" + pageid + "&ProductID=" + productId; 110 string productUrl = Dynamicweb.Frontend.SearchEngineFriendlyURLs.GetFriendlyUrl(productSystemUrl); 111 if (!string.IsNullOrEmpty(productUrl)) 112 { 113 url = @GetGlobalValue("Global:Request.Scheme") + "://" + language.GetString("PrimaryDomain") + productUrl; 114 } 115 } 116 if (!string.IsNullOrEmpty(url)) 117 { 118 <link rel="alternate" href='@url' hreflang='@language.GetString("Culture")'> 119 } 120 } 121 122 <script type="text/javascript" src="@(designBaseUrl)assets/js/libraries/jquery.min.js" cookieconsent="ignore"></script> 123 <script type="text/javascript" src="@(designBaseUrl)assets/js/libraries/validation/jquery.validate.min.js" cookieconsent="ignore"></script> 124 <script type="text/javascript" src="@(designBaseUrl)assets/js/libraries/validation/additional-methods.min.js" cookieconsent="ignore"></script> 125 <script type="text/javascript" src="@(designBaseUrl)assets/js/functions/hags-global.js?v=1.4.7&ts=@jsTimestamp" cookieconsent="ignore"></script> 126 @*<script type="text/javascript" src="@(designBaseUrl)assets/js/functions/hags-global.js?" cookieconsent="ignore"></script>*@ 127 128 @* the future!! HTMX is here *@ 129 130 <script src="@(designBaseUrl)assets/js/libraries/htmx/htmx.min.js" cookieconsent="ignore"></script> 131 <script type="module" src="@(designBaseUrl)assets/js/libraries/range-slider/range-slider.min.js" cookieconsent="ignore"></script> 132 133 <script type="text/javascript" src="@(designBaseUrl)assets/js/functions/h24.js?v=1.4.8&ts=@unixTimestamp" cookieconsent="ignore"></script> 134 135 @* set up some JS globals *@ 136 <script type="text/javascript"> 137 h24.baseWeglotLang = '@(baseWeglotLang)'; 138 h24.testCountryCode = '@(testCountryCode)'; 139 h24.inDev = @(inDev.ToString().ToLower()); 140 var __ss_noform = __ss_noform || []; 141 h24.dwFormFunctions = {}; 142 </script> 143 144 145 @* this snippet is from the product page template *@ 146 @RenderSnippet("productScripts") 147 148 @* this snippet is from the case studies item listing *@ 149 @RenderSnippet("caseStudyScripts") 150 151 152 @* do not use these for now *@ 153 <!--IncludeFile("Includes/SharpSpringCode.cshtml")--> 154 <!--IncludeFile("Includes/TrailHub_DenmarkCode.cshtml")--> 155 <!-- Start of Sleeknote signup and lead generation tool - www.sleeknote.com --> 156 @if (!inDev) 157 { 158 <script id="sleeknoteScript" type="text/javascript"> 159 (function () { 160 var sleeknoteScriptTag = document.createElement("script"); 161 sleeknoteScriptTag.type = "text/javascript"; 162 sleeknoteScriptTag.charset = "utf-8"; 163 sleeknoteScriptTag.src = ("//sleeknotecustomerscripts.sleeknote.com/60385.js"); 164 var s = document.getElementById("sleeknoteScript"); 165 s.parentNode.insertBefore(sleeknoteScriptTag, s); 166 })(); 167 </script> 168 169 } 170 171 @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>> 172 173 @if (!inDev) 174 { 175 <meta name="facebook-domain-verification" content="8vnuupfwjjw7l4g2t44cuzv5c17fa2"> 176 <meta name="p:domain_verify" content="e984d55d650d51a77b5bd78fce401aee"> 177 178 string verificationCode = ""; 179 switch (masterAreaId) 180 { 181 case 1: 182 <!-- Google Analytics Property for Global --> 183 <meta name="google-site-verification" content="SU7OrN2pJAoaHy4QUbJqKRyiRK_pJK_mydVX9HnbAjE"> 184 break; 185 case 2: 186 <!-- Google Analytics Property for Sweden --> 187 <meta name="google-site-verification" content="WMHOYHSUksAhokWvc_pl1xi2eUEIqlSAmqSuPqBuIhw"> 188 break; 189 case 3: 190 <!-- Google Analytics Property for Germany --> 191 <meta name="google-site-verification" content="2FnagwVri1SLEk0f1-cNAMIsqoelzEf6qa64iTOo6A4"> 192 break; 193 case 4: 194 <!-- Google Analytics Property for Denmark --> 195 <meta name="google-site-verification" content="iTdN9SsW-DWo1nPaqZ2_W6c1lKr1KdpIE-9PIa7efD8"> 196 break; 197 case 5: 198 <!-- Google Analytics Property for France --> 199 <meta name="google-site-verification" content="q7sWMD42DhdNcVgQjRvpUnHq6UWvgFfxxN7SWLTjDBs"> 200 break; 201 case 6: 202 <!-- Google Analytics Property for Spain --> 203 <meta name="google-site-verification" content="5l8EU56ZLDtGLgFsyPizPWpK1lt_DAqhcYsgiP_wZ2w"> 204 break; 205 case 7: 206 <!-- Google Analytics Property for UK --> 207 <meta name="google-site-verification" content="VWJFZapvDhxv8eu8eMl66KkAAArEyIG3pa8ZffeAKrg"> 208 break; 209 } 210 211 <!-- Google Tag Manager --> 212 <script> 213 window.dataLayer = window.dataLayer || []; 214 </script> 215 <script nonce="@nonce" type="text/javascript"> 216 (function (w, d, s, l, i) { 217 w[l] = w[l] || []; 218 w[l].push({ 219 'gtm.start': 220 new Date().getTime(), 221 event: 'gtm.js' 222 }); 223 var f = d.getElementsByTagName(s)[0], 224 j = d.createElement(s), 225 dl = l != 'dataLayer' ? '&l=' + l : ''; 226 j.async = true; 227 j.src = 228 'https://www.googletagmanager.com/gtm.js?id=' + i + dl; 229 f.parentNode.insertBefore(j, f); 230 })(window, document, 'script', 'dataLayer', 'GTM-MCRWZS'); 231 </script> 232 <!-- End Google Tag Manager --> 233 <!-- Facebook Pixel Code --> 234 <script nonce="@nonce" type="text/javascript"> 235 !function (f, b, e, v, n, t, s) { 236 if (f.fbq) return; 237 n = f.fbq = function () { 238 n.callMethod ? n.callMethod.apply(n, arguments) : n.queue.push(arguments) 239 }; 240 if (!f._fbq) f._fbq = n; 241 n.push = n; 242 n.loaded = !0; 243 n.version = '2.0'; 244 n.queue = []; 245 t = b.createElement(e); 246 t.async = !0; 247 t.src = v; 248 s = b.getElementsByTagName(e)[0]; 249 s.parentNode.insertBefore(t, s) 250 }(window, 251 document, 252 'script', 253 'https://connect.facebook.net/en_US/fbevents.js'); 254 fbq('init', '271101660030700'); 255 fbq('track', 'PageView'); 256 </script> 257 <!-- End Facebook Pixel Code --> 258 } 259 260 <script nonce="@nonce" type="text/javascript" src="https://cdn.weglot.com/weglot.min.js"></script> 261 @if ( baseWeglotLang == "en" || baseWeglotLang == "en-gb" ) 262 { 263 <script> 264 Weglot.initialize({ 265 api_key: 'wg_d0f1722188f1546fd2c7289d2058d7083' 266 }); 267 </script> 268 } else 269 { 270 <script> 271 Weglot.initialize({ 272 api_key: 'wg_d0f1722188f1546fd2c7289d2058d7083', 273 translate_search: true, 274 search_forms: '#search-box', 275 search_parameter: 'q' 276 }); 277 </script> 278 } 279 280 @* Add the Sedish chat script in *@ 281 @if ( baseWeglotLang == "se" || testCountryCode == "se" ) 282 { 283 <script src='https://online3.superoffice.com/Cust29133/CS/javascript/chat.js' data-topicid='2' data-title='Kundsupport' data-theme='modern' data-color='#0080FF' data-badgecolor='#4f6128' data-badgetextcolor='#ffffff' data-custmsgcolor='#dbe5f1' data-custmsgtextcolor='#000000' data-agentmsgcolor='#c3d69b' data-agentmsgtextcolor='#000000' data-buttoncolor='#ffffff' data-buttontextcolor='' data-font='"Verdana", "Gill Sans", Arial, sans-serif' data-fontsize='12px' data-size='normal' data-delay='1' defer=""></script> 284 } 285 286 287 @GetValue("Stylesheets") 288 @GetValue("Javascripts") 289 </head> 290 291 <body> 292 @if (!inDev) 293 { 294 <noscript> 295 <!-- Google Tag Manager (noscript) --> 296 <iframe src="https://www.googletagmanager.com/ns.html?id=GTM-MCRWZS" height="0" width="0" style="display:none;visibility:hidden"></iframe> 297 <!-- End Google Tag Manager (noscript) --> 298 <!-- Facebook Pixel Code --> 299 <img height="1" width="1" style="display:none" src="https://www.facebook.com/tr?id=271101660030700&ev=PageView&noscript=1"> 300 </noscript> 301 } 302 @* Snippets are rendered last and can be defined in any template *@ 303 @* We are using a snippet (headerClass) here to let a page template define if the header sits on top or is part of the 304 @* document flow. Setting the snippet to an empty string below makes sure it gets rendered as empty and not as a DW comment string *@ 305 @* if a snippetStart/End command is used in another template it is appended to the snippet *@ 306 307 @SnippetStart("headerClass")@("")@SnippetEnd("headerClass") 308 309 @{ 310 string weglotLangHeader = System.Web.HttpContext.Current.Request.Headers["weglot-language"]; 311 string urlLangHeader = weglotLangHeader != "" ? "/" + weglotLangHeader : ""; 312 //ignore the default en code 313 urlLangHeader = weglotLangHeader == "en" ? "" : urlLangHeader; 314 } 315 316 <header class="header" data-variant='@RenderSnippet("headerClass")'> 317 318 <div class="header__wrapper"> 319 320 <div class="header__global-nav"> 321 322 <div class="header-logo" itemscope="" itemtype="http://schema.org/Organization"> 323 <a href="/" itemprop="url"> 324 <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 362 81" class="hags-logo"><path fill="currentColor" fill-rule="evenodd" d="M311.22.5c9.399 0 16.725 3.168 18.555 3.168.862 0 1.596-.243 2.697-1.338h2.558l2.318 19.692h-4.876c-2.697-9.846-10.513-16.292-19.911-16.292-6.837 0-11.97 3.65-11.97 8.39 0 11.187 20.279 13.258 33.958 26.873 5.004 4.986 6.951 10.214 6.951 16.05 0 12.648-11.47 22.618-26.006 22.618-9.77 0-18.687-3.888-20.887-3.888-1.1 0-1.952.611-2.562 1.947h-3.178L285.82 55.59v-.002h4.757c4.029 12.031 11.236 18.237 20.88 18.237 8.059 0 14.17-5.11 14.17-11.917 0-18.122-39.204-17.509-39.204-41.586C286.423 8.645 296.681.5 311.22.5Zm-75.498 0c7.426 0 13.874 1.484 18.765 2.7l.801.2c3.013.755 5.377 1.361 6.941 1.361 1.825 0 2.814-.492 3.66-1.586h3.055v22.253h-4.89c-3.29-12.4-12.575-19.7-25.28-19.7-17.337 0-29.31 13.622-29.31 33.318 0 19.946 12.584 34.778 29.56 34.778 4.638 0 9.77-1.215 13.068-3.157V53.883c0-6.078-2.561-7.419-15.022-7.662v-4.617h40.55v4.617h-.001c-6.474.124-8.675 2.068-8.675 7.662v18.12c-8.795 4.011-21.364 7.656-31.877 7.656-30.898 0-45.805-17.146-45.805-40.488C191.264 16.916 209.71.5 235.722.5ZM39.705 2.33v4.74h-1.712c-6.351 0-9.526 2.066-9.526 8.878v19.086h40.301V16.31c0-6.808-2.685-9.24-9.77-9.24h-1.1V2.33h39.083v4.74h-2.203c-6.223 0-9.156 2.308-9.156 8.878v48.153c0 6.318 2.322 9.116 9.403 9.116h1.956v4.74H57.899v-4.742h1.708c6.476 0 9.161-2.796 9.161-9.364V42.21h-40.3V64.1c0 6.445 2.565 9.117 9.4 9.117h1.837v4.74H.5v-4.742h2.073c6.235 0 9.04-2.796 9.04-8.873V15.948c0-6.08-2.685-8.878-9.156-8.878H.5V2.33h39.205ZM154.04.5l24.433 61.772c3.175 8.026 5.857 10.452 12.208 10.943v4.741h-39.693v-4.741h4.271c7.451 0 8.551-3.282 6.11-9.238l-5.741-14.107h-26.752l.005.003-5.125 14.226c-2.2 6.2-2.07 9.116 9.65 9.116h1.586v4.741h-32.37v-4.741h1.837c5.858 0 8.912-2.67 11.966-11.182L137.313 4.03 135.967.5h18.073ZM141.59 14.733l-10.26 28.448h21.492L141.59 14.733ZM352.674 2.62c1.114 0 2.164.213 3.148.64a8.412 8.412 0 0 1 2.58 1.726 8.042 8.042 0 0 1 1.743 2.562c.427.984.64 2.034.64 3.148a7.702 7.702 0 0 1-.64 3.131 8.097 8.097 0 0 1-1.743 2.544 8.158 8.158 0 0 1-2.58 1.708 8.02 8.02 0 0 1-3.148.623 8.02 8.02 0 0 1-3.15-.623 8.158 8.158 0 0 1-2.579-1.708 8.097 8.097 0 0 1-1.743-2.544 7.702 7.702 0 0 1-.64-3.13c0-1.115.213-2.165.64-3.15a8.042 8.042 0 0 1 1.743-2.561 8.412 8.412 0 0 1 2.58-1.726 7.827 7.827 0 0 1 3.149-.64Zm0 1.245c-.95 0-1.839.178-2.669.534a6.854 6.854 0 0 0-2.17 1.459 6.854 6.854 0 0 0-1.459 2.17 6.702 6.702 0 0 0-.533 2.668c0 .925.177 1.803.533 2.633a7.07 7.07 0 0 0 1.459 2.188 6.71 6.71 0 0 0 2.17 1.477c.83.356 1.72.534 2.669.534.948 0 1.838-.178 2.668-.534a6.71 6.71 0 0 0 2.17-1.477 7.07 7.07 0 0 0 1.46-2.188c.355-.83.533-1.708.533-2.633 0-.948-.178-1.838-.534-2.668a6.854 6.854 0 0 0-1.459-2.17 6.854 6.854 0 0 0-2.17-1.46 6.702 6.702 0 0 0-2.668-.533Zm.035 2.242.318.009c.316.017.625.062.928.133a3.3 3.3 0 0 1 1.085.463c.32.213.575.486.765.818.19.332.284.747.284 1.245 0 .664-.19 1.204-.569 1.619-.38.415-.89.694-1.53.836l2.455 3.985h-1.992l-2.135-3.807h-1.174v3.807h-1.637V6.107h3.202Zm-.07 1.387h-1.495v2.598h1.316a3.48 3.48 0 0 0 1.352-.267c.427-.178.64-.54.64-1.085 0-.499-.195-.83-.586-.997-.392-.166-.801-.249-1.228-.249Z"></path></svg> 325 </a> 326 </div> 327 328 @using System; 329 @using System.Collections.Generic; 330 @using System.Linq; 331 @using Dynamicweb.Ecommerce.Variants; 332 @using HagsWeb.Library.BusinessObjects.UsersLists; 333 @using HagsWeb.Library.Methods.AssetManager; 334 @using HagsWeb.Library.Methods.ProductProperties; 335 @using HagsWeb.Library.State; 336 337 338 @helper renderCollectionCount() 339 { 340 List<ProductCollectionItem> productCollectionItems = SessionManager.UsersMyProductCollection != null ? SessionManager.UsersMyProductCollection : new List<ProductCollectionItem>(); 341 int collectionCount = productCollectionItems.Count(); 342 if ( productCollectionItems.Any() ) 343 { 344 <span id="collection-count" class="actions-list__badge">@collectionCount</span> 345 } 346 347 } 348 349 @helper renderMyCollectionPanel() 350 { 351 352 Dynamicweb.Frontend.PageView collectionPage = Dynamicweb.Frontend.PageView.Current() ?? Dynamicweb.Frontend.PageView.Current(); 353 Dynamicweb.Content.Area collectionArea = new Dynamicweb.Content.AreaService().GetArea(collectionPage.AreaID); 354 355 List<ProductCollectionItem> productCollectionItems = SessionManager.UsersMyProductCollection != null ? SessionManager.UsersMyProductCollection : new List<ProductCollectionItem>(); 356 357 bool isQuote = Convert.ToBoolean(collectionArea.Item["QuoteAndOrderChk"]); 358 bool isCatalog = true; // Always available; 359 string downloadingText = HagsWeb.Library.Utilities.DWUtilities.GetTranslation("Downloading...", "Downloading...", collectionArea.Culture); 360 int currentPage = collectionArea.ID; 361 string currentCollection = Dynamicweb.Context.Current.Request.QueryString.Get("collection"); 362 bool isLoggedIn = String.IsNullOrWhiteSpace(GetGlobalValue("Global:Extranet.UserName")) ? false : true; 363 string designBaseUrl = GetString("Template:DesignBaseUrl"); 364 365 List<ProductAsset> imageFileList = new List<ProductAsset>(); 366 List<ProductAsset> dwgFileList = new List<ProductAsset>(); 367 List<ProductAsset> instructionsFileList = new List<ProductAsset>(); 368 string contactUsLink = HagsWeb.Library.Utilities.DWUtilities.GetPageByNavigationTag("ContactUs", currentPage); // /kontakta-oss?mode=quote#contactForms // /kontakta-oss?success=True&mode=quote#contactForms // restful url 369 370 string printShout = Translate("SaveOrPrint", "Save or Print your Product PDF "); 371 string altCopy = @Translate("RemoveFromCollection", "Remove from my collection"); 372 string removeCopy = @Translate("RemoveFromCollection", "Remove from my collection"); 373 374 <div class="collection flow"> 375 376 <input type="hidden" id="isQuote" value="@isQuote"> 377 <input type="hidden" id="downloadingText" value="@downloadingText"> 378 <input type="hidden" id="collectionCount" value="@productCollectionItems.Count"> 379 380 <div id="instns_MyProductCollection" class="flow-xs"> 381 @if (productCollectionItems.Any() || !string.IsNullOrEmpty(currentCollection)) 382 { 383 <p>@Translate("ProductCollectionButtonInstructionsNew", "Go to <strong>My Collection</strong> to download files, create quotes or print a product catalogue.")</p> 384 <a class="btn btn--outline" href="/my-collection">@Translate("MyCollection", "My Collection")</a> 385 } 386 else 387 { 388 <p>@Translate("product-collection-instructions-copy-new", "To add a product simply click on <strong>Add to my collection</strong> on any product page. Once you have added products to a collection you will be able to print a product catalogue, download installation guides, images and DWG files or request a quote.")</p> 389 390 } 391 </div> 392 393 <div class="collection__ui"> 394 395 <div class="main-panel"> 396 397 <div class="panel-listing" id="prods_MyProductCollection"> 398 399 @if (productCollectionItems.Any()) 400 { 401 foreach (ProductCollectionItem item in productCollectionItems) 402 { 403 <div class="product-card collection__item"> 404 405 <div class="product-card__actions in-collection"> 406 407 <button type="button" class="action-btn" data-removeproductlist="@(item.ProductNumber)"> 408 <span class="visually-hidden">@removeCopy</span> 409 <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 212 212" class="h24-icon h24-icon--minus"><path fill="currentColor" fill-rule="evenodd" d="M106 6c55.193 0 100 44.807 100 100s-44.807 100-100 100S6 161.193 6 106 50.807 6 106 6Zm0 5.333c-26.124 0-49.792 10.603-66.928 27.74C21.936 56.207 11.333 79.875 11.333 106c0 26.124 10.603 49.792 27.74 66.928 17.135 17.136 40.803 27.739 66.927 27.739 26.124 0 49.792-10.603 66.928-27.74 17.136-17.135 27.739-40.803 27.739-66.927 0-26.124-10.603-49.792-27.74-66.928C155.793 21.936 132.125 11.333 106 11.333Zm28.772 87.504a6.5 6.5 0 0 1 6.5 6.5v1a6.5 6.5 0 0 1-6.5 6.5h-57a6.5 6.5 0 0 1-6.5-6.5v-1a6.5 6.5 0 0 1 6.5-6.5h57Z"></path></svg> 410 </button> 411 412 </div> 413 414 <div class="product-card__img-silo"> 415 416 @if (item.ProductImageUrl != null && !String.IsNullOrEmpty(item.ProductUrlReference)) 417 { 418 <a href="@item.ProductUrlReference"> 419 <img src="@item.ProductImageUrl"> 420 </a> 421 } 422 else 423 { 424 <a href="@item.ProductUrlReference" class="product-card__missing"> 425 <img src="@(designBaseUrl)assets/img/h24-see-saw.svg"> 426 <span>No Image Available</span> 427 </a> 428 } 429 430 </div> 431 432 <div class="product-card__copy"> 433 434 <p class="product-card__heading"> 435 <a href="@item.ProductUrlReference">@(item.ProductName)</a> 436 </p> 437 438 <p>@item.ProductNumber</p> 439 440 @if (!string.IsNullOrEmpty(item.ProductVariantId)) 441 { 442 Tuple<string, string, string, string, string, string, List<VariantOption>> optionsTuple = ProductFieldValues.GetProductOptions(item.ProductVariantId, collectionArea.EcomLanguageId); 443 444 //optionsTuple.Item1; "Red" 445 //optionsTuple.Item2; "Above Ground" 446 //optionsTuple.Item3; "Wooden Post" 447 //optionsTuple.Item4; "Wooden Post / HPL Panels" 448 //optionsTuple.Item5; "A310.png" 449 //optionsTuple.Item6; "A310-diagram.png" 450 //optionsTuple.Item7; List<VariantOption> Not used here 451 452 } 453 454 </div> 455 456 </div> 457 } 458 } 459 460 </div> 461 462 </div> 463 464 </div> <!-- collection__iu end --> 465 466 <div class="cluster"> 467 @if (productCollectionItems.Any()) 468 { 469 foreach (var item in productCollectionItems) 470 { 471 foreach (ProductAsset asset in item.AssetDownloads.Where(n => n.Index == HagsWeb.Library.Methods.AssetManager.AssetTypeEnum.ToFriendlyAssetName(HagsWeb.Library.Methods.AssetManager.AssetType.Images) && n.FileName == item.ProductNumber + ".jpg" || n.FileName == item.ProductNumber + "_Side.jpg" || n.FileName == item.ProductNumber + "_Top.jpg").ToList()) 472 { 473 imageFileList.Add(asset); 474 } 475 476 foreach (ProductAsset asset in item.AssetDownloads.Where(n => n.Index == HagsWeb.Library.Methods.AssetManager.AssetTypeEnum.ToFriendlyAssetName(HagsWeb.Library.Methods.AssetManager.AssetType.Drawings)).ToList()) 477 { 478 dwgFileList.Add(asset); 479 } 480 481 foreach (ProductAsset asset in item.AssetDownloads.Where(n => n.Index == HagsWeb.Library.Methods.AssetManager.AssetTypeEnum.ToFriendlyAssetName(HagsWeb.Library.Methods.AssetManager.AssetType.AssemblyInstructions)).ToList()) 482 { 483 instructionsFileList.Add(asset); 484 } 485 } 486 487 <button class="btn btn--warn" type="button" data-removeproductlist="All">@Translate("RemoveAll", "Remove All")</button> 488 } 489 490 </div> 491 492 @if (isLoggedIn && productCollectionItems.Any()) 493 { 494 <div id="panelcollectiondetails" class="flow-xs"> 495 <h5><strong>@Translate("Save collection?", "Save collection?")</strong></h5> 496 <p>@Translate("You are logged in", "You are currently logged in to HAGS Connect so you can save this collection to your account.")</p> 497 <button class="btn btn--outline" role="button" data-open-modal="#saveCollection">@Translate("Save collection", "Save this Collection")</button> 498 </div> 499 } 500 else 501 { 502 if (!isLoggedIn && productCollectionItems.Any()) 503 { 504 <div id="panelcollectiondetails" class="flow-xs"> 505 <h5><strong>@Translate("Save collection?", "Save collection?")</strong></h5> 506 <p>@Translate("To save login", "To save this collection into your HAGS Connect simply login using the button below.")</p> 507 <a class="btn btn--outline js-connect-login" href="/Admin/Public/Social/ExternalLogin.aspx?action=login&amp;providerID=3">HAGS Connect Login</a> 508 </div> 509 } 510 } 511 512 </div> <!-- collection end --> 513 } 514 515 516 517 518 519 520 521 522 523 524 525 526 527 <div class="header__actions" data-username="@currentUser"> 528 529 <ul role="list" class="actions-list"> 530 531 <li class="actions-list__item"> 532 <button class="header__action-btn js-action-btn" data-target="search-panel"> 533 <span class="visually-hidden">Search</span> 534 <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 212 212" class="actions-list__icon"><path d="M85.3 144a69 69 0 0 0 45.3-2.5l31.5 57 14.6-8.2-31.6-56.9A69.4 69.4 0 1 0 85.3 144Zm33.8-116.7a52.5 52.5 0 1 1-29 101 52.5 52.5 0 0 1 29-101Z" fill="currentColor" fill-rule="nonzero"></path></svg> 535 </button> 536 </li> 537 538 <li class="actions-list__item"> 539 <button class="header__action-btn js-action-btn" data-target="country-select-panel"> 540 <span class="visually-hidden">Choose Location</span> 541 <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 212 212" class="actions-list__icon"><g fill="currentColor" fill-rule="nonzero"><path d="M106 3C64.446 3 32 34.472 32 74.528c0 8.87 3.415 26.608 9.108 39.483 18.5 42.63 58.915 90.983 60.623 92.986 1.138 1.43 2.561 2.003 4.269 2.003 1.708 0 3.13-.858 4.27-2.003 1.707-2.003 42.122-50.355 60.622-92.986C176.585 101.136 180 83.397 180 74.528 180 34.472 147.554 3 106 3Zm54.362 106.433C146.13 142.336 117.1 180.39 106 194.123c-11.1-13.734-40.13-51.787-54.362-84.69-5.123-11.158-8.253-27.18-8.253-34.905 0-33.761 27.607-60.084 62.615-60.084s62.615 26.323 62.615 60.084c0 7.725-3.13 23.747-8.253 34.905Z"></path><path d="M106 37.333c-21.915 0-39.846 18.025-39.846 40.056 0 22.03 17.93 40.055 39.846 40.055 21.915 0 39.846-18.025 39.846-40.055S127.916 37.333 106 37.333ZM106 106c-15.654 0-28.462-12.875-28.462-28.611S90.346 48.778 106 48.778s28.462 12.875 28.462 28.61C134.462 93.126 121.654 106 106 106Z"></path></g></svg> 542 </button> 543 </li> 544 545 <li class="actions-list__item"> 546 <button class="header__action-btn js-action-btn" data-target="collection-panel" data-action-page="site-wide" data-action-type="Button" data-action-label="View Collection"> 547 <span class="visually-hidden">Product Collections</span> 548 <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 212 212" class="actions-list__icon"><path fill="currentColor" fill-rule="nonzero" d="M183.337 75.733c-.856-10.588-9.716-18.735-20.325-18.67h-20.475V39.663A36.668 36.668 0 0 0 124.24 7.914a36.552 36.552 0 0 0-36.611 0 36.667 36.667 0 0 0-18.297 31.748v17.402H48.857c-10.6-.047-19.45 8.09-20.307 18.669l-9.474 111.102a20.462 20.462 0 0 0 5.277 15.557A20.368 20.368 0 0 0 39.373 209h133.244a20.369 20.369 0 0 0 15.02-6.608 20.433 20.433 0 0 0 5.287-15.557l-9.587-111.102Zm-101.6-35.968c0-13.385 10.832-24.234 24.196-24.234 13.363 0 24.196 10.85 24.196 24.234v17.402H81.736V39.765Zm96.788 154.231a7.923 7.923 0 0 1-5.882 2.48H39.253a7.94 7.94 0 0 1-5.883-2.582 7.994 7.994 0 0 1-2.066-6.087l9.577-111.102h.009a7.948 7.948 0 0 1 7.966-7.215H69.36v15.78l-.01.01a6.209 6.209 0 0 0 6.208 6.208 6.209 6.209 0 0 0 6.208-6.208V69.49h48.393v15.79a6.2 6.2 0 0 0 6.198 6.208 6.203 6.203 0 0 0 6.208-6.208V69.49h20.446a7.958 7.958 0 0 1 7.948 7.308l9.576 111.103a7.935 7.935 0 0 1-2.038 6.095h.029Z"></path></svg> 549 </button> 550 <span class="actions-list__badge-silo" hx-get="@(urlLangHeader)/snippets/my-collection-count" hx-trigger="collectionChange from:document"> 551 @renderCollectionCount() 552 </span> 553 </li> 554 555 <li class="actions-list__item"> 556 <button class="header__action-btn js-action-btn" data-target="hags-connect-panel"> 557 <span class="visually-hidden">HAGS Connect</span> 558 <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 212 212" class="actions-list__icon"><path fill="currentColor" fill-rule="evenodd" d="M149.316 21.1C137.27 9.035 122.73 3 105.693 3 88.657 3 74.116 9.034 62.069 21.1 50.023 33.169 44 47.735 44 64.8c0 21.725 8.676 38.55 26.026 50.477l-12.248 85.885c-.267 1.877.167 3.574 1.302 5.091 1.136 1.517 2.641 2.41 4.515 2.678a7.13 7.13 0 0 0 .97.069h82.256c1.893 0 3.508-.67 4.847-2.011 1.339-1.341 2.008-2.96 2.008-4.856a6.78 6.78 0 0 0-.069-.97l-12.248-85.886c17.351-11.926 26.026-28.752 26.026-50.477 0-17.066-6.023-31.632-18.069-43.7Zm-10.398 174.167-11.753-82.409a6.73 6.73 0 0 1 .595-3.916 6.713 6.713 0 0 1 2.654-2.936c15.508-9.36 23.262-23.094 23.262-41.206 0-13.273-4.685-24.603-14.054-33.988-9.37-9.386-20.68-14.079-33.93-14.079s-24.56 4.693-33.928 14.079c-9.37 9.385-14.055 20.715-14.055 33.988 0 18.112 7.755 31.847 23.263 41.206a6.713 6.713 0 0 1 2.654 2.936 6.73 6.73 0 0 1 .594 3.916l-11.752 82.409h66.45Z"></path></svg> 559 </button> 560 </li> 561 562 <li class="actions-list__item" id="menu-panel-icon"> 563 <button class="header__action-btn js-action-btn" data-target="nav-panel"> 564 <span class="visually-hidden">Menu</span> 565 <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 212 212" class="actions-list__icon"><path d="M166.435 62H45.558C41.386 62 38 57.294 38 51.495S41.386 41 45.558 41h120.884c4.18 0 7.558 4.706 7.558 10.505-.007 5.799-3.386 10.495-7.565 10.495ZM173 106.5c0-5.796-3.379-10.5-7.558-10.5H44.558C40.386 96 37 100.704 37 106.5s3.386 10.5 7.558 10.5h120.891c4.172 0 7.551-4.704 7.551-10.5Zm0 54c0-5.806-3.379-10.5-7.558-10.5H44.558C40.386 150 37 154.694 37 160.5s3.386 10.5 7.558 10.5h120.891c4.172 0 7.551-4.694 7.551-10.5Z" fill="currentColor" fill-rule="nonzero"></path></svg> 566 </button> 567 </li> 568 569 </ul> 570 571 <div class="header__action-panel" id="help-panel"> 572 <button class="header__action-btn header__action-btn--close js-panel-close"> 573 <span class="visually-hidden">Close</span> 574 <svg viewbox="0 0 212 212" xmlns="http://www.w3.org/2000/svg" class="h24-icon h24-icon--close"><path d="M100 0c55.193 0 100 44.807 100 100s-44.807 100-100 100S0 155.193 0 100 44.807 0 100 0Zm0 5.333c-26.124 0-49.792 10.603-66.928 27.74C15.936 50.207 5.333 73.875 5.333 100c0 26.124 10.603 49.792 27.74 66.928 17.135 17.136 40.803 27.739 66.927 27.739 26.124 0 49.792-10.603 66.928-27.74 17.136-17.135 27.739-40.803 27.739-66.927 0-26.124-10.603-49.792-27.74-66.928C149.793 15.936 126.125 5.333 100 5.333Zm25.105 78.865L110.17 99.664l15.466 14.935a6.5 6.5 0 0 1 .16 9.191l-.694.72a6.5 6.5 0 0 1-9.191.16l-15.466-14.935-14.935 15.466a6.5 6.5 0 0 1-9.191.16l-.72-.694a6.5 6.5 0 0 1-.16-9.191l14.935-15.466-15.466-14.935a6.5 6.5 0 0 1-.16-9.191l.694-.72a6.5 6.5 0 0 1 9.191-.16L100.1 89.939l14.935-15.466a6.5 6.5 0 0 1 9.191-.16l.72.694a6.5 6.5 0 0 1 .16 9.191Z" fill="currentColor" fill-rule="evenodd"></path></svg> 575 </button> 576 <div class="header__action-area"> 577 <div class="header__action-copy flow-s"> 578 <div class="wrapper help-form"> 579 <div class="center-copy flow-xs"> 580 <h6>We are here to help!</h6> 581 <p><strong>Opening hours:</strong><br>Monday - Friday 7.30 - 16.00 (GMT+1)</p> 582 <p>Need advice or a quote? Our team is just a click away.</p> 583 584 <form method="post" action="/Admin/Public/404.aspx" enctype="multipart/form-data" class="dw-form-help" id="dw-form-help" onsubmit=""> 585 <input type="hidden" name="FormPID" value="140109"> 586 <input type="hidden" name="FormID" value="50"> 587 <input type="hidden" name="cmd" value="save"> 588 <input type="hidden" name="referer" value="https://hagsdev.hags.com/contact"> 589 <input type="hidden" name="_sys_to_email" value="mrsmith@dynamicweb.com" autocomplete="off"> 590 <input type="hidden" name="FormCH1_h" value="" autocomplete="off"> 591 <input type="hidden" name="FormCH1_f" value="ab58463a68d83b5bf40de2f6f06967eb" autocomplete="off"> 592 <input type="hidden" name="FormCH1_s" value="0e40bc9b9e89e9b04e4e895ed500d910" autocomplete="off"> 593 <input type="hidden" name="FormCH1_i" value="91822310a66a1e144b1b256215ca6b6a" autocomplete="off"> 594 <input type="hidden" name="c246f198423a0137b4c2c0930e6deaf7ts" value="KDpDyqTfFYKycw44M+GexKmDzdgXrG0U" style="display:none!important" autocomplete="off"> 595 <input type="text" name="c246f198423a0137b4c2c0930e6deaf7description" value="" style="display:none!important" autocomplete="off"> 596 <input type="text" name="c246f198423a0137b4c2c0930e6deaf7email" value="mrssmith@dynamicweb.com" style="display:none!important" autocomplete="off"> 597 <div class="flow-xs"> 598 <div class="form__control form__control--textinput"> 599 <label for="FirstName">First name <sup>*</sup></label> 600 <input type="text" id="FirstName" name="FirstName" required=""> 601 <div style="position: relative !important; height: 0px !important; width: 0px !important; float: left !important;" data-lastpass-icon-root=""></div> 602 </div> 603 <div class="form__control form__control--textinput"> 604 <label for="LastName">Last name <sup>*</sup></label> 605 <input type="text" id="LastName" name="LastName" required=""> 606 </div> 607 <div class="form__control form__control--textinput"> 608 <label for="Company">Company <sup>*</sup></label> 609 <input type="text" id="Company" name="Company" required=""> 610 </div> 611 <div class="form__control form__control--textinput"> 612 <label for="Email">Email <sup>*</sup></label> 613 <input type="text" id="Email" name="Email" required=""> 614 </div> 615 <div class="form__control form__control--select"> 616 <label for="TypeofEnquiry">Type of enquiry <sup>*</sup></label> 617 <select id="TypeofEnquiry" name="TypeofEnquiry" title="Type of Enquiry" required=""> 618 <option value="">Select...</option> 619 <option value="Talk to a Representative">Talk to a Representative</option> 620 <option value="Brochure/Literature">Brochure/Literature</option> 621 <option value="Place an Order">Place an Order</option> 622 <option value="Price/Quotation">Price/Quotation</option> 623 <option value="Installation/Technical">Installation/Technical</option> 624 <option value="After Sales">After Sales</option> 625 <option value="Spare Parts">Spare Parts</option> 626 <option value="Other">Other</option> 627 </select> 628 </div> 629 <div class="form__control form__control--select"> 630 <label for="Country">Country <sup>*</sup></label> 631 <select id="Country" name="Country" required=""> 632 <option value="">Select Country...</option> 633 <option value="Afghanistan">Afghanistan</option> 634 <option value="Albania">Albania</option> 635 <option value="Algeria">Algeria</option> 636 <option value="American Samoa">American Samoa</option> 637 <option value="Andorra">Andorra</option> 638 <option value="Angola">Angola</option> 639 <option value="Antigua and Barbuda">Antigua and Barbuda</option> 640 <option value="Argentina">Argentina</option> 641 <option value="Armenia">Armenia</option> 642 <option value="Aruba">Aruba</option> 643 <option value="Australia">Australia</option> 644 <option value="Austria">Austria</option> 645 <option value="Azerbaijan">Azerbaijan</option> 646 <option value="Bahamas, The">Bahamas, The</option> 647 <option value="Bahrain">Bahrain</option> 648 <option value="Bangladesh">Bangladesh</option> 649 <option value="Barbados">Barbados</option> 650 <option value="Belarus">Belarus</option> 651 <option value="Belgium">Belgium</option> 652 <option value="Belize">Belize</option> 653 <option value="Benin">Benin</option> 654 <option value="Bermuda">Bermuda</option> 655 <option value="Bhutan">Bhutan</option> 656 <option value="Bolivia">Bolivia</option> 657 <option value="Bosnia and Herzegovina">Bosnia and Herzegovina</option> 658 <option value="Botswana">Botswana</option> 659 <option value="Brazil">Brazil</option> 660 <option value="British Virgin Islands">British Virgin Islands</option> 661 <option value="Brunei Darussalam">Brunei Darussalam</option> 662 <option value="Bulgaria">Bulgaria</option> 663 <option value="Burkina Faso">Burkina Faso</option> 664 <option value="Burundi">Burundi</option> 665 <option value="Cabo Verde">Cabo Verde</option> 666 <option value="Cambodia">Cambodia</option> 667 <option value="Cameroon">Cameroon</option> 668 <option value="Canada">Canada</option> 669 <option value="Cayman Islands">Cayman Islands</option> 670 <option value="Central African Republic">Central African Republic</option> 671 <option value="Chad">Chad</option> 672 <option value="Channel Islands">Channel Islands</option> 673 <option value="Chile">Chile</option> 674 <option value="China">China</option> 675 <option value="Colombia">Colombia</option> 676 <option value="Comoros">Comoros</option> 677 <option value="Congo, Dem. Rep.">Congo, Dem. Rep.</option> 678 <option value="Congo, Rep.">Congo, Rep.</option> 679 <option value="Costa Rica">Costa Rica</option> 680 <option value="Côte d'Ivoire">Côte d'Ivoire</option> 681 <option value="Croatia">Croatia</option> 682 <option value="Cuba">Cuba</option> 683 <option value="Curaçao">Curaçao</option> 684 <option value="Cyprus">Cyprus</option> 685 <option value="Czech Republic">Czech Republic</option> 686 <option value="Denmark">Denmark</option> 687 <option value="Djibouti">Djibouti</option> 688 <option value="Dominica">Dominica</option> 689 <option value="Dominican Republic">Dominican Republic</option> 690 <option value="Ecuador">Ecuador</option> 691 <option value="Egypt, Arab Rep.">Egypt, Arab Rep.</option> 692 <option value="El Salvador">El Salvador</option> 693 <option value="Equatorial Guinea">Equatorial Guinea</option> 694 <option value="Eritrea">Eritrea</option> 695 <option value="Estonia">Estonia</option> 696 <option value="Eswatini">Eswatini</option> 697 <option value="Ethiopia">Ethiopia</option> 698 <option value="Faroe Islands">Faroe Islands</option> 699 <option value="Fiji">Fiji</option> 700 <option value="Finland">Finland</option> 701 <option value="France">France</option> 702 <option value="French Polynesia">French Polynesia</option> 703 <option value="Gabon">Gabon</option> 704 <option value="Gambia, The">Gambia, The</option> 705 <option value="Georgia">Georgia</option> 706 <option value="Germany">Germany</option> 707 <option value="Ghana">Ghana</option> 708 <option value="Gibraltar">Gibraltar</option> 709 <option value="Greece">Greece</option> 710 <option value="Greenland">Greenland</option> 711 <option value="Grenada">Grenada</option> 712 <option value="Guam">Guam</option> 713 <option value="Guatemala">Guatemala</option> 714 <option value="Guinea">Guinea</option> 715 <option value="Guinea-Bissau">Guinea-Bissau</option> 716 <option value="Guyana">Guyana</option> 717 <option value="Haiti">Haiti</option> 718 <option value="Honduras">Honduras</option> 719 <option value="Hong Kong SAR, China">Hong Kong SAR, China</option> 720 <option value="Hungary">Hungary</option> 721 <option value="Iceland">Iceland</option> 722 <option value="India">India</option> 723 <option value="Indonesia">Indonesia</option> 724 <option value="Iran, Islamic Rep.">Iran, Islamic Rep.</option> 725 <option value="Iraq">Iraq</option> 726 <option value="Ireland">Ireland</option> 727 <option value="Isle of Man">Isle of Man</option> 728 <option value="Israel">Israel</option> 729 <option value="Italy">Italy</option> 730 <option value="Jamaica">Jamaica</option> 731 <option value="Japan">Japan</option> 732 <option value="Jordan">Jordan</option> 733 <option value="Kazakhstan">Kazakhstan</option> 734 <option value="Kenya">Kenya</option> 735 <option value="Kiribati">Kiribati</option> 736 <option value="Korea, Dem. People's Rep.">Korea, Dem. People's Rep.</option> 737 <option value="Korea, Rep.">Korea, Rep.</option> 738 <option value="Kosovo">Kosovo</option> 739 <option value="Kuwait">Kuwait</option> 740 <option value="Kyrgyz Republic">Kyrgyz Republic</option> 741 <option value="Lao PDR">Lao PDR</option> 742 <option value="Latvia">Latvia</option> 743 <option value="Lebanon">Lebanon</option> 744 <option value="Lesotho">Lesotho</option> 745 <option value="Liberia">Liberia</option> 746 <option value="Libya">Libya</option> 747 <option value="Liechtenstein">Liechtenstein</option> 748 <option value="Lithuania">Lithuania</option> 749 <option value="Luxembourg">Luxembourg</option> 750 <option value="Macao SAR, China">Macao SAR, China</option> 751 <option value="Madagascar">Madagascar</option> 752 <option value="Malawi">Malawi</option> 753 <option value="Malaysia">Malaysia</option> 754 <option value="Maldives">Maldives</option> 755 <option value="Mali">Mali</option> 756 <option value="Malta">Malta</option> 757 <option value="Marshall Islands">Marshall Islands</option> 758 <option value="Mauritania">Mauritania</option> 759 <option value="Mauritius">Mauritius</option> 760 <option value="Mexico">Mexico</option> 761 <option value="Micronesia, Fed. Sts.">Micronesia, Fed. Sts.</option> 762 <option value="Moldova">Moldova</option> 763 <option value="Monaco">Monaco</option> 764 <option value="Mongolia">Mongolia</option> 765 <option value="Montenegro">Montenegro</option> 766 <option value="Morocco">Morocco</option> 767 <option value="Mozambique">Mozambique</option> 768 <option value="Myanmar">Myanmar</option> 769 <option value="Namibia">Namibia</option> 770 <option value="Nauru">Nauru</option> 771 <option value="Nepal">Nepal</option> 772 <option value="Netherlands">Netherlands</option> 773 <option value="New Caledonia">New Caledonia</option> 774 <option value="New Zealand">New Zealand</option> 775 <option value="Nicaragua">Nicaragua</option> 776 <option value="Niger">Niger</option> 777 <option value="Nigeria">Nigeria</option> 778 <option value="North Macedonia">North Macedonia</option> 779 <option value="Northern Mariana Islands">Northern Mariana Islands</option> 780 <option value="Norway">Norway</option> 781 <option value="Oman">Oman</option> 782 <option value="Pakistan">Pakistan</option> 783 <option value="Palau">Palau</option> 784 <option value="Panama">Panama</option> 785 <option value="Papua New Guinea">Papua New Guinea</option> 786 <option value="Paraguay">Paraguay</option> 787 <option value="Peru">Peru</option> 788 <option value="Philippines">Philippines</option> 789 <option value="Poland">Poland</option> 790 <option value="Portugal">Portugal</option> 791 <option value="Puerto Rico">Puerto Rico</option> 792 <option value="Qatar">Qatar</option> 793 <option value="Romania">Romania</option> 794 <option value="Russian Federation">Russian Federation</option> 795 <option value="Rwanda">Rwanda</option> 796 <option value="Samoa">Samoa</option> 797 <option value="San Marino">San Marino</option> 798 <option value="São Tomé and Príncipe">São Tomé and Príncipe</option> 799 <option value="Saudi Arabia">Saudi Arabia</option> 800 <option value="Senegal">Senegal</option> 801 <option value="Serbia">Serbia</option> 802 <option value="Seychelles">Seychelles</option> 803 <option value="Sierra Leone">Sierra Leone</option> 804 <option value="Singapore">Singapore</option> 805 <option value="Sint Maarten (Dutch part)">Sint Maarten (Dutch part)</option> 806 <option value="Slovak Republic">Slovak Republic</option> 807 <option value="Slovenia">Slovenia</option> 808 <option value="Solomon Islands">Solomon Islands</option> 809 <option value="Somalia">Somalia</option> 810 <option value="South Africa">South Africa</option> 811 <option value="South Sudan">South Sudan</option> 812 <option value="Spain">Spain</option> 813 <option value="Sri Lanka">Sri Lanka</option> 814 <option value="St. Kitts and Nevis">St. Kitts and Nevis</option> 815 <option value="St. Lucia">St. Lucia</option> 816 <option value="St. Martin (French part)">St. Martin (French part)</option> 817 <option value="St. Vincent and the Grenadines">St. Vincent and the Grenadines</option> 818 <option value="Sudan">Sudan</option> 819 <option value="Suriname">Suriname</option> 820 <option value="Sweden">Sweden</option> 821 <option value="Switzerland">Switzerland</option> 822 <option value="Syrian Arab Republic">Syrian Arab Republic</option> 823 <option value="Taiwan, China">Taiwan, China</option> 824 <option value="Tajikistan">Tajikistan</option> 825 <option value="Tanzania">Tanzania</option> 826 <option value="Thailand">Thailand</option> 827 <option value="Timor-Leste">Timor-Leste</option> 828 <option value="Togo">Togo</option> 829 <option value="Tonga">Tonga</option> 830 <option value="Trinidad and Tobago">Trinidad and Tobago</option> 831 <option value="Tunisia">Tunisia</option> 832 <option value="Turkey">Turkey</option> 833 <option value="Turkmenistan">Turkmenistan</option> 834 <option value="Tuvalu">Tuvalu</option> 835 <option value="Uganda">Uganda</option> 836 <option value="Ukraine">Ukraine</option> 837 <option value="United Arab Emirates">United Arab Emirates</option> 838 <option value="United Kingdom">United Kingdom</option> 839 <option value="United States">United States</option> 840 <option value="Uruguay">Uruguay</option> 841 <option value="Uzbekistan">Uzbekistan</option> 842 <option value="Vanuatu">Vanuatu</option> 843 <option value="Venezuela, RB">Venezuela, RB</option> 844 <option value="Vietnam">Vietnam</option> 845 <option value="Virgin Islands (U.S.)">Virgin Islands (U.S.)</option> 846 <option value="West Bank and Gaza">West Bank and Gaza</option> 847 <option value="Yemen, Rep.">Yemen, Rep.</option> 848 <option value="Zambia">Zambia</option> 849 <option value="Zimbabwe">Zimbabwe</option> 850 </select> 851 </div> 852 <div class="form__control form__control--textinput"> 853 <label for="PostalCode">Postal Code <sup>*</sup></label> 854 <input type="text" id="PostalCode" name="PostalCode" class="input-small" required=""> 855 </div> 856 <div class="form__control form__control--textarea"> 857 <label for="Message">Message <sup>*</sup></label> 858 <textarea rows="8" id="Message" name="Message" required=""></textarea> 859 </div> 860 <div class="form__control form__control--checkbox"> 861 <label for="ContactConsent">I consent to HAGS retaining my contact information <sup>*</sup></label> 862 <input type="checkbox" id="ContactConsent" name="ContactConsent" class="opt-in" required=""> 863 </div> 864 <div class="form__control form__control--submit"> 865 <button class="btn btn--outline">Send enquiry</button> 866 </div> 867 </div> 868 </form> 869 <script> 870 h24.dwFormFunctions['dw-form-help'] = function(e) { 871 s=function(e){e.elements['FormCH1_h'].value='c246f198423a0137b4c2c0930e6deaf7';e.elements['_sys_to_email'].value='';e.setAttribute('action', '/Default.aspx?ID=19166&PID=140109');return true};return s(e); 872 }; 873 </script> 874 </div> 875 </div> 876 </div> 877 </div> 878 </div> 879 880 @helper renderSearch(Dynamicweb.Content.Area masterArea) 881 { 882 883 string searchPageUrl = Dynamicweb.Frontend.SearchEngineFriendlyURLs.GetFriendlyUrl(GetInteger("DwAreaSearchPageID")); 884 string langCode = @GetGlobalValue("Global:Area.LongLang"); 885 string searchId = @GetString("DwAreaSearchPageID"); 886 string searchTranslate = Translate("Search", "Search"); 887 string testHtmx = System.Web.HttpContext.Current.Request["htmx"]; 888 string weglotLang = System.Web.HttpContext.Current.Request.Headers["weglot-language"]; 889 string urlLang = weglotLang != "" ? "/" + weglotLang : ""; 890 //ignore the default en code 891 urlLang = weglotLang == "en" ? "" : urlLang; 892 893 <script type="text/javascript" src="https://cdn.weglot.com/weglot.min.js"></script> 894 895 <form id="search-box" name="searchBox" action="Default.aspx" method="get"> 896 <div class="form-group flow-s"> 897 <input type="hidden" name="ID" value="@searchId"> 898 <input type="hidden" id="search-advanced-culture" value="@langCode"> 899 <input type="hidden" id="search-advanced-resultsurl" value="@searchPageUrl"> 900 <input type="hidden" id="Searchtype" value=""> 901 <input type="hidden" id="search-advanced-pageAreaId" value="@(masterArea.ID)"> 902 <input type="hidden" id="search-advanced-pagelanguage" name="areaLanguage" value="LANG1"> 903 904 905 <label for="InputSearch"><h5>@(searchTranslate)</h5></label> 906 907 <!--input type="search" name="q" class="form-control" id="InputSearch" maxlength="45" placeholder="@(searchTranslate) HAGS" onkeyup="return forceLower(this);" autocomplete="off" /--> 908 @if ( true ) { 909 <p data-weglot="@weglotLang"> 910 <input type="search" id="InputSearch" class="search" name="q" placeholder="@(searchTranslate) HAGS" hx-get="@(urlLang)/snippets/suggestions?areaLanguage=LANG1" hx-params="q" hx-trigger="input[this.value.length > 3] changed delay:300ms,input[this.value.length == 0]" hx-target="#search-suggest"> 911 </p> 912 } 913 914 <button>@Translate("Go", "Go")</button> 915 </div> 916 </form> 917 918 <div class="header__action-area"> 919 <ul class="flow-xs" role="list" id="search-suggest"></ul> 920 </div> 921 } 922 923 <div class="header__action-panel" id="search-panel"> 924 <button class="header__action-btn header__action-btn--close js-panel-close"> 925 <span class="visually-hidden">Close</span> 926 <svg viewbox="0 0 212 212" xmlns="http://www.w3.org/2000/svg" class="h24-icon h24-icon--close"><path d="M100 0c55.193 0 100 44.807 100 100s-44.807 100-100 100S0 155.193 0 100 44.807 0 100 0Zm0 5.333c-26.124 0-49.792 10.603-66.928 27.74C15.936 50.207 5.333 73.875 5.333 100c0 26.124 10.603 49.792 27.74 66.928 17.135 17.136 40.803 27.739 66.927 27.739 26.124 0 49.792-10.603 66.928-27.74 17.136-17.135 27.739-40.803 27.739-66.927 0-26.124-10.603-49.792-27.74-66.928C149.793 15.936 126.125 5.333 100 5.333Zm25.105 78.865L110.17 99.664l15.466 14.935a6.5 6.5 0 0 1 .16 9.191l-.694.72a6.5 6.5 0 0 1-9.191.16l-15.466-14.935-14.935 15.466a6.5 6.5 0 0 1-9.191.16l-.72-.694a6.5 6.5 0 0 1-.16-9.191l14.935-15.466-15.466-14.935a6.5 6.5 0 0 1-.16-9.191l.694-.72a6.5 6.5 0 0 1 9.191-.16L100.1 89.939l14.935-15.466a6.5 6.5 0 0 1 9.191-.16l.72.694a6.5 6.5 0 0 1 .16 9.191Z" fill="currentColor" fill-rule="evenodd"></path></svg> 927 </button> 928 <div class="header__action-copy flow-s"> 929 @renderSearch(masterArea) 930 </div> 931 </div> 932 933 @*if ( currentUser == "Kevin Lees" || currentUser == "Ian Mckay" )*@ 934 @if ( true ) 935 { 936 <div class="header__action-panel" id="hags-connect-panel"> 937 938 <button class="header__action-btn header__action-btn--close js-panel-close"> 939 <span class="visually-hidden">Close</span> 940 <svg viewbox="0 0 212 212" xmlns="http://www.w3.org/2000/svg" class="h24-icon h24-icon--close"><path d="M100 0c55.193 0 100 44.807 100 100s-44.807 100-100 100S0 155.193 0 100 44.807 0 100 0Zm0 5.333c-26.124 0-49.792 10.603-66.928 27.74C15.936 50.207 5.333 73.875 5.333 100c0 26.124 10.603 49.792 27.74 66.928 17.135 17.136 40.803 27.739 66.927 27.739 26.124 0 49.792-10.603 66.928-27.74 17.136-17.135 27.739-40.803 27.739-66.927 0-26.124-10.603-49.792-27.74-66.928C149.793 15.936 126.125 5.333 100 5.333Zm25.105 78.865L110.17 99.664l15.466 14.935a6.5 6.5 0 0 1 .16 9.191l-.694.72a6.5 6.5 0 0 1-9.191.16l-15.466-14.935-14.935 15.466a6.5 6.5 0 0 1-9.191.16l-.72-.694a6.5 6.5 0 0 1-.16-9.191l14.935-15.466-15.466-14.935a6.5 6.5 0 0 1-.16-9.191l.694-.72a6.5 6.5 0 0 1 9.191-.16L100.1 89.939l14.935-15.466a6.5 6.5 0 0 1 9.191-.16l.72.694a6.5 6.5 0 0 1 .16 9.191Z" fill="currentColor" fill-rule="evenodd"></path></svg> 941 </button> 942 @{ 943 string thisPageID = @GetGlobalValue("Global:Page.ID"); 944 string hagsConnectTitle = @Translate("HAGS Connect", "HAGS Connect"); 945 } 946 947 <div class="header__action-copy flow-s"> 948 949 <h5>@hagsConnectTitle</h5> 950 951 <p>@Translate("HAGSConnectIntro", "A brief block of introductory copy about HAGS Connect.")</p> 952 953 @if (!String.IsNullOrWhiteSpace(GetGlobalValue("Global:Extranet.UserName"))) 954 { 955 956 <p> 957 <strong>@Translate("Welcome", "Welcome"), @GetGlobalValue("Global:Extranet.FirstName")</strong> 958 </p> 959 960 @RenderNavigation(new{ 961 ParentTag = "MyHags", 962 Template = "simple-nav.xslt" 963 }) 964 965 <ul role="list" class="icon-list"> 966 <li> 967 <a href="/admin/Public/ExtranetLogOff.aspx?ID=@thisPageID"> 968 <img src="@(designBaseUrl)assets/svg-icons/connect/logout-icon-2.svg"> 969 <span>@Translate("SignOut", "Sign Out")</span> 970 </a> 971 </li> 972 </ul> 973 974 975 976 } 977 else 978 { 979 if (Dynamicweb.Configuration.SystemConfiguration.Instance.GetBoolean("/Globalsettings/System/MyHags/SSOLoginActive")) 980 { 981 <a href="/Admin/Public/Social/ExternalLogin.aspx?action=login&amp;providerID=3">HAGS Connect Login</a> 982 } 983 } 984 985 </div> 986 </div> 987 } 988 989 990 @helper renderCountryList(string outputElement = "list") 991 { 992 // create a list of 'anonymous' objects to hold the weglot sites - move to site config at some point 993 var allCountries = new List<object> 994 { 995 new { Url = "https://hagsdev.hags.com", Image = "globe.svg", Title = "Global", Active = true }, 996 new { Url = "be-nl", Image = "be.svg", Title = "Belgium (Flemish)", Active = true }, 997 new { Url = "be-fr", Image = "be.svg", Title = "Belgium (French)", Active = true }, 998 new { Url = "zh", Image = "cn.svg", Title = "China", Active = true }, 999 new { Url = "hr", Image = "hr.svg", Title = "Croatia", Active = true }, 1000 new { Url = "https://hags.dk/", Image = "dk.svg", Title = "Denmark", Active = true }, 1001 new { Url = "et", Image = "ee.svg", Title = "Estonia", Active = true }, 1002 new { Url = "fi", Image = "fi.svg", Title = "Finland", Active = true }, 1003 new { Url = "fr", Image = "fr.svg", Title = "France", Active = true }, 1004 new { Url = "de", Image = "de.svg", Title = "Germany", Active = true }, 1005 new { Url = "hu", Image = "hu.svg", Title = "Hungary", Active = true }, 1006 new { Url = "it", Image = "it.svg", Title = "Italy", Active = true}, 1007 new { Url = "ja", Image = "jp.svg", Title = "Japan", Active = true}, 1008 new { Url = "lv", Image = "lv.svg", Title = "Latvia", Active = true}, 1009 new { Url = "nl", Image = "nl.svg", Title = "Netherlands", Active = true }, 1010 new { Url = "no", Image = "no.svg", Title = "Norway", Active = true }, 1011 new { Url = "pl", Image = "pl.svg", Title = "Poland", Active = true }, 1012 new { Url = "sa", Image = "rs.svg", Title = "Serbia", Active = true }, 1013 new { Url = "ko", Image = "kr.svg", Title = "South Korea", Active = true }, 1014 new { Url = "es", Image = "es.svg", Title = "Spain", Active = true }, 1015 new { Url = "https://hags.se/", Image = "se.svg", Title = "Sweden", Active = true }, 1016 new { Url = "ch-de", Image = "ch.svg", Title = "Switzerland (German)", Active = true }, 1017 new { Url = "tr", Image = "tr.svg", Title = "Turkey", Active = true}, 1018 new { Url = "https://hags.co.uk/", Image = "gb.svg", Title = "United Kingdom", Active = true } 1019 }; 1020 1021 // sort the list - the getType etc.. is because it's anonymous 1022 //var sortedList = allCountries.OrderBy(item => item.GetType().GetProperty("Title").GetValue(item)).ToList(); 1023 var sortedList = allCountries; 1024 1025 if ( outputElement == "list" ) 1026 { 1027 1028 <ul class="icon-list" role="list"> 1029 @foreach (var thisCountry in sortedList) 1030 { 1031 var thisActive = thisCountry.GetType().GetProperty("Active").GetValue(thisCountry); 1032 var thisImage = thisCountry.GetType().GetProperty("Image").GetValue(thisCountry); 1033 var thisTitle = thisCountry.GetType().GetProperty("Title").GetValue(thisCountry); 1034 var thisUrl = thisCountry.GetType().GetProperty("Url").GetValue(thisCountry); 1035 bool isActive = Convert.ToBoolean(thisActive); 1036 1037 if (isActive) 1038 { 1039 if ( thisTitle == "Global" ) { 1040 <li> 1041 <a href="@thisUrl" data-wg-notranslate=""> 1042 <img src="/Files/Templates/Designs/Hags2024/icons/flags/@thisImage" alt="@thisTitle"> 1043 <span data-wg-translate="">@thisTitle</span> 1044 </a> 1045 </li> 1046 } 1047 else 1048 { 1049 <li> 1050 <a href="@thisUrl"> 1051 <img src="/Files/Templates/Designs/Hags2024/icons/flags/@thisImage" alt="@thisTitle"> 1052 <span>@thisTitle</span> 1053 </a> 1054 </li> 1055 } 1056 1057 } 1058 } 1059 </ul> 1060 } 1061 } 1062 1063 1064 1065 1066 <div class="header__action-panel" id="country-select-panel"> 1067 1068 <button class="header__action-btn header__action-btn--close js-panel-close"> 1069 <span class="visually-hidden">Close</span> 1070 <svg viewbox="0 0 212 212" xmlns="http://www.w3.org/2000/svg" class="h24-icon h24-icon--close"><path d="M100 0c55.193 0 100 44.807 100 100s-44.807 100-100 100S0 155.193 0 100 44.807 0 100 0Zm0 5.333c-26.124 0-49.792 10.603-66.928 27.74C15.936 50.207 5.333 73.875 5.333 100c0 26.124 10.603 49.792 27.74 66.928 17.135 17.136 40.803 27.739 66.927 27.739 26.124 0 49.792-10.603 66.928-27.74 17.136-17.135 27.739-40.803 27.739-66.927 0-26.124-10.603-49.792-27.74-66.928C149.793 15.936 126.125 5.333 100 5.333Zm25.105 78.865L110.17 99.664l15.466 14.935a6.5 6.5 0 0 1 .16 9.191l-.694.72a6.5 6.5 0 0 1-9.191.16l-15.466-14.935-14.935 15.466a6.5 6.5 0 0 1-9.191.16l-.72-.694a6.5 6.5 0 0 1-.16-9.191l14.935-15.466-15.466-14.935a6.5 6.5 0 0 1-.16-9.191l.694-.72a6.5 6.5 0 0 1 9.191-.16L100.1 89.939l14.935-15.466a6.5 6.5 0 0 1 9.191-.16l.72.694a6.5 6.5 0 0 1 .16 9.191Z" fill="currentColor" fill-rule="evenodd"></path></svg> 1071 </button> 1072 <div class="header__action-copy flow-s"> 1073 <h5>@Translate("SelectYourLocation", "Select your location")</h5> 1074 <div class="header__action-area"> 1075 @renderCountryList("list") 1076 </div> 1077 </div> 1078 </div> 1079 1080 1081 <div class="header__action-panel" id="collection-panel"> 1082 1083 <button class="header__action-btn header__action-btn--close js-panel-close"> 1084 <span class="visually-hidden">Close</span> 1085 <svg viewbox="0 0 212 212" xmlns="http://www.w3.org/2000/svg" class="h24-icon h24-icon--close"><path d="M100 0c55.193 0 100 44.807 100 100s-44.807 100-100 100S0 155.193 0 100 44.807 0 100 0Zm0 5.333c-26.124 0-49.792 10.603-66.928 27.74C15.936 50.207 5.333 73.875 5.333 100c0 26.124 10.603 49.792 27.74 66.928 17.135 17.136 40.803 27.739 66.927 27.739 26.124 0 49.792-10.603 66.928-27.74 17.136-17.135 27.739-40.803 27.739-66.927 0-26.124-10.603-49.792-27.74-66.928C149.793 15.936 126.125 5.333 100 5.333Zm25.105 78.865L110.17 99.664l15.466 14.935a6.5 6.5 0 0 1 .16 9.191l-.694.72a6.5 6.5 0 0 1-9.191.16l-15.466-14.935-14.935 15.466a6.5 6.5 0 0 1-9.191.16l-.72-.694a6.5 6.5 0 0 1-.16-9.191l14.935-15.466-15.466-14.935a6.5 6.5 0 0 1-.16-9.191l.694-.72a6.5 6.5 0 0 1 9.191-.16L100.1 89.939l14.935-15.466a6.5 6.5 0 0 1 9.191-.16l.72.694a6.5 6.5 0 0 1 .16 9.191Z" fill="currentColor" fill-rule="evenodd"></path></svg> 1086 </button> 1087 1088 <div class="header__action-copy flow-s"> 1089 1090 <h5>@Translate("MyProductCollection", "My Product Collection")</h5> 1091 1092 <div class="header__action-area" id="" hx-get="@(urlLangHeader)/snippets/my-collection-panel" hx-trigger="collectionChange from:document"> 1093 1094 @renderMyCollectionPanel() 1095 1096 </div> 1097 1098 </div> 1099 1100 </div> 1101 1102 1103 <div class="header__action-panel" id="search-panel"> 1104 <button class="header__action-btn header__action-btn--close js-panel-close"> 1105 <span class="visually-hidden">Close</span> 1106 <svg viewbox="0 0 212 212" xmlns="http://www.w3.org/2000/svg" class="h24-icon h24-icon--close"><path d="M100 0c55.193 0 100 44.807 100 100s-44.807 100-100 100S0 155.193 0 100 44.807 0 100 0Zm0 5.333c-26.124 0-49.792 10.603-66.928 27.74C15.936 50.207 5.333 73.875 5.333 100c0 26.124 10.603 49.792 27.74 66.928 17.135 17.136 40.803 27.739 66.927 27.739 26.124 0 49.792-10.603 66.928-27.74 17.136-17.135 27.739-40.803 27.739-66.927 0-26.124-10.603-49.792-27.74-66.928C149.793 15.936 126.125 5.333 100 5.333Zm25.105 78.865L110.17 99.664l15.466 14.935a6.5 6.5 0 0 1 .16 9.191l-.694.72a6.5 6.5 0 0 1-9.191.16l-15.466-14.935-14.935 15.466a6.5 6.5 0 0 1-9.191.16l-.72-.694a6.5 6.5 0 0 1-.16-9.191l14.935-15.466-15.466-14.935a6.5 6.5 0 0 1-.16-9.191l.694-.72a6.5 6.5 0 0 1 9.191-.16L100.1 89.939l14.935-15.466a6.5 6.5 0 0 1 9.191-.16l.72.694a6.5 6.5 0 0 1 .16 9.191Z" fill="currentColor" fill-rule="evenodd"></path></svg> 1107 </button> 1108 <div class="header__action-copy flow-s"> 1109 @renderSearch(masterArea) 1110 </div> 1111 </div> 1112 1113 <div class="header__action-panel" id="nav-panel"> 1114 <button class="header__action-btn header__action-btn--close js-panel-close"> 1115 <span class="visually-hidden">Close</span> 1116 <svg viewbox="0 0 212 212" xmlns="http://www.w3.org/2000/svg" class="h24-icon h24-icon--close"><path d="M100 0c55.193 0 100 44.807 100 100s-44.807 100-100 100S0 155.193 0 100 44.807 0 100 0Zm0 5.333c-26.124 0-49.792 10.603-66.928 27.74C15.936 50.207 5.333 73.875 5.333 100c0 26.124 10.603 49.792 27.74 66.928 17.135 17.136 40.803 27.739 66.927 27.739 26.124 0 49.792-10.603 66.928-27.74 17.136-17.135 27.739-40.803 27.739-66.927 0-26.124-10.603-49.792-27.74-66.928C149.793 15.936 126.125 5.333 100 5.333Zm25.105 78.865L110.17 99.664l15.466 14.935a6.5 6.5 0 0 1 .16 9.191l-.694.72a6.5 6.5 0 0 1-9.191.16l-15.466-14.935-14.935 15.466a6.5 6.5 0 0 1-9.191.16l-.72-.694a6.5 6.5 0 0 1-.16-9.191l14.935-15.466-15.466-14.935a6.5 6.5 0 0 1-.16-9.191l.694-.72a6.5 6.5 0 0 1 9.191-.16L100.1 89.939l14.935-15.466a6.5 6.5 0 0 1 9.191-.16l.72.694a6.5 6.5 0 0 1 .16 9.191Z" fill="currentColor" fill-rule="evenodd"></path></svg> 1117 </button> 1118 <div class="header__action-area"> 1119 @RenderSnippet("navigation") 1120 </div> 1121 </div> 1122 1123 </div> 1124 1125 </div> 1126 1127 1128 <div class="header__local-nav"> 1129 1130 @SnippetStart("navigation") 1131 <nav class="nav"> 1132 <!--button id="menu-toggle" class="menu-toggle menu-toggle--main" aria-expanded="false" aria-controls="main-nav"> 1133 <div class="menu-toggle__box"> 1134 <div class="menu-toggle__lines"></div> 1135 </div> 1136 <span class="visually-hidden">Menu</span> 1137 </button--> 1138 @GetValue("DwNavigation(mainnav)") 1139 </nav> 1140 @SnippetEnd("navigation") 1141 1142 @RenderSnippet("navigation") 1143 1144 @* This snippet generates the product listing links on levels 4 and 5 of the site *@ 1145 @* In a snippet because these xslt built f*****s are only processed on PAGE templates not paragraph templates *@ 1146 @* The snippet is then included in the relevant PARAGRAPH template *@ 1147 1148 @SnippetStart("nextLevel3Nav") 1149 <section> 1150 <div class="wrapper"> 1151 @GetValue("DwNavigation(productlistingnavipema)") 1152 </div> 1153 </section> 1154 @SnippetEnd("nextLevel3Nav") 1155 1156 @SnippetStart("nextLevelNav") 1157 <section> 1158 <div class="wrapper"> 1159 @GetValue("DwNavigation(productlistingnav)") 1160 </div> 1161 </section> 1162 @SnippetEnd("nextLevelNav") 1163 1164 </div></div></header> 1165 @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>> 1166 1167 1168 1169 <main class="flow-page" id="content">@GetValue("DwContent(content)")</main> 1170 @if (GetLoop("Item.Area.Accreditation_Images").Count() > 0) 1171 { 1172 <section class="creds"> 1173 <div class="wrapper"> 1174 <ul class="creds__list" role="list"> 1175 <!-- Accreditation Carousel items --> 1176 @foreach (var item in @GetLoop("Item.Area.Accreditation_Images")) 1177 { 1178 var imageUrl = item.GetString("Item.Area.Accreditation_Images.Image"); 1179 var imageAlt = item.GetString("Item.Area.Accreditation_Images.Alternative_Text"); 1180 string imageLink = item.GetString("Item.Area.Accreditation_Images.Link"); 1181 var imageTitle = item.GetString("Item.Area.Accreditation_Images.Title"); 1182 1183 if (!string.IsNullOrWhiteSpace(imageLink)) 1184 { 1185 <li class="creds__item"> 1186 <a href="@imageLink"> 1187 <img class="creds__img" src="@imageUrl" alt="@imageAlt"> 1188 </a> 1189 </li> 1190 } 1191 else 1192 { 1193 <li class="creds__item"> 1194 <img class="creds__img" src="@imageUrl" alt="@imageAlt" class="img-responsive"> 1195 </li> 1196 } 1197 1198 } 1199 </ul> 1200 </div> 1201 </section> 1202 } 1203 1204 <footer class="footer"> 1205 <div class="inner-wrapper"> 1206 1207 <div class="footer__logo" itemscope="" itemtype="http://schema.org/Organization"> 1208 <a href="Default.aspx?ID=@siteFirstPageId" itemprop="url"> 1209 <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 362 81" class="hags-logo"><path fill="currentColor" fill-rule="evenodd" d="M311.22.5c9.399 0 16.725 3.168 18.555 3.168.862 0 1.596-.243 2.697-1.338h2.558l2.318 19.692h-4.876c-2.697-9.846-10.513-16.292-19.911-16.292-6.837 0-11.97 3.65-11.97 8.39 0 11.187 20.279 13.258 33.958 26.873 5.004 4.986 6.951 10.214 6.951 16.05 0 12.648-11.47 22.618-26.006 22.618-9.77 0-18.687-3.888-20.887-3.888-1.1 0-1.952.611-2.562 1.947h-3.178L285.82 55.59v-.002h4.757c4.029 12.031 11.236 18.237 20.88 18.237 8.059 0 14.17-5.11 14.17-11.917 0-18.122-39.204-17.509-39.204-41.586C286.423 8.645 296.681.5 311.22.5Zm-75.498 0c7.426 0 13.874 1.484 18.765 2.7l.801.2c3.013.755 5.377 1.361 6.941 1.361 1.825 0 2.814-.492 3.66-1.586h3.055v22.253h-4.89c-3.29-12.4-12.575-19.7-25.28-19.7-17.337 0-29.31 13.622-29.31 33.318 0 19.946 12.584 34.778 29.56 34.778 4.638 0 9.77-1.215 13.068-3.157V53.883c0-6.078-2.561-7.419-15.022-7.662v-4.617h40.55v4.617h-.001c-6.474.124-8.675 2.068-8.675 7.662v18.12c-8.795 4.011-21.364 7.656-31.877 7.656-30.898 0-45.805-17.146-45.805-40.488C191.264 16.916 209.71.5 235.722.5ZM39.705 2.33v4.74h-1.712c-6.351 0-9.526 2.066-9.526 8.878v19.086h40.301V16.31c0-6.808-2.685-9.24-9.77-9.24h-1.1V2.33h39.083v4.74h-2.203c-6.223 0-9.156 2.308-9.156 8.878v48.153c0 6.318 2.322 9.116 9.403 9.116h1.956v4.74H57.899v-4.742h1.708c6.476 0 9.161-2.796 9.161-9.364V42.21h-40.3V64.1c0 6.445 2.565 9.117 9.4 9.117h1.837v4.74H.5v-4.742h2.073c6.235 0 9.04-2.796 9.04-8.873V15.948c0-6.08-2.685-8.878-9.156-8.878H.5V2.33h39.205ZM154.04.5l24.433 61.772c3.175 8.026 5.857 10.452 12.208 10.943v4.741h-39.693v-4.741h4.271c7.451 0 8.551-3.282 6.11-9.238l-5.741-14.107h-26.752l.005.003-5.125 14.226c-2.2 6.2-2.07 9.116 9.65 9.116h1.586v4.741h-32.37v-4.741h1.837c5.858 0 8.912-2.67 11.966-11.182L137.313 4.03 135.967.5h18.073ZM141.59 14.733l-10.26 28.448h21.492L141.59 14.733ZM352.674 2.62c1.114 0 2.164.213 3.148.64a8.412 8.412 0 0 1 2.58 1.726 8.042 8.042 0 0 1 1.743 2.562c.427.984.64 2.034.64 3.148a7.702 7.702 0 0 1-.64 3.131 8.097 8.097 0 0 1-1.743 2.544 8.158 8.158 0 0 1-2.58 1.708 8.02 8.02 0 0 1-3.148.623 8.02 8.02 0 0 1-3.15-.623 8.158 8.158 0 0 1-2.579-1.708 8.097 8.097 0 0 1-1.743-2.544 7.702 7.702 0 0 1-.64-3.13c0-1.115.213-2.165.64-3.15a8.042 8.042 0 0 1 1.743-2.561 8.412 8.412 0 0 1 2.58-1.726 7.827 7.827 0 0 1 3.149-.64Zm0 1.245c-.95 0-1.839.178-2.669.534a6.854 6.854 0 0 0-2.17 1.459 6.854 6.854 0 0 0-1.459 2.17 6.702 6.702 0 0 0-.533 2.668c0 .925.177 1.803.533 2.633a7.07 7.07 0 0 0 1.459 2.188 6.71 6.71 0 0 0 2.17 1.477c.83.356 1.72.534 2.669.534.948 0 1.838-.178 2.668-.534a6.71 6.71 0 0 0 2.17-1.477 7.07 7.07 0 0 0 1.46-2.188c.355-.83.533-1.708.533-2.633 0-.948-.178-1.838-.534-2.668a6.854 6.854 0 0 0-1.459-2.17 6.854 6.854 0 0 0-2.17-1.46 6.702 6.702 0 0 0-2.668-.533Zm.035 2.242.318.009c.316.017.625.062.928.133a3.3 3.3 0 0 1 1.085.463c.32.213.575.486.765.818.19.332.284.747.284 1.245 0 .664-.19 1.204-.569 1.619-.38.415-.89.694-1.53.836l2.455 3.985h-1.992l-2.135-3.807h-1.174v3.807h-1.637V6.107h3.202Zm-.07 1.387h-1.495v2.598h1.316a3.48 3.48 0 0 0 1.352-.267c.427-.178.64-.54.64-1.085 0-.499-.195-.83-.586-.997-.392-.166-.801-.249-1.228-.249Z"></path></svg> 1210 </a> 1211 </div> 1212 1213 <div class="footer__switcher"> 1214 1215 @if (!string.IsNullOrWhiteSpace(GetString("Item.Area.Company_Name.Value"))) 1216 { 1217 <section class="footer-address" itemscope="" itemtype="http://schema.org/PostalAddress"> 1218 <h4 class="footer__heading">@Translate("ContactUs", "Contact Us")</h4> 1219 <p class="address"> 1220 <span class="h-adr adr"> 1221 <span class="fn p-org org">@GetString("Item.Area.Company_Name.Value")</span><br> 1222 @if (!string.IsNullOrWhiteSpace(GetString("Item.Area.Company_Address"))) 1223 { 1224 <span class="p-street-address street-address" itemprop="streetAddress">@GetString("Item.Area.Company_Address.Value")</span> 1225 } 1226 @if (!string.IsNullOrWhiteSpace(GetString("Item.Area.Company_Address_2.Value"))) 1227 { 1228 <br><span class="p-street-address street-address" itemprop="streetAddress">@GetString("Item.Area.Company_Address_2.Value")</span> 1229 } 1230 @if (!string.IsNullOrWhiteSpace(GetString("Item.Area.Town_City.Value"))) 1231 { 1232 <br> <span class="p-street-address street-address" itemprop="addressLocality">@GetString("Item.Area.Town_City.Value")</span> 1233 } 1234 @if (!string.IsNullOrWhiteSpace(GetString("Item.Area.County.Value"))) 1235 { 1236 <br><span class="p-street-address street-address" itemprop="addressRegion">@GetString("Item.Area.County.Value")</span> 1237 } 1238 @if (!string.IsNullOrWhiteSpace(GetString("Item.Area.Postcode.Value"))) 1239 { 1240 <br><span class="p-street-address street-address" itemprop="postalCode">@GetString("Item.Area.Postcode.Value")</span> 1241 } 1242 </span> 1243 </p> 1244 @* 1245 <ul class="footer__list" role="list"> 1246 @if (!string.IsNullOrWhiteSpace(GetString("Item.Area.Contact_Email_Link"))) 1247 { 1248 string mailTo = "mailto:" + GetString("Item.Area.Contact_Email_Link"); 1249 <li> 1250 <a href="@mailTo"> 1251 E: <span itemprop="email">@GetString("Item.Area.Contact_Email")</span> 1252 </a> 1253 </li> 1254 } 1255 @if (!string.IsNullOrWhiteSpace(GetString("Item.Area.Telephone"))) 1256 { 1257 string telTo = "tel:" + GetString("Item.Area.Telephone"); 1258 <li> 1259 <a href="@telTo"> 1260 T: <span itemprop="telephone">@GetString("Item.Area.Telephone")</span> 1261 </a> 1262 </li> 1263 } 1264 </ul> 1265 *@ 1266 </section> 1267 } 1268 1269 <section> 1270 <h4 class="footer__heading">@Translate("CompanyInformation", "Company Information")</h4> 1271 <nav> 1272 @GetValue("DwNavigation(footerpages)") 1273 </nav> 1274 1275 @{ 1276 int legalsLink = 0; 1277 var legalsPage = HagsWeb.Library.Methods.Page.HagsPages.GetPageByNavigationTag("Legals", masterArea.ID); 1278 if (legalsPage != null) 1279 { 1280 legalsLink = legalsPage.ID; 1281 } 1282 1283 if (legalsLink > 0) 1284 { 1285 1286 <ul class="footer__list" role="list"> 1287 <li><a href="/Default.aspx?ID=@legalsLink">@Translate("PrivacyPolicy", "Privacy Policy")</a></li> 1288 <li><a href="/Default.aspx?ID=@legalsLink">@Translate("CookieNotice", "Cookie Notice")</a></li> 1289 <li><a href="/Default.aspx?ID=@legalsLink">@Translate("TermsConditions", "Terms & Conditions")</a></li> 1290 </ul> 1291 } 1292 } 1293 </section> 1294 1295 <section> 1296 <h4 class="footer__heading">@Translate("FindUs", "Find Us")</h4> 1297 <ul class="footer__list"> 1298 <!-- Social Media items --> 1299 @foreach (var item in @GetLoop("Item.Area.Social_Media")) 1300 { 1301 var linkUrl = item.GetValue("Item.Area.Social_Media.Social_Link"); 1302 string linkTitle = item.GetString("Item.Area.Social_Media.Social_Icon"); 1303 string linkIcon = "/Files/Templates/Designs/HagsCore/res/img/icons/social/" + linkTitle + ".png"; 1304 <li><a href="@linkUrl" target="_blank">@linkTitle</a></li> 1305 } 1306 </ul> 1307 </section> 1308 1309 </div> 1310 </div> 1311 1312 @if ( baseWeglotLang != "se" && testCountryCode != "se" ) 1313 { 1314 <div class="help-toggle-footer"> 1315 <button id="" class="btn btn--shadow js-action-btn" data-target="help-panel">Need Help?</button> 1316 <button id="hide-help" class="action-btn"> 1317 <span class="visually-hidden">Hide help</span> 1318 <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 212 212" class="h24-icon h24-icon--close-bg"><g fill="none" fill-rule="evenodd"><path d="M106 11.3A94.4 94.4 0 0 0 11.3 106a94.4 94.4 0 0 0 94.7 94.7 94.4 94.4 0 0 0 94.7-94.7A94.4 94.4 0 0 0 106 11.3Z" fill="#fff"></path><path d="M106 6a100 100 0 1 1 0 200 100 100 0 0 1 0-200Zm0 5.3A94.4 94.4 0 0 0 11.3 106a94.4 94.4 0 0 0 94.7 94.7 94.4 94.4 0 0 0 94.7-94.7A94.4 94.4 0 0 0 106 11.3Zm25.1 78.9-15 15.5 15.5 14.9a6.5 6.5 0 0 1 .2 9.2l-.7.7a6.5 6.5 0 0 1-9.2.2l-15.5-15-14.9 15.5a6.5 6.5 0 0 1-9.2.2l-.7-.7a6.5 6.5 0 0 1-.2-9.2l15-15.5-15.5-15a6.5 6.5 0 0 1-.2-9.1l.7-.7a6.5 6.5 0 0 1 9.2-.2l15.5 15 15-15.5a6.5 6.5 0 0 1 9.1-.2l.7.7a6.5 6.5 0 0 1 .2 9.2Z" fill="currentColor"></path></g></svg> 1319 </button> 1320 </div> 1321 } 1322 1323 1324 1325 </footer> 1326 1327 1328 1329 1330 <dialog class="modal" id="adviceModal"> 1331 1332 <div class="modal__body"> 1333 1334 <div class="modal__header"> 1335 1336 <div class="modal__close"> 1337 <button type="button" class="action-btn js-modal-close-target" data-target-id="adviceModal"> 1338 <span class="visually-hidden">Close</span> 1339 <svg viewbox="0 0 212 212" xmlns="http://www.w3.org/2000/svg" class="h24-icon h24-icon--close"><path d="M100 0c55.193 0 100 44.807 100 100s-44.807 100-100 100S0 155.193 0 100 44.807 0 100 0Zm0 5.333c-26.124 0-49.792 10.603-66.928 27.74C15.936 50.207 5.333 73.875 5.333 100c0 26.124 10.603 49.792 27.74 66.928 17.135 17.136 40.803 27.739 66.927 27.739 26.124 0 49.792-10.603 66.928-27.74 17.136-17.135 27.739-40.803 27.739-66.927 0-26.124-10.603-49.792-27.74-66.928C149.793 15.936 126.125 5.333 100 5.333Zm25.105 78.865L110.17 99.664l15.466 14.935a6.5 6.5 0 0 1 .16 9.191l-.694.72a6.5 6.5 0 0 1-9.191.16l-15.466-14.935-14.935 15.466a6.5 6.5 0 0 1-9.191.16l-.72-.694a6.5 6.5 0 0 1-.16-9.191l14.935-15.466-15.466-14.935a6.5 6.5 0 0 1-.16-9.191l.694-.72a6.5 6.5 0 0 1 9.191-.16L100.1 89.939l14.935-15.466a6.5 6.5 0 0 1 9.191-.16l.72.694a6.5 6.5 0 0 1 .16 9.191Z" fill="currentColor" fill-rule="evenodd"></path></svg> 1340 </button> 1341 </div> 1342 1343 <h3 class="ts-2" id="advice-title"> 1344 <span>Information</span> 1345 </h3> 1346 1347 </div> 1348 1349 <div class="modal__main"> 1350 1351 <div id="result-advice" class="advice-message"></div> 1352 1353 </div> 1354 1355 <div class="modal__footer"> 1356 1357 <button type="button" class="btn btn--outline js-modal-close-target" data-target-id="adviceModal"> 1358 @Translate("Close", "Close") 1359 </button> 1360 1361 </div> 1362 1363 </div> 1364 1365 </dialog> 1366 @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>> 1367 @using System.Collections.Generic; 1368 @using HagsWeb.Library.BusinessObjects.UsersLists; 1369 @using System.Web; 1370 1371 @{ 1372 int currentAreaID = int.TryParse(GetGlobalValue("Global:Area.ID"), out currentAreaID) ? currentAreaID : 0; 1373 var currentArea = new Dynamicweb.Content.AreaService().GetArea(currentAreaID); 1374 1375 var featureRequest = HttpContext.Current.Request; 1376 string featureCheck = featureRequest.QueryString["mail-h24"]; 1377 1378 //List<ProductCollectionItem> productCollectionItems = SessionManager.UsersMyProductCollection != null ? SessionManager.UsersMyProductCollection : new List<ProductCollectionItem>(); 1379 1380 } 1381 1382 <dialog id="CreateCatalog" class="modal modal--full"> 1383 1384 <div class="modal__body"> 1385 1386 <div class="modal__header"> 1387 1388 <div class="modal__close"> 1389 <button type="button" class="action-btn js-modal-close-target" data-target-id="CreateCatalog"> 1390 <span class="visually-hidden">Close</span> 1391 <svg viewbox="0 0 212 212" xmlns="http://www.w3.org/2000/svg" class="h24-icon h24-icon--close"><path d="M100 0c55.193 0 100 44.807 100 100s-44.807 100-100 100S0 155.193 0 100 44.807 0 100 0Zm0 5.333c-26.124 0-49.792 10.603-66.928 27.74C15.936 50.207 5.333 73.875 5.333 100c0 26.124 10.603 49.792 27.74 66.928 17.135 17.136 40.803 27.739 66.927 27.739 26.124 0 49.792-10.603 66.928-27.74 17.136-17.135 27.739-40.803 27.739-66.927 0-26.124-10.603-49.792-27.74-66.928C149.793 15.936 126.125 5.333 100 5.333Zm25.105 78.865L110.17 99.664l15.466 14.935a6.5 6.5 0 0 1 .16 9.191l-.694.72a6.5 6.5 0 0 1-9.191.16l-15.466-14.935-14.935 15.466a6.5 6.5 0 0 1-9.191.16l-.72-.694a6.5 6.5 0 0 1-.16-9.191l14.935-15.466-15.466-14.935a6.5 6.5 0 0 1-.16-9.191l.694-.72a6.5 6.5 0 0 1 9.191-.16L100.1 89.939l14.935-15.466a6.5 6.5 0 0 1 9.191-.16l.72.694a6.5 6.5 0 0 1 .16 9.191Z" fill="currentColor" fill-rule="evenodd"></path></svg> 1392 </button> 1393 </div> 1394 1395 <h4 class="modal-title" id="CreateCatalogModalLabel"> 1396 @Translate("CreateYourCatalog", "Create Your Catalogue") 1397 </h4> 1398 1399 </div> <!-- header --> 1400 1401 <div class="modal__main"> 1402 1403 <div id="div_CreateCatalog" class="modal__pdf-grid"> 1404 1405 <div> 1406 1407 1408 <div class="h-tabs"> 1409 <button class="h-tabs__btn js-active" data-tab="customise-catalogue">Customise</button> 1410 <button class="h-tabs__btn" data-tab="email-catalogue">Email</button> 1411 </div> 1412 1413 1414 <div class="modal__forms h-tabs__tab js-active" id="customise-catalogue"> 1415 <form id="frm_CreateCatalog"> 1416 <input type="hidden" name="areaId" value="@(currentArea.ID)"> 1417 <input type="hidden" name="languageId" value="@currentArea.EcomLanguageId"> 1418 <input type="hidden" value="#CreateCatalog" name="catType"> 1419 <input type="hidden" name="weglotLang" value=""> 1420 <fieldset> 1421 <div> 1422 <label for="catHagsCatalogName">@Translate("HagsCatalogName", "Hags Catalog Name"):</label> 1423 <input type="text" class="form-control search-group" value="" name="catHagsCatalogName"> 1424 </div> 1425 1426 <label for="catHagsContactName">@Translate("HagsContactName", "Hags Contact Name"):</label> 1427 <input type="text" class="form-control search-group" value="" name="catHagsContactName"> 1428 1429 <label for="catHagsContactPhone">@Translate("HagsPhoneNumber", "Hags Phone Number"):</label> 1430 <input type="text" class="form-control search-group" value="" name="catHagsContactPhone"> 1431 1432 <label for="catHagsContactEmail">@Translate("HagsContactEmail", "Hags Contact Email"):</label> 1433 <input type="email" class="form-control search-group" value="" name="catHagsContactEmail"> 1434 1435 <label for="catCompanyName">@Translate("CompanyName", "Company Name"):</label> 1436 <input type="text" class="form-control search-group" value="" name="catCompanyName"> 1437 1438 <label for="catAddress">@Translate("CompanyAddress", "Company Address"):</label> 1439 <input type="text" class="form-control search-group" value="" name="catAddress"> 1440 1441 <input type="text" class="form-control search-group" value="" name="catAddress2"> 1442 1443 <label for="catAddrTown">@Translate("CompanyTown", "Company Town"):</label> 1444 <input type="text" class="form-control search-group" value="" name="catAddrTown"> 1445 1446 <label for="catAddrPostCode">@Translate("CompanyPostCode", "Company Postal Code"):</label> 1447 <input type="text" class="form-control search-group" value="" name="catAddrPostCode"> 1448 1449 <label for="catAddrCountry">@Translate("CompanyCountry", "Company Country"):</label> 1450 <input type="text" class="form-control search-group" value="" name="catAddrCountry"> 1451 1452 1453 </fieldset> 1454 </form> 1455 1456 <button class="btn btn--outline" name="updatecatalogue" role="button" type="button">Update Catalog</button> 1457 1458 </div> 1459 1460 1461 @*Switch Form here*@ 1462 1463 <div class="modal__forms h-tabs__tab" id="email-catalogue"> 1464 1465 <form id="frm_CatalogEmailSettings"> 1466 <input type="hidden" name="pdfFileName" value=""> 1467 <input type="hidden" name="areaId" value="@currentAreaID"> 1468 <input type="hidden" name="weglotLang" value=""> 1469 1470 <fieldset> 1471 1472 <label for="emailFrom">@Translate("EmailFrom", "Email from"):</label> 1473 <input type="email" class="form-control search-group" name="emailFrom" required="" value=""> 1474 1475 <label for="emailTo">@Translate("EmailTo", "Email to"):</label> 1476 <input type="email" class="form-control search-group" name="emailTo" required="" value=""> 1477 1478 <label for="emailSubject">@Translate("EmailSubject", "Subject"):</label> 1479 <input type="text" class="form-control search-group" name="emailSubject" value=""> 1480 1481 <label for="emailMessage">@Translate("Message", "Message"):</label> 1482 <textarea class="form-control" name="emailMessage" cols="45" rows="7" value=""></textarea> 1483 1484 </fieldset> 1485 1486 <div name="emailProgressContent" style="display:none;"> 1487 <span id="CreateCatalogueEmailLabel" style="display: block; text-align: center; margin: auto;">@Translate("SendingYourEmail", "Sending your Email")</span> 1488 <img src="/Files/Templates/Designs/HagsCore/res/img/loader/ajax-loader.gif" style="margin: auto; display: block;"> 1489 </div> 1490 1491 <div name="emailProgress" style="display: none;"></div> 1492 1493 <div class="m-search-advanced-buttons text-right" name="preSendEmail" style="display: block;"> 1494 1495 @* 1496 <button class="btn btn--outline" name="emailcatalogue" type="button" role="button">Send Email</button> 1497 *@ 1498 1499 1500 <button class="btn btn--outline" name="emailcatalogueH24" type="button" role="button">Send Email</button> 1501 1502 <button class="btn btn--outline" style="margin: 2px;" name="refreshemail" type="button" role="button"> 1503 Clear form 1504 </button> 1505 1506 @* 1507 <button class="btn btn--outline" style="display: none;" name="refreshemail" type="button" role="button">@Translate("Refresh", "Refresh")</button> 1508 <button class="btn btn--outline" name="cancelemail" type="button" role="button" data-modal-name="catalogue">@Translate("Cancel", "Cancel")</button> 1509 *@ 1510 </div> 1511 1512 1513 1514 <div class="m-search-advanced-buttons text-center" name="downloadResend" style="display: none;"> 1515 @* 1516 <button class="btn btn--outline" style="display: none;" name="resendcatalogue" type="button" role="button">@Translate("SendEmail", "Send Email")</button> 1517 <button class="btn btn--outline" style="margin: 2px;" name="refreshemail" type="button" role="button">@Translate("ClearFormSendAgain", "Clear form and send again")</button><br> 1518 <a href="" class="btn btn--outline" name="pdfDownloadLink" download="">@Translate("DownloadCatalogue", "Download Catalogue")</a> 1519 <button class="btn btn--outline js-modal-close-target" data-target-id="CreateCatalog" type="button">@Translate("CloseWindow", "Close Window")</button> 1520 *@ 1521 </div> 1522 1523 </form> 1524 1525 1526 </div> 1527 1528 </div> 1529 1530 <div id="loader" style="display:none;text-align:center;position:absolute;left:61%;"> 1531 <span id="CreateCataloguePdfLabel" style="display: inline-block;margin: 10px 10px 0 0;padding: 5px 10px"></span> 1532 <img src="/Files/Templates/Designs/Hags2024/assets/img/loader/ajax-loader.gif" style="margin:auto;display:block;"> 1533 </div> 1534 1535 <div id="pdfViewer" class="modal__embed-silo"></div> 1536 1537 </div> 1538 1539 </div> <!-- main --> 1540 1541 1542 <div class="modal__footer"> 1543 1544 <div class="m-search-advanced-buttons cluster cluster--dialog"> 1545 @* 1546 <button class="btn btn--outline" name="createemail" data-modal-name="catalogue" type="button" role="button">@Translate("EmailCatalogue", "Email Catalogue")</button> 1547 *@ 1548 <button class="btn btn--outline" id="pdfPrintCatalogue" target="_blank" type="button">@Translate("Print", "Print")</button> 1549 <a class="btn btn--outline" href="#" id="pdfDownloadCatalogue" type="button" download="">@Translate("Download", "Download")</a> 1550 <button class="btn btn--outline js-modal-close-target" data-target-id="CreateCatalog" type="button">@Translate("Close", "Close")</button> 1551 1552 </div> 1553 1554 </div> <!-- footer --> 1555 1556 </div> 1557 1558 </dialog> 1559 @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>> 1560 @using HagsWeb.Library.State; 1561 @using HagsWeb.Library.BusinessObjects.UsersLists; 1562 @{ 1563 1564 int saveCollectionAreaID = HagsWeb.Library.Utilities.WebUtilities.CheckInteger(GetGlobalValue("Global:Area.ID")); 1565 Dynamicweb.Content.Page saveCollectionMyHagsRegistrationPage = HagsWeb.Library.Methods.Page.HagsPages.GetPageByNavigationTag("CreateAccountPage", saveCollectionAreaID); 1566 1567 bool savecollection = bool.Parse(string.IsNullOrEmpty(Dynamicweb.Context.Current.Request.QueryString.Get("savecollection")) ? "false" : Dynamicweb.Context.Current.Request.QueryString.Get("savecollection")); 1568 1569 string areaLanguage = GetGlobalValue("Global:Area.Lang"); 1570 1571 EditCollection editSession = new EditCollection(); 1572 if (SessionManager.IsSessionValueSet("EditCollectionSession_" + GetGlobalValue("Global:Extranet.UserID"))) 1573 { 1574 editSession = (EditCollection)SessionManager.GetSessionItem("EditCollectionSession_" + GetGlobalValue("Global:Extranet.UserID")); 1575 } 1576 1577 string currentCollectionName = string.Empty; // Dynamicweb.Context.Current.Request.QueryString.Get("collection"); 1578 string currentCollectionDescription = string.Empty; 1579 string currentCollectionOriginalFileName = string.Empty; 1580 if (editSession != null) 1581 { 1582 currentCollectionName = editSession.CollectionName; 1583 currentCollectionDescription = editSession.CollectionDescription; 1584 currentCollectionOriginalFileName = editSession.OriginalFileName; 1585 } 1586 1587 bool isLoggedIn = false; 1588 if (!String.IsNullOrWhiteSpace(GetGlobalValue("Global:Extranet.UserName"))) 1589 { 1590 isLoggedIn = true; 1591 } 1592 1593 string saveCollectionValidationMessages = string.Format("messages_{0}.min.js", GetGlobalValue("Global:Area.Lang")); 1594 string saveCollectionAreaLanguage = GetGlobalValue("Global:Area.Lang"); 1595 string saveCollectionLoginPageId = GetGlobalValue("Global:Page.ID"); 1596 string UserId = GetGlobalValue("Global:Extranet.UserID"); 1597 //string designBaseUrl = GetString("Template:DesignBaseUrl"); 1598 1599 // Notes: for the Forgotten Password we now are just advising the user to contact their local office for a reset 1600 // We do however maintain the original code as is for when they change their mind back again! 1601 } 1602 1603 1604 @*@Scripts.Render("~/bundle/Validation")*@ 1605 1606 <dialog class="modal" id="saveCollection"> 1607 1608 @if (areaLanguage != "en") 1609 { 1610 <script src="@(designBaseUrl)assets/js/libraries/validation/localization/@saveCollectionValidationMessages"></script> 1611 } 1612 1613 <div class="modal__body"> 1614 1615 <div class="modal__header"> 1616 1617 <div class="modal__close"> 1618 <button type="button" class="action-btn js-modal-close-target" data-target-id="saveCollection"> 1619 <span class="visually-hidden">Close</span> 1620 <svg viewbox="0 0 212 212" xmlns="http://www.w3.org/2000/svg" class="h24-icon h24-icon--close"><path d="M100 0c55.193 0 100 44.807 100 100s-44.807 100-100 100S0 155.193 0 100 44.807 0 100 0Zm0 5.333c-26.124 0-49.792 10.603-66.928 27.74C15.936 50.207 5.333 73.875 5.333 100c0 26.124 10.603 49.792 27.74 66.928 17.135 17.136 40.803 27.739 66.927 27.739 26.124 0 49.792-10.603 66.928-27.74 17.136-17.135 27.739-40.803 27.739-66.927 0-26.124-10.603-49.792-27.74-66.928C149.793 15.936 126.125 5.333 100 5.333Zm25.105 78.865L110.17 99.664l15.466 14.935a6.5 6.5 0 0 1 .16 9.191l-.694.72a6.5 6.5 0 0 1-9.191.16l-15.466-14.935-14.935 15.466a6.5 6.5 0 0 1-9.191.16l-.72-.694a6.5 6.5 0 0 1-.16-9.191l14.935-15.466-15.466-14.935a6.5 6.5 0 0 1-.16-9.191l.694-.72a6.5 6.5 0 0 1 9.191-.16L100.1 89.939l14.935-15.466a6.5 6.5 0 0 1 9.191-.16l.72.694a6.5 6.5 0 0 1 .16 9.191Z" fill="currentColor" fill-rule="evenodd"></path></svg> 1621 </button> 1622 </div> 1623 1624 <h3 class="ts-2"> 1625 @Translate("SaveMyHagsCollection", "Save HAGS Connect Collection") 1626 </h3> 1627 1628 </div> 1629 1630 <div class="modal__main"> 1631 1632 <input type="hidden" id="action" value=""> 1633 1634 <form role="form" method="post" id="saveCollectionForm" action=""> 1635 1636 <input type="hidden" name="UserId" value="@UserId"> 1637 <input type="hidden" name="OriginalFileName" value="@currentCollectionOriginalFileName"> 1638 1639 <div class="form-group"> 1640 <label for="collectionName">@Translate("CollectionName", "Name of Collection") <sup>*</sup></label> 1641 <input type="text" class="form-control" name="CollectionName" value="@currentCollectionName" required="" placeholder='@Translate("CollectionName", "Name of Collection")'> 1642 </div> 1643 1644 <div class="form-group"> 1645 <label for="collectionDescription">@Translate("CollectionDescription", "Description") <sup>*</sup></label> 1646 <textarea type="text" class="form-control" rows="4" cols="50" name="CollectionDescription" required="" placeholder='@Translate("CollectionDescription", "Description")'>@currentCollectionDescription</textarea> 1647 </div> 1648 1649 <div id="resultAdvice"></div> 1650 1651 </form> 1652 1653 </div> 1654 1655 1656 <div class="modal__footer"> 1657 1658 <button type="submit" id="save" name="savecollection" class="btn btn--outline">@Translate("Save", "Save")</button> 1659 <button type="button" id="continue" name="modalclose" class="btn btn--outline js-modal-close-target" data-target-id="saveCollection">@Translate("Close", "Close")</button> 1660 <!--button type="button" id="new" name="removecollection" class="btn btn--outline" data-removeproductlist="All" data-dismiss="modal">@Translate("StartNewCollection", "Start a new collection")</button--> 1661 1662 </div> 1663 1664 </div> 1665 1666 </dialog> 1667 1668 1669 @* this snippet is from the case studies item listing *@ 1670 @RenderSnippet("bodyScripts") 1671 1672 1673 @SnippetStart("bodyScripts") 1674 1675 @* my collection scripts *@ 1676 1677 <script type="text/javascript" src="@(designBaseUrl)assets/js/libraries/filesaver/filesaver.min.js"></script> 1678 <script type="text/javascript" src="@(designBaseUrl)assets/js/functions/product-collection.js?v=1.2&ts=@unixTimestamp"></script> 1679 @* <script type="text/javascript" src="@(designBaseUrl)assets/js/functions/product-collection.js?v=1.2&ts=@jsTimestamp"></script>*@ 1680 1681 @* contact form scripts *@ 1682 <script type="text/javascript" src="@(designBaseUrl)assets/js/functions/contact-us-forms.js"></script> 1683 1684 1685 @* load the embla carousel script *@ 1686 <script data-cookieconsent="ignore" type="text/javascript" src="@(designBaseUrl)assets/js/libraries/embla/embla-carousel.umd.js"></script> 1687 <script data-cookieconsent="ignore" type="text/javascript" src="@(designBaseUrl)assets/js/libraries/embla/embla-carousel-fade.umd.js"></script> 1688 1689 <!--script src='https://online3.superoffice.com/Cust29133/CS/javascript/chat.js' data-topicId='2' data-title='Chatta med oss!' data-theme='modern' data-color='#0080FF' data-badgeColor='#4f6128' data-badgeTextColor='#ffffff' data-custMsgColor='#dbe5f1' data-custMsgTextColor='#000000' data-agentMsgColor='#c3d69b' data-agentMsgTextColor='#000000' data-buttonColor='#d4d4d4' data-buttonTextColor='' data-font='"Verdana", "Gill Sans", Arial, sans-serif' data-fontSize='12px' data-size='normal' data-delay='1' defer></script--> 1690 @SnippetEnd("bodyScripts") 1691 1692 @* constant contact scripts *@ 1693 1694 @*IncludeFile("partials/constant-contact-config.cshtml")*@ 1695 1696 <script type="text/javascript" src="@(designBaseUrl)assets/js/functions/h24-cc-forms.js?v=0.1" cookieconsent="ignore"></script> 1697 <script type="text/javascript" src="https://koi-3QNTATERZU.marketingautomation.services/client/noform.js?ver=1.24" cookieconsent="ignore"></script> 1698 @* SELMA Plugin for dev only *@ 1699 @if ( inDev ) 1700 { 1701 <script> 1702 (function () { var s = document.createElement('script'); var h = document.querySelector('head') || document.body; s.src = 'https://acsbapp.com/apps/app/dist/js/app.js'; s.async = true; s.onload = function () { acsbJS.init(); }; h.appendChild(s); })(); 1703 </script> 1704 } 1705 1706 </body> 1707 </html> 1708 1709 1710