Add missing copy member type menu action (#12089)
This commit is contained in:
committed by
GitHub
parent
3c40c20d27
commit
cade6cb684
@@ -252,5 +252,19 @@ namespace Umbraco.Cms.Web.BackOffice.Controllers
|
||||
|
||||
return display;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Copy the member type
|
||||
/// </summary>
|
||||
/// <param name="copy"></param>
|
||||
/// <returns></returns>
|
||||
[Authorize(Policy = AuthorizationPolicies.TreeAccessMemberTypes)]
|
||||
public IActionResult PostCopy(MoveOrCopy copy)
|
||||
{
|
||||
return PerformCopy(
|
||||
copy,
|
||||
i => _memberTypeService.Get(i),
|
||||
(type, i) => _memberTypeService.Copy(type, i));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -26,8 +26,9 @@ namespace Umbraco.Cms.Web.BackOffice.Trees
|
||||
UmbracoApiControllerTypeCollection umbracoApiControllerTypeCollection,
|
||||
IMenuItemCollectionFactory menuItemCollectionFactory,
|
||||
IMemberGroupService memberGroupService,
|
||||
IEventAggregator eventAggregator)
|
||||
: base(localizedTextService, umbracoApiControllerTypeCollection, menuItemCollectionFactory, eventAggregator)
|
||||
IEventAggregator eventAggregator,
|
||||
IMemberTypeService memberTypeService)
|
||||
: base(localizedTextService, umbracoApiControllerTypeCollection, menuItemCollectionFactory, eventAggregator, memberTypeService)
|
||||
=> _memberGroupService = memberGroupService;
|
||||
|
||||
protected override IEnumerable<TreeNode> GetTreeNodesFromService(string id, FormCollection queryStrings)
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using Microsoft.AspNetCore.Http;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using Umbraco.Cms.Core;
|
||||
using Umbraco.Cms.Core.Actions;
|
||||
using Umbraco.Cms.Core.Events;
|
||||
@@ -8,6 +10,8 @@ using Umbraco.Cms.Core.Models.Trees;
|
||||
using Umbraco.Cms.Core.Services;
|
||||
using Umbraco.Cms.Core.Trees;
|
||||
using Umbraco.Cms.Web.Common.Attributes;
|
||||
using Umbraco.Cms.Web.Common.DependencyInjection;
|
||||
using Umbraco.Extensions;
|
||||
using Constants = Umbraco.Cms.Core.Constants;
|
||||
|
||||
namespace Umbraco.Cms.Web.BackOffice.Trees
|
||||
@@ -16,21 +20,46 @@ namespace Umbraco.Cms.Web.BackOffice.Trees
|
||||
[CoreTree]
|
||||
public abstract class MemberTypeAndGroupTreeControllerBase : TreeController
|
||||
{
|
||||
private readonly IMemberTypeService _memberTypeService;
|
||||
|
||||
public IMenuItemCollectionFactory MenuItemCollectionFactory { get; }
|
||||
|
||||
protected MemberTypeAndGroupTreeControllerBase(
|
||||
ILocalizedTextService localizedTextService,
|
||||
UmbracoApiControllerTypeCollection umbracoApiControllerTypeCollection,
|
||||
IMenuItemCollectionFactory menuItemCollectionFactory,
|
||||
IEventAggregator eventAggregator)
|
||||
IEventAggregator eventAggregator,
|
||||
IMemberTypeService memberTypeService)
|
||||
: base(localizedTextService, umbracoApiControllerTypeCollection, eventAggregator)
|
||||
{
|
||||
MenuItemCollectionFactory = menuItemCollectionFactory;
|
||||
|
||||
_memberTypeService = memberTypeService;
|
||||
}
|
||||
|
||||
[Obsolete("Use ctor injecting IMemberTypeService")]
|
||||
protected MemberTypeAndGroupTreeControllerBase(
|
||||
ILocalizedTextService localizedTextService,
|
||||
UmbracoApiControllerTypeCollection umbracoApiControllerTypeCollection,
|
||||
IMenuItemCollectionFactory menuItemCollectionFactory,
|
||||
IEventAggregator eventAggregator)
|
||||
: this(
|
||||
localizedTextService,
|
||||
umbracoApiControllerTypeCollection,
|
||||
menuItemCollectionFactory,
|
||||
eventAggregator,
|
||||
StaticServiceProvider.Instance.GetRequiredService<IMemberTypeService>())
|
||||
{
|
||||
}
|
||||
|
||||
protected override ActionResult<TreeNodeCollection> GetTreeNodes(string id, FormCollection queryStrings)
|
||||
{
|
||||
var nodes = new TreeNodeCollection();
|
||||
|
||||
// if the request is for folders only then just return
|
||||
if (queryStrings["foldersonly"].ToString().IsNullOrWhiteSpace() == false && queryStrings["foldersonly"].ToString() == "1")
|
||||
return nodes;
|
||||
|
||||
nodes.AddRange(GetTreeNodesFromService(id, queryStrings));
|
||||
return nodes;
|
||||
}
|
||||
@@ -48,7 +77,13 @@ namespace Umbraco.Cms.Web.BackOffice.Trees
|
||||
}
|
||||
else
|
||||
{
|
||||
//delete member type/group
|
||||
var memberType = _memberTypeService.Get(int.Parse(id));
|
||||
if (memberType != null)
|
||||
{
|
||||
menu.Items.Add<ActionCopy>(LocalizedTextService, opensDialog: true);
|
||||
}
|
||||
|
||||
// delete member type/group
|
||||
menu.Items.Add<ActionDelete>(LocalizedTextService, opensDialog: true);
|
||||
}
|
||||
|
||||
|
||||
@@ -32,13 +32,12 @@ namespace Umbraco.Cms.Web.BackOffice.Trees
|
||||
UmbracoTreeSearcher treeSearcher,
|
||||
IMemberTypeService memberTypeService,
|
||||
IEventAggregator eventAggregator)
|
||||
: base(localizedTextService, umbracoApiControllerTypeCollection, menuItemCollectionFactory, eventAggregator)
|
||||
: base(localizedTextService, umbracoApiControllerTypeCollection, menuItemCollectionFactory, eventAggregator, memberTypeService)
|
||||
{
|
||||
_treeSearcher = treeSearcher;
|
||||
_memberTypeService = memberTypeService;
|
||||
}
|
||||
|
||||
|
||||
protected override ActionResult<TreeNode> CreateRootNode(FormCollection queryStrings)
|
||||
{
|
||||
var rootResult = base.CreateRootNode(queryStrings);
|
||||
|
||||
Reference in New Issue
Block a user