diff --git a/packages/data-table-view/src/data-table-view.js b/packages/data-table-view/src/data-table-view.js index d1e4a0bd7731180b6e12f5e58d7e861cd1854bbb..90cc41b96a3fb93e3d1d92eaf53b161f1cc53d77 100644 --- a/packages/data-table-view/src/data-table-view.js +++ b/packages/data-table-view/src/data-table-view.js @@ -8,7 +8,6 @@ import {html, LitElement} from 'lit-element'; import {unsafeHTML} from 'lit-html/directives/unsafe-html.js'; import JSONLD from 'vpu-common/jsonld'; import commonUtils from 'vpu-common/utils'; -import {unsafeHTML} from 'lit-html/directives/unsafe-html.js'; dt(window, $); resp(window, $); @@ -64,21 +63,28 @@ class DataTableView extends LitElement { JSONLD.initialize(this.entryPointUrl, function (jsonld) { that.jsonld = jsonld; - that.apiUrl = that.jsonld.getApiUrlForIdentifier("http://schema.org/" + that.value); - that.table_columns = that.jsonld.entities[that.value]['hydra:supportedProperty'].map(obj => obj['hydra:title']); + try { + that.apiUrl = that.jsonld.getApiUrlForIdentifier("http://schema.org/" + that.value); + that.table_columns = that.jsonld.entities[that.value]['hydra:supportedProperty'].map(obj => obj['hydra:title']); - // display empty table - that.setup_columns(); - let columns = []; - for (let i = 0; i < that.display_columns.length; ++i) { - columns[i] = { - title: that.display_columns[i], - visible: that.show_columns.indexOf(that.display_columns[i]) > -1 - }; - } - that.set_datatable(columns); - if (that.filter) { - that.loadWebPageElement(); + // display empty table + that.setup_columns(); + let columns = []; + for (let i = 0; i < that.display_columns.length; ++i) { + columns[i] = { + title: that.display_columns[i], + visible: that.show_columns.indexOf(that.display_columns[i]) > -1 + }; + } + that.set_datatable(columns); + if (that.filter) { + that.loadWebPageElement(); + } + } catch (e) { + that.table_columns = ['message from server']; + that.setup_columns(); + that.set_datatable([{title: 'message from server', visible: true}]); + that.table.row.add(['<span style="color:red;background:lightgray;">' + e.toString() + '</span>']); } }); diff --git a/packages/data-table-view/src/demo.js b/packages/data-table-view/src/demo.js index b2b501958a55fd35db77ddce660a4509fdb980cb..3dd99ae3b988c48d9c9daae1bb4ddc649e22b207 100644 --- a/packages/data-table-view/src/demo.js +++ b/packages/data-table-view/src/demo.js @@ -51,6 +51,11 @@ class DataTableViewDemo extends LitElement { padding: 10px; border: 1px solid green; } + .box3 { + margin: 10px; + padding: 10px; + border: 1px solid blue; + } </style> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bulma/0.7.5/css/bulma.min.css"> @@ -85,9 +90,10 @@ class DataTableViewDemo extends LitElement { </div> </div> </section> + <!-- <section class="section"> <div class="content"> - <h4>DataTable: no paging, no searching</h4> + <h4>DataTable: no paging, no searching</h4> <div class="box2"> <vpu-data-table-view lang="${this.lang}" @@ -101,6 +107,24 @@ class DataTableViewDemo extends LitElement { </div> </div> </section> + --> + <section class="section"> + <h4>DataTable: nonexistant Entity</h4> + <div class="box3"> + <vpu-data-table-view + lang="${this.lang}" + value="nonExistantEntity" + filter="*" + whitelisted-columns="*" + blacklisted-columns="" + id="dt4" + wait-until-all-loaded + paging + searching + ></vpu-data-table-view> + </div> + </div> + </section> `; } }