bring back temp solution to refresh templating trees

This commit is contained in:
Mads Rasmussen
2023-11-16 19:19:10 +01:00
parent 123766d5bc
commit 90240613b2
8 changed files with 41 additions and 47 deletions

View File

@@ -2,9 +2,10 @@ import {
UMB_PARTIAL_VIEW_ENTITY_TYPE,
UMB_PARTIAL_VIEW_FOLDER_EMPTY_ENTITY_TYPE,
UMB_PARTIAL_VIEW_FOLDER_ENTITY_TYPE,
UMB_PARTIAL_VIEW_REPOSITORY_ALIAS,
UMB_PARTIAL_VIEW_ROOT_ENTITY_TYPE,
} from '../entity.js';
import { UMB_PARTIAL_VIEW_REPOSITORY_ALIAS } from '../repository/index.js';
import { UmbCreateFromSnippetPartialViewAction } from './create/create-from-snippet.action.js';
import { UmbCreateEmptyPartialViewAction } from './create/create-empty.action.js';
import {

View File

@@ -1 +1,2 @@
export * from './partial-view.repository.js';
export { UmbPartialViewRepository } from './partial-view.repository.js';
export { UMB_PARTIAL_VIEW_REPOSITORY_ALIAS } from './manifests.js';

View File

@@ -2,20 +2,20 @@ import { UmbPartialViewRepository } from './partial-view.repository.js';
import { UmbPartialViewStore } from './partial-view.store.js';
import { ManifestRepository, ManifestStore } from '@umbraco-cms/backoffice/extension-registry';
export const PARTIAL_VIEW_REPOSITORY_ALIAS = 'Umb.Repository.PartialView';
export const UMB_PARTIAL_VIEW_REPOSITORY_ALIAS = 'Umb.Repository.PartialView';
const repository: ManifestRepository = {
type: 'repository',
alias: PARTIAL_VIEW_REPOSITORY_ALIAS,
alias: UMB_PARTIAL_VIEW_REPOSITORY_ALIAS,
name: 'Partial View Repository',
api: UmbPartialViewRepository,
};
export const PARTIAL_VIEW_STORE_ALIAS = 'Umb.Store.PartialView';
export const UMB_PARTIAL_VIEW_STORE_ALIAS = 'Umb.Store.PartialView';
const store: ManifestStore = {
type: 'store',
alias: PARTIAL_VIEW_STORE_ALIAS,
alias: UMB_PARTIAL_VIEW_STORE_ALIAS,
name: 'Partial View Store',
api: UmbPartialViewStore,
};

View File

@@ -1,5 +1,5 @@
import { UmbPartialViewTreeRepository } from '../tree/index.js';
import { UmbPartialViewDetailServerDataSource } from './sources/partial-view-detail.server.data-source.js';
import { UmbPartialViewTreeStore, UMB_PARTIAL_VIEW_TREE_STORE_CONTEXT_TOKEN } from './partial-views.tree.store.js';
import {
PartialViewGetFolderResponse,
UmbPartialViewFolderServerDataSource,
@@ -39,22 +39,17 @@ export class UmbPartialViewRepository
UmbFolderRepository,
UmbApi
{
#init;
#detailDataSource: UmbPartialViewDetailServerDataSource;
#folderDataSource: UmbPartialViewFolderServerDataSource;
#treeStore?: UmbPartialViewTreeStore;
// TODO: temp solution until it is automated
#treeRepository = new UmbPartialViewTreeRepository(this);
constructor(host: UmbControllerHostElement) {
super(host);
this.#detailDataSource = new UmbPartialViewDetailServerDataSource(this);
this.#folderDataSource = new UmbPartialViewFolderServerDataSource(this);
this.#init = this.consumeContext(UMB_PARTIAL_VIEW_TREE_STORE_CONTEXT_TOKEN, (instance) => {
this.#treeStore = instance;
}).asPromise();
}
//#region FOLDER
@@ -67,23 +62,22 @@ export class UmbPartialViewRepository
};
return Promise.resolve({ data, error: undefined });
}
async createFolder(
requestBody: CreateFolderRequestModel,
): Promise<{ data?: string | undefined; error?: ProblemDetails | undefined }> {
await this.#init;
const req = {
parentPath: requestBody.parentId,
name: requestBody.name,
};
const promise = this.#folderDataSource.create(req);
await promise;
this.requestTreeItemsOf(requestBody.parentId ? requestBody.parentId : null);
this.#treeRepository.requestTreeItemsOf(requestBody.parentId ? requestBody.parentId : null);
return promise;
}
async requestFolder(
unique: string,
): Promise<{ data?: PartialViewGetFolderResponse | undefined; error?: ProblemDetails | undefined }> {
await this.#init;
return this.#folderDataSource.read(unique);
}
updateFolder(
@@ -93,11 +87,10 @@ export class UmbPartialViewRepository
throw new Error('Method not implemented.');
}
async deleteFolder(path: string): Promise<{ error?: ProblemDetails | undefined }> {
await this.#init;
const { data } = await this.requestFolder(path);
const promise = this.#folderDataSource.delete(path);
await promise;
this.requestTreeItemsOf(data?.parentPath ? data?.parentPath : null);
this.#treeRepository.requestTreeItemsOf(data?.parentPath ? data?.parentPath : null);
return promise;
}
//#endregion
@@ -105,7 +98,6 @@ export class UmbPartialViewRepository
//#region DETAILS
async requestByKey(path: string) {
if (!path) throw new Error('Path is missing');
await this.#init;
const { data, error } = await this.#detailDataSource.read(path);
return { data, error };
}
@@ -113,6 +105,7 @@ export class UmbPartialViewRepository
requestById(id: string): Promise<DataSourceResponse<any>> {
throw new Error('Method not implemented.');
}
byId(id: string): Promise<Observable<any>> {
throw new Error('Method not implemented.');
}
@@ -120,19 +113,22 @@ export class UmbPartialViewRepository
createScaffold(parentId: string | null, preset: string): Promise<DataSourceResponse<TextFileResponseModelBaseModel>> {
return this.#detailDataSource.createScaffold(parentId, preset);
}
async create(data: CreatePartialViewRequestModel): Promise<DataSourceResponse<any>> {
const promise = this.#detailDataSource.create(data);
await promise;
this.requestTreeItemsOf(data.parentPath ? data.parentPath : null);
this.#treeRepository.requestTreeItemsOf(data.parentPath ? data.parentPath : null);
return promise;
}
save(id: string, requestBody: UpdatePartialViewRequestModel): Promise<UmbDataSourceErrorResponse> {
return this.#detailDataSource.update(id, requestBody);
}
async delete(id: string): Promise<UmbDataSourceErrorResponse> {
const promise = this.#detailDataSource.delete(id);
const parentPath = id.substring(0, id.lastIndexOf('/'));
this.requestTreeItemsOf(parentPath ? parentPath : null);
this.#treeRepository.requestTreeItemsOf(parentPath ? parentPath : null);
return promise;
}

