From 56ad30b6c8502e1e6d3813a56e9b7c092d0f58df Mon Sep 17 00:00:00 2001 From: Julia Gru <56249914+julczka@users.noreply.github.com> Date: Mon, 17 Jul 2023 12:41:30 +0200 Subject: [PATCH] fix manifest kind, rename repository class, add tree root --- .../partial-views/repository/manifests.ts | 4 +-- .../repository/partial-views.repository.ts | 25 +++++++++++++------ .../partial-views/tree/manifests.ts | 11 +++++--- .../partial-views-workspace.context.ts | 9 ++++--- 4 files changed, 34 insertions(+), 15 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/repository/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/repository/manifests.ts index 00bb7da139..5079e7c932 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/repository/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/repository/manifests.ts @@ -1,4 +1,4 @@ -import { UmbTemplateRepository } from '../repository/partial-views.repository.js'; +import { UmbPartialViewsRepository } from '../repository/partial-views.repository.js'; import { PARTIAL_VIEW_REPOSITORY_ALIAS } from '../config.js'; import { UmbPartialViewsTreeStore } from './partial-views.tree.store.js'; import { UmbPartialViewsStore } from './partial-views.store.js'; @@ -8,7 +8,7 @@ const repository: ManifestRepository = { type: 'repository', alias: PARTIAL_VIEW_REPOSITORY_ALIAS, name: 'Partial Views Repository', - class: UmbTemplateRepository, + class: UmbPartialViewsRepository, }; export const PARTIAL_VIEW_STORE_ALIAS = 'Umb.Store.PartialViews'; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/repository/partial-views.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/repository/partial-views.repository.ts index ba053e001f..48602b6c59 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/repository/partial-views.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/repository/partial-views.repository.ts @@ -4,11 +4,14 @@ import { UmbPartialViewsTreeStore, UMB_PARTIAL_VIEW_TREE_STORE_CONTEXT_TOKEN } f import { Observable } from '@umbraco-cms/backoffice/external/rxjs'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UmbContextConsumerController } from '@umbraco-cms/backoffice/context-api'; -import { ProblemDetails } from '@umbraco-cms/backoffice/backend-api'; +import { EntityTreeItemResponseModel, ProblemDetails } from '@umbraco-cms/backoffice/backend-api'; import { UmbDetailRepository, UmbTreeRepository } from '@umbraco-cms/backoffice/repository'; import { UmbTreeRootEntityModel } from '@umbraco-cms/backoffice/tree'; +import { PARTIAL_VIEW_ROOT_ENTITY_TYPE } from '../config.js'; -export class UmbTemplateRepository implements UmbTreeRepository, UmbDetailRepository { +export class UmbPartialViewsRepository + implements UmbTreeRepository, UmbDetailRepository +{ #init; #host: UmbControllerHostElement; @@ -30,11 +33,6 @@ export class UmbTemplateRepository implements UmbTreeRepository, UmbDetailR ]); } - requestTreeRoot(): Promise<{ data?: UmbTreeRootEntityModel | undefined; error?: ProblemDetails | undefined }> { - //throw new Error('Method not implemented.'); - return { data: undefined, error: undefined } as any; - } - requestItemsLegacy?: | ((uniques: string[]) => Promise<{ data?: any[] | undefined; @@ -58,6 +56,19 @@ export class UmbTemplateRepository implements UmbTreeRepository, UmbDetailR // TREE: + async requestTreeRoot() { + await this.#init; + + const data = { + id: null, + type: PARTIAL_VIEW_ROOT_ENTITY_TYPE, + name: 'Partial Views', + icon: 'umb:folder', + hasChildren: true, + }; + return { data }; + } + async requestRootTreeItems() { await this.#init; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/tree/manifests.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/tree/manifests.ts index 0b1cc36d6b..9c051485fc 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/tree/manifests.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/tree/manifests.ts @@ -1,4 +1,9 @@ -import { PARTIAL_VIEW_ENTITY_TYPE, PARTIAL_VIEW_REPOSITORY_ALIAS, PARTIAL_VIEW_TREE_ALIAS } from '../config.js'; +import { + PARTIAL_VIEW_ENTITY_TYPE, + PARTIAL_VIEW_REPOSITORY_ALIAS, + PARTIAL_VIEW_ROOT_ENTITY_TYPE, + PARTIAL_VIEW_TREE_ALIAS, +} from '../config.js'; import type { ManifestTree, ManifestTreeItem } from '@umbraco-cms/backoffice/extension-registry'; const tree: ManifestTree = { @@ -12,11 +17,11 @@ const tree: ManifestTree = { const treeItem: ManifestTreeItem = { type: 'treeItem', - kind: 'fileSystem', + kind: 'entity', alias: 'Umb.TreeItem.PartialViews', name: 'Partial Views Tree Item', conditions: { - entityTypes: [PARTIAL_VIEW_ENTITY_TYPE], + entityTypes: [PARTIAL_VIEW_ENTITY_TYPE, PARTIAL_VIEW_ROOT_ENTITY_TYPE], }, }; diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/workspace/partial-views-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/workspace/partial-views-workspace.context.ts index 94e1fd891b..20547409e6 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/workspace/partial-views-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/partial-views/workspace/partial-views-workspace.context.ts @@ -1,10 +1,13 @@ -import { UmbTemplateRepository } from '../repository/partial-views.repository.js'; +import { UmbPartialViewsRepository } from '../repository/partial-views.repository.js'; import { createObservablePart, UmbDeepState } from '@umbraco-cms/backoffice/observable-api'; import { TemplateResponseModel } from '@umbraco-cms/backoffice/backend-api'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; import { UmbWorkspaceContext } from '@umbraco-cms/backoffice/workspace'; -export class UmbPartialViewsWorkspaceContext extends UmbWorkspaceContext { +export class UmbPartialViewsWorkspaceContext extends UmbWorkspaceContext< + UmbPartialViewsRepository, + TemplateResponseModel +> { getEntityId(): string | undefined { throw new Error('Method not implemented.'); } @@ -23,7 +26,7 @@ export class UmbPartialViewsWorkspaceContext extends UmbWorkspaceContext data?.content); constructor(host: UmbControllerHostElement) { - super(host, new UmbTemplateRepository(host)); + super(host, new UmbPartialViewsRepository(host)); } getData() {