Error executing template "Designs/Hags2024/_parsed/default.parsed.cshtml"
System.TypeInitializationException: The type initializer for 'Microsoft.CodeAnalysis.CSharp.CSDiagnosticInfo' threw an exception. ---> System.TypeInitializationException: The type initializer for 'Microsoft.CodeAnalysis.CSharp.ErrorFacts' threw an exception. ---> System.OutOfMemoryException: Exception of type 'System.OutOfMemoryException' was thrown.
   at Microsoft.CodeAnalysis.CSharp.ErrorFacts..cctor()
   --- End of inner exception stack trace ---
   at Microsoft.CodeAnalysis.CSharp.ErrorFacts.GetSeverity(ErrorCode code)
   at Microsoft.CodeAnalysis.CSharp.MessageProvider.GetSeverity(Int32 code)
   at Microsoft.CodeAnalysis.CSharp.MessageProvider.CreateDiagnostic(Int32 code, Location location, Object[] args)
   at Microsoft.CodeAnalysis.PortableExecutableReference.ExceptionToDiagnostic(Exception e, CommonMessageProvider messageProvider, Location location, String display, MetadataImageKind kind)
   at Microsoft.CodeAnalysis.CommonReferenceManager`2.GetMetadata(PortableExecutableReference peReference, CommonMessageProvider messageProvider, Location location, DiagnosticBag diagnostics)
   at Microsoft.CodeAnalysis.CommonReferenceManager`2.ResolveMetadataReferences(TCompilation compilation, Dictionary`2 assemblyReferencesBySimpleName, ImmutableArray`1& references, IDictionary`2& boundReferenceDirectiveMap, ImmutableArray`1& boundReferenceDirectives, ImmutableArray`1& assemblies, ImmutableArray`1& modules, DiagnosticBag diagnostics)
   at Microsoft.CodeAnalysis.CSharp.CSharpCompilation.ReferenceManager.CreateAndSetSourceAssemblyFullBind(CSharpCompilation compilation)
   at Microsoft.CodeAnalysis.CSharp.CSharpCompilation.ReferenceManager.CreateSourceAssemblyForCompilation(CSharpCompilation compilation)
   at Microsoft.CodeAnalysis.CSharp.CSharpCompilation.GetRuntimeMetadataVersion(EmitOptions emitOptions)
   at Microsoft.CodeAnalysis.CSharp.CSharpCompilation.GetRuntimeMetadataVersion(EmitOptions emitOptions, DiagnosticBag diagnostics)
   at Microsoft.CodeAnalysis.CSharp.CSharpCompilation.CreateModuleBuilder(EmitOptions emitOptions, IMethodSymbol debugEntryPoint, Stream sourceLinkStream, IEnumerable`1 embeddedTexts, IEnumerable`1 manifestResources, CompilationTestData testData, DiagnosticBag diagnostics, CancellationToken cancellationToken)
   at Microsoft.CodeAnalysis.Compilation.CheckOptionsAndCreateModuleBuilder(DiagnosticBag diagnostics, IEnumerable`1 manifestResources, EmitOptions options, IMethodSymbol debugEntryPoint, Stream sourceLinkStream, IEnumerable`1 embeddedTexts, CompilationTestData testData, 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()
   --- End of inner exception stack trace ---
   at Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PENamedTypeSymbol..ctor(PEModuleSymbol moduleSymbol, NamespaceOrTypeSymbol container, TypeDefinitionHandle handle, String emittedNamespaceName, UInt16 arity, Boolean& mangleName)
   at Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PENamedTypeSymbol.Create(PEModuleSymbol moduleSymbol, PENamespaceSymbol containingNamespace, TypeDefinitionHandle handle, String emittedNamespaceName)
   at Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PENamespaceSymbol.LazyInitializeTypes(IEnumerable`1 typeGroups)
   at Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PENamespaceSymbol.LoadAllMembers(IEnumerable`1 typesByNS)
   at Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEGlobalNamespaceSymbol.EnsureAllMembersLoaded()
   at Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PENamespaceSymbol.GetMembers(String name)
   at Microsoft.CodeAnalysis.CSharp.Symbols.MergedNamespaceSymbol.SlowGetChildrenOfName(String name)
   at Microsoft.CodeAnalysis.Collections.CachingDictionary`2.AddToConcurrentMap(ConcurrentDictionary`2 map, TKey key)
   at Microsoft.CodeAnalysis.Collections.CachingDictionary`2.GetOrCreateValue(TKey key)
   at Microsoft.CodeAnalysis.CSharp.Symbols.MergedNamespaceSymbol.GetMembers(String name)
   at Microsoft.CodeAnalysis.CSharp.Binder.GetCandidateMembers(NamespaceOrTypeSymbol nsOrType, String name, LookupOptions options, Binder originalBinder)
   at Microsoft.CodeAnalysis.CSharp.Binder.LookupMembersInNamespace(LookupResult result, NamespaceSymbol ns, String name, Int32 arity, LookupOptions options, Binder originalBinder, Boolean diagnose, HashSet`1& useSiteDiagnostics)
   at Microsoft.CodeAnalysis.CSharp.Binder.LookupMembersInternal(LookupResult result, NamespaceOrTypeSymbol nsOrType, String name, Int32 arity, ConsList`1 basesBeingResolved, LookupOptions options, Binder originalBinder, Boolean diagnose, HashSet`1& useSiteDiagnostics)
   at Microsoft.CodeAnalysis.CSharp.InContainerBinder.LookupSymbolsInSingleBinder(LookupResult result, String name, Int32 arity, ConsList`1 basesBeingResolved, LookupOptions options, Binder originalBinder, Boolean diagnose, HashSet`1& useSiteDiagnostics)
   at Microsoft.CodeAnalysis.CSharp.Binder.LookupSymbolsInternal(LookupResult result, String name, Int32 arity, ConsList`1 basesBeingResolved, LookupOptions options, Boolean diagnose, HashSet`1& useSiteDiagnostics)
   at Microsoft.CodeAnalysis.CSharp.Binder.BindNonGenericSimpleNamespaceOrTypeOrAliasSymbol(IdentifierNameSyntax node, DiagnosticBag diagnostics, ConsList`1 basesBeingResolved, Boolean suppressUseSiteDiagnostics, NamespaceOrTypeSymbol qualifierOpt)
   at Microsoft.CodeAnalysis.CSharp.Binder.BindNamespaceOrTypeOrAliasSymbol(ExpressionSyntax syntax, DiagnosticBag diagnostics, ConsList`1 basesBeingResolved, Boolean suppressUseSiteDiagnostics)
   at Microsoft.CodeAnalysis.CSharp.Binder.BindNamespaceOrTypeSymbol(ExpressionSyntax syntax, DiagnosticBag diagnostics, ConsList`1 basesBeingResolved, Boolean suppressUseSiteDiagnostics)
   at Microsoft.CodeAnalysis.CSharp.Imports.FromGlobalUsings(CSharpCompilation compilation)
   at Microsoft.CodeAnalysis.CSharp.CSharpCompilation.BindGlobalImports()
   at System.Lazy`1.CreateValue()
   at System.Lazy`1.LazyInitValue()
   at System.Lazy`1.get_Value()
   at Microsoft.CodeAnalysis.CSharp.CSharpCompilation.GetSourceDeclarationDiagnostics(SyntaxTree syntaxTree, Nullable`1 filterSpanWithinTree, Func`4 locationFilterOpt, CancellationToken cancellationToken)
   at Microsoft.CodeAnalysis.CSharp.CSharpCompilation.GetDiagnostics(CompilationStage stage, Boolean includeEarlierStages, DiagnosticBag diagnostics, CancellationToken cancellationToken)
   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 bool inDev = false; 13 inDev = inDev || GetGlobalValue("Global:Request.Url").Contains("http://hagsdw915solution."); 14 inDev = inDev || GetGlobalValue("Global:Request.Url").Contains("https://hagsdev.hags."); 15 inDev = inDev || GetGlobalValue("Global:Request.Url").Contains("https://hagslang.hags."); 16 inDev = inDev || GetGlobalValue("Global:Request.Url").Contains("https://hagslive.hags."); 17 18 int masterAreaId = int.TryParse(GetGlobalValue("Global:Area.ID"), out masterAreaId) ? masterAreaId : 0; 19 Dynamicweb.Content.Area masterArea = new Dynamicweb.Content.AreaService().GetArea(masterAreaId); 20 21 string themeTag = HagsPages.GetThemeByNavigationTag(GetGlobalValue("Global:Page.Top.ID")); // gets the page ID at the top of the tree this page sits on. 22 string siteNavigation = HagsPages.GetActiveAreas(); 23 string htmlLang = GetGlobalValue("Global:Area.LongLang"); 24 string siteAreaName = @GetString("DwAreaName"); 25 string designBaseUrl = @GetString("Template:DesignBaseUrl"); 26 var unixTimestamp = ((DateTimeOffset)DateTime.UtcNow).ToUnixTimeSeconds(); 27 var jsTimestamp = inDev ? unixTimestamp : 0; 28 string currentUser = @GetString("DW_extranet_AccessUserName"); 29 string userGroups = @GetString("DW_extranet_Groups"); 30 var langSite = @GetGlobalValue("Global:Pageview.Url"); 31 32 var siteFirstPageId = GetString("DwAreaFirstPageID"); // for the Hags Logo url. Go to the WEBSITE home page 33 var thisSiteName = HagsWeb.Library.Methods.Page.HagsPages.GetSiteCountryName(@GetGlobalValue("Global:Area.LongLang"), @GetGlobalValue("Global:Area.Name")); 34 var websites = GetLoop("WebsiteLanguages"); 35 string worldwideContactsLink = DWUtilities.GetPageByNavigationTag("worldwide-contacts", masterAreaId); 36 37 38 39 } 40 <!DOCTYPE html> 41 <html class="no-js" lang="@htmlLang"> 42 <head> 43 <meta charset="utf-8"> 44 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 45 <title>@GetValue("Title")</title> 46 @GetValue("MetaTags") 47 @GetValue("CopyRightNotice") 48 49 50 <meta name="author" content="HAGS @(siteAreaName)"> 51 <link rel="icon" href="@(designBaseUrl)assets/img/favicon.ico" sizes="32x32"> 52 <link rel="icon" href="@(designBaseUrl)assets/img/icon.svg" type="image/svg+xml"> 53 <link rel="apple-touch-icon" href="@(designBaseUrl)assets/img/apple-touch-icon.png"> 54 55 <script>(function (H) { H.className = H.className.replace(/\bno-js\b/, 'js') })(document.documentElement)</script> 56 57 <link rel="preconnect" href="https://cdn.fonts.net"> 58 <link rel="stylesheet" href="@(designBaseUrl)assets/styles/monotype-redux.css"> 59 60 <link rel="stylesheet" href="@(designBaseUrl)assets/styles/reset.css?v=1.1"> 61 <link rel="stylesheet" href="@(designBaseUrl)assets/styles/core.css?ts=@unixTimestamp"> 62 <link rel="stylesheet" href="@(designBaseUrl)assets/styles/nav-mega.css?ts=@unixTimestamp"> 63 <link rel="stylesheet" href="@(designBaseUrl)assets/styles/forms.css?ts=@unixTimestamp"> 64 <link rel="stylesheet" href="@(designBaseUrl)assets/styles/country-rules.css?ts=@unixTimestamp"> 65 66 @if (!inDev) 67 { 68 <script id="Cookiebot" src="https://consent.cookiebot.com/uc.js" data-cbid="89c7e0fa-fa61-446d-9c96-866489bcea3c" data-blockingmode="auto" type="text/javascript"></script> 69 } 70 71 @foreach (var language in GetLoop("Languages")) 72 { 73 string pageid = language.GetString("PageID"); 74 string url = string.Empty; 75 string productId = System.Web.HttpContext.Current.Request.QueryString.Get("productid"); 76 if (string.IsNullOrEmpty(productId)) 77 { 78 url = @GetGlobalValue("Global:Request.Scheme") + "://" + language.GetString("PrimaryDomain"); 79 url = url + Dynamicweb.Frontend.SearchEngineFriendlyURLs.GetFriendlyUrl("default.aspx?id=" + pageid); 80 } 81 else 82 { 83 string productSystemUrl = "default.aspx?id=" + pageid + "&ProductID=" + productId; 84 string productUrl = Dynamicweb.Frontend.SearchEngineFriendlyURLs.GetFriendlyUrl(productSystemUrl); 85 if (!string.IsNullOrEmpty(productUrl)) 86 { 87 url = @GetGlobalValue("Global:Request.Scheme") + "://" + language.GetString("PrimaryDomain") + productUrl; 88 } 89 } 90 if (!string.IsNullOrEmpty(url)) 91 { 92 <link rel="alternate" href='@url' hreflang='@language.GetString("Culture")'> 93 } 94 } 95 96 @* expand these bundles for re-design debugging *@ 97 98 @* Scripts.Render("~/bundle/jquery") *@ 99 @* @Scripts.Render("~/bundle/Validation") *@ 100 101 102 103 @* no need for this? we are not using bootstrap anymore!! /HagsCore/style/libraries/bootstrap-sass/assets/javascripts/bootstrap.min.js *@ 104 @* /HagsCore/style/scss/libraries/bootstrap-sass/assets/javascripts/bootstrap.min.js *@ 105 106 <script type="text/javascript" src="@(designBaseUrl)assets/js/libraries/jquery.min.js" cookieconsent="ignore"></script> 107 <script type="text/javascript" src="@(designBaseUrl)assets/js/libraries/validation/jquery.validate.min.js" cookieconsent="ignore"></script> 108 <script type="text/javascript" src="@(designBaseUrl)assets/js/libraries/validation/additional-methods.min.js" cookieconsent="ignore"></script> 109 <script type="text/javascript" src="@(designBaseUrl)assets/js/functions/hags-global.js?v=1.4.6&ts=@jsTimestamp" cookieconsent="ignore"></script> 110 @*<script type="text/javascript" src="@(designBaseUrl)assets/js/functions/hags-global.js?" cookieconsent="ignore"></script>*@ 111 112 @* the future!! HTMX is here *@ 113 <script src="@(designBaseUrl)assets/js/libraries/htmx/htmx.min.js" cookieconsent="ignore"></script> 114 115 <script type="text/javascript" src="@(designBaseUrl)assets/js/functions/h24.js?v=1.4.6&ts=@unixTimestamp" cookieconsent="ignore"></script> 116 117 118 @* this snippet is from the product page template *@ 119 @RenderSnippet("productScripts") 120 121 @* this snippet is from the case studies item listing *@ 122 @RenderSnippet("caseStudyScripts") 123 124 125 @* do not use these for now *@ 126 <!--IncludeFile("Includes/SharpSpringCode.cshtml")--> 127 <!--IncludeFile("Includes/TrailHub_DenmarkCode.cshtml")--> 128 <!-- Start of Sleeknote signup and lead generation tool - www.sleeknote.com --> 129 @if (!inDev) 130 { 131 <script id="sleeknoteScript" type="text/javascript"> 132 (function () { 133 var sleeknoteScriptTag = document.createElement("script"); 134 sleeknoteScriptTag.type = "text/javascript"; 135 sleeknoteScriptTag.charset = "utf-8"; 136 sleeknoteScriptTag.src = ("//sleeknotecustomerscripts.sleeknote.com/60385.js"); 137 var s = document.getElementById("sleeknoteScript"); 138 s.parentNode.insertBefore(sleeknoteScriptTag, s); 139 })(); 140 </script> 141 142 } 143 144 145 @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>> 146 147 @if (!inDev) 148 { 149 <meta name="facebook-domain-verification" content="8vnuupfwjjw7l4g2t44cuzv5c17fa2"> 150 <meta name="p:domain_verify" content="e984d55d650d51a77b5bd78fce401aee"> 151 152 string verificationCode = ""; 153 switch (masterAreaId) 154 { 155 case 1: 156 <!-- Google Analytics Property for Global --> 157 <meta name="google-site-verification" content="SU7OrN2pJAoaHy4QUbJqKRyiRK_pJK_mydVX9HnbAjE"> 158 break; 159 case 2: 160 <!-- Google Analytics Property for Sweden --> 161 <meta name="google-site-verification" content="WMHOYHSUksAhokWvc_pl1xi2eUEIqlSAmqSuPqBuIhw"> 162 break; 163 case 3: 164 <!-- Google Analytics Property for Germany --> 165 <meta name="google-site-verification" content="2FnagwVri1SLEk0f1-cNAMIsqoelzEf6qa64iTOo6A4"> 166 break; 167 case 4: 168 <!-- Google Analytics Property for Denmark --> 169 <meta name="google-site-verification" content="iTdN9SsW-DWo1nPaqZ2_W6c1lKr1KdpIE-9PIa7efD8"> 170 break; 171 case 5: 172 <!-- Google Analytics Property for France --> 173 <meta name="google-site-verification" content="q7sWMD42DhdNcVgQjRvpUnHq6UWvgFfxxN7SWLTjDBs"> 174 break; 175 case 6: 176 <!-- Google Analytics Property for Spain --> 177 <meta name="google-site-verification" content="5l8EU56ZLDtGLgFsyPizPWpK1lt_DAqhcYsgiP_wZ2w"> 178 break; 179 case 7: 180 <!-- Google Analytics Property for UK --> 181 <meta name="google-site-verification" content="VWJFZapvDhxv8eu8eMl66KkAAArEyIG3pa8ZffeAKrg"> 182 break; 183 } 184 185 <!-- Google Tag Manager --> 186 <script> 187 window.dataLayer = window.dataLayer || []; 188 </script> 189 <script type="text/javascript"> 190 (function (w, d, s, l, i) { 191 w[l] = w[l] || []; 192 w[l].push({ 193 'gtm.start': 194 new Date().getTime(), 195 event: 'gtm.js' 196 }); 197 var f = d.getElementsByTagName(s)[0], 198 j = d.createElement(s), 199 dl = l != 'dataLayer' ? '&l=' + l : ''; 200 j.async = true; 201 j.src = 202 'https://www.googletagmanager.com/gtm.js?id=' + i + dl; 203 f.parentNode.insertBefore(j, f); 204 })(window, document, 'script', 'dataLayer', 'GTM-MCRWZS'); 205 </script> 206 <!-- End Google Tag Manager --> 207 <!-- Facebook Pixel Code --> 208 <script type="text/javascript"> 209 !function (f, b, e, v, n, t, s) { 210 if (f.fbq) return; 211 n = f.fbq = function () { 212 n.callMethod ? n.callMethod.apply(n, arguments) : n.queue.push(arguments) 213 }; 214 if (!f._fbq) f._fbq = n; 215 n.push = n; 216 n.loaded = !0; 217 n.version = '2.0'; 218 n.queue = []; 219 t = b.createElement(e); 220 t.async = !0; 221 t.src = v; 222 s = b.getElementsByTagName(e)[0]; 223 s.parentNode.insertBefore(t, s) 224 }(window, 225 document, 226 'script', 227 'https://connect.facebook.net/en_US/fbevents.js'); 228 fbq('init', '271101660030700'); 229 fbq('track', 'PageView'); 230 </script> 231 <!-- End Facebook Pixel Code --> 232 } 233 234 235 236 <script type="text/javascript" src="https://cdn.weglot.com/weglot.min.js"></script> 237 <script> 238 Weglot.initialize({ 239 api_key: 'wg_99b6e7269c4b828ebd027c6d488b55500' 240 }); 241 </script> 242 243 <link href="https://www.hags.com/@langSite" hreflang="x-default" rel="alternate"> 244 245 @GetValue("Stylesheets") 246 @GetValue("Javascripts") 247 </head> 248 249 <body> 250 @if (!inDev) 251 { 252 <noscript> 253 <!-- Google Tag Manager (noscript) --> 254 <iframe src="https://www.googletagmanager.com/ns.html?id=GTM-MCRWZS" height="0" width="0" style="display:none;visibility:hidden"></iframe> 255 <!-- End Google Tag Manager (noscript) --> 256 <!-- Facebook Pixel Code --> 257 <img height="1" width="1" style="display:none" src="https://www.facebook.com/tr?id=271101660030700&ev=PageView&noscript=1"> 258 </noscript> 259 } 260 @* Snippets are rendered last and can be defined in any template *@ 261 @* We are using a snippet (headerClass) here to let a page template define if the header sits on top or is part of the 262 @* document flow. Setting the snippet to an empty string below makes sure it gets rendered as empty and not as a DW comment string *@ 263 @* if a snippetStart/End command is used in another template it is appended to the snippet *@ 264 265 @SnippetStart("headerClass")@("")@SnippetEnd("headerClass") 266 267 @{ 268 string weglotLangHeader = System.Web.HttpContext.Current.Request.Headers["weglot-language"]; 269 string urlLangHeader = weglotLangHeader != "" ? "/" + weglotLangHeader : ""; 270 //ignore the default en code 271 urlLangHeader = weglotLangHeader == "en" ? "" : urlLangHeader; 272 } 273 274 <header class="header" data-variant='@RenderSnippet("headerClass")'> 275 276 <div class="header__wrapper"> 277 278 <div class="header__global-nav"> 279 280 <div class="header-logo" itemscope="" itemtype="http://schema.org/Organization"> 281 <a href="Default.aspx?ID=@siteFirstPageId" itemprop="url"> 282 <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> 283 </a> 284 </div> 285 286 287 <div class="header__actions" data-username="@currentUser"> 288 289 <ul role="list" class="actions-list"> 290 291 <li class="actions-list__item"> 292 <button class="header__action-btn js-action-btn" data-target="search-panel"> 293 <span class="visually-hidden">Search</span> 294 <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 212 212" class="actions-list__icon"><path fill="currentColor" fill-rule="nonzero" d="M57.43 124.386a69.002 69.002 0 0 0 41.078 19.062l1.126 65.068 16.64-.293-1.126-65.068c32.015-4.457 56.718-30.428 59.57-62.625 2.85-32.197-16.906-62.091-47.641-72.086-30.735-9.994-64.306 2.559-80.952 30.27-16.646 27.71-11.958 63.24 11.305 85.672Zm84.54-87.151c20.857 20.141 21.437 53.377 1.295 74.235-20.141 20.857-53.377 21.437-74.235 1.295-20.857-20.141-21.437-53.377-1.295-74.235 20.141-20.857 53.377-21.437 74.235-1.295Z"></path></svg> 295 </button> 296 </li> 297 298 <li class="actions-list__item"> 299 <button class="header__action-btn js-action-btn" data-target="country-select-panel"> 300 <span class="visually-hidden">Choose Location</span> 301 <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> 302 </button> 303 </li> 304 305 <li class="actions-list__item"> 306 <button class="header__action-btn js-action-btn" data-target="collection-panel"> 307 <span class="visually-hidden">Product Collections</span> 308 <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> 309 </button> 310 </li> 311 312 <li class="actions-list__item"> 313 <button class="header__action-btn js-action-btn" data-target="hags-connect-panel"> 314 <span class="visually-hidden">HAGS Connect</span> 315 <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> 316 </button> 317 </li> 318 319 <li class="actions-list__item" id="menu-panel-icon"> 320 <button class="header__action-btn js-action-btn" data-target="nav-panel"> 321 <span class="visually-hidden">Menu</span> 322 <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> 323 </button> 324 </li> 325 326 </ul> 327 328 @helper renderSearch(Dynamicweb.Content.Area masterArea) 329 { 330 331 string searchPageUrl = Dynamicweb.Frontend.SearchEngineFriendlyURLs.GetFriendlyUrl(GetInteger("DwAreaSearchPageID")); 332 string langCode = @GetGlobalValue("Global:Area.LongLang"); 333 string searchId = @GetString("DwAreaSearchPageID"); 334 string searchTranslate = Translate("Search", "Search"); 335 string testHtmx = System.Web.HttpContext.Current.Request["htmx"]; 336 string weglotLang = System.Web.HttpContext.Current.Request.Headers["weglot-language"]; 337 string urlLang = weglotLang != "" ? "/" + weglotLang : ""; 338 //ignore the default en code 339 urlLang = weglotLang == "en" ? "" : urlLang; 340 341 <form id="search-box" name="searchBox" action="Default.aspx" method="get"> 342 <div class="form-group flow-s"> 343 <input type="hidden" name="ID" value="@searchId"> 344 <input type="hidden" id="search-advanced-culture" value="@langCode"> 345 <input type="hidden" id="search-advanced-resultsurl" value="@searchPageUrl"> 346 <input type="hidden" id="Searchtype" value=""> 347 <input type="hidden" id="search-advanced-pageAreaId" value="@(masterArea.ID)"> 348 <input type="hidden" id="search-advanced-pagelanguage" name="areaLanguage" value="LANG1"> 349 350 351 <label for="InputSearch"><h5>@(searchTranslate)</h5></label> 352 353 <!--input type="search" name="q" class="form-control" id="InputSearch" maxlength="45" placeholder="@(searchTranslate) HAGS" onkeyup="return forceLower(this);" autocomplete="off" /--> 354 @if ( true ) { 355 <p data-weglot="@weglotLang"> 356 <input type="search" id="InputSearch" 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"> 357 </p> 358 } 359 360 <button>@Translate("Go", "Go")</button> 361 </div> 362 </form> 363 364 <div class="header__action-area"> 365 <ul class="flow-xs" role="list" id="search-suggest"></ul> 366 </div> 367 } 368 369 <div class="header__action-panel" id="search-panel"> 370 <button class="header__action-btn header__action-btn--close js-panel-close"> 371 <span class="visually-hidden">Close</span> 372 <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> 373 </button> 374 <div class="header__action-copy flow-s"> 375 @renderSearch(masterArea) 376 </div> 377 </div> 378 379 380 @*if ( currentUser == "Kevin Lees" || currentUser == "Ian Mckay" )*@ 381 @if ( true ) 382 { 383 <div class="header__action-panel" id="hags-connect-panel"> 384 385 <button class="header__action-btn header__action-btn--close js-panel-close"> 386 <span class="visually-hidden">Close</span> 387 <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> 388 </button> 389 @{ 390 string thisPageID = @GetGlobalValue("Global:Page.ID"); 391 string hagsConnectTitle = @Translate("HAGS Connect", "HAGS Connect"); 392 } 393 394 <div class="header__action-copy flow-s"> 395 396 <h5>@hagsConnectTitle</h5> 397 398 <p>@Translate("HAGSConnectIntro", "A brief block of introductory copy about HAGS Connect.")</p> 399 400 @if (!String.IsNullOrWhiteSpace(GetGlobalValue("Global:Extranet.UserName"))) 401 { 402 403 <p> 404 <strong>@Translate("Welcome", "Welcome"), @GetGlobalValue("Global:Extranet.FirstName")</strong> 405 </p> 406 407 @RenderNavigation(new{ 408 ParentTag = "MyHags", 409 Template = "simple-nav.xslt" 410 }) 411 412 <ul role="list" class="icon-list"> 413 <li> 414 <a href="/admin/Public/ExtranetLogOff.aspx?ID=@thisPageID"> 415 <img src="@(designBaseUrl)assets/svg-icons/connect/logout-icon-2.svg"> 416 <span>@Translate("SignOut", "Sign Out")</span> 417 </a> 418 </li> 419 </ul> 420 421 422 423 } 424 else 425 { 426 if (Dynamicweb.Configuration.SystemConfiguration.Instance.GetBoolean("/Globalsettings/System/MyHags/SSOLoginActive")) 427 { 428 <a href="/Admin/Public/Social/ExternalLogin.aspx?action=login&amp;providerID=3">HAGS Connect Login</a> 429 } 430 } 431 432 </div> 433 </div> 434 } 435 436 437 @helper renderCountryList(string outputElement = "list") 438 { 439 // create a list of 'anonymous' objects to hold the weglot sites - move to site config at some point 440 var allCountries = new List<object> 441 { 442 new { Url = "https://hagsdev.hags.com", Image = "globe.svg", Title = "Global", Active = true }, 443 new { Url = "be-nl", Image = "be.svg", Title = "Belgium (Flemish)", Active = true }, 444 new { Url = "be-fr", Image = "be.svg", Title = "Belgium (French)", Active = true }, 445 new { Url = "zh", Image = "cn.svg", Title = "China", Active = true }, 446 new { Url = "hr", Image = "hr.svg", Title = "Croatia", Active = true }, 447 new { Url = "https://hags.dk/", Image = "dk.svg", Title = "Denmark", Active = true }, 448 new { Url = "et", Image = "ee.svg", Title = "Estonia", Active = true }, 449 new { Url = "fi", Image = "fi.svg", Title = "Finland", Active = true }, 450 new { Url = "fr", Image = "fr.svg", Title = "France", Active = true }, 451 new { Url = "de", Image = "de.svg", Title = "Germany", Active = true }, 452 new { Url = "hu", Image = "hu.svg", Title = "Hungary", Active = true }, 453 new { Url = "it", Image = "it.svg", Title = "Italy", Active = true}, 454 new { Url = "ja", Image = "jp.svg", Title = "Japan", Active = true}, 455 new { Url = "lv", Image = "lv.svg", Title = "Latvia", Active = true}, 456 new { Url = "nl", Image = "nl.svg", Title = "Netherlands", Active = true }, 457 new { Url = "no", Image = "no.svg", Title = "Norway", Active = true }, 458 new { Url = "pl", Image = "pl.svg", Title = "Poland", Active = true }, 459 new { Url = "sa", Image = "rs.svg", Title = "Serbia", Active = true }, 460 new { Url = "ko", Image = "kr.svg", Title = "South Korea", Active = true }, 461 new { Url = "es", Image = "es.svg", Title = "Spain", Active = true }, 462 new { Url = "https://hags.se/", Image = "se.svg", Title = "Sweden", Active = true }, 463 new { Url = "ch-de", Image = "ch.svg", Title = "Switzerland (German)", Active = true }, 464 new { Url = "tr", Image = "tr.svg", Title = "Turkey", Active = true}, 465 new { Url = "https://hags.co.uk/", Image = "gb.svg", Title = "United Kingdom", Active = true } 466 }; 467 468 // sort the list - the getType etc.. is because it's anonymous 469 //var sortedList = allCountries.OrderBy(item => item.GetType().GetProperty("Title").GetValue(item)).ToList(); 470 var sortedList = allCountries; 471 472 if ( outputElement == "list" ) 473 { 474 475 <ul class="icon-list" role="list"> 476 @foreach (var thisCountry in sortedList) 477 { 478 var thisActive = thisCountry.GetType().GetProperty("Active").GetValue(thisCountry); 479 var thisImage = thisCountry.GetType().GetProperty("Image").GetValue(thisCountry); 480 var thisTitle = thisCountry.GetType().GetProperty("Title").GetValue(thisCountry); 481 var thisUrl = thisCountry.GetType().GetProperty("Url").GetValue(thisCountry); 482 bool isActive = Convert.ToBoolean(thisActive); 483 484 if (isActive) 485 { 486 if ( thisTitle == "Global" ) { 487 <li> 488 <a href="@thisUrl" data-wg-notranslate=""> 489 <img src="/Files/Templates/Designs/Hags2024/icons/flags/@thisImage" alt="@thisTitle"> 490 <span data-wg-translate="">@thisTitle</span> 491 </a> 492 </li> 493 } 494 else 495 { 496 <li> 497 <a href="@thisUrl"> 498 <img src="/Files/Templates/Designs/Hags2024/icons/flags/@thisImage" alt="@thisTitle"> 499 <span>@thisTitle</span> 500 </a> 501 </li> 502 } 503 504 } 505 } 506 </ul> 507 } 508 } 509 510 511 512 513 <div class="header__action-panel" id="country-select-panel"> 514 515 <button class="header__action-btn header__action-btn--close js-panel-close"> 516 <span class="visually-hidden">Close</span> 517 <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> 518 </button> 519 <div class="header__action-copy flow-s"> 520 <h5>@Translate("SelectYourLocation", "Select your location")</h5> 521 <div class="header__action-area"> 522 @renderCountryList("list") 523 </div> 524 </div> 525 </div> 526 527 528 529 @using System; 530 @using System.Collections.Generic; 531 @using System.Linq; 532 @using Dynamicweb.Ecommerce.Variants; 533 @using HagsWeb.Library.BusinessObjects.UsersLists; 534 @using HagsWeb.Library.Methods.AssetManager; 535 @using HagsWeb.Library.Methods.ProductProperties; 536 @using HagsWeb.Library.State; 537 538 539 @helper renderMyCollectionPanel() 540 { 541 542 Dynamicweb.Frontend.PageView collectionPage = Dynamicweb.Frontend.PageView.Current() ?? Dynamicweb.Frontend.PageView.Current(); 543 Dynamicweb.Content.Area collectionArea = new Dynamicweb.Content.AreaService().GetArea(collectionPage.AreaID); 544 545 List<ProductCollectionItem> productCollectionItems = SessionManager.UsersMyProductCollection != null ? SessionManager.UsersMyProductCollection : new List<ProductCollectionItem>(); 546 547 bool isQuote = Convert.ToBoolean(collectionArea.Item["QuoteAndOrderChk"]); 548 bool isCatalog = true; // Always available; 549 string downloadingText = HagsWeb.Library.Utilities.DWUtilities.GetTranslation("Downloading...", "Downloading...", collectionArea.Culture); 550 int currentPage = collectionArea.ID; 551 string currentCollection = Dynamicweb.Context.Current.Request.QueryString.Get("collection"); 552 bool isLoggedIn = String.IsNullOrWhiteSpace(GetGlobalValue("Global:Extranet.UserName")) ? false : true; 553 string designBaseUrl = GetString("Template:DesignBaseUrl"); 554 555 List<ProductAsset> imageFileList = new List<ProductAsset>(); 556 List<ProductAsset> dwgFileList = new List<ProductAsset>(); 557 List<ProductAsset> instructionsFileList = new List<ProductAsset>(); 558 string contactUsLink = HagsWeb.Library.Utilities.DWUtilities.GetPageByNavigationTag("ContactUs", currentPage); // /kontakta-oss?mode=quote#contactForms // /kontakta-oss?success=True&mode=quote#contactForms // restful url 559 560 string printShout = Translate("SaveOrPrint", "Save or Print your Product PDF "); 561 string altCopy = @Translate("RemoveFromCollection", "Remove from my collection"); 562 string removeCopy = @Translate("RemoveFromCollection", "Remove from my collection"); 563 564 <div class="collection flow"> 565 566 <input type="hidden" id="isQuote" value="@isQuote"> 567 <input type="hidden" id="downloadingText" value="@downloadingText"> 568 <input type="hidden" id="collectionCount" value="@productCollectionItems.Count"> 569 570 <div id="instns_MyProductCollection" class="flow-xs"> 571 @if (productCollectionItems.Any() || !string.IsNullOrEmpty(currentCollection)) 572 { 573 <p>@Translate("ProductCollectionButtonInstructionsNew", "Go to <strong>My Collection</strong> to download files, create quotes or print a product catalogue.")</p> 574 <a class="btn btn--outline" href="/my-collection">@Translate("MyCollection", "My Collection")</a> 575 } 576 else 577 { 578 <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> 579 580 } 581 </div> 582 583 <div class="collection__ui"> 584 585 <div class="main-panel"> 586 587 <div class="panel-listing" id="prods_MyProductCollection"> 588 589 @if (productCollectionItems.Any()) 590 { 591 foreach (ProductCollectionItem item in productCollectionItems) 592 { 593 <div class="product-card collection__item"> 594 595 <div class="product-card__actions in-collection"> 596 597 <button type="button" class="action-btn" data-removeproductlist="@(item.ProductNumber)"> 598 <span class="visually-hidden">@removeCopy</span> 599 <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> 600 </button> 601 602 </div> 603 604 <div class="product-card__img-silo"> 605 606 @if (item.ProductImageUrl != null && !String.IsNullOrEmpty(item.ProductUrlReference)) 607 { 608 <a href="@item.ProductUrlReference"> 609 <img src="@item.ProductImageUrl"> 610 </a> 611 } 612 else 613 { 614 <a href="@item.ProductUrlReference" class="product-card__missing"> 615 <img src="@(designBaseUrl)assets/img/h24-see-saw.svg"> 616 <span>No Image Available</span> 617 </a> 618 } 619 620 </div> 621 622 <div class="product-card__copy"> 623 624 <p class="product-card__heading"> 625 <a href="@item.ProductUrlReference">@(item.ProductName)</a> 626 </p> 627 628 <p>@item.ProductNumber</p> 629 630 @if (!string.IsNullOrEmpty(item.ProductVariantId)) 631 { 632 Tuple<string, string, string, string, string, string, List<VariantOption>> optionsTuple = ProductFieldValues.GetProductOptions(item.ProductVariantId, collectionArea.EcomLanguageId); 633 634 //optionsTuple.Item1; "Red" 635 //optionsTuple.Item2; "Above Ground" 636 //optionsTuple.Item3; "Wooden Post" 637 //optionsTuple.Item4; "Wooden Post / HPL Panels" 638 //optionsTuple.Item5; "A310.png" 639 //optionsTuple.Item6; "A310-diagram.png" 640 //optionsTuple.Item7; List<VariantOption> Not used here 641 642 } 643 644 </div> 645 646 </div> 647 } 648 } 649 650 </div> 651 652 </div> 653 654 </div> <!-- collection__iu end --> 655 656 <div class="cluster"> 657 @if (productCollectionItems.Any()) 658 { 659 foreach (var item in productCollectionItems) 660 { 661 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()) 662 { 663 imageFileList.Add(asset); 664 } 665 666 foreach (ProductAsset asset in item.AssetDownloads.Where(n => n.Index == HagsWeb.Library.Methods.AssetManager.AssetTypeEnum.ToFriendlyAssetName(HagsWeb.Library.Methods.AssetManager.AssetType.Drawings)).ToList()) 667 { 668 dwgFileList.Add(asset); 669 } 670 671 foreach (ProductAsset asset in item.AssetDownloads.Where(n => n.Index == HagsWeb.Library.Methods.AssetManager.AssetTypeEnum.ToFriendlyAssetName(HagsWeb.Library.Methods.AssetManager.AssetType.AssemblyInstructions)).ToList()) 672 { 673 instructionsFileList.Add(asset); 674 } 675 } 676 677 <button class="btn btn--warn" type="button" data-removeproductlist="All">@Translate("RemoveAll", "Remove All")</button> 678 } 679 680 </div> 681 682 @if (isLoggedIn && productCollectionItems.Any()) 683 { 684 <div id="panelcollectiondetails" class="flow-xs"> 685 <h5><strong>@Translate("Save collection?", "Save collection?")</strong></h5> 686 <p>@Translate("You are logged in", "You are currently logged in to HAGS Connect so you can save this collection to your account.")</p> 687 <button class="btn btn--outline" role="button" data-open-modal="#saveCollection">@Translate("Save collection", "Save this Collection")</button> 688 </div> 689 } 690 else 691 { 692 if (!isLoggedIn && productCollectionItems.Any()) 693 { 694 <div id="panelcollectiondetails" class="flow-xs"> 695 <h5><strong>@Translate("Save collection?", "Save collection?")</strong></h5> 696 <p>@Translate("To save login", "To save this collection into your HAGS Connect simply login using the button below.")</p> 697 <a class="btn btn--outline" href="/Admin/Public/Social/ExternalLogin.aspx?action=login&amp;providerID=3">HAGS Connect Login</a> 698 </div> 699 } 700 } 701 702 </div> <!-- collection end --> 703 } 704 705 706 707 708 709 710 711 712 713 714 715 716 717 <div class="header__action-panel" id="collection-panel"> 718 719 <button class="header__action-btn header__action-btn--close js-panel-close"> 720 <span class="visually-hidden">Close</span> 721 <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> 722 </button> 723 724 <div class="header__action-copy flow-s"> 725 726 <h5>@Translate("MyProductCollection", "My Product Collection")</h5> 727 728 <div class="header__action-area" id="" hx-get="@(urlLangHeader)/snippets/my-collection-panel" hx-trigger="collectionChange from:document"> 729 730 @renderMyCollectionPanel() 731 732 </div> 733 734 </div> 735 736 </div> 737 738 739 <div class="header__action-panel" id="search-panel"> 740 <button class="header__action-btn header__action-btn--close js-panel-close"> 741 <span class="visually-hidden">Close</span> 742 <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> 743 </button> 744 <div class="header__action-copy flow-s"> 745 @renderSearch(masterArea) 746 </div> 747 </div> 748 749 <div class="header__action-panel" id="nav-panel"> 750 <button class="header__action-btn header__action-btn--close js-panel-close"> 751 <span class="visually-hidden">Close</span> 752 <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> 753 </button> 754 <div class="header__action-area"> 755 @RenderSnippet("navigation") 756 </div> 757 </div> 758 759 </div> 760 761 </div> 762 763 764 <div class="header__local-nav"> 765 766 @SnippetStart("navigation") 767 <nav class="nav"> 768 <!--button id="menu-toggle" class="menu-toggle menu-toggle--main" aria-expanded="false" aria-controls="main-nav"> 769 <div class="menu-toggle__box"> 770 <div class="menu-toggle__lines"></div> 771 </div> 772 <span class="visually-hidden">Menu</span> 773 </button--> 774 @GetValue("DwNavigation(mainnav)") 775 </nav> 776 @SnippetEnd("navigation") 777 778 @RenderSnippet("navigation") 779 780 @* This snippet generates the product listing links on levels 4 and 5 of the site *@ 781 @* In a snippet because these xslt built fuckers are only processed on PAGE templates not paragraph templates *@ 782 @* The snippet is then included in the relevant PARAGRAPH template *@ 783 784 @SnippetStart("nextLevelNav") 785 <section> 786 <div class="wrapper"> 787 @GetValue("DwNavigation(productlistingnav)") 788 </div> 789 </section> 790 @SnippetEnd("nextLevelNav") 791 792 </div></div></header> 793 @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>> 794 795 796 797 <main class="flow-page" id="content">@GetValue("DwContent(content)")</main> 798 @if (GetLoop("Item.Area.Accreditation_Images").Count() > 0) 799 { 800 <section class="creds"> 801 <div class="wrapper"> 802 <ul class="creds__list" role="list"> 803 <!-- Accreditation Carousel items --> 804 @foreach (var item in @GetLoop("Item.Area.Accreditation_Images")) 805 { 806 var imageUrl = item.GetString("Item.Area.Accreditation_Images.Image"); 807 var imageAlt = item.GetString("Item.Area.Accreditation_Images.Alternative_Text"); 808 string imageLink = item.GetString("Item.Area.Accreditation_Images.Link"); 809 var imageTitle = item.GetString("Item.Area.Accreditation_Images.Title"); 810 811 if (!string.IsNullOrWhiteSpace(imageLink)) 812 { 813 <li class="creds__item"> 814 <a href="@imageLink"> 815 <img class="creds__img" src="@imageUrl" alt="@imageAlt"> 816 </a> 817 </li> 818 } 819 else 820 { 821 <li class="creds__item"> 822 <img class="creds__img" src="@imageUrl" alt="@imageAlt" class="img-responsive"> 823 </li> 824 } 825 826 } 827 </ul> 828 </div> 829 </section> 830 } 831 832 <footer class="footer"> 833 <div class="inner-wrapper"> 834 835 <div class="footer__logo" itemscope="" itemtype="http://schema.org/Organization"> 836 <a href="Default.aspx?ID=@siteFirstPageId" itemprop="url"> 837 <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> 838 </a> 839 </div> 840 841 <div class="footer__switcher"> 842 843 @if (!string.IsNullOrWhiteSpace(GetString("Item.Area.Company_Name.Value"))) 844 { 845 <section class="footer-address" itemscope="" itemtype="http://schema.org/PostalAddress"> 846 <h4 class="footer__heading">@Translate("ContactUs", "Contact Us")</h4> 847 <p class="address"> 848 <span class="h-adr adr"> 849 <span class="fn p-org org">@GetString("Item.Area.Company_Name.Value")</span><br> 850 @if (!string.IsNullOrWhiteSpace(GetString("Item.Area.Company_Address"))) 851 { 852 <span class="p-street-address street-address" itemprop="streetAddress">@GetString("Item.Area.Company_Address.Value")</span> 853 } 854 @if (!string.IsNullOrWhiteSpace(GetString("Item.Area.Company_Address_2.Value"))) 855 { 856 <br><span class="p-street-address street-address" itemprop="streetAddress">@GetString("Item.Area.Company_Address_2.Value")</span> 857 } 858 @if (!string.IsNullOrWhiteSpace(GetString("Item.Area.Town_City.Value"))) 859 { 860 <br> <span class="p-street-address street-address" itemprop="addressLocality">@GetString("Item.Area.Town_City.Value")</span> 861 } 862 @if (!string.IsNullOrWhiteSpace(GetString("Item.Area.County.Value"))) 863 { 864 <br><span class="p-street-address street-address" itemprop="addressRegion">@GetString("Item.Area.County.Value")</span> 865 } 866 @if (!string.IsNullOrWhiteSpace(GetString("Item.Area.Postcode.Value"))) 867 { 868 <br><span class="p-street-address street-address" itemprop="postalCode">@GetString("Item.Area.Postcode.Value")</span> 869 } 870 </span> 871 </p> 872 <ul class="footer__list" role="list"> 873 @if (!string.IsNullOrWhiteSpace(GetString("Item.Area.Contact_Email_Link"))) 874 { 875 string mailTo = "mailto:" + GetString("Item.Area.Contact_Email_Link"); 876 <li> 877 <a href="@mailTo"> 878 E: <span itemprop="email">@GetString("Item.Area.Contact_Email")</span> 879 </a> 880 </li> 881 } 882 @if (!string.IsNullOrWhiteSpace(GetString("Item.Area.Telephone"))) 883 { 884 string telTo = "tel:" + GetString("Item.Area.Telephone"); 885 <li> 886 <a href="@telTo"> 887 T: <span itemprop="telephone">@GetString("Item.Area.Telephone")</span> 888 </a> 889 </li> 890 } 891 </ul> 892 </section> 893 } 894 895 <section> 896 <h4 class="footer__heading">@Translate("CompanyInformation", "Company Information")</h4> 897 <nav> 898 @GetValue("DwNavigation(footerpages)") 899 </nav> 900 901 @{ 902 int legalsLink = 0; 903 var legalsPage = HagsWeb.Library.Methods.Page.HagsPages.GetPageByNavigationTag("Legals", masterArea.ID); 904 if (legalsPage != null) 905 { 906 legalsLink = legalsPage.ID; 907 } 908 909 if (legalsLink > 0) 910 { 911 912 <ul class="footer__list" role="list"> 913 <li><a href="/Default.aspx?ID=@legalsLink">@Translate("PrivacyPolicy", "Privacy Policy")</a></li> 914 <li><a href="/Default.aspx?ID=@legalsLink">@Translate("CookieNotice", "Cookie Notice")</a></li> 915 <li><a href="/Default.aspx?ID=@legalsLink">@Translate("TermsConditions", "Terms & Conditions")</a></li> 916 </ul> 917 } 918 } 919 </section> 920 921 922 923 @if (GetString("Item.Area.Form_Provider") == "sharpspring-provider") 924 { 925 if (!String.IsNullOrWhiteSpace(GetString("Item.Area.Newsletter_Form_ID.Value"))) 926 { 927 <!-- SharpSpring Form Provider --> 928 <div class="sharpspring-provider"> 929 <h4 class="footer__heading">@Translate("JoinOurNewsletter", "Join our Newsletter")</h4> 930 @{ 931 string ss_src_newsletter = string.Format("https://{0}/client/form.js?ver=2.0.1", GetString("Item.Area.Contact_Form_Domain.Value")); 932 } 933 <!-- SharpSpring Form for Newsletter Form: Revised Formatting --> 934 <script type="text/javascript"> 935 var ss_form = {'account': '@GetString("Item.Area.Contact_Form_Account_ID.Value")', 'formID': '@GetString("Item.Area.Newsletter_Form_ID.Value")'}; 936 ss_form.width = '100%'; 937 ss_form.domain = '@GetString("Item.Area.Contact_Form_Domain.Value")'; 938 // ss_form.hidden = {'field_id': 'value'}; // Modify this for sending hidden variables, or overriding values 939 // ss_form.target_id = 'target'; // Optional parameter: forms will be placed inside the element with the specified id 940 // ss_form.polling = true; // Optional parameter: set to true ONLY if your page loads dynamically and the id needs to be polled continually. 941 </script> 942 <script type="text/javascript" src="@ss_src_newsletter"></script> 943 </div> 944 <!-- End of SharpSpring Form Provider --> 945 } 946 } 947 948 @if (GetString("Item.Area.Form_Provider") == "apsis-provider") 949 { 950 if (!String.IsNullOrWhiteSpace(GetString("Item.Area.APSIS_Newsletter_Form_ID.Value"))) 951 { 952 <!-- APSIS Form Provider --> 953 <div class="apsis-provider"> 954 <h4 class="footer__heading">@Translate("JoinOurNewsletter", "Join our Newsletter")</h4> 955 @{ 956 string apsis_form = string.Format("afp-{0}", GetString("Item.Area.APSIS_Newsletter_Form_ID.Value")); 957 } 958 <script src="https://forms.apsisforms.com/formbuilder.js"></script> 959 <script> 960 (function() { 961 var form = new ApsisForms.FormbuilderInstance(); 962 form.init({ 963 formId: '@GetString("Item.Area.APSIS_Newsletter_Form_ID.Value")' 964 }); 965 })(); 966 </script> 967 <div class='@apsis_form'>&nbsp;</div> 968 </div> 969 <!-- End of APSIS Form Provider --> 970 } 971 } 972 <section> 973 <h4 class="footer__heading">@Translate("FindUs", "Find Us")</h4> 974 <ul class="footer__list"> 975 <!-- Social Media items --> 976 @foreach (var item in @GetLoop("Item.Area.Social_Media")) 977 { 978 var linkUrl = item.GetValue("Item.Area.Social_Media.Social_Link"); 979 string linkTitle = item.GetString("Item.Area.Social_Media.Social_Icon"); 980 string linkIcon = "/Files/Templates/Designs/HagsCore/res/img/icons/social/" + linkTitle + ".png"; 981 <li><a href="@linkUrl" target="_blank">@linkTitle</a></li> 982 } 983 </ul> 984 </section> 985 986 </div> 987 </div> 988 989 990 </footer> 991 992 @if ( false ) 993 { 994 if (GetString("Item.Area.Form_Provider") == "sharpspring-provider") 995 { 996 if (!String.IsNullOrWhiteSpace(GetString("Item.Area.Contact_Form_ID.Value"))) 997 { 998 <!-- SharpSpring Form Provider --> 999 <div class="sharpspring-provider"> 1000 1001 <div id="sharpspring-form-message" class="sharpspring-form-message"> 1002 <div id="sharpspring-form-message-container" class="sharpspring-form-message-container active hide-help hide-help-2"> 1003 <p class="close-form"><a id="hide-sharpspring" href="#">X</a></p> 1004 <a id="open-sharpspring" class="btn" href="/en-us/play" role="button">@GetString("Item.Area.Contact_Button_CTA.Value")</a> 1005 </div> 1006 </div> 1007 1008 <div id="sharpspring-form-popup" class="overlay sharpspring-form-popup"> 1009 <div class="sharpspring-form-popup-container"> 1010 <p class="close-form"><a href="#" id="close-sharpspring">X</a></p> 1011 <div class="col-xs-12 col-sm-12 col-md-6 col-lg-6 pop-up-information"> 1012 @{ 1013 string image = string.Format("{0}", GetString("Item.Area.Contact_Image.Value")); 1014 } 1015 <h4>@GetString("Item.Area.Contact_Headline.Value")</h4> 1016 @GetString("Item.Area.Contact_Copy.Value") 1017 <img src="@image" class="pop-up-image img-responsive"> 1018 </div> 1019 1020 <div class="col-xs-12 col-sm-12 col-md-6 col-lg-6"> 1021 @{ 1022 string ss_src = string.Format("https://{0}/client/form.js?ver=2.0.1", GetString("Item.Area.Contact_Form_Domain.Value")); 1023 } 1024 <!-- SharpSpring Form for Contact Form: Revised Formatting --> 1025 <script type="text/javascript"> 1026 var ss_form = {'account': '@GetString("Item.Area.Contact_Form_Account_ID.Value")', 'formID': '@GetString("Item.Area.Contact_Form_ID.Value")'}; 1027 ss_form.width = '100%'; 1028 ss_form.domain = '@GetString("Item.Area.Contact_Form_Domain.Value")'; 1029 // ss_form.hidden = {'field_id': 'value'}; // Modify this for sending hidden variables, or overriding values 1030 // ss_form.target_id = 'target'; // Optional parameter: forms will be placed inside the element with the specified id 1031 // ss_form.polling = true; // Optional parameter: set to true ONLY if your page loads dynamically and the id needs to be polled continually. 1032 </script> 1033 <script type="text/javascript" src="@(ss_src)"></script> 1034 </div> 1035 </div> 1036 </div> 1037 </div> 1038 <!-- End of SharpSpring Form Provider --> 1039 } 1040 } 1041 1042 if (GetString("Item.Area.Form_Provider") == "apsis-provider") 1043 { 1044 if (!String.IsNullOrWhiteSpace(GetString("Item.Area.APSIS_Contact_Form_ID.Value"))) 1045 { 1046 <!-- APSIS Form Provider --> 1047 <div class="sharpspring-provider"> 1048 <div id="sharpspring-form-message" class="sharpspring-form-message"> 1049 <div id="sharpspring-form-message-container" style="display: none;" class="sharpspring-form-message-container active hide-help hide-help-2"> 1050 <p class="close-form"><a id="" href="#">X</a></p> 1051 <a id="open-sharpspring" class="btn" href="/en-us/play" role="button">@GetString("Item.Area.APSIS_Contact_Button_CTA.Value")</a> 1052 </div> 1053 </div> 1054 1055 <div id="sharpspring-form-popup" class="overlay sharpspring-form-popup"> 1056 <div class="sharpspring-form-popup-container"> 1057 <p class="close-form"><a href="#" id="close-sharpspring">X</a></p> 1058 <div class="col-xs-12 col-sm-12 col-md-6 col-lg-6 pop-up-information"> 1059 @{ 1060 string image = string.Format("{0}", GetString("Item.Area.Contact_Image.Value")); 1061 } 1062 <h4>@GetString("Item.Area.APSIS_Contact_Headline.Value")</h4> 1063 @GetString("Item.Area.APSIS_Contact_Copy.Value") 1064 <img src="@image" class="pop-up-image img-responsive"> 1065 </div> 1066 1067 <div class="col-xs-12 col-sm-12 col-md-6 col-lg-6"> 1068 @{ 1069 string apsis_form = string.Format("afp-{0}", GetString("Item.Area.APSIS_Contact_Form_ID.Value")); 1070 } 1071 <script src="https://forms.apsisforms.com/formbuilder.js"></script> 1072 <script> 1073 (function() { 1074 var form = new ApsisForms.FormbuilderInstance(); 1075 form.init({ 1076 formId: '@GetString("Item.Area.APSIS_Contact_Form_ID.Value")' 1077 }); 1078 })(); 1079 </script> 1080 <div class='@apsis_form'>&nbsp;</div> 1081 </div> 1082 </div> 1083 </div> 1084 </div> 1085 <!-- End of APSIS Form Provider --> 1086 } 1087 } 1088 } 1089 1090 1091 @*IncludeFile("partials/footer-scripts.cshtml")*@ 1092 1093 <dialog class="modal" id="adviceModal"> 1094 1095 <div class="modal__body"> 1096 1097 <div class="modal__header"> 1098 1099 <div class="modal__close"> 1100 <button type="button" class="action-btn js-modal-close-target" data-target-id="adviceModal"> 1101 <span class="visually-hidden">Close</span> 1102 <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> 1103 </button> 1104 </div> 1105 1106 <h3 class="ts-2" id="advice-title"> 1107 <span>Information</span> 1108 </h3> 1109 1110 </div> 1111 1112 <div class="modal__main"> 1113 1114 <div id="result-advice" class="advice-message"></div> 1115 1116 </div> 1117 1118 <div class="modal__footer"> 1119 1120 <button type="button" class="btn btn--outline js-modal-close-target" data-target-id="adviceModal"> 1121 @Translate("Close", "Close") 1122 </button> 1123 1124 </div> 1125 1126 </div> 1127 1128 </dialog> 1129 @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>> 1130 @using System.Collections.Generic 1131 @using HagsWeb.Library.BusinessObjects.UsersLists 1132 1133 @{ 1134 int currentAreaID = int.TryParse(GetGlobalValue("Global:Area.ID"), out currentAreaID) ? currentAreaID : 0; 1135 var currentArea = new Dynamicweb.Content.AreaService().GetArea(currentAreaID); 1136 1137 //List<ProductCollectionItem> productCollectionItems = SessionManager.UsersMyProductCollection != null ? SessionManager.UsersMyProductCollection : new List<ProductCollectionItem>(); 1138 1139 } 1140 1141 <dialog id="CreateCatalog" class="modal modal--full"> 1142 1143 <div class="modal__body"> 1144 1145 <div class="modal__header"> 1146 1147 <div class="modal__close"> 1148 <button type="button" class="action-btn js-modal-close-target" data-target-id="CreateCatalog"> 1149 <span class="visually-hidden">Close</span> 1150 <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> 1151 </button> 1152 </div> 1153 1154 <h4 class="modal-title" id="CreateCatalogModalLabel"> 1155 @Translate("CreateYourCatalog", "Create Your Catalogue") 1156 </h4> 1157 1158 </div> <!-- header --> 1159 1160 <div class="modal__main"> 1161 1162 <div id="div_CreateCatalog" class="modal__pdf-grid"> 1163 1164 <div class="modal__forms"> 1165 1166 <form id="frm_CreateCatalog"> 1167 <input type="hidden" name="areaId" value="@(currentArea.ID)"> 1168 <input type="hidden" name="languageId" value="@currentArea.EcomLanguageId"> 1169 <input type="hidden" value="#CreateCatalog" name="catType"> 1170 <input type="hidden" name="weglotLang" value=""> 1171 <fieldset> 1172 <div> 1173 <label for="catHagsCatalogName">@Translate("HagsCatalogName", "Hags Catalog Name"):</label> 1174 <input type="text" class="form-control search-group" value="" name="catHagsCatalogName"> 1175 </div> 1176 1177 <label for="catHagsContactName">@Translate("HagsContactName", "Hags Contact Name"):</label> 1178 <input type="text" class="form-control search-group" value="" name="catHagsContactName"> 1179 1180 <label for="catHagsContactPhone">@Translate("HagsPhoneNumber", "Hags Phone Number"):</label> 1181 <input type="text" class="form-control search-group" value="" name="catHagsContactPhone"> 1182 1183 <label for="catHagsContactEmail">@Translate("HagsContactEmail", "Hags Contact Email"):</label> 1184 <input type="email" class="form-control search-group" value="" name="catHagsContactEmail"> 1185 1186 <label for="catCompanyName">@Translate("CompanyName", "Company Name"):</label> 1187 <input type="text" class="form-control search-group" value="" name="catCompanyName"> 1188 1189 <label for="catAddress">@Translate("CompanyAddress", "Company Address"):</label> 1190 <input type="text" class="form-control search-group" value="" name="catAddress"> 1191 1192 <input type="text" class="form-control search-group" value="" name="catAddress2"> 1193 1194 <label for="catAddrTown">@Translate("CompanyTown", "Company Town"):</label> 1195 <input type="text" class="form-control search-group" value="" name="catAddrTown"> 1196 1197 <label for="catAddrPostCode">@Translate("CompanyPostCode", "Company Postal Code"):</label> 1198 <input type="text" class="form-control search-group" value="" name="catAddrPostCode"> 1199 1200 <label for="catAddrCountry">@Translate("CompanyCountry", "Company Country"):</label> 1201 <input type="text" class="form-control search-group" value="" name="catAddrCountry"> 1202 1203 1204 </fieldset> 1205 </form> 1206 1207 1208 @*Switch Form here*@ 1209 1210 <form id="frm_CatalogEmailSettings" style="display:none"> 1211 <input type="hidden" name="pdfFileName" value=""> 1212 <input type="hidden" name="areaId" value="@currentAreaID"> 1213 <input type="hidden" name="weglotLang" value=""> 1214 1215 <fieldset> 1216 1217 <label for="emailFrom">@Translate("EmailFrom", "Email from"):</label> 1218 <input type="email" class="form-control search-group" name="emailFrom" required="" value=""> 1219 1220 <label for="emailTo">@Translate("EmailTo", "Email to"):</label> 1221 <input type="email" class="form-control search-group" name="emailTo" required="" value=""> 1222 1223 <label for="emailSubject">@Translate("EmailSubject", "Subject"):</label> 1224 <input type="text" class="form-control search-group" name="emailSubject" value=""> 1225 1226 <label for="emailMessage">@Translate("Message", "Message"):</label> 1227 <textarea class="form-control" name="emailMessage" cols="45" rows="7" value=""></textarea> 1228 1229 </fieldset> 1230 1231 <div name="emailProgressContent" style="display:none;"> 1232 <span id="CreateCatalogueEmailLabel" style="display: block; text-align: center; margin: auto;">@Translate("SendingYourEmail", "Sending your Email")</span> 1233 <img src="/Files/Templates/Designs/HagsCore/res/img/loader/ajax-loader.gif" style="margin: auto; display: block;"> 1234 </div> 1235 1236 <div name="emailProgress" style="display: none;"></div> 1237 1238 <div class="m-search-advanced-buttons text-right" name="preSendEmail" style="display: block;"> 1239 1240 <button class="btn btn--outline" name="emailcatalogue" type="button" role="button">@Translate("SendEmail", "Send Email")</button> 1241 <button class="btn btn--outline" style="display: none;" name="refreshemail" type="button" role="button">@Translate("Refresh", "Refresh")</button> 1242 <button class="btn btn--outline" name="cancelemail" type="button" role="button" data-modal-name="catalogue">@Translate("Cancel", "Cancel")</button> 1243 1244 </div> 1245 1246 1247 <div class="m-search-advanced-buttons text-center" name="downloadResend" style="display: none;"> 1248 1249 <button class="btn btn--outline" style="display: none;" name="resendcatalogue" type="button" role="button">@Translate("SendEmail", "Send Email")</button> 1250 <button class="btn btn--outline" style="margin: 2px;" name="refreshemail" type="button" role="button">@Translate("ClearFormSendAgain", "Clear form and send again")</button><br> 1251 <a href="" class="btn btn--outline" name="pdfDownloadLink" download="">@Translate("DownloadCatalogue", "Download Catalogue")</a> 1252 <button class="btn btn--outline js-modal-close-target" data-target-id="CreateCatalog" type="button">@Translate("CloseWindow", "Close Window")</button> 1253 1254 </div> 1255 1256 </form> 1257 1258 <script> 1259 $("#frm_CatalogEmailSettings").validate(); 1260 </script> 1261 1262 </div> 1263 1264 <div id="loader" style="display:none;text-align:center;position:absolute;left:61%;"> 1265 <span id="CreateCataloguePdfLabel" style="display: inline-block;margin: 10px 10px 0 0;padding: 5px 10px"></span> 1266 <img src="/Files/Templates/Designs/Hags2024/assets/img/loader/ajax-loader.gif" style="margin:auto;display:block;"> 1267 </div> 1268 1269 <div id="pdfViewer" class="modal__embed-silo"></div> 1270 1271 </div> 1272 1273 </div> <!-- main --> 1274 1275 1276 <div class="modal__footer"> 1277 1278 <div class="m-search-advanced-buttons cluster cluster--dialog"> 1279 1280 <button class="btn btn--outline" name="updatecatalogue" role="button" type="button"> 1281 @Translate("UpdateCatalogue", "Update Catalog") 1282 </button> 1283 1284 1285 1286 <button class="btn btn--outline" name="createemail" data-modal-name="catalogue" type="button" role="button">@Translate("EmailCatalogue", "Email Catalogue")</button> 1287 <button class="btn btn--outline" id="pdfPrintCatalogue" target="_blank" type="button">@Translate("Print", "Print")</button> 1288 <a class="btn btn--outline" href="#" id="pdfDownloadCatalogue" type="button" download="">@Translate("Download", "Download")</a> 1289 <button class="btn btn--outline js-modal-close-target" data-target-id="CreateCatalog" type="button">@Translate("Close", "Close")</button> 1290 1291 </div> 1292 1293 </div> <!-- footer --> 1294 1295 </div> 1296 1297 </dialog> 1298 @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>> 1299 @using HagsWeb.Library.State; 1300 @using HagsWeb.Library.BusinessObjects.UsersLists; 1301 @{ 1302 1303 int saveCollectionAreaID = HagsWeb.Library.Utilities.WebUtilities.CheckInteger(GetGlobalValue("Global:Area.ID")); 1304 Dynamicweb.Content.Page saveCollectionMyHagsRegistrationPage = HagsWeb.Library.Methods.Page.HagsPages.GetPageByNavigationTag("CreateAccountPage", saveCollectionAreaID); 1305 1306 bool savecollection = bool.Parse(string.IsNullOrEmpty(Dynamicweb.Context.Current.Request.QueryString.Get("savecollection")) ? "false" : Dynamicweb.Context.Current.Request.QueryString.Get("savecollection")); 1307 1308 string areaLanguage = GetGlobalValue("Global:Area.Lang"); 1309 1310 EditCollection editSession = new EditCollection(); 1311 if (SessionManager.IsSessionValueSet("EditCollectionSession_" + GetGlobalValue("Global:Extranet.UserID"))) 1312 { 1313 editSession = (EditCollection)SessionManager.GetSessionItem("EditCollectionSession_" + GetGlobalValue("Global:Extranet.UserID")); 1314 } 1315 1316 string currentCollectionName = string.Empty; // Dynamicweb.Context.Current.Request.QueryString.Get("collection"); 1317 string currentCollectionDescription = string.Empty; 1318 string currentCollectionOriginalFileName = string.Empty; 1319 if (editSession != null) 1320 { 1321 currentCollectionName = editSession.CollectionName; 1322 currentCollectionDescription = editSession.CollectionDescription; 1323 currentCollectionOriginalFileName = editSession.OriginalFileName; 1324 } 1325 1326 bool isLoggedIn = false; 1327 if (!String.IsNullOrWhiteSpace(GetGlobalValue("Global:Extranet.UserName"))) 1328 { 1329 isLoggedIn = true; 1330 } 1331 1332 string saveCollectionValidationMessages = string.Format("messages_{0}.min.js", GetGlobalValue("Global:Area.Lang")); 1333 string saveCollectionAreaLanguage = GetGlobalValue("Global:Area.Lang"); 1334 string saveCollectionLoginPageId = GetGlobalValue("Global:Page.ID"); 1335 string UserId = GetGlobalValue("Global:Extranet.UserID"); 1336 //string designBaseUrl = GetString("Template:DesignBaseUrl"); 1337 1338 // Notes: for the Forgotten Password we now are just advising the user to contact their local office for a reset 1339 // We do however maintain the original code as is for when they change their mind back again! 1340 } 1341 1342 1343 @*@Scripts.Render("~/bundle/Validation")*@ 1344 1345 <dialog class="modal" id="saveCollection"> 1346 1347 @if (areaLanguage != "en") 1348 { 1349 <script src="@(designBaseUrl)assets/js/libraries/validation/localization/@saveCollectionValidationMessages"></script> 1350 } 1351 1352 <div class="modal__body"> 1353 1354 <div class="modal__header"> 1355 1356 <div class="modal__close"> 1357 <button type="button" class="action-btn js-modal-close-target" data-target-id="saveCollection"> 1358 <span class="visually-hidden">Close</span> 1359 <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> 1360 </button> 1361 </div> 1362 1363 <h3 class="ts-2"> 1364 @Translate("SaveMyHagsCollection", "Save HAGS Connect Collection") 1365 </h3> 1366 1367 </div> 1368 1369 <div class="modal__main"> 1370 1371 <input type="hidden" id="action" value=""> 1372 1373 <form role="form" method="post" id="saveCollectionForm" action=""> 1374 1375 <input type="hidden" name="UserId" value="@UserId"> 1376 <input type="hidden" name="OriginalFileName" value="@currentCollectionOriginalFileName"> 1377 1378 <div class="form-group"> 1379 <label for="collectionName">@Translate("CollectionName", "Name of Collection") <sup>*</sup></label> 1380 <input type="text" class="form-control" name="CollectionName" value="@currentCollectionName" required="" placeholder='@Translate("CollectionName", "Name of Collection")'> 1381 </div> 1382 1383 <div class="form-group"> 1384 <label for="collectionDescription">@Translate("CollectionDescription", "Description") <sup>*</sup></label> 1385 <textarea type="text" class="form-control" rows="4" cols="50" name="CollectionDescription" required="" placeholder='@Translate("CollectionDescription", "Description")'>@currentCollectionDescription</textarea> 1386 </div> 1387 1388 <div id="resultAdvice"></div> 1389 1390 </form> 1391 1392 1393 <script> 1394 //$("#saveCollectionloginForm").validate(); 1395 $("#saveCollectionForm").validate(); 1396 </script> 1397 1398 </div> 1399 1400 1401 <div class="modal__footer"> 1402 1403 <button type="submit" id="save" name="savecollection" class="btn btn--outline">@Translate("Save", "Save")</button> 1404 <button type="button" id="continue" name="modalclose" class="btn btn--outline js-modal-close-target" data-target-id="saveCollection">@Translate("Close", "Close")</button> 1405 <!--button type="button" id="new" name="removecollection" class="btn btn--outline" data-removeproductlist="All" data-dismiss="modal">@Translate("StartNewCollection", "Start a new collection")</button--> 1406 1407 </div> 1408 1409 </div> 1410 1411 </dialog> 1412 1413 } 1414 1415 1416 @* this snippet is from the case studies item listing *@ 1417 @RenderSnippet("bodyScripts") 1418 1419 1420 @SnippetStart("bodyScripts") 1421 1422 @* my collection scripts *@ 1423 1424 <script type="text/javascript" src="@(designBaseUrl)assets/js/libraries/filesaver/filesaver.min.js"></script> 1425 <script type="text/javascript" src="@(designBaseUrl)assets/js/functions/product-collection.js?v=1.2&ts=@unixTimestamp"></script> 1426 @* <script type="text/javascript" src="@(designBaseUrl)assets/js/functions/product-collection.js?v=1.2&ts=@jsTimestamp"></script>*@ 1427 1428 @* contact form scripts *@ 1429 <script type="text/javascript" src="@(designBaseUrl)assets/js/functions/contact-us-forms.js"></script> 1430 1431 1432 @* load the embla carousel script *@ 1433 <script data-cookieconsent="ignore" type="text/javascript" src="@(designBaseUrl)assets/js/libraries/embla/embla-carousel.umd.js"></script> 1434 <script data-cookieconsent="ignore" type="text/javascript" src="@(designBaseUrl)assets/js/libraries/embla/embla-carousel-fade.umd.js"></script> 1435 1436 <!--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--> 1437 @SnippetEnd("bodyScripts") 1438 1439 </body> 1440 </html> 1441 1442 1443