diff --git a/frontend/src/features/archived-items/item-metadata-editor.ts b/frontend/src/features/archived-items/item-metadata-editor.ts index d719dbee37..33f51e5c8a 100644 --- a/frontend/src/features/archived-items/item-metadata-editor.ts +++ b/frontend/src/features/archived-items/item-metadata-editor.ts @@ -1,8 +1,9 @@ import { localized, msg } from "@lit/localize"; +import type { SlTextarea } from "@shoelace-style/shoelace"; import { serialize } from "@shoelace-style/shoelace/dist/utilities/form.js"; import Fuse from "fuse.js"; import { html } from "lit"; -import { customElement, property, state } from "lit/decorators.js"; +import { customElement, property, query, state } from "lit/decorators.js"; import { BtrixElement } from "@/classes/BtrixElement"; import type { @@ -10,7 +11,10 @@ import type { Tags, TagsChangeEvent, } from "@/components/ui/tag-input"; -import { type CollectionsChangeEvent } from "@/features/collections/collections-add"; +import type { + CollectionsAdd, + CollectionsChangeEvent, +} from "@/features/collections/collections-add"; import type { ArchivedItem } from "@/types/crawler"; import { type WorkflowTag, type WorkflowTags } from "@/types/workflow"; import { maxLengthValidator } from "@/utils/form"; @@ -56,6 +60,12 @@ export class CrawlMetadataEditor extends BtrixElement { @state() private collectionsToSave: string[] = []; + @query("#description-input") + public readonly descriptionInput?: SlTextarea | null; + + @query("#collection-input") + public readonly collectionInput?: CollectionsAdd | null; + // For fuzzy search: private readonly fuse = new Fuse([], { keys: ["tag"], @@ -109,6 +119,7 @@ export class CrawlMetadataEditor extends BtrixElement { ` : ``}
[this.searchByValue, this.hasSearchStr] as const, }); + public focus() { + // Move focus to search input + this.input?.focus(); + } + connectedCallback() { if (this.initialCollections) { this.collectionIds = this.initialCollections; @@ -152,6 +157,7 @@ export class CollectionsAdd extends BtrixElement { }} > , "watch" | "exclusions" @@ -421,7 +425,7 @@ export class ArchivedItemDetail extends BtrixElement { this.openMetadataEditor("metadata")} label=${msg("Edit Archived Item")} > `, @@ -441,7 +445,7 @@ export class ArchivedItemDetail extends BtrixElement { this.openMetadataEditor("collections")} label=${msg("Edit Archived Item")} > `, @@ -669,11 +673,7 @@ export class ArchivedItemDetail extends BtrixElement { ${when( this.isCrawler, () => html` - { - this.openMetadataEditor(); - }} - > + ${msg("Edit Archived Item")} @@ -1319,7 +1319,26 @@ export class ArchivedItemDetail extends BtrixElement { } } - private openMetadataEditor() { + private openMetadataEditor(section?: "metadata" | "collections") { + if (section) { + this.editDialog?.addEventListener( + "sl-after-show", + () => { + switch (section) { + case "metadata": + this.editDialog?.descriptionInput?.focus(); + break; + case "collections": + this.editDialog?.collectionInput?.focus(); + break; + default: + break; + } + }, + { once: true }, + ); + } + this.openDialogName = "metadata"; }