Merge remote-tracking branch 'origin/main' into feature/block-editor-type-workspace

# Conflicts:
#	src/packages/documents/document-types/components/index.ts
#	src/packages/documents/document-types/components/input-document-type/input-document-type.element.ts
This commit is contained in:
Niels Lyngsø
2024-01-11 14:18:24 +01:00
2 changed files with 24 additions and 3 deletions

View File

@@ -1,2 +1,3 @@
import './input-document-type/input-document-type.element.js';
export * from './input-document-type/input-document-type.element.js';

View File

@@ -4,6 +4,7 @@ import { FormControlMixin } from '@umbraco-cms/backoffice/external/uui';
import { UmbLitElement } from '@umbraco-cms/internal/lit-element';
import type { DocumentTypeItemResponseModel } from '@umbraco-cms/backoffice/backend-api';
import { splitStringToArray } from '@umbraco-cms/backoffice/utils';
import { UMB_WORKSPACE_MODAL, UmbModalRouteRegistrationController } from '@umbraco-cms/backoffice/modal';
@customElement('umb-input-document-type')
export class UmbInputDocumentTypeElement extends FormControlMixin(UmbLitElement) {
@@ -78,11 +79,23 @@ export class UmbInputDocumentTypeElement extends FormControlMixin(UmbLitElement)
@state()
private _items?: Array<DocumentTypeItemResponseModel>;
@state()
private _editDocumentTypePath = '';
#pickerContext = new UmbDocumentTypePickerContext(this);
constructor() {
super();
new UmbModalRouteRegistrationController(this, UMB_WORKSPACE_MODAL)
.addAdditionalPath('document-type')
.onSetup(() => {
return { data: { entityType: 'document-type', preset: {} } };
})
.observeRouteBuilder((routeBuilder) => {
this._editDocumentTypePath = routeBuilder({});
});
this.addValidator(
'rangeUnderflow',
() => this.minMessage,
@@ -132,10 +145,17 @@ export class UmbInputDocumentTypeElement extends FormControlMixin(UmbLitElement)
<uui-ref-node-document-type name=${ifDefined(item.name)}>
<uui-action-bar slot="actions">
<uui-button
compact
href=${this._editDocumentTypePath + 'edit/' + item.id}
label=${this.localize.term('general_edit') + ` ${item.name}`}>
<uui-icon name="icon-edit"></uui-icon>
</uui-button>
<uui-button
compact
@click=${() => this.#pickerContext.requestRemoveItem(item.id!)}
label="Remove Document Type ${item.name}"
>Remove</uui-button
>
label="Edit Document Type ${item.name}">
<uui-icon name="icon-trash"></uui-icon>
</uui-button>
</uui-action-bar>
</uui-ref-node-document-type>
`;