diff --git a/libs/angular/src/vault/components/filter-builder.component.ts b/libs/angular/src/vault/components/filter-builder.component.ts index d4c3486b654..5b881bdea64 100644 --- a/libs/angular/src/vault/components/filter-builder.component.ts +++ b/libs/angular/src/vault/components/filter-builder.component.ts @@ -370,8 +370,8 @@ export class FilterBuilderComponent implements OnInit { } }), fields: customMap( - metadata.fieldNames, - (f, i) => ({ value: f, label: f }) satisfies ChipSelectOption, + metadata.customFields, + (f, i) => ({ value: f.name, label: f.name }) satisfies ChipSelectOption, ), anyHaveAttachment: metadata.attachmentCount !== 0, } satisfies FilterData; @@ -442,7 +442,6 @@ export class FilterBuilderComponent implements OnInit { } protected saveFilter() { - // TODO: Handle advanced mode and just emit the raw text const currentFilter = this.convertFilter(this.form.value); this.saveFilterEvent.emit(currentFilter.raw); } @@ -457,6 +456,7 @@ export class FilterBuilderComponent implements OnInit { } else { if (!this.trySetBasicFilterElements(this.form.controls.text.value)) { console.log("Could not set filter back to basic, button should have been disabled."); + this.mode = "advanced"; return; } } diff --git a/libs/angular/src/vault/components/filter-builder.stories.ts b/libs/angular/src/vault/components/filter-builder.stories.ts index 23e97638dba..df82939cadd 100644 --- a/libs/angular/src/vault/components/filter-builder.stories.ts +++ b/libs/angular/src/vault/components/filter-builder.stories.ts @@ -2,8 +2,9 @@ import { Meta, moduleMetadata, StoryObj } from "@storybook/angular"; import { map, of } from "rxjs"; import { I18nService } from "@bitwarden/common/platform/abstractions/i18n.service"; -import { CipherType } from "@bitwarden/common/vault/enums"; +import { CipherType, FieldType } from "@bitwarden/common/vault/enums"; import { + CustomFieldMetadata, VaultFilterMetadata, VaultFilterMetadataService, } from "@bitwarden/common/vault/filtering/vault-filter-metadata.service"; @@ -58,10 +59,10 @@ export default { [CipherType.SecureNote, 1], [CipherType.SshKey, 1], ]), - fieldNames: new Map([ - ["one", 1], - ["two", 1], - ["three", 1], + customFields: new Map([ + [{ name: "one", type: FieldType.Boolean, linkedType: null }, 1], + [{ name: "one", type: FieldType.Boolean, linkedType: null }, 1], + [{ name: "one", type: FieldType.Boolean, linkedType: null }, 1], ]), attachmentCount: 1, } satisfies VaultFilterMetadata; @@ -90,7 +91,6 @@ export const Default: Story = { props: args, template: /*html*/ ` - `, }), args: { diff --git a/libs/angular/src/vault/components/search-filter-builder.stories.ts b/libs/angular/src/vault/components/search-filter-builder.stories.ts index 16f97e92331..4fe9bec8d54 100644 --- a/libs/angular/src/vault/components/search-filter-builder.stories.ts +++ b/libs/angular/src/vault/components/search-filter-builder.stories.ts @@ -2,8 +2,9 @@ import { Meta, moduleMetadata, StoryObj } from "@storybook/angular"; import { map, of } from "rxjs"; import { I18nService } from "@bitwarden/common/platform/abstractions/i18n.service"; -import { CipherType } from "@bitwarden/common/vault/enums"; +import { CipherType, FieldType } from "@bitwarden/common/vault/enums"; import { + CustomFieldMetadata, VaultFilterMetadata, VaultFilterMetadataService, } from "@bitwarden/common/vault/filtering/vault-filter-metadata.service"; @@ -56,10 +57,10 @@ export default { [CipherType.SecureNote, 1], [CipherType.SshKey, 1], ]), - fieldNames: new Map([ - ["one", 1], - ["two", 1], - ["three", 1], + customFields: new Map([ + [{ name: "one", type: FieldType.Boolean, linkedType: null }, 1], + [{ name: "one", type: FieldType.Boolean, linkedType: null }, 1], + [{ name: "one", type: FieldType.Boolean, linkedType: null }, 1], ]), attachmentCount: 1, } satisfies VaultFilterMetadata; diff --git a/libs/common/src/vault/filtering/vault-filter-metadata.service.ts b/libs/common/src/vault/filtering/vault-filter-metadata.service.ts index 59c54c36451..c8eb723e7b6 100644 --- a/libs/common/src/vault/filtering/vault-filter-metadata.service.ts +++ b/libs/common/src/vault/filtering/vault-filter-metadata.service.ts @@ -12,7 +12,7 @@ export type VaultFilterMetadata = { attachmentCount: number; }; -type CustomFieldMetadata = { +export type CustomFieldMetadata = { name: string; type: FieldType; linkedType: LinkedIdType | null;