This repository was archived by the owner on Nov 6, 2025. It is now read-only.
File tree Expand file tree Collapse file tree 7 files changed +61
-8
lines changed
core/extension-registry/conditions Expand file tree Collapse file tree 7 files changed +61
-8
lines changed Original file line number Diff line number Diff line change 11import type { ManifestTypes } from '../models/index.js' ;
22import { manifest as menuAliasConditionManifest } from './menu-alias.condition.js' ;
3+ import { manifest as multipleAppLanguagesConditionManifest } from './multiple-app-languages.condition.js' ;
34import { manifest as sectionAliasConditionManifest } from './section-alias.condition.js' ;
45import { manifest as switchConditionManifest } from './switch.condition.js' ;
56
67export const manifests : Array < ManifestTypes > = [
78 menuAliasConditionManifest ,
9+ multipleAppLanguagesConditionManifest ,
810 sectionAliasConditionManifest ,
911 switchConditionManifest ,
1012] ;
Original file line number Diff line number Diff line change @@ -17,9 +17,13 @@ export class UmbMenuAliasCondition extends UmbConditionBase<MenuAliasConditionCo
1717 super ( host , args ) ;
1818
1919 this . consumeContext ( UMB_MENU_CONTEXT , ( context ) => {
20- this . observe ( context . alias , ( MenuAlias ) => {
21- this . permitted = MenuAlias === this . config . match ;
22- } ) ;
20+ this . observe (
21+ context . alias ,
22+ ( MenuAlias ) => {
23+ this . permitted = MenuAlias === this . config . match ;
24+ } ,
25+ 'observeAlias' ,
26+ ) ;
2327 } ) ;
2428 }
2529}
Original file line number Diff line number Diff line change 1+ import { UmbConditionBase } from './condition-base.controller.js' ;
2+ import { UMB_APP_LANGUAGE_CONTEXT } from '@umbraco-cms/backoffice/language' ;
3+ import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api' ;
4+ import type {
5+ ManifestCondition ,
6+ UmbConditionConfigBase ,
7+ UmbConditionControllerArguments ,
8+ UmbExtensionCondition ,
9+ } from '@umbraco-cms/backoffice/extension-api' ;
10+
11+ export type UmbMultipleAppLanguageConditionConfig = UmbConditionConfigBase ;
12+
13+ export class UmbMultipleAppLanguageCondition
14+ extends UmbConditionBase < UmbMultipleAppLanguageConditionConfig >
15+ implements UmbExtensionCondition
16+ {
17+ constructor ( host : UmbControllerHost , args : UmbConditionControllerArguments < UmbMultipleAppLanguageConditionConfig > ) {
18+ super ( host , args ) ;
19+
20+ this . consumeContext ( UMB_APP_LANGUAGE_CONTEXT , ( context ) => {
21+ this . observe (
22+ context . moreThanOneLanguage ,
23+ ( moreThanOneLanguage ) => {
24+ this . permitted = moreThanOneLanguage ;
25+ } ,
26+ 'observeLanguages' ,
27+ ) ;
28+ } ) ;
29+ }
30+ }
31+
32+ export const manifest : ManifestCondition = {
33+ type : 'condition' ,
34+ name : 'Multiple App Languages Condition' ,
35+ alias : 'Umb.Condition.MultipleAppLanguages' ,
36+ api : UmbMultipleAppLanguageCondition ,
37+ } ;
Original file line number Diff line number Diff line change @@ -24,9 +24,13 @@ export class UmbSectionAliasCondition
2424
2525 if ( permissionCheck !== undefined ) {
2626 this . consumeContext ( UMB_SECTION_CONTEXT , ( context ) => {
27- this . observe ( context . alias , ( sectionAlias ) => {
28- this . permitted = sectionAlias ? permissionCheck ! ( sectionAlias ) : false ;
29- } ) ;
27+ this . observe (
28+ context . alias ,
29+ ( sectionAlias ) => {
30+ this . permitted = sectionAlias ? permissionCheck ! ( sectionAlias ) : false ;
31+ } ,
32+ 'observeAlias' ,
33+ ) ;
3034 } ) ;
3135 }
3236 }
Original file line number Diff line number Diff line change @@ -3,6 +3,7 @@ import type { CollectionBulkActionPermissionConditionConfig } from '../../collec
33import type { UmbSectionUserPermissionConditionConfig } from '../../section/conditions/index.js' ;
44import type { SectionAliasConditionConfig } from './section-alias.condition.js' ;
55import type { SwitchConditionConfig } from './switch.condition.js' ;
6+ import type { UmbMultipleAppLanguageConditionConfig } from './multiple-app-languages.condition.js' ;
67import type {
78 WorkspaceAliasConditionConfig ,
89 WorkspaceEntityTypeConditionConfig ,
@@ -29,8 +30,9 @@ export type ConditionTypes =
2930 | CollectionBulkActionPermissionConditionConfig
3031 | SectionAliasConditionConfig
3132 | SwitchConditionConfig
33+ | UmbConditionConfigBase
3234 | UmbDocumentUserPermissionConditionConfig
35+ | UmbMultipleAppLanguageConditionConfig
3336 | UmbSectionUserPermissionConditionConfig
3437 | WorkspaceAliasConditionConfig
35- | WorkspaceEntityTypeConditionConfig
36- | UmbConditionConfigBase ;
38+ | WorkspaceEntityTypeConditionConfig ;
Original file line number Diff line number Diff line change @@ -12,6 +12,9 @@ const entityActions: Array<ManifestSectionSidebarApp> = [
1212 alias : 'Umb.Condition.SectionAlias' ,
1313 match : 'Umb.Section.Content' ,
1414 } ,
15+ {
16+ alias : 'Umb.Condition.MultipleAppLanguages' ,
17+ } ,
1518 ] ,
1619 } ,
1720] ;
Original file line number Diff line number Diff line change @@ -12,6 +12,7 @@ import { UMB_AUTH_CONTEXT } from '@umbraco-cms/backoffice/auth';
1212export class UmbAppLanguageContext extends UmbContextBase < UmbAppLanguageContext > implements UmbApi {
1313 #languageCollectionRepository: UmbLanguageCollectionRepository ;
1414 #languages = new UmbArrayState < UmbLanguageDetailModel > ( [ ] , ( x ) => x . unique ) ;
15+ moreThanOneLanguage = this . #languages. asObservablePart ( ( x ) => x . length > 1 ) ;
1516
1617 #appLanguage = new UmbObjectState < UmbLanguageDetailModel | undefined > ( undefined ) ;
1718 appLanguage = this . #appLanguage. asObservable ( ) ;
You can’t perform that action at this time.
0 commit comments