@@ -0,0 +1,3 @@
|
|||||||
|
# Workspace Context for setting an Initial Name
|
||||||
|
|
||||||
|
This example of a Workspace Context demonstrates how to manipulate the name of the workspaces entity.
|
||||||
@@ -0,0 +1,22 @@
|
|||||||
|
import {
|
||||||
|
UMB_WORKSPACE_CONDITION_ALIAS,
|
||||||
|
UMB_WORKSPACE_ENTITY_IS_NEW_CONDITION_ALIAS,
|
||||||
|
} from '@umbraco-cms/backoffice/workspace';
|
||||||
|
|
||||||
|
export const manifests: Array<UmbExtensionManifest> = [
|
||||||
|
{
|
||||||
|
type: 'workspaceContext',
|
||||||
|
name: 'Example Name Manipulation Workspace Context',
|
||||||
|
alias: 'example.workspaceContext.nameManipulation',
|
||||||
|
api: () => import('./workspace-context.js'),
|
||||||
|
conditions: [
|
||||||
|
{
|
||||||
|
alias: UMB_WORKSPACE_CONDITION_ALIAS,
|
||||||
|
match: 'Umb.Workspace.Document',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
alias: UMB_WORKSPACE_ENTITY_IS_NEW_CONDITION_ALIAS,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
];
|
||||||
@@ -0,0 +1,27 @@
|
|||||||
|
import { UmbControllerBase } from '@umbraco-cms/backoffice/class-api';
|
||||||
|
import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api';
|
||||||
|
import { UMB_CONTENT_WORKSPACE_CONTEXT } from '@umbraco-cms/backoffice/content';
|
||||||
|
import { UmbVariantId } from '@umbraco-cms/backoffice/variant';
|
||||||
|
|
||||||
|
// The Example Workspace Context Controller:
|
||||||
|
export class ExampleWorkspaceContextNameManipulation extends UmbControllerBase {
|
||||||
|
constructor(host: UmbControllerHost) {
|
||||||
|
super(host);
|
||||||
|
|
||||||
|
this.consumeContext(UMB_CONTENT_WORKSPACE_CONTEXT, async (workspace) => {
|
||||||
|
if (!workspace) return;
|
||||||
|
await workspace.isLoaded();
|
||||||
|
// Set the name if it's already empty (We do not want to overwrite if it's a Blueprint)
|
||||||
|
// Notice we need to provide a Variant-ID to getName, as Document names are variant specific. Here we get the Invariant name — this will need to be extended if you are looking to support multiple variants.
|
||||||
|
const variantId = UmbVariantId.CreateInvariant();
|
||||||
|
const name = workspace.getName(variantId);
|
||||||
|
if (name === undefined) {
|
||||||
|
const manipulatedName = `New Document - ${new Date().toLocaleDateString('en-GB')}`;
|
||||||
|
workspace.setName(manipulatedName, variantId);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Declare a api export, so Extension Registry can initialize this class:
|
||||||
|
export { ExampleWorkspaceContextNameManipulation as api };
|
||||||
Reference in New Issue
Block a user