mirror of
https://github.com/bitwarden/browser
synced 2026-01-06 10:33:57 +00:00
* add "All caught up!" state for application review card - Display success state when all applications have been reviewed and no new applications need review - Add iconColorClass input to activity-card component to support conditional icon colors (green checkmark for success state) - Add i18n keys: allCaughtUp and noNewApplicationsToReviewAtThisTime - Check if all apps have review dates via enrichedReportData$ to determine when to show the caught up state * fix "Potential Race Condition with State Initialization" from claude issue and replace getter
68 lines
2.5 KiB
HTML
68 lines
2.5 KiB
HTML
@if ((dataService.reportStatus$ | async) == ReportStatusEnum.Loading) {
|
|
<dirt-risk-insights-loading></dirt-risk-insights-loading>
|
|
} @else {
|
|
<ul
|
|
class="tw-inline-grid tw-grid-cols-3 tw-gap-6 tw-m-0 tw-p-0 tw-w-full tw-auto-cols-auto tw-list-none"
|
|
>
|
|
<li class="tw-col-span-1" [ngClass]="{ 'tw-col-span-2': passwordChangeMetricHasProgressBar }">
|
|
<dirt-password-change-metric></dirt-password-change-metric>
|
|
</li>
|
|
|
|
<li class="tw-col-span-1">
|
|
<dirt-activity-card
|
|
[title]="'atRiskMembers' | i18n"
|
|
[cardMetrics]="'membersAtRiskCount' | i18n: totalCriticalAppsAtRiskMemberCount"
|
|
[metricDescription]="'membersWithAccessToAtRiskItemsForCriticalApps' | i18n"
|
|
actionText="{{ 'viewAtRiskMembers' | i18n }}"
|
|
[showActionLink]="totalCriticalAppsAtRiskMemberCount > 0"
|
|
(actionClick)="onViewAtRiskMembers()"
|
|
>
|
|
</dirt-activity-card>
|
|
</li>
|
|
|
|
<li class="tw-col-span-1">
|
|
<dirt-activity-card
|
|
#allAppsOrgAtRiskApplications
|
|
[title]="'criticalApplications' | i18n"
|
|
[cardMetrics]="
|
|
totalCriticalAppsCount === 0
|
|
? ('countOfCriticalApplications' | i18n: totalCriticalAppsCount)
|
|
: ('countOfApplicationsAtRisk' | i18n: totalCriticalAppsAtRiskCount)
|
|
"
|
|
[metricDescription]="
|
|
totalCriticalAppsCount === 0
|
|
? ('onceYouMarkApplicationsCriticalTheyWillDisplayHere' | i18n)
|
|
: ('criticalApplicationsAreAtRisk'
|
|
| i18n: totalCriticalAppsAtRiskCount : totalCriticalAppsCount)
|
|
"
|
|
actionText="{{ 'viewAtRiskApplications' | i18n }}"
|
|
[showActionLink]="totalCriticalAppsAtRiskCount > 0"
|
|
(actionClick)="onViewAtRiskApplications()"
|
|
>
|
|
</dirt-activity-card>
|
|
</li>
|
|
|
|
<li class="tw-col-span-1">
|
|
<dirt-activity-card
|
|
[title]="'applicationsNeedingReview' | i18n"
|
|
[cardMetrics]="
|
|
isAllCaughtUp
|
|
? ('allCaughtUp' | i18n)
|
|
: ('newApplicationsWithCount' | i18n: newApplicationsCount)
|
|
"
|
|
[metricDescription]="
|
|
isAllCaughtUp
|
|
? ('noNewApplicationsToReviewAtThisTime' | i18n)
|
|
: ('newApplicationsDescription' | i18n)
|
|
"
|
|
[iconClass]="isAllCaughtUp ? 'bwi-check-circle' : 'bwi-exclamation-triangle'"
|
|
[iconColorClass]="isAllCaughtUp ? 'tw-text-success' : 'tw-text-muted'"
|
|
[buttonText]="isAllCaughtUp ? '' : ('reviewNow' | i18n)"
|
|
[buttonType]="'primary'"
|
|
(buttonClick)="onReviewNewApplications()"
|
|
>
|
|
</dirt-activity-card>
|
|
</li>
|
|
</ul>
|
|
}
|