remove parents
This commit is contained in:
@@ -7,7 +7,7 @@ export interface UmbDetailDataSourceConstructor<DetailType = any> {
|
||||
|
||||
export interface UmbDetailDataSource<DetailType> {
|
||||
createScaffold(preset?: Partial<DetailType>): Promise<UmbDataSourceResponse<DetailType>>;
|
||||
create(data: DetailType): Promise<UmbDataSourceResponse<DetailType>>;
|
||||
create(data: DetailType, parentUnique: string | null): Promise<UmbDataSourceResponse<DetailType>>;
|
||||
read(unique: string): Promise<UmbDataSourceResponse<DetailType>>;
|
||||
update(data: DetailType): Promise<UmbDataSourceResponse<DetailType>>;
|
||||
delete(unique: string): Promise<UmbDataSourceResponse>;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import type { UmbDataSourceResponse, UmbDataSourceErrorResponse } from '@umbraco-cms/backoffice/repository';
|
||||
import type { UmbCreateFolderModel, UmbFolderModel, UmbUpdateFolderModel } from './types.js';
|
||||
import type { UmbDataSourceResponse, UmbDataSourceErrorResponse } from '@umbraco-cms/backoffice/repository';
|
||||
import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api';
|
||||
|
||||
export interface UmbFolderDataSourceConstructor {
|
||||
|
||||
@@ -11,6 +11,7 @@ import { UMB_NOTIFICATION_CONTEXT } from '@umbraco-cms/backoffice/notification';
|
||||
|
||||
export type UmbFolderToTreeItemMapper<FolderTreeItemType extends UmbTreeItemModelBase> = (
|
||||
item: UmbFolderModel,
|
||||
parentUnique: string | null,
|
||||
) => FolderTreeItemType;
|
||||
|
||||
export abstract class UmbFolderRepositoryBase<FolderTreeItemType extends UmbTreeItemModelBase>
|
||||
@@ -70,7 +71,7 @@ export abstract class UmbFolderRepositoryBase<FolderTreeItemType extends UmbTree
|
||||
const { data, error } = await this.#folderDataSource.create(args);
|
||||
|
||||
if (data) {
|
||||
const folderTreeItem = this.#folderToTreeItemMapper(data);
|
||||
const folderTreeItem = this.#folderToTreeItemMapper(data, args.parentUnique);
|
||||
this._treeStore!.append(folderTreeItem);
|
||||
|
||||
const notification = { data: { message: `Folder created` } };
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
export interface UmbFolderModel {
|
||||
unique: string;
|
||||
parentUnique: string | null;
|
||||
name: string;
|
||||
}
|
||||
|
||||
|
||||
@@ -12,10 +12,13 @@ export class UmbDataTypeFolderRepository extends UmbFolderRepositoryBase<UmbData
|
||||
}
|
||||
}
|
||||
|
||||
const folderToDataTypeTreeItemMapper = (folder: UmbFolderModel): UmbDataTypeFolderTreeItemModel => {
|
||||
const folderToDataTypeTreeItemMapper = (
|
||||
folder: UmbFolderModel,
|
||||
parentUnique: string | null,
|
||||
): UmbDataTypeFolderTreeItemModel => {
|
||||
return {
|
||||
unique: folder.unique,
|
||||
parentUnique: folder.parentUnique,
|
||||
parentUnique,
|
||||
name: folder.name,
|
||||
entityType: UMB_DATA_TYPE_FOLDER_ENTITY_TYPE,
|
||||
hasChildren: false,
|
||||
|
||||
@@ -41,7 +41,6 @@ export class UmbDataTypeFolderServerDataSource implements UmbFolderDataSource {
|
||||
const mappedData = {
|
||||
unique: data.id,
|
||||
name: data.name,
|
||||
parentUnique: data.parent ? data.parent.id : null,
|
||||
};
|
||||
|
||||
return { data: mappedData };
|
||||
|
||||
@@ -17,10 +17,13 @@ export class UmbDocumentTypeFolderRepository extends UmbFolderRepositoryBase<Umb
|
||||
}
|
||||
}
|
||||
|
||||
const folderToDocumentTypeTreeItemMapper = (folder: UmbFolderModel): UmbDocumentTypeFolderTreeItemModel => {
|
||||
const folderToDocumentTypeTreeItemMapper = (
|
||||
folder: UmbFolderModel,
|
||||
parentUnique: string | null,
|
||||
): UmbDocumentTypeFolderTreeItemModel => {
|
||||
return {
|
||||
unique: folder.unique,
|
||||
parentUnique: folder.parentUnique,
|
||||
parentUnique,
|
||||
name: folder.name,
|
||||
entityType: UMB_DOCUMENT_TYPE_FOLDER_ENTITY_TYPE,
|
||||
hasChildren: false,
|
||||
|
||||
@@ -41,7 +41,6 @@ export class UmbDocumentTypeFolderServerDataSource implements UmbFolderDataSourc
|
||||
const mappedData = {
|
||||
unique: data.id,
|
||||
name: data.name,
|
||||
parentUnique: data.parent ? data.parent.id : null,
|
||||
};
|
||||
|
||||
return { data: mappedData };
|
||||
|
||||
@@ -14,10 +14,10 @@ export class UmbMediaTypeFolderRepository extends UmbFolderRepositoryBase<UmbMed
|
||||
|
||||
export default UmbMediaTypeFolderRepository;
|
||||
|
||||
const folderToMediaTypeTreeItemMapper = (folder: UmbFolderModel) => {
|
||||
const folderToMediaTypeTreeItemMapper = (folder: UmbFolderModel, parentUnique: string | null) => {
|
||||
const folderTreeItem: UmbMediaTypeFolderTreeItemModel = {
|
||||
unique: folder.unique,
|
||||
parentUnique: folder.parentUnique,
|
||||
parentUnique,
|
||||
name: folder.name,
|
||||
entityType: UMB_MEDIA_TYPE_FOLDER_ENTITY_TYPE,
|
||||
hasChildren: false,
|
||||
|
||||
@@ -41,7 +41,6 @@ export class UmbMediaTypeFolderServerDataSource implements UmbFolderDataSource {
|
||||
const mappedData = {
|
||||
unique: data.id,
|
||||
name: data.name,
|
||||
parentUnique: data.parent ? data.parent.id : null,
|
||||
};
|
||||
|
||||
return { data: mappedData };
|
||||
|
||||
@@ -17,10 +17,13 @@ export class UmbPartialViewFolderRepository extends UmbFolderRepositoryBase<UmbP
|
||||
}
|
||||
}
|
||||
|
||||
const folderToPartialViewTreeItemFolder = (folder: UmbFolderModel): UmbPartialViewTreeItemModel => {
|
||||
const folderToPartialViewTreeItemFolder = (
|
||||
folder: UmbFolderModel,
|
||||
parentUnique: string | null,
|
||||
): UmbPartialViewTreeItemModel => {
|
||||
return {
|
||||
unique: folder.unique,
|
||||
parentUnique: folder.parentUnique,
|
||||
parentUnique,
|
||||
name: folder.name,
|
||||
entityType: UMB_PARTIAL_VIEW_FOLDER_ENTITY_TYPE,
|
||||
isFolder: true,
|
||||
|
||||
@@ -14,10 +14,10 @@ export class UmbScriptFolderRepository extends UmbFolderRepositoryBase<UmbScript
|
||||
|
||||
export default UmbScriptFolderRepository;
|
||||
|
||||
const folderToScriptTreeItemFolder = (folder: UmbFolderModel): UmbScriptTreeItemModel => {
|
||||
const folderToScriptTreeItemFolder = (folder: UmbFolderModel, parentUnique: string | null): UmbScriptTreeItemModel => {
|
||||
return {
|
||||
unique: folder.unique,
|
||||
parentUnique: folder.parentUnique,
|
||||
parentUnique,
|
||||
name: folder.name,
|
||||
entityType: UMB_SCRIPT_FOLDER_ENTITY_TYPE,
|
||||
isFolder: true,
|
||||
|
||||
@@ -19,10 +19,13 @@ export class UmbStylesheetFolderRepository extends UmbFolderRepositoryBase<UmbSt
|
||||
|
||||
export default UmbStylesheetFolderRepository;
|
||||
|
||||
const folderToStylesheetTreeItemFolder = (folder: UmbFolderModel): UmbStylesheetTreeItemModel => {
|
||||
const folderToStylesheetTreeItemFolder = (
|
||||
folder: UmbFolderModel,
|
||||
parentUnique: string | null,
|
||||
): UmbStylesheetTreeItemModel => {
|
||||
return {
|
||||
unique: folder.unique,
|
||||
parentUnique: folder.parentUnique,
|
||||
parentUnique,
|
||||
name: folder.name,
|
||||
entityType: UMB_STYLESHEET_FOLDER_ENTITY_TYPE,
|
||||
isFolder: true,
|
||||
|
||||
Reference in New Issue
Block a user