From df8347d5f4a6544def998fe7964cbe3d6afbfe5f Mon Sep 17 00:00:00 2001 From: Kenn Jacobsen Date: Thu, 24 Oct 2019 21:01:01 +0200 Subject: [PATCH] V8: General UX overhaul of the media picker in the RTE (#6722) --- .../src/common/services/editor.service.js | 1 + .../src/common/services/tinymce.service.js | 1 + .../mediapicker/mediapicker.controller.js | 36 ++++++++------ .../mediapicker/mediapicker.html | 49 ++++++++++++------- src/Umbraco.Web.UI/Umbraco/config/lang/da.xml | 2 + src/Umbraco.Web.UI/Umbraco/config/lang/en.xml | 2 + .../Umbraco/config/lang/en_us.xml | 2 + 7 files changed, 59 insertions(+), 34 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/common/services/editor.service.js b/src/Umbraco.Web.UI.Client/src/common/services/editor.service.js index 3a17dd639f..02e85c278a 100644 --- a/src/Umbraco.Web.UI.Client/src/common/services/editor.service.js +++ b/src/Umbraco.Web.UI.Client/src/common/services/editor.service.js @@ -567,6 +567,7 @@ When building a custom infinite editor view you can use the same components as a * @param {Boolean} editor.multiPicker Pick one or multiple items * @param {Boolean} editor.onlyImages Only display files that have an image file-extension * @param {Boolean} editor.disableFolderSelect Disable folder selection + * @param {Boolean} editor.disableFocalPoint Disable focal point editor for selected media * @param {Array} editor.updatedMediaNodes A list of ids for media items that have been updated through the media picker * @param {Callback} editor.submit Submits the editor * @param {Callback} editor.close Closes the editor diff --git a/src/Umbraco.Web.UI.Client/src/common/services/tinymce.service.js b/src/Umbraco.Web.UI.Client/src/common/services/tinymce.service.js index 33a15d74d3..1351da081a 100644 --- a/src/Umbraco.Web.UI.Client/src/common/services/tinymce.service.js +++ b/src/Umbraco.Web.UI.Client/src/common/services/tinymce.service.js @@ -1489,6 +1489,7 @@ function tinyMceService($rootScope, $q, imageHelper, $locale, $http, $timeout, s onlyImages: true, showDetails: true, disableFolderSelect: true, + disableFocalPoint: true, startNodeId: startNodeId, startNodeIsVirtual: startNodeIsVirtual, dataTypeKey: args.model.dataTypeKey, 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 0d184b71aa..ba103a2761 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 @@ -28,6 +28,7 @@ angular.module("umbraco") var dialogOptions = $scope.model; $scope.disableFolderSelect = (dialogOptions.disableFolderSelect && dialogOptions.disableFolderSelect !== "0") ? true : false; + $scope.disableFocalPoint = (dialogOptions.disableFocalPoint && dialogOptions.disableFocalPoint !== "0") ? true : false; $scope.onlyImages = (dialogOptions.onlyImages && dialogOptions.onlyImages !== "0") ? true : false; $scope.onlyFolders = (dialogOptions.onlyFolders && dialogOptions.onlyFolders !== "0") ? true : false; $scope.showDetails = (dialogOptions.showDetails && dialogOptions.showDetails !== "0") ? true : false; @@ -137,7 +138,8 @@ angular.module("umbraco") $scope.target = node; if (ensureWithinStartNode(node)) { selectMedia(node); - $scope.target.url = mediaHelper.resolveFile(node); + $scope.target.url = mediaHelper.resolveFileFromEntity(node); + $scope.target.thumbnail = mediaHelper.resolveFileFromEntity(node, true); $scope.target.altText = altText; openDetailsDialog(); } @@ -333,22 +335,26 @@ angular.module("umbraco") } function openDetailsDialog() { + localizationService.localize("defaultdialogs_editSelectedMedia").then(function (data) { + vm.mediaPickerDetailsOverlay = { + show: true, + title: data, + disableFocalPoint: $scope.disableFocalPoint, + submit: function (model) { + $scope.model.selection.push($scope.target); + $scope.model.submit($scope.model); - vm.mediaPickerDetailsOverlay = { - show: true, - submit: function (model) { + vm.mediaPickerDetailsOverlay.show = false; + vm.mediaPickerDetailsOverlay = null; + }, + close: function (oldModel) { + vm.mediaPickerDetailsOverlay.show = false; + vm.mediaPickerDetailsOverlay = null; - $scope.model.selection.push($scope.target); - $scope.model.submit($scope.model); - - vm.mediaPickerDetailsOverlay.show = false; - vm.mediaPickerDetailsOverlay = null; - }, - close: function (oldModel) { - vm.mediaPickerDetailsOverlay.show = false; - vm.mediaPickerDetailsOverlay = null; - } - }; + close(); + } + }; + }); }; var debounceSearchMedia = _.debounce(function () { diff --git a/src/Umbraco.Web.UI.Client/src/views/common/infiniteeditors/mediapicker/mediapicker.html b/src/Umbraco.Web.UI.Client/src/views/common/infiniteeditors/mediapicker/mediapicker.html index 5f78a54bea..fe6debe56f 100644 --- a/src/Umbraco.Web.UI.Client/src/views/common/infiniteeditors/mediapicker/mediapicker.html +++ b/src/Umbraco.Web.UI.Client/src/views/common/infiniteeditors/mediapicker/mediapicker.html @@ -123,14 +123,40 @@ + +
+
+ +
+ +
+
+ +
+ +
+ +
+ +
+
+ Preview +
+ + {{target.name}} +
+ +
+
+ Focal point +
- +
@@ -148,25 +174,10 @@
-
-
- -
-
- - -
- -
diff --git a/src/Umbraco.Web.UI/Umbraco/config/lang/da.xml b/src/Umbraco.Web.UI/Umbraco/config/lang/da.xml index 5a948e2f42..9150b9ece3 100644 --- a/src/Umbraco.Web.UI/Umbraco/config/lang/da.xml +++ b/src/Umbraco.Web.UI/Umbraco/config/lang/da.xml @@ -408,6 +408,7 @@ Klip Rediger ordbogsnøgle Rediger sprog + Rediger det valgte medie Indsæt lokalt link Indsæt tegn Indsæt grafisk overskrift @@ -643,6 +644,7 @@ Felt Find Første + Fokuspunkt Generelt Grupper Gruppe diff --git a/src/Umbraco.Web.UI/Umbraco/config/lang/en.xml b/src/Umbraco.Web.UI/Umbraco/config/lang/en.xml index 685bb943f7..861dfa75f5 100644 --- a/src/Umbraco.Web.UI/Umbraco/config/lang/en.xml +++ b/src/Umbraco.Web.UI/Umbraco/config/lang/en.xml @@ -411,6 +411,7 @@ Cut Edit Dictionary Item Edit Language + Edit selected media Insert local link Insert character Insert graphic headline @@ -646,6 +647,7 @@ Field Find First + Focal point General Groups Group diff --git a/src/Umbraco.Web.UI/Umbraco/config/lang/en_us.xml b/src/Umbraco.Web.UI/Umbraco/config/lang/en_us.xml index b746a8f9c4..ec99ba476a 100644 --- a/src/Umbraco.Web.UI/Umbraco/config/lang/en_us.xml +++ b/src/Umbraco.Web.UI/Umbraco/config/lang/en_us.xml @@ -414,6 +414,7 @@ Cut Edit Dictionary Item Edit Language + Edit selected media Insert local link Insert character Insert graphic headline @@ -652,6 +653,7 @@ Field Find First + Focal point General Groups Group