umbraco-entity-bulk-actions について
Umbraco バックオフィス向けのエンティティ一括アクション実装を支援する開発スキルです。マニフェストやアクションクラス、リポジトリの利用方法を案内し、最新ドキュメントの確認を促します。
主な機能
- 01選択したエンティティへの一括操作
- 02マニフェストとアクションクラスの生成
- 03リポジトリ経由のエンティティ処理
- 04条件による表示制御
活用シーン
- 01コンテンツの一括公開や削除
- 02選択したメディアへの独自処理
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ umbraco/ umbraco-cms-backoffice-skills --skill umbraco-entity-bulk-actionsインストール後、Claude Code で/umbraco-entity-bulk-actionsを入力して読み込まれたか確認します。
詳細
Umbraco エンティティ一括操作
これは何ですか?
エンティティ一括操作は、複数のアイテムを一度に選択してアクションを実行します。ユーザーが複数のアイテムを選択するとコレクション選択ツールバーに表示され、複数のエンティティに対して一括公開、削除、カスタム処理などのバッチ操作を同時に実行できます。
ドキュメント
実装する前に、常に最新のドキュメントを取得してください:
- メインドキュメント: https://docs.umbraco.com/umbraco-cms/extend-your-project/backoffice-extensions/extending-overview/extension-types/entity-bulk-actions
- コレクション: https://docs.umbraco.com/umbraco-cms/extend-your-project/backoffice-extensions/extending-overview/extension-types/collections
- Foundation: https://docs.umbraco.com/umbraco-cms/extend-your-project/backoffice-extensions/foundation
- 拡張機能レジストリ: https://docs.umbraco.com/umbraco-cms/extend-your-project/backoffice-extensions/extending-overview/extension-registry
関連する Foundation スキル
-
リポジトリパターン: データアクセスが必要な一括操作を実装する場合
- 参照スキル:
umbraco-repository-pattern
- 参照スキル:
-
条件: コレクションや権限に基づいて一括操作の表示を制御する場合
- 参照スキル:
umbraco-conditions
- 参照スキル:
ワークフロー
- ドキュメントを取得 - 上記の URL に対して WebFetch を使用します
- 質問する - どのコレクションですか? どの一括操作ですか? どのエンティティタイプですか?
- ファイルを生成 - 最新のドキュメントに基づいてマニフェスト + 一括操作クラスを作成します
- 説明 - 何が作成されたか、どのようにテストするかを示します
最小限の例
マニフェスト (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];
一括操作の実装 (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`);
}
}
リポジトリを使用した一括操作
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);
}
}
}
複数の条件を含むマニフェスト
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',
},
],
};
一般的なコレクションエイリアス
Umb.Collection.Document- コンテンツコレクションUmb.Collection.Media- メディアコレクションUmb.Collection.Member- メンバーコレクション
以上です! 常に最新のドキュメントを取得し、例は最小限に保ち、完全に動作するコードを生成してください。
コメント
Markdown 対応