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
21 changes: 21 additions & 0 deletions 14/umbraco-cms/.gitbook.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -103,3 +103,24 @@ redirects:
fundamentals/backoffice/infinite-editing: fundamentals/backoffice/sidebar.md
extending/backoffice-tours: extending/README.md
tutorials/creating-a-backoffice-tour: tutorials/overview.md
customize-the-backoffce/extending-overview/extending-types/dashboard: customizing/extending-overview/extending-types/dashboard.md
customize-the-backoffce/extending-overview/extending-types/entity-actions: customizing/extending-overview/extending-types/entity-actions.md
customize-the-backoffce/extending-overview/extending-types/entity-bulk-actions: customizing/extending-overview/extending-types/entity-bulk-actions.md
customize-the-backoffce/extending-overview/extending-types/global-context: customizing/extending-overview/extending-types/global-context.md
customize-the-backoffce/extending-overview/extending-types/localization: customizing/extending-overview/extending-types/localization.md
customize-the-backoffce/extending-overview/extending-types/section-view: customizing/extending-overview/extending-types/section-view.md
customize-the-backoffce/extending-overview/extending-types/section: customizing/extending-overview/extending-types/section.md
customize-the-backoffce/extending-overview/extending-types/tree: customizing/extending-overview/extending-types/tree.md
customize-the-backoffce/extending-overview/extending-types/section-sidebar: customizing/extending-overview/extending-types/section-sidebar.md
customize-the-backoffce/extending-overview/extending-types/workspace-context: customizing/extending-overview/extending-types/workspace-context.md
customize-the-backoffce/extending-overview/extending-types/workspace-view: customizing/extending-overview/extending-types/workspace-view.md
customize-the-backoffice/foundation/contexts/property-dataset-context: customizing/foundation/context/property-dataset-context.md
customize-the-backoffice/foundation/icons: customizing/foundation/icons.md
customize-the-backoffice/foundation/localization: customizing/foundation/localization.md
customize-the-backoffice/foundation/terminology: customizing/foundation/terminology.md
customize-the-backoffice/overivew: customizing/overview.md
customize-the-backoffice/searchable-trees: customizing/searchable-trees.md
customize-the-backoffice/section-trees: customizing/section-trees.md
customize-the-backoffice/ui-library: customizing/ui-library.md
customize-the-backoffice/umbraco-package: customizing/umbraco-package.md
customize-the-backoffice/workspaces: customizing/workspaces.md
44 changes: 22 additions & 22 deletions 14/umbraco-cms/SUMMARY.md
Original file line number Diff line number Diff line change
Expand Up @@ -139,7 +139,7 @@

## Customize the Backoffice

