From 3fecd55c49f5078212ccf3e18f0c5c3315c2e023 Mon Sep 17 00:00:00 2001 From: Nathan Woulfe Date: Sun, 17 Jun 2018 14:41:41 +1000 Subject: [PATCH] adds check for anchors when overlay opens, and fetches anchors when target updates. --- .../common/dialogs/linkpicker.controller.js | 13 +++++++---- .../linkpicker/linkpicker.controller.js | 23 +++++++++++-------- 2 files changed, 23 insertions(+), 13 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/views/common/dialogs/linkpicker.controller.js b/src/Umbraco.Web.UI.Client/src/views/common/dialogs/linkpicker.controller.js index e76db90f47..ba6835a6b1 100644 --- a/src/Umbraco.Web.UI.Client/src/views/common/dialogs/linkpicker.controller.js +++ b/src/Umbraco.Web.UI.Client/src/views/common/dialogs/linkpicker.controller.js @@ -1,6 +1,6 @@ //used for the media picker dialog angular.module("umbraco").controller("Umbraco.Dialogs.LinkPickerController", - function ($scope, eventsService, dialogService, entityResource, contentResource, mediaHelper, userService, localizationService) { + function ($scope, eventsService, dialogService, entityResource, contentResource, mediaHelper, userService, localizationService, tinyMceService) { var dialogOptions = $scope.dialogOptions; var searchText = "Search..."; @@ -39,6 +39,10 @@ angular.module("umbraco").controller("Umbraco.Dialogs.LinkPickerController", }); } } + + if (dialogOptions.anchors) { + $scope.anchorValues = dialogOptions.anchors; + } function nodeSelectHandler(ev, args) { args.event.preventDefault(); @@ -69,9 +73,10 @@ angular.module("umbraco").controller("Umbraco.Dialogs.LinkPickerController", $scope.target.url = "/"; } else { - contentResource.getNiceUrl(args.node.id).then(function (url) { - $scope.target.url = url; - }); + contentResource.getById(args.node.id).then(function (resp) { + $scope.anchorValues = tinyMceService.getAnchorNames(JSON.stringify(resp.properties)); + $scope.model.target.url = resp.urls[0]; + }); } if (!angular.isUndefined($scope.target.isMedia)) { diff --git a/src/Umbraco.Web.UI.Client/src/views/common/overlays/linkpicker/linkpicker.controller.js b/src/Umbraco.Web.UI.Client/src/views/common/overlays/linkpicker/linkpicker.controller.js index 91c74311b3..5d6b0916f8 100644 --- a/src/Umbraco.Web.UI.Client/src/views/common/overlays/linkpicker/linkpicker.controller.js +++ b/src/Umbraco.Web.UI.Client/src/views/common/overlays/linkpicker/linkpicker.controller.js @@ -1,8 +1,10 @@ //used for the media picker dialog angular.module("umbraco").controller("Umbraco.Overlays.LinkPickerController", - function ($scope, eventsService, dialogService, entityResource, contentResource, mediaHelper, userService, localizationService) { + function ($scope, eventsService, dialogService, entityResource, contentResource, mediaHelper, userService, localizationService, tinyMceService) { var dialogOptions = $scope.model; + var anchorPattern = //gi; + var searchText = "Search..."; localizationService.localize("general_search").then(function (value) { searchText = value + "..."; @@ -22,11 +24,10 @@ angular.module("umbraco").controller("Umbraco.Overlays.LinkPickerController", selectedSearchResults: [] }; - $scope.showTarget = $scope.model.hideTarget !== true; + $scope.showTarget = $scope.model.hideTarget !== true; if (dialogOptions.currentTarget) { $scope.model.target = dialogOptions.currentTarget; - //if we have a node ID, we fetch the current node to build the form data if ($scope.model.target.id || $scope.model.target.udi) { @@ -47,9 +48,12 @@ angular.module("umbraco").controller("Umbraco.Overlays.LinkPickerController", }); } } - - function nodeSelectHandler(ev, args) { - + + if (dialogOptions.anchors) { + $scope.anchorValues = dialogOptions.anchors; + } + + function nodeSelectHandler(ev, args) { if(args && args.event) { args.event.preventDefault(); args.event.stopPropagation(); @@ -71,9 +75,10 @@ angular.module("umbraco").controller("Umbraco.Overlays.LinkPickerController", if (args.node.id < 0) { $scope.model.target.url = "/"; } - else { - contentResource.getNiceUrl(args.node.id).then(function (url) { - $scope.model.target.url = url; + else { + contentResource.getById(args.node.id).then(function (resp) { + $scope.anchorValues = tinyMceService.getAnchorNames(JSON.stringify(resp.properties)); + $scope.model.target.url = resp.urls[0]; }); }