dashboard: can filter by challenge state
This commit is contained in:
parent
78e7da799a
commit
b73cab920a
@ -104,11 +104,11 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="d-flex flex-wrap justify-content-around" style="padding: 0">
|
||||
<span class="badge" ng-repeat="(ch,t) in tuto_progress[tutoid]" ng-class="{'badge-success': stats[ch].success > 0 || (tutoid == 0 && stats[ch].warning > 0), 'badge-warning': tutoid != 0 && stats[ch].success == 0 && stats[ch].warning > 0, 'badge-danger': !stats[ch] || (stats[ch].success == 0 && stats[ch].warning == 0)}" title="{{ t.title }}: {{ stats[ch].success }} - {{ stats[ch].warning }}/{{ stats.total }}" ng-cloak>{{ stats[ch].warning * 100 / stats.total | number:0 }} %</span>
|
||||
<span class="badge" ng-repeat="(ch,t) in tuto_progress[tutoid]" ng-class="{'badge-success': stats[ch].success > 0 || (tutoid == 0 && stats[ch].warning > 0), 'badge-warning': tutoid != 0 && stats[ch].success == 0 && stats[ch].warning > 0, 'badge-danger': !stats[ch] || (stats[ch].success == 0 && stats[ch].warning == 0)}" title="{{ t.title }}: {{ stats[ch].success }} - {{ stats[ch].warning }}/{{ stats.total }}" ng-click="toogleBadge(ch)" ng-cloak>{{ stats[ch].warning * 100 / stats.total | number:0 }} %</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="card student d-flex flex-column justify-content-between" ng-repeat="(login, mychallenges) in students" ng-if="login != 'nemunaire'" style="background-image: url('https://photos.cri.epita.fr/square/{{ mychallenges.img | lowercase }}')">
|
||||
<div class="card student d-flex flex-column justify-content-between" ng-repeat="(login, mychallenges) in students" ng-if="login != 'nemunaire'" style="background-image: url('https://photos.cri.epita.fr/square/{{ mychallenges.img | lowercase }}')" ng-show="!filterBadgeState.challenge || (filterBadgeState.state == 'bad' && (!mychallenges[filterBadgeState.challenge] || !mychallenges[filterBadgeState.challenge].recent)) || (filterBadgeState.state == 'passed' && mychallenges[filterBadgeState.challenge] && mychallenges[filterBadgeState.challenge].recent) || (filterBadgeState.state == 'online' && mychallenges[filterBadgeState.challenge] && mychallenges[filterBadgeState.challenge].recent <= 300) || (filterBadgeState.state == 'offline' && mychallenges[filterBadgeState.challenge] && mychallenges[filterBadgeState.challenge].recent > 300)">
|
||||
<h5 class="login text-truncate" title="{{ login }}">
|
||||
<span class="badge" ng-class="{'badge-success': mychallenges['ping'] && mychallenges['ping'].recent < 120, 'badge-info': mychallenges['ping'] && mychallenges['ping'].recent >= 120 && mychallenges['ping'].recent < 300, 'badge-warning': mychallenges['ping'] && mychallenges['ping'].recent >= 300 && mychallenges['ping'].recent < 900, 'badge-danger': mychallenges['ping'] && mychallenges['ping'].recent >= 900, 'badge-dark': !mychallenges['ping']}" title="{{ mychallenges['ping'].time }}">
|
||||
💻
|
||||
|
@ -43,6 +43,28 @@ angular.module("AdLinApp")
|
||||
$scope.tuto_progress = tuto_progress;
|
||||
$scope.stats = {};
|
||||
$scope.students = {};
|
||||
$scope.filterBadgeState = {};
|
||||
|
||||
$scope.toogleBadge = function(ch) {
|
||||
if ($scope.filterBadgeState["challenge"] && $scope.filterBadgeState["challenge"] == ch) {
|
||||
switch ($scope.filterBadgeState["state"]) {
|
||||
case "bad":
|
||||
$scope.filterBadgeState["state"] = "passed";
|
||||
break;
|
||||
case "passed":
|
||||
$scope.filterBadgeState["state"] = "online";
|
||||
break;
|
||||
case "online":
|
||||
$scope.filterBadgeState["state"] = "offline";
|
||||
break;
|
||||
default:
|
||||
$scope.filterBadgeState = {};
|
||||
}
|
||||
} else {
|
||||
$scope.filterBadgeState["challenge"] = ch;
|
||||
$scope.filterBadgeState["state"] = "bad";
|
||||
}
|
||||
};
|
||||
|
||||
var refreshStd = function() {
|
||||
var students = Progression.get();
|
||||
|
Reference in New Issue
Block a user