* [Extend and customize the editing experience](customize-the-backoffice/overview.md)
* [Extend and customize the editing experience](customizing/overview.md)
* [Project Bellissima](customizing/project-bellissima.md)
* [Setup Your Development Environment](customizing/development-flow/README.md)
* [Vite Package Setup](customizing/development-flow/vite-package-setup.md)
Expand All @@ -150,15 +150,15 @@
* [Store](customizing/foundation/working-with-data/store.md)
* [States](customizing/foundation/working-with-data/states.md)
* [Contexts](customizing/foundation/contexts/README.md)
* [Property Dataset Context](customize-the-backoffice/foundation/contexts/property-dataset-context.md)
* [Property Dataset Context](customizing/foundation/contexts/property-dataset-context.md)
* [Umbraco Element](customizing/foundation/umbraco-element/README.md)
* [Controllers](customizing/foundation/umbraco-element/controllers/README.md)
* [Write your own controller](customizing/foundation/umbraco-element/controllers/write-your-own-controller.md)
* [Sorting](customizing/foundation/sorting.md)
* [Routes](customizing/foundation/routes.md)
* [Icons](customize-the-backoffice/foundation/icons.md)
* [Backoffice Localization](customize-the-backoffice/foundation/localization.md)
* [Terminology](customize-the-backoffice/foundation/terminology.md)
* [Icons](customizing/foundation/icons.md)
* [Backoffice Localization](customizing/foundation/localization.md)
* [Terminology](customizing/foundation/terminology.md)
* [Extension Overview](customizing/extending-overview/README.md)
* [Extension Registry](customizing/extending-overview/extension-registry/README.md)
* [Extension Registration](customizing/extending-overview/extension-registry/extension-registry.md)
Expand All @@ -175,23 +175,23 @@
* [Kind](customizing/extending-overview/extension-types/kind.md)
* [Backoffice Entry Point](customizing/extending-overview/extension-types/backoffice-entry-point.md)
* [Extension Conditions](customizing/extending-overview/extension-types/condition.md)
* [Dashboards](customize-the-backoffice/extending-overview/extension-types/dashboard.md)
* [Entity Actions](customize-the-backoffice/extending-overview/extension-types/entity-actions.md)
* [Entity Bulk Actions](customize-the-backoffice/extending-overview/extension-types/entity-bulk-actions.md)
* [Trees](customize-the-backoffice/extending-overview/extension-types/tree.md)
* [Global Context](customize-the-backoffice/extending-overview/extension-types/global-context.md)
* [Section Sidebar](customize-the-backoffice/extending-overview/extension-types/section-sidebar.md)
* [Section View](customize-the-backoffice/extending-overview/extension-types/section-view.md)
* [Sections](customize-the-backoffice/extending-overview/extension-types/section.md)
* [Workspace Context](customize-the-backoffice/extending-overview/extension-types/workspace-context.md)
* [Workspace Views](customize-the-backoffice/extending-overview/extension-types/workspace-views.md)
* [Workspace Actions](customize-the-backoffice/extending-overview/extension-types/workspace-editor-actions.md)
* [Localization](customize-the-backoffice/extending-overview/extension-types/localization.md)
* [Dashboards](customizing/extending-overview/extension-types/dashboard.md)
* [Entity Actions](customizing/extending-overview/extension-types/entity-actions.md)
* [Entity Bulk Actions](customizing/extending-overview/extension-types/entity-bulk-actions.md)
* [Trees](customizing/extending-overview/extension-types/tree.md)
* [Global Context](customizing/extending-overview/extension-types/global-context.md)
* [Section Sidebar](customizing/extending-overview/extension-types/section-sidebar.md)
* [Section View](customizing/extending-overview/extension-types/section-view.md)
* [Sections](customizing/extending-overview/extension-types/section.md)
* [Workspace Context](customizing/extending-overview/extension-types/workspace-context.md)
* [Workspace Views](customizing/extending-overview/extension-types/workspace-views.md)
* [Workspace Actions](customizing/extending-overview/extension-types/workspace-editor-actions.md)
* [Localization](customizing/extending-overview/extension-types/localization.md)
* [Extension Kind](customizing/extending-overview/extension-kind.md)
* [Extension Conditions](customizing/extending-overview/extension-conditions.md)
* [Custom Extension types](customizing/extending-overview/custom-extension-type.md)
* [Sections & Trees](customize-the-backoffice/section-trees.md)
* [Searchable Trees (ISearchableTree)](customize-the-backoffice/searchable-trees.md)
* [Sections & Trees](customizing/section-trees.md)
* [Searchable Trees (ISearchableTree)](customizing/searchable-trees.md)
* [Property Editors](customizing/property-editors/README.md)
* [Property Editors Composition](customizing/property-editors/composition/README.md)
* [Property Editor Schema](customizing/property-editors/composition/property-editor-schema.md)
Expand All @@ -204,9 +204,9 @@
* [Content Picker Value Converter Example](customizing/property-editors/full-examples-value-converters.md)
* [Property Dataset](customizing/property-editors/property-dataset.md)
* [Integrate Validaction](customizing/property-editors/integrate-validation.md)
* [Workspaces](customize-the-backoffice/workspaces.md)
* [Umbraco Package](customize-the-backoffice/umbraco-package.md)
* [UI Library](customize-the-backoffice/ui-library.md)
* [Workspaces](customizing/workspaces.md)
* [Umbraco Package](customizing/umbraco-package.md)
* [UI Library](customizing/ui-library.md)

## Extending

Expand Down
2 changes: 2 additions & 0 deletions 15/umbraco-cms/SUMMARY.md
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@
* [Health Check](extending/health-check/README.md)
* [Health Check Guides](extending/health-check/guides/README.md)
* [Content Content Security Policy (CSP)](extending/health-check/guides/contentsecuritypolicy.md)
* [Creating a Custom Database Table](extending/database.md)

## Reference

Expand Down Expand Up @@ -73,6 +74,7 @@
* [Type finder settings](reference/configuration/typefindersettings.md)
* [Unattended](reference/configuration/unattendedsettings.md)
* [Web routing](reference/configuration/webroutingsettings.md)
* [Common Pitfalls & Anti-Patterns](reference/common-pitfalls.md)

