Skip to content

Commit 49b95c1

Browse files
Introduce Section Alias condition const (#19633)
* Refactor section conditions into subfolders Split section condition logic into 'section-alias' and 'section-user-permission' subfolders, each with their own constants, manifests, and types. Updated imports and manifest aggregation to use the new structure for improved modularity and maintainability. * use const * fix build * Refactor section alias condition to use constant Replaces hardcoded 'Umb.Condition.SectionAlias' strings with the UMB_SECTION_ALIAS_CONDITION_ALIAS constant across all manifests and related files. This improves maintainability and consistency by centralizing the section alias condition reference.
1 parent 14063a0 commit 49b95c1

File tree

37 files changed

+136
-89
lines changed

37 files changed

+136
-89
lines changed

.github/contributing-backoffice.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,7 @@ To declare the Published Cache Status Dashboard as a new manifest, we need to ad
114114
},
115115
conditions: [
116116
{
117-
alias: 'Umb.Condition.SectionAlias',
117+
alias: UMB_SECTION_ALIAS_CONDITION_ALIAS,
118118
match: 'Umb.Section.Settings',
119119
},
120120
],

src/Umbraco.Web.UI.Client/examples/collection/collection/card-view/index.ts

Lines changed: 0 additions & 1 deletion
This file was deleted.

src/Umbraco.Web.UI.Client/examples/collection/collection/table-view/index.ts

Lines changed: 0 additions & 1 deletion
This file was deleted.

src/Umbraco.Web.UI.Client/examples/validation-context/index.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import type { ManifestDashboard } from '@umbraco-cms/backoffice/dashboard';
2+
import { UMB_SECTION_ALIAS_CONDITION_ALIAS } from '@umbraco-cms/backoffice/section';
23

34
const dashboard: ManifestDashboard = {
45
type: 'dashboard',
@@ -12,7 +13,7 @@ const dashboard: ManifestDashboard = {
1213
},
1314
conditions: [
1415
{
15-
alias: 'Umb.Condition.SectionAlias',
16+
alias: UMB_SECTION_ALIAS_CONDITION_ALIAS,
1617
match: 'Umb.Section.Content',
1718
},
1819
],
Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,2 @@
1-
export const UMB_SECTION_USER_PERMISSION_CONDITION_ALIAS = 'Umb.Condition.SectionUserPermission';
1+
export * from './section-alias/constants.js';
2+
export * from './section-user-permission/constants.js';
Lines changed: 3 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,4 @@
1-
import { UMB_SECTION_USER_PERMISSION_CONDITION_ALIAS } from './constants.js';
2-
import { UmbSectionAliasCondition } from './section-alias.condition.js';
3-
import { UmbSectionUserPermissionCondition } from './section-user-permission.condition.js';
1+
import { manifests as sectionAliasManifests } from './section-alias/manifests.js';
2+
import { manifests as sectionUserPermissionManifests } from './section-user-permission/manifests.js';
43

5-
export const manifests: Array<UmbExtensionManifest> = [
6-
{
7-
type: 'condition',
8-
name: 'Section User Permission Condition',
9-
alias: UMB_SECTION_USER_PERMISSION_CONDITION_ALIAS,
10-
api: UmbSectionUserPermissionCondition,
11-
},
12-
{
13-
type: 'condition',
14-
name: 'Section Alias Condition',
15-
alias: 'Umb.Condition.SectionAlias',
16-
api: UmbSectionAliasCondition,
17-
},
18-
];
4+
export const manifests: Array<UmbExtensionManifest> = [...sectionAliasManifests, ...sectionUserPermissionManifests];
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
export const UMB_SECTION_ALIAS_CONDITION_ALIAS = 'Umb.Condition.SectionAlias';
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
import { UMB_SECTION_ALIAS_CONDITION_ALIAS } from './constants.js';
2+
import { UmbSectionAliasCondition } from './section-alias.condition.js';
3+
4+
export const manifests: Array<UmbExtensionManifest> = [
5+
{
6+
type: 'condition',
7+
name: 'Section Alias Condition',
8+
alias: UMB_SECTION_ALIAS_CONDITION_ALIAS,
9+
api: UmbSectionAliasCondition,
10+
},
11+
];

src/Umbraco.Web.UI.Client/src/packages/core/section/conditions/section-alias.condition.ts renamed to src/Umbraco.Web.UI.Client/src/packages/core/section/conditions/section-alias/section-alias.condition.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
import { UmbConditionBase } from '../../extension-registry/conditions/condition-base.controller.js';
2-
import { UMB_SECTION_CONTEXT } from '../section.context.js';
3-
import type { SectionAliasConditionConfig } from './types.js';
1+
import { UmbConditionBase } from '../../../extension-registry/conditions/condition-base.controller.js';
2+
import { UMB_SECTION_CONTEXT } from '../../section.context.js';
3+
import type { SectionAliasConditionConfig } from '../types.js';
44
import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api';
55
import type { UmbConditionControllerArguments, UmbExtensionCondition } from '@umbraco-cms/backoffice/extension-api';
66

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
import type { UMB_SECTION_ALIAS_CONDITION_ALIAS } from './constants.js';
2+
import type { UmbConditionConfigBase } from '@umbraco-cms/backoffice/extension-api';
3+
4+
export type SectionAliasConditionConfig = UmbConditionConfigBase<typeof UMB_SECTION_ALIAS_CONDITION_ALIAS> & {
5+
/**
6+
* Define the section that this extension should be available in
7+
* @example "Umb.Section.Content"
8+
*/
9+
match: string;
10+
/**
11+
* Define one or more workspaces that this extension should be available in
12+
* @example
13+
* ["Umb.Section.Content", "Umb.Section.Media"]
14+
*/
15+
oneOf?: Array<string>;
16+
};
17+
18+
declare global {
19+
interface UmbExtensionConditionConfigMap {
20+
UmbSectionAliasConditionConfig: SectionAliasConditionConfig;
21+
}
22+
}

0 commit comments

Comments
 (0)