handle fallback language change event
This commit is contained in:
@@ -9,6 +9,7 @@ import { UmbLitElement } from '@umbraco-cms/element';
|
||||
import { LanguageModel } from '@umbraco-cms/backend-api';
|
||||
import { UmbChangeEvent } from 'src/core/events';
|
||||
import UmbInputCultureSelectElement from 'src/backoffice/shared/components/input-culture-select/input-culture-select.element';
|
||||
import UmbInputLanguagePickerElement from 'src/backoffice/shared/components/input-language-picker/input-language-picker.element';
|
||||
|
||||
@customElement('umb-edit-language-workspace-view')
|
||||
export class UmbEditLanguageWorkspaceViewElement extends UmbLitElement {
|
||||
@@ -111,23 +112,14 @@ export class UmbEditLanguageWorkspaceViewElement extends UmbLitElement {
|
||||
}
|
||||
}
|
||||
|
||||
#handleFallbackChange(event: UUIComboboxEvent) {
|
||||
if (event instanceof UUIComboboxEvent) {
|
||||
const target = event.composedPath()[0] as UUIComboboxElement;
|
||||
this.#languageWorkspaceContext?.setFallbackCulture(target.value.toString());
|
||||
#handleFallbackChange(event: UmbChangeEvent) {
|
||||
if (event instanceof UmbChangeEvent) {
|
||||
const target = event.target as UmbInputLanguagePickerElement;
|
||||
const selectedLanguageIsoCode = target.selectedIsoCodes?.[0];
|
||||
this.#languageWorkspaceContext?.setFallbackCulture(selectedLanguageIsoCode);
|
||||
}
|
||||
}
|
||||
|
||||
get #fallbackLanguages() {
|
||||
return this._languages.filter((language) => {
|
||||
return language.isoCode !== this.language?.isoCode;
|
||||
});
|
||||
}
|
||||
|
||||
get #fallbackLanguage() {
|
||||
return this.#fallbackLanguages.find((language) => language.isoCode === this.language?.fallbackIsoCode);
|
||||
}
|
||||
|
||||
#renderCultureWarning() {
|
||||
if (!this._startData?.isoCode || this._startData?.isoCode === this.language?.isoCode) return nothing;
|
||||
|
||||
@@ -188,7 +180,10 @@ export class UmbEditLanguageWorkspaceViewElement extends UmbLitElement {
|
||||
<umb-workspace-property-layout
|
||||
label="Fallback language"
|
||||
description="To allow multi-lingual content to fall back to another language if not present in the requested language, select it here.">
|
||||
<umb-input-language-picker slot="editor" max="1"></umb-input-language-picker>
|
||||
<umb-input-language-picker
|
||||
slot="editor"
|
||||
max="1"
|
||||
@change=${this.#handleFallbackChange}></umb-input-language-picker>
|
||||
</umb-workspace-property-layout>
|
||||
</uui-box>
|
||||
`;
|
||||
|
||||
@@ -8,6 +8,7 @@ import { UmbLitElement } from '@umbraco-cms/element';
|
||||
import type { LanguageModel } from '@umbraco-cms/backend-api';
|
||||
import type { UmbObserverController } from '@umbraco-cms/observable-api';
|
||||
import { UmbLanguageRepository } from 'src/backoffice/settings/languages/repository/language.repository';
|
||||
import { UmbChangeEvent } from 'src/core/events';
|
||||
|
||||
@customElement('umb-input-language-picker')
|
||||
export class UmbInputLanguagePickerElement extends FormControlMixin(UmbLitElement) {
|
||||
@@ -143,7 +144,7 @@ export class UmbInputLanguagePickerElement extends FormControlMixin(UmbLitElemen
|
||||
|
||||
private _setSelection(newSelection: Array<string>) {
|
||||
this.selectedIsoCodes = newSelection;
|
||||
this.dispatchEvent(new CustomEvent('change', { bubbles: true, composed: true }));
|
||||
this.dispatchEvent(new UmbChangeEvent());
|
||||
}
|
||||
|
||||
render() {
|
||||
|
||||
Reference in New Issue
Block a user