mirror of https://github.com/abpframework/abp.git
csharpabpc-sharpframeworkblazoraspnet-coredotnet-coreaspnetcorearchitecturesaasdomain-driven-designangularmulti-tenancy
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
118 lines
3.9 KiB
118 lines
3.9 KiB
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Threading.Tasks;
|
|
using Volo.Abp.Authorization.Permissions;
|
|
using Volo.Abp.GlobalFeatures;
|
|
using Volo.Abp.UI.Navigation;
|
|
using Volo.CmsKit.GlobalFeatures;
|
|
using Volo.CmsKit.Localization;
|
|
using Volo.CmsKit.Permissions;
|
|
|
|
namespace Volo.CmsKit.Admin.Web.Menus;
|
|
|
|
public class CmsKitAdminMenuContributor : IMenuContributor
|
|
{
|
|
public async Task ConfigureMenuAsync(MenuConfigurationContext context)
|
|
{
|
|
if (context.Menu.Name == StandardMenus.Main)
|
|
{
|
|
await ConfigureMainMenuAsync(context);
|
|
}
|
|
}
|
|
|
|
private async Task ConfigureMainMenuAsync(MenuConfigurationContext context)
|
|
{
|
|
await AddCmsMenuAsync(context);
|
|
}
|
|
|
|
private async Task AddCmsMenuAsync(MenuConfigurationContext context)
|
|
{
|
|
var l = context.GetLocalizer<CmsKitResource>();
|
|
|
|
var cmsMenus = new List<ApplicationMenuItem>();
|
|
|
|
cmsMenus.Add(new ApplicationMenuItem(
|
|
CmsKitAdminMenus.Pages.PagesMenu,
|
|
l["Pages"].Value,
|
|
"/Cms/Pages",
|
|
"fa fa-file-alt",
|
|
order: 6)
|
|
.RequireGlobalFeatures(typeof(PagesFeature))
|
|
.RequirePermissions(CmsKitAdminPermissions.Pages.Default));
|
|
|
|
cmsMenus.Add(new ApplicationMenuItem(
|
|
CmsKitAdminMenus.Blogs.BlogsMenu,
|
|
l["Blogs"],
|
|
"/Cms/Blogs",
|
|
"fa fa-blog",
|
|
order: 1)
|
|
.RequireGlobalFeatures(typeof(BlogsFeature))
|
|
.RequirePermissions(CmsKitAdminPermissions.Blogs.Default));
|
|
|
|
cmsMenus.Add(new ApplicationMenuItem(
|
|
CmsKitAdminMenus.BlogPosts.BlogPostsMenu,
|
|
l["BlogPosts"],
|
|
"/Cms/BlogPosts",
|
|
"fa fa-file-signature",
|
|
order: 2)
|
|
.RequireGlobalFeatures(typeof(BlogsFeature))
|
|
.RequirePermissions(CmsKitAdminPermissions.BlogPosts.Default));
|
|
|
|
cmsMenus.Add(new ApplicationMenuItem(
|
|
CmsKitAdminMenus.Tags.TagsMenu,
|
|
l["Tags"].Value,
|
|
"/Cms/Tags",
|
|
"fa fa-tags",
|
|
order: 7)
|
|
.RequireGlobalFeatures(typeof(TagsFeature))
|
|
.RequirePermissions(CmsKitAdminPermissions.Tags.Default));
|
|
|
|
cmsMenus.Add(new ApplicationMenuItem(
|
|
CmsKitAdminMenus.Comments.CommentsMenu,
|
|
l["Comments"].Value,
|
|
"/Cms/Comments",
|
|
"fa fa-comments",
|
|
order: 3)
|
|
.RequireGlobalFeatures(typeof(CommentsFeature))
|
|
.RequirePermissions(CmsKitAdminPermissions.Comments.Default));
|
|
|
|
cmsMenus.Add(new ApplicationMenuItem(
|
|
CmsKitAdminMenus.Menus.MenusMenu,
|
|
l["Menus"],
|
|
"/Cms/Menus/Items",
|
|
"fa fa-stream",
|
|
order: 5)
|
|
.RequireGlobalFeatures(typeof(MenuFeature))
|
|
.RequirePermissions(CmsKitAdminPermissions.Menus.Default));
|
|
|
|
cmsMenus.Add(new ApplicationMenuItem(
|
|
CmsKitAdminMenus.GlobalResources.GlobalResourcesMenu,
|
|
l["GlobalResources"],
|
|
"/Cms/GlobalResources",
|
|
"bi bi-code-slash",
|
|
order: 4)
|
|
.RequireGlobalFeatures(typeof(GlobalResourcesFeature))
|
|
.RequirePermissions(CmsKitAdminPermissions.GlobalResources.Default));
|
|
|
|
if (cmsMenus.Any())
|
|
{
|
|
var cmsMenu = context.Menu.FindMenuItem(CmsKitAdminMenus.GroupName);
|
|
|
|
if (cmsMenu == null)
|
|
{
|
|
cmsMenu = new ApplicationMenuItem(
|
|
CmsKitAdminMenus.GroupName,
|
|
l["Cms"],
|
|
icon: "far fa-newspaper");
|
|
|
|
context.Menu.AddItem(cmsMenu);
|
|
}
|
|
|
|
foreach (var menu in cmsMenus)
|
|
{
|
|
cmsMenu.AddItem(menu);
|
|
}
|
|
|
|
}
|
|
}
|
|
}
|
|
|