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