diff --git a/dashboard/src/theme.scss b/dashboard/src/theme.scss index 6675032f0..03db9151d 100644 --- a/dashboard/src/theme.scss +++ b/dashboard/src/theme.scss @@ -534,6 +534,27 @@ textarea { } } +.app-checklist-badge { + display: flex; + justify-content: center; + align-items: center; + position: absolute; + left: calc(50% - 12px); + top: -12px; + font-size: 14px; + height: 24px; + width: 24px; + color: white; + cursor: pointer; + background-color: $brand-danger; + border-radius: 34px; + transition: all 100ms ease-out; + + &:hover { + transform: scale(1.4); + } +} + .app-postinstall-message { max-height: 500px; overflow-x: none; diff --git a/dashboard/src/views/apps.html b/dashboard/src/views/apps.html index 75e499ef4..50ef3e67a 100644 --- a/dashboard/src/views/apps.html +++ b/dashboard/src/views/apps.html @@ -198,11 +198,15 @@ + - -
- -
+ +
+ +
+ +
+
@@ -247,6 +251,7 @@ {{ app | installationStateLabel }} + diff --git a/dashboard/src/views/apps.js b/dashboard/src/views/apps.js index 32dca5516..08488f2d1 100644 --- a/dashboard/src/views/apps.js +++ b/dashboard/src/views/apps.js @@ -54,6 +54,11 @@ angular.module('Application').controller('AppsController', ['$scope', '$translat if (tr['app.states.updateAvailable']) $scope.states[3].label = tr['app.states.updateAvailable']; }); + $scope.hasPendingChecklistItems = function (app) { + if (!app.checklist) return false; + return !!Object.keys(app.checklist).find(function (key) { return !app.checklist[key].acknowledged; }); + }; + $scope.setOrderBy = function (by) { if (by === $scope.orderBy) { $scope.orderByReverse = !$scope.orderByReverse;