make resource for all redirect url end points

This commit is contained in:
Mads Rasmussen
2016-08-05 14:35:58 +02:00
parent 1f8dc9a424
commit b8b30bdc6e
2 changed files with 162 additions and 37 deletions

View File

@@ -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
* <pre>
* redirectUrlsResource.searchRedirectUrls("", 0, 20)
* .then(function(response) {
*
* });
* </pre>
* @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
* <pre>
* redirectUrlsResource.deleteRedirectUrl(1234)
* .then(function() {
*
* });
* </pre>
* @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
* <pre>
* redirectUrlsResource.toggleUrlTracker(true)
* .then(function() {
*
* });
* </pre>
* @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
* <pre>
* redirectUrlsResource.getPublishedUrl(1234)
* .then(function() {
*
* });
* </pre>
* @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);
})();

View File

@@ -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) {