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