Skip to content

Commit 06217e9

Browse files
committed
Implemented user area on sidebar.
1 parent 94e7d11 commit 06217e9

File tree

4 files changed

+76
-24
lines changed

4 files changed

+76
-24
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
@using AbpCompanyName.AbpProjectName.Web.Views.Shared.Components.SideBarUserArea
2+
@model SideBarUserAreaViewModel
3+
<div class="user-info">
4+
<div class="image">
5+
<img src="~/images/user.png" width="48" height="48" alt="User" />
6+
</div>
7+
<div class="info-container">
8+
<div class="name" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">@Html.Raw(Model.GetShownLoginName())</div>
9+
<div class="email">@Model.LoginInformations.User.EmailAddress</div>
10+
<div class="btn-group user-helper-dropdown">
11+
<i class="material-icons" data-toggle="dropdown" aria-haspopup="true" aria-expanded="true">keyboard_arrow_down</i>
12+
<ul class="dropdown-menu pull-right">
13+
<li><a href="@Url.Action("Logout", "Account")"><i class="material-icons">input</i>@L("Logout")</a></li>
14+
</ul>
15+
</div>
16+
</div>
17+
</div>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
using System.Threading.Tasks;
2+
using Abp.Configuration.Startup;
3+
using AbpCompanyName.AbpProjectName.Sessions;
4+
using Microsoft.AspNetCore.Mvc;
5+
6+
namespace AbpCompanyName.AbpProjectName.Web.Views.Shared.Components.SideBarUserArea
7+
{
8+
public class SideBarUserAreaViewComponent : ViewComponent
9+
{
10+
private readonly ISessionAppService _sessionAppService;
11+
private readonly IMultiTenancyConfig _multiTenancyConfig;
12+
13+
public SideBarUserAreaViewComponent(ISessionAppService sessionAppService,
14+
IMultiTenancyConfig multiTenancyConfig)
15+
{
16+
_sessionAppService = sessionAppService;
17+
_multiTenancyConfig = multiTenancyConfig;
18+
}
19+
20+
public async Task<IViewComponentResult> InvokeAsync()
21+
{
22+
var model = new SideBarUserAreaViewModel
23+
{
24+
LoginInformations = await _sessionAppService.GetCurrentLoginInformations(),
25+
IsMultiTenancyEnabled = _multiTenancyConfig.IsEnabled,
26+
};
27+
28+
return View(model);
29+
}
30+
}
31+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
using AbpCompanyName.AbpProjectName.Sessions.Dto;
2+
3+
namespace AbpCompanyName.AbpProjectName.Web.Views.Shared.Components.SideBarUserArea
4+
{
5+
public class SideBarUserAreaViewModel
6+
{
7+
public GetCurrentLoginInformationsOutput LoginInformations { get; set; }
8+
9+
public bool IsMultiTenancyEnabled { get; set; }
10+
11+
public string GetShownLoginName()
12+
{
13+
var userName = "<span id=\"HeaderCurrentUserName\">" + LoginInformations.User.UserName + "</span>";
14+
15+
if (!IsMultiTenancyEnabled)
16+
{
17+
return userName;
18+
}
19+
20+
return LoginInformations.Tenant == null
21+
? ".\\" + userName
22+
: LoginInformations.Tenant.TenancyName + "\\" + userName;
23+
}
24+
}
25+
}

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

Lines changed: 3 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
@using AbpCompanyName.AbpProjectName
55
@using AbpCompanyName.AbpProjectName.Web.Resources
66
@using AbpCompanyName.AbpProjectName.Web.Views.Shared.Components.SideBarNav
7+
@using AbpCompanyName.AbpProjectName.Web.Views.Shared.Components.SideBarUserArea
78
@using AbpCompanyName.AbpProjectName.Web.Views.Shared.Components.TopBarLanguageSwitch
89
@inject AbpCompanyName.AbpProjectName.Timing.AppTimes AppTimes
910
@inject IAbpAntiForgeryManager AbpAntiForgeryManager
@@ -218,7 +219,7 @@
218219
</li>
219220
<!-- #END# Notifications -->
220221

221-
@await Component.InvokeAsync(typeof(TopBarLanguageSwitchViewComponent), new { activeMenu = ViewBag.CurrentPageName })
222+
@await Component.InvokeAsync(typeof(TopBarLanguageSwitchViewComponent))
222223

223224
<li class="pull-right"><a href="javascript:void(0);" class="js-right-sidebar" data-close="true"><i class="material-icons">more_vert</i></a></li>
224225
</ul>
@@ -229,30 +230,8 @@
229230
<section>
230231
<!-- Left Sidebar -->
231232
<aside id="leftsidebar" class="sidebar">
232-
<!-- User Info -->
233-
<div class="user-info">
234-
<div class="image">
235-
<img src="~/images/user.png" width="48" height="48" alt="User" />
236-
</div>
237-
<div class="info-container">
238-
<div class="name" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">John Doe</div>
239-
<div class="email">john.doe@example.com</div>
240-
<div class="btn-group user-helper-dropdown">
241-
<i class="material-icons" data-toggle="dropdown" aria-haspopup="true" aria-expanded="true">keyboard_arrow_down</i>
242-
<ul class="dropdown-menu pull-right">
243-
<li><a href="javascript:void(0);"><i class="material-icons">person</i>Profile</a></li>
244-
<li role="seperator" class="divider"></li>
245-
<li><a href="javascript:void(0);"><i class="material-icons">group</i>Followers</a></li>
246-
<li><a href="javascript:void(0);"><i class="material-icons">shopping_cart</i>Sales</a></li>
247-
<li><a href="javascript:void(0);"><i class="material-icons">favorite</i>Likes</a></li>
248-
<li role="seperator" class="divider"></li>
249-
<li><a href="javascript:void(0);"><i class="material-icons">input</i>Sign Out</a></li>
250-
</ul>
251-
</div>
252-
</div>
253-
</div>
254-
<!-- #User Info -->
255233

234+
@await Component.InvokeAsync(typeof(SideBarUserAreaViewComponent))
256235
@await Component.InvokeAsync(typeof(SideBarNavViewComponent), new { activeMenu = ViewBag.CurrentPageName })
257236

258237
<!-- Footer -->

0 commit comments

Comments
 (0)