Fixes 301 redirect js naming conventions, fixes URL handling, moves c# classes to the correct/constistent namespaces, fixes up models and N+1 requests, adds model mapping to not return the business logic model, adds controller method to check if it's enabled instead of returning the result as part of the search.

This commit is contained in:
Shannon
2016-08-08 14:40:53 +02:00
parent f4b0700528
commit c331ba134a
12 changed files with 178 additions and 128 deletions

View File

@@ -11,8 +11,6 @@
function redirectUrlsResource($http, umbRequestHelper) {
var redirectBaseUrl = "backoffice/api/RedirectUrlManagement/";
/**
* @ngdoc function
* @name umbraco.resources.redirectUrlResource#searchRedirectUrls
@@ -33,10 +31,24 @@
* @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"
);
$http.get(
umbRequestHelper.getApiUrl(
"redirectUrlManagementApiBaseUrl",
"SearchRedirectUrls",
{ searchTerm: searchTerm, pageIndex: pageIndex, pageSize: pageSize })),
'Failed to retrieve data for searching redirect urls');
}
function isEnabled() {
return umbRequestHelper.resourcePromise(
$http.get(
umbRequestHelper.getApiUrl(
"redirectUrlManagementApiBaseUrl",
"IsEnabled")),
'Failed to retrieve data to check if the 301 redirect is enabled');
}
/**
@@ -58,9 +70,11 @@
*/
function deleteRedirectUrl(id) {
return umbRequestHelper.resourcePromise(
$http.post(redirectBaseUrl + "DeleteRedirectUrl/" + id),
"Failed to remove redirect"
);
$http.post(
umbRequestHelper.getApiUrl(
"redirectUrlManagementApiBaseUrl",
"DeleteRedirectUrl", { id: id })),
'Failed to remove redirect');
}
/**
@@ -82,40 +96,18 @@
*/
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"
);
$http.post(
umbRequestHelper.getApiUrl(
"redirectUrlManagementApiBaseUrl",
"ToggleUrlTracker", { disable: disable })),
'Failed to toggle redirect url tracker');
}
var resource = {
searchRedirectUrls: searchRedirectUrls,
deleteRedirectUrl: deleteRedirectUrl,
toggleUrlTracker: toggleUrlTracker,
getPublishedUrl: getPublishedUrl
isEnabled: isEnabled
};
return resource;

View File

@@ -14,7 +14,7 @@
vm.dashboard = {
searchTerm: "",
loading: false,
UrlTrackerDisabled: false
urlTrackerDisabled: false
};
vm.pagination = {
@@ -30,9 +30,20 @@
vm.disableUrlTracker = disableUrlTracker;
vm.enableUrlTracker = enableUrlTracker;
vm.filter = filter;
vm.checkEnabled = checkEnabled;
function activate() {
vm.search();
function activate() {
vm.checkEnabled().then(function() {
vm.search();
});
}
function checkEnabled() {
vm.dashboard.loading = true;
return redirectUrlsResource.isEnabled().then(function (response) {
vm.dashboard.urlTrackerDisabled = response !== "true";
vm.dashboard.loading = false;
});
}
function goToPage(pageNumber) {
@@ -52,24 +63,13 @@
redirectUrlsResource.searchRedirectUrls(searchTerm, vm.pagination.pageIndex, vm.pagination.pageSize).then(function(response) {
vm.redirectUrls = response.SearchResults;
vm.redirectUrls = response.searchResults;
// update pagination
vm.pagination.pageIndex = response.CurrentPage;
vm.pagination.pageNumber = response.CurrentPage + 1;
vm.pagination.pageIndex = response.currentPage;
vm.pagination.pageNumber = response.currentPage + 1;
vm.pagination.totalPages = response.PageCount;
// Set enable/disable state for url tracker
vm.dashboard.UrlTrackerDisabled = response.UrlTrackerDisabled;
angular.forEach(vm.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);
});
});
vm.dashboard.loading = false;
});
@@ -77,7 +77,7 @@
function removeRedirect(redirectToDelete) {
redirectUrlsResource.deleteRedirectUrl(redirectToDelete.ContentKey).then(function () {
redirectUrlsResource.deleteRedirectUrl(redirectToDelete.redirectId).then(function () {
var index = vm.redirectUrls.indexOf(redirectToDelete);
vm.redirectUrls.splice(index, 1);

View File

@@ -9,7 +9,7 @@
<umb-editor-sub-header-section>
<button
ng-if="vm.dashboard.UrlTrackerDisabled === false"
ng-if="vm.dashboard.urlTrackerDisabled === false"
type="button"
class="umb-era-button umb-button--s"
ng-click="vm.disableUrlTracker()">
@@ -17,7 +17,7 @@
</button>
<button
ng-if="vm.dashboard.UrlTrackerDisabled === true"
ng-if="vm.dashboard.urlTrackerDisabled === true"
type="button"
class="umb-era-button umb-button--s -blue"
ng-click="vm.enableUrlTracker()">
@@ -26,7 +26,7 @@
</umb-editor-sub-header-section>
<umb-editor-sub-header-section ng-if="vm.dashboard.UrlTrackerDisabled === false">
<umb-editor-sub-header-section ng-if="vm.dashboard.urlTrackerDisabled === false">
<input
class="-full-width-input"
@@ -42,7 +42,7 @@
</umb-editor-sub-header>
<div class="umb-table" ng-class="{'umb-table-inactive': vm.dashboard.UrlTrackerDisabled === true}">
<div class="umb-table" ng-class="{'umb-table-inactive': vm.dashboard.urlTrackerDisabled === true}">
<div class="umb-table-head">
<div class="umb-table-row">
@@ -63,19 +63,19 @@
</div>
<div class="umb-table-cell">
<a class="umb-table-body__link" href="{{redirectUrl.Url}}" title="{{redirectUrl.Url}}">{{redirectUrl.Url}}</a>
<a class="umb-table-body__link" href="{{redirectUrl.originalUrl}}" title="{{redirectUrl.originalUrl}}">{{redirectUrl.originalUrl}}</a>
</div>
<div class="umb-table-cell">
<a class="umb-table-body__link" href="{{redirectUrl.ContentUrl}}" title="{{redirectUrl.ContentUrl}}">{{redirectUrl.ContentUrl}}</a>
<a class="umb-table-body__link" href="{{redirectUrl.destinationUrl}}" title="{{redirectUrl.destinationUrl}}">{{redirectUrl.destinationUrl}}</a>
</div>
<div class="umb-table-cell">
{{redirectUrl.CreateDateUtc | date:'medium'}}
{{redirectUrl.createDateUtc | date:'medium'}}
</div>
<div class="umb-table-cell justify-end">
<a href="/umbraco/#/content/content/edit/{{redirectUrl.ContentId}}" class="umb-era-button -gray umb-button--s" style="margin-right: 10px;">Edit</a>
<a href="/umbraco/#/content/content/edit/{{redirectUrl.contentId}}" class="umb-era-button -gray umb-button--s" style="margin-right: 10px;">Edit</a>
<button class="umb-era-button -gray umb-button--s" ng-click="vm.removeRedirect(redirectUrl)">Remove</button>
</div>