diff --git a/packages/person-select/README.md b/packages/person-select/README.md index e831e10ad05e10909a33b1eb2259944731889f9f..9fd8b5f55ed79949e6005290777fe857d0c0cdd0 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 e12591d879cb79d8823ce79ff41faa5a0185c9b8..8876cc2df3bc29324d89d4335723a59eeed73934 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 a212522b38fc6cdfb88315f270f9adae32568081..be09fd0e7a289b65ddd1243547c625829775c7ea 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(); } }