## Tutorials

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -171,7 +171,7 @@ export default class MyElement extends LitElement {
```
{% endhint %}

Learn more about the abilities of the manifest file in the [Umbraco Package Manifest](../package-manifest.md) article.
Learn more about the abilities of the manifest file in the [Umbraco Package Manifest](../../customize-the-backoffice/umbraco-package.md) article.

#### Testing your package

Expand Down
6 changes: 6 additions & 0 deletions 15/umbraco-cms/customizing/extending-overview/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,12 @@ description: Getting started with backoffice setup and configurations

# Extension Overview

The Backoffice architecture is based on Extensions, making different UI parts extendable. Enabling you to append, replace, or remove parts.

You are not limited to any specific tech stack. UI Elements are based on Web Components and the Backoffice APIs are based on native code.

<figure><img src="../../.gitbook/assets/backoffice-overview-customizations.png" alt=""><figcaption></figcaption></figure>

In this section you can find the common terms, concepts and guides used to extend the Umbraco backoffice.

{% hint style="warning" %}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# Custom Extension Types

The extension registry is an open system, which can hold any Extension Manifest Type. This article describes how you can declare your types.
Types can be declared for re-useability/maintainability or to open up for other package extensions.

## Manifest Type Declaration

A Manifest Type is declared via a TypeScript Interface, like shown below:

```typescript
import type { ManifestBase } from '@umbraco-cms/backoffice/extension-api';

export interface ManifestPreviewAppProvider extends ManifestBase {
type: 'myPrefixedExtensionType';
}

// Declare the Manifest Type in the global UmbExtensionManifestMap interface:
declare global {
interface UmbExtensionManifestMap {
MyPrefixedExtensionManifest: MyExtensionManifestType;
}
}
```
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
---
description: Learn how to use Extension Conditions when working with the Umbraco backoffice.
---

# Extension Conditions

{% hint style="warning" %}
This page is a work in progress and may undergo further revisions, updates, or amendments. The information contained herein is subject to change without notice.
{% endhint %}

Extension Manifest Conditions enable you to declare requirements for an Extension before it becomes available.

## Utilizing Conditions in your Manifest

Conditions are referenced via their alias. The Declaration of a Condition is shown in the following example:

```typescript
const manifest = {
type: 'workspaceView',
...
conditions: [
{
alias: 'Umb.Condition.WorkspaceAlias',
match: 'Umb.Workspace.Document',
},
],
};
```

By declaring a condition the extension will become available only once the condition is permitted.

The example above requires the nearest Workspaces Alias to be equal to `'Umb.Workspace.Document'`.

When declaring multiple conditions all of them must be permitted for the extension to be available.

## Condition Configuration

The conditions are defined as an array of condition configurations. Each entry can contain the following properties:

* `alias`- The alias of the condition to utilize.
* `...` - The rest of the properties of the object are specific to the condition configuration.

## Learn more

Learn about built-in conditions and how to create your own:

{% content-ref url="extension-types/condition.md" %}
Condition Extension Type
{% endcontent-ref %}
55 changes: 55 additions & 0 deletions 15/umbraco-cms/customizing/extending-overview/extension-kind.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
---
description: Learn how to use the Kind extension in your manifest files when extending the Umbraco CMS backoffice.
---

# Extension Kind

{% hint style="warning" %}
This page is a work in progress and may undergo further revisions, updates, or amendments. The information contained herein is subject to change without notice.
{% endhint %}

Extension Manifest Kind enables declarations to be based upon a preset Manifest.

This is used for maintainability or to inherit existing features.

## Manifest Kind Declaration

A Kind is utilized by declaring it in the `kind` field of a Manifest:

```typescript
const manifest = {
type: 'headerApp',
kind: 'button',
...
};
```

By declaring a kind, the Manifest will inherit fields of the defined Kind.

A typical use case is a Kind that provides an element, but requires additional meta fields, to fulfill the needs of its element.

In the following example, a manifest using the type 'headerApp' utilizes the 'button' kind. This brings an element and requires some additional information as part of the meta object.

Adding the metadata provides the ability to use and configure existing functionality to a specific need.

```typescript
const manifest = {
type: 'headerApp',
kind: 'button',
name: 'My Header App Example',
alias: 'My.HeaderApp.Example',
meta: {
label: 'My Example',
icon: 'icon-home',
href: '/some/path/to/open/when/clicked',
},
};
```

## Learn more

Learn more about Kinds and how to create your own:

{% content-ref url="extension-types/kind.md" %}
Kind Extension Type
{% endcontent-ref %}
Original file line number Diff line number Diff line change
Expand Up @@ -6,15 +6,15 @@ This page is a work in progress and may undergo further revisions, updates, or a

Most of BackOffice is based on Extensions making it crucial to understand how to register your own extensions. This introduction will give you an outline of the abilities of the extension registry.

## [Extension Registration](./extension-registry.md) <a href="#registration" id="registration"></a>
## [Extension Registration](extension-registry.md) <a href="#registration" id="registration"></a>

The extension registry is a global registry that can be accessed and changed at anytime while Backoffice is running.

## [Extension Manifest](./extension-manifest.md)
## [Extension Manifest](extension-manifest.md)

Each Extension Manifest has to declare its type, this is used to determine where it hooks into the system. It also looks at what data is required to declare within it.

## [Extension Types](../extension-types/README.md)
## [Extension Types](../extension-types/)

### [Extension Conditions](../extension-types/condition.md) <a href="#conditions" id="conditions"></a>

Expand All @@ -28,10 +28,10 @@ The kinds feature enables you to base your extension registration on a preset. A
import { umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry';
```

### [Entry Point](../extension-types/entry-point.md) <a href="#entry-point" id="entry-point"></a>
### [Entry Point](../extension-types/backoffice-entry-point.md) <a href="#entry-point" id="entry-point"></a>

The Entry Point manifest type is used to register an entry point for the backoffice. An entry point is a single JavaScript file that is loaded when the backoffice is initialized. This file can be used to do anything, this enables more complex logic to take place on startup.

### [Bundle](../extension-types/bundle.md) <a href="#bundle-manifest" id="package-manifest"></a>
### [Bundle](../extension-types/bundle.md) <a href="#package-manifest" id="package-manifest"></a>

The `bundle` extension type enables you to gather many extension manifests into one.
Loading