umbraco-collection-action

Umbraco Collection Action

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "umbraco-collection-action" with this command: npx skills add umbraco/umbraco-cms-backoffice-skills/umbraco-umbraco-cms-backoffice-skills-umbraco-collection-action

Umbraco Collection Action

What is it?

Collection Actions are buttons that appear in a collection's toolbar, providing actions that can be performed on the collection as a whole (not on individual items - those are Entity Bulk Actions). Common examples include "Create New" buttons or export functionality. Actions can either execute code or navigate to a URL.

Documentation

Always fetch the latest docs before implementing:

Related Foundation Skills

Context API: For accessing collection context

  • Reference skill: umbraco-context-api

Modals: When actions open modal dialogs

  • Reference skill: umbraco-modals

Conditions: For controlling when actions appear

  • Reference skill: umbraco-conditions

Workflow

  • Fetch docs - Use WebFetch on the URLs above

  • Ask questions - What collection? What action to perform? Navigate or execute?

  • Generate files - Create manifest + action class based on latest docs

  • Explain - Show what was created and how to test

Minimal Examples

Manifest (manifests.ts)

import type { ManifestCollectionAction } from '@umbraco-cms/backoffice/extension-registry';

const manifest: ManifestCollectionAction = { type: 'collectionAction', alias: 'My.CollectionAction.Create', name: 'Create Item Action', api: () => import('./create-action.js'), meta: { label: 'Create New', }, conditions: [ { alias: 'Umb.Condition.CollectionAlias', match: 'My.Collection', }, ], };

export const manifests = [manifest];

Action Implementation (create-action.ts)

import { UmbCollectionActionBase } from '@umbraco-cms/backoffice/collection'; import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api';

export class CreateAction extends UmbCollectionActionBase { constructor(host: UmbControllerHost) { super(host); }

async execute() { // Perform the action console.log('Create action executed'); } }

export default CreateAction;

Link-based Action (using getHref)

import { UmbCollectionActionBase } from '@umbraco-cms/backoffice/collection';

export class CreateLinkAction extends UmbCollectionActionBase { async getHref() { // Return URL to navigate to return '/section/my-section/workspace/my-workspace/create'; }

async execute() { // Not called when getHref returns a value } }

export default CreateLinkAction;

Action with Modal

import { UmbCollectionActionBase } from '@umbraco-cms/backoffice/collection'; import { UMB_MODAL_MANAGER_CONTEXT } from '@umbraco-cms/backoffice/modal';

export class ExportAction extends UmbCollectionActionBase { async execute() { const modalManager = await this.getContext(UMB_MODAL_MANAGER_CONTEXT);

const modal = modalManager.open(this, MY_EXPORT_MODAL, {
  data: {
    collectionAlias: 'My.Collection',
  },
});

await modal.onSubmit();

} }

export default ExportAction;

Action with Additional Options Indicator

const manifest: ManifestCollectionAction = { type: 'collectionAction', alias: 'My.CollectionAction.CreateWithOptions', name: 'Create With Options', api: () => import('./create-options-action.js'), meta: { label: 'Create', additionalOptions: true, // Shows indicator that more options are available }, conditions: [ { alias: 'Umb.Condition.CollectionAlias', match: 'Umb.Collection.Document', }, ], };

Action Class with Additional Options

import { UmbCollectionActionBase } from '@umbraco-cms/backoffice/collection';

export class CreateWithOptionsAction extends UmbCollectionActionBase { async hasAdditionalOptions() { return true; }

async execute() { // Show options menu or modal } }

export default CreateWithOptionsAction;

Meta Properties

Property Description

label

Required. Button text

href

Optional static URL (use getHref() for dynamic)

additionalOptions

Shows dropdown indicator if true

Common Collection Aliases for Conditions

  • Umb.Collection.Document

  • Umb.Collection.Media

  • Umb.Collection.Member

  • Umb.Collection.User

  • Umb.Collection.DataType

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

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

umbraco-backoffice

No summary provided by upstream source.

Repository SourceNeeds Review
General

umbraco-dashboard

No summary provided by upstream source.

Repository SourceNeeds Review
General

umbraco-quickstart

No summary provided by upstream source.

Repository SourceNeeds Review
General

umbraco-extension-template

No summary provided by upstream source.

Repository SourceNeeds Review