Clean up workspace conditions folder structure (#19634)
* 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. * clean up workspace conditions
This commit is contained in:
@@ -0,0 +1,3 @@
|
||||
export * from './workspace-alias/constants.js';
|
||||
export * from './workspace-entity-is-new/constants.js';
|
||||
export * from './workspace-entity-type/constants.js';
|
||||
@@ -1,9 +1,9 @@
|
||||
import { manifest as workspaceAliasCondition } from './workspace-alias.condition.js';
|
||||
import { manifest as workspaceEntityTypeCondition } from './workspace-entity-type.condition.js';
|
||||
import { manifest as workspaceEntityIsNewCondition } from './workspace-entity-is-new.condition.js';
|
||||
import { manifests as workspaceAliasCondition } from './workspace-alias/manifests.js';
|
||||
import { manifests as workspaceEntityIsNewCondition } from './workspace-entity-is-new/manifests.js';
|
||||
import { manifests as workspaceEntityTypeCondition } from './workspace-entity-type/manifests.js';
|
||||
|
||||
export const manifests: Array<UmbExtensionManifest> = [
|
||||
workspaceEntityIsNewCondition,
|
||||
workspaceAliasCondition,
|
||||
workspaceEntityTypeCondition,
|
||||
...workspaceAliasCondition,
|
||||
...workspaceEntityIsNewCondition,
|
||||
...workspaceEntityTypeCondition,
|
||||
];
|
||||
|
||||
@@ -1,49 +1,3 @@
|
||||
import type { UMB_WORKSPACE_CONDITION_ALIAS, UMB_WORKSPACE_ENTITY_IS_NEW_CONDITION_ALIAS } from './const.js';
|
||||
import type { UmbConditionConfigBase } from '@umbraco-cms/backoffice/extension-api';
|
||||
|
||||
export interface WorkspaceAliasConditionConfig extends UmbConditionConfigBase<typeof UMB_WORKSPACE_CONDITION_ALIAS> {
|
||||
/**
|
||||
* Define the workspace that this extension should be available in
|
||||
* @example
|
||||
* "Umb.Workspace.Document"
|
||||
*/
|
||||
match?: string;
|
||||
/**
|
||||
* Define one or more workspaces that this extension should be available in
|
||||
* @example
|
||||
* ["Umb.Workspace.Document", "Umb.Workspace.Media"]
|
||||
*/
|
||||
oneOf?: Array<string>;
|
||||
}
|
||||
|
||||
export type UmbWorkspaceEntityTypeConditionConfig = UmbConditionConfigBase<'Umb.Condition.WorkspaceEntityType'> & {
|
||||
/**
|
||||
* Define the workspace that this extension should be available in
|
||||
* @example
|
||||
* "Document"
|
||||
*/
|
||||
match: string;
|
||||
};
|
||||
/**
|
||||
* @deprecated Use `UmbWorkspaceEntityTypeConditionConfig` instead. This will be removed in Umbraco 17.
|
||||
*/
|
||||
export type WorkspaceEntityTypeConditionConfig = UmbWorkspaceEntityTypeConditionConfig;
|
||||
|
||||
export interface UmbWorkspaceEntityIsNewConditionConfig
|
||||
extends UmbConditionConfigBase<typeof UMB_WORKSPACE_ENTITY_IS_NEW_CONDITION_ALIAS> {
|
||||
match: boolean;
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated Use `UmbWorkspaceEntityIsNewConditionConfig` instead. This will be removed in Umbraco 17.
|
||||
*/
|
||||
// eslint-disable-next-line @typescript-eslint/no-empty-object-type
|
||||
export interface WorkspaceEntityIsNewConditionConfig extends UmbWorkspaceEntityIsNewConditionConfig {}
|
||||
|
||||
declare global {
|
||||
interface UmbExtensionConditionConfigMap {
|
||||
umbWorkspaceAlias: WorkspaceAliasConditionConfig;
|
||||
umbWorkspaceEntityIsNewConditionConfig: UmbWorkspaceEntityIsNewConditionConfig;
|
||||
umbWorkspaceEntityType: UmbWorkspaceEntityTypeConditionConfig;
|
||||
}
|
||||
}
|
||||
export type * from './workspace-alias/types.js';
|
||||
export type * from './workspace-entity-is-new/types.js';
|
||||
export type * from './workspace-entity-type/types.js';
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
/**
|
||||
* Workspace alias condition alias
|
||||
*/
|
||||
export const UMB_WORKSPACE_CONDITION_ALIAS = 'Umb.Condition.WorkspaceAlias';
|
||||
@@ -0,0 +1,11 @@
|
||||
import { UMB_WORKSPACE_CONDITION_ALIAS } from './constants.js';
|
||||
import { UmbWorkspaceAliasCondition } from './workspace-alias.condition.js';
|
||||
|
||||
export const manifests: Array<UmbExtensionManifest> = [
|
||||
{
|
||||
type: 'condition',
|
||||
name: 'Workspace Alias Condition',
|
||||
alias: UMB_WORKSPACE_CONDITION_ALIAS,
|
||||
api: UmbWorkspaceAliasCondition,
|
||||
},
|
||||
];
|
||||
@@ -0,0 +1,23 @@
|
||||
import type { UMB_WORKSPACE_CONDITION_ALIAS } from './constants.js';
|
||||
import type { UmbConditionConfigBase } from '@umbraco-cms/backoffice/extension-api';
|
||||
|
||||
export interface WorkspaceAliasConditionConfig extends UmbConditionConfigBase<typeof UMB_WORKSPACE_CONDITION_ALIAS> {
|
||||
/**
|
||||
* Define the workspace that this extension should be available in
|
||||
* @example
|
||||
* "Umb.Workspace.Document"
|
||||
*/
|
||||
match?: string;
|
||||
/**
|
||||
* Define one or more workspaces that this extension should be available in
|
||||
* @example
|
||||
* ["Umb.Workspace.Document", "Umb.Workspace.Media"]
|
||||
*/
|
||||
oneOf?: Array<string>;
|
||||
}
|
||||
|
||||
declare global {
|
||||
interface UmbExtensionConditionConfigMap {
|
||||
umbWorkspaceAlias: WorkspaceAliasConditionConfig;
|
||||
}
|
||||
}
|
||||
@@ -1,7 +1,7 @@
|
||||
import { UMB_WORKSPACE_CONTEXT } from '../workspace.context-token.js';
|
||||
import type { UmbWorkspaceContext } from '../workspace-context.interface.js';
|
||||
import type { WorkspaceAliasConditionConfig } from './types.js';
|
||||
import { UMB_WORKSPACE_CONDITION_ALIAS } from './const.js';
|
||||
import type { WorkspaceAliasConditionConfig } from '../types.js';
|
||||
import type { UmbWorkspaceContext } from '../../workspace-context.interface.js';
|
||||
import { UMB_WORKSPACE_CONTEXT } from '../../workspace.context-token.js';
|
||||
import { UMB_WORKSPACE_CONDITION_ALIAS } from './constants.js';
|
||||
import { UmbConditionBase } from '@umbraco-cms/backoffice/extension-registry';
|
||||
import type { UmbConditionControllerArguments, UmbExtensionCondition } from '@umbraco-cms/backoffice/extension-api';
|
||||
import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api';
|
||||
@@ -35,10 +35,3 @@ export class UmbWorkspaceAliasCondition
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
export const manifest: UmbExtensionManifest = {
|
||||
type: 'condition',
|
||||
name: 'Workspace Alias Condition',
|
||||
alias: UMB_WORKSPACE_CONDITION_ALIAS,
|
||||
api: UmbWorkspaceAliasCondition,
|
||||
};
|
||||
@@ -2,8 +2,3 @@
|
||||
* Workspace entity is new condition alias
|
||||
*/
|
||||
export const UMB_WORKSPACE_ENTITY_IS_NEW_CONDITION_ALIAS = 'Umb.Condition.WorkspaceEntityIsNew';
|
||||
|
||||
/**
|
||||
* Workspace alias condition alias
|
||||
*/
|
||||
export const UMB_WORKSPACE_CONDITION_ALIAS = 'Umb.Condition.WorkspaceAlias';
|
||||
@@ -0,0 +1,11 @@
|
||||
import { UMB_WORKSPACE_ENTITY_IS_NEW_CONDITION_ALIAS } from './constants.js';
|
||||
import { UmbWorkspaceEntityIsNewCondition } from './workspace-entity-is-new.condition.js';
|
||||
|
||||
export const manifests: Array<UmbExtensionManifest> = [
|
||||
{
|
||||
type: 'condition',
|
||||
name: 'Workspace Entity Is New Condition',
|
||||
alias: UMB_WORKSPACE_ENTITY_IS_NEW_CONDITION_ALIAS,
|
||||
api: UmbWorkspaceEntityIsNewCondition,
|
||||
},
|
||||
];
|
||||
@@ -0,0 +1,19 @@
|
||||
import type { UMB_WORKSPACE_ENTITY_IS_NEW_CONDITION_ALIAS } from './constants.js';
|
||||
import type { UmbConditionConfigBase } from '@umbraco-cms/backoffice/extension-api';
|
||||
|
||||
export interface UmbWorkspaceEntityIsNewConditionConfig
|
||||
extends UmbConditionConfigBase<typeof UMB_WORKSPACE_ENTITY_IS_NEW_CONDITION_ALIAS> {
|
||||
match: boolean;
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated Use `UmbWorkspaceEntityIsNewConditionConfig` instead. This will be removed in Umbraco 17.
|
||||
*/
|
||||
// eslint-disable-next-line @typescript-eslint/no-empty-object-type
|
||||
export interface WorkspaceEntityIsNewConditionConfig extends UmbWorkspaceEntityIsNewConditionConfig {}
|
||||
|
||||
declare global {
|
||||
interface UmbExtensionConditionConfigMap {
|
||||
umbWorkspaceEntityIsNewConditionConfig: UmbWorkspaceEntityIsNewConditionConfig;
|
||||
}
|
||||
}
|
||||
@@ -1,6 +1,5 @@
|
||||
import { UMB_SUBMITTABLE_WORKSPACE_CONTEXT } from '../index.js';
|
||||
import type { UmbWorkspaceEntityIsNewConditionConfig } from './types.js';
|
||||
import { UMB_WORKSPACE_ENTITY_IS_NEW_CONDITION_ALIAS } from './const.js';
|
||||
import type { UmbWorkspaceEntityIsNewConditionConfig } from '../types.js';
|
||||
import { UMB_SUBMITTABLE_WORKSPACE_CONTEXT } from '../../contexts/index.js';
|
||||
import { UmbConditionBase } from '@umbraco-cms/backoffice/extension-registry';
|
||||
import type { UmbConditionControllerArguments, UmbExtensionCondition } from '@umbraco-cms/backoffice/extension-api';
|
||||
import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api';
|
||||
@@ -28,10 +27,3 @@ export class UmbWorkspaceEntityIsNewCondition
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
export const manifest: UmbExtensionManifest = {
|
||||
type: 'condition',
|
||||
name: 'Workspace Entity Is New Condition',
|
||||
alias: UMB_WORKSPACE_ENTITY_IS_NEW_CONDITION_ALIAS,
|
||||
api: UmbWorkspaceEntityIsNewCondition,
|
||||
};
|
||||
@@ -0,0 +1 @@
|
||||
export const UMB_WORKSPACE_ENTITY_TYPE_CONDITION_ALIAS = 'Umb.Condition.WorkspaceEntityType';
|
||||
@@ -0,0 +1,11 @@
|
||||
import { UMB_WORKSPACE_ENTITY_TYPE_CONDITION_ALIAS } from './constants.js';
|
||||
import { UmbWorkspaceEntityTypeCondition } from './workspace-entity-type.condition.js';
|
||||
|
||||
export const manifests: Array<UmbExtensionManifest> = [
|
||||
{
|
||||
type: 'condition',
|
||||
name: 'Workspace Entity Type Condition',
|
||||
alias: UMB_WORKSPACE_ENTITY_TYPE_CONDITION_ALIAS,
|
||||
api: UmbWorkspaceEntityTypeCondition,
|
||||
},
|
||||
];
|
||||
@@ -0,0 +1,23 @@
|
||||
import type { UMB_WORKSPACE_ENTITY_TYPE_CONDITION_ALIAS } from './constants.js';
|
||||
import type { UmbConditionConfigBase } from '@umbraco-cms/backoffice/extension-api';
|
||||
|
||||
export type UmbWorkspaceEntityTypeConditionConfig = UmbConditionConfigBase<
|
||||
typeof UMB_WORKSPACE_ENTITY_TYPE_CONDITION_ALIAS
|
||||
> & {
|
||||
/**
|
||||
* Define the workspace that this extension should be available in
|
||||
* @example
|
||||
* "Document"
|
||||
*/
|
||||
match: string;
|
||||
};
|
||||
/**
|
||||
* @deprecated Use `UmbWorkspaceEntityTypeConditionConfig` instead. This will be removed in Umbraco 17.
|
||||
*/
|
||||
export type WorkspaceEntityTypeConditionConfig = UmbWorkspaceEntityTypeConditionConfig;
|
||||
|
||||
declare global {
|
||||
interface UmbExtensionConditionConfigMap {
|
||||
umbWorkspaceEntityType: UmbWorkspaceEntityTypeConditionConfig;
|
||||
}
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
import { UMB_WORKSPACE_CONTEXT } from '../workspace.context-token.js';
|
||||
import type { UmbWorkspaceEntityTypeConditionConfig } from './types.js';
|
||||
import { UMB_WORKSPACE_CONTEXT } from '../../workspace.context-token.js';
|
||||
import type { UmbWorkspaceEntityTypeConditionConfig } from '../types.js';
|
||||
import { UmbConditionBase } from '@umbraco-cms/backoffice/extension-registry';
|
||||
import type { UmbConditionControllerArguments, UmbExtensionCondition } from '@umbraco-cms/backoffice/extension-api';
|
||||
import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api';
|
||||
@@ -15,10 +15,3 @@ export class UmbWorkspaceEntityTypeCondition
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
export const manifest: UmbExtensionManifest = {
|
||||
type: 'condition',
|
||||
name: 'Workspace Entity Type Condition',
|
||||
alias: 'Umb.Condition.WorkspaceEntityType',
|
||||
api: UmbWorkspaceEntityTypeCondition,
|
||||
};
|
||||
@@ -1,2 +1,3 @@
|
||||
export { UMB_NAMABLE_WORKSPACE_CONTEXT } from './namable/index.js';
|
||||
export { UMB_ENTITY_DETAIL_WORKSPACE_CONTEXT } from './entity-detail/index.js';
|
||||
export { UMB_NAMABLE_WORKSPACE_CONTEXT } from './namable/index.js';
|
||||
export * from './conditions/constants.js';
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
export * from './components/index.js';
|
||||
export * from './conditions/const.js';
|
||||
export * from './constants.js';
|
||||
export * from './contexts/index.js';
|
||||
export * from './controllers/index.js';
|
||||
|
||||
@@ -4,6 +4,7 @@ import { UMB_DATA_TYPE_FOLDER_REPOSITORY_ALIAS } from './repository/index.js';
|
||||
import { manifests as workspaceManifests } from './workspace/manifests.js';
|
||||
import { manifests as repositoryManifests } from './repository/manifests.js';
|
||||
import { UMB_DATA_TYPE_FOLDER_WORKSPACE_ALIAS } from './workspace/index.js';
|
||||
import { UMB_WORKSPACE_CONDITION_ALIAS } from '@umbraco-cms/backoffice/workspace';
|
||||
|
||||
export const manifests: Array<UmbExtensionManifest> = [
|
||||
{
|
||||
@@ -39,7 +40,7 @@ export const manifests: Array<UmbExtensionManifest> = [
|
||||
},
|
||||
conditions: [
|
||||
{
|
||||
alias: 'Umb.Condition.WorkspaceAlias',
|
||||
alias: UMB_WORKSPACE_CONDITION_ALIAS,
|
||||
oneOf: [UMB_DATA_TYPE_ROOT_WORKSPACE_ALIAS, UMB_DATA_TYPE_FOLDER_WORKSPACE_ALIAS],
|
||||
},
|
||||
],
|
||||
|
||||
@@ -10,6 +10,7 @@ import {
|
||||
} from './constants.js';
|
||||
import { manifests as folderManifests } from './folder/manifests.js';
|
||||
import { manifests as treeItemChildrenManifests } from './tree-item-children/manifests.js';
|
||||
import { UMB_WORKSPACE_CONDITION_ALIAS } from '@umbraco-cms/backoffice/workspace';
|
||||
|
||||
export const manifests: Array<UmbExtensionManifest> = [
|
||||
{
|
||||
@@ -57,7 +58,7 @@ export const manifests: Array<UmbExtensionManifest> = [
|
||||
},
|
||||
conditions: [
|
||||
{
|
||||
alias: 'Umb.Condition.WorkspaceAlias',
|
||||
alias: UMB_WORKSPACE_CONDITION_ALIAS,
|
||||
oneOf: [UMB_DOCUMENT_TYPE_ROOT_WORKSPACE_ALIAS, UMB_DOCUMENT_TYPE_FOLDER_WORKSPACE_ALIAS],
|
||||
},
|
||||
],
|
||||
|
||||
@@ -6,6 +6,7 @@ import {
|
||||
import { UMB_MEDIA_TYPE_ROOT_WORKSPACE_ALIAS } from '../../media-type-root/constants.js';
|
||||
import { UMB_MEDIA_TYPE_FOLDER_WORKSPACE_ALIAS } from '../folder/constants.js';
|
||||
import { manifests as collectionManifests } from './collection/manifests.js';
|
||||
import { UMB_WORKSPACE_CONDITION_ALIAS } from '@umbraco-cms/backoffice/workspace';
|
||||
|
||||
export const manifests: Array<UmbExtensionManifest> = [
|
||||
{
|
||||
@@ -28,7 +29,7 @@ export const manifests: Array<UmbExtensionManifest> = [
|
||||
},
|
||||
conditions: [
|
||||
{
|
||||
alias: 'Umb.Condition.WorkspaceAlias',
|
||||
alias: UMB_WORKSPACE_CONDITION_ALIAS,
|
||||
oneOf: [UMB_MEDIA_TYPE_ROOT_WORKSPACE_ALIAS, UMB_MEDIA_TYPE_FOLDER_WORKSPACE_ALIAS],
|
||||
},
|
||||
],
|
||||
|
||||
@@ -7,6 +7,7 @@ import {
|
||||
UMB_MEMBER_TYPE_TREE_STORE_ALIAS,
|
||||
} from './constants.js';
|
||||
import { manifests as treeItemChildrenManifest } from './tree-item-children/manifests.js';
|
||||
import { UMB_WORKSPACE_CONDITION_ALIAS } from '@umbraco-cms/backoffice/workspace';
|
||||
|
||||
export const manifests: Array<UmbExtensionManifest> = [
|
||||
{
|
||||
@@ -50,7 +51,7 @@ export const manifests: Array<UmbExtensionManifest> = [
|
||||
},
|
||||
conditions: [
|
||||
{
|
||||
alias: 'Umb.Condition.WorkspaceAlias',
|
||||
alias: UMB_WORKSPACE_CONDITION_ALIAS,
|
||||
oneOf: [UMB_MEMBER_TYPE_ROOT_WORKSPACE_ALIAS],
|
||||
},
|
||||
],
|
||||
|
||||
Reference in New Issue
Block a user