Updated not found and forbidden access to show a proper page instead of just notification
This commit is contained in:
parent
d42c917448
commit
9c5e38a023
7 changed files with 62 additions and 38 deletions
|
@ -64,7 +64,7 @@
|
||||||
<div data-ng-include data-src="resourceUrl + '/partials/menu.html'"></div>
|
<div data-ng-include data-src="resourceUrl + '/partials/menu.html'"></div>
|
||||||
</header>
|
</header>
|
||||||
|
|
||||||
<div class="container" data-ng-show="auth.hasAnyAccess">
|
<div class="container">
|
||||||
<div data-ng-view id="view"></div>
|
<div data-ng-view id="view"></div>
|
||||||
<div id="loading" class="loading-backdrop">
|
<div id="loading" class="loading-backdrop">
|
||||||
<div class="loading">
|
<div class="loading">
|
||||||
|
|
|
@ -908,8 +908,6 @@ module.config([ '$routeProvider', function($routeProvider) {
|
||||||
},
|
},
|
||||||
controller : 'ProtocolListCtrl'
|
controller : 'ProtocolListCtrl'
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
.when('/server-info', {
|
.when('/server-info', {
|
||||||
templateUrl : resourceUrl + '/partials/server-info.html'
|
templateUrl : resourceUrl + '/partials/server-info.html'
|
||||||
})
|
})
|
||||||
|
@ -917,8 +915,14 @@ module.config([ '$routeProvider', function($routeProvider) {
|
||||||
templateUrl : resourceUrl + '/partials/home.html',
|
templateUrl : resourceUrl + '/partials/home.html',
|
||||||
controller : 'LogoutCtrl'
|
controller : 'LogoutCtrl'
|
||||||
})
|
})
|
||||||
.otherwise({
|
.when('/notfound', {
|
||||||
templateUrl : resourceUrl + '/partials/notfound.html'
|
templateUrl : resourceUrl + '/partials/notfound.html'
|
||||||
|
})
|
||||||
|
.when('/forbidden', {
|
||||||
|
templateUrl : resourceUrl + '/partials/forbidden.html'
|
||||||
|
})
|
||||||
|
.otherwise({
|
||||||
|
templateUrl : resourceUrl + '/partials/pagenotfound.html'
|
||||||
});
|
});
|
||||||
} ]);
|
} ]);
|
||||||
|
|
||||||
|
@ -942,29 +946,6 @@ module.config(function($httpProvider) {
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
module.factory('errorInterceptor', function($q, $window, $rootScope, $location, Notifications, Auth) {
|
|
||||||
return function(promise) {
|
|
||||||
return promise.then(function(response) {
|
|
||||||
return response;
|
|
||||||
}, function(response) {
|
|
||||||
if (response.status == 401) {
|
|
||||||
Auth.authz.logout();
|
|
||||||
} else if (response.status == 403) {
|
|
||||||
Notifications.error("Forbidden");
|
|
||||||
} else if (response.status == 404) {
|
|
||||||
Notifications.error("Not found");
|
|
||||||
} else if (response.status) {
|
|
||||||
if (response.data && response.data.errorMessage) {
|
|
||||||
Notifications.error(response.data.errorMessage);
|
|
||||||
} else {
|
|
||||||
Notifications.error("An unexpected server error has occurred");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return $q.reject(response);
|
|
||||||
});
|
|
||||||
};
|
|
||||||
});
|
|
||||||
|
|
||||||
module.factory('spinnerInterceptor', function($q, $window, $rootScope, $location) {
|
module.factory('spinnerInterceptor', function($q, $window, $rootScope, $location) {
|
||||||
return function(promise) {
|
return function(promise) {
|
||||||
return promise.then(function(response) {
|
return promise.then(function(response) {
|
||||||
|
@ -992,6 +973,29 @@ module.factory('spinnerInterceptor', function($q, $window, $rootScope, $location
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
|
|
||||||
|
module.factory('errorInterceptor', function($q, $window, $rootScope, $location, Notifications, Auth) {
|
||||||
|
return function(promise) {
|
||||||
|
return promise.then(function(response) {
|
||||||
|
return response;
|
||||||
|
}, function(response) {
|
||||||
|
if (response.status == 401) {
|
||||||
|
Auth.authz.logout();
|
||||||
|
} else if (response.status == 403) {
|
||||||
|
$location.path('/forbidden');
|
||||||
|
} else if (response.status == 404) {
|
||||||
|
$location.path('/notfound');
|
||||||
|
} else if (response.status) {
|
||||||
|
if (response.data && response.data.errorMessage) {
|
||||||
|
Notifications.error(response.data.errorMessage);
|
||||||
|
} else {
|
||||||
|
Notifications.error("An unexpected server error has occurred");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return $q.reject(response);
|
||||||
|
});
|
||||||
|
};
|
||||||
|
});
|
||||||
|
|
||||||
// collapsable form fieldsets
|
// collapsable form fieldsets
|
||||||
module.directive('collapsable', function() {
|
module.directive('collapsable', function() {
|
||||||
return function(scope, element, attrs) {
|
return function(scope, element, attrs) {
|
||||||
|
|
|
@ -121,12 +121,8 @@ module.controller('RealmDropdownCtrl', function($scope, Realm, Current, Auth, $l
|
||||||
|
|
||||||
$scope.changeRealm = function(selectedRealm) {
|
$scope.changeRealm = function(selectedRealm) {
|
||||||
$location.url("/realms/" + selectedRealm);
|
$location.url("/realms/" + selectedRealm);
|
||||||
};
|
|
||||||
|
|
||||||
$scope.showNav = function() {
|
|
||||||
var show = Current.realms.length > 0;
|
|
||||||
return Auth.loggedIn && show;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$scope.refresh = function() {
|
$scope.refresh = function() {
|
||||||
Current.refresh();
|
Current.refresh();
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,7 @@
|
||||||
|
<div id="content-area" class="col-sm-12" role="main">
|
||||||
|
<div class="error-container">
|
||||||
|
<h2>Forbidden</h2>
|
||||||
|
<p class="instruction">You don't have access to the requested resource.</p>
|
||||||
|
<a href="#" class="link-right">Go to the home page »</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
|
@ -26,8 +26,8 @@
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
<ul class="nav navbar-nav navbar-primary persistent-secondary" data-ng-controller="RealmDropdownCtrl">
|
<ul class="nav navbar-nav navbar-primary persistent-secondary" data-ng-controller="RealmDropdownCtrl">
|
||||||
<li class="dropdown context" data-ng-show="showNav()">
|
<li class="dropdown context" data-ng-show="current.realm.realm">
|
||||||
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
|
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
|
||||||
{{current.realm.realm}}
|
{{current.realm.realm}}
|
||||||
<b class="caret" data-ng-show="current.realms.length > 1"></b>
|
<b class="caret" data-ng-show="current.realms.length > 1"></b>
|
||||||
</a>
|
</a>
|
||||||
|
@ -37,6 +37,17 @@
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
|
<li class="dropdown context" data-ng-show="!current.realm.realm">
|
||||||
|
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
|
||||||
|
Select realm...
|
||||||
|
<b class="caret"></b>
|
||||||
|
</a>
|
||||||
|
<ul class="dropdown-menu">
|
||||||
|
<li data-ng-repeat="realm in current.realms">
|
||||||
|
<a href="" ng-click="changeRealm(realm.realm)">{{realm.realm}}</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
<li class="active pull-right" data-ng-show="auth.user && access.createRealm">
|
<li class="active pull-right" data-ng-show="auth.user && access.createRealm">
|
||||||
<a class="button primary" href="#/create/realm" data-ng-class="path[0] == 'create' && path[1] == 'realm' && 'active'"
|
<a class="button primary" href="#/create/realm" data-ng-class="path[0] == 'create' && path[1] == 'realm' && 'active'"
|
||||||
data-ng-show="auth.user">Add Realm</a>
|
data-ng-show="auth.user">Add Realm</a>
|
||||||
|
@ -45,6 +56,7 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</nav>
|
</nav>
|
||||||
|
|
||||||
<!-- TODO remove once this page is properly styled -->
|
<!-- TODO remove once this page is properly styled -->
|
||||||
<style type="text/css">
|
<style type="text/css">
|
||||||
.icon-spinner6 {
|
.icon-spinner6 {
|
||||||
|
|
|
@ -1,9 +1,7 @@
|
||||||
|
|
||||||
<div id="content-area" class="col-sm-12" role="main">
|
<div id="content-area" class="col-sm-12" role="main">
|
||||||
<div class="error-container">
|
<div class="error-container">
|
||||||
<h2>Page <strong>not found</strong>...</h2>
|
<h2>Resource <strong>not found</strong>...</h2>
|
||||||
<p class="instruction">We could not find the page you are looking for. Please make sure the URL you entered is correct.</p>
|
<p class="instruction">We could not find the resource you are looking for. Please make sure the URL you entered is correct.</p>
|
||||||
<a href="#" class="link-right">Go to the home page »</a>
|
<a href="#" class="link-right">Go to the home page »</a>
|
||||||
<!-- <a href="#" class="link-right">Go to the realm page »</a> -->
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
|
@ -0,0 +1,7 @@
|
||||||
|
<div id="content-area" class="col-sm-12" role="main">
|
||||||
|
<div class="error-container">
|
||||||
|
<h2>Page <strong>not found</strong>...</h2>
|
||||||
|
<p class="instruction">We could not find the page you are looking for. Please make sure the URL you entered is correct.</p>
|
||||||
|
<a href="#" class="link-right">Go to the home page »</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
Loading…
Reference in a new issue