Skip to content

Commit f57b187

Browse files
committed
Completed MPA template's language and menu system.
1 parent 2b60cd8 commit f57b187

File tree

8 files changed

+89
-93
lines changed

8 files changed

+89
-93
lines changed
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
using System.Web.Mvc;
2+
using Abp.Application.Navigation;
3+
using Abp.Localization;
4+
using MySpaProject.WebMpa.Models.Layout;
5+
6+
namespace MySpaProject.WebMpa.Controllers
7+
{
8+
public class LayoutController : MySpaProjectControllerBase
9+
{
10+
private readonly IUserNavigationManager _userNavigationManager;
11+
private readonly ILocalizationManager _localizationManager;
12+
13+
public LayoutController(IUserNavigationManager userNavigationManager, ILocalizationManager localizationManager)
14+
{
15+
_userNavigationManager = userNavigationManager;
16+
_localizationManager = localizationManager;
17+
}
18+
19+
[ChildActionOnly]
20+
public PartialViewResult TopMenu()
21+
{
22+
var model = new TopMenuViewModel
23+
{
24+
MainMenu = _userNavigationManager.GetMenu("MainMenu", CurrentSession.UserId)
25+
};
26+
27+
return PartialView("_TopMenu", model);
28+
}
29+
30+
[ChildActionOnly]
31+
public PartialViewResult LanguageSelection()
32+
{
33+
var model = new LanguageSelectionViewModel
34+
{
35+
CurrentLanguage = _localizationManager.CurrentLanguage,
36+
Languages = _localizationManager.GetAllLanguages()
37+
};
38+
39+
return PartialView("_LanguageSelection", model);
40+
}
41+
}
42+
}

Templates/All-In-One-Template/MySpaProject/MySpaProject.WebMpa/Localization/ApplicationLanguageInfo.cs

Lines changed: 0 additions & 71 deletions
This file was deleted.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
using System.Collections.Generic;
2+
using Abp.Localization;
3+
4+
namespace MySpaProject.WebMpa.Models.Layout
5+
{
6+
public class LanguageSelectionViewModel
7+
{
8+
public LanguageInfo CurrentLanguage { get; set; }
9+
10+
public IReadOnlyList<LanguageInfo> Languages { get; set; }
11+
}
12+
}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
using Abp.Application.Navigation;
2+
3+
namespace MySpaProject.WebMpa.Models.Layout
4+
{
5+
public class TopMenuViewModel
6+
{
7+
public UserMenu MainMenu { get; set; }
8+
}
9+
}

Templates/All-In-One-Template/MySpaProject/MySpaProject.WebMpa/MySpaProject.WebMpa.csproj

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -299,11 +299,13 @@
299299
<Compile Include="App_Start\RouteConfig.cs" />
300300
<Compile Include="Controllers\AboutController.cs" />
301301
<Compile Include="Controllers\HomeController.cs" />
302+
<Compile Include="Models\Layout\LanguageSelectionViewModel.cs" />
303+
<Compile Include="Controllers\LayoutController.cs" />
302304
<Compile Include="Controllers\MySpaProjectControllerBase.cs" />
303305
<Compile Include="Global.asax.cs">
304306
<DependentUpon>Global.asax</DependentUpon>
305307
</Compile>
306-
<Compile Include="Localization\ApplicationLanguageInfo.cs" />
308+
<Compile Include="Models\Layout\TopMenuViewModel.cs" />
307309
<Compile Include="Properties\AssemblyInfo.cs" />
308310
<Compile Include="Views\MySpaProjectWebViewPageBase.cs" />
309311
</ItemGroup>
@@ -323,9 +325,7 @@
323325
<DependentUpon>Web.config</DependentUpon>
324326
</None>
325327
</ItemGroup>
326-
<ItemGroup>
327-
<Folder Include="Models\" />
328-
</ItemGroup>
328+
<ItemGroup />
329329
<ItemGroup>
330330
<ProjectReference Include="..\MySpaProject.Application\MySpaProject.Application.csproj">
331331
<Project>{edf5d964-4c0f-4f19-b674-58a38a5e5401}</Project>

Templates/All-In-One-Template/MySpaProject/MySpaProject.WebMpa/Views/Shared/_LanguageSelection.cshtml

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,16 @@
1-
@using MySpaProject.WebMpa.Localization
2-
@{
3-
var currentLanguage = ApplicationLanguageInfo.CurrentLanguage;
4-
}
1+
@model MySpaProject.WebMpa.Models.Layout.LanguageSelectionViewModel
52
<li class="dropdown">
63
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
7-
<i class="@currentLanguage.IconClass"></i>
8-
<span>@currentLanguage.DisplayName</span>
4+
<i class="@Model.CurrentLanguage.Icon"></i>
5+
<span>@Model.CurrentLanguage.DisplayName</span>
96
<b class="caret"></b>
107
</a>
118
<ul class="dropdown-menu">
12-
@foreach (var language in ApplicationLanguageInfo.SupportedLanguages.Values)
9+
@foreach (var language in Model.Languages)
1310
{
14-
if (language != currentLanguage)
11+
if (language.Name != Model.CurrentLanguage.Name)
1512
{
16-
<li><a href="/AbpLocalization/ChangeCulture?cultureName=@(language.Name)&returnUrl=@(Request.Url)"><i class="@language.IconClass"></i> @language.DisplayName</a></li>
13+
<li><a href="/AbpLocalization/ChangeCulture?cultureName=@(language.Name)&returnUrl=@(Request.Url)"><i class="@language.Icon"></i> @language.DisplayName</a></li>
1714
}
1815
}
1916
</ul>

Templates/All-In-One-Template/MySpaProject/MySpaProject.WebMpa/Views/Shared/_TopBar.cshtml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,14 @@
77
<span class="icon-bar"></span>
88
<span class="icon-bar"></span>
99
</button>
10-
<a class="navbar-brand" href="#">MySpaProject!</a>
10+
<a class="navbar-brand" href="~/"><i class="fa fa-cubes"></i> MySpaProject</a>
1111
</div>
1212
<div class="collapse navbar-collapse">
1313
<ul class="nav navbar-nav">
14-
@Html.Partial("_TopMenu")
14+
@Html.Action("TopMenu", "Layout")
1515
</ul>
1616
<ul class="nav navbar-nav navbar-right">
17-
@Html.Partial("_LanguageSelection")
17+
@Html.Action("LanguageSelection", "Layout")
1818
</ul>
1919
</div>
2020
</div>
Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,13 @@
1-
<li class="@(ViewBag.CurrentPage == "Home" ? "active" : "")">
2-
<a href="@Url.Action("Index", "Home")">@L("HomePage")</a>
3-
</li>
4-
<li class="@(ViewBag.CurrentPage == "About" ? "active" : "")">
5-
<a href="@Url.Action("Index", "About")">@L("About")</a>
6-
</li>
1+
@model MySpaProject.WebMpa.Models.Layout.TopMenuViewModel
2+
@foreach (var menuItem in Model.MainMenu.Items)
3+
{
4+
<li class="@(ViewBag.CurrentPage == menuItem.Name ? "active" : "")">
5+
<a href="@menuItem.Url">
6+
@if (!string.IsNullOrWhiteSpace(menuItem.Icon))
7+
{
8+
<i class="@menuItem.Icon"></i>
9+
}
10+
@menuItem.DisplayName
11+
</a>
12+
</li>
13+
}

0 commit comments

Comments
 (0)