Skip to content
This repository was archived by the owner on Nov 6, 2025. It is now read-only.

Commit 9873bed

Browse files
authored
Merge pull request #2446 from umbraco/v15/feature/folder-children-collection-workspace-view
Feature: Folder Children Collection Workspace View
2 parents 554ce0e + 929bec8 commit 9873bed

File tree

49 files changed

+445
-171
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

49 files changed

+445
-171
lines changed

src/packages/core/collection/components/boolean-table-column-view/boolean-table-column-view.element.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
import { html, nothing, customElement, property } from '@umbraco-cms/backoffice/external/lit';
22
import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element';
33

4-
const elementName = 'umb-boolean-table-column-view';
5-
@customElement(elementName)
4+
@customElement('umb-boolean-table-column-view')
65
export class UmbBooleanTableColumnViewElement extends UmbLitElement {
76
@property({ attribute: false })
87
value = false;
@@ -14,6 +13,6 @@ export class UmbBooleanTableColumnViewElement extends UmbLitElement {
1413

1514
declare global {
1615
interface HTMLElementTagNameMap {
17-
[elementName]: UmbBooleanTableColumnViewElement;
16+
'umb-boolean-table-column-view': UmbBooleanTableColumnViewElement;
1817
}
1918
}

src/packages/core/collection/components/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1+
import './boolean-table-column-view/boolean-table-column-view.element.js';
12
import './collection-action-bundle.element.js';
23
import './collection-filter-field.element.js';
34
import './collection-selection-actions.element.js';
45
import './collection-toolbar.element.js';
56
import './collection-view-bundle.element.js';
6-
import './boolean-table-column-view/boolean-table-column-view.element.js';
77
import './pagination/collection-pagination.element.js';
88

99
export * from './collection-action-bundle.element.js';

src/packages/core/collection/components/pagination/collection-pagination.element.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,10 @@ export class UmbCollectionPaginationElement extends UmbLitElement {
6363
UmbTextStyles,
6464
css`
6565
:host {
66+
display: contents;
67+
}
68+
69+
uui-pagination {
6670
display: block;
6771
margin-top: var(--uui-size-layout-1);
6872
}

src/packages/core/collection/default/collection-default.element.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -113,11 +113,11 @@ export class UmbCollectionDefaultElement extends UmbLitElement {
113113
}
114114
115115
#router {
116-
display: none;
116+
visibility: hidden;
117117
}
118118
119119
.has-items #router {
120-
display: block;
120+
visibility: visible;
121121
}
122122
123123
#empty-state {

src/packages/core/workspace/entity-detail/entity-detail-workspace-base.ts

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import {
1111
} from '@umbraco-cms/backoffice/entity-action';
1212
import { UmbExtensionApiInitializer } from '@umbraco-cms/backoffice/extension-api';
1313
import { umbExtensionsRegistry, type ManifestRepository } from '@umbraco-cms/backoffice/extension-registry';
14-
import type { UmbDetailRepository, UmbRepositoryResponseWithAsObservable } from '@umbraco-cms/backoffice/repository';
14+
import type { UmbDetailRepository } from '@umbraco-cms/backoffice/repository';
1515

1616
export interface UmbEntityDetailWorkspaceContextArgs {
1717
entityType: string;
@@ -47,7 +47,6 @@ export abstract class UmbEntityDetailWorkspaceContextBase<
4747
public readonly unique = this._data.createObservablePartOfCurrent((data) => data?.unique);
4848

4949
protected _getDataPromise?: Promise<any>;
50-
5150
protected _detailRepository?: DetailRepositoryType;
5251

5352
#entityContext = new UmbEntityContext(this);
@@ -71,6 +70,7 @@ export abstract class UmbEntityDetailWorkspaceContextBase<
7170
constructor(host: UmbControllerHost, args: UmbEntityWorkspaceContextArgs) {
7271
super(host, args.workspaceAlias);
7372
this.#entityType = args.entityType;
73+
this.#entityContext.setEntityType(this.#entityType);
7474
window.addEventListener('willchangestate', this.#onWillNavigate);
7575
this.#observeRepository(args.detailRepositoryAlias);
7676
}
@@ -119,12 +119,9 @@ export abstract class UmbEntityDetailWorkspaceContextBase<
119119
return this.#parent.getValue()?.entityType;
120120
}
121121

122-
/**
123-
* Load the workspace data
124-
* @param {string} unique The unique identifier of the entity to load.
125-
* @returns { Promise<UmbRepositoryResponseWithAsObservable<DetailModelType>> } The data of the entity.
126-
*/
127-
async load(unique: string): Promise<UmbRepositoryResponseWithAsObservable<DetailModelType>> {
122+
async load(unique: string) {
123+
this.#entityContext.setEntityType(this.#entityType);
124+
this.#entityContext.setUnique(unique);
128125
await this.#init;
129126
this.resetState();
130127
this._getDataPromise = this._detailRepository!.requestByUnique(unique);
@@ -133,8 +130,6 @@ export abstract class UmbEntityDetailWorkspaceContextBase<
133130
const data = response.data;
134131

135132
if (data) {
136-
this.#entityContext.setEntityType(this.#entityType);
137-
this.#entityContext.setUnique(unique);
138133
this._data.setPersisted(data);
139134
this._data.setCurrent(data);
140135
this.setIsNew(false);

src/packages/documents/document-types/components/input-document-type/input-document-type.element.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import type { UmbDocumentTypeItemModel } from '../../repository/index.js';
2-
import { UMB_DOCUMENT_TYPE_WORKSPACE_MODAL } from '../../workspace/document-type-workspace.modal-token.js';
2+
import { UMB_DOCUMENT_TYPE_WORKSPACE_MODAL } from '../../workspace/document-type/document-type-workspace.modal-token.js';
33
import type { UmbDocumentTypeTreeItemModel } from '../../tree/types.js';
44
import { UMB_EDIT_DOCUMENT_TYPE_WORKSPACE_PATH_PATTERN } from '../../paths.js';
55
import { UmbDocumentTypePickerInputContext } from './input-document-type.context.js';

src/packages/documents/document-types/entity-actions/create/manifests.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
import { UMB_DOCUMENT_TYPE_FOLDER_ENTITY_TYPE, UMB_DOCUMENT_TYPE_ROOT_ENTITY_TYPE } from '../../entity.js';
1+
import { UMB_DOCUMENT_TYPE_ROOT_ENTITY_TYPE } from '../../entity.js';
2+
import { UMB_DOCUMENT_TYPE_FOLDER_ENTITY_TYPE } from '../../tree/index.js';
23

34
export const manifests: Array<UmbExtensionManifest> = [
45
{

src/packages/documents/document-types/entity.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1+
import type { UmbDocumentTypeFolderEntityType } from './tree/index.js';
2+
13
export const UMB_DOCUMENT_TYPE_ENTITY_TYPE = 'document-type';
24
export const UMB_DOCUMENT_TYPE_ROOT_ENTITY_TYPE = 'document-type-root';
3-
export const UMB_DOCUMENT_TYPE_FOLDER_ENTITY_TYPE = 'document-type-folder';
45

56
export type UmbDocumentTypeEntityType = typeof UMB_DOCUMENT_TYPE_ENTITY_TYPE;
67
export type UmbDocumentTypeRootEntityType = typeof UMB_DOCUMENT_TYPE_ROOT_ENTITY_TYPE;
7-
export type UmbDocumentTypeFolderEntityType = typeof UMB_DOCUMENT_TYPE_FOLDER_ENTITY_TYPE;
88

99
export type UmbDocumentTypeEntityTypeUnion =
1010
| UmbDocumentTypeEntityType

src/packages/documents/document-types/tree/document-type.tree.server.data-source.ts

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,6 @@
1-
import {
2-
UMB_DOCUMENT_TYPE_ENTITY_TYPE,
3-
UMB_DOCUMENT_TYPE_FOLDER_ENTITY_TYPE,
4-
UMB_DOCUMENT_TYPE_ROOT_ENTITY_TYPE,
5-
} from '../entity.js';
1+
import { UMB_DOCUMENT_TYPE_ENTITY_TYPE, UMB_DOCUMENT_TYPE_ROOT_ENTITY_TYPE } from '../entity.js';
62
import type { UmbDocumentTypeTreeItemModel } from './types.js';
3+
import { UMB_DOCUMENT_TYPE_FOLDER_ENTITY_TYPE } from './folder/index.js';
74
import type {
85
UmbTreeAncestorsOfRequestArgs,
96
UmbTreeChildrenOfRequestArgs,
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
export const UMB_DOCUMENT_TYPE_FOLDER_ENTITY_TYPE = 'document-type-folder';
2+
export type UmbDocumentTypeFolderEntityType = typeof UMB_DOCUMENT_TYPE_FOLDER_ENTITY_TYPE;

0 commit comments

Comments
 (0)