Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import { UmbContextConsumerController } from '@umbraco-cms/backoffice/context-ap
import type { UmbModalManagerContext } from '@umbraco-cms/backoffice/modal';
import { UMB_MODAL_MANAGER_CONTEXT } from '@umbraco-cms/backoffice/modal';

export class UmbMediaTrashEntityBulkAction extends UmbEntityBulkActionBase<UmbMediaDetailRepository> {
export class UmbMediaDeleteEntityBulkAction extends UmbEntityBulkActionBase<UmbMediaDetailRepository> {
#modalContext?: UmbModalManagerContext;

constructor(host: UmbControllerHostElement, repositoryAlias: string, selection: Array<string>) {
Expand All @@ -17,7 +17,8 @@ export class UmbMediaTrashEntityBulkAction extends UmbEntityBulkActionBase<UmbMe
}

async execute() {
alert('not implemented');
console.log(`execute delete for: ${this.selection}`);

// TODO: show error
if (!this.#modalContext || !this.repository) return;

Expand Down
57 changes: 34 additions & 23 deletions src/packages/media/media/entity-bulk-actions/manifests.ts
Original file line number Diff line number Diff line change
@@ -1,66 +1,77 @@
import type { UmbCollectionBulkActionPermissions } from '../../../core/collection/types.js';
import { UMB_MEDIA_DETAIL_REPOSITORY_ALIAS } from '../repository/index.js';
import { UMB_MEDIA_COLLECTION_ALIAS } from '../collection/index.js';
import { UmbMediaMoveEntityBulkAction } from './move/move.action.js';
import { UmbMediaCopyEntityBulkAction } from './copy/copy.action.js';
import { UmbMediaTrashEntityBulkAction } from './trash/trash.action.js';
import { UmbMediaDeleteEntityBulkAction } from './delete/delete.action.js';
import type { ManifestEntityBulkAction } from '@umbraco-cms/backoffice/extension-registry';
import { UMB_COLLECTION_ALIAS_CONDITION } from '@umbraco-cms/backoffice/collection';
import {
UMB_COLLECTION_ALIAS_CONDITION,
UMB_COLLECTION_BULK_ACTION_PERMISSION_CONDITION,
} from '@umbraco-cms/backoffice/collection';

const entityActions: Array<ManifestEntityBulkAction> = [
export const manifests: Array<ManifestEntityBulkAction> = [
{
type: 'entityBulkAction',
alias: 'Umb.EntityBulkAction.Media.Move',
name: 'Move Media Entity Bulk Action',
weight: 100,
api: UmbMediaMoveEntityBulkAction,
alias: 'Umb.EntityBulkAction.Media.Copy',
name: 'Copy Media Entity Bulk Action',
weight: 30,
api: UmbMediaCopyEntityBulkAction,
meta: {
label: 'Move',
label: 'Copy',
repositoryAlias: UMB_MEDIA_DETAIL_REPOSITORY_ALIAS,
},
conditions: [
{
// TODO: this condition should be based on entity types in the selection
alias: UMB_COLLECTION_ALIAS_CONDITION,
match: UMB_MEDIA_COLLECTION_ALIAS,
},
{
alias: UMB_COLLECTION_BULK_ACTION_PERMISSION_CONDITION,
match: (permissions: UmbCollectionBulkActionPermissions) => permissions.allowBulkCopy,
},
],
},
{
type: 'entityBulkAction',
alias: 'Umb.EntityBulkAction.Media.Copy',
name: 'Copy Media Entity Bulk Action',
weight: 90,
api: UmbMediaCopyEntityBulkAction,
alias: 'Umb.EntityBulkAction.Media.Move',
name: 'Move Media Entity Bulk Action',
weight: 20,
api: UmbMediaMoveEntityBulkAction,
meta: {
label: 'Copy',
label: 'Move',
repositoryAlias: UMB_MEDIA_DETAIL_REPOSITORY_ALIAS,
},
conditions: [
{
// TODO: this condition should be based on entity types in the selection
alias: UMB_COLLECTION_ALIAS_CONDITION,
match: UMB_MEDIA_COLLECTION_ALIAS,
},
{
alias: UMB_COLLECTION_BULK_ACTION_PERMISSION_CONDITION,
match: (permissions: UmbCollectionBulkActionPermissions) => permissions.allowBulkMove,
},
],
},
{
type: 'entityBulkAction',
alias: 'Umb.EntityBulkAction.Media.Trash',
name: 'Trash Media Entity Bulk Action',
weight: 80,
api: UmbMediaTrashEntityBulkAction,
alias: 'Umb.EntityBulkAction.Media.Delete',
name: 'Delete Media Entity Bulk Action',
weight: 10,
api: UmbMediaDeleteEntityBulkAction,
meta: {
label: 'Trash',
label: 'Delete',
repositoryAlias: UMB_MEDIA_DETAIL_REPOSITORY_ALIAS,
},
conditions: [
{
// TODO: this condition should be based on entity types in the selection
alias: UMB_COLLECTION_ALIAS_CONDITION,
match: UMB_MEDIA_COLLECTION_ALIAS,
},
{
alias: UMB_COLLECTION_BULK_ACTION_PERMISSION_CONDITION,
match: (permissions: UmbCollectionBulkActionPermissions) => permissions.allowBulkDelete,
},
],
},
];

export const manifests = [...entityActions];
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,8 @@ export class UmbMediaMoveEntityBulkAction extends UmbEntityBulkActionBase<UmbMed
}

async execute() {
console.log(`execute move for: ${this.selection}`);

// TODO: the picker should be single picker by default
const modalContext = this.#modalContext?.open(UMB_MEDIA_TREE_PICKER_MODAL, {
data: {
Expand Down