Use dataset mapper for html and pdf subtype mapping

This commit is contained in:
guerler
2021-08-30 15:45:24 -04:00
parent 20fd446fcb
commit c22aa7d7a2
@@ -37,41 +37,45 @@
<LoadingSpan v-if="loading" message="Loading Dataset" />
<div v-else-if="error">{{ error }}</div>
<div v-else class="embedded-dataset content-height">
<b-embed
v-if="['pdf', 'html'].includes(datasetType)"
type="iframe"
aspect="16by9"
:src="displayUrl"
/>
<div v-else-if="itemContent.item_data">
<UrlDataProvider
:url="datatypesUrl"
v-slot="{ result: datatypesModel, loading: datatypesLoading }"
>
<LoadingSpan v-if="datatypesLoading" message="Loading Datatypes" />
<div v-else-if="isSubType('tabular', datasetType, datatypesModel)">
<UrlDataProvider
:url="metaUrl"
v-slot="{ result: metaData, loading: metaLoading, error: metaError }"
>
<LoadingSpan v-if="metaLoading" message="Loading Metadata" />
<div v-else-if="metaError">{{ metaError }}</div>
<b-table
v-else
striped
hover
:fields="getFields(metaData)"
:items="getItems(itemContent.item_data, metaData)"
/>
</UrlDataProvider>
<UrlDataProvider
:url="datatypesUrl"
v-slot="{ result: datatypesModel, loading: datatypesLoading }"
>
<LoadingSpan v-if="datatypesLoading" message="Loading Datatypes" />
<div v-else>
<b-embed
v-if="isSubTypeOfAny(datasetType, ['pdf', 'html'], datatypesModel)"
type="iframe"
aspect="16by9"
:src="displayUrl"
/>
<div v-else-if="itemContent.item_data">
<div v-if="isSubTypeOfAny(datasetType, ['tabular'], datatypesModel)">
<UrlDataProvider
:url="metaUrl"
v-slot="{ result: metaData, loading: metaLoading, error: metaError }"
>
<LoadingSpan v-if="metaLoading" message="Loading Metadata" />
<div v-else-if="metaError">{{ metaError }}</div>
<b-table
v-else
striped
hover
:fields="getFields(metaData)"
:items="getItems(itemContent.item_data, metaData)"
/>
</UrlDataProvider>
</div>
<pre v-else>
<code class="text-normalwrap">{{ itemContent.item_data }}</code>
</pre>
</div>
<pre v-else>
<code class="text-normalwrap">{{ itemContent.item_data }}</code>
</pre>
</UrlDataProvider>
</div>
<div v-else>No content found.</div>
<b-link v-if="itemContent.truncated" :href="itemContent.item_url"> Show More... </b-link>
<div v-else>No content found.</div>
<b-link v-if="itemContent.truncated" :href="itemContent.item_url">
Show More...
</b-link>
</div>
</UrlDataProvider>
</div>
</UrlDataProvider>
</b-card-body>
@@ -133,9 +137,9 @@ export default {
},
},
methods: {
isSubType(child, parent, datatypesModel) {
isSubTypeOfAny(child, parents, datatypesModel) {
const datatypesMapper = new DatatypesMapperModel(datatypesModel);
return datatypesMapper.isSubType(child, parent);
return datatypesMapper.isSubTypeOfAny(child, parents);
},
getFields(metaData) {
const fields = [];