Skip to content

Commit 63cc47d

Browse files
author
Hofstetter Benjamin
committed
show metadata download
1 parent f5bfd09 commit 63cc47d

File tree

8 files changed

+70
-85
lines changed

8 files changed

+70
-85
lines changed
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
<template>
2+
<div v-for="path in props.dataset.getLinkedData" :key="path">
3+
<a
4+
:href="PIVEAU_HUB_REPO_URL + 'datasets' + path"
5+
target="_blank"
6+
:title="t(`message.dataset_detail.metadata_download`)"
7+
:aria-label="t(`message.dataset_detail.metadata_download`)"
8+
class="download-item"
9+
>
10+
<SvgIcon icon="Download" size="xl" class="download-item__icon" />
11+
<div>
12+
<h2 class="download-item__title">{{(t(`message.dataset_detail.metadata`)).toLowerCase() + '.' + path.split('.').pop() }}</h2>
13+
<p class="meta-info download-item__meta-info">
14+
<span class="meta-info__item">{{ path.split('.').pop() }}</span>
15+
</p>
16+
</div>
17+
</a>
18+
</div>
19+
</template>
20+
21+
<script setup lang="ts">
22+
import { useI18n } from 'vue-i18n';
23+
import SvgIcon from '../SvgIcon.vue';
24+
import type { DcatApChV2DatasetAdapter } from './model/dcat-ap-ch-v2-dataset-adapter';
25+
import { PIVEAU_HUB_REPO_URL } from '~/constants/piveau-endpoints';
26+
27+
const { t } = useI18n();
28+
29+
const props = defineProps({
30+
dataset: {
31+
type: Object as PropType<DcatApChV2DatasetAdapter>,
32+
required: true
33+
}
34+
});
35+
36+
</script>
37+
38+
<style scoped lang="scss">
39+
a {
40+
overflow-x: hidden;
41+
word-break: break-all;
42+
}
43+
44+
.download-item__title {
45+
text-overflow: hidden;
46+
overflow-x: hidden;
47+
word-break: break-all;
48+
}
49+
</style>

opendata.swiss/ui/app/components/dataset-detail/model/dcat-ap-ch-v2-dataset-adapter.ts

Lines changed: 3 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -95,10 +95,6 @@ export class DcatApChV2DatasetAdapter {
9595

9696
}
9797

98-
get getFormats(): string[] {
99-
return this.#dataset?.getFormats ?? [];
100-
}
101-
10298
get getLicenses(): string[] {
10399
return this.#dataset?.getLicenses ?? [];
104100
}
@@ -110,14 +106,6 @@ export class DcatApChV2DatasetAdapter {
110106
return this.#dataset?.getLicenses ?? [];
111107
}
112108

113-
get getIssued(): string | undefined {
114-
return this.#dataset?.getIssued;
115-
}
116-
117-
get getCreated(): string | undefined {
118-
return this.#dataset?.getCreated;
119-
}
120-
121109
/**
122110
* Get the release date of the dataset if available
123111
*
@@ -163,9 +151,6 @@ export class DcatApChV2DatasetAdapter {
163151
return new Date(this.#dataset.getModified)
164152
}
165153

166-
167-
168-
169154
get getLinkedData(): Record<LinkedDataFormats, string> {
170155
return this.#dataset?.getLinkedData ?? {} as Record<LinkedDataFormats, string>;
171156
}
@@ -183,14 +168,9 @@ export class DcatApChV2DatasetAdapter {
183168
return this.#dataset.getDistributions.map(d => new DcatApChV2DistributionAdapter(d, this));
184169
}
185170

186-
get getPropertyTable(): PropertyTableEntryNode[] {
187-
return this.#dataset?.getPropertyTable ?? [];
188-
}
189-
190-
get getPropertyTable2(): PropertyTableEntryNode[] {
191-
return this.#dataset?.getPropertyTable2 ?? [];
192-
}
193-
171+
/**
172+
* Get the available formats of the dataset
173+
*/
194174
get getOdsFormats(): { id?: string | null | undefined; label?: string | null | undefined; resource?: string | null | undefined; }[] {
195175
return this.#dataset?.getOdsFormats ?? [];
196176
}

