admin: add badge of new/mines tasks in menu

This commit is contained in:
nemunaire 2020-01-20 08:46:13 +01:00
commit 80a4192cb4
3 changed files with 51 additions and 2 deletions

View file

@ -48,7 +48,11 @@ const indextpl = `<!DOCTYPE html>
<li class="nav-item"><a class="nav-link" href="files">Fichiers</a></li>
<li class="nav-item"><a class="nav-link" href="public/0">Public</a></li>
<li class="nav-item"><a class="nav-link" href="events">&Eacute;vénements</a></li>
<li class="nav-item"><a class="nav-link" href="claims">Tâches</a></li>
<li class="nav-item"><a class="nav-link" href="claims" ng-controller="ClaimsTinyListController">
Tâches
<span class="badge badge-{{ "{{ priorities[myClaimsMaxLevel] }}" }}" ng-show="myClaims">{{ "{{ myClaims }}" }}</span>
<span class="badge badge-{{ "{{ priorities[newClaimsMaxLevel] }}" }}" ng-show="newClaims">{{ "{{ newClaims }}" }}</span>
</a></li>
<li class="nav-item"><a class="nav-link" href="settings">Paramètres</a></li>
</ul>
</div>

View file

@ -46,7 +46,11 @@
<li class="nav-item"><a class="nav-link" href="files">Fichiers</a></li>
<li class="nav-item"><a class="nav-link" href="public/0">Public</a></li>
<li class="nav-item"><a class="nav-link" href="events">&Eacute;vénements</a></li>
<li class="nav-item"><a class="nav-link" href="claims">Tâches</a></li>
<li class="nav-item"><a class="nav-link" href="claims" ng-controller="ClaimsTinyListController">
Tâches
<span class="badge badge-{{ priorities[myClaimsMaxLevel] }}" ng-show="myClaims">{{ myClaims }}</span>
<span class="badge badge-{{ priorities[newClaimsMaxLevel] }}" ng-show="newClaims">{{ newClaims }}</span>
</a></li>
<li class="nav-item"><a class="nav-link" href="settings">Paramètres</a></li>
</ul>
</div>

View file

@ -994,6 +994,47 @@ angular.module("FICApp")
a.$remove(function() { $location.url("/claims/");});
}
})
.controller("ClaimsTinyListController", function($scope, Claim, ClaimAssignee, $interval) {
$scope.whoami = getCookie("myassignee");
var priorities = {
"low": 1,
"medium": 2,
"high": 3,
"critical": 4,
};
$scope.priorities = [
"primary",
"secondary",
"info",
"warning",
"danger",
];
var refresh = function() {
Claim.query().$promise.then(function(claims) {
$scope.newClaims = 0;
$scope.newClaimsMaxLevel = 0;
$scope.myClaims = 0;
$scope.myClaimsMaxLevel = 0;
claims.forEach(function(claim, cid) {
if ($scope.whoami && !claim.id_assignee && claim.state == 'new') {
$scope.newClaims++;
if (priorities[claim.priority] > $scope.newClaimsMaxLevel)
$scope.newClaimsMaxLevel = priorities[claim.priority];
}
else if ($scope.whoami && claim.id_assignee == $scope.whoami && claim.state != 'closed' && claim.state != 'invalid') {
$scope.myClaims++;
if (priorities[claim.priority] > $scope.myClaimsMaxLevel)
$scope.myClaimsMaxLevel = priorities[claim.priority];
}
})
});
};
refresh();
$interval(refresh, 10000);
})
.controller("ClaimsListController", function($scope, Claim, ClaimAssignee, Teams, $location) {
$scope.claims = Claim.query();
$scope.assignees = ClaimAssignee.query();