1
0
mirror of https://github.com/bitwarden/browser synced 2025-12-20 18:23:31 +00:00

Remove nested bit-layout after bit-layout changes fixed bug that required it (#15559)

This commit is contained in:
Leslie Tilton
2025-07-10 10:33:23 -05:00
committed by GitHub
parent b1b513b527
commit 8135e840ab
2 changed files with 129 additions and 133 deletions

View File

@@ -1,140 +1,138 @@
<ng-container> <ng-container>
<bit-layout> <h1 bitTypography="h1">{{ "riskInsights" | i18n }}</h1>
<h1 bitTypography="h1">{{ "riskInsights" | i18n }}</h1> <div class="tw-text-main tw-max-w-4xl tw-mb-2">
<div class="tw-text-main tw-max-w-4xl tw-mb-2"> {{ "reviewAtRiskPasswords" | i18n }}
{{ "reviewAtRiskPasswords" | i18n }} </div>
</div> <div
<div *ngIf="dataLastUpdated$ | async"
*ngIf="dataLastUpdated$ | async" class="tw-bg-primary-100 tw-rounded-lg tw-w-full tw-px-8 tw-py-4 tw-my-4 tw-flex tw-items-center"
class="tw-bg-primary-100 tw-rounded-lg tw-w-full tw-px-8 tw-py-4 tw-my-4 tw-flex tw-items-center" >
> <i
<i class="bwi bwi-exclamation-triangle bwi-lg tw-text-[1.2rem] tw-text-muted"
class="bwi bwi-exclamation-triangle bwi-lg tw-text-[1.2rem] tw-text-muted" aria-hidden="true"
aria-hidden="true" ></i>
></i> <span class="tw-mx-4">{{
<span class="tw-mx-4">{{ "dataLastUpdated" | i18n: (dataLastUpdated$ | async | date: "MMMM d, y 'at' h:mm a")
"dataLastUpdated" | i18n: (dataLastUpdated$ | async | date: "MMMM d, y 'at' h:mm a") }}</span>
}}</span> <span class="tw-flex tw-justify-center tw-w-16">
<span class="tw-flex tw-justify-center tw-w-16"> <a
<a *ngIf="!(isRefreshing$ | async)"
*ngIf="!(isRefreshing$ | async)" bitButton
bitButton buttonType="unstyled"
buttonType="unstyled" class="tw-border-none !tw-font-normal tw-cursor-pointer !tw-py-0"
class="tw-border-none !tw-font-normal tw-cursor-pointer !tw-py-0" [bitAction]="refreshData.bind(this)"
[bitAction]="refreshData.bind(this)" >
> {{ "refresh" | i18n }}
{{ "refresh" | i18n }} </a>
</a> <span>
<span> <i
<i *ngIf="isRefreshing$ | async"
*ngIf="isRefreshing$ | async" class="bwi bwi-spinner bwi-spin tw-text-muted tw-text-[1.2rem]"
class="bwi bwi-spinner bwi-spin tw-text-muted tw-text-[1.2rem]" aria-hidden="true"
aria-hidden="true" ></i>
></i>
</span>
</span> </span>
</div> </span>
<bit-tab-group [(selectedIndex)]="tabIndex" (selectedIndexChange)="onTabChange($event)"> </div>
<bit-tab label="{{ 'allApplicationsWithCount' | i18n: appsCount }}"> <bit-tab-group [(selectedIndex)]="tabIndex" (selectedIndexChange)="onTabChange($event)">
<tools-all-applications></tools-all-applications> <bit-tab label="{{ 'allApplicationsWithCount' | i18n: appsCount }}">
</bit-tab> <tools-all-applications></tools-all-applications>
<bit-tab> </bit-tab>
<ng-template bitTabLabel> <bit-tab>
<i class="bwi bwi-star"></i> <ng-template bitTabLabel>
{{ "criticalApplicationsWithCount" | i18n: (criticalApps$ | async)?.length ?? 0 }} <i class="bwi bwi-star"></i>
</ng-template> {{ "criticalApplicationsWithCount" | i18n: (criticalApps$ | async)?.length ?? 0 }}
<tools-critical-applications></tools-critical-applications> </ng-template>
</bit-tab> <tools-critical-applications></tools-critical-applications>
</bit-tab-group> </bit-tab>
</bit-tab-group>
<bit-drawer <bit-drawer
style="width: 30%" style="width: 30%"
[(open)]="dataService.openDrawer" [(open)]="dataService.openDrawer"
(openChange)="dataService.closeDrawer()" (openChange)="dataService.closeDrawer()"
> >
<ng-container *ngIf="dataService.isActiveDrawerType(drawerTypes.OrgAtRiskMembers)"> <ng-container *ngIf="dataService.isActiveDrawerType(drawerTypes.OrgAtRiskMembers)">
<bit-drawer-header <bit-drawer-header
title="{{ 'atRiskMembersWithCount' | i18n: dataService.atRiskMemberDetails.length }}" title="{{ 'atRiskMembersWithCount' | i18n: dataService.atRiskMemberDetails.length }}"
> >
</bit-drawer-header> </bit-drawer-header>
<bit-drawer-body> <bit-drawer-body>
<span bitTypography="body1" class="tw-text-muted tw-text-sm">{{ <span bitTypography="body1" class="tw-text-muted tw-text-sm">{{
(dataService.atRiskMemberDetails.length > 0 (dataService.atRiskMemberDetails.length > 0
? "atRiskMembersDescription" ? "atRiskMembersDescription"
: "atRiskMembersDescriptionNone" : "atRiskMembersDescriptionNone"
) | i18n ) | i18n
}}</span> }}</span>
<ng-container *ngIf="dataService.atRiskMemberDetails.length > 0"> <ng-container *ngIf="dataService.atRiskMemberDetails.length > 0">
<div class="tw-flex tw-justify-between tw-mt-2 tw-text-muted"> <div class="tw-flex tw-justify-between tw-mt-2 tw-text-muted">
<div bitTypography="body2" class="tw-text-sm tw-font-bold">{{ "email" | i18n }}</div> <div bitTypography="body2" class="tw-text-sm tw-font-bold">{{ "email" | i18n }}</div>
<div bitTypography="body2" class="tw-text-sm tw-font-bold"> <div bitTypography="body2" class="tw-text-sm tw-font-bold">
{{ "atRiskPasswords" | i18n }} {{ "atRiskPasswords" | i18n }}
</div>
</div> </div>
<ng-container *ngFor="let member of dataService.atRiskMemberDetails">
<div class="tw-flex tw-justify-between tw-mt-2">
<div>{{ member.email }}</div>
<div>{{ member.atRiskPasswordCount }}</div>
</div>
</ng-container>
</ng-container>
</bit-drawer-body>
</ng-container>
<ng-container *ngIf="dataService.isActiveDrawerType(drawerTypes.AppAtRiskMembers)">
<bit-drawer-header title="{{ dataService.appAtRiskMembers.applicationName }}">
</bit-drawer-header>
<bit-drawer-body>
<div bitTypography="body1" class="tw-mb-2">
{{ "atRiskMembersWithCount" | i18n: dataService.appAtRiskMembers.members.length }}
</div> </div>
<div bitTypography="body1" class="tw-text-muted tw-text-sm tw-mb-2"> <ng-container *ngFor="let member of dataService.atRiskMemberDetails">
{{ <div class="tw-flex tw-justify-between tw-mt-2">
(dataService.appAtRiskMembers.members.length > 0
? "atRiskMembersDescriptionWithApp"
: "atRiskMembersDescriptionWithAppNone"
) | i18n: dataService.appAtRiskMembers.applicationName
}}
</div>
<div class="tw-mt-1">
<ng-container *ngFor="let member of dataService.appAtRiskMembers.members">
<div>{{ member.email }}</div> <div>{{ member.email }}</div>
</ng-container> <div>{{ member.atRiskPasswordCount }}</div>
</div>
</bit-drawer-body>
</ng-container>
<ng-container *ngIf="dataService.isActiveDrawerType(drawerTypes.OrgAtRiskApps)">
<bit-drawer-header
title="{{ 'atRiskApplicationsWithCount' | i18n: dataService.atRiskAppDetails.length }}"
>
</bit-drawer-header>
<bit-drawer-body>
<span bitTypography="body2" class="tw-text-muted tw-text-sm">{{
(dataService.atRiskAppDetails.length > 0
? "atRiskApplicationsDescription"
: "atRiskApplicationsDescriptionNone"
) | i18n
}}</span>
<ng-container *ngIf="dataService.atRiskAppDetails.length > 0">
<div class="tw-flex tw-justify-between tw-mt-2 tw-text-muted">
<div bitTypography="body2" class="tw-text-sm tw-font-bold">
{{ "application" | i18n }}
</div>
<div bitTypography="body2" class="tw-text-sm tw-font-bold">
{{ "atRiskPasswords" | i18n }}
</div>
</div> </div>
<ng-container *ngFor="let app of dataService.atRiskAppDetails">
<div class="tw-flex tw-justify-between tw-mt-2">
<div>{{ app.applicationName }}</div>
<div>{{ app.atRiskPasswordCount }}</div>
</div>
</ng-container>
</ng-container> </ng-container>
</bit-drawer-body> </ng-container>
</ng-container> </bit-drawer-body>
</bit-drawer> </ng-container>
</bit-layout>
<ng-container *ngIf="dataService.isActiveDrawerType(drawerTypes.AppAtRiskMembers)">
<bit-drawer-header title="{{ dataService.appAtRiskMembers.applicationName }}">
</bit-drawer-header>
<bit-drawer-body>
<div bitTypography="body1" class="tw-mb-2">
{{ "atRiskMembersWithCount" | i18n: dataService.appAtRiskMembers.members.length }}
</div>
<div bitTypography="body1" class="tw-text-muted tw-text-sm tw-mb-2">
{{
(dataService.appAtRiskMembers.members.length > 0
? "atRiskMembersDescriptionWithApp"
: "atRiskMembersDescriptionWithAppNone"
) | i18n: dataService.appAtRiskMembers.applicationName
}}
</div>
<div class="tw-mt-1">
<ng-container *ngFor="let member of dataService.appAtRiskMembers.members">
<div>{{ member.email }}</div>
</ng-container>
</div>
</bit-drawer-body>
</ng-container>
<ng-container *ngIf="dataService.isActiveDrawerType(drawerTypes.OrgAtRiskApps)">
<bit-drawer-header
title="{{ 'atRiskApplicationsWithCount' | i18n: dataService.atRiskAppDetails.length }}"
>
</bit-drawer-header>
<bit-drawer-body>
<span bitTypography="body2" class="tw-text-muted tw-text-sm">{{
(dataService.atRiskAppDetails.length > 0
? "atRiskApplicationsDescription"
: "atRiskApplicationsDescriptionNone"
) | i18n
}}</span>
<ng-container *ngIf="dataService.atRiskAppDetails.length > 0">
<div class="tw-flex tw-justify-between tw-mt-2 tw-text-muted">
<div bitTypography="body2" class="tw-text-sm tw-font-bold">
{{ "application" | i18n }}
</div>
<div bitTypography="body2" class="tw-text-sm tw-font-bold">
{{ "atRiskPasswords" | i18n }}
</div>
</div>
<ng-container *ngFor="let app of dataService.atRiskAppDetails">
<div class="tw-flex tw-justify-between tw-mt-2">
<div>{{ app.applicationName }}</div>
<div>{{ app.atRiskPasswordCount }}</div>
</div>
</ng-container>
</ng-container>
</bit-drawer-body>
</ng-container>
</bit-drawer>
</ng-container> </ng-container>

View File

@@ -23,7 +23,6 @@ import {
DrawerBodyComponent, DrawerBodyComponent,
DrawerComponent, DrawerComponent,
DrawerHeaderComponent, DrawerHeaderComponent,
LayoutComponent,
TabsModule, TabsModule,
} from "@bitwarden/components"; } from "@bitwarden/components";
import { HeaderModule } from "@bitwarden/web-vault/app/layouts/header/header.module"; import { HeaderModule } from "@bitwarden/web-vault/app/layouts/header/header.module";
@@ -53,7 +52,6 @@ export enum RiskInsightsTabType {
DrawerComponent, DrawerComponent,
DrawerBodyComponent, DrawerBodyComponent,
DrawerHeaderComponent, DrawerHeaderComponent,
LayoutComponent,
], ],
}) })
export class RiskInsightsComponent implements OnInit { export class RiskInsightsComponent implements OnInit {