Document input: Find variant name (#20853)

* ability to override get name

* implement document name method
This commit is contained in:
Niels Lyngsø
2025-11-17 15:41:47 +01:00
committed by GitHub
parent 23fc355e61
commit 08990b9147
4 changed files with 26 additions and 8 deletions

View File

@@ -82,6 +82,12 @@ export class UmbPickerInputContext<
getSelection() {
return this.#itemManager.getUniques();
}
getSelectedItems() {
return this.#itemManager.getItems();
}
getSelectedItemByUnique(unique: string) {
return this.#itemManager.getItems().find((item) => item.unique === unique);
}
setSelection(selection: Array<string | null>) {
// Note: Currently we do not support picking root item. So we filter out null values:
@@ -111,10 +117,12 @@ export class UmbPickerInputContext<
this.getHostElement().dispatchEvent(new UmbChangeEvent());
}
async requestRemoveItem(unique: string) {
const item = this.#itemManager.getItems().find((item) => item.unique === unique);
protected async _requestItemName(unique: string) {
return this.getSelectedItemByUnique(unique)?.name ?? '#general_notFound';
}
const name = item?.name ?? '#general_notFound';
async requestRemoveItem(unique: string) {
const name = await this._requestItemName(unique);
await umbConfirmModal(this, {
color: 'danger',
headline: `#actions_remove ${name}?`,

View File

@@ -7,6 +7,7 @@ import { UmbPickerInputContext } from '@umbraco-cms/backoffice/picker-input';
import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api';
import type { UmbDocumentTypeEntityType } from '@umbraco-cms/backoffice/document-type';
import { UMB_VARIANT_CONTEXT } from '@umbraco-cms/backoffice/variant';
import { UmbDocumentItemDataResolver } from '../../item/index.js';
interface UmbDocumentPickerInputContextOpenArgs {
allowedContentTypes?: Array<{ unique: string; entityType: UmbDocumentTypeEntityType }>;
@@ -56,6 +57,15 @@ export class UmbDocumentPickerInputContext extends UmbPickerInputContext<
await super.openPicker(combinedPickerData);
}
protected override async _requestItemName(unique: string): Promise<string> {
const item = this.getSelectedItemByUnique(unique);
const resolver = new UmbDocumentItemDataResolver(this);
resolver.setData(item);
const name = await resolver.getName();
this.removeUmbController(resolver);
return name ?? '#general_notFound';
}
#pickableFilter = (
item: UmbDocumentItemModel,
allowedContentTypes?: Array<{ unique: string; entityType: UmbDocumentTypeEntityType }>,

View File

@@ -8,7 +8,7 @@
"hasInstallScript": true,
"dependencies": {
"@umbraco/json-models-builders": "^2.0.41",
"@umbraco/playwright-testhelpers": "^17.0.0-beta.11",
"@umbraco/playwright-testhelpers": "^17.0.0-beta.13",
"camelize": "^1.0.0",
"dotenv": "^16.3.1",
"node-fetch": "^2.6.7"
@@ -67,9 +67,9 @@
}
},
"node_modules/@umbraco/playwright-testhelpers": {
"version": "17.0.0-beta.11",
"resolved": "https://registry.npmjs.org/@umbraco/playwright-testhelpers/-/playwright-testhelpers-17.0.0-beta.11.tgz",
"integrity": "sha512-HZMdtees5o5FLFsSRQ02BzO+Kxhm1iZop/2Sys/5MzIZkz1pbJIPUvudeK7LbbpJON5piJzI9yCyrZYaF5usiw==",
"version": "17.0.0-beta.13",
"resolved": "https://registry.npmjs.org/@umbraco/playwright-testhelpers/-/playwright-testhelpers-17.0.0-beta.13.tgz",
"integrity": "sha512-a4E/uGko0TiGMvuPthfa3KMDz+UYoFzj6zqVFl2g+mKdXqRJLHh++6/YQuXlHdxdN/KSAlvF8yCYZ6+2F5HDWw==",
"license": "MIT",
"dependencies": {
"@umbraco/json-models-builders": "2.0.41",

View File

@@ -22,7 +22,7 @@
},
"dependencies": {
"@umbraco/json-models-builders": "^2.0.41",
"@umbraco/playwright-testhelpers": "^17.0.0-beta.11",
"@umbraco/playwright-testhelpers": "^17.0.0-beta.13",
"camelize": "^1.0.0",
"dotenv": "^16.3.1",
"node-fetch": "^2.6.7"