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&amp;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&oslash;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&oslash;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>&nbsp;&nbsp;<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&aelig;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&aelig;ndende nyhedsbrev og f&aring; alle de gode tilbud og nyheder f&oslash;rst.") 709 </p> 710 <p> 711 @Translate("Newsletter.Subhead2", "Det eneste du skal g&oslash;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 &oslash;nsker ogs&aring; 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&oslash;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&aring; 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 &oslash;nsker at modtage Elma E-news (nyhedsbrev p&aring; 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 &oslash;nsker ogs&aring; 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 }