Browse Source

Made menu fully working for the blazor server.

pull/8074/head
Halil İbrahim Kalkan 5 years ago
parent
commit
21abc1cff2
  1. 32
      framework/src/Volo.Abp.AspNetCore.Components.Server.BasicTheme/Themes/Basic/LoginDisplay.razor
  2. 2
      framework/src/Volo.Abp.AspNetCore.Components.Web.BasicTheme/Themes/Basic/FirstLevelNavMenuItem.razor
  3. 2
      framework/src/Volo.Abp.AspNetCore.Components.Web.BasicTheme/Themes/Basic/SecondLevelNavMenuItem.razor
  4. 1
      framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/AbpUiResource.cs
  5. 4
      modules/identity/src/Volo.Abp.Identity.Blazor/AbpIdentityWebMainMenuContributor.cs
  6. 2
      modules/setting-management/src/Volo.Abp.SettingManagement.Blazor/Menus/SettingManagementMenuContributor.cs
  7. 12
      modules/tenant-management/src/Volo.Abp.TenantManagement.Blazor/Navigation/TenantManagementBlazorMenuContributor.cs
  8. 1
      templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/MyCompanyName.MyProjectName.Blazor.Server.csproj
  9. 4
      templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/MyProjectNameBlazorServerModule.cs

32
framework/src/Volo.Abp.AspNetCore.Components.Server.BasicTheme/Themes/Basic/LoginDisplay.razor

@ -1,10 +1,13 @@
@namespace Volo.Abp.AspNetCore.Components.Web.BasicTheme.Server.Themes.Basic
@using Volo.Abp.Users
@using Volo.Abp.MultiTenancy
@using Microsoft.Extensions.Localization
@using global::Localization.Resources.AbpUi
@inject ICurrentUser CurrentUser
@inject ICurrentTenant CurrentTenant
@inject IJSRuntime JsRuntime
@inject NavigationManager Navigation
@inject IStringLocalizer<AbpUiResource> L
<AuthorizeView>
<Authorized>
<Dropdown>
@ -23,36 +26,13 @@
{
@foreach (var menuItem in Menu.Items)
{
<DropdownItem Clicked="@(() => NavigateToAsync(menuItem.Url, menuItem.Target))">@menuItem.DisplayName</DropdownItem>
<a class="dropdown-item" href="@menuItem.Url?.TrimStart('~')" target="@menuItem.Target">@menuItem.DisplayName</a>
}
}
<DropdownDivider />
<DropdownItem Clicked="Logout">Logout</DropdownItem>
</DropdownMenu>
</Dropdown>
</Authorized>
<NotAuthorized>
<a class="nav-link" href="/Account/Login">Log in</a>
<a class="nav-link" href="/Account/Login">@L["Login"]</a>
</NotAuthorized>
</AuthorizeView>
@code{
private async Task NavigateToAsync(string uri, string target = null)
{
uri = uri.TrimStart('~');
if (target == "_blank")
{
await JsRuntime.InvokeVoidAsync("open", uri, target);
}
else
{
Navigation.NavigateTo(uri);
}
}
private void Logout()
{
Navigation.NavigateTo("/Account/Logout", forceLoad: true);
}
}
</AuthorizeView>

2
framework/src/Volo.Abp.AspNetCore.Components.Web.BasicTheme/Themes/Basic/FirstLevelNavMenuItem.razor

