From b5f5dbcd0aa67e5db618347904f2d9e12a459b6b Mon Sep 17 00:00:00 2001
From: Patrizio Bekerle <patrizio.bekerle@tugraz.at>
Date: Tue, 6 Aug 2019 10:26:17 +0200
Subject: [PATCH] Add entry-point-url attribute support

---
 packages/person-select/README.md                 |  2 ++
 packages/person-select/src/person-select-demo.js |  2 +-
 packages/person-select/src/person-select.js      | 11 ++++++++---
 3 files changed, 11 insertions(+), 4 deletions(-)

diff --git a/packages/person-select/README.md b/packages/person-select/README.md
index e831e10a..9fd8b5f5 100644
--- a/packages/person-select/README.md
+++ b/packages/person-select/README.md
@@ -12,6 +12,8 @@
 
 - `lang` (optional, default: `de`): set to `de` or `en` for German or English
     - example `<vpu-person-select lang="de"></vpu-person-select>`
+- `entry-point-url` (optional, default is the TU Graz entry point url): entry point url to access the api
+    - example `<vpu-person-select entry-point-url="http://127.0.0.1:8000"></vpu-person-select>`
 
 ## Local development
 
diff --git a/packages/person-select/src/person-select-demo.js b/packages/person-select/src/person-select-demo.js
index e12591d8..8876cc2d 100644
--- a/packages/person-select/src/person-select-demo.js
+++ b/packages/person-select/src/person-select-demo.js
@@ -41,7 +41,7 @@ class PersonSelectDemo extends LitElement {
                         <div class="field">
                             <label class="label">Person</label>
                             <div class="control">
-                                <vpu-person-select lang="${this.lang}"></vpu-person-select>
+                                <vpu-person-select lang="${this.lang}" entry-point-url="${utils.getAPiUrl()}"></vpu-person-select>
                             </div>
                         </div>
                     </form>
diff --git a/packages/person-select/src/person-select.js b/packages/person-select/src/person-select.js
index a212522b..be09fd0e 100644
--- a/packages/person-select/src/person-select.js
+++ b/packages/person-select/src/person-select.js
@@ -5,7 +5,7 @@ import select2LangDe from './i18n/de/select2'
 import select2LangEn from './i18n/en/select2'
 import JSONLD from 'vpu-common/jsonld';
 import {html} from 'lit-element';
-import {i18n, dateTimeFormat, numberFormat} from './i18n.js';
+import {i18n} from './i18n.js';
 import VPULitElementJQuery from 'vpu-common/vpu-lit-element-jquery';
 
 select2(window, $);
@@ -15,12 +15,14 @@ class PersonSelect extends VPULitElementJQuery {
     constructor() {
         super();
         this.lang = 'de';
+        this.entryPointUrl = utils.getAPiUrl();
         this.jsonld = null;
     }
 
     static get properties() {
         return {
             lang: { type: String },
+            entryPointUrl: { type: String, attribute: 'entry-point-url' },
         };
     }
 
@@ -29,7 +31,7 @@ class PersonSelect extends VPULitElementJQuery {
         const that = this;
 
         this.updateComplete.then(()=>{
-            JSONLD.initialize(utils.getAPiUrl(), function (jsonld) {
+            JSONLD.initialize(this.entryPointUrl, function (jsonld) {
                 that.jsonld = jsonld;
                 const $select = that.initSelect2();
 
@@ -63,6 +65,10 @@ class PersonSelect extends VPULitElementJQuery {
 
         const $select = this.$('#person-select');
 
+        if ($select.hasClass('select2-hidden-accessible')) {
+            $select.select2('destroy');
+        }
+
         $select.select2({
             width: '100%',
             language: this.lang === "de" ? select2LangDe() : select2LangEn(),
@@ -126,7 +132,6 @@ class PersonSelect extends VPULitElementJQuery {
 
                 if ($select.length > 0) {
                     // no other way to set an other language at runtime did work
-                    $select.select2('destroy');
                     this.initSelect2();
                 }
             }
-- 
GitLab