From e61fe01daa19bb809fc9f3465089a06a26237ab7 Mon Sep 17 00:00:00 2001 From: Patrizio Bekerle <patrizio@bekerle.com> Date: Thu, 4 Feb 2021 10:08:51 +0100 Subject: [PATCH] Remove dbp-language-changed event and use dbp-set-property event for "lang" --- packages/app-shell/src/app-shell.js | 14 +++++------ .../language-select/src/language-select.js | 23 ------------------- packages/provider/src/adapter-lit-element.js | 2 ++ .../assets/dbp-toolkit-showcase.html.ejs | 3 ++- 4 files changed, 11 insertions(+), 31 deletions(-) diff --git a/packages/app-shell/src/app-shell.js b/packages/app-shell/src/app-shell.js index c0b5e611..2ad9b933 100644 --- a/packages/app-shell/src/app-shell.js +++ b/packages/app-shell/src/app-shell.js @@ -297,12 +297,8 @@ export class AppShell extends ScopedElementsMixin(AdapterLitElement) { this.lang = lang; this.router.update(); - const event = new CustomEvent("dbp-language-changed", { - bubbles: true, - detail: {'lang': lang} - }); - - this.dispatchEvent(event); + // tell a dbp-provider to update the "lang" property + this.sendSetPropertyEvent('lang', lang); } } @@ -312,6 +308,10 @@ export class AppShell extends ScopedElementsMixin(AdapterLitElement) { // For screen readers document.documentElement.setAttribute("lang", this.lang); i18n.changeLanguage(this.lang); + + this.router.update(); + this.subtitle = this.activeMetaDataText("short_name"); + this.description = this.activeMetaDataText("description"); } }); @@ -822,7 +822,7 @@ export class AppShell extends ScopedElementsMixin(AdapterLitElement) { <dbp-notification lang="${this.lang}"></dbp-notification> <header> <div class="hd1-left"> - <dbp-language-select @dbp-language-changed=${this.onLanguageChanged.bind(this)}></dbp-language-select> + <dbp-language-select subscribe="lang"></dbp-language-select> </div> <div class="hd1-middle"> </div> diff --git a/packages/language-select/src/language-select.js b/packages/language-select/src/language-select.js index 772163c5..2ab2f3ca 100644 --- a/packages/language-select/src/language-select.js +++ b/packages/language-select/src/language-select.js @@ -13,8 +13,6 @@ export class LanguageSelect extends AdapterLitElement { this._lang = 'de'; this.languages = ['de', 'en']; - this.onExternalChange = this.onExternalChange.bind(this); - // for the i18next scanner i18n.t('de'); i18n.t('de-action'); @@ -54,13 +52,6 @@ export class LanguageSelect extends AdapterLitElement { this.requestUpdate('next', oldNext); if (oldValue !== value) { - let event = new CustomEvent("dbp-language-changed", { - bubbles: true, - composed: true, - detail: {'lang': value} - }); - this.dispatchEvent(event); - // tell a dbp-provider to update the "lang" property this.sendSetPropertyEvent('lang', value); @@ -109,20 +100,6 @@ export class LanguageSelect extends AdapterLitElement { ]; } - onExternalChange(e) { - this.lang = e.detail.lang; - } - - connectedCallback() { - super.connectedCallback(); - window.addEventListener('dbp-language-changed', this.onExternalChange); - } - - disconnectedCallback() { - document.removeEventListener('dbp-language-changed', this.onExternalChange); - super.disconnectedCallback(); - } - onClick(e) { e.preventDefault(); this.lang = this.next; diff --git a/packages/provider/src/adapter-lit-element.js b/packages/provider/src/adapter-lit-element.js index 4f15cc63..9b41c7a4 100644 --- a/packages/provider/src/adapter-lit-element.js +++ b/packages/provider/src/adapter-lit-element.js @@ -302,6 +302,8 @@ export class AdapterLitElement extends LitElement { * @returns {boolean} */ sendSetPropertyEvent(name, value) { + // console.log("dbp-set-property", name, value); + const event = new CustomEvent('dbp-set-property', { bubbles: true, composed: true, diff --git a/toolkit-showcase/assets/dbp-toolkit-showcase.html.ejs b/toolkit-showcase/assets/dbp-toolkit-showcase.html.ejs index d4a9e251..59898d09 100644 --- a/toolkit-showcase/assets/dbp-toolkit-showcase.html.ejs +++ b/toolkit-showcase/assets/dbp-toolkit-showcase.html.ejs @@ -54,7 +54,7 @@ <body> <dbp-provider id="root" - lang="en" entry-point-url="<%= entryPointURL %>" + entry-point-url="<%= entryPointURL %>" nextcloud-auth-url="<%= nextcloudWebAppPasswordURL %>" nextcloud-web-dav-url="<%= nextcloudWebDavURL %>" nextcloud-name="<%= nextcloudName %>" @@ -62,6 +62,7 @@ <<%= name %> src="<%= getUrl(name + '.topic.metadata.json') %>" auth + lang="en" base-path="<%= getUrl('') %>" keycloak-config='{"url": "<%= keyCloakBaseURL %>", "realm": "tugraz", "clientId": "<%= keyCloakClientId %>", "silentCheckSsoRedirectUri": "<%= getUrl('silent-check-sso.html') %>"}' matomo-url="<%= matomoUrl %>" matomo-site-id="<%= matomoSiteId %>" -- GitLab