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