mirror of
https://github.com/galaxyproject/galaxy.git
synced 2026-09-24 16:30:27 +08:00
Use dataset mapper for html and pdf subtype mapping
This commit is contained in:
@@ -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 = [];
|
||||
|
||||
Reference in New Issue
Block a user