From d433fa22d58bdc87092423d88c9ff48d1e889ff5 Mon Sep 17 00:00:00 2001 From: Leslie Xiong Date: Fri, 19 Dec 2025 12:12:51 -0500 Subject: [PATCH] - created 'All vaults' group nav item to reset 'My vault' and 'Organization's - changed 'All items' to a group nav item - fixed issue where 'My vault' items were disappearing on page reload --- .../organization-filter.component.html | 45 +++++++++++-------- .../filters/organization-filter.component.ts | 12 ++++- .../filters/type-filter.component.html | 34 ++++++++------ .../filters/type-filter.component.ts | 5 ++- .../vault-filter/vault-filter.component.ts | 1 - .../src/vault/app/vault-v3/vault.component.ts | 3 +- 6 files changed, 62 insertions(+), 38 deletions(-) diff --git a/apps/desktop/src/vault/app/vault-v3/vault-filter/filters/organization-filter.component.html b/apps/desktop/src/vault/app/vault-v3/vault-filter/filters/organization-filter.component.html index 5de23af8e4e..79f89a39260 100644 --- a/apps/desktop/src/vault/app/vault-v3/vault-filter/filters/organization-filter.component.html +++ b/apps/desktop/src/vault/app/vault-v3/vault-filter/filters/organization-filter.component.html @@ -1,21 +1,30 @@ @if (show()) { - @for (organization of organizations().children ?? []; track organization.node.id) { - - @if (!organization.node.enabled) { - - - + + @for (organization of organizations().children ?? []; track organization.node.id) { + + @if (!organization.node.enabled) { + + + + } } - } + } diff --git a/apps/desktop/src/vault/app/vault-v3/vault-filter/filters/organization-filter.component.ts b/apps/desktop/src/vault/app/vault-v3/vault-filter/filters/organization-filter.component.ts index fb88db007f4..fa91816577a 100644 --- a/apps/desktop/src/vault/app/vault-v3/vault-filter/filters/organization-filter.component.ts +++ b/apps/desktop/src/vault/app/vault-v3/vault-filter/filters/organization-filter.component.ts @@ -51,7 +51,8 @@ export class OrganizationFilterComponent { return displayMode; }); - protected applyFilter(organization: TreeNode) { + protected applyFilter(event: Event, organization: TreeNode) { + event.stopPropagation(); if (!organization.node.enabled) { this.toastService.showToast({ variant: "error", @@ -68,4 +69,13 @@ export class OrganizationFilterComponent { filter.selectedOrganizationNode = organization; } } + + protected applyAllVaultsFilter() { + this.vaultFilterService.clearOrganizationFilter(); + const filter = this.activeFilter(); + + if (filter) { + filter.selectedOrganizationNode = null; + } + } } diff --git a/apps/desktop/src/vault/app/vault-v3/vault-filter/filters/type-filter.component.html b/apps/desktop/src/vault/app/vault-v3/vault-filter/filters/type-filter.component.html index 309b953acb5..1c9e58e0656 100644 --- a/apps/desktop/src/vault/app/vault-v3/vault-filter/filters/type-filter.component.html +++ b/apps/desktop/src/vault/app/vault-v3/vault-filter/filters/type-filter.component.html @@ -1,18 +1,24 @@ - -@for (typeFilter of typeFilters$ | async; track typeFilter) { - -} + variant="tree" + [open]="true" +> + @for (typeFilter of typeFilters$ | async; track typeFilter) { + + } + diff --git a/apps/desktop/src/vault/app/vault-v3/vault-filter/filters/type-filter.component.ts b/apps/desktop/src/vault/app/vault-v3/vault-filter/filters/type-filter.component.ts index 9060d78bbba..40755b25253 100644 --- a/apps/desktop/src/vault/app/vault-v3/vault-filter/filters/type-filter.component.ts +++ b/apps/desktop/src/vault/app/vault-v3/vault-filter/filters/type-filter.component.ts @@ -23,7 +23,8 @@ export class TypeFilterComponent { protected readonly cipherTypes = input>(); protected readonly activeFilter = input(); - protected applyTypeFilter(cipherType: TreeNode) { + protected applyTypeFilter(event: Event, cipherType: TreeNode) { + event.stopPropagation(); const filter = this.activeFilter(); if (filter) { @@ -31,7 +32,7 @@ export class TypeFilterComponent { } } - protected applyAllItemsFilter() { + protected applyAllItemsFilter(event: Event) { const filter = this.activeFilter(); if (filter) { diff --git a/apps/desktop/src/vault/app/vault-v3/vault-filter/vault-filter.component.ts b/apps/desktop/src/vault/app/vault-v3/vault-filter/vault-filter.component.ts index 3cb75e26a98..3d6a481911d 100644 --- a/apps/desktop/src/vault/app/vault-v3/vault-filter/vault-filter.component.ts +++ b/apps/desktop/src/vault/app/vault-v3/vault-filter/vault-filter.component.ts @@ -111,7 +111,6 @@ export class VaultFilterComponent implements OnInit { this.cipherArchiveService.hasArchiveFlagEnabled$, ); - // Subscribe to the active filter from the bridge service this.routedVaultFilterBridgeService.activeFilter$ .pipe(takeUntil(this.componentIsDestroyed$)) .subscribe((filter) => { diff --git a/apps/desktop/src/vault/app/vault-v3/vault.component.ts b/apps/desktop/src/vault/app/vault-v3/vault.component.ts index 8eabb52aba1..81761a4a88c 100644 --- a/apps/desktop/src/vault/app/vault-v3/vault.component.ts +++ b/apps/desktop/src/vault/app/vault-v3/vault.component.ts @@ -273,8 +273,7 @@ export class VaultComponent implements OnInit, OnDestroy, CopyClickListener { break; case "syncCompleted": if (this.vaultItemsComponent) { - const filter = this.activeFilter.buildFilter(); - await this.vaultItemsComponent.reload(filter).catch(() => {}); + await this.vaultItemsComponent.refresh().catch(() => {}); } break; case "modalShown":