From e6352489d8e9032a8d8fc03691adc086f801053b Mon Sep 17 00:00:00 2001
From: Christoph Reiter <reiter.christoph@gmail.com>
Date: Thu, 22 Aug 2019 12:02:39 +0200
Subject: [PATCH] Disable the selector in case the user isn't logged in

---
 packages/person-select/package.json                 | 4 ++--
 packages/person-select/src/i18n/de/translation.json | 3 ++-
 packages/person-select/src/i18n/en/translation.json | 3 ++-
 packages/person-select/src/person-select-demo.js    | 2 +-
 packages/person-select/src/person-select.js         | 5 ++++-
 packages/person-select/vendor/auth                  | 2 +-
 packages/person-select/vendor/common                | 2 +-
 7 files changed, 13 insertions(+), 8 deletions(-)

diff --git a/packages/person-select/package.json b/packages/person-select/package.json
index f15702e5..f2c2a361 100644
--- a/packages/person-select/package.json
+++ b/packages/person-select/package.json
@@ -12,7 +12,7 @@
     "mocha": "^6.2.0",
     "node-sass": "^4.12.0",
     "puppeteer": "^1.15.0",
-    "rollup": "^1.11.3",
+    "rollup": "^1.20.0",
     "rollup-plugin-commonjs": "^10.0.2",
     "rollup-plugin-copy": "^3.1.0",
     "rollup-plugin-json": "^4.0.0",
@@ -28,7 +28,7 @@
   "dependencies": {
     "jquery": "^3.4.1",
     "lit-element": "^2.1.0",
-    "select2": "^4.0.7"
+    "select2": "^4.0.9"
   },
   "scripts": {
     "clean": "rm dist/*",
diff --git a/packages/person-select/src/i18n/de/translation.json b/packages/person-select/src/i18n/de/translation.json
index a2920972..b5a39b9b 100644
--- a/packages/person-select/src/i18n/de/translation.json
+++ b/packages/person-select/src/i18n/de/translation.json
@@ -1,6 +1,7 @@
 {
   "person-select": {
     "placeholder": "Bitte wählen Sie eine Person aus",
-    "error-summary": "Ein Fehler ist aufgetreten"
+    "error-summary": "Ein Fehler ist aufgetreten",
+    "login-required": "Anmeldung erforderlich"
   }
 }
diff --git a/packages/person-select/src/i18n/en/translation.json b/packages/person-select/src/i18n/en/translation.json
index 0d7ee4aa..a89cdb1a 100644
--- a/packages/person-select/src/i18n/en/translation.json
+++ b/packages/person-select/src/i18n/en/translation.json
@@ -1,6 +1,7 @@
 {
   "person-select": {
     "placeholder": "Please select a person",
-    "error-summary": "An error occurred"
+    "error-summary": "An error occurred",
+    "login-required": "Login required"
   }
 }
diff --git a/packages/person-select/src/person-select-demo.js b/packages/person-select/src/person-select-demo.js
index 413db6aa..a7a09a4e 100644
--- a/packages/person-select/src/person-select-demo.js
+++ b/packages/person-select/src/person-select-demo.js
@@ -34,7 +34,7 @@ class PersonSelectDemo extends LitElement {
                     <h1 class="title">Person-Select-Demo</h1>
                 </div>
                 <div class="container">
-                    <vpu-auth lang="${this.lang}" client-id="${commonUtils.setting('keyCloakClientId')}" load-person force-login></vpu-auth>
+                    <vpu-auth lang="${this.lang}" client-id="${commonUtils.setting('keyCloakClientId')}" load-person></vpu-auth>
                 </div>
                 <div class="container">
                     <form>
diff --git a/packages/person-select/src/person-select.js b/packages/person-select/src/person-select.js
index eb0cb5ba..c5172182 100644
--- a/packages/person-select/src/person-select.js
+++ b/packages/person-select/src/person-select.js
@@ -21,6 +21,7 @@ class PersonSelect extends VPULitElementJQuery {
         this.entryPointUrl = commonUtils.getAPiUrl();
         this.jsonld = null;
         this.$select = null;
+        this.active = false;
         // For some reason using the same ID on the whole page twice breaks select2 (regardless if they are in different custom elements)
         this.selectId = 'person-select-' + commonUtils.makeId(24);
     }
@@ -28,6 +29,7 @@ class PersonSelect extends VPULitElementJQuery {
     static get properties() {
         return {
             lang: { type: String },
+            active: { type: Boolean, attribute: false },
             entryPointUrl: { type: String, attribute: 'entry-point-url' },
         };
     }
@@ -156,6 +158,7 @@ class PersonSelect extends VPULitElementJQuery {
 
                     JSONLD.initialize(this.entryPointUrl, function (jsonld) {
                         that.jsonld = jsonld;
+                        that.active = true;
                         that.$select = that.initSelect2();
                     });
                     break;
@@ -178,7 +181,7 @@ class PersonSelect extends VPULitElementJQuery {
             </style>
 
             <!-- https://select2.org-->
-            <select id="${this.selectId}" name="person" class="select"></select>
+            <select id="${this.selectId}" name="person" class="select" ?disabled=${!this.active}>${!this.active ? html`<option value="" disabled selected>${ i18n.t('person-select.login-required')}</option>` : ''}</select>
             <div id="person-select-dropdown"></div>
         `;
     }
diff --git a/packages/person-select/vendor/auth b/packages/person-select/vendor/auth
index 15f24eeb..31a528fe 160000
--- a/packages/person-select/vendor/auth
+++ b/packages/person-select/vendor/auth
@@ -1 +1 @@
-Subproject commit 15f24eeb6873fa016b24cc2913073d613c3c4349
+Subproject commit 31a528fe1a36c08c1f16d4998d193b5f5cb623b3
diff --git a/packages/person-select/vendor/common b/packages/person-select/vendor/common
index 8a80921c..47aeef81 160000
--- a/packages/person-select/vendor/common
+++ b/packages/person-select/vendor/common
@@ -1 +1 @@
-Subproject commit 8a80921c5f8ea2b0d1a0a548741d2ca1716a5139
+Subproject commit 47aeef8162129cb7beab9ec1d1e1bf7bb9b2e578
-- 
GitLab