From 04c7e7471b9a5fa7150f657056974ff760593260 Mon Sep 17 00:00:00 2001
From: Patrizio Bekerle <patrizio@bekerle.com>
Date: Tue, 2 Feb 2021 15:24:35 +0100
Subject: [PATCH] Integrate auth property into
 dbp-knowledge-base-web-page-element-view

---
 .../knowledge-base-web-page-element-view/README.md    |  2 ++
 .../assets/index.html                                 |  2 +-
 .../dbp-knowledge-base-web-page-element-view-demo.js  |  8 ++++----
 .../src/knowledge-base-web-page-element-view.js       | 11 +++++++----
 4 files changed, 14 insertions(+), 9 deletions(-)

diff --git a/packages/knowledge-base-web-page-element-view/README.md b/packages/knowledge-base-web-page-element-view/README.md
index 93086003..82a96017 100644
--- a/packages/knowledge-base-web-page-element-view/README.md
+++ b/packages/knowledge-base-web-page-element-view/README.md
@@ -23,6 +23,8 @@ npm i @dbp-toolkit/knowledge-base-web-page-element-view
     - example `<dbp-knowledge-base-web-page-element-view entry-point-url="http://127.0.0.1:8000"></dbp-knowledge-base-web-page-element-view>`
 - `text` (optional): text to click to show the information loaded from the webpage
     - example `<dbp-knowledge-base-web-page-element-view text="Click me to show more information"></dbp-knowledge-base-web-page-element-view>`
+- `auth` object: you need to set that object property for the auth token
+  - example auth property: `{token: "THE_BEARER_TOKEN"}`
 
 ## Local development
 
diff --git a/packages/knowledge-base-web-page-element-view/assets/index.html b/packages/knowledge-base-web-page-element-view/assets/index.html
index bc9b5c5d..bd187181 100644
--- a/packages/knowledge-base-web-page-element-view/assets/index.html
+++ b/packages/knowledge-base-web-page-element-view/assets/index.html
@@ -14,7 +14,7 @@
 </style>
 <body>
 
-<dbp-knowledge-base-web-page-element-view-demo lang="de" entry-point-url="http://127.0.0.1:8000"></dbp-knowledge-base-web-page-element-view-demo>
+<dbp-knowledge-base-web-page-element-view-demo auth lang="de" entry-point-url="http://127.0.0.1:8000"></dbp-knowledge-base-web-page-element-view-demo>
 
 </body>
 </html>
