Merge branch 'main' into feature/update-uui-1.6-rc2
This commit is contained in:
@@ -46,6 +46,7 @@ export class UmbTreePickerModalElement<TreeItemType extends UmbTreeItemModelBase
|
||||
@selection-change=${this.#onSelectionChange}
|
||||
.selection=${this._selection}
|
||||
selectable
|
||||
.filter=${this.data?.filter}
|
||||
.selectableFilter=${this.data?.pickableFilter}
|
||||
?multiple=${this._multiple}></umb-tree>
|
||||
</uui-box>
|
||||
|
||||
@@ -30,6 +30,8 @@ export class UmbTreeContextBase<TreeItemType extends UmbTreeItemModelBase>
|
||||
public repository?: UmbTreeRepository<TreeItemType>;
|
||||
public selectableFilter?: (item: TreeItemType) => boolean = () => true;
|
||||
|
||||
public filter?: (item: TreeItemType) => boolean = () => true;
|
||||
|
||||
public readonly selection = new UmbSelectionManager(this._host);
|
||||
|
||||
#treeAlias?: string;
|
||||
|
||||
@@ -66,6 +66,14 @@ export class UmbTreeElement extends UmbLitElement {
|
||||
this.#treeContext.selectableFilter = newVal;
|
||||
}
|
||||
|
||||
@property()
|
||||
get filter() {
|
||||
return this.#treeContext.filter;
|
||||
}
|
||||
set filter(newVal) {
|
||||
this.#treeContext.filter = newVal;
|
||||
}
|
||||
|
||||
@state()
|
||||
private _items: UmbTreeItemModelBase[] = [];
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { UmbDocumentTypePickerContext } from './document-type-input.context.js';
|
||||
import { css, html, customElement, property, state } from '@umbraco-cms/backoffice/external/lit';
|
||||
import { css, html, customElement, property, state, ifDefined } from '@umbraco-cms/backoffice/external/lit';
|
||||
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';
|
||||
@@ -7,6 +7,15 @@ import { splitStringToArray } from '@umbraco-cms/backoffice/utils';
|
||||
|
||||
@customElement('umb-document-type-input')
|
||||
export class UmbDocumentTypeInputElement extends FormControlMixin(UmbLitElement) {
|
||||
/**
|
||||
* Selects the element types only
|
||||
* @type {boolean}
|
||||
* @attr
|
||||
* @default false
|
||||
*/
|
||||
@property({ type: Boolean, attribute: 'element-types-only' })
|
||||
elementTypesOnly: boolean = false;
|
||||
|
||||
/**
|
||||
* This is a minimum amount of selected items in this input.
|
||||
* @type {number}
|
||||
@@ -102,19 +111,28 @@ export class UmbDocumentTypeInputElement extends FormControlMixin(UmbLitElement)
|
||||
return undefined;
|
||||
}
|
||||
|
||||
#openPicker() {
|
||||
if (this.elementTypesOnly) {
|
||||
this.#pickerContext.openPicker({
|
||||
hideTreeRoot: true,
|
||||
pickableFilter: (x) => x.isElement!,
|
||||
});
|
||||
} else {
|
||||
this.#pickerContext.openPicker({ hideTreeRoot: true });
|
||||
}
|
||||
}
|
||||
|
||||
render() {
|
||||
return html`
|
||||
<uui-ref-list>${this._items?.map((item) => this._renderItem(item))}</uui-ref-list>
|
||||
<uui-button id="add-button" look="placeholder" @click=${() => this.#pickerContext.openPicker()} label="open"
|
||||
>Add</uui-button
|
||||
>
|
||||
<uui-button id="add-button" look="placeholder" @click=${this.#openPicker} label="open">Add</uui-button>
|
||||
`;
|
||||
}
|
||||
|
||||
private _renderItem(item: DocumentTypeItemResponseModel) {
|
||||
if (!item.id) return;
|
||||
return html`
|
||||
<uui-ref-node-document-type name=${item.name}>
|
||||
<uui-ref-node-document-type name=${ifDefined(item.name)}>
|
||||
<uui-action-bar slot="actions">
|
||||
<uui-button
|
||||
@click=${() => this.#pickerContext.requestRemoveItem(item.id!)}
|
||||
|
||||
@@ -60,6 +60,7 @@ export class UmbDocumentTypeWorkspaceViewStructureElement extends UmbLitElement
|
||||
<div slot="editor">
|
||||
<!-- TODO: maybe we want to somehow display the hierarchy, but not necessary in the same way as old backoffice? -->
|
||||
<umb-document-type-input
|
||||
element-types-only
|
||||
.selectedIds=${this._allowedContentTypeIDs ?? []}
|
||||
@change="${(e: CustomEvent) => {
|
||||
const sortedContentTypesList = (e.target as UmbDocumentTypeInputElement).selectedIds.map(
|
||||
|
||||
Reference in New Issue
Block a user