Skip to content

Commit 8b6588e

Browse files
committed
Order user menu items by order and display name
1 parent 47ec5fe commit 8b6588e

File tree

3 files changed

+23
-2
lines changed

3 files changed

+23
-2
lines changed

aspnet-core/src/AbpCompanyName.AbpProjectName.Web.Mvc/Views/Shared/Components/SideBarMenu/Default.cshtml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,13 @@
11
@using AbpCompanyName.AbpProjectName.Web.Views.Shared.Components.SideBarMenu
22
@model SideBarMenuViewModel
3+
@{
4+
var orderedMenuItems = Model.MainMenu.Items.Where(x => x.IsVisible).OrderByCustom().ToList();
5+
}
6+
37
<nav class="mt-2">
48
<ul class="nav nav-pills nav-sidebar flex-column nav-flat" data-widget="treeview" role="menu" data-accordion="false">
59
@{
6-
foreach (var item in Model.MainMenu.Items.Where(x => x.IsVisible))
10+
foreach (var item in orderedMenuItems)
711
{
812
@await Html.PartialAsync("Components/SideBarMenu/_MenuItem", item)
913
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
using Abp.Application.Navigation;
2+
using System.Collections.Generic;
3+
using System.Linq;
4+
5+
namespace AbpCompanyName.AbpProjectName.Web.Views.Shared.Components.SideBarMenu
6+
{
7+
public static class UserMenuItemExtensions
8+
{
9+
public static IOrderedEnumerable<UserMenuItem> OrderByCustom(this IEnumerable<UserMenuItem> menuItems)
10+
{
11+
return menuItems
12+
.OrderBy(menuItem => menuItem.Order)
13+
.ThenBy(menuItem => menuItem.DisplayName);
14+
}
15+
}
16+
}

aspnet-core/src/AbpCompanyName.AbpProjectName.Web.Mvc/Views/Shared/Components/SideBarMenu/_MenuItem.cshtml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
11
@using AbpCompanyName.AbpProjectName.Web.Views
2+
@using AbpCompanyName.AbpProjectName.Web.Views.Shared.Components.SideBarMenu
23
@using Abp.Application.Navigation
34
@model Abp.Application.Navigation.UserMenuItem
45
@inject ILanguageManager LanguageManager
56
@{
67
var isActive = IsActiveMenuItem(Model, ViewBag.CurrentPageName);
7-
var subMenus = Model.Items.Where(x => x.IsVisible).ToList();
8+
var subMenus = Model.Items.Where(x => x.IsVisible).OrderByCustom().ToList();
89
var hasSubMenus = subMenus.Any();
910
}
1011
@functions {

0 commit comments

Comments
 (0)