diff --git a/packages/knowledge-base-web-page-element-view/src/dbp-knowledge-base-web-page-element-view-demo.js b/packages/knowledge-base-web-page-element-view/src/dbp-knowledge-base-web-page-element-view-demo.js
index d72d83d8..d4ad245d 100644
--- a/packages/knowledge-base-web-page-element-view/src/dbp-knowledge-base-web-page-element-view-demo.js
+++ b/packages/knowledge-base-web-page-element-view/src/dbp-knowledge-base-web-page-element-view-demo.js
@@ -86,23 +86,23 @@ export class KnowledgeBaseWebPageElementViewDemo extends ScopedElementsMixin(DBP
                 <div class="container">
                     <h2 class="subtitle">Deutsch</h2>
                     <p>Ein erster Schritt</p>
-                    <dbp-knowledge-base-web-page-element-view lang="de" entry-point-url="${this.entryPointUrl}" value="bedienstete/bibliothek/buch-ausleihen" text="Ein Buch ausleihen"></dbp-knowledge-base-web-page-element-view>
+                    <dbp-knowledge-base-web-page-element-view subscribe="auth:auth" lang="de" entry-point-url="${this.entryPointUrl}" value="bedienstete/bibliothek/buch-ausleihen" text="Ein Buch ausleihen"></dbp-knowledge-base-web-page-element-view>
                 </div>
                 <div class="container">
                     <h2 class="subtitle">Englisch</h2>
                     <p>A first step</p>
-                    <dbp-knowledge-base-web-page-element-view lang="en" entry-point-url="${this.entryPointUrl}" value="bedienstete/bibliothek/buch-ausleihen" text="Borrow a book"></dbp-knowledge-base-web-page-element-view>
+                    <dbp-knowledge-base-web-page-element-view subscribe="auth:auth" lang="en" entry-point-url="${this.entryPointUrl}" value="bedienstete/bibliothek/buch-ausleihen" text="Borrow a book"></dbp-knowledge-base-web-page-element-view>
                 </div>
                 <hr>
                 <div class="container">
                     <p>mit Text in der WebComponent:</p>
-                    <dbp-knowledge-base-web-page-element-view lang="${this.lang}" value="abc/def/xyz" text="FAQ"></dbp-knowledge-base-web-page-element-view>
+                    <dbp-knowledge-base-web-page-element-view subscribe="auth:auth" lang="${this.lang}" value="abc/def/xyz" text="FAQ"></dbp-knowledge-base-web-page-element-view>
                 </div>
                 <hr>
                 <div class="container">
                     <p>ohne Text in der WebComponent:</p>
                     Kontaktieren Sie uns unter...
-                    <dbp-knowledge-base-web-page-element-view class="opt" lang="${this.lang}" value="abc/def/klm"></dbp-knowledge-base-web-page-element-view>
+                    <dbp-knowledge-base-web-page-element-view subscribe="auth:auth" class="opt" lang="${this.lang}" value="abc/def/klm"></dbp-knowledge-base-web-page-element-view>
                 </div>
             </section>
         `;
diff --git a/packages/knowledge-base-web-page-element-view/src/knowledge-base-web-page-element-view.js b/packages/knowledge-base-web-page-element-view/src/knowledge-base-web-page-element-view.js
index c56aac2f..9b34f065 100644
--- a/packages/knowledge-base-web-page-element-view/src/knowledge-base-web-page-element-view.js
+++ b/packages/knowledge-base-web-page-element-view/src/knowledge-base-web-page-element-view.js
@@ -1,14 +1,15 @@
 import {i18n} from './i18n';
-import {html, LitElement} from 'lit-element';
+import {html} from 'lit-element';
 import {ScopedElementsMixin} from '@open-wc/scoped-elements';
 import {MiniSpinner} from '@dbp-toolkit/common';
 import * as commonUtils from "@dbp-toolkit/common/utils";
 import {unsafeHTML} from 'lit-html/directives/unsafe-html.js';
+import {AdapterLitElement} from "@dbp-toolkit/provider/src/adapter-lit-element";
 
 /**
  * KnowledgeBaseWebPageElementView web component
  */
-export class KnowledgeBaseWebPageElementView extends ScopedElementsMixin(LitElement) {
+export class KnowledgeBaseWebPageElementView extends ScopedElementsMixin(AdapterLitElement) {
     constructor() {
         super();
         this.lang = 'de';
@@ -21,6 +22,7 @@ export class KnowledgeBaseWebPageElementView extends ScopedElementsMixin(LitElem
         //this.css = 'kb.css';
         this.text = '';
         this.class = '';
+        this.auth = {};
     }
 
     static get scopedElements() {
@@ -46,6 +48,7 @@ export class KnowledgeBaseWebPageElementView extends ScopedElementsMixin(LitElem
             error: { type: String, attribute: false},
             //css: { type: String },
             text: { type: String },
+            auth: { type: Object },
         };
     }
 
@@ -53,7 +56,7 @@ export class KnowledgeBaseWebPageElementView extends ScopedElementsMixin(LitElem
      * Loads the data from the web page element
      */
     loadWebPageElement() {
-        if (window.DBPAuthToken === undefined || window.DBPAuthToken === "") {
+        if (this.auth.token === undefined || this.auth.token === "") {
             return;
         }
 
@@ -66,7 +69,7 @@ export class KnowledgeBaseWebPageElementView extends ScopedElementsMixin(LitElem
         fetch(apiUrl, {
             headers: {
                 'Content-Type': 'application/ld+json',
-                'Authorization': 'Bearer ' + window.DBPAuthToken,
+                'Authorization': 'Bearer ' + this.auth.token,
             },
         })
         .then(function (res) {
-- 
GitLab