diff --git a/src/Umbraco.Web.UI.Client/src/common/services/mediatypehelper.service.js b/src/Umbraco.Web.UI.Client/src/common/services/mediatypehelper.service.js index 87804c8473..7e0e1db24f 100644 --- a/src/Umbraco.Web.UI.Client/src/common/services/mediatypehelper.service.js +++ b/src/Umbraco.Web.UI.Client/src/common/services/mediatypehelper.service.js @@ -23,6 +23,10 @@ function mediaTypeHelper(mediaTypeResource, $q) { getAllowedImagetypes: function (mediaId){ //TODO: This is horribly inneficient - why make one request per type!? + //This should make a call to c# to get exactly what it's looking for instead of returning every single media type and doing + //some filtering on the client side. + //This is also called multiple times when it's not needed! Example, when launching the media picker, this will be called twice + //which means we'll be making at least 6 REST calls to fetch each media type // Get All allowedTypes return mediaTypeResource.getAllowedTypes(mediaId) diff --git a/src/Umbraco.Web.UI.Client/src/views/common/overlays/treepicker/treepicker.controller.js b/src/Umbraco.Web.UI.Client/src/views/common/overlays/treepicker/treepicker.controller.js index 7ba8970294..a552c18de2 100644 --- a/src/Umbraco.Web.UI.Client/src/views/common/overlays/treepicker/treepicker.controller.js +++ b/src/Umbraco.Web.UI.Client/src/views/common/overlays/treepicker/treepicker.controller.js @@ -9,7 +9,7 @@ angular.module("umbraco").controller("Umbraco.Overlays.TreePickerController", $scope.section = dialogOptions.section; $scope.treeAlias = dialogOptions.treeAlias; $scope.multiPicker = dialogOptions.multiPicker; - $scope.hideHeader = true; + $scope.hideHeader = (typeof dialogOptions.hideHeader) === "boolean" ? dialogOptions.hideHeader : false; // if you need to load a not initialized tree set this value to false - default is true $scope.onlyInitialized = dialogOptions.onlyInitialized; $scope.searchInfo = { @@ -28,7 +28,9 @@ angular.module("umbraco").controller("Umbraco.Overlays.TreePickerController", $scope.emptyStateMessage = dialogOptions.emptyStateMessage; - //TODO: I don't think this is used or called anywhere!! + //This is called from ng-init + //it turns out it is called from the angular html : / Have a look at views/common / overlays / contentpicker / contentpicker.html you'll see ng-init. + //this is probably an anti pattern IMO and shouldn't be used $scope.init = function (contentType) { if (contentType === "content") { diff --git a/src/Umbraco.Web.UI.Client/src/views/components/users/umb-user-group-preview.html b/src/Umbraco.Web.UI.Client/src/views/components/users/umb-user-group-preview.html index e4a0371ee3..7d5238d3a6 100644 --- a/src/Umbraco.Web.UI.Client/src/views/components/users/umb-user-group-preview.html +++ b/src/Umbraco.Web.UI.Client/src/views/components/users/umb-user-group-preview.html @@ -16,16 +16,16 @@
Content start node: - {{ contentStartNode.name }} - Content root + {{ contentStartNode.name }} + Content root
Media start node: - {{ mediaStartNode.name }} - Media root + {{ mediaStartNode.name }} + Media root
diff --git a/src/Umbraco.Web.UI.Client/src/views/users/group.controller.js b/src/Umbraco.Web.UI.Client/src/views/users/group.controller.js index 9aca057ee1..09b61c4605 100644 --- a/src/Umbraco.Web.UI.Client/src/views/users/group.controller.js +++ b/src/Umbraco.Web.UI.Client/src/views/users/group.controller.js @@ -105,10 +105,15 @@ title: "Select content start node", view: "contentpicker", hideSubmitButton: true, + hideHeader: false, show: true, submit: function (model) { if (model.selection) { vm.userGroup.contentStartNode = model.selection[0]; + if (vm.userGroup.contentStartNode.id === "-1") { + vm.userGroup.contentStartNode.name = "Content Root"; + vm.userGroup.contentStartNode.icon = "icon-document"; + } } vm.contentPicker.show = false; vm.contentPicker = null; @@ -132,6 +137,10 @@ submit: function (model) { if (model.selection) { vm.userGroup.mediaStartNode = model.selection[0]; + if (vm.userGroup.mediaStartNode.id === "-1") { + vm.userGroup.mediaStartNode.name = "Media Root"; + vm.userGroup.mediaStartNode.icon = "icon-picture"; + } } vm.contentPicker.show = false; vm.contentPicker = null; diff --git a/src/Umbraco.Web/Models/Mapping/UserModelMapper.cs b/src/Umbraco.Web/Models/Mapping/UserModelMapper.cs index bb9f212140..36e7c33d7b 100644 --- a/src/Umbraco.Web/Models/Mapping/UserModelMapper.cs +++ b/src/Umbraco.Web/Models/Mapping/UserModelMapper.cs @@ -334,7 +334,7 @@ namespace Umbraco.Web.Models.Mapping else if (group.StartMediaId == -1) { //create the root node - display.MediaStartNode = RootNode(); + display.MediaStartNode = RootNode("Media Root", "icon-picture"); } if (group.StartContentId > 0) @@ -345,7 +345,7 @@ namespace Umbraco.Web.Models.Mapping else if (group.StartContentId == -1) { //create the root node - display.ContentStartNode = RootNode(); + display.ContentStartNode = RootNode("Content Root", "icon-document"); } if (display.Icon.IsNullOrWhiteSpace()) @@ -354,13 +354,13 @@ namespace Umbraco.Web.Models.Mapping } } - private EntityBasic RootNode() + private EntityBasic RootNode(string name, string icon) { return new EntityBasic { - Name = "ROOT", + Name = name, Path = "-1", - Icon = "icon-document", + Icon = icon, Id = -1, Trashed = false, ParentId = -1