Skip to content

Commit 53256e8

Browse files
authored
Merge pull request #200 from HFragnaud/master
add pagination to the validation app
2 parents 9bcb4fa + b945471 commit 53256e8

File tree

3 files changed

+40
-14
lines changed

3 files changed

+40
-14
lines changed

validation_service/app/js/app.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@
6363
'clb-env',
6464
'clb-app',
6565
'hbpCollaboratory',
66-
66+
'angularUtils.directives.dirPagination',
6767
// 'hbpCollaboratory',
6868
// 'clbBoostrap',
6969
// 'clb-env',

validation_service/app/js/controller.js

Lines changed: 33 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -5,17 +5,34 @@ var testApp = angular.module('testApp');
55

66
testApp.controller('HomeCtrl', ['$scope', '$rootScope', '$http', '$location', "ScientificModelRest", "ValidationTestDefinitionRest", 'CollabParameters', 'IsCollabMemberRest', 'Context', 'ScientificModelInstanceRest', 'ValidationTestCodeRest', 'DataHandler',
77
function($scope, $rootScope, $http, $location, ScientificModelRest, ValidationTestDefinitionRest, CollabParameters, IsCollabMemberRest, Context, ScientificModelInstanceRest, ValidationTestCodeRest, DataHandler) {
8+
$scope.itemsPerPages = 20;
9+
$scope.models = [];
10+
$scope.tests = [];
11+
$scope.total_models = 0;
812

13+
$scope._load_other_models = function() {
14+
var i = 2;
15+
for (i; i <= $scope.nb_pages; i++) {
16+
DataHandler.loadModelsByPage({ app_id: $scope.app_id, page: i }).then(function(new_models) {
17+
$scope.models.models = $scope.models.models.concat(new_models.models);
18+
$scope.models.models = $scope.models.models.sort(_sort_array_by_timestamp_desc)
19+
$scope.$apply();
20+
})
21+
}
22+
}
23+
var _sort_array_by_timestamp_desc = function(a, b) {
24+
return new Date(b.creation_date) - new Date(a.creation_date);
25+
}
926
Context.setService().then(function() {
1027
console.log('collab parameters setted')
1128

1229
$scope.Context = Context;
13-
var ctx = Context.getCtx();
14-
var app_id = Context.getAppID();
30+
$scope.ctx = Context.getCtx();
31+
$scope.app_id = Context.getAppID();
1532

1633
if (Context.getStateType() == "" || Context.getStateType() == undefined) {
1734

18-
CollabParameters.setService(ctx).then(function() {
35+
CollabParameters.setService($scope.ctx).then(function() {
1936

2037
$scope.collab_species = CollabParameters.getParametersOrDefaultByType("species");
2138

@@ -30,13 +47,19 @@ testApp.controller('HomeCtrl', ['$scope', '$rootScope', '$http', '$location', "S
3047
//$scope.tests = ValidationTestDefinitionRest.get({ app_id: app_id }, function(data) {});
3148
// //for test
3249
// $scope.put_test1 = ValidationTestCodeRest.put({ app_id: app_id, test_definition_id: "53a7a2db-b18f-49ef-b1de-88bd48960c81", version: "1.1" });
33-
DataHandler.loadModels({ app_id: app_id }).then(function(data) {
34-
$scope.models = data
35-
$scope.$apply()
50+
DataHandler.loadModels({ app_id: $scope.app_id, page: 1 }).then(function(data) {
51+
$scope.total_models = data.total_models;
52+
$scope.nb_pages = data.total_nb_pages;
53+
$scope.maxSize = 5;
54+
$scope.current_page = 1;
55+
$scope.models = data;
56+
$scope.$apply();
57+
58+
$scope._load_other_models();
3659
});
3760

38-
DataHandler.loadTests({ app_id: app_id }).then(function(data) {
39-
$scope.tests = data
61+
DataHandler.loadTests({ app_id: $scope.app_id }).then(function(data) {
62+
$scope.tests = data;
4063
$scope.$apply()
4164
});
4265
});
@@ -69,9 +92,9 @@ testApp.controller('ValTestCtrl', ['$scope', '$rootScope', '$http', '$location',
6992
var ctx = Context.getCtx();
7093
var app_id = Context.getAppID();
7194

72-
DataHandler.loadModels({ app_id: app_id }).then(function(data) {
95+
DataHandler.loadModels({ app_id: $scope.app_id }).then(function(data) {
7396
$scope.models = data;
74-
$scope.$apply()
97+
$scope.$apply();
7598
});
7699

77100
DataHandler.loadTests({ app_id: app_id }).then(function(data) {

validation_service/app/templates/validation_framework/home_1.tpl.html

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -69,15 +69,16 @@ <h3 align=center> Models</h3>
6969
<th>Author</th>
7070
</thead>
7171
<br>
72-
<tr class=tr-clickable id="test1" ng-repeat="model in models.models | filter: search | filterMultiple:{organization:selected_organization, species:selected_species, brain_region:selected_brain_region, cell_type:selected_cell_type, model_type:selected_model_type} | orderBy: selected_sorting_option"
73-
ng-mousedown="Context.goToValidationModelView($event, model)">
72+
<tr class=tr-clickable id="test1" dir-paginate="model in models.models | filter: search | filterMultiple:{organization:selected_organization, species:selected_species, brain_region:selected_brain_region, cell_type:selected_cell_type, model_type:selected_model_type} | orderBy: selected_sorting_option | itemsPerPage: itemsPerPages"
73+
pagination-id="models-pagination" ng-mousedown="Context.goToValidationModelView($event, model)">
7474
<td ng-if=!(model.alias) ng-text-truncate=model.name ng-tt-chars-threshold="20" ng-tt-no-toggling> {{model.name}} </td>
7575
<td ng-if=model.alias ng-text-truncate=model.alias ng-tt-chars-threshold="20" ng-tt-no-toggling> {{model.alias}} </td>
7676
<td ng-text-truncate=model.id ng-tt-chars-threshold="8" ng-tt-no-toggling>{{model.id}}</td>
7777
<td ng-text-truncate=model.author ng-tt-chars-threshold="20" ng-tt-no-toggling>{{model.author}}</td>
7878
<br>
7979
</tr>
8080
</table>
81+
<dir-pagination-controls pagination-id="models-pagination" class="pull-left"></dir-pagination-controls>
8182
</div>
8283
<div class="element-middle"></div>
8384
<div class="element-right">
@@ -90,7 +91,8 @@ <h3 align=center> Tests</h3>
9091
</thead>
9192
<br>
9293

93-
<tr class="tr-clickable" ng-mousedown="Context.goToTestDetailView($event, test.id)" ng-repeat="test in tests.tests | filter:search | filterMultiple:{species:selected_species, brain_region:selected_brain_region, cell_type:selected_cell_type, model_type:selected_model_type} | orderBy: selected_sorting_option">
94+
<tr class="tr-clickable" ng-mousedown="Context.goToTestDetailView($event, test.id)" dir-paginate="test in tests.tests | filter:search | filterMultiple:{species:selected_species, brain_region:selected_brain_region, cell_type:selected_cell_type, model_type:selected_model_type} | orderBy: selected_sorting_option | itemsPerPage: itemsPerPages"
95+
pagination-id="tests-pagination">
9496

9597
<td ng-if=!(test.alias) ng-text-truncate=test.name ng-tt-chars-threshold="20" ng-tt-no-toggling> {{test.name}} </td>
9698
<td ng-if=test.alias ng-text-truncate=test.alias ng-tt-chars-threshold="20" ng-tt-no-toggling> {{test.alias}} </td>
@@ -99,6 +101,7 @@ <h3 align=center> Tests</h3>
99101
<br>
100102
</tr>
101103
</table>
104+
<dir-pagination-controls pagination-id="tests-pagination" class="pull-right"></dir-pagination-controls>
102105
</div>
103106

104107
</div>

0 commit comments

Comments
 (0)