From 9ec20e96eb8da4bd474e97118188bb746d82d771 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Mon, 7 Oct 2024 09:50:00 +0200 Subject: [PATCH 01/34] wip --- .../entity-detail-workspace-base.ts | 6 ++- .../tree/folder/collection/constants.ts | 2 + .../folder-collection.repository.ts | 43 +++++++++++++++++++ .../tree/folder/collection/manifests.ts | 22 ++++++++++ .../tree/folder/collection/types.ts | 6 +++ .../tree/folder/collection/views/manifests.ts | 25 +++++++++++ .../document-types/tree/folder/manifests.ts | 6 ++- .../tree/folder/workspace/manifests.ts | 19 ++++++++ 8 files changed, 126 insertions(+), 3 deletions(-) create mode 100644 src/packages/documents/document-types/tree/folder/collection/constants.ts create mode 100644 src/packages/documents/document-types/tree/folder/collection/folder-collection.repository.ts create mode 100644 src/packages/documents/document-types/tree/folder/collection/manifests.ts create mode 100644 src/packages/documents/document-types/tree/folder/collection/types.ts create mode 100644 src/packages/documents/document-types/tree/folder/collection/views/manifests.ts diff --git a/src/packages/core/workspace/entity-detail/entity-detail-workspace-base.ts b/src/packages/core/workspace/entity-detail/entity-detail-workspace-base.ts index 4a85b64773..bf32dcf75c 100644 --- a/src/packages/core/workspace/entity-detail/entity-detail-workspace-base.ts +++ b/src/packages/core/workspace/entity-detail/entity-detail-workspace-base.ts @@ -2,7 +2,7 @@ import { UmbSubmittableWorkspaceContextBase } from '../submittable/index.js'; import { UmbEntityWorkspaceDataManager } from '../entity/entity-workspace-data-manager.js'; import { UMB_ACTION_EVENT_CONTEXT } from '@umbraco-cms/backoffice/action'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; -import type { UmbEntityModel, UmbEntityUnique } from '@umbraco-cms/backoffice/entity'; +import { UmbEntityContext, type UmbEntityModel, type UmbEntityUnique } from '@umbraco-cms/backoffice/entity'; import { UMB_DISCARD_CHANGES_MODAL, UMB_MODAL_MANAGER_CONTEXT } from '@umbraco-cms/backoffice/modal'; import { UmbObjectState } from '@umbraco-cms/backoffice/observable-api'; import { @@ -41,6 +41,8 @@ export abstract class UmbEntityDetailWorkspaceContextBase< public readonly entityType = this._data.createObservablePartOfCurrent((data) => data?.entityType); public readonly unique = this._data.createObservablePartOfCurrent((data) => data?.unique); + #entityContext = new UmbEntityContext(this); + protected _getDataPromise?: Promise; protected _detailRepository?: DetailRepositoryType; @@ -65,6 +67,7 @@ export abstract class UmbEntityDetailWorkspaceContextBase< constructor(host: UmbControllerHost, args: UmbEntityWorkspaceContextArgs) { super(host, args.workspaceAlias); this.#entityType = args.entityType; + this.#entityContext.setEntityType(this.#entityType); window.addEventListener('willchangestate', this.#onWillNavigate); this.#observeRepository(args.detailRepositoryAlias); } @@ -82,6 +85,7 @@ export abstract class UmbEntityDetailWorkspaceContextBase< } async load(unique: string) { + this.#entityContext.setUnique(unique); await this.#init; this.resetState(); this._getDataPromise = this._detailRepository!.requestByUnique(unique); diff --git a/src/packages/documents/document-types/tree/folder/collection/constants.ts b/src/packages/documents/document-types/tree/folder/collection/constants.ts new file mode 100644 index 0000000000..2acb88dc1e --- /dev/null +++ b/src/packages/documents/document-types/tree/folder/collection/constants.ts @@ -0,0 +1,2 @@ +export const UMB_DOCUMENT_TYPE_FOLDER_COLLECTION_REPOSITORY_ALIAS = 'Umb.Repository.DocumentType.Folder.Collection'; +export const UMB_DOCUMENT_TYPE_FOLDER_COLLECTION_ALIAS = 'Umb.Collection.DocumentType.Folder.'; diff --git a/src/packages/documents/document-types/tree/folder/collection/folder-collection.repository.ts b/src/packages/documents/document-types/tree/folder/collection/folder-collection.repository.ts new file mode 100644 index 0000000000..38dd65b799 --- /dev/null +++ b/src/packages/documents/document-types/tree/folder/collection/folder-collection.repository.ts @@ -0,0 +1,43 @@ +import { UmbDocumentTypeTreeRepository } from '../../document-type-tree.repository.js'; +import type { UmbCollectionFilterModel, UmbCollectionRepository } from '@umbraco-cms/backoffice/collection'; +import { UmbRepositoryBase } from '@umbraco-cms/backoffice/repository'; +import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; +import { UMB_ENTITY_CONTEXT, type UmbEntityModel } from '@umbraco-cms/backoffice/entity'; + +export class UmbDocumentTypeFolderCollectionRepository extends UmbRepositoryBase implements UmbCollectionRepository { + #treeRepository = new UmbDocumentTypeTreeRepository(this); + + constructor(host: UmbControllerHost) { + super(host); + + this.consumeContext(UMB_ENTITY_CONTEXT, (entityContext) => { + console.log(entityContext); + }); + } + + async requestCollection(filter: UmbCollectionFilterModel) { + const entityContext = await this.getContext(UMB_ENTITY_CONTEXT); + if (!entityContext) throw new Error('Entity context not found'); + + const entityType = entityContext.getEntityType(); + const unique = entityContext.getUnique(); + + if (!entityType) throw new Error('Entity type not found'); + if (unique === undefined) throw new Error('Unique not found'); + + const parent: UmbEntityModel = { entityType, unique }; + + if (parent.unique === null) { + return this.#treeRepository.requestTreeRootItems({ skip: filter.skip, take: filter.take }); + } else { + return this.#treeRepository.requestTreeItemsOf({ parent, skip: filter.skip, take: filter.take }); + } + } + + override destroy(): void { + this.#treeRepository.destroy(); + super.destroy(); + } +} + +export { UmbDocumentTypeFolderCollectionRepository as api }; diff --git a/src/packages/documents/document-types/tree/folder/collection/manifests.ts b/src/packages/documents/document-types/tree/folder/collection/manifests.ts new file mode 100644 index 0000000000..c80dc7f968 --- /dev/null +++ b/src/packages/documents/document-types/tree/folder/collection/manifests.ts @@ -0,0 +1,22 @@ +import { + UMB_DOCUMENT_TYPE_FOLDER_COLLECTION_ALIAS, + UMB_DOCUMENT_TYPE_FOLDER_COLLECTION_REPOSITORY_ALIAS, +} from './constants.js'; + +export const manifests: Array = [ + { + type: 'collection', + kind: 'default', + alias: UMB_DOCUMENT_TYPE_FOLDER_COLLECTION_ALIAS, + name: 'Document Type Folder Collection', + meta: { + repositoryAlias: UMB_DOCUMENT_TYPE_FOLDER_COLLECTION_REPOSITORY_ALIAS, + }, + }, + { + type: 'repository', + alias: UMB_DOCUMENT_TYPE_FOLDER_COLLECTION_REPOSITORY_ALIAS, + name: 'Document Type Folder Collection Repository', + api: () => import('./folder-collection.repository.js'), + }, +]; diff --git a/src/packages/documents/document-types/tree/folder/collection/types.ts b/src/packages/documents/document-types/tree/folder/collection/types.ts new file mode 100644 index 0000000000..1409f4767a --- /dev/null +++ b/src/packages/documents/document-types/tree/folder/collection/types.ts @@ -0,0 +1,6 @@ +import type { UmbCollectionFilterModel } from '@umbraco-cms/backoffice/collection'; +import type { UmbEntityModel } from '@umbraco-cms/backoffice/entity'; + +export interface UmbFolderCollectionFilterModel extends UmbCollectionFilterModel { + parent: UmbEntityModel; +} diff --git a/src/packages/documents/document-types/tree/folder/collection/views/manifests.ts b/src/packages/documents/document-types/tree/folder/collection/views/manifests.ts new file mode 100644 index 0000000000..7c63b8a72b --- /dev/null +++ b/src/packages/documents/document-types/tree/folder/collection/views/manifests.ts @@ -0,0 +1,25 @@ +import { UMB_COLLECTION_ALIAS_CONDITION } from '@umbraco-cms/backoffice/collection'; + +export const UMB_DOCUMENT_GRID_COLLECTION_VIEW_ALIAS = 'Umb.CollectionView.Document.Grid'; +export const UMB_DOCUMENT_TABLE_COLLECTION_VIEW_ALIAS = 'Umb.CollectionView.Document.Table'; + +export const manifests: Array = [ + { + type: 'collectionView', + alias: UMB_DOCUMENT_TABLE_COLLECTION_VIEW_ALIAS, + name: 'Document Table Collection View', + element: () => import('./table/document-table-collection-view.element.js'), + weight: 300, + meta: { + label: 'Table', + icon: 'icon-list', + pathName: 'table', + }, + conditions: [ + { + alias: UMB_COLLECTION_ALIAS_CONDITION, + match: 'Umb.Collection.Document', + }, + ], + }, +]; diff --git a/src/packages/documents/document-types/tree/folder/manifests.ts b/src/packages/documents/document-types/tree/folder/manifests.ts index 9715c8438e..2cd9539fa0 100644 --- a/src/packages/documents/document-types/tree/folder/manifests.ts +++ b/src/packages/documents/document-types/tree/folder/manifests.ts @@ -1,7 +1,8 @@ import { UMB_DOCUMENT_TYPE_FOLDER_ENTITY_TYPE } from '../../entity.js'; -import { UMB_DOCUMENT_TYPE_FOLDER_REPOSITORY_ALIAS } from './repository/constants.js'; -import { manifests as workspaceManifests } from './workspace/manifests.js'; +import { manifests as collectionManifests } from './collection/manifests.js'; import { manifests as repositoryManifests } from './repository/manifests.js'; +import { manifests as workspaceManifests } from './workspace/manifests.js'; +import { UMB_DOCUMENT_TYPE_FOLDER_REPOSITORY_ALIAS } from './repository/constants.js'; export const manifests: Array = [ { @@ -24,6 +25,7 @@ export const manifests: Array = [ folderRepositoryAlias: UMB_DOCUMENT_TYPE_FOLDER_REPOSITORY_ALIAS, }, }, + ...collectionManifests, ...repositoryManifests, ...workspaceManifests, ]; diff --git a/src/packages/documents/document-types/tree/folder/workspace/manifests.ts b/src/packages/documents/document-types/tree/folder/workspace/manifests.ts index 52c211ec2f..9ec081e186 100644 --- a/src/packages/documents/document-types/tree/folder/workspace/manifests.ts +++ b/src/packages/documents/document-types/tree/folder/workspace/manifests.ts @@ -1,4 +1,5 @@ import { UMB_DOCUMENT_TYPE_FOLDER_ENTITY_TYPE } from '../../../entity.js'; +import { UMB_DOCUMENT_TYPE_FOLDER_COLLECTION_ALIAS } from '../collection/constants.js'; import { UMB_DOCUMENT_TYPE_FOLDER_WORKSPACE_ALIAS } from './constants.js'; import { UmbSubmitWorkspaceAction } from '@umbraco-cms/backoffice/workspace'; @@ -13,6 +14,24 @@ export const manifests: Array = [ entityType: UMB_DOCUMENT_TYPE_FOLDER_ENTITY_TYPE, }, }, + { + type: 'workspaceView', + kind: 'collection', + alias: 'Umb.WorkspaceView.DocumentType.Folder.Collection', + name: 'Document Type Folder Collection Workspace View', + meta: { + label: '#general_design', + pathname: 'design', + icon: 'icon-member-dashed-line', + collectionAlias: UMB_DOCUMENT_TYPE_FOLDER_COLLECTION_ALIAS, + }, + conditions: [ + { + alias: 'Umb.Condition.WorkspaceAlias', + match: UMB_DOCUMENT_TYPE_FOLDER_WORKSPACE_ALIAS, + }, + ], + }, { type: 'workspaceAction', kind: 'default', From 87b75860ee9be7f60775bdb99d2cb44cccce3c43 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 9 Oct 2024 16:11:05 +0200 Subject: [PATCH 02/34] wip render tree item children in collection --- .../tree/folder/collection/constants.ts | 2 - .../tree/folder/collection/manifests.ts | 22 ----- .../tree/folder/collection/views/manifests.ts | 25 ------ .../document-types/tree/folder/manifests.ts | 2 +- .../tree/folder/workspace/manifests.ts | 4 +- .../constants.ts | 3 + ...ee-item-children-collection.repository.ts} | 9 +- .../manifests.ts | 24 ++++++ .../types.ts | 2 +- .../views/manifests.ts | 23 ++++++ .../views/table.element.ts | 82 +++++++++++++++++++ 11 files changed, 142 insertions(+), 56 deletions(-) delete mode 100644 src/packages/documents/document-types/tree/folder/collection/constants.ts delete mode 100644 src/packages/documents/document-types/tree/folder/collection/manifests.ts delete mode 100644 src/packages/documents/document-types/tree/folder/collection/views/manifests.ts create mode 100644 src/packages/documents/document-types/tree/tree-item-children-collection/constants.ts rename src/packages/documents/document-types/tree/{folder/collection/folder-collection.repository.ts => tree-item-children-collection/document-type-tree-item-children-collection.repository.ts} (82%) create mode 100644 src/packages/documents/document-types/tree/tree-item-children-collection/manifests.ts rename src/packages/documents/document-types/tree/{folder/collection => tree-item-children-collection}/types.ts (63%) create mode 100644 src/packages/documents/document-types/tree/tree-item-children-collection/views/manifests.ts create mode 100644 src/packages/documents/document-types/tree/tree-item-children-collection/views/table.element.ts diff --git a/src/packages/documents/document-types/tree/folder/collection/constants.ts b/src/packages/documents/document-types/tree/folder/collection/constants.ts deleted file mode 100644 index 2acb88dc1e..0000000000 --- a/src/packages/documents/document-types/tree/folder/collection/constants.ts +++ /dev/null @@ -1,2 +0,0 @@ -export const UMB_DOCUMENT_TYPE_FOLDER_COLLECTION_REPOSITORY_ALIAS = 'Umb.Repository.DocumentType.Folder.Collection'; -export const UMB_DOCUMENT_TYPE_FOLDER_COLLECTION_ALIAS = 'Umb.Collection.DocumentType.Folder.'; diff --git a/src/packages/documents/document-types/tree/folder/collection/manifests.ts b/src/packages/documents/document-types/tree/folder/collection/manifests.ts deleted file mode 100644 index c80dc7f968..0000000000 --- a/src/packages/documents/document-types/tree/folder/collection/manifests.ts +++ /dev/null @@ -1,22 +0,0 @@ -import { - UMB_DOCUMENT_TYPE_FOLDER_COLLECTION_ALIAS, - UMB_DOCUMENT_TYPE_FOLDER_COLLECTION_REPOSITORY_ALIAS, -} from './constants.js'; - -export const manifests: Array = [ - { - type: 'collection', - kind: 'default', - alias: UMB_DOCUMENT_TYPE_FOLDER_COLLECTION_ALIAS, - name: 'Document Type Folder Collection', - meta: { - repositoryAlias: UMB_DOCUMENT_TYPE_FOLDER_COLLECTION_REPOSITORY_ALIAS, - }, - }, - { - type: 'repository', - alias: UMB_DOCUMENT_TYPE_FOLDER_COLLECTION_REPOSITORY_ALIAS, - name: 'Document Type Folder Collection Repository', - api: () => import('./folder-collection.repository.js'), - }, -]; diff --git a/src/packages/documents/document-types/tree/folder/collection/views/manifests.ts b/src/packages/documents/document-types/tree/folder/collection/views/manifests.ts deleted file mode 100644 index 7c63b8a72b..0000000000 --- a/src/packages/documents/document-types/tree/folder/collection/views/manifests.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { UMB_COLLECTION_ALIAS_CONDITION } from '@umbraco-cms/backoffice/collection'; - -export const UMB_DOCUMENT_GRID_COLLECTION_VIEW_ALIAS = 'Umb.CollectionView.Document.Grid'; -export const UMB_DOCUMENT_TABLE_COLLECTION_VIEW_ALIAS = 'Umb.CollectionView.Document.Table'; - -export const manifests: Array = [ - { - type: 'collectionView', - alias: UMB_DOCUMENT_TABLE_COLLECTION_VIEW_ALIAS, - name: 'Document Table Collection View', - element: () => import('./table/document-table-collection-view.element.js'), - weight: 300, - meta: { - label: 'Table', - icon: 'icon-list', - pathName: 'table', - }, - conditions: [ - { - alias: UMB_COLLECTION_ALIAS_CONDITION, - match: 'Umb.Collection.Document', - }, - ], - }, -]; diff --git a/src/packages/documents/document-types/tree/folder/manifests.ts b/src/packages/documents/document-types/tree/folder/manifests.ts index 2cd9539fa0..e22ac7c538 100644 --- a/src/packages/documents/document-types/tree/folder/manifests.ts +++ b/src/packages/documents/document-types/tree/folder/manifests.ts @@ -1,5 +1,5 @@ import { UMB_DOCUMENT_TYPE_FOLDER_ENTITY_TYPE } from '../../entity.js'; -import { manifests as collectionManifests } from './collection/manifests.js'; +import { manifests as collectionManifests } from '../tree-item-children-collection/manifests.js'; import { manifests as repositoryManifests } from './repository/manifests.js'; import { manifests as workspaceManifests } from './workspace/manifests.js'; import { UMB_DOCUMENT_TYPE_FOLDER_REPOSITORY_ALIAS } from './repository/constants.js'; diff --git a/src/packages/documents/document-types/tree/folder/workspace/manifests.ts b/src/packages/documents/document-types/tree/folder/workspace/manifests.ts index 9ec081e186..8b1109ef05 100644 --- a/src/packages/documents/document-types/tree/folder/workspace/manifests.ts +++ b/src/packages/documents/document-types/tree/folder/workspace/manifests.ts @@ -1,5 +1,5 @@ import { UMB_DOCUMENT_TYPE_FOLDER_ENTITY_TYPE } from '../../../entity.js'; -import { UMB_DOCUMENT_TYPE_FOLDER_COLLECTION_ALIAS } from '../collection/constants.js'; +import { UMB_DOCUMENT_TYPE_TREE_ITEM_CHILDREN_COLLECTION_ALIAS } from '../../tree-item-children-collection/constants.js'; import { UMB_DOCUMENT_TYPE_FOLDER_WORKSPACE_ALIAS } from './constants.js'; import { UmbSubmitWorkspaceAction } from '@umbraco-cms/backoffice/workspace'; @@ -23,7 +23,7 @@ export const manifests: Array = [ label: '#general_design', pathname: 'design', icon: 'icon-member-dashed-line', - collectionAlias: UMB_DOCUMENT_TYPE_FOLDER_COLLECTION_ALIAS, + collectionAlias: UMB_DOCUMENT_TYPE_TREE_ITEM_CHILDREN_COLLECTION_ALIAS, }, conditions: [ { diff --git a/src/packages/documents/document-types/tree/tree-item-children-collection/constants.ts b/src/packages/documents/document-types/tree/tree-item-children-collection/constants.ts new file mode 100644 index 0000000000..800c987d78 --- /dev/null +++ b/src/packages/documents/document-types/tree/tree-item-children-collection/constants.ts @@ -0,0 +1,3 @@ +export const UMB_DOCUMENT_TYPE_TREE_ITEM_CHILDREN_COLLECTION_ALIAS = 'Umb.Collection.DocumentType.TreeItemChildren'; +export const UMB_DOCUMENT_TYPE_TREE_ITEM_CHILDREN_COLLECTION_REPOSITORY_ALIAS = + 'Umb.Repository.DocumentType.TreeItemChildrenCollection'; diff --git a/src/packages/documents/document-types/tree/folder/collection/folder-collection.repository.ts b/src/packages/documents/document-types/tree/tree-item-children-collection/document-type-tree-item-children-collection.repository.ts similarity index 82% rename from src/packages/documents/document-types/tree/folder/collection/folder-collection.repository.ts rename to src/packages/documents/document-types/tree/tree-item-children-collection/document-type-tree-item-children-collection.repository.ts index 38dd65b799..a23282f427 100644 --- a/src/packages/documents/document-types/tree/folder/collection/folder-collection.repository.ts +++ b/src/packages/documents/document-types/tree/tree-item-children-collection/document-type-tree-item-children-collection.repository.ts @@ -1,10 +1,13 @@ -import { UmbDocumentTypeTreeRepository } from '../../document-type-tree.repository.js'; +import { UmbDocumentTypeTreeRepository } from '../document-type-tree.repository.js'; import type { UmbCollectionFilterModel, UmbCollectionRepository } from '@umbraco-cms/backoffice/collection'; import { UmbRepositoryBase } from '@umbraco-cms/backoffice/repository'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UMB_ENTITY_CONTEXT, type UmbEntityModel } from '@umbraco-cms/backoffice/entity'; -export class UmbDocumentTypeFolderCollectionRepository extends UmbRepositoryBase implements UmbCollectionRepository { +export class UmbDocumentTypeTreeItemChildrenCollectionRepository + extends UmbRepositoryBase + implements UmbCollectionRepository +{ #treeRepository = new UmbDocumentTypeTreeRepository(this); constructor(host: UmbControllerHost) { @@ -40,4 +43,4 @@ export class UmbDocumentTypeFolderCollectionRepository extends UmbRepositoryBase } } -export { UmbDocumentTypeFolderCollectionRepository as api }; +export { UmbDocumentTypeTreeItemChildrenCollectionRepository as api }; diff --git a/src/packages/documents/document-types/tree/tree-item-children-collection/manifests.ts b/src/packages/documents/document-types/tree/tree-item-children-collection/manifests.ts new file mode 100644 index 0000000000..2c7e7991ed --- /dev/null +++ b/src/packages/documents/document-types/tree/tree-item-children-collection/manifests.ts @@ -0,0 +1,24 @@ +import { + UMB_DOCUMENT_TYPE_TREE_ITEM_CHILDREN_COLLECTION_ALIAS, + UMB_DOCUMENT_TYPE_TREE_ITEM_CHILDREN_COLLECTION_REPOSITORY_ALIAS, +} from './constants.js'; +import { manifests as viewManifests } from './views/manifests.js'; + +export const manifests: Array = [ + { + type: 'collection', + kind: 'default', + alias: UMB_DOCUMENT_TYPE_TREE_ITEM_CHILDREN_COLLECTION_ALIAS, + name: 'Document Type Tree Item Children Collection', + meta: { + repositoryAlias: UMB_DOCUMENT_TYPE_TREE_ITEM_CHILDREN_COLLECTION_REPOSITORY_ALIAS, + }, + }, + { + type: 'repository', + alias: UMB_DOCUMENT_TYPE_TREE_ITEM_CHILDREN_COLLECTION_REPOSITORY_ALIAS, + name: 'Document Type Tree Item Children Collection Repository', + api: () => import('./document-type-tree-item-children-collection.repository.js'), + }, + ...viewManifests, +]; diff --git a/src/packages/documents/document-types/tree/folder/collection/types.ts b/src/packages/documents/document-types/tree/tree-item-children-collection/types.ts similarity index 63% rename from src/packages/documents/document-types/tree/folder/collection/types.ts rename to src/packages/documents/document-types/tree/tree-item-children-collection/types.ts index 1409f4767a..a45264779f 100644 --- a/src/packages/documents/document-types/tree/folder/collection/types.ts +++ b/src/packages/documents/document-types/tree/tree-item-children-collection/types.ts @@ -1,6 +1,6 @@ import type { UmbCollectionFilterModel } from '@umbraco-cms/backoffice/collection'; import type { UmbEntityModel } from '@umbraco-cms/backoffice/entity'; -export interface UmbFolderCollectionFilterModel extends UmbCollectionFilterModel { +export interface UmbDocumentTypeTreeItemChildrenCollectionFilterModel extends UmbCollectionFilterModel { parent: UmbEntityModel; } diff --git a/src/packages/documents/document-types/tree/tree-item-children-collection/views/manifests.ts b/src/packages/documents/document-types/tree/tree-item-children-collection/views/manifests.ts new file mode 100644 index 0000000000..8b8cc044f7 --- /dev/null +++ b/src/packages/documents/document-types/tree/tree-item-children-collection/views/manifests.ts @@ -0,0 +1,23 @@ +import { UMB_DOCUMENT_TYPE_TREE_ITEM_CHILDREN_COLLECTION_ALIAS } from '../constants.js'; +import { UMB_COLLECTION_ALIAS_CONDITION } from '@umbraco-cms/backoffice/collection'; + +export const manifests: Array = [ + { + type: 'collectionView', + alias: 'Umb.CollectionView.DocumentType.Folder.Table', + name: 'Document Type Folder Children Table Collection View', + element: () => import('./table.element.js'), + weight: 300, + meta: { + label: 'Table', + icon: 'icon-list', + pathName: 'table', + }, + conditions: [ + { + alias: UMB_COLLECTION_ALIAS_CONDITION, + match: UMB_DOCUMENT_TYPE_TREE_ITEM_CHILDREN_COLLECTION_ALIAS, + }, + ], + }, +]; diff --git a/src/packages/documents/document-types/tree/tree-item-children-collection/views/table.element.ts b/src/packages/documents/document-types/tree/tree-item-children-collection/views/table.element.ts new file mode 100644 index 0000000000..7a55c757d2 --- /dev/null +++ b/src/packages/documents/document-types/tree/tree-item-children-collection/views/table.element.ts @@ -0,0 +1,82 @@ +import type { UmbDefaultCollectionContext } from '@umbraco-cms/backoffice/collection'; +import { UMB_COLLECTION_CONTEXT } from '@umbraco-cms/backoffice/collection'; +import type { UmbTableColumn, UmbTableConfig, UmbTableItem } from '@umbraco-cms/backoffice/components'; +import { css, html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; +import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; +import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; +import type { UmbTreeItemModel } from '@umbraco-cms/backoffice/tree'; + +const elementName = 'umb-tree-item-children-table-collection-view'; +@customElement(elementName) +export class UmbTreeItemChildrenTableCollectionViewElement extends UmbLitElement { + @state() + private _tableConfig: UmbTableConfig = { + allowSelection: false, + }; + + @state() + private _tableColumns: Array = [ + { + name: 'Name', + alias: 'name', + }, + ]; + + @state() + private _tableItems: Array = []; + + #collectionContext?: UmbDefaultCollectionContext; + + constructor() { + super(); + + this.consumeContext(UMB_COLLECTION_CONTEXT, (instance) => { + this.#collectionContext = instance; + this.#observeCollectionItems(); + }); + } + + #observeCollectionItems() { + if (!this.#collectionContext) return; + this.observe(this.#collectionContext.items, (items) => this.#createTableItems(items), 'umbCollectionItemsObserver'); + } + + #createTableItems(item: Array) { + this._tableItems = item.map((item) => { + return { + id: item.unique, + icon: item.isFolder && !item.icon ? 'icon-folder' : item.icon, + data: [ + { + columnAlias: 'name', + value: item.name, + }, + ], + }; + }); + } + + override render() { + return html` + + `; + } + + static override styles = [ + UmbTextStyles, + css` + :host { + display: flex; + flex-direction: column; + } + `, + ]; +} + +export default UmbTreeItemChildrenTableCollectionViewElement; + +declare global { + interface HTMLElementTagNameMap { + [elementName]: UmbTreeItemChildrenTableCollectionViewElement; + } +} From 5bb88eaa36fa88a02dc88ffcbc226ec6ee137fb0 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 9 Oct 2024 17:37:33 +0200 Subject: [PATCH 03/34] split workspace into folders --- .../input-document-type.element.ts | 2 +- .../document-types/tree/manifests.ts | 10 -- .../workspace/document-type-root/manifests.ts | 14 +++ .../workspace/document-type/constants.ts | 1 + .../document-type-workspace-editor.element.ts | 0 .../document-type-workspace.context-token.ts | 0 .../document-type-workspace.context.ts | 8 +- .../document-type-workspace.modal-token.ts | 2 +- .../workspace/document-type/index.ts | 3 + .../workspace/document-type/manifests.ts | 106 +++++++++++++++++ ...nt-type-workspace-view-settings.element.ts | 0 ...t-type-workspace-view-structure.element.ts | 2 +- ...t-type-workspace-view-templates.element.ts | 0 .../document-types/workspace/index.ts | 3 +- .../document-types/workspace/manifests.ts | 109 +----------------- 15 files changed, 135 insertions(+), 125 deletions(-) create mode 100644 src/packages/documents/document-types/workspace/document-type-root/manifests.ts create mode 100644 src/packages/documents/document-types/workspace/document-type/constants.ts rename src/packages/documents/document-types/workspace/{ => document-type}/document-type-workspace-editor.element.ts (100%) rename src/packages/documents/document-types/workspace/{ => document-type}/document-type-workspace.context-token.ts (100%) rename src/packages/documents/document-types/workspace/{ => document-type}/document-type-workspace.context.ts (97%) rename src/packages/documents/document-types/workspace/{ => document-type}/document-type-workspace.modal-token.ts (93%) create mode 100644 src/packages/documents/document-types/workspace/document-type/index.ts create mode 100644 src/packages/documents/document-types/workspace/document-type/manifests.ts rename src/packages/documents/document-types/workspace/{ => document-type}/views/settings/document-type-workspace-view-settings.element.ts (100%) rename src/packages/documents/document-types/workspace/{ => document-type}/views/structure/document-type-workspace-view-structure.element.ts (97%) rename src/packages/documents/document-types/workspace/{ => document-type}/views/templates/document-type-workspace-view-templates.element.ts (100%) diff --git a/src/packages/documents/document-types/components/input-document-type/input-document-type.element.ts b/src/packages/documents/document-types/components/input-document-type/input-document-type.element.ts index de53c7122e..f7bc27eead 100644 --- a/src/packages/documents/document-types/components/input-document-type/input-document-type.element.ts +++ b/src/packages/documents/document-types/components/input-document-type/input-document-type.element.ts @@ -1,5 +1,5 @@ import type { UmbDocumentTypeItemModel } from '../../repository/index.js'; -import { UMB_DOCUMENT_TYPE_WORKSPACE_MODAL } from '../../workspace/document-type-workspace.modal-token.js'; +import { UMB_DOCUMENT_TYPE_WORKSPACE_MODAL } from '../../workspace/document-type/document-type-workspace.modal-token.js'; import type { UmbDocumentTypeTreeItemModel } from '../../tree/types.js'; import { UMB_EDIT_DOCUMENT_TYPE_WORKSPACE_PATH_PATTERN } from '../../paths.js'; import { UmbDocumentTypePickerInputContext } from './input-document-type.context.js'; diff --git a/src/packages/documents/document-types/tree/manifests.ts b/src/packages/documents/document-types/tree/manifests.ts index 40f1ed4830..4ff98fac57 100644 --- a/src/packages/documents/document-types/tree/manifests.ts +++ b/src/packages/documents/document-types/tree/manifests.ts @@ -44,16 +44,6 @@ export const manifests: Array = [ UMB_DOCUMENT_TYPE_FOLDER_ENTITY_TYPE, ], }, - { - type: 'workspace', - kind: 'default', - alias: 'Umb.Workspace.DocumentType.Root', - name: 'Document Type Root Workspace', - meta: { - entityType: UMB_DOCUMENT_TYPE_ROOT_ENTITY_TYPE, - headline: '#treeHeaders_documentTypes', - }, - }, ...folderManifests, ...reloadManifests, ]; diff --git a/src/packages/documents/document-types/workspace/document-type-root/manifests.ts b/src/packages/documents/document-types/workspace/document-type-root/manifests.ts new file mode 100644 index 0000000000..c61b55778a --- /dev/null +++ b/src/packages/documents/document-types/workspace/document-type-root/manifests.ts @@ -0,0 +1,14 @@ +import { UMB_DOCUMENT_TYPE_ROOT_ENTITY_TYPE } from '../../entity.js'; + +export const manifests: Array = [ + { + type: 'workspace', + kind: 'default', + alias: 'Umb.Workspace.DocumentType.Root', + name: 'Document Type Root Workspace', + meta: { + entityType: UMB_DOCUMENT_TYPE_ROOT_ENTITY_TYPE, + headline: '#treeHeaders_documentTypes', + }, + }, +]; diff --git a/src/packages/documents/document-types/workspace/document-type/constants.ts b/src/packages/documents/document-types/workspace/document-type/constants.ts new file mode 100644 index 0000000000..6592bb27dd --- /dev/null +++ b/src/packages/documents/document-types/workspace/document-type/constants.ts @@ -0,0 +1 @@ +export const UMB_DOCUMENT_TYPE_WORKSPACE_ALIAS = 'Umb.Workspace.DocumentType'; diff --git a/src/packages/documents/document-types/workspace/document-type-workspace-editor.element.ts b/src/packages/documents/document-types/workspace/document-type/document-type-workspace-editor.element.ts similarity index 100% rename from src/packages/documents/document-types/workspace/document-type-workspace-editor.element.ts rename to src/packages/documents/document-types/workspace/document-type/document-type-workspace-editor.element.ts diff --git a/src/packages/documents/document-types/workspace/document-type-workspace.context-token.ts b/src/packages/documents/document-types/workspace/document-type/document-type-workspace.context-token.ts similarity index 100% rename from src/packages/documents/document-types/workspace/document-type-workspace.context-token.ts rename to src/packages/documents/document-types/workspace/document-type/document-type-workspace.context-token.ts diff --git a/src/packages/documents/document-types/workspace/document-type-workspace.context.ts b/src/packages/documents/document-types/workspace/document-type/document-type-workspace.context.ts similarity index 97% rename from src/packages/documents/document-types/workspace/document-type-workspace.context.ts rename to src/packages/documents/document-types/workspace/document-type/document-type-workspace.context.ts index e1791d7ec0..a47b5c868b 100644 --- a/src/packages/documents/document-types/workspace/document-type-workspace.context.ts +++ b/src/packages/documents/document-types/workspace/document-type/document-type-workspace.context.ts @@ -4,10 +4,10 @@ import { UMB_CREATE_DOCUMENT_TYPE_WORKSPACE_PRESET_TEMPLATE, UMB_EDIT_DOCUMENT_TYPE_WORKSPACE_PATH_PATTERN, type UmbCreateDocumentTypeWorkspacePresetType, -} from '../paths.js'; -import type { UmbDocumentTypeDetailModel } from '../types.js'; -import { UMB_DOCUMENT_TYPE_ENTITY_TYPE } from '../entity.js'; -import { UmbDocumentTypeDetailRepository } from '../repository/detail/document-type-detail.repository.js'; +} from '../../paths.js'; +import type { UmbDocumentTypeDetailModel } from '../../types.js'; +import { UMB_DOCUMENT_TYPE_ENTITY_TYPE } from '../../entity.js'; +import { UmbDocumentTypeDetailRepository } from '../../repository/detail/document-type-detail.repository.js'; import { UmbDocumentTypeWorkspaceEditorElement } from './document-type-workspace-editor.element.js'; import { UmbContentTypeStructureManager } from '@umbraco-cms/backoffice/content-type'; import { UmbObjectState } from '@umbraco-cms/backoffice/observable-api'; diff --git a/src/packages/documents/document-types/workspace/document-type-workspace.modal-token.ts b/src/packages/documents/document-types/workspace/document-type/document-type-workspace.modal-token.ts similarity index 93% rename from src/packages/documents/document-types/workspace/document-type-workspace.modal-token.ts rename to src/packages/documents/document-types/workspace/document-type/document-type-workspace.modal-token.ts index 46162c38e0..e30cbcfd61 100644 --- a/src/packages/documents/document-types/workspace/document-type-workspace.modal-token.ts +++ b/src/packages/documents/document-types/workspace/document-type/document-type-workspace.modal-token.ts @@ -1,4 +1,4 @@ -import { UMB_DOCUMENT_TYPE_ENTITY_TYPE } from '../entity.js'; +import { UMB_DOCUMENT_TYPE_ENTITY_TYPE } from '../../entity.js'; import { UmbModalToken } from '@umbraco-cms/backoffice/modal'; import { UMB_WORKSPACE_MODAL } from '@umbraco-cms/backoffice/workspace'; import type { UmbDeepPartialObject } from '@umbraco-cms/backoffice/utils'; diff --git a/src/packages/documents/document-types/workspace/document-type/index.ts b/src/packages/documents/document-types/workspace/document-type/index.ts new file mode 100644 index 0000000000..5232133b80 --- /dev/null +++ b/src/packages/documents/document-types/workspace/document-type/index.ts @@ -0,0 +1,3 @@ +export * from './document-type-workspace.context-token.js'; +export * from './document-type-workspace.modal-token.js'; +export * from './constants.js'; diff --git a/src/packages/documents/document-types/workspace/document-type/manifests.ts b/src/packages/documents/document-types/workspace/document-type/manifests.ts new file mode 100644 index 0000000000..81b4a8d3d3 --- /dev/null +++ b/src/packages/documents/document-types/workspace/document-type/manifests.ts @@ -0,0 +1,106 @@ +import { UMB_DOCUMENT_TYPE_COMPOSITION_REPOSITORY_ALIAS } from '../../repository/composition/index.js'; +import { UMB_DOCUMENT_TYPE_WORKSPACE_ALIAS } from './constants.js'; +import { UmbSubmitWorkspaceAction } from '@umbraco-cms/backoffice/workspace'; + +export const manifests: Array = [ + { + type: 'workspace', + kind: 'routable', + alias: UMB_DOCUMENT_TYPE_WORKSPACE_ALIAS, + name: 'Document Type Workspace', + api: () => import('./document-type-workspace.context.js'), + meta: { + entityType: 'document-type', + }, + }, + { + type: 'workspaceView', + kind: 'contentTypeDesignEditor', + alias: 'Umb.WorkspaceView.DocumentType.Design', + name: 'Document Type Workspace Design View', + meta: { + label: '#general_design', + pathname: 'design', + icon: 'icon-document-dashed-line', + compositionRepositoryAlias: UMB_DOCUMENT_TYPE_COMPOSITION_REPOSITORY_ALIAS, + }, + conditions: [ + { + alias: 'Umb.Condition.WorkspaceAlias', + match: UMB_DOCUMENT_TYPE_WORKSPACE_ALIAS, + }, + ], + }, + { + type: 'workspaceView', + alias: 'Umb.WorkspaceView.DocumentType.Structure', + name: 'Document Type Workspace Structure View', + element: () => import('./views/structure/document-type-workspace-view-structure.element.js'), + weight: 800, + meta: { + label: '#contentTypeEditor_structure', + pathname: 'structure', + icon: 'icon-mindmap', + }, + conditions: [ + { + alias: 'Umb.Condition.WorkspaceAlias', + match: UMB_DOCUMENT_TYPE_WORKSPACE_ALIAS, + }, + ], + }, + { + type: 'workspaceView', + alias: 'Umb.WorkspaceView.DocumentType.Settings', + name: 'Document Type Workspace Settings View', + element: () => import('./views/settings/document-type-workspace-view-settings.element.js'), + weight: 600, + meta: { + label: '#general_settings', + pathname: 'settings', + icon: 'icon-settings', + }, + conditions: [ + { + alias: 'Umb.Condition.WorkspaceAlias', + match: UMB_DOCUMENT_TYPE_WORKSPACE_ALIAS, + }, + ], + }, + { + type: 'workspaceView', + alias: 'Umb.WorkspaceView.DocumentType.Templates', + name: 'Document Type Workspace Templates View', + element: () => import('./views/templates/document-type-workspace-view-templates.element.js'), + weight: 400, + meta: { + label: '#treeHeaders_templates', + pathname: 'templates', + icon: 'icon-layout', + }, + conditions: [ + { + alias: 'Umb.Condition.WorkspaceAlias', + match: UMB_DOCUMENT_TYPE_WORKSPACE_ALIAS, + }, + ], + }, + { + type: 'workspaceAction', + kind: 'default', + alias: 'Umb.WorkspaceAction.DocumentType.Save', + name: 'Save Document Type Workspace Action', + api: UmbSubmitWorkspaceAction, + meta: { + label: '#buttons_save', + look: 'primary', + color: 'positive', + }, + conditions: [ + { + alias: 'Umb.Condition.WorkspaceAlias', + match: UMB_DOCUMENT_TYPE_WORKSPACE_ALIAS, + }, + ], + }, +]; diff --git a/src/packages/documents/document-types/workspace/views/settings/document-type-workspace-view-settings.element.ts b/src/packages/documents/document-types/workspace/document-type/views/settings/document-type-workspace-view-settings.element.ts similarity index 100% rename from src/packages/documents/document-types/workspace/views/settings/document-type-workspace-view-settings.element.ts rename to src/packages/documents/document-types/workspace/document-type/views/settings/document-type-workspace-view-settings.element.ts diff --git a/src/packages/documents/document-types/workspace/views/structure/document-type-workspace-view-structure.element.ts b/src/packages/documents/document-types/workspace/document-type/views/structure/document-type-workspace-view-structure.element.ts similarity index 97% rename from src/packages/documents/document-types/workspace/views/structure/document-type-workspace-view-structure.element.ts rename to src/packages/documents/document-types/workspace/document-type/views/structure/document-type-workspace-view-structure.element.ts index 0a490ea644..5edd8d234d 100644 --- a/src/packages/documents/document-types/workspace/views/structure/document-type-workspace-view-structure.element.ts +++ b/src/packages/documents/document-types/workspace/document-type/views/structure/document-type-workspace-view-structure.element.ts @@ -1,5 +1,5 @@ import type { UmbDocumentTypeWorkspaceContext } from '../../document-type-workspace.context.js'; -import type { UmbInputDocumentTypeElement } from '../../../components/input-document-type/input-document-type.element.js'; +import type { UmbInputDocumentTypeElement } from '../../../../components/input-document-type/input-document-type.element.js'; import { UMB_DOCUMENT_TYPE_WORKSPACE_CONTEXT } from '../../document-type-workspace.context-token.js'; import { css, html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; diff --git a/src/packages/documents/document-types/workspace/views/templates/document-type-workspace-view-templates.element.ts b/src/packages/documents/document-types/workspace/document-type/views/templates/document-type-workspace-view-templates.element.ts similarity index 100% rename from src/packages/documents/document-types/workspace/views/templates/document-type-workspace-view-templates.element.ts rename to src/packages/documents/document-types/workspace/document-type/views/templates/document-type-workspace-view-templates.element.ts diff --git a/src/packages/documents/document-types/workspace/index.ts b/src/packages/documents/document-types/workspace/index.ts index cf7ab5393f..7aa5441487 100644 --- a/src/packages/documents/document-types/workspace/index.ts +++ b/src/packages/documents/document-types/workspace/index.ts @@ -1,2 +1 @@ -export * from './document-type-workspace.context-token.js'; -export * from './document-type-workspace.modal-token.js'; +export * from './document-type/index.js'; diff --git a/src/packages/documents/document-types/workspace/manifests.ts b/src/packages/documents/document-types/workspace/manifests.ts index f4230143a2..8d1f79b665 100644 --- a/src/packages/documents/document-types/workspace/manifests.ts +++ b/src/packages/documents/document-types/workspace/manifests.ts @@ -1,107 +1,4 @@ -import { UMB_DOCUMENT_TYPE_COMPOSITION_REPOSITORY_ALIAS } from '../repository/composition/index.js'; -import { UmbSubmitWorkspaceAction } from '@umbraco-cms/backoffice/workspace'; +import { manifests as documentTypeManifests } from './document-type/manifests.js'; +import { manifests as documentTypeRootManifests } from './document-type-root/manifests.js'; -export const UMB_DOCUMENT_TYPE_WORKSPACE_ALIAS = 'Umb.Workspace.DocumentType'; - -export const manifests: Array = [ - { - type: 'workspace', - kind: 'routable', - alias: UMB_DOCUMENT_TYPE_WORKSPACE_ALIAS, - name: 'Document Type Workspace', - api: () => import('./document-type-workspace.context.js'), - meta: { - entityType: 'document-type', - }, - }, - { - type: 'workspaceView', - kind: 'contentTypeDesignEditor', - alias: 'Umb.WorkspaceView.DocumentType.Design', - name: 'Document Type Workspace Design View', - meta: { - label: '#general_design', - pathname: 'design', - icon: 'icon-document-dashed-line', - compositionRepositoryAlias: UMB_DOCUMENT_TYPE_COMPOSITION_REPOSITORY_ALIAS, - }, - conditions: [ - { - alias: 'Umb.Condition.WorkspaceAlias', - match: UMB_DOCUMENT_TYPE_WORKSPACE_ALIAS, - }, - ], - }, - { - type: 'workspaceView', - alias: 'Umb.WorkspaceView.DocumentType.Structure', - name: 'Document Type Workspace Structure View', - element: () => import('./views/structure/document-type-workspace-view-structure.element.js'), - weight: 800, - meta: { - label: '#contentTypeEditor_structure', - pathname: 'structure', - icon: 'icon-mindmap', - }, - conditions: [ - { - alias: 'Umb.Condition.WorkspaceAlias', - match: UMB_DOCUMENT_TYPE_WORKSPACE_ALIAS, - }, - ], - }, - { - type: 'workspaceView', - alias: 'Umb.WorkspaceView.DocumentType.Settings', - name: 'Document Type Workspace Settings View', - element: () => import('./views/settings/document-type-workspace-view-settings.element.js'), - weight: 600, - meta: { - label: '#general_settings', - pathname: 'settings', - icon: 'icon-settings', - }, - conditions: [ - { - alias: 'Umb.Condition.WorkspaceAlias', - match: UMB_DOCUMENT_TYPE_WORKSPACE_ALIAS, - }, - ], - }, - { - type: 'workspaceView', - alias: 'Umb.WorkspaceView.DocumentType.Templates', - name: 'Document Type Workspace Templates View', - element: () => import('./views/templates/document-type-workspace-view-templates.element.js'), - weight: 400, - meta: { - label: '#treeHeaders_templates', - pathname: 'templates', - icon: 'icon-layout', - }, - conditions: [ - { - alias: 'Umb.Condition.WorkspaceAlias', - match: UMB_DOCUMENT_TYPE_WORKSPACE_ALIAS, - }, - ], - }, - { - type: 'workspaceAction', - kind: 'default', - alias: 'Umb.WorkspaceAction.DocumentType.Save', - name: 'Save Document Type Workspace Action', - api: UmbSubmitWorkspaceAction, - meta: { - label: '#buttons_save', - look: 'primary', - color: 'positive', - }, - conditions: [ - { - alias: 'Umb.Condition.WorkspaceAlias', - match: UMB_DOCUMENT_TYPE_WORKSPACE_ALIAS, - }, - ], - }, -]; +export const manifests: Array = [...documentTypeManifests, ...documentTypeRootManifests]; From c771b187f952f2288ccd2e75b13a0bb05e0b48ff Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Wed, 9 Oct 2024 18:20:18 +0200 Subject: [PATCH 04/34] export consts + temp conditions for testing purposes --- .../tree/folder/workspace/index.ts | 1 + .../tree/folder/workspace/manifests.ts | 19 ----------------- .../documents/document-types/tree/index.ts | 3 ++- .../document-types/tree/manifests.ts | 21 +++++++++++++++++++ .../tree-item-children-collection/index.ts | 1 + .../workspace/document-type-root/constants.ts | 1 + .../workspace/document-type-root/index.ts | 1 + 7 files changed, 27 insertions(+), 20 deletions(-) create mode 100644 src/packages/documents/document-types/tree/tree-item-children-collection/index.ts create mode 100644 src/packages/documents/document-types/workspace/document-type-root/constants.ts create mode 100644 src/packages/documents/document-types/workspace/document-type-root/index.ts diff --git a/src/packages/documents/document-types/tree/folder/workspace/index.ts b/src/packages/documents/document-types/tree/folder/workspace/index.ts index e69de29bb2..4f07201dcf 100644 --- a/src/packages/documents/document-types/tree/folder/workspace/index.ts +++ b/src/packages/documents/document-types/tree/folder/workspace/index.ts @@ -0,0 +1 @@ +export * from './constants.js'; diff --git a/src/packages/documents/document-types/tree/folder/workspace/manifests.ts b/src/packages/documents/document-types/tree/folder/workspace/manifests.ts index 8b1109ef05..52c211ec2f 100644 --- a/src/packages/documents/document-types/tree/folder/workspace/manifests.ts +++ b/src/packages/documents/document-types/tree/folder/workspace/manifests.ts @@ -1,5 +1,4 @@ import { UMB_DOCUMENT_TYPE_FOLDER_ENTITY_TYPE } from '../../../entity.js'; -import { UMB_DOCUMENT_TYPE_TREE_ITEM_CHILDREN_COLLECTION_ALIAS } from '../../tree-item-children-collection/constants.js'; import { UMB_DOCUMENT_TYPE_FOLDER_WORKSPACE_ALIAS } from './constants.js'; import { UmbSubmitWorkspaceAction } from '@umbraco-cms/backoffice/workspace'; @@ -14,24 +13,6 @@ export const manifests: Array = [ entityType: UMB_DOCUMENT_TYPE_FOLDER_ENTITY_TYPE, }, }, - { - type: 'workspaceView', - kind: 'collection', - alias: 'Umb.WorkspaceView.DocumentType.Folder.Collection', - name: 'Document Type Folder Collection Workspace View', - meta: { - label: '#general_design', - pathname: 'design', - icon: 'icon-member-dashed-line', - collectionAlias: UMB_DOCUMENT_TYPE_TREE_ITEM_CHILDREN_COLLECTION_ALIAS, - }, - conditions: [ - { - alias: 'Umb.Condition.WorkspaceAlias', - match: UMB_DOCUMENT_TYPE_FOLDER_WORKSPACE_ALIAS, - }, - ], - }, { type: 'workspaceAction', kind: 'default', diff --git a/src/packages/documents/document-types/tree/index.ts b/src/packages/documents/document-types/tree/index.ts index f2f1e85a61..4c002c1c02 100644 --- a/src/packages/documents/document-types/tree/index.ts +++ b/src/packages/documents/document-types/tree/index.ts @@ -1,3 +1,4 @@ export { UMB_DOCUMENT_TYPE_TREE_STORE_CONTEXT } from './document-type.tree.store.context-token.js'; -export { UMB_DOCUMENT_TYPE_TREE_REPOSITORY_ALIAS, UMB_DOCUMENT_TYPE_TREE_ALIAS } from './constants.js'; +export * from './constants.js'; export * from './folder/index.js'; +export * from './tree-item-children-collection/index.js'; diff --git a/src/packages/documents/document-types/tree/manifests.ts b/src/packages/documents/document-types/tree/manifests.ts index 4ff98fac57..497519bcd3 100644 --- a/src/packages/documents/document-types/tree/manifests.ts +++ b/src/packages/documents/document-types/tree/manifests.ts @@ -3,13 +3,16 @@ import { UMB_DOCUMENT_TYPE_FOLDER_ENTITY_TYPE, UMB_DOCUMENT_TYPE_ROOT_ENTITY_TYPE, } from '../entity.js'; +import { UMB_DOCUMENT_TYPE_ROOT_WORKSPACE_ALIAS } from '../workspace/document-type-root/index.js'; import { UMB_DOCUMENT_TYPE_TREE_ALIAS, UMB_DOCUMENT_TYPE_TREE_REPOSITORY_ALIAS, UMB_DOCUMENT_TYPE_TREE_STORE_ALIAS, } from './constants.js'; +import { UMB_DOCUMENT_TYPE_FOLDER_WORKSPACE_ALIAS } from './folder/index.js'; import { manifests as folderManifests } from './folder/manifests.js'; import { manifests as reloadManifests } from './reload-tree-item-children/manifests.js'; +import { UMB_DOCUMENT_TYPE_TREE_ITEM_CHILDREN_COLLECTION_ALIAS } from './tree-item-children-collection/index.js'; export const manifests: Array = [ { @@ -44,6 +47,24 @@ export const manifests: Array = [ UMB_DOCUMENT_TYPE_FOLDER_ENTITY_TYPE, ], }, + { + type: 'workspaceView', + kind: 'collection', + alias: 'Umb.WorkspaceView.DocumentType.TreeItemChildrenCollection', + name: 'Document Type Tree Item Children Collection Workspace View', + meta: { + label: '#general_design', + pathname: 'design', + icon: 'icon-member-dashed-line', + collectionAlias: UMB_DOCUMENT_TYPE_TREE_ITEM_CHILDREN_COLLECTION_ALIAS, + }, + conditions: [ + { + alias: 'Umb.Condition.WorkspaceAlias', + oneOf: [UMB_DOCUMENT_TYPE_ROOT_WORKSPACE_ALIAS, UMB_DOCUMENT_TYPE_FOLDER_WORKSPACE_ALIAS], + }, + ], + }, ...folderManifests, ...reloadManifests, ]; diff --git a/src/packages/documents/document-types/tree/tree-item-children-collection/index.ts b/src/packages/documents/document-types/tree/tree-item-children-collection/index.ts new file mode 100644 index 0000000000..4f07201dcf --- /dev/null +++ b/src/packages/documents/document-types/tree/tree-item-children-collection/index.ts @@ -0,0 +1 @@ +export * from './constants.js'; diff --git a/src/packages/documents/document-types/workspace/document-type-root/constants.ts b/src/packages/documents/document-types/workspace/document-type-root/constants.ts new file mode 100644 index 0000000000..494ee8fb32 --- /dev/null +++ b/src/packages/documents/document-types/workspace/document-type-root/constants.ts @@ -0,0 +1 @@ +export const UMB_DOCUMENT_TYPE_ROOT_WORKSPACE_ALIAS = 'Umb.Workspace.DocumentType.Root'; diff --git a/src/packages/documents/document-types/workspace/document-type-root/index.ts b/src/packages/documents/document-types/workspace/document-type-root/index.ts new file mode 100644 index 0000000000..4f07201dcf --- /dev/null +++ b/src/packages/documents/document-types/workspace/document-type-root/index.ts @@ -0,0 +1 @@ +export * from './constants.js'; From 9fcf2beb5f6a28431fe4d59c81cadfcd07e32c4a Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Thu, 10 Oct 2024 10:48:48 +0200 Subject: [PATCH 05/34] don't make pagination take up space --- .../components/pagination/collection-pagination.element.ts | 4 ++++ .../core/collection/default/collection-default.element.ts | 4 ++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/packages/core/collection/components/pagination/collection-pagination.element.ts b/src/packages/core/collection/components/pagination/collection-pagination.element.ts index 7ee0688115..8bd77abf64 100644 --- a/src/packages/core/collection/components/pagination/collection-pagination.element.ts +++ b/src/packages/core/collection/components/pagination/collection-pagination.element.ts @@ -63,6 +63,10 @@ export class UmbCollectionPaginationElement extends UmbLitElement { UmbTextStyles, css` :host { + display: contents; + } + + uui-pagination { display: block; margin-top: var(--uui-size-layout-1); } diff --git a/src/packages/core/collection/default/collection-default.element.ts b/src/packages/core/collection/default/collection-default.element.ts index c1d0f54116..4350fdf0a7 100644 --- a/src/packages/core/collection/default/collection-default.element.ts +++ b/src/packages/core/collection/default/collection-default.element.ts @@ -113,11 +113,11 @@ export class UmbCollectionDefaultElement extends UmbLitElement { } #router { - display: none; + visibility: hidden; } .has-items #router { - display: block; + visibility: visible; } #empty-state { From 5baddfa18e484529d8ec6808a9979c434d01db27 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Thu, 10 Oct 2024 11:05:42 +0200 Subject: [PATCH 06/34] register modal routes for editing --- .../views/table.element.ts | 33 ++++++++++++++++--- 1 file changed, 29 insertions(+), 4 deletions(-) diff --git a/src/packages/documents/document-types/tree/tree-item-children-collection/views/table.element.ts b/src/packages/documents/document-types/tree/tree-item-children-collection/views/table.element.ts index 7a55c757d2..505fed3b78 100644 --- a/src/packages/documents/document-types/tree/tree-item-children-collection/views/table.element.ts +++ b/src/packages/documents/document-types/tree/tree-item-children-collection/views/table.element.ts @@ -1,3 +1,4 @@ +import { UMB_EDIT_DOCUMENT_TYPE_WORKSPACE_PATH_PATTERN } from '../../../paths.js'; import type { UmbDefaultCollectionContext } from '@umbraco-cms/backoffice/collection'; import { UMB_COLLECTION_CONTEXT } from '@umbraco-cms/backoffice/collection'; import type { UmbTableColumn, UmbTableConfig, UmbTableItem } from '@umbraco-cms/backoffice/components'; @@ -5,6 +6,8 @@ import { css, html, customElement, state } from '@umbraco-cms/backoffice/externa import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; import type { UmbTreeItemModel } from '@umbraco-cms/backoffice/tree'; +import { UmbModalRouteRegistrationController, type UmbModalRouteBuilder } from '@umbraco-cms/backoffice/router'; +import { UMB_WORKSPACE_MODAL } from '@umbraco-cms/backoffice/workspace'; const elementName = 'umb-tree-item-children-table-collection-view'; @customElement(elementName) @@ -26,14 +29,16 @@ export class UmbTreeItemChildrenTableCollectionViewElement extends UmbLitElement private _tableItems: Array = []; #collectionContext?: UmbDefaultCollectionContext; + #routeBuilder?: UmbModalRouteBuilder; constructor() { super(); this.consumeContext(UMB_COLLECTION_CONTEXT, (instance) => { this.#collectionContext = instance; - this.#observeCollectionItems(); }); + + this.#registerModalRoute(); } #observeCollectionItems() { @@ -41,15 +46,35 @@ export class UmbTreeItemChildrenTableCollectionViewElement extends UmbLitElement this.observe(this.#collectionContext.items, (items) => this.#createTableItems(items), 'umbCollectionItemsObserver'); } - #createTableItems(item: Array) { - this._tableItems = item.map((item) => { + #registerModalRoute() { + new UmbModalRouteRegistrationController(this, UMB_WORKSPACE_MODAL) + .addAdditionalPath(':entityType') + .onSetup((params) => { + return { data: { entityType: params.entityType, preset: {} } }; + }) + .observeRouteBuilder((routeBuilder) => { + this.#routeBuilder = routeBuilder; + + // NOTE: Configuring the observations AFTER the route builder is ready, + // otherwise there is a race condition and `#collectionContext.items` tends to win. [LK] + this.#observeCollectionItems(); + }); + } + + #createTableItems(items: Array) { + this._tableItems = items.map((item) => { + const editPath = this.#routeBuilder + ? this.#routeBuilder({ entityType: item.entityType }) + + UMB_EDIT_DOCUMENT_TYPE_WORKSPACE_PATH_PATTERN.generateLocal({ unique: item.unique }) + : ''; + return { id: item.unique, icon: item.isFolder && !item.icon ? 'icon-folder' : item.icon, data: [ { columnAlias: 'name', - value: item.name, + value: html``, }, ], }; From 2447864b856d0de97d6e3f83f2693a7da3d33584 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Thu, 10 Oct 2024 12:18:19 +0200 Subject: [PATCH 07/34] reorganize entity location --- .../entity-actions/create/manifests.ts | 3 +- .../documents/document-types/entity.ts | 4 +-- .../document-type.tree.server.data-source.ts | 7 ++--- .../document-types/tree/folder/entity.ts | 2 ++ .../document-types/tree/folder/index.ts | 1 + .../document-types/tree/folder/manifests.ts | 2 +- ...document-type-folder.server.data-source.ts | 2 +- .../document-type-folder-workspace.context.ts | 2 +- ...ent-type-folder.workspace.context-token.ts | 2 +- .../tree/folder/workspace/index.ts | 1 + .../tree/folder/workspace/manifests.ts | 2 +- .../tree/folder/workspace/paths.ts | 14 ++++++++++ .../document-types/tree/manifests.ts | 8 ++---- .../reload-tree-item-children/manifests.ts | 7 ++--- .../views/table.element.ts | 28 ++++++++++++------- 15 files changed, 51 insertions(+), 34 deletions(-) create mode 100644 src/packages/documents/document-types/tree/folder/entity.ts create mode 100644 src/packages/documents/document-types/tree/folder/workspace/paths.ts diff --git a/src/packages/documents/document-types/entity-actions/create/manifests.ts b/src/packages/documents/document-types/entity-actions/create/manifests.ts index 2879df41cf..59786bc3e6 100644 --- a/src/packages/documents/document-types/entity-actions/create/manifests.ts +++ b/src/packages/documents/document-types/entity-actions/create/manifests.ts @@ -1,4 +1,5 @@ -import { UMB_DOCUMENT_TYPE_FOLDER_ENTITY_TYPE, UMB_DOCUMENT_TYPE_ROOT_ENTITY_TYPE } from '../../entity.js'; +import { UMB_DOCUMENT_TYPE_ROOT_ENTITY_TYPE } from '../../entity.js'; +import { UMB_DOCUMENT_TYPE_FOLDER_ENTITY_TYPE } from '../../tree/index.js'; export const manifests: Array = [ { diff --git a/src/packages/documents/document-types/entity.ts b/src/packages/documents/document-types/entity.ts index 7279881dac..3e502f8058 100644 --- a/src/packages/documents/document-types/entity.ts +++ b/src/packages/documents/document-types/entity.ts @@ -1,10 +1,10 @@ +import type { UmbDocumentTypeFolderEntityType } from './tree/index.js'; + export const UMB_DOCUMENT_TYPE_ENTITY_TYPE = 'document-type'; export const UMB_DOCUMENT_TYPE_ROOT_ENTITY_TYPE = 'document-type-root'; -export const UMB_DOCUMENT_TYPE_FOLDER_ENTITY_TYPE = 'document-type-folder'; export type UmbDocumentTypeEntityType = typeof UMB_DOCUMENT_TYPE_ENTITY_TYPE; export type UmbDocumentTypeRootEntityType = typeof UMB_DOCUMENT_TYPE_ROOT_ENTITY_TYPE; -export type UmbDocumentTypeFolderEntityType = typeof UMB_DOCUMENT_TYPE_FOLDER_ENTITY_TYPE; export type UmbDocumentTypeEntityTypeUnion = | UmbDocumentTypeEntityType diff --git a/src/packages/documents/document-types/tree/document-type.tree.server.data-source.ts b/src/packages/documents/document-types/tree/document-type.tree.server.data-source.ts index afd9e20e58..7f8dbfa1b7 100644 --- a/src/packages/documents/document-types/tree/document-type.tree.server.data-source.ts +++ b/src/packages/documents/document-types/tree/document-type.tree.server.data-source.ts @@ -1,9 +1,6 @@ -import { - UMB_DOCUMENT_TYPE_ENTITY_TYPE, - UMB_DOCUMENT_TYPE_FOLDER_ENTITY_TYPE, - UMB_DOCUMENT_TYPE_ROOT_ENTITY_TYPE, -} from '../entity.js'; +import { UMB_DOCUMENT_TYPE_ENTITY_TYPE, UMB_DOCUMENT_TYPE_ROOT_ENTITY_TYPE } from '../entity.js'; import type { UmbDocumentTypeTreeItemModel } from './types.js'; +import { UMB_DOCUMENT_TYPE_FOLDER_ENTITY_TYPE } from './folder/index.js'; import type { UmbTreeAncestorsOfRequestArgs, UmbTreeChildrenOfRequestArgs, diff --git a/src/packages/documents/document-types/tree/folder/entity.ts b/src/packages/documents/document-types/tree/folder/entity.ts new file mode 100644 index 0000000000..7b75b94cde --- /dev/null +++ b/src/packages/documents/document-types/tree/folder/entity.ts @@ -0,0 +1,2 @@ +export const UMB_DOCUMENT_TYPE_FOLDER_ENTITY_TYPE = 'document-type-folder'; +export type UmbDocumentTypeFolderEntityType = typeof UMB_DOCUMENT_TYPE_FOLDER_ENTITY_TYPE; diff --git a/src/packages/documents/document-types/tree/folder/index.ts b/src/packages/documents/document-types/tree/folder/index.ts index 388ec6aca4..8bf4a043c8 100644 --- a/src/packages/documents/document-types/tree/folder/index.ts +++ b/src/packages/documents/document-types/tree/folder/index.ts @@ -1,2 +1,3 @@ export * from './repository/index.js'; export * from './workspace/index.js'; +export * from './entity.js'; diff --git a/src/packages/documents/document-types/tree/folder/manifests.ts b/src/packages/documents/document-types/tree/folder/manifests.ts index e22ac7c538..6ae803323f 100644 --- a/src/packages/documents/document-types/tree/folder/manifests.ts +++ b/src/packages/documents/document-types/tree/folder/manifests.ts @@ -1,8 +1,8 @@ -import { UMB_DOCUMENT_TYPE_FOLDER_ENTITY_TYPE } from '../../entity.js'; import { manifests as collectionManifests } from '../tree-item-children-collection/manifests.js'; import { manifests as repositoryManifests } from './repository/manifests.js'; import { manifests as workspaceManifests } from './workspace/manifests.js'; import { UMB_DOCUMENT_TYPE_FOLDER_REPOSITORY_ALIAS } from './repository/constants.js'; +import { UMB_DOCUMENT_TYPE_FOLDER_ENTITY_TYPE } from './entity.js'; export const manifests: Array = [ { diff --git a/src/packages/documents/document-types/tree/folder/repository/document-type-folder.server.data-source.ts b/src/packages/documents/document-types/tree/folder/repository/document-type-folder.server.data-source.ts index 4c088664be..0c30b4d911 100644 --- a/src/packages/documents/document-types/tree/folder/repository/document-type-folder.server.data-source.ts +++ b/src/packages/documents/document-types/tree/folder/repository/document-type-folder.server.data-source.ts @@ -1,4 +1,4 @@ -import { UMB_DOCUMENT_TYPE_FOLDER_ENTITY_TYPE } from '../../../entity.js'; +import { UMB_DOCUMENT_TYPE_FOLDER_ENTITY_TYPE } from '../entity.js'; import type { UmbFolderModel } from '@umbraco-cms/backoffice/tree'; import { DocumentTypeService } from '@umbraco-cms/backoffice/external/backend-api'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; diff --git a/src/packages/documents/document-types/tree/folder/workspace/document-type-folder-workspace.context.ts b/src/packages/documents/document-types/tree/folder/workspace/document-type-folder-workspace.context.ts index 81ee4598ca..670f2a1ddf 100644 --- a/src/packages/documents/document-types/tree/folder/workspace/document-type-folder-workspace.context.ts +++ b/src/packages/documents/document-types/tree/folder/workspace/document-type-folder-workspace.context.ts @@ -1,8 +1,8 @@ -import { UMB_DOCUMENT_TYPE_FOLDER_ENTITY_TYPE } from '../../../entity.js'; import { UMB_DOCUMENT_TYPE_FOLDER_REPOSITORY_ALIAS, type UmbDocumentTypeFolderRepository, } from '../repository/index.js'; +import { UMB_DOCUMENT_TYPE_FOLDER_ENTITY_TYPE } from '../entity.js'; import { UMB_DOCUMENT_TYPE_FOLDER_WORKSPACE_ALIAS } from './constants.js'; import { UmbDocumentTypeFolderWorkspaceEditorElement } from './document-type-folder-editor.element.js'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; diff --git a/src/packages/documents/document-types/tree/folder/workspace/document-type-folder.workspace.context-token.ts b/src/packages/documents/document-types/tree/folder/workspace/document-type-folder.workspace.context-token.ts index f81ff2e17c..8f59d8fd8f 100644 --- a/src/packages/documents/document-types/tree/folder/workspace/document-type-folder.workspace.context-token.ts +++ b/src/packages/documents/document-types/tree/folder/workspace/document-type-folder.workspace.context-token.ts @@ -1,4 +1,4 @@ -import { UMB_DOCUMENT_TYPE_FOLDER_ENTITY_TYPE } from '../../../entity.js'; +import { UMB_DOCUMENT_TYPE_FOLDER_ENTITY_TYPE } from '../entity.js'; import type { UmbDocumentTypeFolderWorkspaceContext } from './document-type-folder-workspace.context.js'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; import type { UmbWorkspaceContext } from '@umbraco-cms/backoffice/workspace'; diff --git a/src/packages/documents/document-types/tree/folder/workspace/index.ts b/src/packages/documents/document-types/tree/folder/workspace/index.ts index 4f07201dcf..14b140114e 100644 --- a/src/packages/documents/document-types/tree/folder/workspace/index.ts +++ b/src/packages/documents/document-types/tree/folder/workspace/index.ts @@ -1 +1,2 @@ export * from './constants.js'; +export * from './paths.js'; diff --git a/src/packages/documents/document-types/tree/folder/workspace/manifests.ts b/src/packages/documents/document-types/tree/folder/workspace/manifests.ts index 52c211ec2f..0983b14e56 100644 --- a/src/packages/documents/document-types/tree/folder/workspace/manifests.ts +++ b/src/packages/documents/document-types/tree/folder/workspace/manifests.ts @@ -1,4 +1,4 @@ -import { UMB_DOCUMENT_TYPE_FOLDER_ENTITY_TYPE } from '../../../entity.js'; +import { UMB_DOCUMENT_TYPE_FOLDER_ENTITY_TYPE } from '../entity.js'; import { UMB_DOCUMENT_TYPE_FOLDER_WORKSPACE_ALIAS } from './constants.js'; import { UmbSubmitWorkspaceAction } from '@umbraco-cms/backoffice/workspace'; diff --git a/src/packages/documents/document-types/tree/folder/workspace/paths.ts b/src/packages/documents/document-types/tree/folder/workspace/paths.ts new file mode 100644 index 0000000000..5a9b113494 --- /dev/null +++ b/src/packages/documents/document-types/tree/folder/workspace/paths.ts @@ -0,0 +1,14 @@ +import { UMB_DOCUMENT_TYPE_FOLDER_ENTITY_TYPE } from '../entity.js'; +import { UmbPathPattern } from '@umbraco-cms/backoffice/router'; +import { UMB_SETTINGS_SECTION_PATHNAME } from '@umbraco-cms/backoffice/settings'; +import { UMB_WORKSPACE_PATH_PATTERN } from '@umbraco-cms/backoffice/workspace'; + +export const UMB_DOCUMENT_TYPE_FOLDER_WORKSPACE_PATH = UMB_WORKSPACE_PATH_PATTERN.generateAbsolute({ + sectionName: UMB_SETTINGS_SECTION_PATHNAME, + entityType: UMB_DOCUMENT_TYPE_FOLDER_ENTITY_TYPE, +}); + +export const UMB_EDIT_DOCUMENT_TYPE_FOLDER_WORKSPACE_PATH_PATTERN = new UmbPathPattern<{ unique: string }>( + 'edit/:unique', + UMB_DOCUMENT_TYPE_FOLDER_WORKSPACE_PATH, +); diff --git a/src/packages/documents/document-types/tree/manifests.ts b/src/packages/documents/document-types/tree/manifests.ts index 497519bcd3..50402bcba1 100644 --- a/src/packages/documents/document-types/tree/manifests.ts +++ b/src/packages/documents/document-types/tree/manifests.ts @@ -1,15 +1,11 @@ -import { - UMB_DOCUMENT_TYPE_ENTITY_TYPE, - UMB_DOCUMENT_TYPE_FOLDER_ENTITY_TYPE, - UMB_DOCUMENT_TYPE_ROOT_ENTITY_TYPE, -} from '../entity.js'; +import { UMB_DOCUMENT_TYPE_ENTITY_TYPE, UMB_DOCUMENT_TYPE_ROOT_ENTITY_TYPE } from '../entity.js'; import { UMB_DOCUMENT_TYPE_ROOT_WORKSPACE_ALIAS } from '../workspace/document-type-root/index.js'; import { UMB_DOCUMENT_TYPE_TREE_ALIAS, UMB_DOCUMENT_TYPE_TREE_REPOSITORY_ALIAS, UMB_DOCUMENT_TYPE_TREE_STORE_ALIAS, } from './constants.js'; -import { UMB_DOCUMENT_TYPE_FOLDER_WORKSPACE_ALIAS } from './folder/index.js'; +import { UMB_DOCUMENT_TYPE_FOLDER_ENTITY_TYPE, UMB_DOCUMENT_TYPE_FOLDER_WORKSPACE_ALIAS } from './folder/index.js'; import { manifests as folderManifests } from './folder/manifests.js'; import { manifests as reloadManifests } from './reload-tree-item-children/manifests.js'; import { UMB_DOCUMENT_TYPE_TREE_ITEM_CHILDREN_COLLECTION_ALIAS } from './tree-item-children-collection/index.js'; diff --git a/src/packages/documents/document-types/tree/reload-tree-item-children/manifests.ts b/src/packages/documents/document-types/tree/reload-tree-item-children/manifests.ts index 550364e51b..6f2ec7ed71 100644 --- a/src/packages/documents/document-types/tree/reload-tree-item-children/manifests.ts +++ b/src/packages/documents/document-types/tree/reload-tree-item-children/manifests.ts @@ -1,8 +1,5 @@ -import { - UMB_DOCUMENT_TYPE_ROOT_ENTITY_TYPE, - UMB_DOCUMENT_TYPE_ENTITY_TYPE, - UMB_DOCUMENT_TYPE_FOLDER_ENTITY_TYPE, -} from '../../entity.js'; +import { UMB_DOCUMENT_TYPE_ROOT_ENTITY_TYPE, UMB_DOCUMENT_TYPE_ENTITY_TYPE } from '../../entity.js'; +import { UMB_DOCUMENT_TYPE_FOLDER_ENTITY_TYPE } from '../folder/index.js'; export const manifests: Array = [ { diff --git a/src/packages/documents/document-types/tree/tree-item-children-collection/views/table.element.ts b/src/packages/documents/document-types/tree/tree-item-children-collection/views/table.element.ts index 505fed3b78..de1c6d76fb 100644 --- a/src/packages/documents/document-types/tree/tree-item-children-collection/views/table.element.ts +++ b/src/packages/documents/document-types/tree/tree-item-children-collection/views/table.element.ts @@ -1,4 +1,5 @@ import { UMB_EDIT_DOCUMENT_TYPE_WORKSPACE_PATH_PATTERN } from '../../../paths.js'; +import { UMB_EDIT_DOCUMENT_TYPE_FOLDER_WORKSPACE_PATH_PATTERN } from '../../folder/index.js'; import type { UmbDefaultCollectionContext } from '@umbraco-cms/backoffice/collection'; import { UMB_COLLECTION_CONTEXT } from '@umbraco-cms/backoffice/collection'; import type { UmbTableColumn, UmbTableConfig, UmbTableItem } from '@umbraco-cms/backoffice/components'; @@ -41,11 +42,6 @@ export class UmbTreeItemChildrenTableCollectionViewElement extends UmbLitElement this.#registerModalRoute(); } - #observeCollectionItems() { - if (!this.#collectionContext) return; - this.observe(this.#collectionContext.items, (items) => this.#createTableItems(items), 'umbCollectionItemsObserver'); - } - #registerModalRoute() { new UmbModalRouteRegistrationController(this, UMB_WORKSPACE_MODAL) .addAdditionalPath(':entityType') @@ -61,12 +57,22 @@ export class UmbTreeItemChildrenTableCollectionViewElement extends UmbLitElement }); } + #observeCollectionItems() { + if (!this.#collectionContext) return; + this.observe(this.#collectionContext.items, (items) => this.#createTableItems(items), 'umbCollectionItemsObserver'); + } + #createTableItems(items: Array) { + const routeBuilder = this.#routeBuilder; + if (!routeBuilder) throw new Error('Route builder not ready'); + this._tableItems = items.map((item) => { - const editPath = this.#routeBuilder - ? this.#routeBuilder({ entityType: item.entityType }) + - UMB_EDIT_DOCUMENT_TYPE_WORKSPACE_PATH_PATTERN.generateLocal({ unique: item.unique }) - : ''; + const modalEditPath = + routeBuilder({ entityType: item.entityType }) + + UMB_EDIT_DOCUMENT_TYPE_WORKSPACE_PATH_PATTERN.generateLocal({ unique: item.unique }); + const inlineEditPath = UMB_EDIT_DOCUMENT_TYPE_FOLDER_WORKSPACE_PATH_PATTERN.generateAbsolute({ + unique: item.unique, + }); return { id: item.unique, @@ -74,7 +80,9 @@ export class UmbTreeItemChildrenTableCollectionViewElement extends UmbLitElement data: [ { columnAlias: 'name', - value: html``, + value: html``, }, ], }; From 89c9f54b6c7d41495ac00b60e984150e3f93ff02 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Fri, 11 Oct 2024 12:27:28 +0200 Subject: [PATCH 08/34] clean up --- .../tree-item-children-collection/constants.ts | 2 -- .../tree/tree-item-children-collection/index.ts | 1 + .../tree-item-children-collection/manifests.ts | 14 ++++---------- .../repository/constants.ts | 2 ++ ...ype-tree-item-children-collection.repository.ts | 2 +- .../repository/index.ts | 1 + .../repository/manifests.ts | 10 ++++++++++ ...ype-tree-item-table-collection-view.element.ts} | 8 ++++---- .../views/manifests.ts | 6 +++--- 9 files changed, 26 insertions(+), 20 deletions(-) create mode 100644 src/packages/documents/document-types/tree/tree-item-children-collection/repository/constants.ts rename src/packages/documents/document-types/tree/tree-item-children-collection/{ => repository}/document-type-tree-item-children-collection.repository.ts (94%) create mode 100644 src/packages/documents/document-types/tree/tree-item-children-collection/repository/index.ts create mode 100644 src/packages/documents/document-types/tree/tree-item-children-collection/repository/manifests.ts rename src/packages/documents/document-types/tree/tree-item-children-collection/views/{table.element.ts => document-type-tree-item-table-collection-view.element.ts} (91%) diff --git a/src/packages/documents/document-types/tree/tree-item-children-collection/constants.ts b/src/packages/documents/document-types/tree/tree-item-children-collection/constants.ts index 800c987d78..906ddd8683 100644 --- a/src/packages/documents/document-types/tree/tree-item-children-collection/constants.ts +++ b/src/packages/documents/document-types/tree/tree-item-children-collection/constants.ts @@ -1,3 +1 @@ export const UMB_DOCUMENT_TYPE_TREE_ITEM_CHILDREN_COLLECTION_ALIAS = 'Umb.Collection.DocumentType.TreeItemChildren'; -export const UMB_DOCUMENT_TYPE_TREE_ITEM_CHILDREN_COLLECTION_REPOSITORY_ALIAS = - 'Umb.Repository.DocumentType.TreeItemChildrenCollection'; diff --git a/src/packages/documents/document-types/tree/tree-item-children-collection/index.ts b/src/packages/documents/document-types/tree/tree-item-children-collection/index.ts index 4f07201dcf..6c11f6abbb 100644 --- a/src/packages/documents/document-types/tree/tree-item-children-collection/index.ts +++ b/src/packages/documents/document-types/tree/tree-item-children-collection/index.ts @@ -1 +1,2 @@ export * from './constants.js'; +export * from './repository/index.js'; diff --git a/src/packages/documents/document-types/tree/tree-item-children-collection/manifests.ts b/src/packages/documents/document-types/tree/tree-item-children-collection/manifests.ts index 2c7e7991ed..8f03eaf7df 100644 --- a/src/packages/documents/document-types/tree/tree-item-children-collection/manifests.ts +++ b/src/packages/documents/document-types/tree/tree-item-children-collection/manifests.ts @@ -1,8 +1,7 @@ -import { - UMB_DOCUMENT_TYPE_TREE_ITEM_CHILDREN_COLLECTION_ALIAS, - UMB_DOCUMENT_TYPE_TREE_ITEM_CHILDREN_COLLECTION_REPOSITORY_ALIAS, -} from './constants.js'; import { manifests as viewManifests } from './views/manifests.js'; +import { manifests as repositoryManifests } from './repository/manifests.js'; +import { UMB_DOCUMENT_TYPE_TREE_ITEM_CHILDREN_COLLECTION_ALIAS } from './constants.js'; +import { UMB_DOCUMENT_TYPE_TREE_ITEM_CHILDREN_COLLECTION_REPOSITORY_ALIAS } from './repository/index.js'; export const manifests: Array = [ { @@ -14,11 +13,6 @@ export const manifests: Array = [ repositoryAlias: UMB_DOCUMENT_TYPE_TREE_ITEM_CHILDREN_COLLECTION_REPOSITORY_ALIAS, }, }, - { - type: 'repository', - alias: UMB_DOCUMENT_TYPE_TREE_ITEM_CHILDREN_COLLECTION_REPOSITORY_ALIAS, - name: 'Document Type Tree Item Children Collection Repository', - api: () => import('./document-type-tree-item-children-collection.repository.js'), - }, ...viewManifests, + ...repositoryManifests, ]; diff --git a/src/packages/documents/document-types/tree/tree-item-children-collection/repository/constants.ts b/src/packages/documents/document-types/tree/tree-item-children-collection/repository/constants.ts new file mode 100644 index 0000000000..2f9a0ac272 --- /dev/null +++ b/src/packages/documents/document-types/tree/tree-item-children-collection/repository/constants.ts @@ -0,0 +1,2 @@ +export const UMB_DOCUMENT_TYPE_TREE_ITEM_CHILDREN_COLLECTION_REPOSITORY_ALIAS = + 'Umb.Repository.DocumentType.TreeItemChildrenCollection'; diff --git a/src/packages/documents/document-types/tree/tree-item-children-collection/document-type-tree-item-children-collection.repository.ts b/src/packages/documents/document-types/tree/tree-item-children-collection/repository/document-type-tree-item-children-collection.repository.ts similarity index 94% rename from src/packages/documents/document-types/tree/tree-item-children-collection/document-type-tree-item-children-collection.repository.ts rename to src/packages/documents/document-types/tree/tree-item-children-collection/repository/document-type-tree-item-children-collection.repository.ts index a23282f427..ea0c71b3b7 100644 --- a/src/packages/documents/document-types/tree/tree-item-children-collection/document-type-tree-item-children-collection.repository.ts +++ b/src/packages/documents/document-types/tree/tree-item-children-collection/repository/document-type-tree-item-children-collection.repository.ts @@ -1,4 +1,4 @@ -import { UmbDocumentTypeTreeRepository } from '../document-type-tree.repository.js'; +import { UmbDocumentTypeTreeRepository } from '../../document-type-tree.repository.js'; import type { UmbCollectionFilterModel, UmbCollectionRepository } from '@umbraco-cms/backoffice/collection'; import { UmbRepositoryBase } from '@umbraco-cms/backoffice/repository'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; diff --git a/src/packages/documents/document-types/tree/tree-item-children-collection/repository/index.ts b/src/packages/documents/document-types/tree/tree-item-children-collection/repository/index.ts new file mode 100644 index 0000000000..4f07201dcf --- /dev/null +++ b/src/packages/documents/document-types/tree/tree-item-children-collection/repository/index.ts @@ -0,0 +1 @@ +export * from './constants.js'; diff --git a/src/packages/documents/document-types/tree/tree-item-children-collection/repository/manifests.ts b/src/packages/documents/document-types/tree/tree-item-children-collection/repository/manifests.ts new file mode 100644 index 0000000000..5b37fad314 --- /dev/null +++ b/src/packages/documents/document-types/tree/tree-item-children-collection/repository/manifests.ts @@ -0,0 +1,10 @@ +import { UMB_DOCUMENT_TYPE_TREE_ITEM_CHILDREN_COLLECTION_REPOSITORY_ALIAS } from './constants.js'; + +export const manifests: Array = [ + { + type: 'repository', + alias: UMB_DOCUMENT_TYPE_TREE_ITEM_CHILDREN_COLLECTION_REPOSITORY_ALIAS, + name: 'Document Type Tree Item Children Collection Repository', + api: () => import('./document-type-tree-item-children-collection.repository.js'), + }, +]; diff --git a/src/packages/documents/document-types/tree/tree-item-children-collection/views/table.element.ts b/src/packages/documents/document-types/tree/tree-item-children-collection/views/document-type-tree-item-table-collection-view.element.ts similarity index 91% rename from src/packages/documents/document-types/tree/tree-item-children-collection/views/table.element.ts rename to src/packages/documents/document-types/tree/tree-item-children-collection/views/document-type-tree-item-table-collection-view.element.ts index de1c6d76fb..333370e1cc 100644 --- a/src/packages/documents/document-types/tree/tree-item-children-collection/views/table.element.ts +++ b/src/packages/documents/document-types/tree/tree-item-children-collection/views/document-type-tree-item-table-collection-view.element.ts @@ -10,9 +10,9 @@ import type { UmbTreeItemModel } from '@umbraco-cms/backoffice/tree'; import { UmbModalRouteRegistrationController, type UmbModalRouteBuilder } from '@umbraco-cms/backoffice/router'; import { UMB_WORKSPACE_MODAL } from '@umbraco-cms/backoffice/workspace'; -const elementName = 'umb-tree-item-children-table-collection-view'; +const elementName = 'umb-document-type-tree-item-table-collection-view'; @customElement(elementName) -export class UmbTreeItemChildrenTableCollectionViewElement extends UmbLitElement { +export class UmbDocumentTypeTreeItemTableCollectionViewElement extends UmbLitElement { @state() private _tableConfig: UmbTableConfig = { allowSelection: false, @@ -106,10 +106,10 @@ export class UmbTreeItemChildrenTableCollectionViewElement extends UmbLitElement ]; } -export default UmbTreeItemChildrenTableCollectionViewElement; +export { UmbDocumentTypeTreeItemTableCollectionViewElement as element }; declare global { interface HTMLElementTagNameMap { - [elementName]: UmbTreeItemChildrenTableCollectionViewElement; + [elementName]: UmbDocumentTypeTreeItemTableCollectionViewElement; } } diff --git a/src/packages/documents/document-types/tree/tree-item-children-collection/views/manifests.ts b/src/packages/documents/document-types/tree/tree-item-children-collection/views/manifests.ts index 8b8cc044f7..489068637d 100644 --- a/src/packages/documents/document-types/tree/tree-item-children-collection/views/manifests.ts +++ b/src/packages/documents/document-types/tree/tree-item-children-collection/views/manifests.ts @@ -4,9 +4,9 @@ import { UMB_COLLECTION_ALIAS_CONDITION } from '@umbraco-cms/backoffice/collecti export const manifests: Array = [ { type: 'collectionView', - alias: 'Umb.CollectionView.DocumentType.Folder.Table', - name: 'Document Type Folder Children Table Collection View', - element: () => import('./table.element.js'), + alias: 'Umb.CollectionView.DocumentType.TreeItem.Table', + name: 'Document Type Tree Item Table Collection View', + element: () => import('./document-type-tree-item-table-collection-view.element.js'), weight: 300, meta: { label: 'Table', From cd928e214c526d613b66e1c7e1e95fd00ab0aa48 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Fri, 11 Oct 2024 12:55:49 +0200 Subject: [PATCH 09/34] clean up --- .../documents/document-types/tree/folder/manifests.ts | 2 +- src/packages/documents/document-types/tree/index.ts | 2 +- src/packages/documents/document-types/tree/manifests.ts | 4 ++-- .../collection}/constants.ts | 0 .../collection}/index.ts | 0 .../collection}/manifests.ts | 0 .../collection}/repository/constants.ts | 0 .../document-type-tree-item-children-collection.repository.ts | 2 +- .../collection}/repository/index.ts | 0 .../collection}/repository/manifests.ts | 0 .../collection}/types.ts | 0 .../document-type-tree-item-table-collection-view.element.ts | 4 ++-- .../collection}/views/manifests.ts | 0 .../document-types/tree/tree-item-children/manifests.ts | 4 ++++ .../reload-entity-action}/manifests.ts | 4 ++-- 15 files changed, 13 insertions(+), 9 deletions(-) rename src/packages/documents/document-types/tree/{tree-item-children-collection => tree-item-children/collection}/constants.ts (100%) rename src/packages/documents/document-types/tree/{tree-item-children-collection => tree-item-children/collection}/index.ts (100%) rename src/packages/documents/document-types/tree/{tree-item-children-collection => tree-item-children/collection}/manifests.ts (100%) rename src/packages/documents/document-types/tree/{tree-item-children-collection => tree-item-children/collection}/repository/constants.ts (100%) rename src/packages/documents/document-types/tree/{tree-item-children-collection => tree-item-children/collection}/repository/document-type-tree-item-children-collection.repository.ts (94%) rename src/packages/documents/document-types/tree/{tree-item-children-collection => tree-item-children/collection}/repository/index.ts (100%) rename src/packages/documents/document-types/tree/{tree-item-children-collection => tree-item-children/collection}/repository/manifests.ts (100%) rename src/packages/documents/document-types/tree/{tree-item-children-collection => tree-item-children/collection}/types.ts (100%) rename src/packages/documents/document-types/tree/{tree-item-children-collection => tree-item-children/collection}/views/document-type-tree-item-table-collection-view.element.ts (98%) rename src/packages/documents/document-types/tree/{tree-item-children-collection => tree-item-children/collection}/views/manifests.ts (100%) create mode 100644 src/packages/documents/document-types/tree/tree-item-children/manifests.ts rename src/packages/documents/document-types/tree/{reload-tree-item-children => tree-item-children/reload-entity-action}/manifests.ts (79%) diff --git a/src/packages/documents/document-types/tree/folder/manifests.ts b/src/packages/documents/document-types/tree/folder/manifests.ts index 6ae803323f..0ed7c51703 100644 --- a/src/packages/documents/document-types/tree/folder/manifests.ts +++ b/src/packages/documents/document-types/tree/folder/manifests.ts @@ -1,4 +1,4 @@ -import { manifests as collectionManifests } from '../tree-item-children-collection/manifests.js'; +import { manifests as collectionManifests } from '../tree-item-children/collection/manifests.js'; import { manifests as repositoryManifests } from './repository/manifests.js'; import { manifests as workspaceManifests } from './workspace/manifests.js'; import { UMB_DOCUMENT_TYPE_FOLDER_REPOSITORY_ALIAS } from './repository/constants.js'; diff --git a/src/packages/documents/document-types/tree/index.ts b/src/packages/documents/document-types/tree/index.ts index 4c002c1c02..7012f414b5 100644 --- a/src/packages/documents/document-types/tree/index.ts +++ b/src/packages/documents/document-types/tree/index.ts @@ -1,4 +1,4 @@ export { UMB_DOCUMENT_TYPE_TREE_STORE_CONTEXT } from './document-type.tree.store.context-token.js'; export * from './constants.js'; export * from './folder/index.js'; -export * from './tree-item-children-collection/index.js'; +export * from './tree-item-children/collection/index.js'; diff --git a/src/packages/documents/document-types/tree/manifests.ts b/src/packages/documents/document-types/tree/manifests.ts index 50402bcba1..30ef8c1313 100644 --- a/src/packages/documents/document-types/tree/manifests.ts +++ b/src/packages/documents/document-types/tree/manifests.ts @@ -7,8 +7,8 @@ import { } from './constants.js'; import { UMB_DOCUMENT_TYPE_FOLDER_ENTITY_TYPE, UMB_DOCUMENT_TYPE_FOLDER_WORKSPACE_ALIAS } from './folder/index.js'; import { manifests as folderManifests } from './folder/manifests.js'; -import { manifests as reloadManifests } from './reload-tree-item-children/manifests.js'; -import { UMB_DOCUMENT_TYPE_TREE_ITEM_CHILDREN_COLLECTION_ALIAS } from './tree-item-children-collection/index.js'; +import { manifests as reloadManifests } from './tree-item-children/reload-entity-action/manifests.js'; +import { UMB_DOCUMENT_TYPE_TREE_ITEM_CHILDREN_COLLECTION_ALIAS } from './tree-item-children/collection/index.js'; export const manifests: Array = [ { diff --git a/src/packages/documents/document-types/tree/tree-item-children-collection/constants.ts b/src/packages/documents/document-types/tree/tree-item-children/collection/constants.ts similarity index 100% rename from src/packages/documents/document-types/tree/tree-item-children-collection/constants.ts rename to src/packages/documents/document-types/tree/tree-item-children/collection/constants.ts diff --git a/src/packages/documents/document-types/tree/tree-item-children-collection/index.ts b/src/packages/documents/document-types/tree/tree-item-children/collection/index.ts similarity index 100% rename from src/packages/documents/document-types/tree/tree-item-children-collection/index.ts rename to src/packages/documents/document-types/tree/tree-item-children/collection/index.ts diff --git a/src/packages/documents/document-types/tree/tree-item-children-collection/manifests.ts b/src/packages/documents/document-types/tree/tree-item-children/collection/manifests.ts similarity index 100% rename from src/packages/documents/document-types/tree/tree-item-children-collection/manifests.ts rename to src/packages/documents/document-types/tree/tree-item-children/collection/manifests.ts diff --git a/src/packages/documents/document-types/tree/tree-item-children-collection/repository/constants.ts b/src/packages/documents/document-types/tree/tree-item-children/collection/repository/constants.ts similarity index 100% rename from src/packages/documents/document-types/tree/tree-item-children-collection/repository/constants.ts rename to src/packages/documents/document-types/tree/tree-item-children/collection/repository/constants.ts diff --git a/src/packages/documents/document-types/tree/tree-item-children-collection/repository/document-type-tree-item-children-collection.repository.ts b/src/packages/documents/document-types/tree/tree-item-children/collection/repository/document-type-tree-item-children-collection.repository.ts similarity index 94% rename from src/packages/documents/document-types/tree/tree-item-children-collection/repository/document-type-tree-item-children-collection.repository.ts rename to src/packages/documents/document-types/tree/tree-item-children/collection/repository/document-type-tree-item-children-collection.repository.ts index ea0c71b3b7..f9fcde7d27 100644 --- a/src/packages/documents/document-types/tree/tree-item-children-collection/repository/document-type-tree-item-children-collection.repository.ts +++ b/src/packages/documents/document-types/tree/tree-item-children/collection/repository/document-type-tree-item-children-collection.repository.ts @@ -1,4 +1,4 @@ -import { UmbDocumentTypeTreeRepository } from '../../document-type-tree.repository.js'; +import { UmbDocumentTypeTreeRepository } from '../../../document-type-tree.repository.js'; import type { UmbCollectionFilterModel, UmbCollectionRepository } from '@umbraco-cms/backoffice/collection'; import { UmbRepositoryBase } from '@umbraco-cms/backoffice/repository'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; diff --git a/src/packages/documents/document-types/tree/tree-item-children-collection/repository/index.ts b/src/packages/documents/document-types/tree/tree-item-children/collection/repository/index.ts similarity index 100% rename from src/packages/documents/document-types/tree/tree-item-children-collection/repository/index.ts rename to src/packages/documents/document-types/tree/tree-item-children/collection/repository/index.ts diff --git a/src/packages/documents/document-types/tree/tree-item-children-collection/repository/manifests.ts b/src/packages/documents/document-types/tree/tree-item-children/collection/repository/manifests.ts similarity index 100% rename from src/packages/documents/document-types/tree/tree-item-children-collection/repository/manifests.ts rename to src/packages/documents/document-types/tree/tree-item-children/collection/repository/manifests.ts diff --git a/src/packages/documents/document-types/tree/tree-item-children-collection/types.ts b/src/packages/documents/document-types/tree/tree-item-children/collection/types.ts similarity index 100% rename from src/packages/documents/document-types/tree/tree-item-children-collection/types.ts rename to src/packages/documents/document-types/tree/tree-item-children/collection/types.ts diff --git a/src/packages/documents/document-types/tree/tree-item-children-collection/views/document-type-tree-item-table-collection-view.element.ts b/src/packages/documents/document-types/tree/tree-item-children/collection/views/document-type-tree-item-table-collection-view.element.ts similarity index 98% rename from src/packages/documents/document-types/tree/tree-item-children-collection/views/document-type-tree-item-table-collection-view.element.ts rename to src/packages/documents/document-types/tree/tree-item-children/collection/views/document-type-tree-item-table-collection-view.element.ts index 333370e1cc..8273ad9979 100644 --- a/src/packages/documents/document-types/tree/tree-item-children-collection/views/document-type-tree-item-table-collection-view.element.ts +++ b/src/packages/documents/document-types/tree/tree-item-children/collection/views/document-type-tree-item-table-collection-view.element.ts @@ -1,5 +1,5 @@ -import { UMB_EDIT_DOCUMENT_TYPE_WORKSPACE_PATH_PATTERN } from '../../../paths.js'; -import { UMB_EDIT_DOCUMENT_TYPE_FOLDER_WORKSPACE_PATH_PATTERN } from '../../folder/index.js'; +import { UMB_EDIT_DOCUMENT_TYPE_WORKSPACE_PATH_PATTERN } from '../../../../paths.js'; +import { UMB_EDIT_DOCUMENT_TYPE_FOLDER_WORKSPACE_PATH_PATTERN } from '../../../folder/index.js'; import type { UmbDefaultCollectionContext } from '@umbraco-cms/backoffice/collection'; import { UMB_COLLECTION_CONTEXT } from '@umbraco-cms/backoffice/collection'; import type { UmbTableColumn, UmbTableConfig, UmbTableItem } from '@umbraco-cms/backoffice/components'; diff --git a/src/packages/documents/document-types/tree/tree-item-children-collection/views/manifests.ts b/src/packages/documents/document-types/tree/tree-item-children/collection/views/manifests.ts similarity index 100% rename from src/packages/documents/document-types/tree/tree-item-children-collection/views/manifests.ts rename to src/packages/documents/document-types/tree/tree-item-children/collection/views/manifests.ts diff --git a/src/packages/documents/document-types/tree/tree-item-children/manifests.ts b/src/packages/documents/document-types/tree/tree-item-children/manifests.ts new file mode 100644 index 0000000000..b6ea5ab54e --- /dev/null +++ b/src/packages/documents/document-types/tree/tree-item-children/manifests.ts @@ -0,0 +1,4 @@ +import { manifests as collectionManifests } from './collection/manifests.js'; +import { manifests as reloadEntityActionManifests } from './reload-entity-action/manifests.js'; + +export const manifests: Array = [...collectionManifests, ...reloadEntityActionManifests]; diff --git a/src/packages/documents/document-types/tree/reload-tree-item-children/manifests.ts b/src/packages/documents/document-types/tree/tree-item-children/reload-entity-action/manifests.ts similarity index 79% rename from src/packages/documents/document-types/tree/reload-tree-item-children/manifests.ts rename to src/packages/documents/document-types/tree/tree-item-children/reload-entity-action/manifests.ts index 6f2ec7ed71..8f0ada4ebc 100644 --- a/src/packages/documents/document-types/tree/reload-tree-item-children/manifests.ts +++ b/src/packages/documents/document-types/tree/tree-item-children/reload-entity-action/manifests.ts @@ -1,5 +1,5 @@ -import { UMB_DOCUMENT_TYPE_ROOT_ENTITY_TYPE, UMB_DOCUMENT_TYPE_ENTITY_TYPE } from '../../entity.js'; -import { UMB_DOCUMENT_TYPE_FOLDER_ENTITY_TYPE } from '../folder/index.js'; +import { UMB_DOCUMENT_TYPE_ROOT_ENTITY_TYPE, UMB_DOCUMENT_TYPE_ENTITY_TYPE } from '../../../entity.js'; +import { UMB_DOCUMENT_TYPE_FOLDER_ENTITY_TYPE } from '../../folder/index.js'; export const manifests: Array = [ { From 2641f642f36782b295d567a35b079d432b78f943 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Fri, 11 Oct 2024 14:10:40 +0200 Subject: [PATCH 10/34] Update manifests.ts --- src/packages/documents/document-types/tree/manifests.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/packages/documents/document-types/tree/manifests.ts b/src/packages/documents/document-types/tree/manifests.ts index 30ef8c1313..47e012f97a 100644 --- a/src/packages/documents/document-types/tree/manifests.ts +++ b/src/packages/documents/document-types/tree/manifests.ts @@ -7,7 +7,7 @@ import { } from './constants.js'; import { UMB_DOCUMENT_TYPE_FOLDER_ENTITY_TYPE, UMB_DOCUMENT_TYPE_FOLDER_WORKSPACE_ALIAS } from './folder/index.js'; import { manifests as folderManifests } from './folder/manifests.js'; -import { manifests as reloadManifests } from './tree-item-children/reload-entity-action/manifests.js'; +import { manifests as treeItemChildrenManifests } from './tree-item-children/manifests.js'; import { UMB_DOCUMENT_TYPE_TREE_ITEM_CHILDREN_COLLECTION_ALIAS } from './tree-item-children/collection/index.js'; export const manifests: Array = [ @@ -62,5 +62,5 @@ export const manifests: Array = [ ], }, ...folderManifests, - ...reloadManifests, + ...treeItemChildrenManifests, ]; From cf025685f88f5b00c781e269370e002b24869669 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Fri, 11 Oct 2024 14:25:53 +0200 Subject: [PATCH 11/34] clean up --- ...ment-type-tree-item-children-collection.repository.ts | 9 --------- 1 file changed, 9 deletions(-) diff --git a/src/packages/documents/document-types/tree/tree-item-children/collection/repository/document-type-tree-item-children-collection.repository.ts b/src/packages/documents/document-types/tree/tree-item-children/collection/repository/document-type-tree-item-children-collection.repository.ts index f9fcde7d27..fb8d23aeee 100644 --- a/src/packages/documents/document-types/tree/tree-item-children/collection/repository/document-type-tree-item-children-collection.repository.ts +++ b/src/packages/documents/document-types/tree/tree-item-children/collection/repository/document-type-tree-item-children-collection.repository.ts @@ -1,7 +1,6 @@ import { UmbDocumentTypeTreeRepository } from '../../../document-type-tree.repository.js'; import type { UmbCollectionFilterModel, UmbCollectionRepository } from '@umbraco-cms/backoffice/collection'; import { UmbRepositoryBase } from '@umbraco-cms/backoffice/repository'; -import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; import { UMB_ENTITY_CONTEXT, type UmbEntityModel } from '@umbraco-cms/backoffice/entity'; export class UmbDocumentTypeTreeItemChildrenCollectionRepository @@ -10,14 +9,6 @@ export class UmbDocumentTypeTreeItemChildrenCollectionRepository { #treeRepository = new UmbDocumentTypeTreeRepository(this); - constructor(host: UmbControllerHost) { - super(host); - - this.consumeContext(UMB_ENTITY_CONTEXT, (entityContext) => { - console.log(entityContext); - }); - } - async requestCollection(filter: UmbCollectionFilterModel) { const entityContext = await this.getContext(UMB_ENTITY_CONTEXT); if (!entityContext) throw new Error('Entity context not found'); From 7e5e2c546c569bd24b519464749517e63fa15f52 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Fri, 11 Oct 2024 14:25:59 +0200 Subject: [PATCH 12/34] remove double export --- src/packages/documents/document-types/tree/folder/manifests.ts | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/packages/documents/document-types/tree/folder/manifests.ts b/src/packages/documents/document-types/tree/folder/manifests.ts index 0ed7c51703..c8a24ff157 100644 --- a/src/packages/documents/document-types/tree/folder/manifests.ts +++ b/src/packages/documents/document-types/tree/folder/manifests.ts @@ -1,4 +1,3 @@ -import { manifests as collectionManifests } from '../tree-item-children/collection/manifests.js'; import { manifests as repositoryManifests } from './repository/manifests.js'; import { manifests as workspaceManifests } from './workspace/manifests.js'; import { UMB_DOCUMENT_TYPE_FOLDER_REPOSITORY_ALIAS } from './repository/constants.js'; @@ -25,7 +24,6 @@ export const manifests: Array = [ folderRepositoryAlias: UMB_DOCUMENT_TYPE_FOLDER_REPOSITORY_ALIAS, }, }, - ...collectionManifests, ...repositoryManifests, ...workspaceManifests, ]; From 7894a80b27dad34c6fa14d543d1c71f0fbb68cc5 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Fri, 11 Oct 2024 14:29:13 +0200 Subject: [PATCH 13/34] fix types --- .../core/localization/stories/localize.element.stories.ts | 2 +- src/packages/documents/document-types/tree/folder/types.ts | 2 +- src/packages/documents/document-types/tree/types.ts | 7 ++----- 3 files changed, 4 insertions(+), 7 deletions(-) diff --git a/src/packages/core/localization/stories/localize.element.stories.ts b/src/packages/core/localization/stories/localize.element.stories.ts index 36991cac5e..95b0777c20 100644 --- a/src/packages/core/localization/stories/localize.element.stories.ts +++ b/src/packages/core/localization/stories/localize.element.stories.ts @@ -12,7 +12,7 @@ const meta: Meta = { argTypes: { args: { control: { - type: 'array', + type: 'array' as any, }, }, }, diff --git a/src/packages/documents/document-types/tree/folder/types.ts b/src/packages/documents/document-types/tree/folder/types.ts index 20929ae03b..4c5a953a9d 100644 --- a/src/packages/documents/document-types/tree/folder/types.ts +++ b/src/packages/documents/document-types/tree/folder/types.ts @@ -1,5 +1,5 @@ -import type { UMB_DOCUMENT_TYPE_FOLDER_ENTITY_TYPE } from '../../entity.js'; import type { UmbDocumentTypeTreeItemModel } from '../types.js'; +import type { UMB_DOCUMENT_TYPE_FOLDER_ENTITY_TYPE } from './entity.js'; export interface UmbDocumentTypeFolderTreeItemModel extends UmbDocumentTypeTreeItemModel { entityType: typeof UMB_DOCUMENT_TYPE_FOLDER_ENTITY_TYPE; diff --git a/src/packages/documents/document-types/tree/types.ts b/src/packages/documents/document-types/tree/types.ts index 24d72d14ff..c8eeff4228 100644 --- a/src/packages/documents/document-types/tree/types.ts +++ b/src/packages/documents/document-types/tree/types.ts @@ -1,8 +1,5 @@ -import type { - UmbDocumentTypeEntityType, - UmbDocumentTypeFolderEntityType, - UmbDocumentTypeRootEntityType, -} from '../entity.js'; +import type { UmbDocumentTypeEntityType, UmbDocumentTypeRootEntityType } from '../entity.js'; +import type { UmbDocumentTypeFolderEntityType } from './folder/index.js'; import type { UmbTreeItemModel, UmbTreeRootModel } from '@umbraco-cms/backoffice/tree'; export interface UmbDocumentTypeTreeItemModel extends UmbTreeItemModel { From faa60e81389e6f619df087f06583ff6436b94a98 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Fri, 11 Oct 2024 15:10:42 +0200 Subject: [PATCH 14/34] add element type column --- ...type-tree-item-table-collection-view.element.ts | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/packages/documents/document-types/tree/tree-item-children/collection/views/document-type-tree-item-table-collection-view.element.ts b/src/packages/documents/document-types/tree/tree-item-children/collection/views/document-type-tree-item-table-collection-view.element.ts index 8273ad9979..fdfcdff7d9 100644 --- a/src/packages/documents/document-types/tree/tree-item-children/collection/views/document-type-tree-item-table-collection-view.element.ts +++ b/src/packages/documents/document-types/tree/tree-item-children/collection/views/document-type-tree-item-table-collection-view.element.ts @@ -1,12 +1,12 @@ import { UMB_EDIT_DOCUMENT_TYPE_WORKSPACE_PATH_PATTERN } from '../../../../paths.js'; import { UMB_EDIT_DOCUMENT_TYPE_FOLDER_WORKSPACE_PATH_PATTERN } from '../../../folder/index.js'; +import type { UmbDocumentTypeTreeItemModel } from '../../../types.js'; import type { UmbDefaultCollectionContext } from '@umbraco-cms/backoffice/collection'; import { UMB_COLLECTION_CONTEXT } from '@umbraco-cms/backoffice/collection'; import type { UmbTableColumn, UmbTableConfig, UmbTableItem } from '@umbraco-cms/backoffice/components'; -import { css, html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; +import { css, html, customElement, state, nothing } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; -import type { UmbTreeItemModel } from '@umbraco-cms/backoffice/tree'; import { UmbModalRouteRegistrationController, type UmbModalRouteBuilder } from '@umbraco-cms/backoffice/router'; import { UMB_WORKSPACE_MODAL } from '@umbraco-cms/backoffice/workspace'; @@ -24,6 +24,10 @@ export class UmbDocumentTypeTreeItemTableCollectionViewElement extends UmbLitEle name: 'Name', alias: 'name', }, + { + name: 'Element Type', + alias: 'isElementType', + }, ]; @state() @@ -62,7 +66,7 @@ export class UmbDocumentTypeTreeItemTableCollectionViewElement extends UmbLitEle this.observe(this.#collectionContext.items, (items) => this.#createTableItems(items), 'umbCollectionItemsObserver'); } - #createTableItems(items: Array) { + #createTableItems(items: Array) { const routeBuilder = this.#routeBuilder; if (!routeBuilder) throw new Error('Route builder not ready'); @@ -84,6 +88,10 @@ export class UmbDocumentTypeTreeItemTableCollectionViewElement extends UmbLitEle href=${item.isFolder ? inlineEditPath : modalEditPath} label=${item.name}>`, }, + { + columnAlias: 'isElementType', + value: item.isElement ? html`` : nothing, + }, ], }; }); From 14fe353a4e02768d02f58bd81bde2842b20ce2f8 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Fri, 11 Oct 2024 15:48:36 +0200 Subject: [PATCH 15/34] add boolean + entity actions global table column layouts --- .../boolean-table-column-layout.element.ts | 19 ++++++++++ ...ity-actions-table-column-layout.element.ts | 37 +++++++++++++++++++ .../core/collection/components/index.ts | 2 + 3 files changed, 58 insertions(+) create mode 100644 src/packages/core/collection/components/boolean-table-column-layout/boolean-table-column-layout.element.ts create mode 100644 src/packages/core/collection/components/entity-actions-table-column-layout/entity-actions-table-column-layout.element.ts diff --git a/src/packages/core/collection/components/boolean-table-column-layout/boolean-table-column-layout.element.ts b/src/packages/core/collection/components/boolean-table-column-layout/boolean-table-column-layout.element.ts new file mode 100644 index 0000000000..282498668d --- /dev/null +++ b/src/packages/core/collection/components/boolean-table-column-layout/boolean-table-column-layout.element.ts @@ -0,0 +1,19 @@ +import { html, nothing, customElement, property } from '@umbraco-cms/backoffice/external/lit'; +import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; + +const elementName = 'umb-boolean-table-column-layout'; +@customElement(elementName) +export class UmbBooleanTableColumnLayoutElement extends UmbLitElement { + @property({ attribute: false }) + value = false; + + override render() { + return this.value ? html`` : nothing; + } +} + +declare global { + interface HTMLElementTagNameMap { + [elementName]: UmbBooleanTableColumnLayoutElement; + } +} diff --git a/src/packages/core/collection/components/entity-actions-table-column-layout/entity-actions-table-column-layout.element.ts b/src/packages/core/collection/components/entity-actions-table-column-layout/entity-actions-table-column-layout.element.ts new file mode 100644 index 0000000000..f7ebdd1209 --- /dev/null +++ b/src/packages/core/collection/components/entity-actions-table-column-layout/entity-actions-table-column-layout.element.ts @@ -0,0 +1,37 @@ +import type { UmbEntityModel } from '@umbraco-cms/backoffice/entity'; +import { html, nothing, customElement, property, state } from '@umbraco-cms/backoffice/external/lit'; +import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; + +const elementName = 'umb-entity-actions-table-column-layout'; +@customElement(elementName) +export class UmbEntityActionsTableColumnLayoutElement extends UmbLitElement { + @property({ attribute: false }) + value?: UmbEntityModel; + + @state() + _isOpen = false; + + #onActionExecuted() { + this._isOpen = false; + } + + override render() { + if (!this.value) return nothing; + + return html` + + + + + `; + } +} + +declare global { + interface HTMLElementTagNameMap { + [elementName]: UmbEntityActionsTableColumnLayoutElement; + } +} diff --git a/src/packages/core/collection/components/index.ts b/src/packages/core/collection/components/index.ts index 4b753400bf..521476d057 100644 --- a/src/packages/core/collection/components/index.ts +++ b/src/packages/core/collection/components/index.ts @@ -3,6 +3,8 @@ import './collection-selection-actions.element.js'; import './collection-toolbar.element.js'; import './collection-view-bundle.element.js'; import './collection-action-bundle.element.js'; +import './boolean-table-column-layout/boolean-table-column-layout.element.js'; +import './entity-actions-table-column-layout/entity-actions-table-column-layout.element.js'; export * from './pagination/collection-pagination.element.js'; export * from './collection-selection-actions.element.js'; From 37d8af70e18db7c62930e06b5e939977a926b437 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Fri, 11 Oct 2024 15:49:00 +0200 Subject: [PATCH 16/34] use entity actions in extension insights --- ...extension-table-collection-view.element.ts | 9 ++--- ...le-entity-actions-column-layout.element.ts | 35 ------------------- 2 files changed, 5 insertions(+), 39 deletions(-) delete mode 100644 src/packages/extension-insights/collection/views/table/extension-table-entity-actions-column-layout.element.ts diff --git a/src/packages/extension-insights/collection/views/table/extension-table-collection-view.element.ts b/src/packages/extension-insights/collection/views/table/extension-table-collection-view.element.ts index 4300dd8062..24a57c1ce9 100644 --- a/src/packages/extension-insights/collection/views/table/extension-table-collection-view.element.ts +++ b/src/packages/extension-insights/collection/views/table/extension-table-collection-view.element.ts @@ -6,8 +6,6 @@ import { css, html, customElement, state } from '@umbraco-cms/backoffice/externa import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; -import './extension-table-entity-actions-column-layout.element.js'; - @customElement('umb-extension-table-collection-view') export class UmbExtensionTableCollectionViewElement extends UmbLitElement { @state() @@ -36,7 +34,6 @@ export class UmbExtensionTableCollectionViewElement extends UmbLitElement { { name: '', alias: 'extensionAction', - elementName: 'umb-extension-table-entity-actions-column-layout', }, ]; @@ -82,7 +79,11 @@ export class UmbExtensionTableCollectionViewElement extends UmbLitElement { }, { columnAlias: 'extensionAction', - value: extension, + value: html``, }, ], }; diff --git a/src/packages/extension-insights/collection/views/table/extension-table-entity-actions-column-layout.element.ts b/src/packages/extension-insights/collection/views/table/extension-table-entity-actions-column-layout.element.ts deleted file mode 100644 index fed6e96a43..0000000000 --- a/src/packages/extension-insights/collection/views/table/extension-table-entity-actions-column-layout.element.ts +++ /dev/null @@ -1,35 +0,0 @@ -import type { UmbExtensionDetailModel } from '../../types.js'; -import { html, customElement, property, state, ifDefined } from '@umbraco-cms/backoffice/external/lit'; -import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; - -const elementName = 'umb-extension-table-entity-actions-column-layout'; -@customElement(elementName) -export class UmbExtensionTableEntityActionsColumnLayoutElement extends UmbLitElement { - @property({ attribute: false }) - value!: UmbExtensionDetailModel; - - @state() - _isOpen = false; - - #onActionExecuted() { - this._isOpen = false; - } - - override render() { - return html` - - - - - `; - } -} - -declare global { - interface HTMLElementTagNameMap { - [elementName]: UmbExtensionTableEntityActionsColumnLayoutElement; - } -} From daa7379d18896e8b4d5cb67c2c11a9a4dd35c85b Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Fri, 11 Oct 2024 16:43:24 +0200 Subject: [PATCH 17/34] Update user-table-collection-view.element.ts --- .../table/user-table-collection-view.element.ts | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/packages/user/user/collection/views/table/user-table-collection-view.element.ts b/src/packages/user/user/collection/views/table/user-table-collection-view.element.ts index 6efabcb53a..219f488421 100644 --- a/src/packages/user/user/collection/views/table/user-table-collection-view.element.ts +++ b/src/packages/user/user/collection/views/table/user-table-collection-view.element.ts @@ -48,6 +48,10 @@ export class UmbUserTableCollectionViewElement extends UmbLitElement { alias: 'userStatus', elementName: 'umb-user-table-status-column-layout', }, + { + name: '', + alias: 'entityActions', + }, ]; @state() @@ -140,6 +144,14 @@ export class UmbUserTableCollectionViewElement extends UmbLitElement { status: user.state, }, }, + { + columnAlias: 'entityActions', + value: html``, + }, ], }; }); From 5cb8cea280a9b9502cb3a4dd515f1918901205cb Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Fri, 11 Oct 2024 16:43:31 +0200 Subject: [PATCH 18/34] Update user-group-table-collection-view.element.ts --- .../user-group-table-collection-view.element.ts | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/packages/user/user-group/collection/views/user-group-table-collection-view.element.ts b/src/packages/user/user-group/collection/views/user-group-table-collection-view.element.ts index f94107c739..5892e13716 100644 --- a/src/packages/user/user-group/collection/views/user-group-table-collection-view.element.ts +++ b/src/packages/user/user-group/collection/views/user-group-table-collection-view.element.ts @@ -47,6 +47,10 @@ export class UmbUserGroupCollectionTableViewElement extends UmbLitElement { name: this.localize.term('user_mediastartnode'), alias: 'userGroupMediaStartNode', }, + { + name: '', + alias: 'entityActions', + }, ]; @state() @@ -122,6 +126,14 @@ export class UmbUserGroupCollectionTableViewElement extends UmbLitElement { ? this.#mediaStartNodeMap.get(userGroup.mediaStartNode.unique) : this.localize.term('media_mediaRoot'), }, + { + columnAlias: 'entityActions', + value: html``, + }, ], }; }); From 1616fdc5caec9aae2999da5129f3e5231d533f83 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Fri, 11 Oct 2024 16:43:36 +0200 Subject: [PATCH 19/34] Update member-table-collection-view.element.ts --- .../table/member-table-collection-view.element.ts | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/src/packages/members/member/collection/views/table/member-table-collection-view.element.ts b/src/packages/members/member/collection/views/table/member-table-collection-view.element.ts index 8fca9ecca1..c5315c3918 100644 --- a/src/packages/members/member/collection/views/table/member-table-collection-view.element.ts +++ b/src/packages/members/member/collection/views/table/member-table-collection-view.element.ts @@ -8,8 +8,6 @@ import { css, html, customElement, state } from '@umbraco-cms/backoffice/externa import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; import { UmbMemberTypeItemRepository } from '@umbraco-cms/backoffice/member-type'; -import './member-table-entity-actions-column-layout.element.js'; - @customElement('umb-member-table-collection-view') export class UmbMemberTableCollectionViewElement extends UmbLitElement { @state() @@ -42,7 +40,6 @@ export class UmbMemberTableCollectionViewElement extends UmbLitElement { { name: '', alias: 'entityActions', - elementName: 'umb-member-table-entity-actions-column-layout', }, ]; @@ -106,10 +103,11 @@ export class UmbMemberTableCollectionViewElement extends UmbLitElement { }, { columnAlias: 'entityActions', - value: { - entityType: member.entityType, - unique: member.unique, - }, + value: html``, }, ], }; From 1763a4081021f710970764ba94afdc9fb1a7f624 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Fri, 11 Oct 2024 16:43:45 +0200 Subject: [PATCH 20/34] Update language-table-collection-view.element.ts --- .../language-table-collection-view.element.ts | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/src/packages/language/collection/views/table/language-table-collection-view.element.ts b/src/packages/language/collection/views/table/language-table-collection-view.element.ts index ed2e9b86de..9e7a189648 100644 --- a/src/packages/language/collection/views/table/language-table-collection-view.element.ts +++ b/src/packages/language/collection/views/table/language-table-collection-view.element.ts @@ -6,9 +6,7 @@ import { css, html, customElement, state } from '@umbraco-cms/backoffice/externa import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; -import './column-layouts/boolean/language-table-boolean-column-layout.element.js'; import './column-layouts/name/language-table-name-column-layout.element.js'; -import './column-layouts/entity-actions/language-table-entity-actions-column-layout.element.js'; @customElement('umb-language-table-collection-view') export class UmbLanguageTableCollectionViewElement extends UmbLitElement { @@ -31,12 +29,10 @@ export class UmbLanguageTableCollectionViewElement extends UmbLitElement { { name: 'Default', alias: 'defaultLanguage', - elementName: 'umb-language-table-boolean-column-layout', }, { name: 'Mandatory', alias: 'mandatoryLanguage', - elementName: 'umb-language-table-boolean-column-layout', }, { name: 'Fallback', @@ -45,7 +41,6 @@ export class UmbLanguageTableCollectionViewElement extends UmbLitElement { { name: '', alias: 'entityActions', - elementName: 'umb-language-table-entity-actions-column-layout', }, ]; @@ -88,11 +83,13 @@ export class UmbLanguageTableCollectionViewElement extends UmbLitElement { }, { columnAlias: 'defaultLanguage', - value: language.isDefault, + value: html``, }, { columnAlias: 'mandatoryLanguage', - value: language.isMandatory, + value: html``, }, { columnAlias: 'fallbackLanguage', @@ -100,7 +97,11 @@ export class UmbLanguageTableCollectionViewElement extends UmbLitElement { }, { columnAlias: 'entityActions', - value: language, + value: html``, }, ], }; From 051a79a5f75b2840357c064bc578a95a3fcfa353 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Fri, 11 Oct 2024 16:43:51 +0200 Subject: [PATCH 21/34] Update member-group-table-collection-view.element.ts --- .../member-group-table-collection-view.element.ts | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/packages/members/member-group/collection/views/table/member-group-table-collection-view.element.ts b/src/packages/members/member-group/collection/views/table/member-group-table-collection-view.element.ts index 2084d91556..264d5a4435 100644 --- a/src/packages/members/member-group/collection/views/table/member-group-table-collection-view.element.ts +++ b/src/packages/members/member-group/collection/views/table/member-group-table-collection-view.element.ts @@ -19,6 +19,10 @@ export class UmbMemberGroupTableCollectionViewElement extends UmbLitElement { name: this.localize.term('general_name'), alias: 'memberGroupName', }, + { + name: '', + alias: 'entityActions', + }, ]; @state() @@ -52,6 +56,14 @@ export class UmbMemberGroupTableCollectionViewElement extends UmbLitElement { >${memberGroup.name}`, }, + { + columnAlias: 'entityActions', + value: html``, + }, ], }; }); From 0863622b063e9eed8b9577b6e830fc175995592a Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Fri, 11 Oct 2024 16:44:06 +0200 Subject: [PATCH 22/34] align alias --- .../views/table/extension-table-collection-view.element.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/packages/extension-insights/collection/views/table/extension-table-collection-view.element.ts b/src/packages/extension-insights/collection/views/table/extension-table-collection-view.element.ts index 24a57c1ce9..53f30bfde4 100644 --- a/src/packages/extension-insights/collection/views/table/extension-table-collection-view.element.ts +++ b/src/packages/extension-insights/collection/views/table/extension-table-collection-view.element.ts @@ -33,7 +33,7 @@ export class UmbExtensionTableCollectionViewElement extends UmbLitElement { }, { name: '', - alias: 'extensionAction', + alias: 'entityActions', }, ]; @@ -78,7 +78,7 @@ export class UmbExtensionTableCollectionViewElement extends UmbLitElement { value: extension.weight, }, { - columnAlias: 'extensionAction', + columnAlias: 'entityActions', value: html` Date: Fri, 11 Oct 2024 16:44:18 +0200 Subject: [PATCH 23/34] stop click event --- .../entity-actions-table-column-layout.element.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/packages/core/collection/components/entity-actions-table-column-layout/entity-actions-table-column-layout.element.ts b/src/packages/core/collection/components/entity-actions-table-column-layout/entity-actions-table-column-layout.element.ts index f7ebdd1209..00c9f12842 100644 --- a/src/packages/core/collection/components/entity-actions-table-column-layout/entity-actions-table-column-layout.element.ts +++ b/src/packages/core/collection/components/entity-actions-table-column-layout/entity-actions-table-column-layout.element.ts @@ -15,11 +15,15 @@ export class UmbEntityActionsTableColumnLayoutElement extends UmbLitElement { this._isOpen = false; } + #onClick(event) { + event.stopPropagation(); + } + override render() { if (!this.value) return nothing; return html` - + Date: Fri, 11 Oct 2024 16:44:36 +0200 Subject: [PATCH 24/34] delete unused code --- ...age-table-boolean-column-layout.element.ts | 18 --------- ...le-entity-actions-column-layout.element.ts | 38 ------------------- ...le-entity-actions-column-layout.element.ts | 38 ------------------- 3 files changed, 94 deletions(-) delete mode 100644 src/packages/language/collection/views/table/column-layouts/boolean/language-table-boolean-column-layout.element.ts delete mode 100644 src/packages/language/collection/views/table/column-layouts/entity-actions/language-table-entity-actions-column-layout.element.ts delete mode 100644 src/packages/members/member/collection/views/table/member-table-entity-actions-column-layout.element.ts diff --git a/src/packages/language/collection/views/table/column-layouts/boolean/language-table-boolean-column-layout.element.ts b/src/packages/language/collection/views/table/column-layouts/boolean/language-table-boolean-column-layout.element.ts deleted file mode 100644 index 479bc70b2e..0000000000 --- a/src/packages/language/collection/views/table/column-layouts/boolean/language-table-boolean-column-layout.element.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { html, nothing, customElement, property } from '@umbraco-cms/backoffice/external/lit'; -import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; - -@customElement('umb-language-table-boolean-column-layout') -export class UmbLanguageTableBooleanColumnLayoutElement extends UmbLitElement { - @property({ attribute: false }) - value = false; - - override render() { - return this.value ? html`` : nothing; - } -} - -declare global { - interface HTMLElementTagNameMap { - 'umb-language-table-boolean-column-layout': UmbLanguageTableBooleanColumnLayoutElement; - } -} diff --git a/src/packages/language/collection/views/table/column-layouts/entity-actions/language-table-entity-actions-column-layout.element.ts b/src/packages/language/collection/views/table/column-layouts/entity-actions/language-table-entity-actions-column-layout.element.ts deleted file mode 100644 index d4479a0402..0000000000 --- a/src/packages/language/collection/views/table/column-layouts/entity-actions/language-table-entity-actions-column-layout.element.ts +++ /dev/null @@ -1,38 +0,0 @@ -import type { UmbLanguageDetailModel } from '../../../../../types.js'; -import { html, nothing, customElement, property, state, ifDefined } from '@umbraco-cms/backoffice/external/lit'; -import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; - -@customElement('umb-language-table-entity-actions-column-layout') -export class UmbLanguageTableEntityActionsColumnLayoutElement extends UmbLitElement { - @property({ attribute: false }) - value!: UmbLanguageDetailModel; - - @state() - _isOpen = false; - - #onActionExecuted() { - this._isOpen = false; - } - - override render() { - // TODO: we need to use conditionals on each action here. But until we have that in place - // we'll just remove all actions on the default language. - if (this.value.isDefault) return nothing; - - return html` - - - - - `; - } -} - -declare global { - interface HTMLElementTagNameMap { - 'umb-language-table-entity-actions-column-layout': UmbLanguageTableEntityActionsColumnLayoutElement; - } -} diff --git a/src/packages/members/member/collection/views/table/member-table-entity-actions-column-layout.element.ts b/src/packages/members/member/collection/views/table/member-table-entity-actions-column-layout.element.ts deleted file mode 100644 index 61eab8c400..0000000000 --- a/src/packages/members/member/collection/views/table/member-table-entity-actions-column-layout.element.ts +++ /dev/null @@ -1,38 +0,0 @@ -import type { UmbMemberEntityType } from '../../../entity.js'; -import { html, customElement, property, state, ifDefined } from '@umbraco-cms/backoffice/external/lit'; -import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; - -const elementName = 'umb-member-table-entity-actions-column-layout'; -@customElement(elementName) -export class UmbMemberTableEntityActionsColumnLayoutElement extends UmbLitElement { - @property({ attribute: false }) - value!: { - unique: string; - entityType: UmbMemberEntityType; - }; - - @state() - _isOpen = false; - - #onActionExecuted() { - this._isOpen = false; - } - - override render() { - return html` - - - - - `; - } -} - -declare global { - interface HTMLElementTagNameMap { - [elementName]: UmbMemberTableEntityActionsColumnLayoutElement; - } -} From 9c3b69af83116718564e57e80550bc2f7e993f83 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Fri, 11 Oct 2024 16:49:43 +0200 Subject: [PATCH 25/34] use global components --- ...ook-table-boolean-column-layout.element.ts | 18 ---------- ...le-entity-actions-column-layout.element.ts | 34 ------------------- .../webhook-table-collection-view.element.ts | 12 +++---- 3 files changed, 6 insertions(+), 58 deletions(-) delete mode 100644 src/packages/webhook/collection/views/table/column-layouts/boolean/webhook-table-boolean-column-layout.element.ts delete mode 100644 src/packages/webhook/collection/views/table/column-layouts/entity-actions/webhook-table-entity-actions-column-layout.element.ts diff --git a/src/packages/webhook/collection/views/table/column-layouts/boolean/webhook-table-boolean-column-layout.element.ts b/src/packages/webhook/collection/views/table/column-layouts/boolean/webhook-table-boolean-column-layout.element.ts deleted file mode 100644 index e16d4f4bb7..0000000000 --- a/src/packages/webhook/collection/views/table/column-layouts/boolean/webhook-table-boolean-column-layout.element.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { html, customElement, property } from '@umbraco-cms/backoffice/external/lit'; -import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; - -@customElement('umb-webhook-table-boolean-column-layout') -export class UmbWebhookTableBooleanColumnLayoutElement extends UmbLitElement { - @property({ attribute: false }) - value = false; - - override render() { - return html``; - } -} - -declare global { - interface HTMLElementTagNameMap { - 'umb-webhook-table-boolean-column-layout': UmbWebhookTableBooleanColumnLayoutElement; - } -} diff --git a/src/packages/webhook/collection/views/table/column-layouts/entity-actions/webhook-table-entity-actions-column-layout.element.ts b/src/packages/webhook/collection/views/table/column-layouts/entity-actions/webhook-table-entity-actions-column-layout.element.ts deleted file mode 100644 index 16cd56b978..0000000000 --- a/src/packages/webhook/collection/views/table/column-layouts/entity-actions/webhook-table-entity-actions-column-layout.element.ts +++ /dev/null @@ -1,34 +0,0 @@ -import type { UmbWebhookDetailModel } from '../../../../../types.js'; -import { html, customElement, property, state, ifDefined } from '@umbraco-cms/backoffice/external/lit'; -import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; - -@customElement('umb-webhook-table-entity-actions-column-layout') -export class UmbWebhookTableEntityActionsColumnLayoutElement extends UmbLitElement { - @property({ attribute: false }) - value!: UmbWebhookDetailModel; - - @state() - _isOpen = false; - - #onActionExecuted() { - this._isOpen = false; - } - - override render() { - return html` - - - - - `; - } -} - -declare global { - interface HTMLElementTagNameMap { - 'umb-webhook-table-entity-actions-column-layout': UmbWebhookTableEntityActionsColumnLayoutElement; - } -} diff --git a/src/packages/webhook/collection/views/table/webhook-table-collection-view.element.ts b/src/packages/webhook/collection/views/table/webhook-table-collection-view.element.ts index 4128f4e9d2..acff032ed2 100644 --- a/src/packages/webhook/collection/views/table/webhook-table-collection-view.element.ts +++ b/src/packages/webhook/collection/views/table/webhook-table-collection-view.element.ts @@ -5,9 +5,7 @@ import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; import { UMB_COLLECTION_CONTEXT } from '@umbraco-cms/backoffice/collection'; import type { UmbTableColumn, UmbTableConfig, UmbTableItem } from '@umbraco-cms/backoffice/components'; -import './column-layouts/boolean/webhook-table-boolean-column-layout.element.js'; import './column-layouts/name/webhook-table-name-column-layout.element.js'; -import './column-layouts/entity-actions/webhook-table-entity-actions-column-layout.element.js'; import './column-layouts/content-type/webhook-table-name-column-layout.element.js'; @customElement('umb-webhook-table-collection-view') @@ -27,7 +25,6 @@ export class UmbWebhookTableCollectionViewElement extends UmbLitElement { { name: this.localize.term('webhooks_enabled'), alias: 'enabled', - elementName: 'umb-webhook-table-boolean-column-layout', }, { name: this.localize.term('webhooks_url'), @@ -45,7 +42,6 @@ export class UmbWebhookTableCollectionViewElement extends UmbLitElement { { name: '', alias: 'entityActions', - elementName: 'umb-webhook-table-entity-actions-column-layout', }, ]; @@ -85,7 +81,7 @@ export class UmbWebhookTableCollectionViewElement extends UmbLitElement { }, { columnAlias: 'enabled', - value: webhook.enabled, + value: html``, }, { columnAlias: 'events', @@ -97,7 +93,11 @@ export class UmbWebhookTableCollectionViewElement extends UmbLitElement { }, { columnAlias: 'entityActions', - value: webhook, + value: html``, }, ], }; From f58275182653d8d2461e41f3a13337c9db343446 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Fri, 11 Oct 2024 17:55:14 +0200 Subject: [PATCH 26/34] add entity actions to document and media --- .../document-table-collection-view.element.ts | 13 ++++++++++++- .../table/media-table-collection-view.element.ts | 15 +++++++++++++-- 2 files changed, 25 insertions(+), 3 deletions(-) diff --git a/src/packages/documents/documents/collection/views/table/document-table-collection-view.element.ts b/src/packages/documents/documents/collection/views/table/document-table-collection-view.element.ts index a4e4d89e2f..7587ee0f4a 100644 --- a/src/packages/documents/documents/collection/views/table/document-table-collection-view.element.ts +++ b/src/packages/documents/documents/collection/views/table/document-table-collection-view.element.ts @@ -136,7 +136,7 @@ export class UmbDocumentTableCollectionViewElement extends UmbLitElement { }; }); - this._tableColumns = [...this.#systemColumns, ...userColumns]; + this._tableColumns = [...this.#systemColumns, ...userColumns, { name: '', alias: 'entityActions' }]; } } @@ -146,6 +146,17 @@ export class UmbDocumentTableCollectionViewElement extends UmbLitElement { const data = this._tableColumns?.map((column) => { + if (column.alias === 'entityActions') { + return { + columnAlias: 'entityActions', + value: html``, + }; + } + const editPath = this.#routeBuilder ? this.#routeBuilder({ entityType: item.entityType }) + UMB_EDIT_DOCUMENT_WORKSPACE_PATH_PATTERN.generateLocal({ unique: item.unique }) diff --git a/src/packages/media/media/collection/views/table/media-table-collection-view.element.ts b/src/packages/media/media/collection/views/table/media-table-collection-view.element.ts index 0d28d08609..7f0c3101b5 100644 --- a/src/packages/media/media/collection/views/table/media-table-collection-view.element.ts +++ b/src/packages/media/media/collection/views/table/media-table-collection-view.element.ts @@ -125,9 +125,9 @@ export class UmbMediaTableCollectionViewElement extends UmbLitElement { }; }); - this._tableColumns = [...this.#systemColumns, ...userColumns]; + this._tableColumns = [...this.#systemColumns, ...userColumns, { name: '', alias: 'entityActions' }]; } else { - this._tableColumns = [...this.#systemColumns]; + this._tableColumns = [...this.#systemColumns, { name: '', alias: 'entityActions' }]; } } @@ -141,6 +141,17 @@ export class UmbMediaTableCollectionViewElement extends UmbLitElement { const data = this._tableColumns?.map((column) => { + if (column.alias === 'entityActions') { + return { + columnAlias: 'entityActions', + value: html``, + }; + } + const editPath = this.#routeBuilder ? this.#routeBuilder({ entityType: item.entityType }) + UMB_EDIT_MEDIA_WORKSPACE_PATH_PATTERN.generateLocal({ unique: item.unique }) From 2bca898f9e9ccfc7542c77895f94afefc07abaac Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Fri, 11 Oct 2024 17:59:03 +0200 Subject: [PATCH 27/34] add entity actions --- ...type-tree-item-table-collection-view.element.ts | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/packages/documents/document-types/tree/tree-item-children/collection/views/document-type-tree-item-table-collection-view.element.ts b/src/packages/documents/document-types/tree/tree-item-children/collection/views/document-type-tree-item-table-collection-view.element.ts index fdfcdff7d9..6ad5f637a7 100644 --- a/src/packages/documents/document-types/tree/tree-item-children/collection/views/document-type-tree-item-table-collection-view.element.ts +++ b/src/packages/documents/document-types/tree/tree-item-children/collection/views/document-type-tree-item-table-collection-view.element.ts @@ -28,6 +28,10 @@ export class UmbDocumentTypeTreeItemTableCollectionViewElement extends UmbLitEle name: 'Element Type', alias: 'isElementType', }, + { + name: '', + alias: 'entityActions', + }, ]; @state() @@ -90,7 +94,15 @@ export class UmbDocumentTypeTreeItemTableCollectionViewElement extends UmbLitEle }, { columnAlias: 'isElementType', - value: item.isElement ? html`` : nothing, + value: html``, + }, + { + columnAlias: 'entityActions', + value: html``, }, ], }; From b316e778409847962049ec0908ef3ee8d6bc617e Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Fri, 11 Oct 2024 20:50:31 +0200 Subject: [PATCH 28/34] move to entity action module --- src/packages/core/collection/components/index.ts | 1 - .../entity-actions-table-column-layout.element.ts | 2 +- src/packages/core/entity-action/global-components/index.ts | 1 + src/packages/core/entity-action/index.ts | 2 ++ 4 files changed, 4 insertions(+), 2 deletions(-) rename src/packages/core/{collection/components => entity-action/global-components}/entity-actions-table-column-layout/entity-actions-table-column-layout.element.ts (97%) create mode 100644 src/packages/core/entity-action/global-components/index.ts diff --git a/src/packages/core/collection/components/index.ts b/src/packages/core/collection/components/index.ts index 521476d057..1e760844e9 100644 --- a/src/packages/core/collection/components/index.ts +++ b/src/packages/core/collection/components/index.ts @@ -4,7 +4,6 @@ import './collection-toolbar.element.js'; import './collection-view-bundle.element.js'; import './collection-action-bundle.element.js'; import './boolean-table-column-layout/boolean-table-column-layout.element.js'; -import './entity-actions-table-column-layout/entity-actions-table-column-layout.element.js'; export * from './pagination/collection-pagination.element.js'; export * from './collection-selection-actions.element.js'; diff --git a/src/packages/core/collection/components/entity-actions-table-column-layout/entity-actions-table-column-layout.element.ts b/src/packages/core/entity-action/global-components/entity-actions-table-column-layout/entity-actions-table-column-layout.element.ts similarity index 97% rename from src/packages/core/collection/components/entity-actions-table-column-layout/entity-actions-table-column-layout.element.ts rename to src/packages/core/entity-action/global-components/entity-actions-table-column-layout/entity-actions-table-column-layout.element.ts index 00c9f12842..ef715a08dd 100644 --- a/src/packages/core/collection/components/entity-actions-table-column-layout/entity-actions-table-column-layout.element.ts +++ b/src/packages/core/entity-action/global-components/entity-actions-table-column-layout/entity-actions-table-column-layout.element.ts @@ -15,7 +15,7 @@ export class UmbEntityActionsTableColumnLayoutElement extends UmbLitElement { this._isOpen = false; } - #onClick(event) { + #onClick(event: Event) { event.stopPropagation(); } diff --git a/src/packages/core/entity-action/global-components/index.ts b/src/packages/core/entity-action/global-components/index.ts new file mode 100644 index 0000000000..b36e4f4c44 --- /dev/null +++ b/src/packages/core/entity-action/global-components/index.ts @@ -0,0 +1 @@ +import './entity-actions-table-column-layout/entity-actions-table-column-layout.element.js'; diff --git a/src/packages/core/entity-action/index.ts b/src/packages/core/entity-action/index.ts index 0fd5ba6de0..3166134fea 100644 --- a/src/packages/core/entity-action/index.ts +++ b/src/packages/core/entity-action/index.ts @@ -1,3 +1,5 @@ +import './global-components/index.js'; + export * from './common/index.js'; export * from './default/index.js'; export * from './entity-action-base.js'; From 503df51fdc783362f9d7f3ec2d057b75233cefc1 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Fri, 11 Oct 2024 21:02:37 +0200 Subject: [PATCH 29/34] Update localize.element.stories.ts --- .../core/localization/stories/localize.element.stories.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/packages/core/localization/stories/localize.element.stories.ts b/src/packages/core/localization/stories/localize.element.stories.ts index 36991cac5e..95b0777c20 100644 --- a/src/packages/core/localization/stories/localize.element.stories.ts +++ b/src/packages/core/localization/stories/localize.element.stories.ts @@ -12,7 +12,7 @@ const meta: Meta = { argTypes: { args: { control: { - type: 'array', + type: 'array' as any, }, }, }, From 023e5587c6bb9b81ea12ebd9f0ad1c8daaa09a75 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Thu, 7 Nov 2024 15:35:35 +0100 Subject: [PATCH 30/34] manual merges --- .../boolean-table-column-layout.element.ts | 19 --------- .../boolean-table-column-view.element.ts | 5 +-- .../core/collection/components/index.ts | 1 - ...ity-actions-table-column-layout.element.ts | 41 ------------------- .../entity-action/global-components/index.ts | 1 - ...tree-item-table-collection-view.element.ts | 6 +-- .../workspace/document-type/manifests.ts | 12 +++--- 7 files changed, 11 insertions(+), 74 deletions(-) delete mode 100644 src/packages/core/collection/components/boolean-table-column-layout/boolean-table-column-layout.element.ts delete mode 100644 src/packages/core/entity-action/global-components/entity-actions-table-column-layout/entity-actions-table-column-layout.element.ts diff --git a/src/packages/core/collection/components/boolean-table-column-layout/boolean-table-column-layout.element.ts b/src/packages/core/collection/components/boolean-table-column-layout/boolean-table-column-layout.element.ts deleted file mode 100644 index 282498668d..0000000000 --- a/src/packages/core/collection/components/boolean-table-column-layout/boolean-table-column-layout.element.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { html, nothing, customElement, property } from '@umbraco-cms/backoffice/external/lit'; -import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; - -const elementName = 'umb-boolean-table-column-layout'; -@customElement(elementName) -export class UmbBooleanTableColumnLayoutElement extends UmbLitElement { - @property({ attribute: false }) - value = false; - - override render() { - return this.value ? html`` : nothing; - } -} - -declare global { - interface HTMLElementTagNameMap { - [elementName]: UmbBooleanTableColumnLayoutElement; - } -} diff --git a/src/packages/core/collection/components/boolean-table-column-view/boolean-table-column-view.element.ts b/src/packages/core/collection/components/boolean-table-column-view/boolean-table-column-view.element.ts index cecfee1d0d..6c457ee8d9 100644 --- a/src/packages/core/collection/components/boolean-table-column-view/boolean-table-column-view.element.ts +++ b/src/packages/core/collection/components/boolean-table-column-view/boolean-table-column-view.element.ts @@ -1,8 +1,7 @@ import { html, nothing, customElement, property } from '@umbraco-cms/backoffice/external/lit'; import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; -const elementName = 'umb-boolean-table-column-view'; -@customElement(elementName) +@customElement('umb-boolean-table-column-view') export class UmbBooleanTableColumnViewElement extends UmbLitElement { @property({ attribute: false }) value = false; @@ -14,6 +13,6 @@ export class UmbBooleanTableColumnViewElement extends UmbLitElement { declare global { interface HTMLElementTagNameMap { - [elementName]: UmbBooleanTableColumnViewElement; + ['umb-boolean-table-column-view']: UmbBooleanTableColumnViewElement; } } diff --git a/src/packages/core/collection/components/index.ts b/src/packages/core/collection/components/index.ts index 2a5ff379ba..a440030db1 100644 --- a/src/packages/core/collection/components/index.ts +++ b/src/packages/core/collection/components/index.ts @@ -1,4 +1,3 @@ -import './boolean-table-column-layout/boolean-table-column-layout.element.js'; import './boolean-table-column-view/boolean-table-column-view.element.js'; import './collection-action-bundle.element.js'; import './collection-filter-field.element.js'; diff --git a/src/packages/core/entity-action/global-components/entity-actions-table-column-layout/entity-actions-table-column-layout.element.ts b/src/packages/core/entity-action/global-components/entity-actions-table-column-layout/entity-actions-table-column-layout.element.ts deleted file mode 100644 index ef715a08dd..0000000000 --- a/src/packages/core/entity-action/global-components/entity-actions-table-column-layout/entity-actions-table-column-layout.element.ts +++ /dev/null @@ -1,41 +0,0 @@ -import type { UmbEntityModel } from '@umbraco-cms/backoffice/entity'; -import { html, nothing, customElement, property, state } from '@umbraco-cms/backoffice/external/lit'; -import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; - -const elementName = 'umb-entity-actions-table-column-layout'; -@customElement(elementName) -export class UmbEntityActionsTableColumnLayoutElement extends UmbLitElement { - @property({ attribute: false }) - value?: UmbEntityModel; - - @state() - _isOpen = false; - - #onActionExecuted() { - this._isOpen = false; - } - - #onClick(event: Event) { - event.stopPropagation(); - } - - override render() { - if (!this.value) return nothing; - - return html` - - - - - `; - } -} - -declare global { - interface HTMLElementTagNameMap { - [elementName]: UmbEntityActionsTableColumnLayoutElement; - } -} diff --git a/src/packages/core/entity-action/global-components/index.ts b/src/packages/core/entity-action/global-components/index.ts index dfa9d13d59..841ca85af1 100644 --- a/src/packages/core/entity-action/global-components/index.ts +++ b/src/packages/core/entity-action/global-components/index.ts @@ -1,2 +1 @@ -import './entity-actions-table-column-layout/entity-actions-table-column-layout.element.js'; import './entity-actions-table-column-view/entity-actions-table-column-view.element.js'; diff --git a/src/packages/documents/document-types/tree/tree-item-children/collection/views/document-type-tree-item-table-collection-view.element.ts b/src/packages/documents/document-types/tree/tree-item-children/collection/views/document-type-tree-item-table-collection-view.element.ts index 6ad5f637a7..a455008f29 100644 --- a/src/packages/documents/document-types/tree/tree-item-children/collection/views/document-type-tree-item-table-collection-view.element.ts +++ b/src/packages/documents/document-types/tree/tree-item-children/collection/views/document-type-tree-item-table-collection-view.element.ts @@ -94,15 +94,15 @@ export class UmbDocumentTypeTreeItemTableCollectionViewElement extends UmbLitEle }, { columnAlias: 'isElementType', - value: html``, + value: html``, }, { columnAlias: 'entityActions', - value: html``, + }}>`, }, ], }; diff --git a/src/packages/documents/document-types/workspace/document-type/manifests.ts b/src/packages/documents/document-types/workspace/document-type/manifests.ts index 81b4a8d3d3..b4644169cb 100644 --- a/src/packages/documents/document-types/workspace/document-type/manifests.ts +++ b/src/packages/documents/document-types/workspace/document-type/manifests.ts @@ -1,6 +1,6 @@ import { UMB_DOCUMENT_TYPE_COMPOSITION_REPOSITORY_ALIAS } from '../../repository/composition/index.js'; import { UMB_DOCUMENT_TYPE_WORKSPACE_ALIAS } from './constants.js'; -import { UmbSubmitWorkspaceAction } from '@umbraco-cms/backoffice/workspace'; +import { UMB_WORKSPACE_CONDITION_ALIAS, UmbSubmitWorkspaceAction } from '@umbraco-cms/backoffice/workspace'; export const manifests: Array = [ { @@ -26,7 +26,7 @@ export const manifests: Array = [ }, conditions: [ { - alias: 'Umb.Condition.WorkspaceAlias', + alias: UMB_WORKSPACE_CONDITION_ALIAS, match: UMB_DOCUMENT_TYPE_WORKSPACE_ALIAS, }, ], @@ -44,7 +44,7 @@ export const manifests: Array = [ }, conditions: [ { - alias: 'Umb.Condition.WorkspaceAlias', + alias: UMB_WORKSPACE_CONDITION_ALIAS, match: UMB_DOCUMENT_TYPE_WORKSPACE_ALIAS, }, ], @@ -62,7 +62,7 @@ export const manifests: Array = [ }, conditions: [ { - alias: 'Umb.Condition.WorkspaceAlias', + alias: UMB_WORKSPACE_CONDITION_ALIAS, match: UMB_DOCUMENT_TYPE_WORKSPACE_ALIAS, }, ], @@ -80,7 +80,7 @@ export const manifests: Array = [ }, conditions: [ { - alias: 'Umb.Condition.WorkspaceAlias', + alias: UMB_WORKSPACE_CONDITION_ALIAS, match: UMB_DOCUMENT_TYPE_WORKSPACE_ALIAS, }, ], @@ -98,7 +98,7 @@ export const manifests: Array = [ }, conditions: [ { - alias: 'Umb.Condition.WorkspaceAlias', + alias: UMB_WORKSPACE_CONDITION_ALIAS, match: UMB_DOCUMENT_TYPE_WORKSPACE_ALIAS, }, ], From dd499a5ae15914bb0e1f374cf4649c15d890ac37 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Thu, 7 Nov 2024 19:55:18 +0100 Subject: [PATCH 31/34] add todo --- .../document-type-tree-item-children-collection.repository.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/packages/documents/document-types/tree/tree-item-children/collection/repository/document-type-tree-item-children-collection.repository.ts b/src/packages/documents/document-types/tree/tree-item-children/collection/repository/document-type-tree-item-children-collection.repository.ts index fb8d23aeee..04df143d35 100644 --- a/src/packages/documents/document-types/tree/tree-item-children/collection/repository/document-type-tree-item-children-collection.repository.ts +++ b/src/packages/documents/document-types/tree/tree-item-children/collection/repository/document-type-tree-item-children-collection.repository.ts @@ -10,6 +10,7 @@ export class UmbDocumentTypeTreeItemChildrenCollectionRepository #treeRepository = new UmbDocumentTypeTreeRepository(this); async requestCollection(filter: UmbCollectionFilterModel) { + // TODO: get parent from args const entityContext = await this.getContext(UMB_ENTITY_CONTEXT); if (!entityContext) throw new Error('Entity context not found'); From d1a4a5ddf9dc08b397e1cf3ffea86d026b1b0174 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Thu, 7 Nov 2024 19:57:12 +0100 Subject: [PATCH 32/34] fix lint errors --- .../workspace/entity-detail/entity-detail-workspace-base.ts | 2 +- .../document-type-tree-item-table-collection-view.element.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/packages/core/workspace/entity-detail/entity-detail-workspace-base.ts b/src/packages/core/workspace/entity-detail/entity-detail-workspace-base.ts index 322d4957e7..f177eab76c 100644 --- a/src/packages/core/workspace/entity-detail/entity-detail-workspace-base.ts +++ b/src/packages/core/workspace/entity-detail/entity-detail-workspace-base.ts @@ -11,7 +11,7 @@ import { } from '@umbraco-cms/backoffice/entity-action'; import { UmbExtensionApiInitializer } from '@umbraco-cms/backoffice/extension-api'; import { umbExtensionsRegistry, type ManifestRepository } from '@umbraco-cms/backoffice/extension-registry'; -import type { UmbDetailRepository, UmbRepositoryResponseWithAsObservable } from '@umbraco-cms/backoffice/repository'; +import type { UmbDetailRepository } from '@umbraco-cms/backoffice/repository'; export interface UmbEntityDetailWorkspaceContextArgs { entityType: string; diff --git a/src/packages/documents/document-types/tree/tree-item-children/collection/views/document-type-tree-item-table-collection-view.element.ts b/src/packages/documents/document-types/tree/tree-item-children/collection/views/document-type-tree-item-table-collection-view.element.ts index a455008f29..ff8f006f37 100644 --- a/src/packages/documents/document-types/tree/tree-item-children/collection/views/document-type-tree-item-table-collection-view.element.ts +++ b/src/packages/documents/document-types/tree/tree-item-children/collection/views/document-type-tree-item-table-collection-view.element.ts @@ -4,7 +4,7 @@ import type { UmbDocumentTypeTreeItemModel } from '../../../types.js'; import type { UmbDefaultCollectionContext } from '@umbraco-cms/backoffice/collection'; import { UMB_COLLECTION_CONTEXT } from '@umbraco-cms/backoffice/collection'; import type { UmbTableColumn, UmbTableConfig, UmbTableItem } from '@umbraco-cms/backoffice/components'; -import { css, html, customElement, state, nothing } from '@umbraco-cms/backoffice/external/lit'; +import { css, html, customElement, state } from '@umbraco-cms/backoffice/external/lit'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; import { UmbModalRouteRegistrationController, type UmbModalRouteBuilder } from '@umbraco-cms/backoffice/router'; From 2395981ad67c40b89064e2433bee18e94da5fc8e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Thu, 7 Nov 2024 21:13:41 +0100 Subject: [PATCH 33/34] remove [] --- .../boolean-table-column-view.element.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/packages/core/collection/components/boolean-table-column-view/boolean-table-column-view.element.ts b/src/packages/core/collection/components/boolean-table-column-view/boolean-table-column-view.element.ts index 6c457ee8d9..856e202deb 100644 --- a/src/packages/core/collection/components/boolean-table-column-view/boolean-table-column-view.element.ts +++ b/src/packages/core/collection/components/boolean-table-column-view/boolean-table-column-view.element.ts @@ -13,6 +13,6 @@ export class UmbBooleanTableColumnViewElement extends UmbLitElement { declare global { interface HTMLElementTagNameMap { - ['umb-boolean-table-column-view']: UmbBooleanTableColumnViewElement; + 'umb-boolean-table-column-view': UmbBooleanTableColumnViewElement; } } From 929bec8a6d87ee360308a90401d31f507de03ce7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Thu, 7 Nov 2024 21:21:07 +0100 Subject: [PATCH 34/34] remove destroy function --- ...document-type-tree-item-children-collection.repository.ts | 5 ----- 1 file changed, 5 deletions(-) diff --git a/src/packages/documents/document-types/tree/tree-item-children/collection/repository/document-type-tree-item-children-collection.repository.ts b/src/packages/documents/document-types/tree/tree-item-children/collection/repository/document-type-tree-item-children-collection.repository.ts index 04df143d35..5968a3aef1 100644 --- a/src/packages/documents/document-types/tree/tree-item-children/collection/repository/document-type-tree-item-children-collection.repository.ts +++ b/src/packages/documents/document-types/tree/tree-item-children/collection/repository/document-type-tree-item-children-collection.repository.ts @@ -28,11 +28,6 @@ export class UmbDocumentTypeTreeItemChildrenCollectionRepository return this.#treeRepository.requestTreeItemsOf({ parent, skip: filter.skip, take: filter.take }); } } - - override destroy(): void { - this.#treeRepository.destroy(); - super.destroy(); - } } export { UmbDocumentTypeTreeItemChildrenCollectionRepository as api };