Error executing template "Designs/Tapas/_parsed/cleanpage.parsed.cshtml"
System.InvalidOperationException: Sequence contains no elements
at System.Linq.Enumerable.First[TSource](IEnumerable`1 source)
at CompiledRazorTemplates.Dynamic.RazorEngine_24347a48e3f64390987eb28ba3b2f6bc.Execute() in E:\Websites\elma.LIVE\Files\Templates\Designs\Tapas\_parsed\cleanpage.parsed.cshtml:line 266
at RazorEngine.Templating.TemplateBase.RazorEngine.Templating.ITemplate.Run(ExecuteContext context, TextWriter reader)
at RazorEngine.Templating.RazorEngineService.RunCompile(ITemplateKey key, TextWriter writer, Type modelType, Object model, DynamicViewBag viewBag)
at RazorEngine.Templating.RazorEngineServiceExtensions.<>c__DisplayClass16_0.<RunCompile>b__0(TextWriter writer)
at RazorEngine.Templating.RazorEngineServiceExtensions.WithWriter(Action`1 withWriter)
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 Dynamicweb.Rendering
3 @using System.Collections.Generic
4 @using Dynamicweb.Environment
5
6 @{
7 object objInstantSearchId = (object)null;
8 Dynamicweb.Frontend.PageView.Current().Area.Item.TryGetValue("InstantSearchId", out objInstantSearchId);
9 int instantSearchId = int.Parse(objInstantSearchId.ToString());
10
11 object objProductCatalogId = (object)null;
12 Dynamicweb.Frontend.PageView.Current().Area.Item.TryGetValue("ProductCatalogId", out objProductCatalogId);
13 int productCatalogId = int.Parse(objProductCatalogId.ToString());
14
15 object objLoginId = (object)null;
16 Dynamicweb.Frontend.PageView.Current().Area.Item.TryGetValue("LoginId", out objLoginId);
17 int loginId = int.Parse(objLoginId.ToString());
18
19 object objFooterId = (object)null;
20 Dynamicweb.Frontend.PageView.Current().Area.Item.TryGetValue("FooterId", out objFooterId);
21 int footerId = int.Parse(objFooterId.ToString());
22
23 object objCheckoutId = (object)null;
24 Dynamicweb.Frontend.PageView.Current().Area.Item.TryGetValue("CheckoutId", out objCheckoutId);
25 int checkoutId = int.Parse(objCheckoutId.ToString());
26
27 object objNewsletterId = (object)null;
28 Dynamicweb.Frontend.PageView.Current().Area.Item.TryGetValue("NewsletterId", out objNewsletterId);
29 int newsletterId = int.Parse(objNewsletterId.ToString());
30
31 object objLogo = (object)null;
32 Dynamicweb.Frontend.PageView.Current().Area.Item.TryGetValue("Logo", out objLogo);
33 string logo = objLogo.ToString();
34
35 object objSearchResultId = (object)null;
36 Dynamicweb.Frontend.PageView.Current().Area.Item.TryGetValue("SearchResultId", out objSearchResultId);
37 int searchResultId = int.Parse(objSearchResultId.ToString());
38
39 string googleMapsLink = Dynamicweb.Core.Converter.ToString(Pageview.Area.Item["MapsLink"]);
40
41 var CurrentUser = Dynamicweb.Security.UserManagement.User.GetCurrentUser();
42 string action = GetString("DWExtranetAction");
43 string userName = GetString("DWExtranetUsername");
44 string password = GetString("DWExtranetPassword");
45 string rememberUsername = GetString("DWExtranetUsernameRemember");
46 string rememberPassword = GetString("DWExtranetPasswordRemember");
47 string pageid = GetGlobalValue("Global:Page.ID");
48
49 var websiteLoop = GetLoop("Item.Area.Websites");
50 string currentAreaId = GetString("DwAreaID");
51
52 string globalValueUrl = GetGlobalValue( "Global:Pageview.Url" );
53 bool isProductPage = string.IsNullOrEmpty( System.Web.HttpContext.Current.Request["productid"] ) == false;
54 string canonicalPageView = String.Format( "{0}://{1}{2}", GetGlobalValue( "Global:Request.Scheme" ), GetGlobalValue( "Global:Request.Host" ), globalValueUrl );
55 bool printActivated = !string.IsNullOrEmpty(Dynamicweb.Context.Current.Request.GetString("activatePrint"));
56 string printCssClass = printActivated ? "print-ready" : "";
57 string doctypeprops1 = string.Empty;
58 string doctypeprops2 = string.Empty;
59 string htmltype = string.Empty;
60 string fixoverflow = string.Empty;
61
62 DateTime today = DateTime.Today;
63 string currentYear = today.ToString("yyyy");
64
65 var footerNavigationLoop = GetLoop("Item.Area.FooterNavigation");
66
67 var isCheckout = false;
68 if (checkoutId == int.Parse(pageid))
69 {
70 isCheckout = true;
71 }
72 string CustomerType = Firstweb.Custom.CustomCode.Webshop.Frontend.Helpers.CustomerType.GetCustomerType();
73 string privateSelected = CustomerType == "Privat" ? "selected" : "";
74 string companySelected = CustomerType == "Erhverv" ? "selected" : "";
75 string assetVersion = "2.1.43X";
76
77 string paymentImage = Dynamicweb.Core.Converter.ToString(Pageview.Area.Item["PaymentImage"]);
78
79 string eComCanonicalSnippetTag = RenderSnippet( "eComCanonical" ).ToString().Trim();
80 string scheme = Dynamicweb.Context.Current.Request.Url.Scheme;
81 string host = Dynamicweb.Context.Current.Request.Url.Host;
82 }
83
84 @SnippetStart("Logo")
85 <a href="/" class="branding">
86 <img class="img-responsive" src='@logo' alt='@Translate("LogoAlt", "Elma Instruments A/S")'>
87 </a>
88 @SnippetEnd("Logo")
89
90 @if (printActivated)
91 {
92 doctypeprops1 = "\"-//W3C//DTD XHTML 1.0 Strict//EN\"";
93 doctypeprops2 = "\"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\"";
94 htmltype = "http://www.w3.org/1999/xhtml";
95 fixoverflow = "overflow:hidden;";
96 }
97
98 <!DOCTYPE html PUBLIC @doctypeprops1 @doctypeprops2>
99 <html lang="@Pageview.Area.CultureInfo.TwoLetterISOLanguageName" xmlns='@htmltype' style='@fixoverflow'>
100
101 <head>
102 @if (GetBoolean("Item.Area.Custom_Activate_ABTest"))
103 {
104 <!-- AB Split test script DK -->
105 if (currentAreaId == "8")
106 {
107 <script type="text/javascript" src="https://cdn-sitegainer.com/5620463/es6/index.bundle.js"></script>
108 }
109
110 <!-- AB Split test script Se -->
111 if (currentAreaId == "9")
112 {
113 <script type="text/javascript" src="https://cdn-sitegainer.com/5620464/es6/index.bundle.js"></script>
114 }
115
116 <!-- AB Split test script NO -->
117 if (currentAreaId == "10")
118 {
119 <script type="text/javascript" src="https://cdn-sitegainer.com/5620465/es6/index.bundle.js"></script>
120 }
121
122 <!-- anti-flicker snippet (recommended) -->
123 <style>
124 .async-hide {
125 opacity: 0 !important
126 }
127 </style>
128 <script data-cookieconsent="ignore">
129 (function (a, s, y, n, c, h, i, d, e) {
130 s.className += ' ' + y; h.start = 1 * new Date;
131 h.end = i = function () { s.className = s.className.replace(RegExp(' ?' + y), '') };
132 (a[n] = a[n] || []).hide = h; setTimeout(function () { i(); h.end = null }, c); h.timeout = c;
133 })(window, document.documentElement, 'async-hide', 'dataLayer', 4000,
134 { 'GTM-567PQPG': true });</script>
135 }
136 @if (!String.IsNullOrEmpty(GetString("Item.Area.CookiebotHeader.Value")))
137 {
138 <text>@GetString("Item.Area.CookiebotHeader.Value")</text>
139 }
140
141 <!-- Google Tag Manager -->
142
143 <script data-cookieconsent="ignore">(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
144
145 new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
146
147 j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
148
149 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
150
151 })(window,document,'script','dataLayer','GTM-567PQPG');</script>
152
153 <!-- End Google Tag Manager -->
154
155 <meta name="google-site-verification" content="gjghbJwNSc0kdCeOim65Q67ZWJ2QAwQTbg_--ucyRuA">
156
157
158 <title>@GetValue("Title")</title>
159 @GetValue("MetaTags")
160 @GetValue("CopyRightNotice")
161
162 <link rel="icon" type="image/png" href="/Files/Templates/Designs/Tapas/assets/img/favicon.png">
163 <meta charset="utf-8">
164 <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
165 <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
166
167 @if (System.Web.HttpContext.Current.Request.Url.Host.ToLower().Contains("1stweb"))
168 {
169 <meta name="robots" content="noindex">
170 }
171
172 @if ( isProductPage == false )
173 {
174 <link rel="canonical" href="@canonicalPageView">
175 }
176 else
177 {
178 <link rel="canonical" href="@eComCanonicalSnippetTag">
179 @GetValue( "MetaTags" )
180 }
181
182 @RenderSnippet("NoTelephoneDetection")
183
184 <!--
185 Made by:
186 1st Web
187 Klostergade 56 B 2 th.
188 8000 Aarhus C.
189 www.1stweb.dk
190 -->
191 <!--inject:css-->
192 <link rel="stylesheet" href="/Files/Templates/Designs/Tapas/assets/min/library.min.css?v=@assetVersion">
193 <link rel="stylesheet" href="/Files/Templates/Designs/Tapas/assets/min/main.min.css?v=@assetVersion">
194 <!--endinject-->
195 <!-- fonts start -->
196 <link href="https://fonts.googleapis.com/css?family=Lato:400,700,900%7CQuestrial&subset=latin-ext" rel="stylesheet">
197 <!-- fonts end -->
198
199 @foreach (var script in GetLoop("Item.Area.Scripts"))
200 {
201 @script.GetString("Item.Area.Scripts.Script")
202 }
203 @{
204 string currentGroupId = Dynamicweb.Context.Current.Request.GetString("GroupID");
205 var breadCrumbGroupList = Firstweb.Custom.CustomCode.Webshop.Frontend.Helpers.EcomGroups.getBreadCrumbGroupList(currentGroupId, true);
206 string productPageID = Dynamicweb.Core.Converter.ToString(Pageview.Area.Item["ProductCatalogId"]);
207 string productPageHref = Dynamicweb.Frontend.SearchEngineFriendlyURLs.GetFriendlyUrl($"Default.aspx?ID={productPageID}");
208 int index = 3;
209 Dynamicweb.Ecommerce.Products.Product product = new Dynamicweb.Ecommerce.Products.Product();
210 string productUrl = "";
211
212 if (isProductPage)
213 {
214 product = Dynamicweb.Ecommerce.Products.Product.GetProductById(Dynamicweb.Context.Current.Request.GetString("productid"));
215 productUrl = Dynamicweb.Frontend.SearchEngineFriendlyURLs.GetFriendlyUrl($"Default.aspx?ID={productPageID}&ProductId={product.Id}");
216 }
217
218 if (!string.IsNullOrWhiteSpace(currentGroupId) ||
219 !string.IsNullOrWhiteSpace(Dynamicweb.Context.Current.Request.GetString("productid")) ||
220 !string.IsNullOrWhiteSpace(Dynamicweb.Context.Current.Request.GetString("compare")) ||
221 !string.IsNullOrWhiteSpace(Dynamicweb.Context.Current.Request.GetString("Search")) ||
222 Dynamicweb.Core.Converter.ToInt32(Pageview.Area.Item["ProductCatalogId"]) == Pageview.ID ||
223 GetBoolean("Item.Page.RemoveStandardBreadcrumbs.Value"))
224 {
225 <script type="application/ld+json">
226 {
227 "@@context": "https://schema.org",
228 "@@type": "BreadcrumbList",
229 "itemListElement":
230 [
231 @RenderSchemaItem(@Translate("Firstweb.Content.Breadcrumbs.Frontpage", "Forside"), "", 1),
232 @RenderSchemaItem(@Translate("Firstweb.Content.Breadcrumbs.ProductPage", "Produkter"), productPageHref, 2)
233 @foreach (var g in breadCrumbGroupList)
234 {
235 <text>,</text>
236 string breadCrumbLink = $"Default.aspx?ID={productPageID}&GroupID={g.Id}";
237 string friendlyBreadCrumbLink = Dynamicweb.Frontend.SearchEngineFriendlyURLs.GetFriendlyUrl(breadCrumbLink);
238 @RenderSchemaItem(g.Name, friendlyBreadCrumbLink, index)
239 index++;
240 }
241 @if (isProductPage)
242 {
243 <text>,</text>
244 @RenderSchemaItem(product.Name, productUrl, index)
245 }
246 ]
247 }
248 </script>
249 }
250
251 if (isProductPage)
252 {
253 List<string> productImages = Firstweb.Custom.CustomCode.Webshop.Frontend.Helpers.ProductImages.getProductImages(product.Id);
254 var ProductPriceInfo = product.GetPrice(Dynamicweb.Ecommerce.Common.Context.Currency.Code, Dynamicweb.Ecommerce.Common.Context.Country.Code2);
255 bool isDiscountPrice = (product.DefaultPrice > ProductPriceInfo.PriceWithoutVAT);
256 double priceWithVAT = product.DefaultPrice * ((ProductPriceInfo.VATPercent + 100) / 100);
257
258 <script type="application/ld+json">
259 {
260 "@@context": "https://schema.org",
261 "@@type": "Product",
262 "@@id": "@(scheme + "://" + host + productUrl)",
263 "name": "@product.Name",
264 "description": "@product.ShortDescription",
265 "image": [
266 "@(scheme + "://" + host + productImages.First())"
267 ],
268 "sku": "@product.Number",
269 "gtin13": "@product.Number",
270 "mpn": "",
271 "brand": {
272 "@@type": "Brand",
273 "name": "ELMA"
274 },
275 "url": "@(scheme + "://" + host + productUrl)",
276 "category": "",
277 "itemCondition": "https://schema.org/NewCondition",
278 @if(priceWithVAT != 0)
279 {
280 <text>
281 "price": "@priceWithVAT",
282 "priceCurrency": "@Dynamicweb.Ecommerce.Common.Context.Currency.Code",
283 </text>
284 }
285 "availability": "https://schema.org/InStock"
286 @if (isDiscountPrice)
287 {
288 <text>
289 ,
290 "offers": {
291 "@@type": "Offer",
292 "price": "@ProductPriceInfo.PriceWithVAT",
293 "priceCurrency": "@Dynamicweb.Ecommerce.Common.Context.Currency.Code",
294 "availability": "https://schema.org/InStock",
295 "url": "@(scheme + "://" + host + productUrl)"
296 }
297 </text>
298 }
299 }
300 </script>
301 }
302
303 if (GetString("Item.SystemName") == "News")
304 {
305 <script type="application/ld+json">
306 {
307 "@@context": "https://schema.org",
308 "@@type": "Article",
309 "headline": "@GetString("Item.NewsHeader")",
310 "description": "@System.Web.HttpUtility.HtmlEncode(GetString("Item.NewsTeaser.Value"))",
311 "image": [
312 "@(scheme + "://" + host + GetString("Item.NewsImage.Value"))"
313 ],
314 "datePublished": "@GetString("Item.NewsDate.Value")",
315 "author": {
316 "@@type": "Organization",
317 "name": "Elma Instruments"
318 },
319 "publisher": {
320 "@@type": "Organization",
321 "name": "Elma Instruments",
322 "logo": {
323 "@@type": "ImageObject",
324 "url": "https://elma.dk/media/elma-logo.png"
325 }
326 },
327 "mainEntityOfPage": {
328 "@@type": "WebPage",
329 "@@id": "@(scheme + "://" + host + Dynamicweb.Frontend.SearchEngineFriendlyURLs.GetFriendlyUrl($"Default.aspx?ID={Pageview.Page.ID}"))"
330 }
331 }
332 </script>
333 }
334 }
335
336 <!--inject:css--><!--endinject-->
337 @GetValue("Stylesheets")
338 @GetValue("Javascripts")
339 </head>
340
341
342 <body class="@printCssClass" data-bind="closeMenuItems: { menuOpenObservable: menuOpen, miniCartVisibleObservable: miniCartVisible }, css: { 'loading': load().active }">
343 <!-- Google Tag Manager (noscript) -->
344 <noscript>
345 <iframe src="https://www.googletagmanager.com/ns.html?id=GTM-567PQPG" height="0" width="0" style="display:none;visibility:hidden"></iframe>
346 </noscript>
347 <!-- End Google Tag Manager (noscript) -->
348 <!-- ko if: responsive-->
349 <div class="mobileSection visible-sm visible-xs" data-bind="css: { 'open': showResponsiveMenu }">
350 <div class="mobile-menu-closer" data-bind="click: toggleResponsiveMenu">
351 </div>
352 @GetValue("DwNavigation(responsivenav)")
353 </div>
354 <!-- /ko -->
355
356 <div class="desktopSection js-wrapper" data-bind="css: { 'open': showResponsiveMenu }">
357 @if (printActivated == false)
358 {
359
360 <header class="header">
361
362 <div class="header__primary" data-bind="floatingMenu">
363 <div class="header__secondary hidden-print">
364 <div class="container">
365 <div class="header__secondary__inner hidden-xs">
366 <div class="vat-selector">
367 <button class="@companySelected" data-bind="click: setCustomerType.bind($data, 'Erhverv')">@Translate("Erhverv", "Erhverv")</button>
368 <button class="@privateSelected" data-bind="click: setCustomerType.bind($data, 'Privat')">@Translate("Privat", "Privat")</button>
369 </div>
370 <nav class="navigation navigation--secondary">
371 @GetValue("DwNavigation(dwtopnav)")
372 </nav>
373 </div>
374 </div>
375 </div>
376 <div class="header__primary__inner">
377 @RenderSnippet("Logo")
378
379 <div class="navigation-links">
380
381 <!-- ko ifnot: responsive-->
382 <nav class="navigation navigation--primary visible-md visible-lg">
383 @GetValue("DwNavigation(dwnav)")
384 </nav>
385 <!-- /ko -->
386
387 <div class="header__search visible-md visible-lg js-instant-search-container" data-bind="viewModel: Tapas.ViewModels.InstantSearchViewModel">
388 <div data-bind="instantSearchButtonControls: '.productCount'">
389 @inherits RazorTemplateBase<RazorTemplateModel<Template>>
390 @using Dynamicweb.Rendering;
391
392 <form style="margin-bottom: 0;" name="EcomSearch" method="get" action="Default.aspx" data-bind='value: instantSearchPageId(@instantSearchId), loadOnBool: { observableBool: CartLoading, text: "@Firstweb.Custom.CustomCode.Webshop.Frontend.Helpers.Base.JSTrimTranslation(Translate("addproduct", "Tilføjer produkt"))" }'>
393 <div class="instant-search-form">
394 <input type="hidden" name="ID" value="@searchResultId">
395 <input type="text" placeholder='@Translate("SearchForProduct", "Søg efter produkt")' id="instantSearch" class="form-control" data-bind="textInput: searchQuery" autocomplete="off" name="Search">
396 <span class="instant-search-icon" data-bind="submitParentForm, css: { animate: searchLoading }">
397 <svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="search" class="svg-inline--fa fa-search fa-w-16" role="img" xmlns="http://www.w3.org/2000/svg" viewbox="0 0 512 512"><path fill="#97c93d" d="M505 442.7L405.3 343c-4.5-4.5-10.6-7-17-7H372c27.6-35.3 44-79.7 44-128C416 93.1 322.9 0 208 0S0 93.1 0 208s93.1 208 208 208c48.3 0 92.7-16.4 128-44v16.3c0 6.4 2.5 12.5 7 17l99.7 99.7c9.4 9.4 24.6 9.4 33.9 0l28.3-28.3c9.4-9.4 9.4-24.6.1-34zM208 336c-70.7 0-128-57.2-128-128 0-70.7 57.2-128 128-128 70.7 0 128 57.2 128 128 0 70.7-57.2 128-128 128z"></path></svg>
398 </span>
399 </div>
400
401 <div class="result instant-search-results container elma-card" data-bind="html: result, visible: allResults">
402 </div>
403 </form>
404 </div>
405 </div>
406
407 <div class="header__actions">
408
409 <div class="item mobile-search visible-xs visible-sm" data-bind="menu, focusFirstInputOnClick">
410 <div class="elma-menu-icon">
411 <svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="search" class="svg-inline--fa fa-search fa-w-16" role="img" xmlns="http://www.w3.org/2000/svg" viewbox="0 0 512 512"><path fill="#97c93d" d="M505 442.7L405.3 343c-4.5-4.5-10.6-7-17-7H372c27.6-35.3 44-79.7 44-128C416 93.1 322.9 0 208 0S0 93.1 0 208s93.1 208 208 208c48.3 0 92.7-16.4 128-44v16.3c0 6.4 2.5 12.5 7 17l99.7 99.7c9.4 9.4 24.6 9.4 33.9 0l28.3-28.3c9.4-9.4 9.4-24.6.1-34zM208 336c-70.7 0-128-57.2-128-128 0-70.7 57.2-128 128-128 70.7 0 128 57.2 128 128 0 70.7-57.2 128-128 128z"></path></svg>
412 </div>
413 <div class="search-container">
414 <div class="header__search js-instant-search-container" data-bind="viewModel: Tapas.ViewModels.InstantSearchViewModel">
415 <div data-bind="instantSearchButtonControls: '.productCount'">
416 @inherits RazorTemplateBase<RazorTemplateModel<Template>>
417 @using Dynamicweb.Rendering;
418
419 <form style="margin-bottom: 0;" name="EcomSearch" method="get" action="Default.aspx" data-bind='value: instantSearchPageId(@instantSearchId), loadOnBool: { observableBool: CartLoading, text: "@Firstweb.Custom.CustomCode.Webshop.Frontend.Helpers.Base.JSTrimTranslation(Translate("addproduct", "Tilføjer produkt"))" }'>
420 <div class="instant-search-form">
421 <input type="hidden" name="ID" value="@searchResultId">
422 <input type="text" placeholder='@Translate("SearchForProduct", "Søg efter produkt")' id="instantSearch" class="form-control" data-bind="textInput: searchQuery" autocomplete="off" name="Search">
423 <span class="instant-search-icon" data-bind="submitParentForm, css: { animate: searchLoading }">
424 <svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="search" class="svg-inline--fa fa-search fa-w-16" role="img" xmlns="http://www.w3.org/2000/svg" viewbox="0 0 512 512"><path fill="#97c93d" d="M505 442.7L405.3 343c-4.5-4.5-10.6-7-17-7H372c27.6-35.3 44-79.7 44-128C416 93.1 322.9 0 208 0S0 93.1 0 208s93.1 208 208 208c48.3 0 92.7-16.4 128-44v16.3c0 6.4 2.5 12.5 7 17l99.7 99.7c9.4 9.4 24.6 9.4 33.9 0l28.3-28.3c9.4-9.4 9.4-24.6.1-34zM208 336c-70.7 0-128-57.2-128-128 0-70.7 57.2-128 128-128 70.7 0 128 57.2 128 128 0 70.7-57.2 128-128 128z"></path></svg>
425 </span>
426 </div>
427
428 <div class="result instant-search-results container elma-card" data-bind="html: result, visible: allResults">
429 </div>
430 </form>
431 </div>
432 </div>
433 </div>
434 </div>
435
436 @if (CurrentUser != null)
437 {
438 <div class="item user-menu" data-bind="menu">
439 <div class="elma-menu-icon">
440 <svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="user" class="svg-inline--fa fa-user fa-w-14" role="img" xmlns="http://www.w3.org/2000/svg" viewbox="0 0 448 512"><path fill="#97c93d" d="M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4z"></path></svg>
441 </div>
442 @GetValue("DwNavigation(usernavigation)")
443 </div>
444 }
445 else
446 {
447 <div class="item user-menu" data-toggle="modal" data-target=".loginModal">
448 <div class="elma-menu-icon">
449 <svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="user" class="svg-inline--fa fa-user fa-w-14" role="img" xmlns="http://www.w3.org/2000/svg" viewbox="0 0 448 512"><path fill="#97c93d" d="M224 256c70.7 0 128-57.3 128-128S294.7 0 224 0 96 57.3 96 128s57.3 128 128 128zm89.6 32h-16.7c-22.2 10.2-46.9 16-72.9 16s-50.6-5.8-72.9-16h-16.7C60.2 288 0 348.2 0 422.4V464c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48v-41.6c0-74.2-60.2-134.4-134.4-134.4z"></path></svg>
450 </div>
451 <div class="dropDown elma-card elma-card--white">
452 @inherits RazorTemplateBase<RazorTemplateModel<Template>>
453 @using Dynamicweb.Rendering;
454
455 <div class="loginDetails login-container">
456 <div>
457 <div class="dropdown UserLinks" data-bind="visible: $root.User().IsLoggedIn()" style="display: none;">
458 <a id="user" data-toggle="dropdown" role="button">
459 <i class="elma-icon-lock"></i> <span data-bind="text: $root.User().Name"></span><span class="caret"></span>
460 </a>
461 @GetValue("DwNavigation(dwusernav)")
462 </div>
463 </div>
464 </div>
465 </div>
466 </div>
467 }
468
469 <div class="item cart-info" data-bind="viewModel: Elma.ViewModels.MiniCartViewModel, menu, css: { 'visible': miniCartVisible }">
470 <div class="elma-menu-icon">
471 <svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="shopping-cart" class="svg-inline--fa fa-shopping-cart fa-w-18" role="img" xmlns="http://www.w3.org/2000/svg" viewbox="0 0 576 512"><path fill="#97c93d" d="M528.12 301.319l47.273-208C578.806 78.301 567.391 64 551.99 64H159.208l-9.166-44.81C147.758 8.021 137.93 0 126.529 0H24C10.745 0 0 10.745 0 24v16c0 13.255 10.745 24 24 24h69.883l70.248 343.435C147.325 417.1 136 435.222 136 456c0 30.928 25.072 56 56 56s56-25.072 56-56c0-15.674-6.447-29.835-16.824-40h209.647C430.447 426.165 424 440.326 424 456c0 30.928 25.072 56 56 56s56-25.072 56-56c0-22.172-12.888-41.332-31.579-50.405l5.517-24.276c3.413-15.018-8.002-29.319-23.403-29.319H218.117l-6.545-32h293.145c11.206 0 20.92-7.754 23.403-18.681z"></path></svg>
472 </div>
473 <span class="count-indicator" data-bind="css: { ShowCartIndicator: ShowCartIndicator }, text: Cart().TotalProductLines"></span>
474 <div class="dropDown miniCart elma-card">
475 <div class="col-md-12 col-sm-12 col-xs-12 customTable">
476 <div class="row tableRow">
477 <div class="col-md-12 col-sm-12 col-xs-12">
478 @inherits RazorTemplateBase<RazorTemplateModel<Template>>
479 @using Dynamicweb.Rendering;
480
481 @{
482 var currentLocale = GetGlobalValue("Global:Area.LongLang");
483 bool IsPrivateCustomer = Firstweb.Custom.CustomCode.Webshop.Frontend.Helpers.CustomerType.GetCustomerType() == "Privat";
484 }
485
486 <div class="col-md-12 col-sm-12 col-xs-12 headlineBlock" data-bind="visible: ShowEmptyMiniCart">
487 <h2 class="headline">@Translate("yourorderlines", "Ordrelinjer")</h2>
488 <a href="/Default.aspx?ID=@checkoutId&step=1" class="quickAdd btn btn-primary quick-search-btn pull-right">
489 @Translate("gotopayment", "Til betaling")
490 </a>
491 </div>
492
493 <div class="col-md-12 col-sm-12 col-xs-12 headlineBlock" data-bind="visible: !ShowEmptyMiniCart()">
494 <h2 class="headline">@Translate("cartisempty", "Din kurv er tom")</h2>
495 </div>
496
497 <div class="col-md-12 col-sm-12 col-xs-12 orderlines" data-bind="visible: ShowEmptyMiniCart">
498 <div class="row">
499 <div class="col-md-12 col-sm-12 col-xs-12">
500 <div class="row minicart-tableheader">
501 <div class="col-md-5 col-sm-5 col-xs-5 miniCart name">@Translate("ItemName", "Vare")</div>
502 <div class="col-md-2 col-md-offset-0 col-sm-offset-0 col-sm-2 col-xs-2 miniCart alignRight unitPrice hidden-xs">@Translate("UnitPrice", "Enhedspris")</div>
503 <div class="col-md-2 col-md-offset-0 col-sm-offset-0 col-sm-2 col-xs-3 col-xs-offset-0 miniCart alignRight quantity">@Translate("quantity", "Antal")</div>
504 <div class="col-md-2 col-sm-2 col-xs-3 miniCart alignRight totalPrice">@Translate("total", "Total")</div>
505 </div>
506 </div>
507 <div class="col-md-12 col-sm-12 col-xs-12" data-bind="foreach: { data: Cart().CartLines.slice(0).reverse(), as: 'cartItem', afterRender: EverythingHasLoaded }">
508 <div class="orderLine">
509 <div class="product-info" data-bind="attr: {'data-product-info': [cartItem.ProductName(), cartItem.ProductNumber(), 'Denmark', '0', cartItem.ProductUnitPriceWithVat(), 'Elma', 'Elma']}"></div>
510 <div class="row">
511 <div class="col-md-5 col-sm-5 col-xs-6 miniCart name">
512 <h5 class="no-margin-top"><strong data-bind="text: cartItem.ProductName"></strong></h5>
513 <p class="desktop-inline-block">@Translate("Firstweb:Product.ProductInfo.Eannumber", "EAN:"): <span data-bind="text: cartItem.ProductNumber"></span></p>
514 <div data-bind="foreach: { data: cartItem.CustomProductFields, as: 'pf'}" class="desktop-inline-block">
515 <p data-bind="if: $data.Id() == 'FirstwebElNo'"><span class="hidden-xs"> / </span>@Translate("Firstweb:Product.ProductInfo.Elnumber", "EL-NR.:") <span data-bind="text: $data.Value()"></span></p>
516 </div>
517 </div>
518 @if (IsPrivateCustomer)
519 {
520 <div class="col-md-2 col-sm-2 col-xs-2 miniCart alignRight unitPrice hidden-xs" data-bind="formatNumber: { locale: '@currentLocale', observable: cartItem.ProductUnitPriceWithVat }"></div>
521 }
522 else
523 {
524 <div class="col-md-2 col-sm-2 col-xs-2 miniCart alignRight unitPrice hidden-xs" data-bind="formatNumber: { locale: '@currentLocale', observable: cartItem.ProductUnitPrice }"></div>
525 }
526 <div class="col-md-1 col-md-offset-1 col-sm-1 col-xs-2 miniCart alignRight quantity col-sm-offset-1 custom-spinedit"><input class="spinedit-input" type="tel" data-bind="value: cartItem.Quantity, spinEdit: { minimum: 1 }, event: { change: $parent.UpdateQuantity }, attr: {'ftw-olid': LineId }"></div>
527 @if (IsPrivateCustomer)
528 {
529 <div class="col-md-2 col-sm-2 col-xs-3 miniCart alignRight totalPrice" data-bind="formatNumber: { locale: '@currentLocale', observable: ProductPrice }"></div>
530 }
531 else
532 {
533 <div class="col-md-2 col-sm-2 col-xs-3 miniCart alignRight totalPrice" data-bind="formatNumber: { locale: '@currentLocale', observable: ProductPriceWithoutVAT }"></div>
534 }
535 <div data-bind="click: $parent.DeleteOrderLine, attr: {'ftw-olid': cartItem.LineId }" class="col-md-1 col-sm-1 col-xs-1 miniCart delete">X</div>
536 </div>
537 </div>
538 </div>
539 <div class="col-md-12 col-sm-12 col-xs-12 mini-cart-total">
540 <div class="full-width text-right miniCart summary">
541 @Translate("Cart.TotalWithoutVat", "Total beløb ekls. moms") <span data-bind="formatNumber: { locale: '@currentLocale', observable: CartTotalAmountNoVat }">@GetString("Ecom:Order.PriceWithoutFees.PriceWithoutVAT") </span> @GetString("Ecom:Order.Currency.Code")
542 </div>
543 <div class="full-width text-right miniCart summary">
544 @Translate("Cart.TotalWithVat", "Total beløb inkl. moms") <span data-bind="formatNumber: { locale: '@currentLocale', observable: CartTotalAmount }">@GetString("Ecom:Order.PriceWithoutFees.PriceWithVAT")</span> @GetString("Ecom:Order.Currency.Code")
545 </div>
546 </div>
547 </div>
548 </div>
549
550
551 </div>
552 </div>
553 </div>
554 </div>
555 </div>
556
557 <div class="collapseBtn js-collapse-btn" data-bind="click: toggleResponsiveMenu"></div>
558
559 </div>
560
561 </div>
562 </div>
563 </div>
564 </header>
565 }
566
567
568
569 @using Dynamicweb.Environment
570
571
572 @{
573 var hasGroupId = !string.IsNullOrWhiteSpace(Dynamicweb.Context.Current.Request.GetString("groupid"));
574 var hasProductId = !string.IsNullOrWhiteSpace(Dynamicweb.Context.Current.Request.GetString("productid"));
575 var hasCompare = !string.IsNullOrWhiteSpace(Dynamicweb.Context.Current.Request.GetString("compare"));
576 var hasSearch = !string.IsNullOrWhiteSpace(Dynamicweb.Context.Current.Request.GetString("Search"));
577 int productPageId = Dynamicweb.Core.Converter.ToInt32(Pageview.Area.Item["ProductCatalogId"]);
578 bool disabledBreadcrumbs = GetBoolean("Item.Page.RemoveStandardBreadcrumbs.Value");
579 var isEcom = hasGroupId || hasProductId || hasCompare || hasSearch || productPageId == Pageview.ID || disabledBreadcrumbs;
580 }
581
582 <div class="container-fluid">
583 <div class="row">
584 <div class="col-xs-12">
585 <div class="row header-image" id="headerImage">@GetValue("DwContent(headerImage)")</div>
586 </div>
587 </div>
588 </div>
589
590 @if (isEcom == false)
591 {
592
593 @* only show breadcrumbs on non-ecom pages *@
594 @* ecom pages have their own custom breadcrumbs from our 1stweb helpers *@
595
596 <div class="container">
597 <div class="row">
598 @RenderNavigation(new
599 {
600 template = "breadcrumbs.xslt",
601 id = "breadcrumb",
602 sitemapmode = "true",
603 homepageText = Translate("homepage", "Forside")
604 })
605 </div>
606 </div>
607 }
608
609 <div id="headlineOneColumn">@GetValue("DwContent(headlineOneColumn)")</div>
610
611 <div id="content1">@GetValue("DwContent(content1)")</div>
612
613 @if (!printActivated)
614 {
615 <section class="newsletter">
616 <div class="container">
617 <div class="row flex-row align-items-center">
618 <div class="col-md-4">
619 <p class="newsletter__heading--large">@Translate("NewsletterText.Heading", "Tilmeld dig E-News!")</p>
620 <p class="newsletter__heading">@Translate("NewsletterText", "Hold dig opdateret og få vores fantastiske tilbud i din indbakke")</p>
621 </div>
622 <div class="col-md-8">
623 @RenderPageContent(newsletterId)
624 </div>
625 </div>
626 </div>
627 </section>
628
629 <footer class="footer hidden-print">
630 <div class="container">
631 @RenderItem(new { ItemType = "WebshopFooter", SourceItemEntry = footerId, ItemFields = "*", DetailsTemplate = "RenderItem/footer.cshtml" })
632 <div class="row flex-row footer__secondary">
633 <div class="col-xs-12 col-md-4 footer__secondary-item">
634 <p>@Translate("PaymentText", "Betalingsmetoder")</p>
635 <img src="@paymentImage" alt="" style="height: 30px;">
636 </div>
637
638 <div class="col-xs-12 col-md-4 justify-content-center footer__secondary-item footer__secondary-item--nav">
639 @foreach (var footerNavItem in footerNavigationLoop) {
640 string itemText = footerNavItem.GetString("Item.Area.FooterNavigation.ColText.Value");
641 string itemLink = footerNavItem.GetString("Item.Area.FooterNavigation.ColLink.Value");
642 <a href="@itemLink">@itemText</a>
643 }
644 </div>
645 <div class="col-xs-12 col-md-4 footer__secondary-item">
646 <p>© @currentYear @Translate("ElmaCopyrightText", "Elma Instruments. All Rights Reserved.")</p>
647 </div>
648 </div>
649 </div>
650 </footer>
651
652 <div class="overlay">
653 <div class="loader">
654 <div class="dot"></div>
655 <div class="dot"></div>
656 <div class="dot"></div>
657 <div class="loaderText" data-bind="text: load().text"></div>
658 </div>
659 </div>
660
661 <div class="modal fade js-customer-type-modal customer-type-modal" id="customerTypeSelector" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
662 <div class="modal-dialog" role="document">
663 <div class="modal-content elma-card elma-card--padded">
664 <div class="modal-body">
665 <p class="customer-type-modal_header">@Translate("CustomerTypeModal.Header", "Vælg kundetype")</p>
666 <button type="button" class="btn btn-secondary" data-bind="click: setCustomerType.bind($data, 'Privat')">@Translate("Privat", "Privat")</button>
667 <button type="button" class="btn btn-secondary" data-bind="click: setCustomerType.bind($data, 'Erhverv')">@Translate("Erhverv", "Erhverv")</button>
668 </div>
669 </div>
670 </div>
671 </div>
672
673 <a href='@googleMapsLink' class="display-none-sm find-me-container text-center border-top-radius-left" rel='noopener noreferrer' target='_blank'>
674 <div class="footer-trigger-icon">
675 <i class="elma-icon-find-me"></i>
676 </div>
677 <p class="footer-trigger-text">@Translate("footerFindMe", "Find os")</p>
678 </a>
679
680
681 <div class="newsletter-widget" data-bind="css: { 'open': showNewsletterWidget }, value: newsletterModal = '.newsletter-modal' ">
682
683 <div class="newsletter-open text-center border-top-radius-right" data-bind="click: toggleNewsletterWidget">
684 <div class="footer-trigger-icon">
685 <i class="elma-icon-newsletter"></i>
686 </div>
687 <p class="footer-trigger-text">@Translate("newsletterOpenTag", "Nyhedsbrev")</p>
688 </div>
689
690 <div class="newsletter-content elma-card">
691 <div class="newsletter-close" data-bind="click: hideNewsletterWidget"></div>
692 <form name="UserManagementEditForm" data-bind="submit: submitNewsletterSubscription, value: newsletterFormID = '@newsletterId'">
693 <input type="hidden" name="UserManagementForm" value="1">
694 <input type="hidden" id="HiddenField.CustomField.AccessUser_AccessUser_NewsletterSubscription" name="CustomField.AccessUser_AccessUser_NewsletterSubscription" value="True">
695 <input name="UserManagement_Form_EmailAllowed" type="hidden" id="UserManagement_Form_EmailAllowed" value="True">
696 <input name="UserManagement_Form_EmailAllowed_ApplyValue" type="hidden" id="UserManagement_Form_EmailAllowed_ApplyValue" value="AllowEmail">
697
698 <div class="newsletter-head">
699 @Translate("Nesletter.Header", "Tilmeld dig E-news!")
700 </div>
701
702 <div class="newsletter-subhead">
703 <p>
704 @Translate("Nesletter.Subhead1", "Tilmeld dig vores spændende nyhedsbrev og få alle de gode tilbud og nyheder først.")
705 </p>
706 <p>
707 @Translate("Newsletter.Subhead2", "Det eneste du skal gøre er at udfylde nedenfor.")
708 </p>
709 </div>
710 <div class="row">
711 <div class="col-sm-6">
712 <input name="UserManagement_Form_Name" class="form-control" id="UserManagement_Form_Name" type="text" placeholder='@Translate("Newsletter.Input.Name", "Skrit dit navn")' required="">
713 </div>
714 <div class="col-sm-6">
715 <input name="UserManagement_Form_Email" class="form-control" id="UserManagement_Form_Email" type="email" placeholder='@Translate("Newsletter.Input.Email", "Skrit din E-mail")' required="">
716 </div>
717 </div>
718
719 <div class="row">
720 <div class="col-sm-12 newsletter-checkbox">
721 <label class="bs-label">
722 <input class="checkbox-field bs" type="checkbox" name="CustomField.AccessUser_AccessUser_NewsMagazineSubscription" data-bind="checked: newsMagazineSubscription">
723 <span class="checkbox-text">@Translate("Newsletter.SubscribeToMagazine", "Jeg ønsker også at modtage Elma's nyhedsmagasin Instrument News med posten")</span>
724 </label>
725 </div>
726 </div>
727
728 <div class="row">
729 <div class="col-sm-12 hide" data-bind="css: {'show': newsMagazineSubscription }">
730 <div class="form-group">
731 <input class="form-control" name="UserManagement_Form_Company" type="text" maxlength="255" placeholder='@Translate("Newsletter.Company", "Firmnavn")' value="">
732 </div>
733 <div class="form-group">
734 <input class="form-control" name="UserManagement_Form_FirstName" type="text" maxlength="255" placeholder='@Translate("Newsletter.Name", "Navn")' value="">
735 </div>
736 <div class="form-group">
737 <input class="form-control" name="UserManagement_Form_Address" type="text" maxlength="255" placeholder='@Translate("Newsletter.Address", "Adresse")' value="">
738 </div>
739 <div class="row form-group">
740 <div class="col-sm-4">
741 <input class="form-control" name="UserManagement_Form_Zip" type="text" maxlength="255" placeholder='@Translate("Newsletter.Zip", "Postnr")' value="">
742 </div>
743 <div class="col-sm-8">
744 <input class="form-control" name="UserManagement_Form_City" type="text" maxlength="255" placeholder='@Translate("Newsletter.City", "By")' value="">
745 </div>
746 </div>
747 </div>
748 </div>
749
750 <button class="btn btn-block btn-primary" type="submit" data-bind="disable: newsletterSubmitting">@Translate("Newsletter.Submit", "Tilmeld nyhedsbrev")</button>
751 </form>
752 </div>
753 </div>
754
755 <div class="newsletter-modal modal fade" tabindex="-1" role="dialog" data-bind="css: { 'subSuccess': newsletterSubscriptionStatus, 'subError': !newsletterSubscriptionStatus() }">
756 <div class="modal-dialog">
757 <div class="modal-content">
758 <div class="modal-header">
759 <button type="button" class="close" data-dismiss="modal" aria-label="Close"></button>
760 <h4 class="modal-title subSuccess">@Translate("newslettersuccess", "Du er nu tilmeldt nyhedsbrev!")</h4>
761 <h4 class="modal-title subError">@Translate("newslettererror", "Der skete en uventet fejl, prøv igen senere.")</h4>
762 </div>
763
764 <div class="modal-footer">
765 <button type="button" class="button" data-dismiss="modal" aria-label="Close">@Translate("newsletterbtn", "okay")</button>
766 </div>
767 </div>
768 </div>
769 </div>
770
771 <div class="js-backdrop elma-backdrop hide-elm"></div>
772 }
773 </div>
774
775 <div data-bind="viewModel: Elma.ViewModels.LoginViewModel">
776
777 @{
778 string forgotEmail = Dynamicweb.Core.Converter.ToString(Pageview.Area.Item["ForgotEmail"]);
779 string forgotPasswordEmailSubject = Translate("ForgotPasswordMailSubject", "Her er dit password");
780 }
781
782 @if (!string.IsNullOrEmpty(forgotEmail))
783 {
784 <!-- ko initValue: {observable: dwForgotEmail, value:'@forgotEmail'}--><!-- /ko-->
785 }
786
787 @* Because of happy DW - we need to add ../ before the path in order for Extranet to find the correct path *@
788
789 <!-- ko initValue: {observable: dwForgotPasswordMailTemplate, value:'../Extranet/mail.cshtml'}--><!-- /ko-->
790 <!-- ko initValue: {observable: dwForgotPasswordMailSubject, value:'@Firstweb.Custom.CustomCode.Webshop.Frontend.Helpers.Base.JSTrimTranslation(forgotPasswordEmailSubject)'}--><!-- /ko-->
791 <!--Login popup-->
792 <div class="modal loginModal container" tabindex="-1" role="dialog" aria-labelledby="mySmallModalLabel">
793 <div class="modal-dialog elma-card elma-card--white">
794 <div class="popupBox login modal-content">
795 <div class="modal-header">
796 <button type="button" class="close" data-dismiss="modal" aria-label="Close"></button>
797 <span class="modal__title m-t-0">@Translate("login", "Log ind")</span>
798 </div>
799 <div class="modal-body" data-bind="Fadevisible: ToggleForgottenPassword, delayIn:250">
800 <form name="ExtUserForm" id="ExtUserForm" method="post" action="@action">
801 <div class="form">
802 <div class="form-group">
803 <input class="form-control" type="text" name="Username" placeholder='@Translate("username", "Brugernavn")' value="@userName" data-bind="value: UserName, hasFocus: addFocus" required="">
804 </div>
805 <div class="form-group">
806 <input class="form-control" type="password" name="Password" placeholder='@Translate("password", "Adgangskode")' value="@password" data-bind="value: Password" required="">
807 </div>
808
809 </div>
810 <div class="action">
811 <div class="pull-left">
812 <label class="customRadio">
813 <input type="checkbox" name="Autologin" data-bind="checked: rememberMe">
814 <div class="radio"></div>
815 @Translate("stayloggedin", "Husk mig")
816 </label>
817 <div class="forgottenPass elma-link elma-link--grey" data-bind="toggleClick: ToggleForgottenPassword">
818 @Translate("forgottenpassword", "Glemt adgangskode")
819 </div>
820
821 <div class="modal-login-failed" data-bind="visible: LoginFailed">
822 <div class="alert alert-danger">
823 @Translate("LoginFailed", "Du har indtastet et forkert kode eller forkert brugernavn, Prøv venligst igen")
824 </div>
825 </div>
826 <div class="row" data-bind="visible: LoginWrongDomain">
827 <div class="col-sm-12">
828 <div class="alert alert-danger">
829 @Translate("LoginWrongDomain", "Du har logget ind på det forkerte domæne")
830 </div>
831 </div>
832 </div>
833 </div>
834 <div class="modal-buttons pull-right">
835 <div class="btn btn-secondary" data-bind="click: newUser">
836 @Translate("donthavealogin", "Opret bruger")
837 </div>
838 <button class="btn btn-primary pull-right" tabindex="3" value="LOG IND" data-bind="click: Login, toggleClick: Loader">@Translate("login", "Log ind")</button>
839 </div>
840 <span data-bind="Fadevisible: !Loader(), css:{ loginsuccess : $root.User().IsLoggedIn(), loginFail : LoginFailed() }" class="ringLoader"></span>
841 </div>
842 </form>
843 </div>
844 <div class="modal-body forgotten" data-bind="Fadevisible: !ToggleForgottenPassword(), delayIn:250">
845 <div class="back" data-bind="toggleClick: ToggleForgottenPassword">@Translate("back", "Tilbage")</div>
846 <div class="action">
847 <form name="ExtUserForm" id="ExtUserForm" method="post" action="@action" data-bind="submit: recover">
848 <input type="text" class="form-control" name="Email" placeholder='@Translate("email", "Email")' data-bind="value: email" required="">
849 <div class="confirmation" data-bind="html: confirmation"></div>
850 <button type="submit" class="btn btn-primary pull-right col-xs-12" tabindex="3">@Translate("getpassword", "Få tilsendt kode")</button>
851 <span data-bind="Fadevisible: ForgottenLoader" class="ringLoader"></span>
852 </form>
853 </div>
854 </div>
855 </div>
856 </div>
857 </div>
858 <!--New user popup-->
859 <div class="modal newUser fade" tabindex="-1" role="dialog" aria-labelledby="mySmallModalLabel" data-bind="value: newUserModal = '.newUser'">
860 <div class="modal-dialog">
861 <div class="popupBox login modal-content">
862 <!-- ko initValue: {observable: userType, value:'1'}--><!-- /ko-->
863
864 <div class="modal-header subHeading">
865 <button type="button" class="close" data-dismiss="modal" aria-label="Close"></button>
866 <span data-bind="visible: !successOrFail()">@Translate("makenewuser", "Opret ny bruger")</span>
867 <span data-bind="visible: successOrFail">@Translate("congratulations", "Tillykke.")</span>
868 </div>
869 <div class="modal-body" data-bind="value: loginId = @loginId, visible: !successOrFail()">
870 <form name="MakeNewUserForm" id="MakeNewUserForm" data-bind="createUser: { link: '/Handlers/Firstweb.ERP.Users.ashx?cmd=createcustomer', type: 'login'}">
871 <div class="form">
872 <div class="form-group margin-top-half margin-bottom-half">
873 <label class="radio-inline bs-label block-radio" for="customertype_1">
874 <input type="radio" class="bs" name="customertype" id="customertype_1" value="1" data-bind="checked: userType" checked="checked"> <span>@Translate("CustomerType_1", "Privat")</span>
875 </label>
876 <label class="radio-inline bs-label block-radio" for="customertype_2">
877 <input type="radio" data-bind="checked: userType" class="bs" name="customertype" id="customertype_2" value="2"> <span>@Translate("CustomerType_2", "Virksomhed")</span>
878 </label>
879
880 <label class="radio-inline bs-label block-radio" for="customertype_3">
881 <input type="radio" data-bind="checked: userType" class="bs" name="customertype" id="customertype_1" value="3"> <span>@Translate("CustomerType_3", "Offentlig")</span>
882 </label>
883 </div>
884
885 <div class="form-group js-form-group">
886 <label for="Companyname">
887 @Translate("companyname", "Firmanavn")
888 </label>
889 <input class="form-control" type="text" name="Companyname" placeholder="" data-bind="hasFocus: makeNewUserOpen, value: companyName, renderInputForm: { myArray: visibleFields, name: 'company'}" required="">
890 </div>
891
892 <div class="form-group">
893 <label for="Name">
894 @Translate("contactperson", "Kontaktperson")
895 </label>
896 <input class="form-control" type="text" name="Name" placeholder="" data-bind="value: contactperson" required="">
897 </div>
898
899 <div class="form-group">
900 <label for="Address1">
901 @Translate("address1", "Adresse 1")
902 </label>
903 <input class="form-control" type="text" name="address" placeholder="" data-bind="value: address1" required="">
904 </div>
905
906 <div class="form-group">
907 <label for="Address2">
908 @Translate("address2", "Adresse 2")
909 </label>
910 <input class="form-control" type="text" name="Address2" placeholder="" data-bind="value: address2">
911 </div>
912
913 <div class="form-group js-form-group">
914 <label for="cvr">
915 @Translate("cvr", "CVR nr.")
916 </label>
917 <input class="form-control" type="tel" name="cvr" placeholder="" data-bind="value: cvr, renderInputForm: { myArray: visibleFields, name: 'cvr'}">
918 </div>
919
920
921 <div class="form-group js-form-group">
922 <label for="ean">
923 @Translate("ean", "EAN nr.")
924 </label>
925 <input class="form-control" type="tel" name="ean" placeholder="" data-bind="value: ean, renderInputForm: { myArray: visibleFields, name: 'ean'}">
926 </div>
927
928 <div class="form-group">
929 <div class="row">
930 <div class="col-sm-6 mobile-m-b-15">
931 <label for="zip">
932 @Translate("zip", "Postnr.")
933 </label>
934 <input class="form-control" type="tel" name="zipcode" placeholder="" data-bind="value: zip" required="">
935 </div>
936 <div class="col-sm-6">
937 <label for="city">
938 @Translate("city", "By")
939 </label>
940 <input class="form-control" type="text" name="city" placeholder="" data-bind="value: city" required="">
941 </div>
942 </div>
943
944
945 </div>
946
947
948 <div class="form-group">
949 <label for="country">
950 @Translate("country", "Land")
951 </label>
952
953 <select name="country" class="form-control">
954 @foreach (var item in Dynamicweb.Ecommerce.International.Country.GetCountries())
955 {
956 var selected = item.Code2 == Dynamicweb.Ecommerce.Common.Context.Country.Code2 ? "selected" : "";
957 <option value="@item.Code2" @selected="">@item.CountryText.Name</option>
958 }
959 </select>
960
961 @*<input class="form-control" type="text" name="country" placeholder="" data-bind="value: country">*@
962 </div>
963
964 <div class="form-group">
965 <label for="Email">
966
967 @Translate("email", "E-mail")
968 </label>
969 <input class="form-control" type="email" name="Email" placeholder="" data-bind="value: useremail" required="">
970 </div>
971
972
973 <div class="form-group">
974 <label for="Phone">
975 @Translate("phone", "Telefon")
976 </label>
977 <input class="form-control" type="tel" name="Phone" placeholder="" data-bind="value: phone" required="">
978 </div>
979 <div class="form-group">
980 <label for="Password">
981 @Translate("password", "Adgangskode")
982 </label>
983 <input class="form-control" type="password" name="Password" placeholder="" required="">
984 </div>
985
986
987 <div class="row">
988 <div class="col-sm-12 margin-bottom-half">
989 <div class="checkbox">
990 <label class="bs-label">
991 <input class="bs" type="checkbox" name="NewsletterSubscription" id="newslettersubscription" value="True">
992 <span>@Translate("NewsletterSubscriptionLabel", "Jeg ønsker at modtage Elma E-news (nyhedsbrev på e-mail)")</span>
993 </label>
994 @if (GetString("LongLang") != "en-GB")
995 {
996 <label class="bs-label">
997 <input class="bs" type="checkbox" name="NewsMagazineSubscription" id="newsmagazinesubscription" value="True">
998 <span>@Translate("NewsMagazineSubscriptionLabel", "Jeg ønsker også at modtage Elma's nyhedsmagasin Instruments News med posten")</span>
999 </label>
1000 }
1001 </div>
1002 </div>
1003 </div>
1004
1005 <input type="hidden" name="groups" id="groups" data-bind="value: group = 5">
1006 <div class="status error-180 margin-bottom-desktop">@Translate("mailalreadyexists", "E-mail adressen er allerede i brug")</div>
1007 </div>
1008 <div class="action">
1009 <button class="btn btn-primary pull-right mobile-full-width" tabindex="3">@Translate("makenewuser", "Opret ny bruger")</button>
1010 <span data-bind="Fadevisible: newUserLoader" class="ringLoader"></span>
1011 </div>
1012 </form>
1013 </div>
1014 <div class="modal-body confirmation" data-bind="visible: successOrFail">
1015 <h2>@Translate("youhavemadeanewuser", "Du er nu oprettet som bruger")</h2>
1016 <p class="margin-bottom-half">@Translate("wehavesentaemailwithuserdetails", "- Vi har sendt en E-mail med brugeroplysninger.")</p>
1017 <button class="btn btn-primary" tabindex="3" data-dismiss="modal" value="luk">@Translate("closepopup", "Luk popup")</button>
1018 </div>
1019 </div>
1020 </div>
1021 </div>
1022
1023
1024 </div>
1025
1026
1027 <script data-cookieconsent="ignore" src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script>
1028 <script data-cookieconsent="ignore" src="/Files/templates/designs/tapas/assets/libraries/crypto-js.min.js"></script>
1029 <script data-cookieconsent="ignore">
1030 window.jQuery || document.write('<script src="files/templates/designs/tapas/assets/lbriaries/jquery-2.1.4.min.js"><\/script>')
1031 </script>
1032
1033 <!--inject:js-->
1034 <script data-cookieconsent="ignore" src="/Files/Templates/Designs/Tapas/assets/min/library.min.js?v=@assetVersion"></script>
1035 <script data-cookieconsent="ignore" src="/Files/Templates/Designs/Tapas/assets/min/_main.min.js?v=@assetVersion"></script>
1036 <!--endinject-->
1037 <script data-cookieconsent="ignore">
1038 Elma.Init()
1039 </script>
1040
1041 <!--inject:css--><!--endinject-->
1042 </body>
1043 </html>
1044
1045 @helper RenderSchemaItem(string name, string item, int position)
1046 {
1047 <text>{
1048 "@@type": "ListItem",
1049 "position": @position,
1050 "name": "@name",
1051 "item": "@(Dynamicweb.Context.Current.Request.Url.Scheme + "://" + Dynamicweb.Context.Current.Request.Url.Host + item)"
1052 }</text>
1053 }