スキル一覧に戻る
umbraco

umbraco-entity-bulk-actions

by umbraco

1🍴 1📅 2026年1月21日
GitHubで見るManusで実行

SKILL.md


name: umbraco-entity-bulk-actions description: Implement entity bulk actions in Umbraco backoffice using official docs version: 1.0.0 location: managed allowed-tools: Read, Write, Edit, WebFetch

Umbraco Entity Bulk Actions

What is it?

Entity Bulk Actions perform an action on a selection of multiple items at once. They appear in the collection selection toolbar when users select multiple items, enabling batch operations like bulk publishing, deleting, or custom processing across multiple entities simultaneously.

Documentation

Always fetch the latest docs before implementing:

  • Repository Pattern: When implementing bulk operations that need data access

    • Reference skill: umbraco-repository-pattern
  • Conditions: When controlling bulk action visibility based on collection or permissions

    • Reference skill: umbraco-conditions

Workflow

  1. Fetch docs - Use WebFetch on the URLs above
  2. Ask questions - What collection? What bulk operation? What entity types?
  3. Generate files - Create manifest + bulk action class based on latest docs
  4. Explain - Show what was created and how to test

Minimal Examples

Manifest (manifests.ts)

import type { ManifestEntityBulkAction } from '@umbraco-cms/backoffice/extension-registry';
import { MyBulkAction } from './my-bulk-action.js';

const manifest: ManifestEntityBulkAction = {
  type: 'entityBulkAction',
  alias: 'My.EntityBulkAction',
  name: 'My Bulk Action',
  weight: 10,
  api: MyBulkAction,
  meta: {
    icon: 'icon-check',
    label: 'Process Selected',
  },
  conditions: [
    {
      alias: 'Umb.Condition.CollectionAlias',
      match: 'Umb.Collection.Document',
    },
  ],
};

export const manifests = [manifest];

Bulk Action Implementation (my-bulk-action.ts)

import { UmbEntityBulkActionBase } from '@umbraco-cms/backoffice/entity-bulk-action';
import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api';

export class MyBulkAction extends UmbEntityBulkActionBase<never> {
  constructor(host: UmbControllerHost, args: { selection: Array<string> }) {
    super(host, args);
  }

  async execute() {
    // this.selection contains array of unique identifiers
    console.log('Processing items:', this.selection);

    for (const unique of this.selection) {
      // Process each selected item
      console.log('Processing:', unique);
    }

    alert(`Processed ${this.selection.length} items`);
  }
}

Bulk Action with Repository

import { UmbEntityBulkActionBase } from '@umbraco-cms/backoffice/entity-bulk-action';

export class MyBulkAction extends UmbEntityBulkActionBase<MyRepository> {
  async execute() {
    // Process all selected items via repository
    for (const unique of this.selection) {
      await this.repository?.processItem(unique);
    }
  }
}

Manifest with Multiple Conditions

const manifest: ManifestEntityBulkAction = {
  type: 'entityBulkAction',
  alias: 'My.MediaBulkAction',
  name: 'Process Media',
  api: MyBulkAction,
  meta: {
    icon: 'icon-picture',
    label: 'Optimize Images',
  },
  conditions: [
    {
      alias: 'Umb.Condition.CollectionAlias',
      match: 'Umb.Collection.Media',
    },
  ],
};

Common Collection Aliases

  • Umb.Collection.Document - Content collection
  • Umb.Collection.Media - Media collection
  • Umb.Collection.Member - Member collection

That's it! Always fetch fresh docs, keep examples minimal, generate complete working code.

スコア

総合スコア

50/100

リポジトリの品質指標に基づく評価

SKILL.md

SKILL.mdファイルが含まれている

+20
LICENSE

ライセンスが設定されている

0/10
説明文

100文字以上の説明がある

0/10
人気

GitHub Stars 100以上

0/15
最近の活動

3ヶ月以内に更新がある

0/10
フォーク

10回以上フォークされている

0/5
Issue管理

オープンIssueが50未満

+5
言語

プログラミング言語が設定されている

+5
タグ

1つ以上のタグが設定されている

0/5

レビュー

💬

レビュー機能は近日公開予定です