@using VberAdmin.Web.Views @using VberAdmin.Web.Views.Shared.Components.SideBarMenu @using Abp.Application.Navigation @using VberZero.Tools.StringModel @model UserMenuItem @inject ILanguageManager _languageManager @{ var isActive = IsActiveMenuItem(Model, ViewBag.ActiveMenu); var subMenus = Model?.Items.Where(x => x.IsVisible).OrderByCustom().ToList(); var hasSubMenus = subMenus?.Any() ?? false; } @functions { static bool IsActiveMenuItem(UserMenuItem menuItem, string pageName) { if (string.IsNullOrWhiteSpace(pageName)) return false; return pageName.Equals(menuItem.Name, StringComparison.InvariantCultureIgnoreCase) || menuItem.Items.Any(cn => IsActiveMenuItem(cn, pageName)); } string CalculateMenuUrl(string url) { if (string.IsNullOrEmpty(url)) return ApplicationPath; if (UrlChecker.IsRooted(url)) return url; return ApplicationPath + url; } } @if (!hasSubMenus) { var linkUrl = CalculateMenuUrl(Model?.Url); var linkClasses = $"{(isActive ? "active" : "")}"; var linkTarget = !string.IsNullOrEmpty(Model?.Target) ? Html.Raw($" target=\"{Model.Target}\"") : null; } else { var activeClasses = $"{(isActive ? "here show" : "")}"; var icon = Model.Icon.Empty() ? "" : $""; }