Skip to content

Commit 3dfd17e

Browse files
committed
render most basic folder workspace
1 parent 296d357 commit 3dfd17e

File tree

6 files changed

+50
-70
lines changed

6 files changed

+50
-70
lines changed
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,2 @@
11
export * from './constants.js';
2+
export * from './document-type-folder.repository.js';
Lines changed: 7 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,20 @@
11
import { UMB_DOCUMENT_TYPE_FOLDER_ENTITY_TYPE } from '../../../entity.js';
2-
import type { UmbDocumentTypeFolderRepository } from '../repository/index.js';
2+
import {
3+
UMB_DOCUMENT_TYPE_FOLDER_REPOSITORY_ALIAS,
4+
type UmbDocumentTypeFolderRepository,
5+
} from '../repository/index.js';
36
import { UMB_DOCUMENT_TYPE_FOLDER_WORKSPACE_ALIAS } from './constants.js';
47
import { UmbFolderWorkspaceEditorElement } from './folder-editor.element.js';
58
import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api';
69
import {
710
UmbEntityDetailWorkspaceContextBase,
811
type UmbRoutableWorkspaceContext,
912
type UmbSubmittableWorkspaceContext,
10-
UmbWorkspaceIsNewRedirectController,
1113
} from '@umbraco-cms/backoffice/workspace';
1214
import type { IRoutingInfo, PageComponent } from '@umbraco-cms/backoffice/router';
1315
import type { UmbFolderModel } from '@umbraco-cms/backoffice/tree';
1416