@ -3,7 +3,7 @@
var elementId = MenuItem.ElementId ?? "MenuItem_" + MenuItem.Name.Replace(".", "_");
var cssClass = string.IsNullOrEmpty(MenuItem.CssClass) ? string.Empty : MenuItem.CssClass;
var disabled = MenuItem.IsDisabled ? "disabled" : string.Empty;
var url = MenuItem.Url == null ? "#" : MenuItem.Url.TrimStart('/');
var url = MenuItem.Url == null ? "#" : MenuItem.Url.TrimStart('/', '~');
}
@if (MenuItem.IsLeaf)
{

2
framework/src/Volo.Abp.AspNetCore.Components.Web.BasicTheme/Themes/Basic/SecondLevelNavMenuItem.razor

@ -3,7 +3,7 @@
var elementId = MenuItem.ElementId ?? "MenuItem_" + MenuItem.Name.Replace(".", "_");
var cssClass = string.IsNullOrEmpty(MenuItem.CssClass) ? string.Empty : MenuItem.CssClass;
var disabled = MenuItem.IsDisabled ? "disabled" : string.Empty;
var url = MenuItem.Url == null ? "#" : MenuItem.Url.TrimStart('/');
var url = MenuItem.Url == null ? "#" : MenuItem.Url.TrimStart('/', '~');
}
@if (MenuItem.IsLeaf)
{

1
framework/src/Volo.Abp.UI/Localization/Resources/AbpUi/AbpUiResource.cs

@ -2,7 +2,6 @@
namespace Localization.Resources.AbpUi
{
//TODO: Move to the Volo.Abp.UI.Localization.Resource folder
[LocalizationResourceName("AbpUi")]
public class AbpUiResource
{

4
modules/identity/src/Volo.Abp.Identity.Blazor/AbpIdentityWebMainMenuContributor.cs

@ -24,14 +24,14 @@ namespace Volo.Abp.Identity.Blazor
identityMenuItem.AddItem(new ApplicationMenuItem(
IdentityMenuNames.Roles,
l["Roles"],
url: "identity/roles",
url: "~/identity/roles",
requiredPermissionName: IdentityPermissions.Roles.Default));
identityMenuItem.AddItem(new ApplicationMenuItem(
IdentityMenuNames.Users,
l["Users"],
url: "identity/users",
url: "~/identity/users",
requiredPermissionName: IdentityPermissions.Users.Default));
return Task.CompletedTask;

2
modules/setting-management/src/Volo.Abp.SettingManagement.Blazor/Menus/SettingManagementMenuContributor.cs

@ -37,7 +37,7 @@ namespace Volo.Abp.SettingManagement.Blazor.Menus
new ApplicationMenuItem(
SettingManagementMenus.GroupName,
l["Settings"],
"setting-management",
"~/setting-management",
icon: "fa fa-cog"
)
);

12
modules/tenant-management/src/Volo.Abp.TenantManagement.Blazor/Navigation/TenantManagementBlazorMenuContributor.cs

@ -17,15 +17,19 @@ namespace Volo.Abp.TenantManagement.Blazor.Navigation
var l = context.GetLocalizer<AbpTenantManagementResource>();
var tenantManagementMenuItem = new ApplicationMenuItem(TenantManagementMenuNames.GroupName,
l["Menu:TenantManagement"], icon: "fa fa-users");
var tenantManagementMenuItem = new ApplicationMenuItem(
TenantManagementMenuNames.GroupName,
l["Menu:TenantManagement"],
icon: "fa fa-users"
);
administrationMenu.AddItem(tenantManagementMenuItem);
tenantManagementMenuItem.AddItem(new ApplicationMenuItem(
TenantManagementMenuNames.Tenants,
l["Tenants"],
url: "tenant-management/tenants",
requiredPermissionName: TenantManagementPermissions.Tenants.Default));
url: "~/tenant-management/tenants",
requiredPermissionName: TenantManagementPermissions.Tenants.Default
));
return Task.CompletedTask;
}

1
templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/MyCompanyName.MyProjectName.Blazor.Server.csproj

@ -24,6 +24,7 @@
<ProjectReference Include="..\..\..\..\..\modules\account\src\Volo.Abp.Account.Web.IdentityServer\Volo.Abp.Account.Web.IdentityServer.csproj" />
<ProjectReference Include="..\..\..\..\..\modules\identity\src\Volo.Abp.Identity.Blazor\Volo.Abp.Identity.Blazor.csproj" />
<ProjectReference Include="..\..\..\..\..\modules\tenant-management\src\Volo.Abp.TenantManagement.Blazor\Volo.Abp.TenantManagement.Blazor.csproj" />
<ProjectReference Include="..\..\..\..\..\modules\setting-management\src\Volo.Abp.SettingManagement.Blazor\Volo.Abp.SettingManagement.Blazor.csproj" />
</ItemGroup>
<ItemGroup>

4
templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor.Server/MyProjectNameBlazorServerModule.cs

@ -33,6 +33,7 @@ using Volo.Abp.AutoMapper;
using Volo.Abp.Identity.Blazor;
using Volo.Abp.Localization;
using Volo.Abp.Modularity;
using Volo.Abp.SettingManagement.Blazor;
using Volo.Abp.Swashbuckle;
using Volo.Abp.TenantManagement.Blazor;
using Volo.Abp.UI;
@ -54,7 +55,8 @@ namespace MyCompanyName.MyProjectName.Blazor.Server
typeof(AbpAccountWebIdentityServerModule),
typeof(AbpAspNetCoreComponentsServerBasicThemeModule),
typeof(AbpIdentityBlazorModule),
typeof(AbpTenantManagementBlazorModule)
typeof(AbpTenantManagementBlazorModule),
typeof(AbpSettingManagementBlazorModule)
)]
public class MyProjectNameBlazorServerModule : AbpModule
{

Loading…
Cancel
Save