Support SVG icon in action menu (#12403)

* Support custom SVG icon in menu item with legacy support

* Update menu icons

* Update action icons

* Adjust icons in menu actions with legacy fallback

* Don't use legacy icon

* Update comments
This commit is contained in:
Bjarne Fyrstenborg
2022-05-16 23:50:19 +02:00
committed by GitHub
parent 048193e3a5
commit d051f850eb
39 changed files with 244 additions and 189 deletions

View File

@@ -169,8 +169,8 @@ namespace Umbraco.Cms.Web.BackOffice.Trees
.Select(x => new MenuItem(x));
//these two are the standard items
menu.Items.Add<ActionNew>(LocalizedTextService, opensDialog: true);
menu.Items.Add<ActionSort>(LocalizedTextService, true, opensDialog: true);
menu.Items.Add<ActionNew>(LocalizedTextService, opensDialog: true, useLegacyIcon: false);
menu.Items.Add<ActionSort>(LocalizedTextService, true, opensDialog: true, useLegacyIcon: false);
//filter the standard items
FilterUserAllowedMenuItems(menu, nodeActions);
@@ -271,23 +271,24 @@ namespace Umbraco.Cms.Web.BackOffice.Trees
protected MenuItemCollection GetAllNodeMenuItems(IUmbracoEntity item)
{
var menu = _menuItemCollectionFactory.Create();
AddActionNode<ActionNew>(item, menu, opensDialog: true);
AddActionNode<ActionDelete>(item, menu, opensDialog: true);
AddActionNode<ActionCreateBlueprintFromContent>(item, menu, opensDialog: true);
AddActionNode<ActionMove>(item, menu, true, opensDialog: true);
AddActionNode<ActionCopy>(item, menu, opensDialog: true);
AddActionNode<ActionSort>(item, menu, true, opensDialog: true);
AddActionNode<ActionAssignDomain>(item, menu, opensDialog: true);
AddActionNode<ActionRights>(item, menu, opensDialog: true);
AddActionNode<ActionProtect>(item, menu, true, opensDialog: true);
AddActionNode<ActionNew>(item, menu, opensDialog: true, useLegacyIcon: false);
AddActionNode<ActionDelete>(item, menu, opensDialog: true, useLegacyIcon: false);
AddActionNode<ActionCreateBlueprintFromContent>(item, menu, opensDialog: true, useLegacyIcon: false);
AddActionNode<ActionMove>(item, menu, true, opensDialog: true, useLegacyIcon: false);
AddActionNode<ActionCopy>(item, menu, opensDialog: true, useLegacyIcon: false);
AddActionNode<ActionSort>(item, menu, true, opensDialog: true, useLegacyIcon: false);
AddActionNode<ActionAssignDomain>(item, menu, opensDialog: true, useLegacyIcon: false);
AddActionNode<ActionRights>(item, menu, opensDialog: true, useLegacyIcon: false);
AddActionNode<ActionProtect>(item, menu, true, opensDialog: true, useLegacyIcon: false);
if (_emailSender.CanSendRequiredEmail())
{
menu.Items.Add(new MenuItem("notify", LocalizedTextService)
{
Icon = "megaphone",
Icon = "icon-megaphone",
SeparatorBefore = true,
OpensDialog = true
OpensDialog = true,
UseLegacyIcon = false,
});
}
@@ -307,9 +308,9 @@ namespace Umbraco.Cms.Web.BackOffice.Trees
protected MenuItemCollection GetNodeMenuItemsForDeletedContent(IUmbracoEntity item)
{
var menu = _menuItemCollectionFactory.Create();
menu.Items.Add<ActionRestore>(LocalizedTextService, opensDialog: true);
menu.Items.Add<ActionMove>(LocalizedTextService, opensDialog: true);
menu.Items.Add<ActionDelete>(LocalizedTextService, opensDialog: true);
menu.Items.Add<ActionRestore>(LocalizedTextService, opensDialog: true, useLegacyIcon: false);
menu.Items.Add<ActionMove>(LocalizedTextService, opensDialog: true, useLegacyIcon: false);
menu.Items.Add<ActionDelete>(LocalizedTextService, opensDialog: true, useLegacyIcon: false);
menu.Items.Add(new RefreshNode(LocalizedTextService, true));
@@ -361,10 +362,10 @@ namespace Umbraco.Cms.Web.BackOffice.Trees
}
}
private void AddActionNode<TAction>(IUmbracoEntity item, MenuItemCollection menu, bool hasSeparator = false, bool opensDialog = false)
private void AddActionNode<TAction>(IUmbracoEntity item, MenuItemCollection menu, bool hasSeparator = false, bool opensDialog = false, bool useLegacyIcon = true)
where TAction : IAction
{
var menuItem = menu.Items.Add<TAction>(LocalizedTextService, hasSeparator, opensDialog);
var menuItem = menu.Items.Add<TAction>(LocalizedTextService, hasSeparator, opensDialog, useLegacyIcon);
}
public async Task<EntitySearchResults> SearchAsync(string query, int pageSize, long pageIndex, string? searchFrom = null)