15-
export class UmbScriptWorkspaceContext
17+
export class UmbDocumentTypeFolderWorkspaceContext
1618
extends UmbEntityDetailWorkspaceContextBase<UmbFolderModel, UmbDocumentTypeFolderRepository>
1719
implements UmbSubmittableWorkspaceContext, UmbRoutableWorkspaceContext
1820
{
@@ -25,25 +27,10 @@ export class UmbScriptWorkspaceContext
2527
super(host, {
2628
workspaceAlias: UMB_DOCUMENT_TYPE_FOLDER_WORKSPACE_ALIAS,
2729
entityType: UMB_DOCUMENT_TYPE_FOLDER_ENTITY_TYPE,
28-
detailRepositoryAlias: 'Umb.Repository.DocumentType.Folder',
30+
detailRepositoryAlias: UMB_DOCUMENT_TYPE_FOLDER_REPOSITORY_ALIAS,
2931
});
3032

3133
this.routes.setRoutes([
32-
{
33-
path: 'create/parent/:entityType/:parentUnique',
34-
component: UmbFolderWorkspaceEditorElement,
35-
setup: async (component: PageComponent, info: IRoutingInfo) => {
36-
const parentEntityType = info.match.params.entityType;
37-
const parentUnique = info.match.params.parentUnique === 'null' ? null : info.match.params.parentUnique;
38-
this.createScaffold({ parent: { entityType: parentEntityType, unique: parentUnique } });
39-
40-
new UmbWorkspaceIsNewRedirectController(
41-
this,
42-
this,
43-
this.getHostElement().shadowRoot!.querySelector('umb-router-slot')!,
44-
);
45-
},
46-
},
4734
{
4835
path: 'edit/:unique',
4936
component: UmbFolderWorkspaceEditorElement,
@@ -65,4 +52,4 @@ export class UmbScriptWorkspaceContext
6552
}
6653
}
6754

68-
export { UmbScriptWorkspaceContext as api };
55+
export { UmbDocumentTypeFolderWorkspaceContext as api };
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
import { UMB_DOCUMENT_TYPE_FOLDER_ENTITY_TYPE } from '../../../entity.js';
2+
import type { UmbDocumentTypeFolderWorkspaceContext } from './document-type-folder-workspace.context.js';
3+
import { UmbContextToken } from '@umbraco-cms/backoffice/context-api';
4+
import type { UmbWorkspaceContext } from '@umbraco-cms/backoffice/workspace';
5+
6+
export const UMB_DOCUMENT_TYPE_FOLDER_WORKSPACE_CONTEXT = new UmbContextToken<
7+
UmbWorkspaceContext,
8+
UmbDocumentTypeFolderWorkspaceContext
9+
>(
10+
'UmbWorkspaceContext',
11+
undefined,
12+
(context): context is UmbDocumentTypeFolderWorkspaceContext =>
13+
context.getEntityType?.() === UMB_DOCUMENT_TYPE_FOLDER_ENTITY_TYPE,
14+
);

src/packages/documents/document-types/tree/folder/workspace/folder-collection-workspace-view.element.ts

Lines changed: 0 additions & 27 deletions
This file was deleted.

src/packages/documents/document-types/tree/folder/workspace/folder-editor.element.ts

Lines changed: 28 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,37 @@
1-
import { css, html, customElement } from '@umbraco-cms/backoffice/external/lit';
2-
import { UmbLitElement, umbFocus } from '@umbraco-cms/backoffice/lit-element';
1+
import { UMB_DOCUMENT_TYPE_FOLDER_WORKSPACE_ALIAS } from './constants.js';
2+
import { UMB_DOCUMENT_TYPE_FOLDER_WORKSPACE_CONTEXT } from './document-type-folder.workspace.context-token.js';
3+
import { css, html, customElement, state } from '@umbraco-cms/backoffice/external/lit';
4+
import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element';
35
import { UmbTextStyles } from '@umbraco-cms/backoffice/style';
46

57
const elementName = 'umb-folder-workspace-editor';
68
@customElement(elementName)
79
export class UmbFolderWorkspaceEditorElement extends UmbLitElement {
10+
@state()
11+
private _name = '';
12+
13+
#workspaceContext?: typeof UMB_DOCUMENT_TYPE_FOLDER_WORKSPACE_CONTEXT.TYPE;
14+
15+
constructor() {
16+
super();
17+
18+
this.consumeContext(UMB_DOCUMENT_TYPE_FOLDER_WORKSPACE_CONTEXT, (workspaceContext) => {
19+
this.#workspaceContext = workspaceContext;
20+
this.#observeName();
21+
});
22+
}
23+
24+
#observeName() {
25+
if (!this.#workspaceContext) return;
26+
this.observe(this.#workspaceContext.name, (name) => {
27+
if (name !== this._name) {
28+
this._name = name ?? '';
29+
}
30+
});
31+
}
32+
833
override render() {
9-
return html`<umb-workspace-editor alias="Umb.Workspace.DocumentType.Folder">
10-
<div id="header" slot="header">
11-
<uui-input label="Folder name" value="" ${umbFocus()}></uui-input>
12-
</div>
34+
return html`<umb-workspace-editor headline=${this._name} alias=${UMB_DOCUMENT_TYPE_FOLDER_WORKSPACE_ALIAS}>
1335
</umb-workspace-editor>`;
1436
}
1537

src/packages/documents/document-types/tree/folder/workspace/manifests.ts

Lines changed: 0 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -12,21 +12,4 @@ export const manifests: Array<UmbExtensionManifest> = [
1212
entityType: UMB_DOCUMENT_TYPE_FOLDER_ENTITY_TYPE,
1313
},
1414
},
15-
{
16-
type: 'workspaceView',
17-
alias: 'Umb.WorkspaceView.DocumentType.FolderCollection',
18-
name: 'Document Type Folder Collection Workspace View',
19-
element: () => import('./folder-collection-workspace-view.element.js'),
20-
meta: {
21-
pathname: 'folder',
22-
label: 'Folder',
23-
icon: 'folder',
24-
},
25-
conditions: [
26-
{
27-
alias: 'Umb.Condition.WorkspaceAlias',
28-
match: UMB_DOCUMENT_TYPE_FOLDER_WORKSPACE_ALIAS,
29-
},
30-
],
31-
},
3215
];

0 commit comments

Comments
 (0)