diff --git a/src/Umbraco.Core/Constants-Applications.cs b/src/Umbraco.Core/Constants-Applications.cs index 12f7076fc4..fb1fb42044 100644 --- a/src/Umbraco.Core/Constants-Applications.cs +++ b/src/Umbraco.Core/Constants-Applications.cs @@ -73,6 +73,11 @@ /// public const string DataTypes = "dataTypes"; + /// + /// alias for the packages tree + /// + public const string Packages = "packager"; + /// /// alias for the dictionary tree. /// diff --git a/src/Umbraco.Web.UI.Client/src/views/packagesNew/category.controller.js b/src/Umbraco.Web.UI.Client/src/views/packager/category.controller.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/views/packagesNew/category.controller.js rename to src/Umbraco.Web.UI.Client/src/views/packager/category.controller.js diff --git a/src/Umbraco.Web.UI.Client/src/views/packagesNew/category.html b/src/Umbraco.Web.UI.Client/src/views/packager/category.html similarity index 100% rename from src/Umbraco.Web.UI.Client/src/views/packagesNew/category.html rename to src/Umbraco.Web.UI.Client/src/views/packager/category.html diff --git a/src/Umbraco.Web.UI.Client/src/views/packagesNew/details.controller.js b/src/Umbraco.Web.UI.Client/src/views/packager/details.controller.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/views/packagesNew/details.controller.js rename to src/Umbraco.Web.UI.Client/src/views/packager/details.controller.js diff --git a/src/Umbraco.Web.UI.Client/src/views/packagesNew/details.html b/src/Umbraco.Web.UI.Client/src/views/packager/details.html similarity index 100% rename from src/Umbraco.Web.UI.Client/src/views/packagesNew/details.html rename to src/Umbraco.Web.UI.Client/src/views/packager/details.html diff --git a/src/Umbraco.Web.UI.Client/src/views/packagesNew/overview.controller.js b/src/Umbraco.Web.UI.Client/src/views/packager/overview.controller.js similarity index 83% rename from src/Umbraco.Web.UI.Client/src/views/packagesNew/overview.controller.js rename to src/Umbraco.Web.UI.Client/src/views/packager/overview.controller.js index 3a45f42761..487a715042 100644 --- a/src/Umbraco.Web.UI.Client/src/views/packagesNew/overview.controller.js +++ b/src/Umbraco.Web.UI.Client/src/views/packager/overview.controller.js @@ -1,7 +1,7 @@ (function () { "use strict"; - function PackagesOverviewController($scope, $route, $location) { + function PackagesOverviewController($scope, $route, $location, navigationService, $timeout) { var vm = this; @@ -26,6 +26,10 @@ } ]; + $timeout(function() { + navigationService.syncTree({ tree: "packager", path: "-1" }); + }); + } angular.module("umbraco").controller("Umbraco.Editors.Packages.OverviewController", PackagesOverviewController); diff --git a/src/Umbraco.Web.UI.Client/src/views/packagesNew/overview.html b/src/Umbraco.Web.UI.Client/src/views/packager/overview.html similarity index 100% rename from src/Umbraco.Web.UI.Client/src/views/packagesNew/overview.html rename to src/Umbraco.Web.UI.Client/src/views/packager/overview.html diff --git a/src/Umbraco.Web.UI.Client/src/views/packagesNew/views/install-local.controller.js b/src/Umbraco.Web.UI.Client/src/views/packager/views/install-local.controller.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/views/packagesNew/views/install-local.controller.js rename to src/Umbraco.Web.UI.Client/src/views/packager/views/install-local.controller.js diff --git a/src/Umbraco.Web.UI.Client/src/views/packagesNew/views/install-local.html b/src/Umbraco.Web.UI.Client/src/views/packager/views/install-local.html similarity index 100% rename from src/Umbraco.Web.UI.Client/src/views/packagesNew/views/install-local.html rename to src/Umbraco.Web.UI.Client/src/views/packager/views/install-local.html diff --git a/src/Umbraco.Web.UI.Client/src/views/packagesNew/views/installed.controller.js b/src/Umbraco.Web.UI.Client/src/views/packager/views/installed.controller.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/views/packagesNew/views/installed.controller.js rename to src/Umbraco.Web.UI.Client/src/views/packager/views/installed.controller.js diff --git a/src/Umbraco.Web.UI.Client/src/views/packagesNew/views/installed.html b/src/Umbraco.Web.UI.Client/src/views/packager/views/installed.html similarity index 100% rename from src/Umbraco.Web.UI.Client/src/views/packagesNew/views/installed.html rename to src/Umbraco.Web.UI.Client/src/views/packager/views/installed.html diff --git a/src/Umbraco.Web.UI.Client/src/views/packagesNew/views/repo.controller.js b/src/Umbraco.Web.UI.Client/src/views/packager/views/repo.controller.js similarity index 100% rename from src/Umbraco.Web.UI.Client/src/views/packagesNew/views/repo.controller.js rename to src/Umbraco.Web.UI.Client/src/views/packager/views/repo.controller.js diff --git a/src/Umbraco.Web.UI.Client/src/views/packagesNew/views/repo.html b/src/Umbraco.Web.UI.Client/src/views/packager/views/repo.html similarity index 100% rename from src/Umbraco.Web.UI.Client/src/views/packagesNew/views/repo.html rename to src/Umbraco.Web.UI.Client/src/views/packager/views/repo.html diff --git a/src/Umbraco.Web.UI/config/trees.config b/src/Umbraco.Web.UI/config/trees.config index 6c9fb153b6..456a72cecb 100644 --- a/src/Umbraco.Web.UI/config/trees.config +++ b/src/Umbraco.Web.UI/config/trees.config @@ -19,8 +19,6 @@ - - @@ -42,5 +40,5 @@ - + \ No newline at end of file diff --git a/src/Umbraco.Web/Trees/NewPackagesTreeController.cs b/src/Umbraco.Web/Trees/NewPackagesTreeController.cs deleted file mode 100644 index 9d3726540a..0000000000 --- a/src/Umbraco.Web/Trees/NewPackagesTreeController.cs +++ /dev/null @@ -1,51 +0,0 @@ -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.BusinessLogic.Actions; -using Umbraco.Core.Models.EntityBase; -using Umbraco.Core.Services; -using Constants = Umbraco.Core.Constants; - -namespace Umbraco.Web.Trees -{ - [UmbracoTreeAuthorize(Constants.Trees.DataTypes)] - [Tree(Constants.Applications.Developer, "packagesNew")] - [PluginController("UmbracoTrees")] - [CoreTree] - public class NewPackagesTreeController : TreeController - { - protected override TreeNodeCollection GetTreeNodes(string id, FormDataCollection queryStrings) - { - var baseUrl = Constants.Applications.Developer + "/packagesNew/"; - - var nodes = new TreeNodeCollection(); - - var node = CreateTreeNode("1", id, queryStrings, "Name", "icon-folder", false, ""); - node.Path = "path"; - node.RoutePath = baseUrl + "overview"; - //node.NodeType = "container"; - //TODO: This isn't the best way to ensure a noop process for clicking a node but it works for now. - //node.AdditionalData["jsClickCallback"] = "javascript:void(0);"; - - nodes.Add(node); - - return nodes; - } - - protected override MenuItemCollection GetMenuForNode(string id, FormDataCollection queryStrings) - { - var menu = new MenuItemCollection(); - return menu; - } - } -} \ No newline at end of file diff --git a/src/Umbraco.Web/Trees/PackagesTreeController.cs b/src/Umbraco.Web/Trees/PackagesTreeController.cs new file mode 100644 index 0000000000..4f8b70693e --- /dev/null +++ b/src/Umbraco.Web/Trees/PackagesTreeController.cs @@ -0,0 +1,97 @@ +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.BusinessLogic.Actions; +using umbraco.cms.businesslogic.packager; +using Umbraco.Core.Models.EntityBase; +using Umbraco.Core.Services; +using Constants = Umbraco.Core.Constants; + +namespace Umbraco.Web.Trees +{ + [UmbracoTreeAuthorize(Constants.Trees.Packages)] + [Tree(Constants.Applications.Developer, Constants.Trees.Packages, null, sortOrder: 3)] + [PluginController("UmbracoTrees")] + [CoreTree] + [LegacyBaseTree(typeof(loadPackager))] + public class PackagesTreeController : TreeController + { + /// + /// Helper method to create a root model for a tree + /// + /// + protected override TreeNode CreateRootNode(FormDataCollection queryStrings) + { + var root = base.CreateRootNode(queryStrings); + + //this will load in a custom UI instead of the dashboard for the root node + root.RoutePath = string.Format("{0}/{1}/{2}", Constants.Applications.Developer, Constants.Trees.Packages, "overview"); + root.Icon = "icon-box"; + + return root; + } + + protected override TreeNodeCollection GetTreeNodes(string id, FormDataCollection queryStrings) + { + var baseUrl = Constants.Applications.Developer + "/packages/"; + + var nodes = new TreeNodeCollection(); + + var createdPackages = CreatedPackage.GetAllCreatedPackages(); + + if (id == "created") + { + nodes.AddRange( + createdPackages + .OrderBy(entity => entity.Data.Name) + .Select(dt => + { + var node = CreateTreeNode(dt.Data.Id.ToString(), id, queryStrings, dt.Data.Name, "icon-inbox", false, + string.Format("/{0}/framed/{1}", + queryStrings.GetValue("application"), + Uri.EscapeDataString("developer/Packages/EditPackage.aspx?id=" + dt.Data.Id))); + return node; + })); + } + else + { + //must be root + var node = CreateTreeNode( + "created", + id, + queryStrings, + Services.TextService.Localize("treeHeaders/createdPackages"), + "icon-folder", + createdPackages.Count > 0, + string.Empty); + + + + //TODO: This isn't the best way to ensure a noop process for clicking a node but it works for now. + node.AdditionalData["jsClickCallback"] = "javascript:void(0);"; + + nodes.Add(node); + } + + + + return nodes; + } + + protected override MenuItemCollection GetMenuForNode(string id, FormDataCollection queryStrings) + { + var menu = new MenuItemCollection(); + return menu; + } + } +} \ No newline at end of file diff --git a/src/Umbraco.Web/Umbraco.Web.csproj b/src/Umbraco.Web/Umbraco.Web.csproj index 5102416548..f0e4b82aa3 100644 --- a/src/Umbraco.Web/Umbraco.Web.csproj +++ b/src/Umbraco.Web/Umbraco.Web.csproj @@ -376,7 +376,7 @@ - + diff --git a/src/Umbraco.Web/umbraco.presentation/umbraco/Trees/loadPackager.cs b/src/Umbraco.Web/umbraco.presentation/umbraco/Trees/loadPackager.cs index 5df6cc6f2a..5470d530ad 100644 --- a/src/Umbraco.Web/umbraco.presentation/umbraco/Trees/loadPackager.cs +++ b/src/Umbraco.Web/umbraco.presentation/umbraco/Trees/loadPackager.cs @@ -30,7 +30,8 @@ namespace umbraco /// /// Handles loading of the packager application into the developer application tree /// - [Tree(Constants.Applications.Developer, "packager", "Packages", sortOrder: 3)] + //[Tree(Constants.Applications.Developer, "packager", "Packages", sortOrder: 3)] + [Obsolete("This is no longer used and will be removed from the codebase in the future")] public class loadPackager : BaseTree { #region TreeI Members diff --git a/src/Umbraco.Web/umbraco.presentation/umbraco/Trees/loadPackages.cs b/src/Umbraco.Web/umbraco.presentation/umbraco/Trees/loadPackages.cs index 7bbf789981..154f995618 100644 --- a/src/Umbraco.Web/umbraco.presentation/umbraco/Trees/loadPackages.cs +++ b/src/Umbraco.Web/umbraco.presentation/umbraco/Trees/loadPackages.cs @@ -12,7 +12,8 @@ using umbraco.interfaces; namespace umbraco { - [Tree(Constants.Applications.Developer, "packagerPackages", "Packager Packages", initialize: false, sortOrder: 1)] + //[Tree(Constants.Applications.Developer, "packagerPackages", "Packager Packages", initialize: false, sortOrder: 1)] + [Obsolete("This is no longer used and will be removed from the codebase in the future")] public class loadPackages : BaseTree { diff --git a/src/Umbraco.Web/umbraco.presentation/umbraco/developer/Packages/editPackage.aspx.cs b/src/Umbraco.Web/umbraco.presentation/umbraco/developer/Packages/editPackage.aspx.cs index ceae3d5659..f9835223be 100644 --- a/src/Umbraco.Web/umbraco.presentation/umbraco/developer/Packages/editPackage.aspx.cs +++ b/src/Umbraco.Web/umbraco.presentation/umbraco/developer/Packages/editPackage.aspx.cs @@ -12,6 +12,7 @@ using umbraco.cms.businesslogic.template; using umbraco.cms.businesslogic.web; using umbraco.cms.presentation.Trees; using umbraco.controls; +using Umbraco.Core; using Umbraco.Core.IO; namespace umbraco.presentation.developer.packages @@ -65,8 +66,8 @@ namespace umbraco.presentation.developer.packages if (Page.IsPostBack == false) { ClientTools - .SetActiveTreeType(TreeDefinitionCollection.Instance.FindTree().Tree.Alias) - .SyncTree("-1,init," + loadPackages.PACKAGE_TREE_PREFIX + createdPackage.Data.Id, false); + .SetActiveTreeType(Constants.Trees.Packages) + .SyncTree("-1,created," + createdPackage.Data.Id, false); packageAuthorName.Text = pack.Author; packageAuthorUrl.Text = pack.AuthorUrl;