| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- @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;
- <div class="menu-item">
- <a class="menu-link @(linkClasses)" href="@(linkUrl)" @linkTarget>
- <span class="menu-icon">
- <i class="@(Model?.Icon)"></i>
- </span>
- <span class="menu-title">@Model?.DisplayName</span>
- </a>
- </div>
- }
- else
- {
- var activeClasses = $"{(isActive ? "here show" : "")}";
- var icon = Model.Icon.Empty() ? "<span class=\"menu-bullet\"><span class=\"bullet bullet-dot\"></span></span>" : $"<span class=\"menu-icon\"><i class=\"{Model?.Icon}\"></i></span>";
- <div data-kt-menu-trigger="click" class="menu-item menu-accordion @(activeClasses)">
- <span class="menu-link">
- @Html.Raw(icon)
- <span class="menu-title">@Model.DisplayName</span>
- <span class="menu-arrow"></span>
- </span>
- <div class="menu-sub menu-sub-accordion menu-active-bg">
- @foreach (var menu in subMenus)
- {
- @await Html.PartialAsync("Components/SideBarMenu/_MenuItem", menu)
- }
- </div>
- </div>
- }
|