U4-8193 replaced loadMacros with MacrosTreeController
This commit is contained in:
@@ -106,6 +106,8 @@
|
||||
public const string Xslt = "xslt";
|
||||
|
||||
public const string Languages = "languages";
|
||||
|
||||
public const string Macros = "macros";
|
||||
|
||||
/// <summary>
|
||||
/// alias for the user types tree.
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
<add initialize="true" sortOrder="8" alias="mediaTypes" application="settings" title="Media Types" iconClosed="icon-folder" iconOpen="icon-folder-open" type="Umbraco.Web.Trees.MediaTypeTreeController, umbraco" />
|
||||
|
||||
<!--Developer-->
|
||||
<add application="developer" alias="macros" title="Macros" type="umbraco.loadMacros, umbraco" iconClosed="icon-folder" iconOpen="icon-folder" sortOrder="2" />
|
||||
<add application="developer" alias="macros" title="Macros" type="Umbraco.Web.Trees.MacrosTreeController, umbraco" iconClosed="icon-folder" iconOpen="icon-folder" sortOrder="2" />
|
||||
<add application="developer" alias="packager" title="Packages" type="umbraco.loadPackager, umbraco" iconClosed="icon-folder" iconOpen="icon-folder" sortOrder="3" />
|
||||
<add application="developer" alias="packagerPackages" title="Packager Packages" type="umbraco.loadPackages, umbraco" iconClosed="icon-folder" iconOpen="icon-folder" initialize="false" sortOrder="3" />
|
||||
<add application="developer" alias="relationTypes" title="Relation Types" type="umbraco.loadRelationTypes, umbraco" iconClosed="icon-folder" iconOpen="icon-folder" sortOrder="4" />
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
<add initialize="true" sortOrder="7" alias="dataTypes" application="settings" title="Data Types" iconClosed="icon-folder" iconOpen="icon-folder" type="Umbraco.Web.Trees.DataTypeTreeController, umbraco" />
|
||||
<add initialize="true" sortOrder="8" alias="mediaTypes" application="settings" title="Media Types" iconClosed="icon-folder" iconOpen="icon-folder-open" type="Umbraco.Web.Trees.MediaTypeTreeController, umbraco" />
|
||||
<!--Developer-->
|
||||
<add application="developer" alias="macros" title="Macros" type="umbraco.loadMacros, umbraco" iconClosed="icon-folder" iconOpen="icon-folder" sortOrder="2" />
|
||||
<add application="developer" alias="macros" title="Macros" type="Umbraco.Web.Trees.MacrosTreeController, umbraco" iconClosed="icon-folder" iconOpen="icon-folder" sortOrder="2" />
|
||||
<add application="developer" alias="packager" title="Packages" type="umbraco.loadPackager, umbraco" iconClosed="icon-folder" iconOpen="icon-folder" sortOrder="3" />
|
||||
<add application="developer" alias="packagerPackages" title="Packager Packages" type="umbraco.loadPackages, umbraco" iconClosed="icon-folder" iconOpen="icon-folder" initialize="false" sortOrder="3" />
|
||||
<add application="developer" alias="relationTypes" title="Relation Types" type="umbraco.loadRelationTypes, umbraco" iconClosed="icon-folder" iconOpen="icon-folder" sortOrder="4" />
|
||||
|
||||
88
src/Umbraco.Web/Trees/MacrosTreeController.cs
Normal file
88
src/Umbraco.Web/Trees/MacrosTreeController.cs
Normal file
@@ -0,0 +1,88 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Globalization;
|
||||
using System.Linq;
|
||||
using System.Net;
|
||||
using System.Net.Http.Formatting;
|
||||
using System.Web.Http;
|
||||
using Umbraco.Core;
|
||||
using Umbraco.Core.Models;
|
||||
using Umbraco.Web.Models.Trees;
|
||||
using Umbraco.Web.Mvc;
|
||||
using Umbraco.Web.WebApi.Filters;
|
||||
using umbraco;
|
||||
using Umbraco.Core.Models.EntityBase;
|
||||
using Umbraco.Core.Services;
|
||||
using Umbraco.Web._Legacy.Actions;
|
||||
using Constants = Umbraco.Core.Constants;
|
||||
|
||||
namespace Umbraco.Web.Trees
|
||||
{
|
||||
[UmbracoTreeAuthorize(Constants.Trees.Macros)]
|
||||
[Tree(Constants.Applications.Developer, Constants.Trees.Macros, "Macros", sortOrder: 2)]
|
||||
[PluginController("UmbracoTrees")]
|
||||
[CoreTree]
|
||||
public class MacrosTreeController : TreeController
|
||||
{
|
||||
protected override TreeNodeCollection GetTreeNodes(string id, FormDataCollection queryStrings)
|
||||
{
|
||||
var nodes = new TreeNodeCollection();
|
||||
|
||||
if (id == Constants.System.Root.ToInvariantString())
|
||||
{
|
||||
foreach (var macro in Services.MacroService.GetAll())
|
||||
{
|
||||
nodes.Add(CreateTreeNode(
|
||||
macro.Id.ToString(),
|
||||
id,
|
||||
queryStrings,
|
||||
macro.Name,
|
||||
"icon-settings-alt",
|
||||
false,
|
||||
//TODO: Rebuild the macro editor in angular, then we dont need to have this at all (which is just a path to the legacy editor)
|
||||
"/" + queryStrings.GetValue<string>("application") + "/framed/" +
|
||||
Uri.EscapeDataString("/umbraco/developer/macros/editMacro.aspx?macroID=" + macro.Id)));
|
||||
}
|
||||
}
|
||||
|
||||
return nodes;
|
||||
}
|
||||
|
||||
protected override MenuItemCollection GetMenuForNode(string id, FormDataCollection queryStrings)
|
||||
{
|
||||
var menu = new MenuItemCollection();
|
||||
|
||||
if (id == Constants.System.Root.ToInvariantString())
|
||||
{
|
||||
//Create the normal create action
|
||||
menu.Items.Add<ActionNew>(Services.TextService.Localize("actions", ActionNew.Instance.Alias))
|
||||
//Since we haven't implemented anything for macros in angular, this needs to be converted to
|
||||
//use the legacy format
|
||||
.ConvertLegacyMenuItem(null, "initmacros", queryStrings.GetValue<string>("application"));
|
||||
|
||||
//refresh action
|
||||
menu.Items.Add<RefreshNode, ActionRefresh>(Services.TextService.Localize("actions", ActionRefresh.Instance.Alias), true);
|
||||
|
||||
return menu;
|
||||
}
|
||||
|
||||
|
||||
var macro = Services.MacroService.GetById(int.Parse(id));
|
||||
if (macro == null) return new MenuItemCollection();
|
||||
|
||||
//add delete option for all languages
|
||||
menu.Items.Add<ActionDelete>(Services.TextService.Localize("actions", ActionDelete.Instance.Alias))
|
||||
//Since we haven't implemented anything for languages in angular, this needs to be converted to
|
||||
//use the legacy format
|
||||
.ConvertLegacyMenuItem(new UmbracoEntity
|
||||
{
|
||||
Id = macro.Id,
|
||||
Level = 1,
|
||||
ParentId = -1,
|
||||
Name = macro.Name
|
||||
}, "macros", queryStrings.GetValue<string>("application"));
|
||||
|
||||
return menu;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -326,6 +326,7 @@
|
||||
<Compile Include="Editors\IEditorValidator.cs" />
|
||||
<Compile Include="Editors\EditorModelEventManager.cs" />
|
||||
<Compile Include="HtmlHelperBackOfficeExtensions.cs" />
|
||||
<Compile Include="Trees\MacrosTreeController.cs" />
|
||||
<Compile Include="Trees\UserTypesTreeController.cs" />
|
||||
<Compile Include="_Legacy\Actions\Action.cs" />
|
||||
<Compile Include="_Legacy\Actions\ActionAssignDomain.cs" />
|
||||
@@ -1547,7 +1548,6 @@
|
||||
<Compile Include="umbraco.presentation\umbraco\Trees\BaseTree.cs" />
|
||||
<Compile Include="umbraco.presentation\umbraco\Trees\FileSystemTree.cs" />
|
||||
<Compile Include="umbraco.presentation\umbraco\Trees\loadDictionary.cs" />
|
||||
<Compile Include="umbraco.presentation\umbraco\Trees\loadMacros.cs" />
|
||||
<Compile Include="umbraco.presentation\umbraco\Trees\loadMemberGroups.cs" />
|
||||
<Compile Include="umbraco.presentation\umbraco\Trees\loadPackages.cs" />
|
||||
<Compile Include="umbraco.presentation\umbraco\Trees\loadScripts.cs" />
|
||||
|
||||
@@ -1,66 +0,0 @@
|
||||
using System;
|
||||
using System.Text;
|
||||
|
||||
using umbraco.DataLayer;
|
||||
using umbraco.cms.presentation.Trees;
|
||||
using Umbraco.Core;
|
||||
using Umbraco.Web.Trees;
|
||||
|
||||
|
||||
namespace umbraco
|
||||
{
|
||||
/// <summary>
|
||||
/// Handles loading of the cache application into the developer application tree
|
||||
/// </summary>
|
||||
[Tree(Constants.Applications.Developer, "macros", "Macros", sortOrder: 2)]
|
||||
public class loadMacros : BaseTree
|
||||
{
|
||||
|
||||
public loadMacros(string application) : base(application) { }
|
||||
|
||||
protected override void CreateRootNode(ref XmlTreeNode rootNode)
|
||||
{
|
||||
rootNode.NodeType = "init" + TreeAlias;
|
||||
rootNode.NodeID = "init";
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Renders the JS.
|
||||
/// </summary>
|
||||
/// <param name="Javascript">The javascript.</param>
|
||||
public override void RenderJS(ref StringBuilder Javascript)
|
||||
{
|
||||
Javascript.Append(
|
||||
@"
|
||||
function openMacro(id) {
|
||||
UmbClientMgr.contentFrame('developer/macros/editMacro.aspx?macroID=' + id);
|
||||
}
|
||||
");
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// This will call the normal Render method by passing the converted XmlTree to an XmlDocument.
|
||||
/// TODO: need to update this render method to do everything that the obsolete render method does and remove the obsolete method
|
||||
/// </summary>
|
||||
/// <param name="tree"></param>
|
||||
public override void Render(ref XmlTree tree)
|
||||
{
|
||||
foreach(var macros in ApplicationContext.Current.DatabaseContext.Database.Query<dynamic>("select id, macroName from cmsMacro order by macroName"))
|
||||
{
|
||||
XmlTreeNode xNode = XmlTreeNode.Create(this);
|
||||
xNode.NodeID = macros.id.ToString();
|
||||
xNode.Text = macros.macroName;
|
||||
xNode.Action = "javascript:openMacro(" + macros.id + ");";
|
||||
xNode.Icon = " icon-settings-alt";
|
||||
xNode.OpenIcon = "icon-settings-alt";
|
||||
OnBeforeNodeRender(ref tree, ref xNode, EventArgs.Empty);
|
||||
if (xNode != null)
|
||||
{
|
||||
tree.Add(xNode);
|
||||
}
|
||||
OnAfterNodeRender(ref tree, ref xNode, EventArgs.Empty);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -44,7 +44,7 @@ namespace umbraco.cms.presentation.developer
|
||||
if (IsPostBack == false)
|
||||
{
|
||||
ClientTools
|
||||
.SetActiveTreeType(TreeDefinitionCollection.Instance.FindTree<loadMacros>().Tree.Alias)
|
||||
.SetActiveTreeType(Constants.Trees.Macros)
|
||||
.SyncTree("-1,init," + _macro.Id, false);
|
||||
|
||||
string tempMacroAssembly = _macro.ControlAssembly ?? "";
|
||||
@@ -292,7 +292,7 @@ namespace umbraco.cms.presentation.developer
|
||||
Page.Validate();
|
||||
|
||||
ClientTools
|
||||
.SetActiveTreeType(TreeDefinitionCollection.Instance.FindTree<loadMacros>().Tree.Alias)
|
||||
.SetActiveTreeType(Constants.Trees.Macros)
|
||||
.SyncTree("-1,init," + _macro.Id.ToInvariantString(), true); //true forces the reload
|
||||
|
||||
var tempMacroAssembly = macroAssembly.Text;
|
||||
|
||||
Reference in New Issue
Block a user