Skip to content

Commit c5b7aad

Browse files
committed
Multi level menu sample.
1 parent 8f898e1 commit c5b7aad

File tree

5 files changed

+136
-19
lines changed

5 files changed

+136
-19
lines changed

aspnet-core/src/AbpCompanyName.AbpProjectName.Core/Localization/SourceFiles/AbpProjectName-tr.xml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,5 +61,8 @@
6161
<text name="NotSelected">Seçilmemiş</text>
6262
<text name="Change">Değiştir</text>
6363
<text name="ChangeTenant">Müşteri değiştir</text>
64+
65+
<text name="MultiLevelMenu" value="Çok Seviyeli Menü" />
66+
6467
</texts>
6568
</localizationDictionary>

aspnet-core/src/AbpCompanyName.AbpProjectName.Core/Localization/SourceFiles/AbpProjectName.xml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,5 +61,8 @@
6161
<text name="NotSelected">Not selected</text>
6262
<text name="Change">Change</text>
6363
<text name="ChangeTenant">Change tenant</text>
64+
65+
<text name="MultiLevelMenu" value="Multi Level Menu" />
66+
6467
</texts>
6568
</localizationDictionary>

aspnet-core/src/AbpCompanyName.AbpProjectName.Web.Mvc/Startup/AbpProjectNameNavigationProvider.cs

Lines changed: 91 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,30 +19,118 @@ public override void SetNavigation(INavigationProviderContext context)
1919
url: "",
2020
icon: "home",
2121
requiresAuthentication: true
22-
)
22+
)
2323
).AddItem(
2424
new MenuItemDefinition(
2525
PageNames.Tenants,
2626
L("Tenants"),
2727
url: "Tenants",
2828
icon: "business",
2929
requiredPermissionName: PermissionNames.Pages_Tenants
30-
)
30+
)
3131
).AddItem(
3232
new MenuItemDefinition(
3333
PageNames.Users,
3434
L("Users"),
3535
url: "Users",
3636
icon: "people",
3737
requiredPermissionName: PermissionNames.Pages_Users
38-
)
38+
)
3939
).AddItem(
4040
new MenuItemDefinition(
4141
PageNames.About,
4242
L("About"),
4343
url: "About",
4444
icon: "info"
45+
)
46+
).AddItem( //Menu items below is just for demonstration!
47+
new MenuItemDefinition(
48+
PageNames.About,
49+
L("MultiLevelMenu"),
50+
icon: "menu"
51+
).AddItem(
52+
new MenuItemDefinition(
53+
"AspNetBoilerplate",
54+
new FixedLocalizableString("ASP.NET Boilerplate")
55+
).AddItem(
56+
new MenuItemDefinition(
57+
"AspNetBoilerplateHome",
58+
new FixedLocalizableString("Home"),
59+
url: "https://aspnetboilerplate.com"
60+
)
61+
).AddItem(
62+
new MenuItemDefinition(
63+
"AspNetBoilerplateTemplates",
64+
new FixedLocalizableString("Templates"),
65+
url: "https://aspnetboilerplate.com/Templates"
66+
)
67+
).AddItem(
68+
new MenuItemDefinition(
69+
"AspNetBoilerplateSamples",
70+
new FixedLocalizableString("Samples"),
71+
url: "https://aspnetboilerplate.com/Samples"
72+
)
73+
).AddItem(
74+
new MenuItemDefinition(
75+
"AspNetBoilerplateDocuments",
76+
new FixedLocalizableString("Documents"),
77+
url: "https://aspnetboilerplate.com/Documents"
78+
)
79+
).AddItem(
80+
new MenuItemDefinition(
81+
"AspNetBoilerplateForum",
82+
new FixedLocalizableString("Forum"),
83+
url: "https://forum.aspnetboilerplate.com/"
84+
)
85+
).AddItem(
86+
new MenuItemDefinition(
87+
"AspNetBoilerplateAbout",
88+
new FixedLocalizableString("About"),
89+
url: "https://aspnetboilerplate.com/About"
90+
)
91+
)
92+
).AddItem(
93+
new MenuItemDefinition(
94+
"AspNetZero",
95+
new FixedLocalizableString("ASP.NET Zero")
96+
).AddItem(
97+
new MenuItemDefinition(
98+
"AspNetZeroHome",
99+
new FixedLocalizableString("Home"),
100+
url: "https://aspnetzero.com?ref=abptmpl"
101+
)
102+
).AddItem(
103+
new MenuItemDefinition(
104+
"AspNetZeroDescription",
105+
new FixedLocalizableString("Description"),
106+
url: "https://aspnetzero.com/#description"
107+
)
108+
).AddItem(
109+
new MenuItemDefinition(
110+
"AspNetZeroFeatures",
111+
new FixedLocalizableString("Features"),
112+
url: "https://aspnetzero.com/#features"
113+
)
114+
).AddItem(
115+
new MenuItemDefinition(
116+
"AspNetZeroPricing",
117+
new FixedLocalizableString("Pricing"),
118+
url: "https://aspnetzero.com/#pricing"
119+
)
120+
).AddItem(
121+
new MenuItemDefinition(
122+
"AspNetZeroFaq",
123+
new FixedLocalizableString("Faq"),
124+
url: "https://aspnetzero.com/Faq"
125+
)
126+
).AddItem(
127+
new MenuItemDefinition(
128+
"AspNetZeroDocuments",
129+
new FixedLocalizableString("Documents"),
130+
url: "https://aspnetzero.com/Documents"
131+
)
45132
)
133+
)
46134
);
47135
}
48136

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