View File

@@ -1,4 +1,4 @@
import { PartialViewDetails } from '../../config.js';
import { UmbPartialViewDetailModel } from '../../types.js';
import {
CreatePartialViewRequestModel,
PagedSnippetItemResponseModel,
@@ -35,7 +35,10 @@ export class UmbPartialViewDetailServerDataSource
* @return {*} {Promise<DataSourceResponse<PartialViewDetails>>}
* @memberof UmbPartialViewDetailServerDataSource
*/
createScaffold(parentId: string | null = null, preset: string): Promise<DataSourceResponse<PartialViewDetails>> {
createScaffold(
parentId: string | null = null,
preset: string,
): Promise<DataSourceResponse<UmbPartialViewDetailModel>> {
return tryExecuteAndNotify(this.#host, PartialViewResource.getPartialViewSnippetByName({ name: preset }));
}
/**

View File

@@ -42,7 +42,7 @@ export class UmbPartialViewWorkspaceContext
return Promise.resolve();
}
#data = new UmbDeepState<PartialViewDetails | undefined>(undefined);
#data = new UmbDeepState<UmbPartialViewDetailModel | undefined>(undefined);
data = this.#data.asObservable();
name = this.#data.asObservablePart((data) => data?.name);
content = this.#data.asObservablePart((data) => data?.content);

View File

@@ -1,4 +1,4 @@
import { UMB_SCRIPT_TREE_STORE_CONTEXT, UmbScriptTreeStore } from '../tree/index.js';
import { UmbScriptTreeRepository } from '../tree/index.js';
import { UmbScriptServerDataSource } from './sources/script-detail.server.data.js';
import { ScriptGetFolderResponse, UmbScriptFolderServerDataSource } from './sources/script-folder.server.data.js';
import {
@@ -29,22 +29,17 @@ export class UmbScriptRepository
UmbFolderRepository,
UmbApi
{
#init;
#detailDataSource: UmbScriptServerDataSource;
#folderDataSource: UmbScriptFolderServerDataSource;
#treeStore?: UmbScriptTreeStore;
// TODO: temp solution until it is automated
#treeRepository = new UmbScriptTreeRepository(this);
constructor(host: UmbControllerHost) {
super(host);
this.#detailDataSource = new UmbScriptServerDataSource(this);
this.#folderDataSource = new UmbScriptFolderServerDataSource(this);
this.#init = this.consumeContext(UMB_SCRIPT_TREE_STORE_CONTEXT, (instance) => {
this.#treeStore = instance;
}).asPromise();
}
//#region FOLDER
@@ -60,20 +55,18 @@ export class UmbScriptRepository
async createFolder(
requestBody: CreateFolderRequestModel,
): Promise<{ data?: string | undefined; error?: ProblemDetails | undefined }> {
await this.#init;
const req = {
parentPath: requestBody.parentId,
name: requestBody.name,
};
const promise = this.#folderDataSource.create(req);
await promise;
//this.requestTreeItemsOf(requestBody.parentId ? requestBody.parentId : null);
this.#treeRepository.requestTreeItemsOf(requestBody.parentId ? requestBody.parentId : null);
return promise;
}
async requestFolder(
unique: string,
): Promise<{ data?: ScriptGetFolderResponse | undefined; error?: ProblemDetails | undefined }> {
await this.#init;
return this.#folderDataSource.read(unique);
}
updateFolder(
@@ -83,11 +76,10 @@ export class UmbScriptRepository
throw new Error('Method not implemented.');
}
async deleteFolder(path: string): Promise<{ error?: ProblemDetails | undefined }> {
await this.#init;
const { data } = await this.requestFolder(path);
const promise = this.#folderDataSource.delete(path);
await promise;
//this.requestTreeItemsOf(data?.parentPath ? data?.parentPath : null);
this.#treeRepository.requestTreeItemsOf(data?.parentPath ? data?.parentPath : null);
return promise;
}
//#endregion
@@ -95,7 +87,6 @@ export class UmbScriptRepository
//#region DETAILS
async requestByKey(path: string) {
if (!path) throw new Error('Path is missing');
await this.#init;
const { data, error } = await this.#detailDataSource.read(path);
return { data, error };
}
@@ -113,7 +104,7 @@ export class UmbScriptRepository
async create(data: CreateScriptRequestModel): Promise<DataSourceResponse<any>> {
const promise = this.#detailDataSource.create(data);
await promise;
//this.requestTreeItemsOf(data.parentPath ? data.parentPath : null);
this.#treeRepository.requestTreeItemsOf(data.parentPath ? data.parentPath : null);
return promise;
}
save(id: string, requestBody: UpdateScriptRequestModel): Promise<UmbDataSourceErrorResponse> {
@@ -122,7 +113,7 @@ export class UmbScriptRepository
async delete(id: string): Promise<UmbDataSourceErrorResponse> {
const promise = this.#detailDataSource.delete(id);
const parentPath = id.substring(0, id.lastIndexOf('/'));
//this.requestTreeItemsOf(parentPath ? parentPath : null);
this.#treeRepository.requestTreeItemsOf(parentPath ? parentPath : null);
return promise;
}

View File

@@ -1,4 +1,5 @@
import { StylesheetDetails } from '../index.js';
import { UmbStylesheetTreeRepository } from '../tree/index.js';
import { UmbStylesheetServerDataSource } from './sources/stylesheet.server.data.js';
import {
StylesheetGetFolderResponse,
@@ -12,14 +13,12 @@ import {
UmbDetailRepository,
UmbFolderRepository,
} from '@umbraco-cms/backoffice/repository';
import { UmbTreeRepository } from '@umbraco-cms/backoffice/tree';
import {
CreateFolderRequestModel,
CreateStylesheetRequestModel,
CreateTextFileViewModelBaseModel,
ExtractRichTextStylesheetRulesRequestModel,
ExtractRichTextStylesheetRulesResponseModel,
FileSystemTreeItemPresentationModel,
FolderModelBaseModel,
FolderResponseModel,
InterpolateRichTextStylesheetRequestModel,
@@ -43,6 +42,9 @@ export class UmbStylesheetRepository
#dataSource;
#folderDataSource;
// TODO: temp solution until it is automated
#treeRepository = new UmbStylesheetTreeRepository(this);
constructor(host: UmbControllerHostElement) {
super(host);
@@ -72,7 +74,7 @@ export class UmbStylesheetRepository
};
const promise = this.#folderDataSource.create(req);
await promise;
//this.requestTreeItemsOf(folderRequest.parentId ? folderRequest.parentId : null);
this.#treeRepository.requestTreeItemsOf(folderRequest.parentId ? folderRequest.parentId : null);
return promise;
}
@@ -93,7 +95,7 @@ export class UmbStylesheetRepository
const { data } = await this.requestFolder(path);
const promise = this.#folderDataSource.delete(path);
await promise;
//this.requestTreeItemsOf(data?.parentPath ? data?.parentPath : null);
this.#treeRepository.requestTreeItemsOf(data?.parentPath ? data?.parentPath : null);
return promise;
}
@@ -120,7 +122,7 @@ export class UmbStylesheetRepository
async create(data: CreateTextFileViewModelBaseModel): Promise<DataSourceResponse<string>> {
const promise = this.#dataSource.create(data);
await promise;
//this.requestTreeItemsOf(data.parentPath ? data.parentPath : null);
this.#treeRepository.requestTreeItemsOf(data.parentPath ? data.parentPath : null);
return promise;
}
@@ -131,7 +133,7 @@ export class UmbStylesheetRepository
delete(id: string): Promise<UmbDataSourceErrorResponse> {
const promise = this.#dataSource.delete(id);
const parentPath = id.substring(0, id.lastIndexOf('/'));
//this.requestTreeItemsOf(parentPath ? parentPath : null);
this.#treeRepository.requestTreeItemsOf(parentPath ? parentPath : null);
return promise;
}