From dc39faeb5ecc51992eeb1dcdf901b7ffc11be486 Mon Sep 17 00:00:00 2001 From: Tom Pipe Date: Wed, 22 Jul 2020 20:55:18 +0200 Subject: [PATCH] Allow treepicker configuration to filter on metadata using JSON format (#7511) --- .../treepicker/treepicker.controller.js | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/views/common/infiniteeditors/treepicker/treepicker.controller.js b/src/Umbraco.Web.UI.Client/src/views/common/infiniteeditors/treepicker/treepicker.controller.js index 387dd71da8..9e2a64239f 100644 --- a/src/Umbraco.Web.UI.Client/src/views/common/infiniteeditors/treepicker/treepicker.controller.js +++ b/src/Umbraco.Web.UI.Client/src/views/common/infiniteeditors/treepicker/treepicker.controller.js @@ -188,8 +188,17 @@ angular.module("umbraco").controller("Umbraco.Editors.TreePickerController", //used advanced filtering if ($scope.model.filter.startsWith("{")) { $scope.model.filterAdvanced = true; - //convert to object - $scope.model.filter = Utilities.fromJson($scope.model.filter); + + if ($scope.model.filterByMetadata && !angular.isFunction($scope.model.filter)) + { + var filter = angular.fromJson($scope.model.filter); + $scope.model.filter = function (node){ return _.isMatch(node.metaData, filter);}; + } + else + { + //convert to object + $scope.model.filter = Utilities.fromJson($scope.model.filter); + } } } }