diff --git a/apps/dnet-orgs-database-application/src/main/resources/static/resources/html/pages/search/browse.html b/apps/dnet-orgs-database-application/src/main/resources/static/resources/html/pages/search/browse.html
index 25677167..0fb35d65 100644
--- a/apps/dnet-orgs-database-application/src/main/resources/static/resources/html/pages/search/browse.html
+++ b/apps/dnet-orgs-database-application/src/main/resources/static/resources/html/pages/search/browse.html
@@ -23,19 +23,19 @@
{{e.name}} ({{e.code}}) |
- {{e.values.approved}}
+ {{e.values.approved}}
-
|
- {{e.values.suggested}}
+ {{e.values.suggested}}
-
|
- {{e.values.raw}}
+ {{e.values.raw}}
-
|
- {{e.values.hidden}}
+ {{e.values.hidden}}
-
|
diff --git a/apps/dnet-orgs-database-application/src/main/resources/static/resources/js/organizations.js b/apps/dnet-orgs-database-application/src/main/resources/static/resources/js/organizations.js
index c313bd7a..5a29603e 100644
--- a/apps/dnet-orgs-database-application/src/main/resources/static/resources/js/organizations.js
+++ b/apps/dnet-orgs-database-application/src/main/resources/static/resources/js/organizations.js
@@ -212,7 +212,7 @@ orgsModule.directive('orgDetails', function($http, $location, $route) {
}
});
-orgsModule.directive('orgResultsPage', function($http, $location, $route) {
+orgsModule.directive('orgResultsPage', function($http, $location, $route, $routeParams) {
return {
restrict: 'E',
scope: {
@@ -250,9 +250,13 @@ orgsModule.directive('orgResultsPage', function($http, $location, $route) {
for (var i = 0; i < scope.orgs.totalPages; i++) input.push(i);
return input;
}
-
- scope.gotoPage = function(page, pageSize) {
- var url = scope.pageFunction().replace(/__PAGE__/, page).replace(/__SIZE__/, pageSize);
+
+ scope.gotoPageAndSort = function(page, pageSize, orderBy, orderType) {
+ var url = scope.pageFunction()
+ .replace(/__PAGE__/, page)
+ .replace(/__SIZE__/, pageSize)
+ .replace(/__ORDER_BY__/, orderBy)
+ .replace(/__ORDER_TYPE__/, orderType);
if (scope.mode == 'select-modal' || scope.mode == 'multi-select-modal') {
scope.orgs = {};
@@ -263,6 +267,11 @@ orgsModule.directive('orgResultsPage', function($http, $location, $route) {
$location.url(url);
}
}
+
+ scope.gotoPage = function(page, pageSize) {
+ scope.gotoPageAndSort(page, pageSize, $routeParams.orderBy, $routeParams.orderType);
+ }
+
}
}
@@ -402,25 +411,24 @@ orgsModule.directive('orgJournal', function($http) {
}
});
-
orgsModule.config(function($routeProvider) {
$routeProvider
- .when('/search', { templateUrl: 'resources/html/pages/search/search.html', controller: 'searchCtrl' })
- .when('/searchResults/:page/:size/:text*', { templateUrl: 'resources/html/pages/search/searchResults.html', controller: 'searchResultsCtrl' })
- .when('/countries/:mode', { templateUrl: 'resources/html/pages/search/browse.html', controller: 'countriesCtrl' })
- .when('/byCountry/:page/:size/:status/:code*', { templateUrl: 'resources/html/pages/search/resultsByCountry.html', controller: 'byCountryCtrl' })
- .when('/types/:mode', { templateUrl: 'resources/html/pages/search/browse.html', controller: 'typesCtrl' })
- .when('/byType/:page/:size/:status/:type*', { templateUrl: 'resources/html/pages/search/resultsByType.html', controller: 'byTypeCtrl' })
- .when('/edit/:msg/:id*', { templateUrl: 'resources/html/pages/edit/edit.html', controller: 'showEditCtrl' })
- .when('/new', { templateUrl: 'resources/html/pages/advanced/new.html', controller: 'newOrgCtrl' })
- .when('/pendings/:country', { templateUrl: 'resources/html/pages/advanced/pendingOrgs.html', controller: 'pendingOrgsCtrl' })
- .when('/duplicates/:country', { templateUrl: 'resources/html/pages/advanced/duplicates.html', controller: 'duplicatesCtrl' })
- .when('/conflicts/:country', { templateUrl: 'resources/html/pages/advanced/conflicts.html', controller: 'conflictsCtrl' })
- .when('/users', { templateUrl: 'resources/html/pages/admin/users.html', controller: 'usersCtrl' })
- .when('/sysconf', { templateUrl: 'resources/html/pages/admin/sysConf.html', controller: 'sysConfCtrl' })
- .when('/utils', { templateUrl: 'resources/html/pages/admin/utils.html', controller: 'utilsCtrl' })
- .when('/lastImport', { templateUrl: 'resources/html/pages/admin/lastImport.html', controller: 'lastImportCtrl' })
- .when('/persistentOrgs', { templateUrl: 'resources/html/pages/admin/persistentOrgs.html', controller: 'persistentOrgsCtrl' })
+ .when('/search', { templateUrl: 'resources/html/pages/search/search.html', controller: 'searchCtrl' })
+ .when('/page/:page/:size/sortBy/:orderBy/:orderType/search/:text*', { templateUrl: 'resources/html/pages/search/searchResults.html', controller: 'searchResultsCtrl' })
+ .when('/countries/:mode', { templateUrl: 'resources/html/pages/search/browse.html', controller: 'countriesCtrl' })
+ .when('/page/:page/:size/sortBy/:orderBy/:orderType/byCountry/:status/:code*', { templateUrl: 'resources/html/pages/search/resultsByCountry.html', controller: 'byCountryCtrl' })
+ .when('/types/:mode', { templateUrl: 'resources/html/pages/search/browse.html', controller: 'typesCtrl' })
+ .when('/page/:page/:size/sortBy/:orderBy/:orderType/byType/:status/:type*', { templateUrl: 'resources/html/pages/search/resultsByType.html', controller: 'byTypeCtrl' })
+ .when('/edit/:msg/:id*', { templateUrl: 'resources/html/pages/edit/edit.html', controller: 'showEditCtrl' })
+ .when('/new', { templateUrl: 'resources/html/pages/advanced/new.html', controller: 'newOrgCtrl' })
+ .when('/pendings/:country', { templateUrl: 'resources/html/pages/advanced/pendingOrgs.html', controller: 'pendingOrgsCtrl' })
+ .when('/duplicates/:country', { templateUrl: 'resources/html/pages/advanced/duplicates.html', controller: 'duplicatesCtrl' })
+ .when('/conflicts/:country', { templateUrl: 'resources/html/pages/advanced/conflicts.html', controller: 'conflictsCtrl' })
+ .when('/users', { templateUrl: 'resources/html/pages/admin/users.html', controller: 'usersCtrl' })
+ .when('/sysconf', { templateUrl: 'resources/html/pages/admin/sysConf.html', controller: 'sysConfCtrl' })
+ .when('/utils', { templateUrl: 'resources/html/pages/admin/utils.html', controller: 'utilsCtrl' })
+ .when('/lastImport', { templateUrl: 'resources/html/pages/admin/lastImport.html', controller: 'lastImportCtrl' })
+ .when('/persistentOrgs', { templateUrl: 'resources/html/pages/admin/persistentOrgs.html', controller: 'persistentOrgsCtrl' })
.otherwise({ redirectTo: '/search' });
});
@@ -462,9 +470,9 @@ orgsModule.controller('searchCtrl', function ($scope, $location) {
$scope.searchText = '';
$scope.search = function() {
if ($scope.searchText) {
- $location.url('/searchResults/0/50/' + encodeURIComponent(encodeURIComponent($scope.searchText)));
+ $location.url('/page/0/50/sortBy/name/asc/search/' + encodeURIComponent(encodeURIComponent($scope.searchText)));
} else {
- $location.url('/searchResults/0/50/_');
+ $location.url('/page/0/50/sortBy/name/asc/search/_');
}
}
});
@@ -476,13 +484,27 @@ orgsModule.controller('searchResultsCtrl', function ($scope, $http, $routeParams
}
$scope.orgs = {};
- call_http_get($http, 'api/organizations/search/' + $routeParams.page + '/' + $routeParams.size + '?q=' + $scope.searchText, function(res) { $scope.orgs = res.data; });
+
+ var url = 'api/organizations/search/'
+ + $routeParams.page
+ + '/'
+ + $routeParams.size
+ + '?q='
+ + $scope.searchText
+ + '&orderBy='
+ + encodeURIComponent($routeParams.orderBy);
+
+ if ($routeParams.orderType == 'desc') {
+ url += "&reverse=true";
+ }
+
+ call_http_get($http, url, function(res) { $scope.orgs = res.data; });
$scope.pageSearch = function() {
if ($scope.searchText) {
- return '/searchResults/__PAGE__/__SIZE__/' + encodeURIComponent($scope.searchText);
+ return '/page/__PAGE__/__SIZE__/sortBy/__ORDER_BY__/__ORDER_TYPE__/search/' + encodeURIComponent($scope.searchText);
} else {
- return '/searchResults/__PAGE__/__SIZE__/_';
+ return '/page/__PAGE__/__SIZE__/sortBy/__ORDER_BY__/__ORDER_TYPE__/search/_';
}
}
@@ -492,7 +514,7 @@ orgsModule.controller('countriesCtrl', function ($scope, $http, $routeParams) {
$scope.title = 'Countries';
$scope.field = 'Country';
- $scope.resultsBasePath = '/byCountry'
+ $scope.resultsBasePath = '/page/0/50/sortBy/name/asc/byCountry';
$scope.entries = [];
$scope.mode = $routeParams.mode;
@@ -504,18 +526,37 @@ orgsModule.controller('byCountryCtrl', function ($scope, $http, $routeParams, $l
$scope.fieldValue = decodeURIComponent($routeParams.code);
$scope.orgs = {};
- call_http_get($http, 'api/organizations/byCountry/' + $routeParams.status + '/' + $routeParams.code + '/' + $routeParams.page + '/' + $routeParams.size, function(res) { $scope.orgs = res.data; });
+ var url = 'api/organizations/byCountry/'
+ + $routeParams.status
+ + '/'
+ + $routeParams.code
+ + '/'
+ + $routeParams.page
+ + '/'
+ + $routeParams.size
+ + '?orderBy='
+ + encodeURIComponent($routeParams.orderBy)
+
+ if ($routeParams.orderType == 'desc') {
+ url += "&reverse=true";
+ }
+
+
+ call_http_get($http, url, function(res) { $scope.orgs = res.data; });
$scope.pageByCountry = function() {
- return '/byCountry/__PAGE__/__SIZE__/' + $routeParams.status + '/' + encodeURIComponent($scope.fieldValue);
+ return '/page/__PAGE__/__SIZE__/sortBy/__ORDER_BY__/__ORDER_TYPE__/byCountry/'
+ + $routeParams.status
+ + '/'
+ + encodeURIComponent($scope.fieldValue);
}
-
+
});
orgsModule.controller('typesCtrl', function ($scope, $http, $routeParams) {
$scope.title = 'Organization types';
$scope.field = 'Organization type';
- $scope.resultsBasePath = '/byType'
+ $scope.resultsBasePath = '/page/0/50/sortBy/name/asc/byType';
$scope.entries = [];
$scope.mode = $routeParams.mode;
@@ -528,10 +569,29 @@ orgsModule.controller('byTypeCtrl', function ($scope, $http, $routeParams, $loca
$scope.orgs = {};
- call_http_get($http, 'api/organizations/byType/' + $routeParams.status + '/' + $routeParams.type + '/' + $routeParams.page + '/' + $routeParams.size, function(res) { $scope.orgs = res.data; });
+ var url = 'api/organizations/byType/'
+ + $routeParams.status
+ + '/'
+ + $routeParams.type
+ + '/'
+ + $routeParams.page
+ + '/'
+ + $routeParams.size
+ + '?orderBy='
+ + encodeURIComponent($routeParams.orderBy)
+
+ if ($routeParams.orderType == 'desc') {
+ url += "&reverse=true";
+ }
+
+
+ call_http_get($http, url, function(res) { $scope.orgs = res.data; });
$scope.pageByType = function() {
- return '/byType/__PAGE__/__SIZE__/' + $routeParams.status + '/' + encodeURIComponent($scope.fieldValue);
+ return '/page/__PAGE__/__SIZE__/sortBy/__ORDER_BY__/__ORDER_TYPE__/byType/'
+ + $routeParams.status
+ + '/'
+ + encodeURIComponent($scope.fieldValue);
}
});