opendata.swiss/ui/i18n/locales/de.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,9 @@
5555
"show_raw": "Datum anzeigen",
5656
"show_relative": "Relative Zeit anzeigen",
5757
"details": "Details",
58-
"released": "Veröffentlicht"
58+
"released": "Veröffentlicht",
59+
"metadata_download": "Metadaten herunterladen",
60+
"metadata": "Metadaten"
5961
},
6062
"showcase": {
6163
"type": {

opendata.swiss/ui/i18n/locales/en.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,9 @@
5555
"show_raw": "Show raw date",
5656
"show_relative": "Show relative time",
5757
"details": "Details",
58-
"released": "Released"
58+
"released": "Released",
59+
"metadata_download": "Download metadata",
60+
"metadata": "Metadata"
5961
},
6062
"showcase": {
6163
"type": {

opendata.swiss/ui/i18n/locales/fr.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,9 @@
5555
"show_raw": "Afficher la date brute",
5656
"show_relative": "Afficher le temps relatif",
5757
"details": "Détails",
58-
"released": "Publié"
58+
"released": "Publié",
59+
"metadata_download": "Télécharger les métadonnées",
60+
"metadata": "Métadonnées"
5961
},
6062
"showcase": {
6163
"type": {

opendata.swiss/ui/i18n/locales/it.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,9 @@
5555
"show_raw": "Mostra data grezza",
5656
"show_relative": "Mostra tempo relativo",
5757
"details": "Dettagli",
58-
"released": "Rilasciato"
58+
"released": "Rilasciato",
59+
"metadata_download": "Scarica i metadati",
60+
"metadata": "Metadati"
5961
},
6062
"showcase": {
6163
"type": {

opendata.swiss/ui/pages/datasets/[datasetId]/distribution/[distributionId].vue

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,6 @@ await suspense()
137137
<OdsButton title="Zurück" icon="ArrowLeft" variant="outline" class="btn--back" @click="router.back()" />
138138
</div>
139139
</section>
140-
<pre>{{ resultEnhanced?.getDistributions.filter(d => d.id === distributionId) }}</pre>
141140
</main>
142141
</template>
143142

opendata.swiss/ui/pages/datasets/[datasetId]/index.vue

Lines changed: 6 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@ import OdsDatasetMetaInfo from '../../../app/components/dataset-detail/OdsDatase
1515
import OdsDistributionList from '../../../app/components/dataset-detail/OdsDistributionList.vue'
1616
import OdsButton from '../../../app/components/OdsButton.vue';
1717
import OdsDatasetCatalogPanel from '../../../app/components/dataset-detail/OdsDatasetCatalogPanel.vue'
18+
import OdsMetadataDownloadList from '../../../app/components/dataset-detail/OdsMetadataDownloadList.vue'
19+
1820
import { useSeoMeta } from 'nuxt/app';
1921
2022
const { locale, t } = useI18n();
@@ -137,6 +139,10 @@ await suspense()
137139
<h2 class="h5">{{ t(`message.header.navigation.terms_of_use`) }}</h2>
138140
<OdsDetailTermsOfUse v-for="value in resultEnhanced?.getLicenses" :key="value" :name="value" />
139141
</div>
142+
<div class="box">
143+
<h2 class="h5">{{ t(`message.dataset_detail.metadata_download`) }}</h2>
144+
<OdsMetadataDownloadList :dataset="dataset" />
145+
</div>
140146
</div>
141147
</div>
142148
</div>
@@ -147,63 +153,6 @@ await suspense()
147153
<OdsButton title="Zurück" icon="ArrowLeft" variant="outline" class="btn--back" size="sm" @click="router.back()" />
148154
</div>
149155
</section>
150-
<section class="section bg--secondary-50">
151-
<div class="container">
152-
<h2 class="section__title">Das könnte Sie auch interessieren</h2>
153-
<div class="grid grid--responsive-cols-3 gap--responsive">
154-
<div class="card card--universal card--clickable">
155-
<!----><!---->
156-
<div class="card__content">
157-
<div class="card__body">
158-
<p class="meta-info"><span class="meta-info__item">Bericht</span><span class="meta-info__item">03. März 2000</span></p>
159-
<div class="card__title">
160-
<h3>Auswirkungen von Corona auf die Schweizer Gesellschaft</h3>
161-
</div>
162-
<p> Sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. </p>
163-
<div class="card__image"><img src="https://swiss.github.io/designsystem/images/publication-cover.png" alt="cat"></div>
164-
<p class="meta-info"><span class="meta-info__item">PDF</span><span class="meta-info__item">3.8 Mb</span><span class="meta-info__item">102 Seiten</span><span class="meta-info__item">Deutsch</span></p>
165-
</div>
166-
<div class="card__footer card__footer--icon-only">
167-
<!---->
168-
<div class="card__footer__action">
169-
<OdsButton
170-
variant="outline"
171-
icon-only
172-
icon="ArrowRight"
173-
title="Weiterlesen" />
174-
</div>
175-
</div>
176-
</div>
177-
</div>
178-
<div class="card card--universal card--clickable">
179-
<!----><!---->
180-
<div class="card__content">
181-
<div class="card__body">
182-
<p class="meta-info"><span class="meta-info__item">Bericht</span><span class="meta-info__item">03. März 2000</span></p>
183-
<div class="card__title">
184-
<h3>Auswirkungen von Corona auf die Schweizer Gesellschaft</h3>
185-
</div>
186-
<p> Sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. </p>
187-
<div class="card__image"><img src="https://swiss.github.io/designsystem/images/publication-cover.png" alt="cat"></div>
188-
<p class="meta-info"><span class="meta-info__item">PDF</span><span class="meta-info__item">3.8 Mb</span><span class="meta-info__item">102 Seiten</span><span class="meta-info__item">Deutsch</span></p>
189-
</div>
190-
<div class="card__footer card__footer--icon-only">
191-
<!---->
192-
<div class="card__footer__action">
193-
<OdsButton
194-
variant="outline"
195-
icon-only
196-
icon="ArrowRight"
197-
title="Weiterlesen"
198-
@click="router.back()"
199-
/>
200-
</div>
201-
</div>
202-
</div>
203-
</div>
204-
</div>
205-
</div>
206-
</section>
207156
</main>
208157
</div>
209158

0 commit comments

Comments
 (0)