mirror of https://github.com/abpframework/abp.git
17 changed files with 159 additions and 26 deletions
@ -1,10 +1,32 @@ |
|||
using Volo.Abp.Modularity; |
|||
using Volo.Abp.Localization; |
|||
using Volo.Abp.Modularity; |
|||
using Volo.Abp.Ui.Navigation; |
|||
using Volo.Abp.Ui.Navigation.Localization.Resource; |
|||
using Volo.Abp.VirtualFileSystem; |
|||
|
|||
namespace Volo.Abp.UI.Navigation |
|||
{ |
|||
[DependsOn(typeof(AbpUiModule))] |
|||
public class AbpUiNavigationModule : AbpModule |
|||
{ |
|||
public override void ConfigureServices(ServiceConfigurationContext context) |
|||
{ |
|||
Configure<VirtualFileSystemOptions>(options => |
|||
{ |
|||
options.FileSets.AddEmbedded<AbpUiNavigationModule>(); |
|||
}); |
|||
|
|||
Configure<AbpLocalizationOptions>(options => |
|||
{ |
|||
options.Resources |
|||
.Add<AbpUiNavigationResource>("en") |
|||
.AddVirtualJson("/Volo/Abp/Ui/Navigation/Localization/Resource"); |
|||
}); |
|||
|
|||
Configure<NavigationOptions>(options => |
|||
{ |
|||
options.MenuContributors.Add(new DefaultMenuContributor()); |
|||
}); |
|||
} |
|||
} |
|||
} |
|||
|
|||
@ -0,0 +1,35 @@ |
|||
using System.Linq; |
|||
using JetBrains.Annotations; |
|||
using Volo.Abp.Ui.Navigation; |
|||
|
|||
namespace Volo.Abp.UI.Navigation |
|||
{ |
|||
public static class ApplicationMenuExtensions |
|||
{ |
|||
[NotNull] |
|||
public static ApplicationMenuItem GetAdministration(this ApplicationMenu applicationMenu) |
|||
{ |
|||
return applicationMenu.GetMenuItem(DefaultMenuNames.Application.Main.Administration); |
|||
} |
|||
|
|||
[NotNull] |
|||
public static ApplicationMenuItem GetMenuItem(this IHasMenuItems menuWithItems, string menuItemName) |
|||
{ |
|||
var menuItem = menuWithItems.GetMenuItemOrNull(menuItemName); |
|||
if (menuItem == null) |
|||
{ |
|||
throw new AbpException($"Could not find a menu item with given name: {menuItemName}"); |
|||
} |
|||
|
|||
return menuItem; |
|||
} |
|||
|
|||
[CanBeNull] |
|||
public static ApplicationMenuItem GetMenuItemOrNull( |
|||
this IHasMenuItems menuWithItems, |
|||
string menuItemName) |
|||
{ |
|||
return menuWithItems.Items.FirstOrDefault(mi => mi.Name == menuItemName); |
|||
} |
|||
} |
|||
} |
|||
@ -0,0 +1,34 @@ |
|||
using Microsoft.Extensions.DependencyInjection; |
|||
using Microsoft.Extensions.Localization; |
|||
using System.Threading.Tasks; |
|||
using Volo.Abp.Ui.Navigation.Localization.Resource; |
|||
using Volo.Abp.UI.Navigation; |
|||
|
|||
namespace Volo.Abp.Ui.Navigation |
|||
{ |
|||
public class DefaultMenuContributor : IMenuContributor |
|||
{ |
|||
public virtual Task ConfigureMenuAsync(MenuConfigurationContext context) |
|||
{ |
|||
Configure(context); |
|||
return Task.CompletedTask; |
|||
} |
|||
|
|||
protected virtual void Configure(MenuConfigurationContext context) |
|||
{ |
|||
var l = context.ServiceProvider |
|||
.GetRequiredService<IStringLocalizer<AbpUiNavigationResource>>(); |
|||
|
|||
if (context.Menu.Name == StandardMenus.Main) |
|||
{ |
|||
context.Menu.AddItem( |
|||
new ApplicationMenuItem( |
|||
DefaultMenuNames.Application.Main.Administration, |
|||
l["Menu:Administration"], |
|||
icon: "fa fa-wrench" |
|||
) |
|||
); |
|||
} |
|||
} |
|||
} |
|||
} |
|||
@ -0,0 +1,13 @@ |
|||
namespace Volo.Abp.Ui.Navigation |
|||
{ |
|||
public static class DefaultMenuNames |
|||
{ |
|||
public static class Application |
|||
{ |
|||
public static class Main |
|||
{ |
|||
public const string Administration = "Abp.Application.Main.Administration"; |
|||
} |
|||
} |
|||
} |
|||
} |
|||
@ -0,0 +1,10 @@ |
|||
using Volo.Abp.Localization; |
|||
|
|||
namespace Volo.Abp.Ui.Navigation.Localization.Resource |
|||
{ |
|||
[LocalizationResourceName("AbpUiNavigation")] |
|||
public class AbpUiNavigationResource |
|||
{ |
|||
|
|||
} |
|||
} |
|||
@ -0,0 +1,6 @@ |
|||
{ |
|||
"culture": "en", |
|||
"texts": { |
|||
"Menu:Administration": "Administration" |
|||
} |
|||
} |
|||
@ -0,0 +1,6 @@ |
|||
{ |
|||
"culture": "tr", |
|||
"texts": { |
|||
"Menu:Administration": "Yönetim" |
|||
} |
|||
} |
|||
Loading…
Reference in new issue