handle fallback language change event

This commit is contained in:
Mads Rasmussen
2023-02-20 15:26:16 +01:00
parent 77916fcc16
commit 57d34b5636
2 changed files with 12 additions and 16 deletions

View File

@@ -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>
`;

View File

@@ -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() {