From 8c9f139377778a6fabf695992be417d74581895a Mon Sep 17 00:00:00 2001 From: leekelleher Date: Tue, 30 Jan 2024 15:52:35 +0000 Subject: [PATCH] Document Picker fixes, after remapping - Adds `.unique` to `getUnique` method - Adds `getUniqueMethod` to `UmbDocumentPickerContext` - Fixes Document Picker sorting --- .../core/picker-input/picker-input.context.ts | 2 +- .../input-document/input-document.context.ts | 2 +- .../input-document/input-document.element.ts | 22 ++++++++----------- 3 files changed, 11 insertions(+), 15 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/picker-input/picker-input.context.ts b/src/Umbraco.Web.UI.Client/src/packages/core/picker-input/picker-input.context.ts index 3203cdc567..3498ee3018 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/picker-input/picker-input.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/picker-input/picker-input.context.ts @@ -61,7 +61,7 @@ export class UmbPickerInputContext extends Um this.modalAlias = modalAlias; // eslint-disable-next-line @typescript-eslint/ban-ts-comment //@ts-ignore - this.#getUnique = getUniqueMethod || ((entry) => entry.id || ''); + this.#getUnique = getUniqueMethod || ((entry) => entry.unique || entry.id || ''); this.#itemManager = new UmbRepositoryItemsManager(this, repositoryAlias, this.#getUnique); diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/input-document/input-document.context.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/input-document/input-document.context.ts index 39934e8958..1ac6831e0d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/input-document/input-document.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/input-document/input-document.context.ts @@ -6,6 +6,6 @@ import { UMB_DOCUMENT_PICKER_MODAL } from '@umbraco-cms/backoffice/modal'; export class UmbDocumentPickerContext extends UmbPickerInputContext { constructor(host: UmbControllerHostElement) { - super(host, UMB_DOCUMENT_ITEM_REPOSITORY_ALIAS, UMB_DOCUMENT_PICKER_MODAL); + super(host, UMB_DOCUMENT_ITEM_REPOSITORY_ALIAS, UMB_DOCUMENT_PICKER_MODAL, (entry) => entry.unique); } } diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/input-document/input-document.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/input-document/input-document.element.ts index 922b76e266..fa99be0cb6 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/input-document/input-document.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/input-document/input-document.element.ts @@ -5,23 +5,19 @@ import { FormControlMixin } from '@umbraco-cms/backoffice/external/uui'; import { UmbLitElement } from '@umbraco-cms/internal/lit-element'; import { splitStringToArray } from '@umbraco-cms/backoffice/utils'; import { UMB_WORKSPACE_MODAL, UmbModalRouteRegistrationController } from '@umbraco-cms/backoffice/modal'; -import { type UmbSorterConfig, UmbSorterController } from '@umbraco-cms/backoffice/sorter'; +import { UmbSorterController } from '@umbraco-cms/backoffice/sorter'; import type { UmbDocumentItemModel } from '@umbraco-cms/backoffice/document'; -const SORTER_CONFIG: UmbSorterConfig = { - compareElementToModel: (element, model) => { - return element.getAttribute('detail') === model; - }, - querySelectModelToElement: () => null, - identifier: 'Umb.SorterIdentifier.InputDocument', - itemSelector: 'uui-ref-node', - containerSelector: 'uui-ref-list', -}; - @customElement('umb-input-document') export class UmbInputDocumentElement extends FormControlMixin(UmbLitElement) { #sorter = new UmbSorterController(this, { - ...SORTER_CONFIG, + compareElementToModel: (element, model: string) => { + return element.getAttribute('detail') === model; + }, + querySelectModelToElement: () => null, + identifier: 'Umb.SorterIdentifier.InputDocument', + itemSelector: 'uui-ref-node', + containerSelector: 'uui-ref-list', onChange: ({ model }) => { this.selectedIds = model; }, @@ -158,7 +154,7 @@ export class UmbInputDocumentElement extends FormControlMixin(UmbLitElement) { } render() { - return html` ${this.#renderItems()} ${this.#renderAddButton()} `; + return html`${this.#renderItems()} ${this.#renderAddButton()}`; } #renderItems() {