Skip to content

Commit d8395c2

Browse files
author
Johannes Stelzer
committed
Sorting for applicationlist in overview
1 parent d35a01b commit d8395c2

File tree

3 files changed

+45
-4
lines changed

3 files changed

+45
-4
lines changed

spring-boot-admin-server-ui/app/css/main.css

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -190,6 +190,22 @@ span.refresh {
190190
color: #f1f1f1;
191191
}
192192

193+
.sortable {
194+
cursor: pointer;
195+
}
196+
197+
.sorted-ascending,
198+
.sorted-descending {
199+
color: #6db33f;
200+
}
201+
202+
.sorted-ascending::after {
203+
content: " \25b2";
204+
}
205+
.sorted-descending::after {
206+
content: " \25bc";
207+
}
208+
193209
.nav > li > a {
194210
color: #838789;
195211
}

spring-boot-admin-server-ui/app/js/controller/overviewCtrl.js

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,4 +63,26 @@ module.exports = function ($scope, $location, $interval, $q, Applications, Appli
6363
$interval(function () {
6464
$scope.loadData();
6565
}, 30000);
66+
67+
$scope.order = {
68+
column: 'name',
69+
descending: false
70+
};
71+
72+
$scope.orderBy = function (column) {
73+
if (column === $scope.order.column) {
74+
$scope.order.descending = !$scope.order.descending;
75+
} else {
76+
$scope.order.column = column;
77+
$scope.order.descending = false;
78+
}
79+
};
80+
81+
$scope.orderByCssClass = function (column) {
82+
if (column === $scope.order.column) {
83+
return 'sorted-' + ($scope.order.descending ? 'descending' : 'ascending');
84+
} else {
85+
return '';
86+
}
87+
};
6688
};

spring-boot-admin-server-ui/app/views/overview.html

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,17 @@ <h2 >Spring-Boot applications<br>
44
<table class="table table-striped">
55
<thead>
66
<tr>
7-
<th>Application / URL</th>
8-
<th>Version</th>
7+
<th><span class="sortable" ng-class="orderByCssClass('name')" ng-click="orderBy('name')">Application</span>
8+
/
9+
<span class="sortable" ng-class="orderByCssClass('url')" ng-click="orderBy('url')">URL</span>
10+
</th>
11+
<th><span class="sortable" ng-class="orderByCssClass('version')" ng-click="orderBy('version')">Version</span></th>
912
<th>Info</th>
10-
<th colspan="2">Status</th>
13+
<th colspan="2"><span class="sortable" ng-class="orderByCssClass('status')" ng-click="orderBy('status')">Status</span></th>
1114
</tr>
1215
</thead>
1316
<tbody>
14-
<tr ng-repeat="application in applications track by application.id">
17+
<tr ng-repeat="application in applications|orderBy:order.column:order.descending track by application.id">
1518
<td>{{ application.name }}<br/><span class="muted">{{ application.url }}</span></td>
1619
<td>{{ application.version }}</td>
1720
<td><span ng-repeat="(name, value) in application.info track by name">{{name}}: {{value}}<br></span></td>

0 commit comments

Comments
 (0)