Lines changed: 35 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@
2020
}
2121
<div class="menu">
2222
<ul class="list">
23-
<li class="header">@L("MainNavigation")</li>
2423
@foreach (var menuItem in Model.MainMenu.Items)
2524
{
2625
<li class="@(Model.ActiveMenuItemName == menuItem.Name ? "active" : "")">
@@ -36,24 +35,47 @@
3635
}
3736
else
3837
{
39-
<a href="" data-toggle="dropdown">
38+
<a href="javascript:void(0);" class="menu-toggle">
4039
@if (!string.IsNullOrWhiteSpace(menuItem.Icon))
4140
{
42-
<i class="@menuItem.Icon"></i>
41+
<i class="material-icons">@menuItem.Icon</i>
4342
}
44-
@menuItem.DisplayName
43+
<span>@menuItem.DisplayName</span>
4544
</a>
46-
<ul class="dropdown-menu">
45+
<ul class="ml-menu">
4746
@foreach (var subMenuItem in menuItem.Items)
4847
{
49-
<li>
50-
<a href="@calculateMenuUrl(subMenuItem.Url)">
51-
@if (!string.IsNullOrWhiteSpace(subMenuItem.Icon))
52-
{
53-
<i class="@subMenuItem.Icon"></i>
54-
}
55-
@subMenuItem.DisplayName
56-
</a>
48+
<li class="@(Model.ActiveMenuItemName == subMenuItem.Name ? "active" : "")">
49+
@if (subMenuItem.Items.IsNullOrEmpty())
50+
{
51+
<a href="@calculateMenuUrl(subMenuItem.Url)">
52+
@if (!string.IsNullOrWhiteSpace(subMenuItem.Icon))
53+
{
54+
<i class="material-icons">@subMenuItem.Icon</i>
55+
}
56+
<span>@subMenuItem.DisplayName</span>
57+
</a>
58+
}
59+
else
60+
{
61+
<a href="javascript:void(0);" class="menu-toggle">
62+
@if (!string.IsNullOrWhiteSpace(subMenuItem.Icon))
63+
{
64+
<i class="material-icons">@subMenuItem.Icon</i>
65+
}
66+
<span>@subMenuItem.DisplayName</span>
67+
</a>
68+
<ul class="ml-menu">
69+
@foreach (var subSubMenuItem in subMenuItem.Items)
70+
{
71+
<li class="@(Model.ActiveMenuItemName == subSubMenuItem.Name ? "active" : "")">
72+
<a href="@calculateMenuUrl(subSubMenuItem.Url)">
73+
@subSubMenuItem.DisplayName
74+
</a>
75+
</li>
76+
}
77+
</ul>
78+
}
5779
</li>
5880
}
5981
</ul>

aspnet-core/src/AbpCompanyName.AbpProjectName.Web.Mvc/Views/Shared/_Layout.cshtml

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
@using System.Globalization
22
@using Abp.Web.Security.AntiForgery
33
@using Abp.Configuration.Startup
4+
@using AbpCompanyName.AbpProjectName
45
@using AbpCompanyName.AbpProjectName.Web.Resources
56
@using AbpCompanyName.AbpProjectName.Web.Views.Shared.Components.SideBarNav
67
@inject AbpCompanyName.AbpProjectName.Timing.AppTimes AppTimes
@@ -98,7 +99,7 @@
9899
<div class="navbar-header">
99100
<a href="javascript:void(0);" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar-collapse" aria-expanded="false"></a>
100101
<a href="javascript:void(0);" class="bars"></a>
101-
<a class="navbar-brand" href="../../index.html">ADMINBSB - MATERIAL DESIGN</a>
102+
<a class="navbar-brand" asp-controller="Home" asp-action="Index"><i class="fa fa-cubes"></i> AbpProjectName</a>
102103
</div>
103104
<div class="collapse navbar-collapse" id="navbar-collapse">
104105
<ul class="nav navbar-nav navbar-right">
@@ -252,10 +253,10 @@
252253
<!-- Footer -->
253254
<div class="legal">
254255
<div class="copyright">
255-
&copy; 2016 <a href="javascript:void(0);">AdminBSB - Material Design</a>.
256+
&copy; @DateTime.Now.Year <a href="javascript:void(0);">AbpProjectName</a>.
256257
</div>
257258
<div class="version">
258-
<b>Version: </b> 1.0.4
259+
<b>Version: </b> @AppVersionHelper.Version [@AppVersionHelper.ReleaseDate.ToString("yyyyMMdd")]
259260
</div>
260261
</div>
261262
<!-- #Footer -->

0 commit comments

Comments
 (0)