diff --git a/src/Umbraco.Web.UI.Client/src/common/resources/redirecturls.resource.js b/src/Umbraco.Web.UI.Client/src/common/resources/redirecturls.resource.js new file mode 100644 index 0000000000..f79c773eea --- /dev/null +++ b/src/Umbraco.Web.UI.Client/src/common/resources/redirecturls.resource.js @@ -0,0 +1,127 @@ +/** + * @ngdoc service + * @name umbraco.resources.redirectUrlResource + * @function + * + * @description + * Used by the redirect url dashboard to get urls and send requests to remove redirects. + */ +(function() { + 'use strict'; + + function redirectUrlsResource($http, umbRequestHelper) { + + var redirectBaseUrl = "backoffice/api/RedirectUrlManagement/"; + + /** + * @ngdoc function + * @name umbraco.resources.redirectUrlResource#searchRedirectUrls + * @methodOf umbraco.resources.redirectUrlResource + * @function + * + * @description + * Called to search redirects + * ##usage + *
+ * redirectUrlsResource.searchRedirectUrls("", 0, 20)
+ * .then(function(response) {
+ *
+ * });
+ *
+ * @param {String} searchTerm Searh term
+ * @param {Int} pageIndex index of the page to retrive items from
+ * @param {Int} pageSize The number of items on a page
+ */
+ function searchRedirectUrls(searchTerm, pageIndex, pageSize) {
+ return umbRequestHelper.resourcePromise(
+ $http.get(redirectBaseUrl + "SearchRedirectUrls/?searchTerm=" + searchTerm + "&page=" + pageIndex + "&pageSize=" + pageSize),
+ "Failed to retrieve redirects"
+ );
+ }
+
+ /**
+ * @ngdoc function
+ * @name umbraco.resources.redirectUrlResource#deleteRedirectUrl
+ * @methodOf umbraco.resources.redirectUrlResource
+ * @function
+ *
+ * @description
+ * Called to delete a redirect
+ * ##usage
+ *
+ * redirectUrlsResource.deleteRedirectUrl(1234)
+ * .then(function() {
+ *
+ * });
+ *
+ * @param {Int} id Id of the redirect
+ */
+ function deleteRedirectUrl(id) {
+ return umbRequestHelper.resourcePromise(
+ $http.post(redirectBaseUrl + "DeleteRedirectUrl/" + id),
+ "Failed to remove redirect"
+ );
+ }
+
+ /**
+ * @ngdoc function
+ * @name umbraco.resources.redirectUrlResource#toggleUrlTracker
+ * @methodOf umbraco.resources.redirectUrlResource
+ * @function
+ *
+ * @description
+ * Called to enable or disable redirect url tracker
+ * ##usage
+ *
+ * redirectUrlsResource.toggleUrlTracker(true)
+ * .then(function() {
+ *
+ * });
+ *
+ * @param {Bool} disable true/false to disable/enable the url tracker
+ */
+ function toggleUrlTracker(disable) {
+ return umbRequestHelper.resourcePromise(
+ $http.post(redirectBaseUrl + "ToggleUrlTracker/?disable=" + disable),
+ "Failed to toggle redirect url tracker"
+ );
+ }
+
+ /**
+ * @ngdoc function
+ * @name umbraco.resources.redirectUrlResource#getPublishedUrl
+ * @methodOf umbraco.resources.redirectUrlResource
+ * @function
+ *
+ * @description
+ * Called to get the published url for a content item
+ * ##usage
+ *
+ * redirectUrlsResource.getPublishedUrl(1234)
+ * .then(function() {
+ *
+ * });
+ *
+ * @param {Int} contentId The content id of the item to get the published url
+ */
+ function getPublishedUrl(contentId) {
+ return umbRequestHelper.resourcePromise(
+ $http.get(redirectBaseUrl + "GetPublishedUrl/?id=" + contentId),
+ "Failed to get published url"
+ );
+ }
+
+ var resource = {
+ searchRedirectUrls: searchRedirectUrls,
+ deleteRedirectUrl: deleteRedirectUrl,
+ toggleUrlTracker: toggleUrlTracker,
+ getPublishedUrl: getPublishedUrl
+ };
+
+ return resource;
+
+ }
+
+ angular.module('umbraco.resources').factory('redirectUrlsResource', redirectUrlsResource);
+
+})();
diff --git a/src/Umbraco.Web.UI.Client/src/views/dashboard/developer/redirecturls.controller.js b/src/Umbraco.Web.UI.Client/src/views/dashboard/developer/redirecturls.controller.js
index 0bf6c60427..439ecb08bd 100644
--- a/src/Umbraco.Web.UI.Client/src/views/dashboard/developer/redirecturls.controller.js
+++ b/src/Umbraco.Web.UI.Client/src/views/dashboard/developer/redirecturls.controller.js
@@ -1,4 +1,4 @@
-angular.module("umbraco").controller("Umbraco.Dashboard.RedirectUrlsController", function($scope, $http, angularHelper, notificationsService, entityResource, $routeParams, $q) {
+angular.module("umbraco").controller("Umbraco.Dashboard.RedirectUrlsController", function($scope, redirectUrlsResource, notificationsService, $q) {
//...todo
//search by url or url part
//search by domain
@@ -39,23 +39,23 @@ angular.module("umbraco").controller("Umbraco.Dashboard.RedirectUrlsController",
searchTerm = "";
}
- $http.get("backoffice/api/RedirectUrlManagement/SearchRedirectUrls/?searchTerm=" + searchTerm + "&page=" + $scope.pagination.pageIndex + "&pageSize=" + $scope.pagination.pageSize).then(function(response) {
+ redirectUrlsResource.searchRedirectUrls(searchTerm, $scope.pagination.pageIndex, $scope.pagination.pageSize).then(function(response) {
- console.log(response);
-
- $scope.redirectUrls = response.data.SearchResults;
+ $scope.redirectUrls = response.SearchResults;
// update pagination
- $scope.pagination.pageIndex = response.data.CurrentPage;
- $scope.pagination.pageNumber = response.data.CurrentPage + 1;
- $scope.pagination.totalPages = response.data.PageCount;
+ $scope.pagination.pageIndex = response.CurrentPage;
+ $scope.pagination.pageNumber = response.CurrentPage + 1;
+ $scope.pagination.totalPages = response.PageCount;
// Set enable/disable state for url tracker
- $scope.dashboard.UrlTrackerDisabled = response.data.UrlTrackerDisabled;
+ $scope.dashboard.UrlTrackerDisabled = response.UrlTrackerDisabled;
- angular.forEach($scope.redirectUrls, function(item) {
- $http.get("backoffice/api/RedirectUrlManagement/GetPublishedUrl/?id=" + item.ContentId).then(function(response) {
- item.ContentUrl = response.data;
+ angular.forEach($scope.redirectUrls, function(redirect) {
+ redirectUrlsResource.getPublishedUrl(redirect.ContentId).then(function(response) {
+ redirect.ContentUrl = response;
+ }, function(error) {
+ notificationsService.error("Redirect Url Error!", "Failed to get published url for " + redirect.Url);
});
});
@@ -65,44 +65,42 @@ angular.module("umbraco").controller("Umbraco.Dashboard.RedirectUrlsController",
};
$scope.removeRedirect = function(redirectToDelete) {
- $http.post("backoffice/api/RedirectUrlManagement/DeleteRedirectUrl/" + redirectToDelete.Id).then(function(response) {
- if (response.status === 200) {
- var index = $scope.redirectUrls.indexOf(redirectToDelete);
- $scope.redirectUrls.splice(index, 1);
+ redirectUrlsResource.deleteRedirectUrl(redirectToDelete.Id).then(function() {
+
+ var index = $scope.redirectUrls.indexOf(redirectToDelete);
+ $scope.redirectUrls.splice(index, 1);
+ notificationsService.success("Redirect Url Removed!", "Redirect Url " + redirectToDelete.Url + " has been deleted");
+
+ }, function(error) {
+
+ notificationsService.error("Redirect Url Error!", "Redirect Url " + redirectToDelete.Url + " was not deleted");
- notificationsService.success("Redirect Url Removed!", "Redirect Url " + redirectToDelete.Url + " has been deleted");
- } else {
- notificationsService.warning("Redirect Url Error!", "Redirect Url " + redirectToDelete.Url + " was not deleted");
- }
});
+
};
$scope.disableUrlTracker = function() {
var toggleConfirm = confirm("Are you sure you want to disable the URL tracker?");
if (toggleConfirm) {
- $http.post("backoffice/api/RedirectUrlManagement/ToggleUrlTracker/?disable=true").then(function(response) {
- if (response.status === 200) {
- notificationsService.success("URL Tracker has now been disabled");
- activate();
- } else {
- notificationsService.warning("Error disabling the URL Tracker, more information can be found in your log file.");
- }
+
+ redirectUrlsResource.toggleUrlTracker(true).then(function() {
+ activate();
+ notificationsService.success("URL Tracker has now been disabled");
+ }, function(error) {
+ notificationsService.warning("Error disabling the URL Tracker, more information can be found in your log file.");
});
+
}
};
$scope.enableUrlTracker = function() {
- if (toggleConfirm) {
- $http.post("backoffice/api/RedirectUrlManagement/ToggleUrlTracker/?disable=false").then(function(response) {
- if (response.status === 200) {
- notificationsService.success("URL Tracker has now been enabled");
- activate();
- } else {
- notificationsService.warning("Error enabling the URL Tracker, more information can be found in your log file.");
- }
- });
- }
+ redirectUrlsResource.toggleUrlTracker(false).then(function() {
+ activate();
+ notificationsService.success("URL Tracker has now been enabled");
+ }, function(error) {
+ notificationsService.warning("Error enabling the URL Tracker, more information can be found in your log file.");
+ });
};
var filterDebounced = _.debounce(function(e) {