Exception in template (Designs/StandardWebshop/_parsed/StandardPage.parsed.cshtml): System.NullReferenceException: Object reference not set to an instance of an object.
   at Dynamicweb.eCommerce.Products.Group.get_AllGroupsByLanguageID(String languageID)
   at Dynamicweb.eCommerce.Products.Group.get_Subgroups()
   at Dynamicweb.Frontend.NavigationProviders.GroupNavigationProvider._Closure$__20-0._Lambda$__0(GroupCollection items, Int32 thisLevel)
   at Dynamicweb.Frontend.NavigationProviders.GroupNavigationProvider._Closure$__20-0._Lambda$__0(GroupCollection items, Int32 thisLevel)
   at Dynamicweb.Frontend.NavigationProviders.GroupNavigationProvider._Closure$__20-0._Lambda$__0(GroupCollection items, Int32 thisLevel)
   at Dynamicweb.Frontend.NavigationProviders.GroupNavigationProvider._Closure$__20-0._Lambda$__0(GroupCollection items, Int32 thisLevel)
   at Dynamicweb.Frontend.NavigationProviders.GroupNavigationProvider._Closure$__20-0._Lambda$__0(GroupCollection items, Int32 thisLevel)
   at Dynamicweb.Frontend.NavigationProviders.GroupNavigationProvider.BuildGroupsProductCounts(GroupCollection topGroups, Int32 level, Int32 maxLevel)
   at Dynamicweb.Frontend.NavigationProviders.GroupNavigationProvider.MakeGroupTree(Page page, NavigationItem parentNode, Boolean applyStartAndEndLevelToNavigation)
   at Dynamicweb.Frontend.NavigationProviders.GroupNavigationProvider.Process(NavigationItem node, Boolean applyStartAndEndLevelToNavigation)
   at Dynamicweb.Frontend.XmlNavigation.XML(Int32 ParentID, Int32 StartLevel, Int32 StopLevel, Expand expand, Int32 areaID)
   at Dynamicweb.Frontend.XmlNavigation.GetNavigationHtml(Int32 ParentID, Int32 StartLevel, Int32 StopLevel, Expand ExpandMode, String NavigationName, String XsltPath, Int32 AreaID, Boolean SitemapMode, NameValueCollection settings, NameValueCollection attributes, IncludeMode mode)
   at Dynamicweb.Frontend.XmlNavigation.GetNavigationHtml(NameValueCollection settings, NameValueCollection attributes)
   at CompiledRazorTemplates.Dynamic.dbbafbeeaf.Execute()
   at RazorEngine.Templating.TemplateBase.RazorEngine.Templating.ITemplate.Run(ExecuteContext context)
   at RazorEngine.Razor.Parse[T](String razorTemplate, T model, String cacheName)
   at Dynamicweb.Rendering.Template.Output()
@inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>> @using Dynamicweb.ForumV2 @using NORRIQ.Common8.Razor; @{ var websiteLang = GetGlobalValue("Global:Area.Culture.Name"); var websiteLogo = GetString("Item.Area.Logo"); var websiteHome = "/"; var deviceIsDesktop = GetGlobalValue("Global:Device.IsDesktop") == "True" ? "true" : "false"; var deviceIsTablet = GetGlobalValue("Global:Device.IsTablet") == "True" ? "true" : "false"; var deviceIsPhone = GetGlobalValue("Global:Device.IsMobile") == "True" ? "true" : "false"; //Google tag manager var gtmHeader = GetString("Item.Area.GTM_Header_Script.Value"); var gtmBody = GetString("Item.Area.GTM_BodyIFrame.Value"); } <!DOCTYPE html> <html lang="@websiteLang"> <head> <title>@GetValue("Title")</title> @GetValue("MetaTags") @GetValue("CopyRightNotice") @if (GetBoolean("Item.Area.NoIndex")) { <meta name="robots" content="noindex, nofollow"> <!-- TODO: remove on launch--> } @if (!String.IsNullOrEmpty(GetString("Item.Area.GoogleVerification"))) { <meta name="google-site-verification" content="@GetString(" item.area.googleverification")"=""> } @RenderSnippet("AddNoIndex") <meta charset='@GetValue("CharSet")'> <meta http-equiv="Content-type" content="text/html;charset=UTF-8"> <link rel="shortcut icon" href="/Files/Images/favicon.ico"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no, shrink-to-fit=no"> <link href='https://fonts.googleapis.com/css?family=Open+Sans:400,700,400italic,700italic' rel='stylesheet' type='text/css'> <link href='@StandardWebshop.CustomCode.Razor.TimestampSource.GetSourceWithTimestamp("/Files/dist/css/stadsing-min.css")' rel='stylesheet'> <script id="CookieConsent" src="https://policy.app.cookieinformation.com/uc.js" data-culture="DA" type="text/javascript" async=""></script> @if (!string.IsNullOrEmpty(gtmHeader)) { @gtmHeader } <!--[if IE]> <style>.productlist-grid { float: left; }</style> <![endif]--> <!-- HTML5 shim and Respond.js IE8 support of HTML5 elements and media queries --> <!--[if lt IE 9]> <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script> <script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script> <![endif]--> @GetValue("Stylesheets") @GetValue("Javascripts") </head> <body data-is-desktop="@deviceIsDesktop" data-is-tablet="@deviceIsTablet" data-is-phone="@deviceIsPhone" data-is-touch="false"> <div class="alert text-center ie-only" rel="noindex">@GetString("Item.Area.IeWarningText")</div> <h1 class="hide">@GetString("Title")</h1> @if (!string.IsNullOrEmpty(gtmBody)) { @gtmBody } @*@if (GetInteger("Ecom:Checkout.CurrentStep.Index") > 0)*@ <div id="app"> @using NORRIQ.Common8.Razor @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>> @{ var PageID = GetString("DwPageID"); var GroupID = @System.Web.HttpContext.Current.Request.QueryString["groupid"]; var ProductID = @System.Web.HttpContext.Current.Request.QueryString["productid"]; var ActiveFlag = "/Admin/Images/Flags/flag_" + GetString("LongLang").Split('-').Last().ToLower() + ".png"; var userUrl = Navigation.GetUrlByNavigationTag("user"); var printLogo = GetString("Item.Area.PrintLogo"); } @if (!String.IsNullOrEmpty(GroupID)) { GroupID = "&amp;GroupID=" + GroupID; } @if (!String.IsNullOrEmpty(ProductID)) { ProductID = "&amp;ProductID=" + ProductID; } <div class="print hide visible-print text-center"> <img class="img-responsive" src="@printLogo" alt="Logo"> </div> <header class="header" id="header"> <div class="container"> <div class="row-flex"> @*<div class="col-xs-3 visible-xs"></div>*@ <div class="col-xs-9 col-md-3 nav-logo text-center"> <a href="@websiteHome" class="logo" title=""> <img class="img-responsive" src="@websiteLogo" alt="Logo"> </a> </div> <div class="col-xs-3 visible-xs burger"> <div class="header-accordion-button header-accordion-touch" role="tab" id="headingTopmenu"> <button aria-controls="basic_navigation" data-toggle="collapse" data-target="#basic_navigation" class="btn-burger"> <span class="line"></span><span class="line"></span><span class="line"></span> <span class="header-accordion-label">@Translate("Menu", "Menu")</span> </button> <button type="button" aria-label="Open main navigation" aria-controls="basic_navigation" aria-expanded="false" class="collapsed"></button> @*<button aria-controls="basic_navigation" data-toggle="collapse" data-target="#basic_navigation" class="btn-burger"> <i class="navbar-close-state pe-is-i-bars-menu pe-vaXX" aria-hidden="true"></i> <span class="header-accordion-label">@Translate("Menu", "Menu")</span> </button>*@ </div> </div> @*</div> <div class="row">*@ <div class="col-xs-12 col-md-4 col-md-offset-4XX col-lg-offset-0XX seaFix"> @using NORRIQ.Common8.Razor; @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>> @{ } <instant-search :search-result-page-id='@(NORRIQ.Common8.Razor.Navigation.GetPageIdByNavigationTag("search"))' :search-page-id='@(NORRIQ.Common8.Razor.Navigation.GetPageIdByNavigationTag("instant-search"))' :use-current-query-string="0" :show-reset="0"></instant-search> </div> <div class="col-xs-12 col-md-5 text-right header-icons"> <div class="nav-topmenu"> <ul class="list-unstyled nav nav-domain pull-right"> <li> <a class="dropdown-toggle" id="shop-language" data-toggle="dropdown" aria-haspopup="true" aria-expanded="true" href="javascript:void()"> <i class="pe-is-l-world-map-2 pe-lg"></i> @GetGlobalValue("Global:Area.Name") <i class="icon-angle-down" aria-hidden="true"></i> </a> <ul class="dropdown-menu lang-drop" aria-labelledby="shop-language"> @if (GetLoop("WebsiteLanguages").Any()) { foreach (LoopItem lang in GetLoop("WebsiteLanguages")) { var area = Dynamicweb.Content.Area.GetAreaById(lang.GetInteger("ID")); var Domain = lang.GetString("PrimaryDomain"); if (string.IsNullOrEmpty(Domain)) { Domain = area.Domain.Split(new char[0]).First(); } var Flag = "flag_" + lang.GetString("Culture").Split('-').Last().ToLower() + ".png"; <li> <a href='//@Domain'> <img src="/Admin/Images/Flags/@Flag" alt='@lang.GetString("Name")' class="img-responsive lang-select" width="16"> @lang.GetString("Name") </a> </li> } } </ul> </li> </ul> @if (Pageview.User.LoggedIn) { <div class="userin text-small pull-right"> <i class="pe-is-sp-user-3-f pe-lg"></i> <a href="@userUrl" class="username">@Pageview.User.Name</a>, <a href="/admin/public/ExtranetLogoff.aspx">@Translate("logOff", "Log ud")</a> </div> } </div> <div class="row"> <div class="col-xs-12"> @using NORRIQ.Common8.Razor; @using Dynamicweb @using Dynamicweb.eCommerce.Common; @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>> @{ var pointer = " pointer"; var cartempty = (Context.Cart == null || Context.Cart.OrderLines.Count == 0); var cartLink = ""; var userLink = ""; var qty = (Context.Cart == null || Context.Cart.Products == null) ? 0 : Base.ChkNumber(Context.Cart.get_ParentProductLineQuantityCount(Context.Cart.OrderLines)); var currency = Context.Currency.Symbol; var touch = GetGlobalValue("Global:Device.IsTablet") == "True" || GetGlobalValue("Global:Device.IsMobile") == "True"; } @if (GetGlobalValue("Global:Device.IsMobile") == "True" || GetGlobalValue("Global:Device.IsTablet") == "True") { pointer = " touch"; } @if (GetGlobalValue("Global:Device.IsDesktop") == "True" && !cartempty) { cartLink = "javascript:location.href='" + Navigation.GetUrlByNavigationTag("cart") + "'"; } @if (GetGlobalValue("Global:Device.IsDesktop") == "True" && Pageview.User.LoggedIn) { userLink = "javascript:location.href='" + Navigation.GetUrlByNavigationTag("user") + "'"; } <div class="panel-group pgV2" id="headerAccordion" role="tablist" aria-multiselectable="true"> <ul class="header-accordion-collapse"> @if (touch) { <li class="header-accordion-button" role="tab" id="headingLang"> <a class="header-accordion-link collapsed @pointer" role="button" data-toggle="collapse" data-parent="#headerAccordion" data-target="#collapseLang" aria-expanded="false" aria-controls="collapseLang"> <i class="navbar-close-state pe-is-l-world-map-2 pe-vaXX"></i> <span class="header-accordion-label">@GetGlobalValue("Global:Area.Name")</span> </a> </li> } @if (GetLoop("Item.Area.IconMenu").Any()) { foreach (var i in GetLoop("Item.Area.IconMenu")) { var title = i.GetString("Item.Area.IconMenu.Title"); var link = i.GetString("Item.Area.IconMenu.Link"); var icon = i.GetString("Item.Area.IconMenu.Icon"); var item = i.GetString("Item.Area.IconMenu.Item"); var icoLink = ""; var navigationtag = i.GetString("Item.Area.IconMenu.Navigationtag"); if (GetGlobalValue("Global:Device.IsDesktop") == "True") { icoLink = "javascript:location.href='" + i.GetString("Item.Area.IconMenu.Link") + "'"; } <li class="header-accordion-button" role="tab" id="heading@(icon)"> @if (string.IsNullOrEmpty(navigationtag)) { <a href="@link" class="header-accordion-link" title="@title"> <i class="@icon" aria-hidden="true"></i> <span class="header-accordion-label">@title</span> </a> } else { <a class="header-accordion-link collapsed @pointer" role="button" title="@title" data-toggle="collapse" data-parent="#headerAccordion" data-target="#collapse@(icon)" aria-expanded="false" aria-controls="collapse@(icon)" onclick="@icoLink"> <i class="@icon" aria-hidden="true"></i> <span class="header-accordion-label">@title</span> </a> } </li> } } <li class="header-accordion-button" role="tab" id="headingUser" data-is-logged-in='@(Pageview.User.LoggedIn ? "true" : "false")'> <a class="header-accordion-link collapsed @pointer" role="button" data-toggle="collapse" data-parent="#headerAccordion" data-target="#collapseUser" aria-expanded="false" aria-controls="collapseUser" onclick="@userLink"> @if (Pageview.User.LoggedIn) { <i class="pe-is-sp-user-3-f" aria-hidden="true"></i> <span class="header-accordion-label">@Translate("Your Account", "Your Account")</span> } else { <i class="pe-is-sp-user-3-f" aria-hidden="true"></i> <span class="header-accordion-label">@Translate("Login", "Login")</span> } </a> </li> <li class="header-accordion-button" role="tab" id="headingCart"> <a class="header-accordion-link collapsed @pointer" role="button" data-toggle="collapse" data-parent="#headerAccordion" data-target="#collapseCart" aria-expanded="false" aria-controls="collapseCart" onclick="@cartLink"> @if (cartempty) { <i class="pe-is-ec-cart-1-f" aria-hidden="true"></i> } else { <i class="pe-is-ec-cart-5-f" aria-hidden="true"></i> if (qty > 99) { <span class="cart-qty max animated bounceIn">@GetInteger("Ecom:Order.OrderLines.TotalProductQuantity")</span> } else { <span class="cart-qty animated bounceIn">@GetInteger("Ecom:Order.OrderLines.TotalProductQuantity")</span> } } <span class="header-accordion-label">@Translate("Cart", "Cart")</span> </a> </li> @*burger was here*@ </ul> <div class="clearfix"></div> @*<div class="header-accordion-panel panel panel-default"> <div id="collapseSearch" class="header-accordion-panel-collapse panel-collapse collapse" role="tabpanel" aria-labelledby="headingSearch"> <div class="panel-body clearfix" id="device-search"></div> </div> </div>*@ @if (GetLoop("Item.Area.IconMenu").Any()) { foreach (var i in GetLoop("Item.Area.IconMenu")) { var navigationtag = i.GetString("Item.Area.IconMenu.Navigationtag"); var icon = i.GetString("Item.Area.IconMenu.Icon"); var item = i.GetString("Item.Area.IconMenu.Item"); if (!string.IsNullOrEmpty(navigationtag)) { <div class="header-accordion-panel panel panel-default"> <div id="collapse@(icon)" class="header-accordion-panel-collapse panel-collapse collapse" role="tabpanel" aria-labelledby="heading@(icon)"> <div class="panel-body clearfix"> @RenderNavigation(new { Template = "iconmenu.xslt", Expandmode = "all", StartLevel = 1, EndLevel = 2, NavigationTag = @navigationtag }) </div> </div> </div> } } } <div class="header-accordion-panel panel panel-default"> <div id="collapseUser" class="header-accordion-panel-collapse panel-collapse collapse" role="tabpanel" aria-labelledby="headingUser"> <div class="panel-body"> @if (!Pageview.User.LoggedIn) { if (GetGlobalValue("Global:Page.IsProtected") != "true") { <text>@using NORRIQ.Common8.Razor; @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>> <form name="ExtUserForm" id="loginForm" method="post" class="form" role="form" action="@(System.Web.HttpContext.Current.Request.Url.PathAndQuery)"> <div class="form-group"> <label for="Username">@Translate("Username", "Username")</label> <input id="Username" name="Username" type="text" value="" class="form-control" autocomplete="off"> </div> <div class="form-group"> <label for="Password">@Translate("Password", "Password")</label> <input id="Password" name="Password" type="password" value="" class="form-control" autocomplete="off"> </div> <div class="form-group"> <div id="loginFeedback"></div> <button type="submit" role="button" class="btn btn-default btn-block" id="loginBtn"> @Translate("Login", "Login") </button> </div> <ul class="nav navbar-nav"> <li> <a href='@(Navigation.GetUrlByNavigationTag("forgot-password"))' class="forgot-password">@Translate("Forgot password", "Forgot password")</a> </li> <li> <a href='@(Navigation.GetUrlByNavigationTag("new-user"))'>@Translate("Register user", "Register user")</a> </li> </ul> </form> <script id="loginBtnDefaultTemplate" type="text/x-jsrender"> @Translate("Login", "Login") </script> <script id="loginBtnLoggingInTemplate" type="text/x-jsrender"> <i class="spinner-sm-default" aria-hidden="true"></i> @Translate("Logging in", "Logging in") </script> <script id="loginLoadingTemplate" type="text/x-jsrender"> <p class="user-login-loading"><i class="spinner-sm-default" aria-hidden="true"></i> @Translate("Logging in", "Logging in")</p> </script> <script id="loginErrorTemplate" type="text/x-jsrender"> <p class="user-login-error">@Translate("An error occured during login", "An error occured during login!")</p> </script> <script id="loginBadLoginInfoTemplate" type="text/x-jsrender"> <p class="user-login-error">@Translate("Username or password is incorrect", "Username or password is incorrect!")</p> </script></text> } else { <p> @Translate("Please login", "Please login") </p> } } else { @RenderNavigation(new { Template = "useraccount.xslt", Expandmode = "all", StartLevel = 1, EndLevel = 2, NavigationTag = "customer" }) <a href="/admin/public/extranetlogoff.aspx" class="btn btn-default btn-block btn-logout"> @Translate("Logout", "Logout") </a> } </div> </div> </div> <div class="header-accordion-panel panel panel-default"> <div id="collapseLang" class="header-accordion-panel-collapse panel-collapse collapse" role="tabpanel" aria-labelledby="headingLang"> <div class="panel-body"> <ul class="nav navbar-nav navbar-right" aria-labelledby="shop-language"> @if (GetLoop("WebsiteLanguages").Any()) { foreach (LoopItem lang in GetLoop("WebsiteLanguages")) { var area = Dynamicweb.Content.Area.GetAreaById(lang.GetInteger("ID")); var Domain = lang.GetString("PrimaryDomain"); if (string.IsNullOrEmpty(Domain)) { Domain = area.Domain.Split(new char[0]).First(); } var Flag = "flag_" + lang.GetString("Culture").Split('-').Last().ToLower() + ".png"; <li> <a href='//@Domain'> <img src="/Admin/Images/Flags/@Flag" alt='@lang.GetString("Name")' class="img-responsive lang-select" width="16"> @lang.GetString("Name") </a> </li> } } </ul> </div> </div> </div> <div class="header-accordion-panel panel panel-default"> <div id="collapseTopmenu" class="header-accordion-panel-collapse panel-collapse collapse" role="tabpanel" aria-labelledby="headingTopmenu"> <div class="panel-body" id="device-navigation"> </div> </div> </div> <div class="header-accordion-panel panel panel-default"> <div id="collapseCart" class="header-accordion-panel-collapse panel-collapse collapse" role="tabpanel" aria-labelledby="headingCart"> <div class="panel-body" id="cart-information"> @if (String.IsNullOrEmpty(GetString("Ecom:Order.IsEmpty"))) { <table class="table table-mini"> <tr> <td class="text-left">@Translate("Purchase", "Purchase"): @GetInteger("Ecom:Order.OrderLines.TotalProductQuantity")</td> <td class="text-right"><strong>@Context.Cart.Price.PriceWithoutVATFormattedNoSymbol</strong> @currency</td> </tr> <tr> <td colspan="2" class="text-right"><i>@Translate("Prices without VAT", "Prices without VAT")</i></td> </tr> </table> <a href='@Navigation.GetUrlByNavigationTag("cart")' class="btn btn-primary btn-block">@Translate("Show cart", "Show cart")</a> } else { <p> @Translate("Your cart is empty", "Your cart is empty") </p> } </div> <script type="text/x-jsrender" id="cart-information-template-show" v-pre=""> <table class="table table-mini"> <tr> <td class="text-left">@Translate("Purchase", "Purchase"): {{:Quantity}}</td> <td class="text-right"><strong>{{:Price.PriceWithoutVATFormattedNoSymbol}}</strong></td> </tr> <tr> <td colspan="2" class="text-right"><i>@Translate("Prices without VAT", "Prices without VAT")</i></td> </tr> </table> <a href="@Navigation.GetUrlByNavigationTag("cart")" class="btn btn-primary btn-block">@Translate("Show cart", "Show cart")</a> </script> <script type="text/x-jsrender" id="cart-information-template-empty" v-pre=""> <p> @Translate("Your cart is empty", "Your cart is empty") </p> </script> </div> </div> </div> </div> </div> </div> </div> </div> <div class="center-header"> <div class="container"> <nav id="basic_navigation" class="center_header-navigation collapse"> @RenderNavigation(new { template = "megamenu-2020.xslt", expandmode = "all", startlevel = 1, endlevel = 5 }) </nav> </div> </div> </header> @using Dynamicweb.eCommerce.Products @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>> @{ var PageType = GetString("Item.PageType"); var ecomquery = @System.Web.HttpContext.Current.Request.QueryString["ecomQuery"]; var prodid = @System.Web.HttpContext.Current.Request.QueryString["productid"]; var groupid = @System.Web.HttpContext.Current.Request.QueryString["groupid"]; //if user is not allowed to do an action, then redirect users to this page by adding the 'restrict=true' in querystring var isNotAllowedToBuy = @System.Web.HttpContext.Current.Request.QueryString["restrict"]; var scopeIsOrderingList = NORRIQ.Common8.Razor.Navigation.GetPageIdByNavigationTag("your-sortiment").Equals(Pageview.ID) || NORRIQ.Common8.Razor.Navigation.GetPageIdByNavigationTag("orderinglist").Equals(Pageview.ID) || NORRIQ.Common8.Razor.Navigation.GetPageIdByNavigationTag("favoritelist").Equals(Pageview.ID); var scopeIsYourSortiment = NORRIQ.Common8.Razor.Navigation.GetPageIdByNavigationTag("your-sortiment").Equals(Pageview.ID); var scopeIsFavoriteList = NORRIQ.Common8.Razor.Navigation.GetPageIdByNavigationTag("favoritelist").Equals(Pageview.ID); var linkToCustomerPortal = NORRIQ.Common8.Razor.Navigation.GetUrlByNavigationTag("user-login"); bool isCustomerView = System.Web.HttpContext.Current.Request.RawUrl.Contains(linkToCustomerPortal); } <div> @if (Pageview.User.LoggedIn) { <favorite-list-menu></favorite-list-menu> } </div> <ordering-list-request-product-notifcation render='@(isCustomerView)'></ordering-list-request-product-notifcation> @if ((GetGlobalValue("Global:Page.IsProtected") == "true" && !Pageview.User.LoggedIn) || (!Pageview.User.LoggedIn && !string.IsNullOrEmpty(isNotAllowedToBuy))) { <main class="page-content" data-page-type="protected"> <div class="container"> <h1 class="title-styled" data-align="center"> @GetString("Item.Area.RestrictedTitle") </h1> <div class="title-text-styled" data-align="center"> @GetString("Item.Area.RestrictedHeaderTxt") </div> <div class="row-flex"> @if (!String.IsNullOrEmpty(GetString("Item.Area.NewUserText"))) { <div class="col-xs-12 col-sm-6 col-md-5 col-md-offset-1" data-display="flex"> <div data-align="left" data-content-border="boxed" data-content-type="box"> @GetString("Item.Area.LoginText") @using NORRIQ.Common8.Razor; @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>> <form name="ExtUserForm" id="loginForm" method="post" class="form" role="form" action="@(System.Web.HttpContext.Current.Request.Url.PathAndQuery)"> <div class="form-group"> <label for="Username">@Translate("Username", "Username")</label> <input id="Username" name="Username" type="text" value="" class="form-control" autocomplete="off"> </div> <div class="form-group"> <label for="Password">@Translate("Password", "Password")</label> <input id="Password" name="Password" type="password" value="" class="form-control" autocomplete="off"> </div> <div id="loginFeedback"></div> <a href='@Navigation.GetUrlByNavigationTag("forgot-password")' class="forgot-password">@Translate("Forgot password", "Forgot password")</a> <button type="submit" role="button" class="btn btn-default" id="loginBtn" data-float="right"> @Translate("Login", "Login") </button> </form> <script id="loginBtnDefaultTemplate" type="text/x-jsrender"> @Translate("Login", "Login") </script> <script id="loginBtnLoggingInTemplate" type="text/x-jsrender"> <i class="spinner-sm-default" aria-hidden="true"></i> @Translate("Logging in", "Logging in") </script> <script id="loginLoadingTemplate" type="text/x-jsrender"> <p class="user-login-loading"><i class="spinner-sm-default" aria-hidden="true"></i> @Translate("Logging in", "Logging in")</p> </script> <script id="loginErrorTemplate" type="text/x-jsrender"> <p class="user-login-error">@Translate("An error occured during login", "An error occured during login!")</p> </script> <script id="loginBadLoginInfoTemplate" type="text/x-jsrender"> <p class="user-login-error">@Translate("Username or password is incorrect", "Username or password is incorrect!")</p> </script> </div> </div> <div class="col-xs-12 col-sm-6 col-md-5" data-display="flex"> <div data-align="left" data-content-border="boxed" data-content-type="box"> @GetString("Item.Area.NewUserText") </div> </div> } else { <div class="col-xs-12 col-sm-6 col-sm-offset-3 col-md-4 col-md-offset-4" data-display="flex"> <div data-align="left" data-content-border="boxed" data-content-type="box"> @GetString("Item.Area.LoginText") @using NORRIQ.Common8.Razor; @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>> <form name="ExtUserForm" id="loginForm" method="post" class="form" role="form" action="@(System.Web.HttpContext.Current.Request.Url.PathAndQuery)"> <div class="form-group"> <label for="Username">@Translate("Username", "Username")</label> <input id="Username" name="Username" type="text" value="" class="form-control" autocomplete="off"> </div> <div class="form-group"> <label for="Password">@Translate("Password", "Password")</label> <input id="Password" name="Password" type="password" value="" class="form-control" autocomplete="off"> </div> <div id="loginFeedback"></div> <a href='@Navigation.GetUrlByNavigationTag("forgot-password")' class="forgot-password">@Translate("Forgot password", "Forgot password")</a> <button type="submit" role="button" class="btn btn-default" id="loginBtn" data-float="right"> @Translate("Login", "Login") </button> </form> <script id="loginBtnDefaultTemplate" type="text/x-jsrender"> @Translate("Login", "Login") </script> <script id="loginBtnLoggingInTemplate" type="text/x-jsrender"> <i class="spinner-sm-default" aria-hidden="true"></i> @Translate("Logging in", "Logging in") </script> <script id="loginLoadingTemplate" type="text/x-jsrender"> <p class="user-login-loading"><i class="spinner-sm-default" aria-hidden="true"></i> @Translate("Logging in", "Logging in")</p> </script> <script id="loginErrorTemplate" type="text/x-jsrender"> <p class="user-login-error">@Translate("An error occured during login", "An error occured during login!")</p> </script> <script id="loginBadLoginInfoTemplate" type="text/x-jsrender"> <p class="user-login-error">@Translate("Username or password is incorrect", "Username or password is incorrect!")</p> </script> </div> </div> } </div> </div> </main> } else { <span id="scope_is_favoritelist" style="display: none; visibility: hidden">@(scopeIsFavoriteList ? 1 : 0)</span> <span id="scope_is_orderinglist" style="display: none; visibility: hidden">@(scopeIsOrderingList ? 1 : 0)</span> <span id="scope_is_yoursortiment" style="display: none; visibility: hidden">@(scopeIsYourSortiment ? 1 : 0)</span> if (PageType == "default" || PageType == "ecom" && String.IsNullOrEmpty(prodid)) { <nav id="deviceSidebar" class="navbar-devices clearfix"></nav> } @RenderBreadcrumb() <main class="page-content" data-page-type="@PageType"> @*<div class="container"> <p> <a href="#" class="btn btn-default">Testknap</a> <a href="#" class="btn btn-primary">Testknap</a> <a href="#" class="btn btn-default btn-lg">Testknap</a> <a href="#" class="btn btn-primary btn-lg">Testknap</a> </p> </div>*@ @using System.CodeDom @using Dynamicweb.Rendering @using NLWI.Platforms.Dynamicweb8.Specs.ViewModels @using NORRIQ.Common8.Context @using NORRIQ.Common8.Factory @using StandardWebshop.CustomCode.ColorLookup @using StandardWebshop.CustomCode.Razor @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>> <component-wrapper inline-template=""> <div> @* debugging span *@ @*<ul style="background: red; width: 300px; height: 300px;"> <li v-for="obj in listOfComponents">{{obj}}</li> </ul>*@ <component v-for="key in listOfComponents" v-bind:is="key" :key="key"></component> </div> </component-wrapper> @if (PageType == "default") { <div class="container"> <div class="row-flex"> <div class="col-xs-12 col-sm-12 col-md-3" data-content="sidebar" id="desktopSidebar"> @RenderNavigation() @RenderSidebar() </div> <div class="col-xs-12 col-sm-12 col-md-9 pull-right"> @RenderHeader() @RenderPrimary() @RenderSecondary() @RenderTertiary() </div> </div> </div> } else if (PageType == "ecom") { <div class="container"> @RenderPrimary() @RenderSecondary() @RenderTertiary() </div> } else if (PageType == "boxed") { <div class="container"> @RenderHeader() @RenderPrimary() @RenderSecondary() @RenderTertiary() </div> } else if (PageType == "fluid") { @RenderHeader() @RenderPrimary() @RenderSecondary() @RenderTertiary() } else if (PageType == "cart") { <div class="container"> @RenderHeader() @RenderPrimary() @if (GetString("Ecom:Checkout.CurrentStep.Index") == "0") { @RenderSecondary() } </div> } else if (PageType == "frontpage") { <div class="container"> @RenderPrimary() @RenderSecondary() @RenderTertiary() </div> } else if (PageType == "orderinglist") { var listname = (System.Web.HttpContext.Current.Request.QueryString["listname"]); <div class="container"> <div class="row-flex"> <div class="col-xs-12 col-sm-12 col-md-3" data-content="sidebar" id="desktopSidebar"> @RenderNavigation() @RenderSidebar() </div> <div class="col-xs-12 col-sm-12 col-md-9 pull-right"> @RenderHeader() <h3 id="orderinglistheadername">@listname</h3> @RenderPrimary() @RenderSecondary() @RenderTertiary() </div> </div> </div> } </main> } @* Default content for pages *@ @helper RenderPrimary() { if (!String.IsNullOrEmpty(GetString("DwContent(Primary)"))) { if (GetString("Item.PageType") == "fluid") { <div class="container-fluid"> <div class="row-flex"> @GetString("DwContent(Primary)") </div> </div> } else { <div class="row-flex"> @GetValue("DwContent(Primary)") </div> } } } @helper RenderSecondary() { if (!String.IsNullOrEmpty(GetString("DwContent(Secondary)"))) { if (GetString("Item.PageType") == "fluid") { <div class="container-fluid"> <div class="row-flex"> @GetString("DwContent(Secondary)") </div> </div> } else { <div class="row-flex"> @GetValue("DwContent(Secondary)") </div> } } } @helper RenderTertiary() { if (!String.IsNullOrEmpty(GetString("DwContent(Tertiary)"))) { <div class="row-flex"> @GetValue("DwContent(Tertiary)") </div> } } @helper RenderSidebar() { if (!String.IsNullOrEmpty(GetString("DwContent(Sidebar)"))) { <div class="row-flex"> @GetValue("DwContent(Sidebar)") </div> } } @helper RenderNavigation() { @RenderNavigation(new { Template = "submenu.xslt", Expandmode = "all", StartLevel = 1, EndLevel = 4 }) } @helper RenderBreadcrumb() { if (!GetBoolean("Item.Page.HideBreadcrumb")) { <nav class="clearfix breadcrumb-container"> <div class="container"> <ol class="breadcrumb"> @RenderNavigation(new { Template = "breadcrumb.xslt", StartLevel = 1, EndLevel = 3 }) @{ var productId = System.Web.HttpContext.Current.Request.QueryString["ProductID"];} @if (productId != null) { var product = Product.GetProductByID(productId); if (product != null) { <li><span class="disabled">@(product.Name)</span></li> } } </ol> </div> </nav> } } @helper RenderHeader() { if (GetString("Item.TitleStyle") != "hidden") { var TitleStyle = GetString("Item.TitleStyle"); <header> <h1 class="@TitleStyle"> @if (!String.IsNullOrEmpty(GetString("Page:Ecom.ProductList.GroupName"))) { @GetString("Page:Ecom.ProductList.GroupName") } else if (!String.IsNullOrEmpty(GetString("Ecom:Checkout.CurrentStep.Name"))) { @GetString("Ecom:Checkout.CurrentStep.Name") } else { @GetString("Item.Title") } </h1> </header> } } </div> <footer class="footer clearfix"> <div class="container"> @if (GetString("Item.Area.FooterLayout") == "newsletter") { <text>@inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>> @{ var NewsletterID = 0; Int32.TryParse(GetString("Item.Area.NewsletterIdFL1").Split('#').Last(), out NewsletterID); } <div class="row"> <div class="col-xs-12 col-sm-5 col-md-4" data-float="right"> <div class="newsletter-footer"> <div class="row"> @RenderParagraphContent(NewsletterID) </div> </div> </div> <div class="col-xs-12 col-sm-7 col-md-7"> <div class="row"> @foreach (var fl1 in GetLoop("Item.Area.FooterBlocksFL1")) { var NavigationTag = fl1.GetString("Item.Area.FooterBlocksFL1.Navigationtag"); var FooterBlockWidth = fl1.GetString("Item.Area.FooterBlocksFL1.WidthMobile") + " " + fl1.GetString("Item.Area.FooterBlocksFL1.Width"); var FooterBlockAlign = fl1.GetString("Item.Area.FooterBlocksFL1.ContentAlign"); var FooterBlockTitleStyle = fl1.GetString("Item.Area.FooterBlocksFL1.TitleStyle"); var TitleSize = fl1.GetString("Item.Area.FooterBlocksFL1.TitleSize"); <div class="@FooterBlockWidth footer-widget" data-align="@FooterBlockAlign"> @if (fl1.GetString("Item.Area.FooterBlocksFL1.TitleStyle") != "hidden") { if (TitleSize == "h1") { <h1 class="@FooterBlockTitleStyle"> @fl1.GetString("Item.Area.FooterBlocksFL1.Title") </h1> } else if (TitleSize == "h2") { <h2 class="@FooterBlockTitleStyle"> @fl1.GetString("Item.Area.FooterBlocksFL1.Title") </h2> } else { <h3 class="@FooterBlockTitleStyle"> @fl1.GetString("Item.Area.FooterBlocksFL1.Title") </h3> } } @if (fl1.GetString("Item.Area.FooterBlocksFL1.ContentLayout") == "navigation") { @RenderNavigation(new { Template = "meta.xslt", Expandmode = "all", StartLevel = 1, EndLevel = 2, NavigationTag = NavigationTag }) } else { @fl1.GetString("Item.Area.FooterBlocksFL1.Text") } </div> } </div> </div> </div> </text> } else if (GetString("Item.Area.FooterLayout") == "default" || String.IsNullOrEmpty("Item.Area.FooterLayout")) { <text>@inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>> @{ //var WidgetCount = GetLoop("Item.Area.WidgetsFL2").Count; //var WidgetWidth = ""; //if (WidgetCount == 2) //{ // WidgetWidth = "col-xs-12 col-sm-6"; //} //else if (WidgetCount == 3) //{ // WidgetWidth = "col-xs-12 col-sm-4"; //} //else if (WidgetCount == 4) //{ // WidgetWidth = "col-xs-12 col-sm-3"; //} //else //{ // WidgetWidth = "col-xs-12"; //} } <div class="row-flex"> @foreach (var widget in GetLoop("Item.Area.WidgetsFL2")) { var WidgetWidth = widget.GetString("Item.Area.WidgetsFL2.Width"); var NavigationTag = widget.GetString("Item.Area.WidgetsFL2.Navigationtag"); var WidgetAlign = widget.GetString("Item.Area.WidgetsFL2.ContentAlign"); var WidgetTitleStyle = widget.GetString("Item.Area.WidgetsFL2.TitleStyle"); var TitleSize = widget.GetString("Item.Area.WidgetsFL2.TitleSize"); var ParagraphID = 0; Int32.TryParse(widget.GetString("Item.Area.WidgetsFL2.ParagraphLink").Split('#').Last(), out ParagraphID); <div class="@WidgetWidth text-@WidgetAlign"> @*<div class="footer-widget" data-align="@WidgetAlign" data-display="flex"> </div>*@ @if (widget.GetString("Item.TitleStyle") != "hidden") { if (TitleSize == "h1") { <h1 class="@WidgetTitleStyle"> @widget.GetString("Item.Area.WidgetsFL2.Title") </h1> } else if (TitleSize == "h2") { <h2 class="@WidgetTitleStyle"> @widget.GetString("Item.Area.WidgetsFL2.Title") </h2> } else { <h3 class="@WidgetTitleStyle"> @widget.GetString("Item.Area.WidgetsFL2.Title") </h3> } } @if (widget.GetString("Item.Area.WidgetsFL2.ContentLayout") == "navigation") { @RenderNavigation(new { Template = "meta2.xslt", Expandmode = "all", StartLevel = 1, EndLevel = 2, NavigationTag = NavigationTag }) } else { @widget.GetString("Item.Area.WidgetsFL2.Text") } @if (!String.IsNullOrEmpty(widget.GetString("Item.Area.WidgetsFL2.ParagraphLink"))) { @RenderParagraphContent(ParagraphID) } </div> } </div> </text> } <p class="copy text-center"> &copy; @GetGlobalValue("Global:Server.Date.Year") @GetString("Item.Area.Copy") </p> @if (!String.IsNullOrEmpty(GetGlobalValue("Global:OMC.Visitor.PrimaryProfile.Name"))) { <p>PrimaryProfile: @GetGlobalValue("Global:OMC.Visitor.PrimaryProfile.Name") (@GetGlobalValue("Global:OMC.Visitor.PrimaryProfile.Points"))</p> } @if (!String.IsNullOrEmpty(GetGlobalValue("Global:OMC.Visitor.SecondaryProfile.Name"))) { <p>SecondaryProfile: @GetGlobalValue("Global:OMC.Visitor.SecondaryProfile.Name") (@GetGlobalValue("Global:OMC.Visitor.SecondaryProfile.Points"))</p> } </div> </footer> @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>> @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>> <script type="text/x-template" id="modal-component-template"> <div> <div style="display:none"> <button :id="'modalBtn'+uniqueId" type="button" data-toggle="modal" :data-target="'#modal'+uniqueId">Launch modal</button> </div> <div :id="'modal'+uniqueId" class="modal fade" tabindex="-1" role="dialog"> <div class="modal-dialog" role="document"> <div class="modal-content"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button> <slot name="title" v-bind:obj="obj"> <h4 class="modal-title">default title</h4> </slot> </div> <div class="modal-body"> <slot v-if="!isAccepted" name="msg" v-bind:obj="obj"> <p>message to user</p> </slot> <slot v-if="isAccepted" name="msg-is-accepted"> <p>@Translate("confirm_accepted", "Operation was successfully done")</p> </slot> <slot v-if="!isAccepted && error" name="msg-error"> <p>@Translate("confirm_error", "An error occurred, please try again.")</p> </slot> </div> <div class="modal-footer"> <button type="button" class="btn btn-default" data-dismiss="modal" @@click="emitCancel($event, obj)">@Translate("modal_close", "close")</button> <button v-if="!isAccepted" type="button" class="btn btn-primary" @@click="emitAccept($event,obj)">@Translate("modal_savechanges", "save changes")</button> </div> </div><!-- /.modal-content --> </div><!-- /.modal-dialog --> </div><!-- /.modal --> </div> </script> @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>> <script type="text/x-template" id="alert-success-component-template"> <div> <alert-component class="alert-success"> <template v-slot:header="slotProps"> <h3>@Translate("Alert_Success_Prefix", "Success - "){{slotProps.obj.header}}</h3> </template> <template v-slot:msg="slotProps"> <b>{{slotProps.obj.message}}</b> </template> </alert-component> </div> </script> <script type="text/x-template" id="alert-warning-component-template"> <div> <alert-component class="custom-alert alert-warning"> <template v-slot:header="slotProps"> <h3>{{slotProps.obj.header}}</h3> </template> <template v-slot:msg="slotProps"> <b>{{slotProps.obj.message}}</b> </template> </alert-component> </div> </script> <script type="text/x-template" id="alert-component-template"> <div class="custom-alert"> <a class="close" @@click.prevent="close">&times;</a> <div class="custom-alert-header"> <slot name="header" v-bind:obj="obj"> <h3>Alert Header</h3> </slot> </div> <div class="custom-alert-msg"> <slot name="msg" v-bind:obj="obj"> <p>Alert Message</p> </slot> </div> </div> </script> @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>> @{ var searchLabel = Translate("Search products", "Hvad søger du?"); var searchQuery = @System.Web.HttpContext.Current.Request.QueryString["ecomQuery"]; var translateInstantSearch = Translate("InstantSearch_"); } <script type="text/x-template" id="instant-search-template" v-pre=""> <div class="instantsearch v2 navbar-form navbar-right"> <form id="instant-search-form" ref="formref" action="/Default.aspx" method="get" novalidate v-autoClose="closeFoldOut"> <label for="searchTerm" v-if="showReset"> @searchLabel </label> <div class="input-group form-group"> <input ref="searchqueryRef" class="form-control" type="search" placeholder="@searchLabel" id="searchquery" name="eComQuery" autocomplete="off" v-on:input="inputChanged" v-on:focus="foldActive = 'active'" v-on:keyup.enter="onSubmit" data-tabindex="0" value="@searchQuery"> <label for="searchTerm" class="sr-only"> @searchLabel </label> <input type="hidden" value="@searchQuery" id="searchstring"> <input type="hidden" name="ID" :value="searchResultPageId" /> @* append current url if configured to true *@ <input type="hidden" v-for="pair in getCurrentQueryString()" :name="pair[0]" :value="pair[1]" /> <span class="input-group-btn"> <button type="submit" id="instantSearchBtn" class="btn btn-transp js-search-btn" :disabled="isDisabled"> @*<i id="instantSearchIcon" class="icon-search" aria-hidden="true"></i>*@ <i class="pe-is-i-search pe-lg pe-va"></i><span class="sr-only">@Translate("Search", "Search")</span> </button> <template v-if="showReset"> <button type="button" id="instantSearchBtn" class="btn btn-default js-search-btn" v-on:click="resetSearchQuery()"> <span>@Translate("Search_clear_btn", "Nulstil")</span> </button> </template> </span> </div> <div class="instantsearch-collapse collapse" v-bind:class="{ in: foldActive }"> <div class="instantsearch-results"> <template v-if="searchQuery == ''"> @Translate(translateInstantSearch + "Type something", "Indtast for at søge") </template> <template v-else-if="queryLoading"> <div class="basic_listview-loading"> <span class="spinner-sm-default"></span><span>@Translate("Search_Loading", " Søger...")</span> </div> </template> <template v-else-if="productList == null || productList.length == 0"> @Translate(translateInstantSearch + "Empty search...", "Der blev ikke fundet varer...") </template> <template v-else> <table class="table table-condensed productlist-table insta-table"> <tbody> <tr v-for="product in productList"> <td class="productlist-table-thumb text-center" width="50"> <a class="productlist-table-name" :href="getProductUrl(product)"> <img :src="'/Admin/Public/GetImage.ashx?Image='+product.ThumbnailImageName+'&amp;Width=40&amp;Height=40&amp;Crop=5&amp;Compression=85'" class="img-responsive" :alt="product.ThumbnailImageAltText" /> </a> </td> <td class="productlist-table-product"> <a class="productlist-table-name" :href="getProductUrl(product)"> {{product.Name}} <br /><span>@Translate("Product Number", "Product Number"): {{product.Number}} | @Translate("Price from", "Price from"): {{product.UnitPrice}}</span> </a> </td> </tr> </tbody> </table> <div class="productlist-result"> <a v-if="moreResults" v-on:click.prevent="onSubmit" href="#">@Translate(translateInstantSearch + "See all products", "Se alle varer") ({{numberOfResults}})</a> </div> </template> </div> </div> </form> </div> </script> @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>> @{ //This template contains everything for the favoritelist items. string favoriteListPrefix = "FavoriteList "; } <span id="favoritelistitem_confirm_delete_on_all" style="display: none; visibility: hidden">@Translate(favoriteListPrefix + "_confirm_delete_all", "Er du sikker på at du vil fjerne produktet {0} fra alle lister ?")</span> <script type="text/x-template" id="favorite-item-template"> <div class="basic_favoriteitem" v-if="loaded"> <template v-if="isYourSortiment"> <button type="button" class="btn btn-clear btn-ico" v-on:click="removeProduct($event)"> <template v-if="showFavoriteIcon"> <span class=" productlist-grid-favorite" title="@Translate(favoriteListPrefix+"RemoveFromAllLists", "Fjern varen fra alle lister" )"><span class="pe-lg pe-is-e-trash-2-f"></span></span> </template> </button> </template> <template v-if="isYourSortiment"> <button type="button" v-bind:class="{active : showFavoriteIcon, inactive: !showFavoriteIcon}" class="btn btn-clear btn-ico" title="@Translate(favoriteListPrefix+"Add", "Tilføj eller fjern varen" )" v-on:click="toggleFavoriteListMenu($event)"> @* if your-soritment/orderinglist is selected - differ the presentation *@ <template v-if="showFavoriteIcon"> <span class=" productlist-grid-favorite"><span class="pe-lg pe-is-e-eye-1"></span></span> </template> <template v-else> <span class=" productlist-grid-favorite"><span class="pe-lg pe-is-e-eye-slashed"></span></span> </template> </button> </template> <template v-else> <button type="button" v-bind:class="{active : showFavoriteIcon, inactive: !showFavoriteIcon}" class="btn btn-clear-default btn-ico" title="@Translate(favoriteListPrefix+"Add", "Tilføj eller fjern varen" )" v-on:click="toggleFavoriteListMenu($event)"> <template v-if="showFavoriteIcon"> <span class=" productlist-grid-favorite"><span class="icon-favorite-added"></span></span> </template> <template v-else> <span class=" productlist-grid-favorite"><span class="icon-favorite"></span></span> </template> </button> </template> </div> </script> <script type="text/x-template" id="favorite-list-menu-template" v-pre=""> <div v-bind:class="{ active: showMenu }" id="basic_favoritelist" v-autoClose="closeFoldOut"> <div class="fav-inwrap"> <template v-if="loading"> <div class="loading"> <span class="spinner-xl-default"></span> </div> </template> <template v-if="!loading"> <h5>@Translate(favoriteListPrefix + "menu_Header", "Bestillingslister")</h5> <p class="desc"> @Translate(favoriteListPrefix + "menu_addRemove_text", "Tilføj eller fjern varen fra:") </p> <template v-for="favoriteList in allFavoriteLists"> <div class="form-check"> <input type="checkbox" :id="'fav-' + favoriteList.id" :value="favoriteList.id" :checked="favoriteList.isActive" v-on:change="toggleItem($event, favoriteList.id)" class="form-check-input" /> <label :for="'fav-' + favoriteList.id" class="form-check-label"> {{favoriteList.name}} </label> </div> </template> <div class="form-check"> <input type="checkbox" id="addNewListCheckbox" v-model="addNewList" class="form-check-input" /> <label for="addNewListCheckbox" class="form-check-label"> @Translate(favoriteListPrefix + "newlist_text", "Ny bestillingsliste") </label> </div> <div v-if="addNewList" class="input-group"> <input type="text" id="addNewListNameInput" v-model="addNewListNameInput" class="form-control new-list-name-input" v-on:keyup.enter="saveAsNewList" /> <div class="input-group-btn"> <button v-on:click="saveAsNewList" class="btn btn-default">@Translate(favoriteListPrefix + "Gem", "Gem")</button> </div> </div> </template> </div> </div> </script> @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>> @{ var translateOrderderingList = "Orderinglist_"; } <span id="orderinglistCustomerAgreement_confirm_remove" style="display: none; visibility: hidden">@Translate(translateOrderderingList + "customeragreement_confirm_remove", "Er du sikker på at du vil fjerne kundeaftale produktet. DU kan tilføje produktet igen fra webshoppen.")</span> <span id="orderinglist_confirm_delete" style="display: none; visibility: hidden">@Translate(translateOrderderingList + "confirm_delete", "Er du sikker på at du vil slettet produkt {0} fra din bestillingsliste?")</span> <script type="text/x-template" id="ordering-list-item-template"> <div class="basic_favoriteitem" v-if="loaded"> <template v-if="showIsDeleted"> <button v-if="showDelete" type="button" class="btn btn-clear btn-ico" v-bind:class="{active : !isDeleted, inactive: isDeleted}" v-on:click="toggleDelete($event)"> <template v-if="!isDeleted"> <span class="productlist-grid-favorite" title="@Translate(translateOrderderingList+"ProductIsShown", "Vises i dit sortiment")"><span class="pe-lg pe-is-e-pencil-4"></span></span></span> </template> <template v-else> <span class="productlist-grid-favorite" title="@Translate(translateOrderderingList+"ProductIsDeleted", "Gemt i dit sortement")"><span class="pe-lg pe-is-e-pencil-4" style="color:red;"></span></span> </template> </button> </template> <template v-if="showIsAvailable"> <button v-if="show" type="button" class="btn btn-clear btn-ico" v-bind:class="{active : isAvailable, inactive: !isAvailable}" v-on:click="toggleProductForAll($event)"> <template v-if="isAvailable"> <span class="productlist-grid-favorite" title="@Translate(translateOrderderingList+"ProductIsAvailable", "Tilgængelig for alle" )"><span class="pe-lg pe-is-e-eye-1"></span></span> </template> <template v-else> <span class="productlist-grid-favorite" title="@Translate(translateOrderderingList+"ProductIsNotAvailable", "Skjult for alle" )"><span class="pe-lg pe-is-e-eye-slashed"></span></span> </template> </button> </template> @* Deactivate feature "isActive" - as this a to complex model currently*@ @*<template v-if="isAvailable"> <button v-if="show" type="button" class="btn btn-clear btn-ico active" v-bind:class="{active : isActive, inactive: !isActive}" v-on:click="toggleProduct($event)"> <template v-if="isActive"> <span class="productlist-grid-favorite" title="@Translate(translateOrderderingList+"ProductIsActivated", "Aktiveret på alle bestillingslister")"><span class="pe-lg pe-is-a-clipboard-check-f"></span></span> </template> <template v-else> <span class="productlist-grid-favorite" title="@Translate(translateOrderderingList+"ProductIsDeactivated", "Deaktiveret på alle bestillingslister")"><span class="pe-lg pe-is-a-clipboard-no-f"></span></span> </template> </button> </template>*@ </div> </script> <script type="text/x-template" id="ordering-list-add-remove-item-template"> <div class="basic_favoriteitem" v-if="loaded && show"> <button type="button" class="btn btn-clear btn-ico" v-on:click="toggleProduct($event)"> <template v-if="canAdd"> <span class="productlist-grid-favorite" title="@Translate(translateOrderderingList+"AddProduct", "Tilføj til dit sortiment")"><span class="pe-lg pe-is-i-plus-circle-f"></span></span> </template> <template v-else> <span class="productlist-grid-favorite" title="@Translate(translateOrderderingList+"RemoveProduct", "Fjern fra dit sortiment")"><span class="pe-lg pe-is-e-trash-2-f"></span></span> </template> </button> </div> </script> @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>> @{ var translateCustomerAgreement = "CustomerAgreement_"; } <script type="text/x-template" id="customer-agreement-item-template"> <div class="basic_favoriteitem" v-if="loaded"> <template v-if="exists"> <span class="productlist-grid-favorite" title="@Translate(translateCustomerAgreement+"_existss", "Kundeaftale" )"><span class="pe-is-sp-star-2-f"></span></span> </template> </div> </script> @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>> @{ } <script type="text/x-template" id="ordering-list-selector-template" v-pre=""> <div class="basic_favoriteitem" v-if="isEmployee && lists"> <h3>@Translate("orderinglist_selector_header_text", "Vælg bestillingsliste")</h3> <template v-if="loading"> <div class="loading"> <span class="spinner-sm-default"></span> <span>@Translate("OrderingList_Selector_loading", "Indlæser liste informationer..")</span> </div> </template> <template v-if="loadingSetSelected"> <div class="loading"> <span class="spinner-sm-default"></span> <span>@Translate("OrderingList_Selector_loadingScope", "Vent venligst mens vi indlæser den valgte liste..")</span> </div> </template> <template v-if="!loading || !loadingSetSelected"> <multiselect v-model="selected" @@select="onSelect" :options="options" :custom-label="customLabel" placeholder="Select one" label="name" track-by="id"></multiselect> <slot name="is-restricted"> </slot> </template> <slot v-bind:selected="selected" v-if="!loading && selected"></slot> <hr /> </div> </script> @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>> @{ } <script type="text/x-template" id="ordering-list-filter-template" v-pre=""> <div class="orderinglist_filter"> <div v-show="show"> <label for="orderinglistfiltershowfrommasterlist"> <input id="orderinglistfiltershowfrommasterlist" type="checkbox" v-model="filter.showFromMasterList" v-on:change="filterChanged(filter)" /> <i class="pe-is-i-info-circle-f pe-lg text-primary" aria-hidden="true" title="@Translate("Orderinglist_filter_showfrommasterlist_explained", "Her har du mulighed for at..")"></i> </label> </div> </div> </script> @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>> <span id="orderinglistrequestsproduct_link_ref_url" style="display: none; visibility: hidden">@NORRIQ.Common8.Razor.Navigation.GetUrlByNavigationTag("product-requests")</span> <script type="text/x-template" id="ordering-list-request-product-notification-template" v-pre=""> <div> <div ref="orderingrequestproductnotification" class="orderinglistrequestproduct-notification"> <div v-if="show" class="notification-wrapper"> @*<svg class="icon-3x notification-bell" aria-hidden="true" focusable="false" data-prefix="fas" data-icon="bell" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"> <path fill="currentColor" d="M224 512c35.32 0 63.97-28.65 63.97-64H160.03c0 35.35 28.65 64 63.97 64zm215.39-149.71c-19.32-20.76-55.47-51.99-55.47-154.29 0-77.7-54.48-139.9-127.94-155.16V32c0-17.67-14.32-32-31.98-32s-31.98 14.33-31.98 32v20.84C118.56 68.1 64.08 130.3 64.08 208c0 102.3-36.15 133.53-55.47 154.29-6 6.45-8.66 14.16-8.61 21.71.11 16.4 12.98 32 32.1 32h383.8c19.12 0 32-15.6 32.1-32 .05-7.55-2.61-15.27-8.61-21.71z" class=""></path> </svg>*@ <span class="notification-counter">{{count}}</span> </div> </div> </div> </script> @* https://blog.revathskumar.com/2018/12/vue-using-html5-validations.html https://pqina.nl/blog/async-form-posts-with-a-couple-lines-of-vanilla-javascript/ *@ @inherits Dynamicweb.Rendering.RazorTemplateBase<Dynamicweb.Rendering.RazorTemplateModel<Dynamicweb.Rendering.Template>> <span style="display: none; visibility: hidden" data-translation-form-is-not-valid="">@Translate("AsyncFormIsNotValid", "Form is not valid - Please fill required fields.")</span> <span style="display: none; visibility: hidden" data-translation-form-has-errors="">@Translate("AsyncFormError", "Error - contact administrator.")</span> <script type="text/x-template" id="formula-wrapper-template" v-pre=""> <div class="formula-wrapper"> <template v-if="loading"> <div class="loading"> <span class="spinner-xl-default"></span> </div> </template> <div ref="html"> <component :is="html"></component> </div> <template v-show="false"> <span ref="postingspinner" v-show="isPosting" class="spinner-sm-default"></span> </template> <re-captcha v-if="useReCaptcha" ref="recaptchacomponent"></re-captcha> </div> </script> <script type="text/x-template" id="re-captcha-template" v-pre=""> <input type="hidden" v-model="recaptchaResponse" name="g-Recaptcha-Response" required /> </script> <script type="text/x-template" id="user-login-template"> <div> {{isLoggedIn}} </div> </script> <script type="text/x-template" id="sheet-field-template"> <div> <div v-if="isInput"> <input v-show="isInput" class="form-control" type="number" v-model="syncedValue" :disabled="isDisabled" /> </div> <div v-if="isLabel"> <label v-show="isLabel"> {{ fixedValue }}</label> </div> </div> </script> <script type="text/x-template" id="delivery-address-template"> <div class="form-group"> <multiselect ref="vueSelect" class="from-control" :searchable=true :custom-label="getOptionLabel" v-model="selected" :options="getOptions()" @@input="setSelected" @@search:focus="test" track-by="id" placeholder="@Translate("deliveryAddress_placeholder", "Vælg levering adresse")"> <template v-slot:caret="props" :toggle="toggle"> <div class="custom-vue-select-caret"> <span @@mousedown.prevent.stop="deselect()" type="button" title="Clear selection" class="vs__clear" style=""><svg xmlns="http://www.w3.org/2000/svg" width="10" height="10"><path d="M6.895455 5l2.842897-2.842898c.348864-.348863.348864-.914488 0-1.263636L9.106534.261648c-.348864-.348864-.914489-.348864-1.263636 0L5 3.104545 2.157102.261648c-.348863-.348864-.914488-.348864-1.263636 0L.261648.893466c-.348864.348864-.348864.914489 0 1.263636L3.104545 5 .261648 7.842898c-.348864.348863-.348864.914488 0 1.263636l.631818.631818c.348864.348864.914773.348864 1.263636 0L5 6.895455l2.842898 2.842897c.348863.348864.914772.348864 1.263636 0l.631818-.631818c.348864-.348864.348864-.914489 0-1.263636L6.895455 5z"></path></svg></span> <span class="multiselect__select" @@mousedown.prevent.stop="props.toggle()"></span> </div> </template> <template v-slot:option="props" :option="option" :search="search"> <a v-if="showDeleteBtn(props.option)" class="v-select-custom-href" @@click.prevent="showModal(props.option)"><i class="icon icon-trash" aria-hidden="true"></i></a> <template v-if="props.option.id == 'standardDeliveryScope'"> @Translate("deliveryAddress_Standard", "Gemte addresser") </template> <template v-else-if="props.option.id == 'hierarchyScope'"> @Translate("deliveryAddress_Extended", "Debitor addresser") </template> <template v-else> <span class="v-select-custom-text">{{ getOptionLabel(props.option) }}</span> </template> </template> </multiselect> </div> </script> @{ string orderingListRequestProductModalTranslation = "OrderingListRequestProduct_Modal"; } <script type="text/x-template" id="modal-text-component-template" v-pre=""> <div> <modal-component unique-id="orderinglist-request-product" @@confirm-accept="accept" @@confirm-cancel="cancel"> <template v-slot:title="slotProps"> <h4 lass="modal-title">@Translate(orderingListRequestProductModalTranslation + "_Header", "Anmod produkt: "){{slotProps.obj.header}}</h4> </template> <template v-slot:msg> <p>@Translate(orderingListRequestProductModalTranslation + "_Message", "Skriv en kommentar (maks 200 karakter)")</p> <textarea class="form-control" row="5" cols="50" maxlength="200" v-model="comments"></textarea> </template> <template v-slot:msg-is-accepted> <p>@Translate(orderingListRequestProductModalTranslation + "_Accept", "Anmodet")</p> </template> </modal-component> </div> </script> @* Delivery adresss modal view *@ <script type="text/x-template" id="deliveryaddress-modal-component-template" v-pre=""> <div> <modal-component unique-id="deliveryaddress-modal-component" @@confirm-accept="accept" @@confirm-cancel="cancel"> <template v-slot:title="props"> <h4 lass="modal-title">@Translate("deliveryaddress_modal_header", "Delete delivery addresse") {{props.obj.header}}</h4> </template> <template v-slot:msg="props"> <p>@Translate("deliveryaddress_modal_text", "Are you sure that you wanna delete? med følgende tekst")</p> <p>{{props.obj.message}}</p> </template> <template v-slot:msg-is-accepted> <p>@Translate("deliveryaddress_confirm_delete", "Delivery address was successfully deleted!")</p> </template> </modal-component> </div> </script> <div id="problem-scripts"> @* use v-pre to ignore the template by vuejs *@ <script id="async-price" v-pre="" type="text/x-template"> <div data-target=".async-price-unit"> @* ADD offline price for "informative-unit" if ANY *@ <span class="{{if !isProductInformation}}product-price-before{{/if}}"> {{if selectedUnit != null && selectedUnit.IsInformativePrice}} {{>selectedUnit.UnitBeforePrice}} {{if isProductInformation}}<span>@Context.Currency.Symbol</span>{{/if}} {{else}} {{if NetUnitPrice.PriceWithoutVat != null && UnitPrice.PriceWithoutVat != null && NetUnitPrice.PriceWithoutVat.formatMoney(2,',','.') != UnitPrice.PriceWithoutVat.formatMoney(2,',','.') }} {{>UnitPrice.PriceWithoutVat.formatMoney(2,',','.')}} {{if isProductInformation}}<span>@Context.Currency.Symbol</span>{{/if}} {{/if}} {{/if}} </span> </div> <div data-target=".async-price-stock"> {{if ExtraInfo && ExtraInfo.IsProcurementGoods == "yes" && Inventory == 0}} <i class="icon-stock icon-blue" title="@Translate("label_skaffevare", "Skaffevare")"></i> <span class="stock-label-text">@Translate("label_skaffevare", "Skaffevare")</span> {{else}} {{if Inventory > 0 || (ExtraInfo && ExtraInfo.Stykliste == "yes" )}} {{if !ExtraInfo.isOutlet}} <i class="icon-stock icon-green" title="{{>Inventory}}"></i> <span class="stock-label-text">@Translate("label_in_stock", "På lager")</span> {{else}} <i class="icon-stock icon-green" title="{{>Inventory}}"></i> <span class="stock-label-text" style="display: inline;">{{>Inventory}} @Translate("label_in_stock", "På lager")</span> {{/if}} {{else}} <i class="icon-stock icon-yellow" title="@Translate("label_in_stock_in_x_days", "Forventes på lager indenfor 4 dage.")"></i> <span class="stock-label-text">@Translate("label_in_stock_in_x_days", "Forventes på lager indenfor 4 dage.")</span> {{/if}} {{/if}} </div> <div data-target=".async-price-total"> {{if (selectedUnit != null && selectedUnit.IsInformativePrice) || (NetUnitPrice.PriceWithoutVat != null && UnitPrice.PriceWithoutVat != null && NetUnitPrice.PriceWithoutVat.formatMoney(2,',','.') != UnitPrice.PriceWithoutVat.formatMoney(2,',','.'))}} <div class="font-hilite"> {{>NetUnitPrice.PriceWithoutVat.formatMoney(2,',','.')}} {{if Mode != "details"}} @Context.Currency.Symbol {{/if}} </div> {{else}} {{>NetUnitPrice.PriceWithoutVat.formatMoney(2,',','.')}} {{if Mode != "details"}} @Context.Currency.Symbol {{/if}} {{/if}} {{if error != null }} <i class="icon-warning" title="@Translate("lwi_showing_retail_prices", "There was a technical problem so your specific price could not be calculated. The price you see is retail price.")"></i> {{/if}} </div> <div data-target=".async-price-discount"> {{if ExtraInfo !== undefined && ExtraInfo.DiscountPct !== undefined && ExtraInfo.DiscountPct > 0 }} {{:ExtraInfo.DiscountPct}}% {{/if}} </div> <div data-target=".async-price-volumenpriser"> {{if ExtraInfo && ExtraInfo.qtyPriceTransformed}} <table class="table table-condensed volume-table async-price-volumenpriser"> <tbody> {{for ExtraInfo.qtyPriceTransformed}} <tr> {{if TranslatedUnitCaption == BaseUnit }} <td class="text-left">{{:#data.MinimumQuantity}} x {{:#data.TranslatedUnitCaption}}</td> {{else}} <td class="text-left">{{:#data.MinimumQuantity}} {{:#data.TranslatedUnitCaption}} ({{:#data.MinimumQuantityInBaseUnit}} {{:#data.BaseUnit}})</td> {{/if}} <td class="text-right">@Translate("Volume Per", "pr.") {{:BaseUnit}}</td> <td class="text-right">{{:#data.ConvertedBOMPrice}} {{:#data.CurrencyCode}}</td> </tr> {{else}} <tr> <td colspan="2">Ingen volumenpriser</td> </tr> {{/for}} </tbody> </table> {{/if}} </div> </script> @* render template if price is a base unit informative price (fictive) *@ <script id="async-price-informative-baseunit" v-pre="" type="text/x-template"> <div data-target=".async-price-stock"> {{if ExtraInfo && ExtraInfo.IsProcurementGoods == "yes" && Inventory == 0}} <i class="icon-stock icon-blue" title="@Translate("label_skaffevare", "Skaffevare")"></i> <span class="stock-label-text">@Translate("label_skaffevare", "Skaffevare")</span> {{else}} {{if Inventory > 0 || (ExtraInfo && ExtraInfo.Stykliste == "yes" )}} {{if !ExtraInfo.isOutlet}} <i class="icon-stock icon-green" title="{{>Inventory}}"></i> <span class="stock-label-text">@Translate("label_in_stock", "På lager")</span> {{else}} <i class="icon-stock icon-green" title="{{>Inventory}}"></i> <span class="stock-label-text" style="display: inline;">{{>Inventory}} @Translate("label_in_stock", "På lager")</span> {{/if}} {{else}} <i class="icon-stock icon-yellow" title="@Translate("label_in_stock_in_x_days", "Forventes på lager indenfor 4 dage.")"></i> <span class="stock-label-text">@Translate("label_in_stock_in_x_days", "Forventes på lager indenfor 4 dage.")</span> {{/if}} {{/if}} </div> <div data-target=".async-price-baseunitOUM"> {{:ExtraInfo.BaseContentUOM}} </div> <div data-target=".async-price-unit"> {{if isProductInformation && showOfflineSupplementalUnitPrice && !selectedUnit.SupplementalUnit.AnyInformativePrice}} <span>{{:selectedUnit.SupplementalUnit.BaseContentUOMPrice}} @Context.Currency.Symbol</span> {{/if}} {{if isProductInformation && showOfflineSupplementalUnitPrice && selectedUnit.SupplementalUnit.AnyInformativePrice}} <span>{{:selectedUnit.SupplementalUnit.BaseContentUOMBeforePrice}} @Context.Currency.Symbol</span> {{/if}} {{if !isProductInformation}} <span class="supplemental-unit-content">pr. {{:ExtraInfo.BaseContentUOM}} /v {{:ExtraInfo.BaseContentFactor}} {{:ExtraInfo.BaseContentUOM}}</span> {{if showOfflineSupplementalUnitPrice && !selectedUnit.SupplementalUnit.AnyInformativePrice}} <span class="product-price-before">{{:selectedUnit.SupplementalUnit.BaseContentUOMPrice}}</span> {{/if}} {{if showOfflineSupplementalUnitPrice && selectedUnit.SupplementalUnit.AnyInformativePrice}} <span class="product-price-before">{{:selectedUnit.SupplementalUnit.BaseContentUOMBeforePrice}} </span> {{/if}} {{/if}} </div> <div data-target=".async-price-total"> {{if isProductInformation}} {{if showOfflineSupplementalUnitPrice}} <span class="font-hilite">{{>ExtraInfo.BaseContentOUMPrice.formatMoney(2,',','.')}} @Context.Currency.Symbol</span> {{else}} <span>{{>ExtraInfo.BaseContentOUMPrice.formatMoney(2,',','.')}} @Context.Currency.Symbol</span> {{/if}} {{/if}} {{if !isProductInformation}} {{if showOfflineSupplementalUnitPrice}} <span class="font-hilite">{{>ExtraInfo.BaseContentOUMPrice.formatMoney(2,',','.')}} @Context.Currency.Symbol</span> {{else}} <span>{{>ExtraInfo.BaseContentOUMPrice.formatMoney(2,',','.')}} @Context.Currency.Symbol</span> {{/if}} {{/if}} </div> </script> @* Offline template *@ <script id="price-template-unitchange" v-pre="" type="text/x-template"> {{if ShowPricePrBaseUnitOUM}} <span class="supplemental-unit-content">pr. {{:SupplementalUnit.BaseContentUOM}} /v {{:SupplementalUnit.BaseContentFactor}} {{:SupplementalUnit.BaseContentUOM}}</span> {{/if}} {{if IsInformativePrice }} {{if ShowPricePrBaseUnitOUM}} <span class="product-price-before">{{:SupplementalUnit.BaseContentUOMBeforePrice}} </span> <span class="productlist-grid-price-price font-hilite"> {{:SupplementalUnit.BaseContentUOMPrice}} <span itemprop="priceCurrency" content="{{:Currency}}">@Context.Currency.Symbol</span> </span> {{else}} <span class="product-price-before">{{:UnitBeforePrice}}</span> <span class="productlist-grid-price-price font-hilite"> {{:Price}} <span itemprop="priceCurrency" content="{{:Currency}}">@Context.Currency.Symbol</span> </span> {{/if}} {{else}} <span class="productlist-grid-price-price"> {{if ShowPricePrBaseUnitOUM}} {{:SupplementalUnit.BaseContentUOMPrice}} {{else}} {{:Price}} {{/if}} <span itemprop="priceCurrency" content="{{:Currency}}">@Context.Currency.Symbol</span> </span> {{/if}} </script> <script v-pre="" type="text/x-template" id="autoaddfeedbackloading"> <i class="spinner-sm-default"></i> </script> <script v-pre="" type="text/x-template" id="autoaddfeedbacksuccess"> <i class="icon-added" title="@Translate("autoadd_added_to_basket", "Produktet blev tilføjet til kurven.")"></i> </script> <script v-pre="" type="text/x-template" id="autoaddfeedbackerror"> {{if error == "badinput"}} <i class="icon-warning" title="@Translate("auto_add_bad_input", "Det indtastede var ikke et tal.")"></i> {{else error == "servererror"}} <i class="icon-warning" title="@Translate("auto_add_server_error", "Der skete en serverfejl, din kurv er ikke opdateret.")"></i> {{else}} <i class="icon-warning"></i> {{/if}} </script> <script v-pre="" type="text/x-template" id="autoaddfeedbackdefault"> <span class="product-added-text"><i class="pe-is-ec-cart-1-f" aria-hidden="true"></i></span> </script> </div> <script src='@StandardWebshop.CustomCode.Razor.TimestampSource.GetSourceWithTimestamp(@"/Files/dist/scripts/bundle.min.js")'></script> <script append="true"> require(['standardwebshop/areas/user/login'], function (AsyncLogin) { var login = new AsyncLogin({ $loginForm: $("#loginForm"), $username: $("#Username"), $password: $("#Password"), redirectLink: '@(GetString("Item.Area.LoginRedirect"))' }); login.init(); }); </script> @using System.Security.Permissions @if (GetBoolean("NIQ:JavaScriptDebug")) { <script src="/scripts/require.js"></script> @StandardWebshop.CustomCode.Razor.TimestampSource.GetJavaScriptWithTimestamp("/scripts/standardwebshop/main.js") } else { @StandardWebshop.CustomCode.Razor.TimestampSource.GetJavaScriptWithTimestamp("/scripts/standardwebshop/main.min.js") } <script> //Loads master along with the localized validation messages (read from the template tag "lang"). @* Loading the datepicker localizations via the aliasses in main.js failed and caused them to be loaded from the original files instead of from the minified file. *@ require(['jQueryUI.localization/jquery.ui.datepicker-en-GB', 'jQueryUI.localization/jquery.ui.datepicker-da'], function () { }); require(['standardwebshop/areas/master'], function (master) { master.init(); }); @* Fool the minifier to include all validation localizations, but only trigger the one actually needed. *@ require([], function() { @if (String.Equals(GetString("Lang"), "da", StringComparison.OrdinalIgnoreCase)) { <text> require(["jquery.validation-1.13.1/localization/messages_da"], function() {}); </text> } else if (String.Equals(GetString("Lang"), "en", StringComparison.OrdinalIgnoreCase)) { <text> require(["jquery.validation-1.13.1/localization/messages_en"], function() {}); </text> } else if (String.Equals(GetString("Lang"), "se", StringComparison.OrdinalIgnoreCase)) { <text> require(["jquery.validation-1.13.1/localization/messages_sv"], function() {}); </text> } }); var dataLayer = dataLayer || []; @if(!string.IsNullOrEmpty(GetString("Ecom:Checkout.CurrentStep.Index"))) { <text> dataLayer.push({ event: 'pageview', page: { path: '/indkoebskurv/step@(GetString("Ecom:Checkout.CurrentStep.Index"))', title: 'Indkøbskurv - Trin @(@GetString("Ecom:Checkout.CurrentStep.Index"))' } }); </text> } </script> @*@if (!String.IsNullOrEmpty(GetString("Item.Area.Google"))) { <script> (function (i, s, o, g, r, a, m) { i['GoogleAnalyticsObject'] = r; i[r] = i[r] || function () { (i[r].q = i[r].q || []).push(arguments) }, i[r].l = 1 * new Date(); a = s.createElement(o), m = s.getElementsByTagName(o)[0]; a.async = 1; a.src = g; m.parentNode.insertBefore(a, m) })(window, document, 'script', '//www.google-analytics.com/analytics.js', 'ga'); ga('create', '@GetString("Item.Area.Google")', 'auto'); @if (!string.IsNullOrEmpty(GetString("Ecom:Checkout.CurrentStep.Index"))) { <text>ga('send', 'pageview', '/indkoebskurv/step</text>@GetString("Ecom:Checkout.CurrentStep.Index");<text>');</text> } else { <text>ga('send', 'pageview');</text> } </script> }*@ <script append="replace"></script> <div class="footer-scripts"> @GetString("Item.Area.Footer_Scripts") </div> <script type="text/javascript"> AppStart.VueProvider.init({ webApiUrl: '@System.Web.Configuration.WebConfigurationManager.AppSettings["WebApiProxyUrl"]', dwApiUrl: location.protocol + '//' + location.hostname + (location.port ? ':' + location.port : ''), reCaptchaToken: '@System.Web.Configuration.WebConfigurationManager.AppSettings["recaptcha-public-key"]' }); </script> </body> </html>