NavOptions ToNavOptions(ScriptScopeContext scope, Dictionary <string, object> options) { var navOptions = new NavOptions(); if (options != null) { if (options.TryGetValue("attributes", out var oAttributes)) { navOptions.Attributes = ViewUtils.ToStrings(nameof(ToNavOptions), oAttributes).ToHashSet(); } if (options.TryGetValue("activePath", out var oActive)) { navOptions.ActivePath = (string)oActive; } if (options.TryGetValue("baseHref", out var oBaseHref)) { navOptions.BaseHref = (string)oBaseHref; } if (options.TryGetValue("navClass", out var oNavClass)) { navOptions.NavClass = (string)oNavClass; } if (options.TryGetValue("navItemClass", out var oNavItemClass)) { navOptions.NavItemClass = (string)oNavItemClass; } if (options.TryGetValue("navLinkClass", out var oNavLinkClass)) { navOptions.NavLinkClass = (string)oNavLinkClass; } if (options.TryGetValue("childNavItemClass", out var oChildNavItemClass)) { navOptions.ChildNavItemClass = (string)oChildNavItemClass; } if (options.TryGetValue("childNavLinkClass", out var oChildNavLinkClass)) { navOptions.ChildNavLinkClass = (string)oChildNavLinkClass; } if (options.TryGetValue("childNavMenuClass", out var oChildNavMenuClass)) { navOptions.ChildNavMenuClass = (string)oChildNavMenuClass; } if (options.TryGetValue("childNavMenuItemClass", out var oChildNavMenuItemClass)) { navOptions.ChildNavMenuItemClass = (string)oChildNavMenuItemClass; } } if (navOptions.ActivePath == null) { navOptions.ActivePath = scope.GetValue("PathInfo")?.ToString(); } if (navOptions.Attributes == null) { navOptions.Attributes = Context.GetServiceStackFilters().req(scope).GetUserAttributes(); } return(navOptions); }
public static NavOptions WithDefaults(this NavOptions options, IRequest request) { if (options == null) options = new NavOptions(); if (options.ActivePath == null) options.ActivePath = request.PathInfo; if (options.Attributes == null) options.Attributes = request.GetUserAttributes(); return options; }
public static NavOptions WithDefaults(this NavOptions options, IRequest request) { if (options == null) { options = new NavOptions(); } if (options.ActivePath == null) { options.ActivePath = request.PathInfo; } if (options.Attributes == null) { options.Attributes = request.GetUserAttributes(); } var pathBase = HostContext.Config.PathBase; if (!string.IsNullOrEmpty(pathBase)) { options.BaseHref = pathBase; } return(options); }
NavOptions ToNavOptions(ScriptScopeContext scope, Dictionary <string, object> options) { var navOptions = new NavOptions(); if (options != null) { if (options.TryGetValue("attributes", out var oAttributes)) { navOptions.Attributes = ViewUtils.ToStrings(nameof(ToNavOptions), oAttributes).ToHashSet(); } if (options.TryGetValue("activePath", out var oActive)) { navOptions.ActivePath = (string)oActive; } if (options.TryGetValue("baseHref", out var oBaseHref)) { navOptions.BaseHref = (string)oBaseHref; } if (options.TryGetValue("navClass", out var oNavClass)) { navOptions.NavClass = (string)oNavClass; } if (options.TryGetValue("navItemClass", out var oNavItemClass)) { navOptions.NavItemClass = (string)oNavItemClass; } if (options.TryGetValue("navLinkClass", out var oNavLinkClass)) { navOptions.NavLinkClass = (string)oNavLinkClass; } if (options.TryGetValue("childNavItemClass", out var oChildNavItemClass)) { navOptions.ChildNavItemClass = (string)oChildNavItemClass; } if (options.TryGetValue("childNavLinkClass", out var oChildNavLinkClass)) { navOptions.ChildNavLinkClass = (string)oChildNavLinkClass; } if (options.TryGetValue("childNavMenuClass", out var oChildNavMenuClass)) { navOptions.ChildNavMenuClass = (string)oChildNavMenuClass; } if (options.TryGetValue("childNavMenuItemClass", out var oChildNavMenuItemClass)) { navOptions.ChildNavMenuItemClass = (string)oChildNavMenuItemClass; } } if (navOptions.ActivePath == null) { navOptions.ActivePath = scope.GetValue("PathInfo")?.ToString(); } if (navOptions.Attributes == null) { navOptions.Attributes = scope.GetRequest().GetUserAttributes(); } if (navOptions.BaseHref == null) { var pathBase = HostContext.Config.PathBase; if (!string.IsNullOrEmpty(pathBase)) { navOptions.BaseHref = pathBase; } } return(navOptions); }
public static HtmlString NavButtonGroup(this IHtmlHelper html, List <NavItem> navItems, NavOptions options) => ViewUtils.NavButtonGroup(navItems, options.ForNavButtonGroup().WithDefaults(html.GetRequest())).ToHtmlString();
public static HtmlString NavButtonGroup(this IHtmlHelper html, NavOptions options) => html.NavButtonGroup(ViewUtils.NavItems, options);
public static HtmlString NavLink(this IHtmlHelper html, NavItem navItem, NavOptions options) => ViewUtils.NavLink(navItem, options.ForNavLink().WithDefaults(html.GetRequest())).ToHtmlString();
public static HtmlString Navbar(this IHtmlHelper html, NavOptions options) => html.Navbar(ViewUtils.NavItems, options);