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_9e64b80590ca43edbe3d7f35a96fbf81.Execute() in E:\Websites\elma.LIVE\Files\Templates\Designs\Tapas\_parsed\cleanpage.parsed.cshtml:line 263
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 <script type="application/ld+json">
256 {
257 "@@context": "https://schema.org",
258 "@@type": "Product",
259 "@@id": "@(scheme + "://" + host + productUrl)",
260 "name": "@product.Name",
261 @if (!string.IsNullOrEmpty(product.ShortDescription)){<text>"description": "@product.ShortDescription",</text>}
262 "image": [
263 "@(scheme + "://" + host + productImages.First())"
264 ],
265 "sku": "@product.Number",
266 "gtin13": "@product.Number",
267 "brand": {
268 "@@type": "Brand",
269 "name": "ELMA"
270 },
271 "url": "@(scheme + "://" + host + productUrl)",
272 @if(ProductPriceInfo.PriceWithVAT > 0)
273 {
274 <text>"offers": {
275 "@@type": "Offer",
276 "url": "@(scheme + "://" + host + productUrl)",
277 "price": "@ProductPriceInfo.PriceWithVAT.ToString().Replace(',','.')",
278 "priceCurrency": "@Dynamicweb.Ecommerce.Common.Context.Currency.Code",
279 "availability": @if(product.Stock > 0){<text>"https://schema.org/InStock"</text>}else{<text>"https://schema.org/OutOfStock"</text>}
280
281 },</text>
282 }
283 "itemCondition": "https://schema.org/NewCondition"
284 }
285 </script>
286 }
287
288 if (GetString("Item.SystemName") == "News")
289 {
290 <script type="application/ld+json">
291 {
292 "@@context": "https://schema.org",
293 "@@type": "Article",
294 "headline": "@GetString("Item.NewsHeader")",
295 "description": "@System.Web.HttpUtility.HtmlEncode(GetString("Item.NewsTeaser.Value"))",
296 "image": [
297 "@(scheme + "://" + host + GetString("Item.NewsImage.Value"))"
298 ],
299 "datePublished": "@GetString("Item.NewsDate.Value")",
300 "author": {
301 "@@type": "Organization",
302 "name": "Elma Instruments"
303 },
304 "publisher": {
305 "@@type": "Organization",
306 "name": "Elma Instruments",
307 "logo": {
308 "@@type": "ImageObject",
309 "url": "https://elma.dk/media/elma-logo.png"
310 }
311 },
312 "mainEntityOfPage": {
313 "@@type": "WebPage",
314 "@@id": "@(scheme + "://" + host + Dynamicweb.Frontend.SearchEngineFriendlyURLs.GetFriendlyUrl($"Default.aspx?ID={Pageview.Page.ID}"))"
315 }
316 }
317 </script>
318 }
319 }
320
321 <!--inject:css--><!--endinject-->
322 @GetValue("Stylesheets")
323 @GetValue("Javascripts")
324 </head>
325
326
327 <body class="@printCssClass" data-bind="closeMenuItems: { menuOpenObservable: menuOpen, miniCartVisibleObservable: miniCartVisible }, css: { 'loading': load().active }">
328 <!-- Google Tag Manager (noscript) -->
329 <noscript>
330 <iframe src="https://www.googletagmanager.com/ns.html?id=GTM-567PQPG" height="0" width="0" style="display:none;visibility:hidden"></iframe>
331 </noscript>
332 <!-- End Google Tag Manager (noscript) -->
333 <!-- ko if: responsive-->
334 <div class="mobileSection visible-sm visible-xs" data-bind="css: { 'open': showResponsiveMenu }">
335 <div class="mobile-menu-closer" data-bind="click: toggleResponsiveMenu">
336 </div>
337 @GetValue("DwNavigation(responsivenav)")
338 </div>
339 <!-- /ko -->
340
341 <div class="desktopSection js-wrapper" data-bind="css: { 'open': showResponsiveMenu }">
342 @if (printActivated == false)
343 {
344
345 <header class="header">
346
347 <div class="header__primary" data-bind="floatingMenu">
348 <div class="header__secondary hidden-print">
349 <div class="container">
350 <div class="header__secondary__inner hidden-xs">
351 <div class="vat-selector">
352 <button class="@companySelected" data-bind="click: setCustomerType.bind($data, 'Erhverv')">@Translate("Erhverv", "Erhverv")</button>
353 <button class="@privateSelected" data-bind="click: setCustomerType.bind($data, 'Privat')">@Translate("Privat", "Privat")</button>
354 </div>
355 <nav class="navigation navigation--secondary">
356 @GetValue("DwNavigation(dwtopnav)")
357 </nav>
358 </div>
359 </div>
360 </div>
361 <div class="header__primary__inner">
362 @RenderSnippet("Logo")
363
364 <div class="navigation-links">
365
366 <!-- ko ifnot: responsive-->
367 <nav class="navigation navigation--primary visible-md visible-lg">
368 @GetValue("DwNavigation(dwnav)")
369 </nav>
370 <!-- /ko -->
371
372 <div class="header__search visible-md visible-lg js-instant-search-container" data-bind="viewModel: Tapas.ViewModels.InstantSearchViewModel">
373 <div data-bind="instantSearchButtonControls: '.productCount'">
374 @inherits RazorTemplateBase<RazorTemplateModel<Template>>
375 @using Dynamicweb.Rendering;
376
377 <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"))" }'>
378 <div class="instant-search-form">
379 <input type="hidden" name="ID" value="@searchResultId">
380 <input type="text" placeholder='@Translate("SearchForProduct", "Søg efter produkt")' id="instantSearch" class="form-control" data-bind="textInput: searchQuery" autocomplete="off" name="Search">
381 <span class="instant-search-icon" data-bind="submitParentForm, css: { animate: searchLoading }">
382 <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>
383 </span>
384 </div>
385
386 <div class="result instant-search-results container elma-card" data-bind="html: result, visible: allResults">
387 </div>
388 </form>
389 </div>
390 </div>
391
392 <div class="header__actions">
393
394 <div class="item mobile-search visible-xs visible-sm" data-bind="menu, focusFirstInputOnClick">
395 <div class="elma-menu-icon">
396 <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>
397 </div>
398 <div class="search-container">
399 <div class="header__search js-instant-search-container" data-bind="viewModel: Tapas.ViewModels.InstantSearchViewModel">
400 <div data-bind="instantSearchButtonControls: '.productCount'">
401 @inherits RazorTemplateBase<RazorTemplateModel<Template>>
402 @using Dynamicweb.Rendering;
403
404 <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"))" }'>
405 <div class="instant-search-form">
406 <input type="hidden" name="ID" value="@searchResultId">
407 <input type="text" placeholder='@Translate("SearchForProduct", "Søg efter produkt")' id="instantSearch" class="form-control" data-bind="textInput: searchQuery" autocomplete="off" name="Search">
408 <span class="instant-search-icon" data-bind="submitParentForm, css: { animate: searchLoading }">
409 <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>
410 </span>
411 </div>
412
413 <div class="result instant-search-results container elma-card" data-bind="html: result, visible: allResults">
414 </div>
415 </form>
416 </div>
417 </div>
418 </div>
419 </div>
420
421 @if (CurrentUser != null)
422 {
423 <div class="item user-menu" data-bind="menu">
424 <div class="elma-menu-icon">
425 <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>
426 </div>
427 @GetValue("DwNavigation(usernavigation)")
428 </div>
429 }
430 else
431 {
432 <div class="item user-menu" data-toggle="modal" data-target=".loginModal">
433 <div class="elma-menu-icon">
434 <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>
435 </div>
436 <div class="dropDown elma-card elma-card--white">
437 @inherits RazorTemplateBase<RazorTemplateModel<Template>>
438 @using Dynamicweb.Rendering;
439
440 <div class="loginDetails login-container">
441 <div>
442 <div class="dropdown UserLinks" data-bind="visible: $root.User().IsLoggedIn()" style="display: none;">
443 <a id="user" data-toggle="dropdown" role="button">
444 <i class="elma-icon-lock"></i> <span data-bind="text: $root.User().Name"></span><span class="caret"></span>
445 </a>
446 @GetValue("DwNavigation(dwusernav)")
447 </div>
448 </div>
449 </div>
450 </div>
451 </div>
452 }
453
454 <div class="item cart-info" data-bind="viewModel: Elma.ViewModels.MiniCartViewModel, menu, css: { 'visible': miniCartVisible }">
455 <div class="elma-menu-icon">
456 <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>
457 </div>
458 <span class="count-indicator" data-bind="css: { ShowCartIndicator: ShowCartIndicator }, text: Cart().TotalProductLines"></span>
459 <div class="dropDown miniCart elma-card">
460 <div class="col-md-12 col-sm-12 col-xs-12 customTable">
461 <div class="row tableRow">
462 <div class="col-md-12 col-sm-12 col-xs-12">
463 @inherits RazorTemplateBase<RazorTemplateModel<Template>>
464 @using Dynamicweb.Rendering;
465
466 @{
467 var currentLocale = GetGlobalValue("Global:Area.LongLang");
468 bool IsPrivateCustomer = Firstweb.Custom.CustomCode.Webshop.Frontend.Helpers.CustomerType.GetCustomerType() == "Privat";
469 }
470
471 <div class="col-md-12 col-sm-12 col-xs-12 headlineBlock" data-bind="visible: ShowEmptyMiniCart">
472 <h2 class="headline">@Translate("yourorderlines", "Ordrelinjer")</h2>
473 <a href="/Default.aspx?ID=@checkoutId&step=1" class="quickAdd btn btn-primary quick-search-btn pull-right">
474 @Translate("gotopayment", "Til betaling")
475 </a>
476 </div>
477
478 <div class="col-md-12 col-sm-12 col-xs-12 headlineBlock" data-bind="visible: !ShowEmptyMiniCart()">
479 <h2 class="headline">@Translate("cartisempty", "Din kurv er tom")</h2>
480 </div>
481
482 <div class="col-md-12 col-sm-12 col-xs-12 orderlines" data-bind="visible: ShowEmptyMiniCart">
483 <div class="row">
484 <div class="col-md-12 col-sm-12 col-xs-12">
485 <div class="row minicart-tableheader">
486 <div class="col-md-5 col-sm-5 col-xs-5 miniCart name">@Translate("ItemName", "Vare")</div>
487 <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>
488 <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>
489 <div class="col-md-2 col-sm-2 col-xs-3 miniCart alignRight totalPrice">@Translate("total", "Total")</div>
490 </div>
491 </div>
492 <div class="col-md-12 col-sm-12 col-xs-12" data-bind="foreach: { data: Cart().CartLines.slice(0).reverse(), as: 'cartItem', afterRender: EverythingHasLoaded }">
493 <div class="orderLine">
494 <div class="product-info" data-bind="attr: {'data-product-info': [cartItem.ProductName(), cartItem.ProductNumber(), 'Denmark', '0', cartItem.ProductUnitPriceWithVat(), 'Elma', 'Elma']}"></div>
495 <div class="row">
496 <div class="col-md-5 col-sm-5 col-xs-6 miniCart name">
497 <h5 class="no-margin-top"><strong data-bind="text: cartItem.ProductName"></strong></h5>
498 <p class="desktop-inline-block">@Translate("Firstweb:Product.ProductInfo.Eannumber", "EAN:"): <span data-bind="text: cartItem.ProductNumber"></span></p>
499 <div data-bind="foreach: { data: cartItem.CustomProductFields, as: 'pf'}" class="desktop-inline-block">
500 <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>
501 </div>
502 </div>
503 @if (IsPrivateCustomer)
504 {
505 <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>
506 }
507 else
508 {
509 <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>
510 }
511 <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>
512 @if (IsPrivateCustomer)
513 {
514 <div class="col-md-2 col-sm-2 col-xs-3 miniCart alignRight totalPrice" data-bind="formatNumber: { locale: '@currentLocale', observable: ProductPrice }"></div>
515 }
516 else
517 {
518 <div class="col-md-2 col-sm-2 col-xs-3 miniCart alignRight totalPrice" data-bind="formatNumber: { locale: '@currentLocale', observable: ProductPriceWithoutVAT }"></div>
519 }
520 <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>
521 </div>
522 </div>
523 </div>
524 <div class="col-md-12 col-sm-12 col-xs-12 mini-cart-total">
525 <div class="full-width text-right miniCart summary">
526 @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")
527 </div>
528 <div class="full-width text-right miniCart summary">
529 @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")
530 </div>
531 </div>
532 </div>
533 </div>
534
535
536 </div>
537 </div>
538 </div>
539 </div>
540 </div>
541
542 <div class="collapseBtn js-collapse-btn" data-bind="click: toggleResponsiveMenu"></div>
543
544 </div>
545
546 </div>
547 </div>
548 </div>
549 </header>
550 }
551
552
553
554 @using Dynamicweb.Environment
555
556
557 @{
558 var hasGroupId = !string.IsNullOrWhiteSpace(Dynamicweb.Context.Current.Request.GetString("groupid"));
559 var hasProductId = !string.IsNullOrWhiteSpace(Dynamicweb.Context.Current.Request.GetString("productid"));
560 var hasCompare = !string.IsNullOrWhiteSpace(Dynamicweb.Context.Current.Request.GetString("compare"));
561 var hasSearch = !string.IsNullOrWhiteSpace(Dynamicweb.Context.Current.Request.GetString("Search"));
562 int productPageId = Dynamicweb.Core.Converter.ToInt32(Pageview.Area.Item["ProductCatalogId"]);
563 bool disabledBreadcrumbs = GetBoolean("Item.Page.RemoveStandardBreadcrumbs.Value");
564 var isEcom = hasGroupId || hasProductId || hasCompare || hasSearch || productPageId == Pageview.ID || disabledBreadcrumbs;
565 }
566
567 <div class="container-fluid">
568 <div class="row">
569 <div class="col-xs-12">
570 <div class="row header-image" id="headerImage">@GetValue("DwContent(headerImage)")</div>
571 </div>
572 </div>
573 </div>
574
575 @if (isEcom == false)
576 {
577
578 @* only show breadcrumbs on non-ecom pages *@
579 @* ecom pages have their own custom breadcrumbs from our 1stweb helpers *@
580
581 <div class="container">
582 <div class="row">
583 @RenderNavigation(new
584 {
585 template = "breadcrumbs.xslt",
586 id = "breadcrumb",
587 sitemapmode = "true",
588 homepageText = Translate("homepage", "Forside")
589 })
590 </div>
591 </div>
592 }
593
594 <div id="headlineOneColumn">@GetValue("DwContent(headlineOneColumn)")</div>
595
596 <div id="content1">@GetValue("DwContent(content1)")</div>
597
598 @if (!printActivated)
599 {
600 <section class="newsletter">
601 <div class="container">
602 <div class="row flex-row align-items-center">
603 <div class="col-md-4">
604 <p class="newsletter__heading--large">@Translate("NewsletterText.Heading", "Tilmeld dig E-News!")</p>
605 <p class="newsletter__heading">@Translate("NewsletterText", "Hold dig opdateret og få vores fantastiske tilbud i din indbakke")</p>
606 </div>
607 <div class="col-md-8">
608 @RenderPageContent(newsletterId)
609 </div>
610 </div>
611 </div>
612 </section>
613
614 <footer class="footer hidden-print">
615 <div class="container">
616 @RenderItem(new { ItemType = "WebshopFooter", SourceItemEntry = footerId, ItemFields = "*", DetailsTemplate = "RenderItem/footer.cshtml" })
617 <div class="row flex-row footer__secondary">
618 <div class="col-xs-12 col-md-4 footer__secondary-item">
619 <p>@Translate("PaymentText", "Betalingsmetoder")</p>
620 <img src="@paymentImage" alt="" style="height: 30px;">
621 </div>
622
623 <div class="col-xs-12 col-md-4 justify-content-center footer__secondary-item footer__secondary-item--nav">
624 @foreach (var footerNavItem in footerNavigationLoop) {
625 string itemText = footerNavItem.GetString("Item.Area.FooterNavigation.ColText.Value");
626 string itemLink = footerNavItem.GetString("Item.Area.FooterNavigation.ColLink.Value");
627 <a href="@itemLink">@itemText</a>
628 }
629 </div>
630 <div class="col-xs-12 col-md-4 footer__secondary-item">
631 <p>© @currentYear @Translate("ElmaCopyrightText", "Elma Instruments. All Rights Reserved.")</p>
632 </div>
633 </div>
634 </div>
635 </footer>
636
637 <div class="overlay">
638 <div class="loader">
639 <div class="dot"></div>
640 <div class="dot"></div>
641 <div class="dot"></div>
642 <div class="loaderText" data-bind="text: load().text"></div>
643 </div>
644 </div>
645
646 <div class="modal fade js-customer-type-modal customer-type-modal" id="customerTypeSelector" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
647 <div class="modal-dialog" role="document">
648 <div class="modal-content elma-card elma-card--padded">
649 <div class="modal-body">
650 <p class="customer-type-modal_header">@Translate("CustomerTypeModal.Header", "Vælg kundetype")</p>
651 <button type="button" class="btn btn-secondary" data-bind="click: setCustomerType.bind($data, 'Privat')">@Translate("Privat", "Privat")</button>
652 <button type="button" class="btn btn-secondary" data-bind="click: setCustomerType.bind($data, 'Erhverv')">@Translate("Erhverv", "Erhverv")</button>
653 </div>
654 </div>
655 </div>
656 </div>
657
658 <a href='@googleMapsLink' class="display-none-sm find-me-container text-center border-top-radius-left" rel='noopener noreferrer' target='_blank'>
659 <div class="footer-trigger-icon">
660 <i class="elma-icon-find-me"></i>
661 </div>
662 <p class="footer-trigger-text">@Translate("footerFindMe", "Find os")</p>
663 </a>
664
665
666 <div class="newsletter-widget" data-bind="css: { 'open': showNewsletterWidget }, value: newsletterModal = '.newsletter-modal' ">
667
668 <div class="newsletter-open text-center border-top-radius-right" data-bind="click: toggleNewsletterWidget">
669 <div class="footer-trigger-icon">
670 <i class="elma-icon-newsletter"></i>
671 </div>
672 <p class="footer-trigger-text">@Translate("newsletterOpenTag", "Nyhedsbrev")</p>
673 </div>
674
675 <div class="newsletter-content elma-card">
676 <div class="newsletter-close" data-bind="click: hideNewsletterWidget"></div>
677 <form name="UserManagementEditForm" data-bind="submit: submitNewsletterSubscription, value: newsletterFormID = '@newsletterId'">
678 <input type="hidden" name="UserManagementForm" value="1">
679 <input type="hidden" id="HiddenField.CustomField.AccessUser_AccessUser_NewsletterSubscription" name="CustomField.AccessUser_AccessUser_NewsletterSubscription" value="True">
680 <input name="UserManagement_Form_EmailAllowed" type="hidden" id="UserManagement_Form_EmailAllowed" value="True">
681 <input name="UserManagement_Form_EmailAllowed_ApplyValue" type="hidden" id="UserManagement_Form_EmailAllowed_ApplyValue" value="AllowEmail">
682
683 <div class="newsletter-head">
684 @Translate("Nesletter.Header", "Tilmeld dig E-news!")
685 </div>
686
687 <div class="newsletter-subhead">
688 <p>
689 @Translate("Nesletter.Subhead1", "Tilmeld dig vores spændende nyhedsbrev og få alle de gode tilbud og nyheder først.")
690 </p>
691 <p>
692 @Translate("Newsletter.Subhead2", "Det eneste du skal gøre er at udfylde nedenfor.")
693 </p>
694 </div>
695 <div class="row">
696 <div class="col-sm-6">
697 <input name="UserManagement_Form_Name" class="form-control" id="UserManagement_Form_Name" type="text" placeholder='@Translate("Newsletter.Input.Name", "Skrit dit navn")' required="">
698 </div>
699 <div class="col-sm-6">
700 <input name="UserManagement_Form_Email" class="form-control" id="UserManagement_Form_Email" type="email" placeholder='@Translate("Newsletter.Input.Email", "Skrit din E-mail")' required="">
701 </div>
702 </div>
703
704 <div class="row">
705 <div class="col-sm-12 newsletter-checkbox">
706 <label class="bs-label">
707 <input class="checkbox-field bs" type="checkbox" name="CustomField.AccessUser_AccessUser_NewsMagazineSubscription" data-bind="checked: newsMagazineSubscription">
708 <span class="checkbox-text">@Translate("Newsletter.SubscribeToMagazine", "Jeg ønsker også at modtage Elma's nyhedsmagasin Instrument News med posten")</span>
709 </label>
710 </div>
711 </div>
712
713 <div class="row">
714 <div class="col-sm-12 hide" data-bind="css: {'show': newsMagazineSubscription }">
715 <div class="form-group">
716 <input class="form-control" name="UserManagement_Form_Company" type="text" maxlength="255" placeholder='@Translate("Newsletter.Company", "Firmnavn")' value="">
717 </div>
718 <div class="form-group">
719 <input class="form-control" name="UserManagement_Form_FirstName" type="text" maxlength="255" placeholder='@Translate("Newsletter.Name", "Navn")' value="">
720 </div>
721 <div class="form-group">
722 <input class="form-control" name="UserManagement_Form_Address" type="text" maxlength="255" placeholder='@Translate("Newsletter.Address", "Adresse")' value="">
723 </div>
724 <div class="row form-group">
725 <div class="col-sm-4">
726 <input class="form-control" name="UserManagement_Form_Zip" type="text" maxlength="255" placeholder='@Translate("Newsletter.Zip", "Postnr")' value="">
727 </div>
728 <div class="col-sm-8">
729 <input class="form-control" name="UserManagement_Form_City" type="text" maxlength="255" placeholder='@Translate("Newsletter.City", "By")' value="">
730 </div>
731 </div>
732 </div>
733 </div>
734
735 <button class="btn btn-block btn-primary" type="submit" data-bind="disable: newsletterSubmitting">@Translate("Newsletter.Submit", "Tilmeld nyhedsbrev")</button>
736 </form>
737 </div>
738 </div>
739
740 <div class="newsletter-modal modal fade" tabindex="-1" role="dialog" data-bind="css: { 'subSuccess': newsletterSubscriptionStatus, 'subError': !newsletterSubscriptionStatus() }">
741 <div class="modal-dialog">
742 <div class="modal-content">
743 <div class="modal-header">
744 <button type="button" class="close" data-dismiss="modal" aria-label="Close"></button>
745 <h4 class="modal-title subSuccess">@Translate("newslettersuccess", "Du er nu tilmeldt nyhedsbrev!")</h4>
746 <h4 class="modal-title subError">@Translate("newslettererror", "Der skete en uventet fejl, prøv igen senere.")</h4>
747 </div>
748
749 <div class="modal-footer">
750 <button type="button" class="button" data-dismiss="modal" aria-label="Close">@Translate("newsletterbtn", "okay")</button>
751 </div>
752 </div>
753 </div>
754 </div>
755
756 <div class="js-backdrop elma-backdrop hide-elm"></div>
757 }
758 </div>
759
760 <div data-bind="viewModel: Elma.ViewModels.LoginViewModel">
761
762 @{
763 string forgotEmail = Dynamicweb.Core.Converter.ToString(Pageview.Area.Item["ForgotEmail"]);
764 string forgotPasswordEmailSubject = Translate("ForgotPasswordMailSubject", "Her er dit password");
765 }
766
767 @if (!string.IsNullOrEmpty(forgotEmail))
768 {
769 <!-- ko initValue: {observable: dwForgotEmail, value:'@forgotEmail'}--><!-- /ko-->
770 }
771
772 @* Because of happy DW - we need to add ../ before the path in order for Extranet to find the correct path *@
773
774 <!-- ko initValue: {observable: dwForgotPasswordMailTemplate, value:'../Extranet/mail.cshtml'}--><!-- /ko-->
775 <!-- ko initValue: {observable: dwForgotPasswordMailSubject, value:'@Firstweb.Custom.CustomCode.Webshop.Frontend.Helpers.Base.JSTrimTranslation(forgotPasswordEmailSubject)'}--><!-- /ko-->
776 <!--Login popup-->
777 <div class="modal loginModal container" tabindex="-1" role="dialog" aria-labelledby="mySmallModalLabel">
778 <div class="modal-dialog elma-card elma-card--white">
779 <div class="popupBox login modal-content">
780 <div class="modal-header">
781 <button type="button" class="close" data-dismiss="modal" aria-label="Close"></button>
782 <span class="modal__title m-t-0">@Translate("login", "Log ind")</span>
783 </div>
784 <div class="modal-body" data-bind="Fadevisible: ToggleForgottenPassword, delayIn:250">
785 <form name="ExtUserForm" id="ExtUserForm" method="post" action="@action">
786 <div class="form">
787 <div class="form-group">
788 <input class="form-control" type="text" name="Username" placeholder='@Translate("username", "Brugernavn")' value="@userName" data-bind="value: UserName, hasFocus: addFocus" required="">
789 </div>
790 <div class="form-group">
791 <input class="form-control" type="password" name="Password" placeholder='@Translate("password", "Adgangskode")' value="@password" data-bind="value: Password" required="">
792 </div>
793
794 </div>
795 <div class="action">
796 <div class="pull-left">
797 <label class="customRadio">
798 <input type="checkbox" name="Autologin" data-bind="checked: rememberMe">
799 <div class="radio"></div>
800 @Translate("stayloggedin", "Husk mig")
801 </label>
802 <div class="forgottenPass elma-link elma-link--grey" data-bind="toggleClick: ToggleForgottenPassword">
803 @Translate("forgottenpassword", "Glemt adgangskode")
804 </div>
805
806 <div class="modal-login-failed" data-bind="visible: LoginFailed">
807 <div class="alert alert-danger">
808 @Translate("LoginFailed", "Du har indtastet et forkert kode eller forkert brugernavn, Prøv venligst igen")
809 </div>
810 </div>
811 <div class="row" data-bind="visible: LoginWrongDomain">
812 <div class="col-sm-12">
813 <div class="alert alert-danger">
814 @Translate("LoginWrongDomain", "Du har logget ind på det forkerte domæne")
815 </div>
816 </div>
817 </div>
818 </div>
819 <div class="modal-buttons pull-right">
820 <div class="btn btn-secondary" data-bind="click: newUser">
821 @Translate("donthavealogin", "Opret bruger")
822 </div>
823 <button class="btn btn-primary pull-right" tabindex="3" value="LOG IND" data-bind="click: Login, toggleClick: Loader">@Translate("login", "Log ind")</button>
824 </div>
825 <span data-bind="Fadevisible: !Loader(), css:{ loginsuccess : $root.User().IsLoggedIn(), loginFail : LoginFailed() }" class="ringLoader"></span>
826 </div>
827 </form>
828 </div>
829 <div class="modal-body forgotten" data-bind="Fadevisible: !ToggleForgottenPassword(), delayIn:250">
830 <div class="back" data-bind="toggleClick: ToggleForgottenPassword">@Translate("back", "Tilbage")</div>
831 <div class="action">
832 <form name="ExtUserForm" id="ExtUserForm" method="post" action="@action" data-bind="submit: recover">
833 <input type="text" class="form-control" name="Email" placeholder='@Translate("email", "Email")' data-bind="value: email" required="">
834 <div class="confirmation" data-bind="html: confirmation"></div>
835 <button type="submit" class="btn btn-primary pull-right col-xs-12" tabindex="3">@Translate("getpassword", "Få tilsendt kode")</button>
836 <span data-bind="Fadevisible: ForgottenLoader" class="ringLoader"></span>
837 </form>
838 </div>
839 </div>
840 </div>
841 </div>
842 </div>
843 <!--New user popup-->
844 <div class="modal newUser fade" tabindex="-1" role="dialog" aria-labelledby="mySmallModalLabel" data-bind="value: newUserModal = '.newUser'">
845 <div class="modal-dialog">
846 <div class="popupBox login modal-content">
847 <!-- ko initValue: {observable: userType, value:'1'}--><!-- /ko-->
848
849 <div class="modal-header subHeading">
850 <button type="button" class="close" data-dismiss="modal" aria-label="Close"></button>
851 <span data-bind="visible: !successOrFail()">@Translate("makenewuser", "Opret ny bruger")</span>
852 <span data-bind="visible: successOrFail">@Translate("congratulations", "Tillykke.")</span>
853 </div>
854 <div class="modal-body" data-bind="value: loginId = @loginId, visible: !successOrFail()">
855 <form name="MakeNewUserForm" id="MakeNewUserForm" data-bind="createUser: { link: '/Handlers/Firstweb.ERP.Users.ashx?cmd=createcustomer', type: 'login'}">
856 <div class="form">
857 <div class="form-group margin-top-half margin-bottom-half">
858 <label class="radio-inline bs-label block-radio" for="customertype_1">
859 <input type="radio" class="bs" name="customertype" id="customertype_1" value="1" data-bind="checked: userType" checked="checked"> <span>@Translate("CustomerType_1", "Privat")</span>
860 </label>
861 <label class="radio-inline bs-label block-radio" for="customertype_2">
862 <input type="radio" data-bind="checked: userType" class="bs" name="customertype" id="customertype_2" value="2"> <span>@Translate("CustomerType_2", "Virksomhed")</span>
863 </label>
864
865 <label class="radio-inline bs-label block-radio" for="customertype_3">
866 <input type="radio" data-bind="checked: userType" class="bs" name="customertype" id="customertype_1" value="3"> <span>@Translate("CustomerType_3", "Offentlig")</span>
867 </label>
868 </div>
869
870 <div class="form-group js-form-group">
871 <label for="Companyname">
872 @Translate("companyname", "Firmanavn")
873 </label>
874 <input class="form-control" type="text" name="Companyname" placeholder="" data-bind="hasFocus: makeNewUserOpen, value: companyName, renderInputForm: { myArray: visibleFields, name: 'company'}" required="">
875 </div>
876
877 <div class="form-group">
878 <label for="Name">
879 @Translate("contactperson", "Kontaktperson")
880 </label>
881 <input class="form-control" type="text" name="Name" placeholder="" data-bind="value: contactperson" required="">
882 </div>
883
884 <div class="form-group">
885 <label for="Address1">
886 @Translate("address1", "Adresse 1")
887 </label>
888 <input class="form-control" type="text" name="address" placeholder="" data-bind="value: address1" required="">
889 </div>
890
891 <div class="form-group">
892 <label for="Address2">
893 @Translate("address2", "Adresse 2")
894 </label>
895 <input class="form-control" type="text" name="Address2" placeholder="" data-bind="value: address2">
896 </div>
897
898 <div class="form-group js-form-group">
899 <label for="cvr">
900 @Translate("cvr", "CVR nr.")
901 </label>
902 <input class="form-control" type="tel" name="cvr" placeholder="" data-bind="value: cvr, renderInputForm: { myArray: visibleFields, name: 'cvr'}">
903 </div>
904
905
906 <div class="form-group js-form-group">
907 <label for="ean">
908 @Translate("ean", "EAN nr.")
909 </label>
910 <input class="form-control" type="tel" name="ean" placeholder="" data-bind="value: ean, renderInputForm: { myArray: visibleFields, name: 'ean'}">
911 </div>
912
913 <div class="form-group">
914 <div class="row">
915 <div class="col-sm-6 mobile-m-b-15">
916 <label for="zip">
917 @Translate("zip", "Postnr.")
918 </label>
919 <input class="form-control" type="tel" name="zipcode" placeholder="" data-bind="value: zip" required="">
920 </div>
921 <div class="col-sm-6">
922 <label for="city">
923 @Translate("city", "By")
924 </label>
925 <input class="form-control" type="text" name="city" placeholder="" data-bind="value: city" required="">
926 </div>
927 </div>
928
929
930 </div>
931
932
933 <div class="form-group">
934 <label for="country">
935 @Translate("country", "Land")
936 </label>
937
938 <select name="country" class="form-control">
939 @foreach (var item in Dynamicweb.Ecommerce.International.Country.GetCountries())
940 {
941 var selected = item.Code2 == Dynamicweb.Ecommerce.Common.Context.Country.Code2 ? "selected" : "";
942 <option value="@item.Code2" @selected="">@item.CountryText.Name</option>
943 }
944 </select>
945
946 @*<input class="form-control" type="text" name="country" placeholder="" data-bind="value: country">*@
947 </div>
948
949 <div class="form-group">
950 <label for="Email">
951
952 @Translate("email", "E-mail")
953 </label>
954 <input class="form-control" type="email" name="Email" placeholder="" data-bind="value: useremail" required="">
955 </div>
956
957
958 <div class="form-group">
959 <label for="Phone">
960 @Translate("phone", "Telefon")
961 </label>
962 <input class="form-control" type="tel" name="Phone" placeholder="" data-bind="value: phone" required="">
963 </div>
964 <div class="form-group">
965 <label for="Password">
966 @Translate("password", "Adgangskode")
967 </label>
968 <input class="form-control" type="password" name="Password" placeholder="" required="">
969 </div>
970
971
972 <div class="row">
973 <div class="col-sm-12 margin-bottom-half">
974 <div class="checkbox">
975 <label class="bs-label">
976 <input class="bs" type="checkbox" name="NewsletterSubscription" id="newslettersubscription" value="True">
977 <span>@Translate("NewsletterSubscriptionLabel", "Jeg ønsker at modtage Elma E-news (nyhedsbrev på e-mail)")</span>
978 </label>
979 @if (GetString("LongLang") != "en-GB")
980 {
981 <label class="bs-label">
982 <input class="bs" type="checkbox" name="NewsMagazineSubscription" id="newsmagazinesubscription" value="True">
983 <span>@Translate("NewsMagazineSubscriptionLabel", "Jeg ønsker også at modtage Elma's nyhedsmagasin Instruments News med posten")</span>
984 </label>
985 }
986 </div>
987 </div>
988 </div>
989
990 <input type="hidden" name="groups" id="groups" data-bind="value: group = 5">
991 <div class="status error-180 margin-bottom-desktop">@Translate("mailalreadyexists", "E-mail adressen er allerede i brug")</div>
992 </div>
993 <div class="action">
994 <button class="btn btn-primary pull-right mobile-full-width" tabindex="3">@Translate("makenewuser", "Opret ny bruger")</button>
995 <span data-bind="Fadevisible: newUserLoader" class="ringLoader"></span>
996 </div>
997 </form>
998 </div>
999 <div class="modal-body confirmation" data-bind="visible: successOrFail">
1000 <h2>@Translate("youhavemadeanewuser", "Du er nu oprettet som bruger")</h2>
1001 <p class="margin-bottom-half">@Translate("wehavesentaemailwithuserdetails", "- Vi har sendt en E-mail med brugeroplysninger.")</p>
1002 <button class="btn btn-primary" tabindex="3" data-dismiss="modal" value="luk">@Translate("closepopup", "Luk popup")</button>
1003 </div>
1004 </div>
1005 </div>
1006 </div>
1007
1008
1009 </div>
1010
1011
1012 <script data-cookieconsent="ignore" src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script>
1013 <script data-cookieconsent="ignore" src="/Files/templates/designs/tapas/assets/libraries/crypto-js.min.js"></script>
1014 <script data-cookieconsent="ignore">
1015 window.jQuery || document.write('<script src="files/templates/designs/tapas/assets/lbriaries/jquery-2.1.4.min.js"><\/script>')
1016 </script>
1017
1018 <!--inject:js-->
1019 <script data-cookieconsent="ignore" src="/Files/Templates/Designs/Tapas/assets/min/library.min.js?v=@assetVersion"></script>
1020 <script data-cookieconsent="ignore" src="/Files/Templates/Designs/Tapas/assets/min/_main.min.js?v=@assetVersion"></script>
1021 <!--endinject-->
1022 <script data-cookieconsent="ignore">
1023 Elma.Init()
1024 </script>
1025
1026 <!--inject:css--><!--endinject-->
1027 </body>
1028 </html>
1029
1030 @helper RenderSchemaItem(string name, string item, int position)
1031 {
1032 <text>{
1033 "@@type": "ListItem",
1034 "position": @position,
1035 "name": "@name",
1036 "item": "@(Dynamicweb.Context.Current.Request.Url.Scheme + "://" + Dynamicweb.Context.Current.Request.Url.Host + item)"
1037 }</text>
1038 }