From 0d3e330b128506810366d927d3bbdfec55336f2b Mon Sep 17 00:00:00 2001 From: Kenn Jacobsen Date: Tue, 1 Oct 2019 09:56:01 +0200 Subject: [PATCH] Support allowed types for MNTP media picker --- .../components/umbmediagrid.directive.js | 3 ++ .../mediapicker/mediapicker.controller.js | 32 +++++++++++-------- 2 files changed, 21 insertions(+), 14 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/common/directives/components/umbmediagrid.directive.js b/src/Umbraco.Web.UI.Client/src/common/directives/components/umbmediagrid.directive.js index 766c0107b2..1b011d2e19 100644 --- a/src/Umbraco.Web.UI.Client/src/common/directives/components/umbmediagrid.directive.js +++ b/src/Umbraco.Web.UI.Client/src/common/directives/components/umbmediagrid.directive.js @@ -193,6 +193,9 @@ Use this directive to generate a thumbnail grid of media items. * Returns wether a item should be selectable or not. */ function getSelectableState(item) { + if (item.filtered) { + return false; + } // check if item is a folder or image if (item.isFolder === true) { diff --git a/src/Umbraco.Web.UI.Client/src/views/common/infiniteeditors/mediapicker/mediapicker.controller.js b/src/Umbraco.Web.UI.Client/src/views/common/infiniteeditors/mediapicker/mediapicker.controller.js index 57a9c22b0b..0d184b71aa 100644 --- a/src/Umbraco.Web.UI.Client/src/views/common/infiniteeditors/mediapicker/mediapicker.controller.js +++ b/src/Umbraco.Web.UI.Client/src/views/common/infiniteeditors/mediapicker/mediapicker.controller.js @@ -37,7 +37,7 @@ angular.module("umbraco") $scope.lastOpenedNode = localStorageService.get("umbLastOpenedMediaNodeId"); $scope.lockedFolder = true; $scope.allowMediaEdit = dialogOptions.allowMediaEdit ? dialogOptions.allowMediaEdit : false; - + var userStartNodes = []; var umbracoSettings = Umbraco.Sys.ServerVariables.umbracoSettings; @@ -226,7 +226,7 @@ angular.module("umbraco") } function clickHandler(media, event, index) { - + if (media.isFolder) { if ($scope.disableFolderSelect) { gotoFolder(media); @@ -453,21 +453,25 @@ angular.module("umbraco") function getChildren(id) { vm.loading = true; return entityResource.getChildren(id, "Media", vm.searchOptions).then(function (data) { - - for (var i = 0; i < data.length; i++) { - if (data[i].metaData.MediaPath !== null) { - data[i].thumbnail = mediaHelper.resolveFileFromEntity(data[i], true); - data[i].image = mediaHelper.resolveFileFromEntity(data[i], false); - } + + var allowedTypes = dialogOptions.filter ? dialogOptions.filter.split(",") : null; + + for (var i = 0; i < data.length; i++) { + if (data[i].metaData.MediaPath !== null) { + data[i].thumbnail = mediaHelper.resolveFileFromEntity(data[i], true); + data[i].image = mediaHelper.resolveFileFromEntity(data[i], false); } - vm.searchOptions.filter = ""; - $scope.images = data ? data : []; + data[i].filtered = allowedTypes && allowedTypes.indexOf(data[i].metaData.ContentTypeAlias) < 0; + } - // set already selected medias to selected - preSelectMedia(); - vm.loading = false; - }); + vm.searchOptions.filter = ""; + $scope.images = data ? data : []; + + // set already selected medias to selected + preSelectMedia(); + vm.loading = false; + }); } function preSelectMedia() {