diff --git a/src/Umbraco.Web.UI.Client/src/views/media/apps/content/content.controller.js b/src/Umbraco.Web.UI.Client/src/views/media/apps/content/content.controller.js index 365cb03a5d..b2f3754285 100644 --- a/src/Umbraco.Web.UI.Client/src/views/media/apps/content/content.controller.js +++ b/src/Umbraco.Web.UI.Client/src/views/media/apps/content/content.controller.js @@ -1,10 +1,40 @@ (function () { "use strict"; - function MediaAppContentController($scope) { + function MediaAppContentController($scope, $filter, contentEditingHelper) { var vm = this; + vm.tabs = []; + vm.activeTabAlias = null; + + vm.setActiveTab = setActiveTab; + + $scope.$watchCollection('content.tabs', () => { + + // Add parentAlias property to all groups aka. tabs. + $scope.content.tabs.forEach((group) => { + group.parentAlias = contentEditingHelper.getParentAlias(group.alias); + }); + + vm.tabs = $filter("filter")($scope.content.tabs, (tab) => { + return tab.type === 1; + }); + + if (vm.tabs.length > 0) { + // if we have tabs and some groups that doesn't belong to a tab we need to render those on an "Other" tab. + contentEditingHelper.registerGenericTab($scope.content.tabs); + + setActiveTab($scope.content.tabs[0]); + } + }); + + function setActiveTab (tab) { + vm.activeTabAlias = tab.alias; + vm.tabs.forEach(tab => tab.active = false); + tab.active = true; + } + } angular.module("umbraco").controller("Umbraco.Editors.Media.Apps.ContentController", MediaAppContentController); diff --git a/src/Umbraco.Web.UI.Client/src/views/media/apps/content/content.html b/src/Umbraco.Web.UI.Client/src/views/media/apps/content/content.html index 816ca987f7..21fc93d481 100644 --- a/src/Umbraco.Web.UI.Client/src/views/media/apps/content/content.html +++ b/src/Umbraco.Web.UI.Client/src/views/media/apps/content/content.html @@ -1,12 +1,37 @@
-
+ + + + + + + + + + + + + + + +
{{ group.label }}
-
- +
+