diff --git a/apps/datahub/src/app/record/record-downloads/record-downloads.component.spec.ts b/apps/datahub/src/app/record/record-downloads/record-downloads.component.spec.ts index 176a3c1ea9..9a60784dd3 100644 --- a/apps/datahub/src/app/record/record-downloads/record-downloads.component.spec.ts +++ b/apps/datahub/src/app/record/record-downloads/record-downloads.component.spec.ts @@ -57,8 +57,8 @@ class DataServiceMock { ]) getDownloadLinksFromOgcApiFeatures = jest.fn((link) => link.url.toString().indexOf('error') > -1 - ? throwError(() => new Error('would not fetch links')) - : of([ + ? Promise.reject(new Error('ogc.unreachable.unknown')) + : Promise.resolve([ { ...link, mimeType: 'application/geo+json', @@ -233,6 +233,13 @@ describe('DataDownloadsComponent', () => { type: 'service', accessServiceProtocol: 'ogcFeatures', }, + { + name: 'Some erroneous OGC API service', + description: 'OGC API service', + url: newUrl('https://error.org/collections/airports/items'), + type: 'service', + accessServiceProtocol: 'ogcFeatures', + }, ]) fixture.detectChanges() }) diff --git a/apps/datahub/src/app/record/record-downloads/record-downloads.component.ts b/apps/datahub/src/app/record/record-downloads/record-downloads.component.ts index ca0ce42eb1..7f01590ff3 100644 --- a/apps/datahub/src/app/record/record-downloads/record-downloads.component.ts +++ b/apps/datahub/src/app/record/record-downloads/record-downloads.component.ts @@ -56,16 +56,26 @@ export class RecordDownloadsComponent { return combineLatest([ ...(wfsLinks.length > 0 ? wfsLinks.map((link) => - this.dataService.getDownloadLinksFromWfs( - link as DatasetServiceDistribution - ) + this.dataService + .getDownloadLinksFromWfs(link as DatasetServiceDistribution) + .pipe( + catchError((e) => { + this.error = e.message + return [of([] as DatasetDistribution[])] + }) + ) ) : [of([] as DatasetDistribution[])]), ...(ogcLinks.length > 0 ? ogcLinks.map((link) => - this.dataService.getDownloadLinksFromOgcApiFeatures( - link as DatasetServiceDistribution - ) + this.dataService + .getDownloadLinksFromOgcApiFeatures( + link as DatasetServiceDistribution + ) + .catch((e) => { + this.error = e.message + return Promise.resolve([]) + }) ) : [of([] as DatasetDistribution[])]), ]).pipe( diff --git a/libs/common/fixtures/src/lib/link.fixtures.ts b/libs/common/fixtures/src/lib/link.fixtures.ts index 3a52ff12c2..c7c929a647 100644 --- a/libs/common/fixtures/src/lib/link.fixtures.ts +++ b/libs/common/fixtures/src/lib/link.fixtures.ts @@ -110,6 +110,14 @@ export const LINK_FIXTURES: Record = deepFreeze({ url: new URL('https://my.ogc.server/wfs'), accessServiceProtocol: 'wfs', }, + geodataWfsDownload: { + name: 'mylayer', + type: 'download', + url: new URL( + 'https://my.ogc.server/wfs?GetFeature&FeatureType=surval_parametre_ligne&format=csv' + ), + accessServiceProtocol: 'wfs', + }, geodataWms2: { name: 'myotherlayer', type: 'service', diff --git a/libs/feature/dataviz/src/lib/service/data.service.spec.ts b/libs/feature/dataviz/src/lib/service/data.service.spec.ts index 390d087a94..9a367ce61a 100644 --- a/libs/feature/dataviz/src/lib/service/data.service.spec.ts +++ b/libs/feature/dataviz/src/lib/service/data.service.spec.ts @@ -81,6 +81,13 @@ jest.mock('@camptocamp/ogc-client', () => ({ newEndpointCall(url) // to track endpoint creation } getCollectionInfo() { + if (this.url.indexOf('error.http') > -1) { + return Promise.reject({ + type: 'http', + info: 'Something went wrong', + httpStatus: 403, + }) + } return Promise.resolve({ bulkDownloadLinks: { json: 'http://json', csv: 'http://csv' }, }) @@ -457,30 +464,47 @@ describe('DataService', () => { }) describe('#getDownloadLinksFromOgcApiFeatures', () => { - it('returns links with formats for link', async () => { - const url = new URL('https://my.ogc.api/features') - const links = await service.getDownloadLinksFromOgcApiFeatures({ - name: 'mycollection', - url, - type: 'service', - accessServiceProtocol: 'ogcFeatures', - }) - expect(links).toEqual([ - { + describe('calling getDownloadLinksFromOgcApiFeatures() with a valid URL', () => { + it('returns links with formats for link', async () => { + const url = new URL('https://my.ogc.api/features') + const links = await service.getDownloadLinksFromOgcApiFeatures({ name: 'mycollection', - mimeType: 'application/json', - url: new URL('http://json'), - type: 'download', - accessServiceProtocol: 'ogcFeatures', - }, - { - name: 'mycollection', - mimeType: 'text/csv', - url: new URL('http://csv'), - type: 'download', + url, + type: 'service', accessServiceProtocol: 'ogcFeatures', - }, - ]) + }) + expect(links).toEqual([ + { + name: 'mycollection', + mimeType: 'application/json', + url: new URL('http://json'), + type: 'download', + accessServiceProtocol: 'ogcFeatures', + }, + { + name: 'mycollection', + mimeType: 'text/csv', + url: new URL('http://csv'), + type: 'download', + accessServiceProtocol: 'ogcFeatures', + }, + ]) + }) + }) + describe('calling getDownloadLinksFromOgcApiFeatures() with a erroneous URL', () => { + it('returns an error', async () => { + try { + const url = new URL('http://error.http/ogcapi') + await service.getDownloadLinksFromOgcApiFeatures({ + name: 'mycollection', + url, + type: 'service', + accessServiceProtocol: 'ogcFeatures', + }) + } catch (e) { + expect(e.message).toBe('ogc.unreachable.unknown') + } + }) }) }) diff --git a/libs/feature/dataviz/src/lib/service/data.service.ts b/libs/feature/dataviz/src/lib/service/data.service.ts index 708905c488..e330b30f1e 100644 --- a/libs/feature/dataviz/src/lib/service/data.service.ts +++ b/libs/feature/dataviz/src/lib/service/data.service.ts @@ -32,6 +32,7 @@ marker('wfs.unreachable.http') marker('wfs.unreachable.unknown') marker('wfs.featuretype.notfound') marker('wfs.geojsongml.notsupported') +marker('ogc.unreachable.unknown') marker('dataset.error.network') marker('dataset.error.http') marker('dataset.error.parse') @@ -159,7 +160,6 @@ export class DataService { const collectionInfo = await this.getDownloadUrlsFromOgcApi( ogcApiLink.url.href ) - return Object.keys(collectionInfo.bulkDownloadLinks).map((downloadLink) => { return { ...ogcApiLink, @@ -179,24 +179,7 @@ export class DataService { return endpoint.getCollectionInfo(collections[0]) }) .catch((error) => { - if (error instanceof Error) { - throw new Error(`wfs.unreachable.unknown`) - } else { - if (error.type === 'network') { - throw new Error(`wfs.unreachable.cors`) - } - if (error.type === 'http') { - throw new Error(`wfs.unreachable.http`) - } - if (error.type === 'parse') { - throw new Error(`wfs.unreachable.parse`) - } - if (error.type === 'unsupportedType') { - throw new Error(`wfs.unreachable.unsupportedType`) - } else { - throw new Error(`wfs.unreachable.unknown`) - } - } + throw new Error(`ogc.unreachable.unknown`) }) } diff --git a/libs/ui/elements/src/lib/downloads-list/downloads-list.component.spec.ts b/libs/ui/elements/src/lib/downloads-list/downloads-list.component.spec.ts index 1abb05ee73..d3a0325a98 100644 --- a/libs/ui/elements/src/lib/downloads-list/downloads-list.component.spec.ts +++ b/libs/ui/elements/src/lib/downloads-list/downloads-list.component.spec.ts @@ -138,6 +138,18 @@ describe('DownloadsListComponent', () => { expect(items[0].componentInstance.isFromWfs).toEqual(false) }) }) + describe('displaying download links from WFS', () => { + let items: DebugElement[] + + beforeEach(() => { + component.links = [LINK_FIXTURES.geodataWfsDownload] + fixture.detectChanges() + items = de.queryAll(By.directive(MockDownloadItemComponent)) + }) + it('sets isFromWfs to true', () => { + expect(items[0].componentInstance.isFromWfs).toEqual(true) + }) + }) describe('filtering links', () => { beforeEach(() => { component.links = [ diff --git a/libs/ui/elements/src/lib/downloads-list/downloads-list.component.ts b/libs/ui/elements/src/lib/downloads-list/downloads-list.component.ts index 722fd71d74..4ba86d26e2 100644 --- a/libs/ui/elements/src/lib/downloads-list/downloads-list.component.ts +++ b/libs/ui/elements/src/lib/downloads-list/downloads-list.component.ts @@ -95,6 +95,6 @@ export class DownloadsListComponent { } isFromWfs(link: DatasetDistribution) { - return link.type === 'service' && link.accessServiceProtocol === 'wfs' + return link.type === 'download' && link.accessServiceProtocol === 'wfs' } } diff --git a/libs/ui/elements/src/lib/record-api-form/record-api-form.component.spec.ts b/libs/ui/elements/src/lib/record-api-form/record-api-form.component.spec.ts index d49207bf23..53b718f21c 100644 --- a/libs/ui/elements/src/lib/record-api-form/record-api-form.component.spec.ts +++ b/libs/ui/elements/src/lib/record-api-form/record-api-form.component.spec.ts @@ -122,4 +122,12 @@ describe('RecordApFormComponent', () => { ]) }) }) + describe('When apiLink input is undefined', () => { + it('should not call parseOutputFormats()', () => { + const spy = jest.spyOn(component, 'parseOutputFormats') + component.apiLink = undefined + fixture.detectChanges() + expect(spy).not.toHaveBeenCalled() + }) + }) }) diff --git a/libs/ui/elements/src/lib/record-api-form/record-api-form.component.ts b/libs/ui/elements/src/lib/record-api-form/record-api-form.component.ts index 96f8f375ff..2377c20495 100644 --- a/libs/ui/elements/src/lib/record-api-form/record-api-form.component.ts +++ b/libs/ui/elements/src/lib/record-api-form/record-api-form.component.ts @@ -17,9 +17,11 @@ const DEFAULT_PARAMS = { }) export class RecordApiFormComponent { @Input() set apiLink(value: DatasetServiceDistribution) { - this.apiBaseUrl = value ? value.url.href : undefined this.outputFormats = [{ value: 'json', label: 'JSON' }] - this.parseOutputFormats() + if (value) { + this.apiBaseUrl = value.url.href + this.parseOutputFormats() + } this.resetUrl() } offset$ = new BehaviorSubject('') diff --git a/translations/de.json b/translations/de.json index f13017a660..7e9df0c40f 100644 --- a/translations/de.json +++ b/translations/de.json @@ -226,6 +226,7 @@ "multiselect.filter.placeholder": "Suche", "nav.back": "Zurück", "next": "weiter", + "ogc.unreachable.unknown": "Der Dienst konnte nicht erreicht werden", "organisation.filter.placeholder": "Ergebnisse filtern", "organisation.sort.sortBy": "Sortieren nach:", "organisations.hits.found": "{hits, plural, =0{Keine Organisation gefunden} other{{hits} von {total} Organisationen angezeigt}}", @@ -290,14 +291,6 @@ "record.metadata.quality.updateFrequency.failed": "Aktualisierungsfrequenz nicht angegeben", "record.metadata.quality.updateFrequency.success": "Aktualisierungsfrequenz angegeben", "record.metadata.related": "Ähnliche Datensätze", - "record.metadata.userFeedbacks": "", - "record.metadata.userFeedbacks.anonymousUser": "", - "record.metadata.userFeedbacks.sortSelector.label": "", - "record.metadata.userFeedbacks.sortSelector.choices.newestFirst": "", - "record.metadata.userFeedbacks.sortSelector.choices.oldestFirst": "", - "record.metadata.userFeedbacks.newComment.placeholder": "", - "record.metadata.userFeedbacks.newAnswer.placeholder": "", - "record.metadata.userFeedbacks.newAnswer.buttonTitle": "", "record.metadata.sheet": "Weitere Informationen verfügbar unter:", "record.metadata.status": "Status", "record.metadata.technical": "Technische Informationen", @@ -312,6 +305,14 @@ "record.metadata.updateFrequency": "Aktualisierungsfrequenz der Daten", "record.metadata.updatedOn": "Letzte Aktualisierung der Dateninformationen", "record.metadata.usage": "Nutzung und Einschränkungen", + "record.metadata.userFeedbacks": "", + "record.metadata.userFeedbacks.anonymousUser": "", + "record.metadata.userFeedbacks.newAnswer.buttonTitle": "", + "record.metadata.userFeedbacks.newAnswer.placeholder": "", + "record.metadata.userFeedbacks.newComment.placeholder": "", + "record.metadata.userFeedbacks.sortSelector.choices.newestFirst": "", + "record.metadata.userFeedbacks.sortSelector.choices.oldestFirst": "", + "record.metadata.userFeedbacks.sortSelector.label": "", "record.more.details": "Weitere Details", "record.tab.chart": "Diagramm", "record.tab.data": "Tabelle", @@ -371,12 +372,6 @@ "table.loading.data": "Daten werden geladen...", "table.object.count": "Objekte in diesem Datensatz", "table.select.data": "Datenquelle", - "timeSincePipe.lessThanAMinute": "", - "timeSincePipe.minutesAgo": "", - "timeSincePipe.hoursAgo": "", - "timeSincePipe.daysAgo": "", - "timeSincePipe.monthsAgo": "", - "timeSincePipe.yearsAgo": "", "tooltip.html.copy": "HTML kopieren", "tooltip.id.copy": "Eindeutige Kennung kopieren", "tooltip.url.copy": "URL kopieren", diff --git a/translations/en.json b/translations/en.json index ae41dc7bd5..a126cde62b 100644 --- a/translations/en.json +++ b/translations/en.json @@ -226,6 +226,7 @@ "multiselect.filter.placeholder": "Search", "nav.back": "Back", "next": "next", + "ogc.unreachable.unknown": "The service could not be reached", "organisation.filter.placeholder": "Filter results", "organisation.sort.sortBy": "Sort by:", "organisations.hits.found": "{hits, plural, =0{No organizations found} other{{hits} out of {total} organizations shown}}", @@ -290,14 +291,6 @@ "record.metadata.quality.updateFrequency.failed": "Update frequency is not specified", "record.metadata.quality.updateFrequency.success": "Update frequency is specified", "record.metadata.related": "Related records", - "record.metadata.userFeedbacks": "Questions / Answers", - "record.metadata.userFeedbacks.anonymousUser": "In order to leave a comment, please log in.", - "record.metadata.userFeedbacks.sortSelector.label": "Sort by ...", - "record.metadata.userFeedbacks.sortSelector.choices.newestFirst": "Newest comments first", - "record.metadata.userFeedbacks.sortSelector.choices.oldestFirst": "Oldest comments first", - "record.metadata.userFeedbacks.newComment.placeholder": "Write your comment here...", - "record.metadata.userFeedbacks.newAnswer.placeholder": "Answer...", - "record.metadata.userFeedbacks.newAnswer.buttonTitle": "Publish", "record.metadata.sheet": "Original metadata", "record.metadata.status": "Status", "record.metadata.technical": "Technical information", @@ -312,6 +305,14 @@ "record.metadata.updateFrequency": "Data Update Frequency", "record.metadata.updatedOn": "Last Data Information Update", "record.metadata.usage": "License and Conditions", + "record.metadata.userFeedbacks": "Questions / Answers", + "record.metadata.userFeedbacks.anonymousUser": "In order to leave a comment, please log in.", + "record.metadata.userFeedbacks.newAnswer.buttonTitle": "Publish", + "record.metadata.userFeedbacks.newAnswer.placeholder": "Answer...", + "record.metadata.userFeedbacks.newComment.placeholder": "Write your comment here...", + "record.metadata.userFeedbacks.sortSelector.choices.newestFirst": "Newest comments first", + "record.metadata.userFeedbacks.sortSelector.choices.oldestFirst": "Oldest comments first", + "record.metadata.userFeedbacks.sortSelector.label": "Sort by ...", "record.more.details": "Read more", "record.tab.chart": "Chart", "record.tab.data": "Table", @@ -371,12 +372,6 @@ "table.loading.data": "Loading data...", "table.object.count": "objects in this dataset", "table.select.data": "Data source", - "timeSincePipe.lessThanAMinute": "Less than a minute ago", - "timeSincePipe.minutesAgo": "{value} minute{s} ago", - "timeSincePipe.hoursAgo": "{value} hour{s} ago", - "timeSincePipe.daysAgo": "{value} day{s} ago", - "timeSincePipe.monthsAgo": "{value} month{s} ago", - "timeSincePipe.yearsAgo": "{value} year{s} ago", "tooltip.html.copy": "Copy HTML", "tooltip.id.copy": "Copy unique identifier", "tooltip.url.copy": "Copy URL", diff --git a/translations/es.json b/translations/es.json index 80f3137515..26c5e3ccb8 100644 --- a/translations/es.json +++ b/translations/es.json @@ -226,6 +226,7 @@ "multiselect.filter.placeholder": "", "nav.back": "", "next": "", + "ogc.unreachable.unknown": "", "organisation.filter.placeholder": "", "organisation.sort.sortBy": "", "organisations.hits.found": "", @@ -290,14 +291,6 @@ "record.metadata.quality.updateFrequency.failed": "", "record.metadata.quality.updateFrequency.success": "", "record.metadata.related": "", - "record.metadata.userFeedbacks": "", - "record.metadata.userFeedbacks.anonymousUser": "", - "record.metadata.userFeedbacks.sortSelector.label": "", - "record.metadata.userFeedbacks.sortSelector.choices.newestFirst": "", - "record.metadata.userFeedbacks.sortSelector.choices.oldestFirst": "", - "record.metadata.userFeedbacks.newComment.placeholder": "", - "record.metadata.userFeedbacks.newAnswer.placeholder": "", - "record.metadata.userFeedbacks.newAnswer.buttonTitle": "", "record.metadata.sheet": "", "record.metadata.status": "", "record.metadata.technical": "", @@ -312,6 +305,14 @@ "record.metadata.updateFrequency": "", "record.metadata.updatedOn": "", "record.metadata.usage": "", + "record.metadata.userFeedbacks": "", + "record.metadata.userFeedbacks.anonymousUser": "", + "record.metadata.userFeedbacks.newAnswer.buttonTitle": "", + "record.metadata.userFeedbacks.newAnswer.placeholder": "", + "record.metadata.userFeedbacks.newComment.placeholder": "", + "record.metadata.userFeedbacks.sortSelector.choices.newestFirst": "", + "record.metadata.userFeedbacks.sortSelector.choices.oldestFirst": "", + "record.metadata.userFeedbacks.sortSelector.label": "", "record.more.details": "", "record.tab.chart": "", "record.tab.data": "", @@ -371,12 +372,6 @@ "table.loading.data": "", "table.object.count": "", "table.select.data": "", - "timeSincePipe.lessThanAMinute": "", - "timeSincePipe.minutesAgo": "", - "timeSincePipe.hoursAgo": "", - "timeSincePipe.daysAgo": "", - "timeSincePipe.monthsAgo": "", - "timeSincePipe.yearsAgo": "", "tooltip.html.copy": "", "tooltip.id.copy": "", "tooltip.url.copy": "", diff --git a/translations/fr.json b/translations/fr.json index f90d19689a..a78c3cfc22 100644 --- a/translations/fr.json +++ b/translations/fr.json @@ -226,6 +226,7 @@ "multiselect.filter.placeholder": "Rechercher", "nav.back": "Retour", "next": "suivant", + "ogc.unreachable.unknown": "Le service n'est pas accessible", "organisation.filter.placeholder": "Filtrer les résultats", "organisation.sort.sortBy": "Trier par :", "organisations.hits.found": "{hits, plural, =0{Aucune organisation trouvé} one{1 organisation sur {total} affichée} other{{hits} organisations sur {total} affichées}}", @@ -290,14 +291,6 @@ "record.metadata.quality.updateFrequency.failed": "Fréquence de mise à jour n'est pas renseignée", "record.metadata.quality.updateFrequency.success": "Fréquence de mise à jour est renseignée", "record.metadata.related": "Voir aussi", - "record.metadata.userFeedbacks": "Questions / Réponses", - "record.metadata.userFeedbacks.anonymousUser": "Pour rédiger un commentaire, veuillez vous identifier.", - "record.metadata.userFeedbacks.sortSelector.label": "Trier par ...", - "record.metadata.userFeedbacks.sortSelector.choices.newestFirst": "Les plus récents en premier", - "record.metadata.userFeedbacks.sortSelector.choices.oldestFirst": "Les plus anciens en premier", - "record.metadata.userFeedbacks.newComment.placeholder": "Rédiger votre commentaire ici...", - "record.metadata.userFeedbacks.newAnswer.placeholder": "Répondre...", - "record.metadata.userFeedbacks.newAnswer.buttonTitle": "Publier", "record.metadata.sheet": "Fiche de métadonnées d'origine", "record.metadata.status": "Statut", "record.metadata.technical": "Informations techniques", @@ -312,6 +305,14 @@ "record.metadata.updateFrequency": "Fréquence de mise à jour des données", "record.metadata.updatedOn": "Dernière mise à jour des informations sur les données", "record.metadata.usage": "Licences et conditions d'utilisation", + "record.metadata.userFeedbacks": "Questions / Réponses", + "record.metadata.userFeedbacks.anonymousUser": "Pour rédiger un commentaire, veuillez vous identifier.", + "record.metadata.userFeedbacks.newAnswer.buttonTitle": "Publier", + "record.metadata.userFeedbacks.newAnswer.placeholder": "Répondre...", + "record.metadata.userFeedbacks.newComment.placeholder": "Rédiger votre commentaire ici...", + "record.metadata.userFeedbacks.sortSelector.choices.newestFirst": "Les plus récents en premier", + "record.metadata.userFeedbacks.sortSelector.choices.oldestFirst": "Les plus anciens en premier", + "record.metadata.userFeedbacks.sortSelector.label": "Trier par ...", "record.more.details": "Détails", "record.tab.chart": "Graphique", "record.tab.data": "Tableau", @@ -371,12 +372,6 @@ "table.loading.data": "Chargement des données...", "table.object.count": "enregistrements dans ces données", "table.select.data": "Source de données", - "timeSincePipe.lessThanAMinute": "Il y a moins d'une minute", - "timeSincePipe.minutesAgo": "Il y a {value} minute{s}", - "timeSincePipe.hoursAgo": "Il y a {value} heure{s}", - "timeSincePipe.daysAgo": "Il y a {value} jour{s}", - "timeSincePipe.monthsAgo": "Il y a {value} mois", - "timeSincePipe.yearsAgo": "Il y a {value} an{s}", "tooltip.html.copy": "Copier le HTML", "tooltip.id.copy": "Copier l'identifiant unique", "tooltip.url.copy": "Copier l'URL", diff --git a/translations/it.json b/translations/it.json index a7b41ab08b..c8aacdc045 100644 --- a/translations/it.json +++ b/translations/it.json @@ -226,6 +226,7 @@ "multiselect.filter.placeholder": "Cerca", "nav.back": "Indietro", "next": "successivo", + "ogc.unreachable.unknown": "Il servizio non è accessibile", "organisation.filter.placeholder": "Filtra i risultati", "organisation.sort.sortBy": "Ordina per:", "organisations.hits.found": "{hits, plural, =0{Nessuna organizzazione trovata} one{1 organizzazione su {total} visualizzata} other{{hits} organizzazioni su {total} visualizzate}}", @@ -290,14 +291,6 @@ "record.metadata.quality.updateFrequency.failed": "La frequenza di aggiornamento non è specificata", "record.metadata.quality.updateFrequency.success": "La frequenza di aggiornamento è specificata", "record.metadata.related": "Vedi anche", - "record.metadata.userFeedbacks": "", - "record.metadata.userFeedbacks.anonymousUser": "", - "record.metadata.userFeedbacks.sortSelector.label": "", - "record.metadata.userFeedbacks.sortSelector.choices.newestFirst": "", - "record.metadata.userFeedbacks.sortSelector.choices.oldestFirst": "", - "record.metadata.userFeedbacks.newComment.placeholder": "", - "record.metadata.userFeedbacks.newAnswer.placeholder": "", - "record.metadata.userFeedbacks.newAnswer.buttonTitle": "", "record.metadata.sheet": "Origine del metadata", "record.metadata.status": "Stato", "record.metadata.technical": "Informazioni tecniche", @@ -312,6 +305,14 @@ "record.metadata.updateFrequency": "Frequenza di aggiornamento dei dati", "record.metadata.updatedOn": "Ultimo aggiornamento delle informazioni sui dati", "record.metadata.usage": "Licenze e limiti di utilizzo", + "record.metadata.userFeedbacks": "", + "record.metadata.userFeedbacks.anonymousUser": "", + "record.metadata.userFeedbacks.newAnswer.buttonTitle": "", + "record.metadata.userFeedbacks.newAnswer.placeholder": "", + "record.metadata.userFeedbacks.newComment.placeholder": "", + "record.metadata.userFeedbacks.sortSelector.choices.newestFirst": "", + "record.metadata.userFeedbacks.sortSelector.choices.oldestFirst": "", + "record.metadata.userFeedbacks.sortSelector.label": "", "record.more.details": "Dettagli", "record.tab.chart": "Grafico", "record.tab.data": "Tabella", @@ -371,12 +372,6 @@ "table.loading.data": "Caricamento dei dati...", "table.object.count": "record in questi dati", "table.select.data": "Sorgente dati", - "timeSincePipe.lessThanAMinute": "", - "timeSincePipe.minutesAgo": "", - "timeSincePipe.hoursAgo": "", - "timeSincePipe.daysAgo": "", - "timeSincePipe.monthsAgo": "", - "timeSincePipe.yearsAgo": "", "tooltip.html.copy": "Copiare il HTML", "tooltip.id.copy": "Copiare l'identificatore unico", "tooltip.url.copy": "Copiare l'URL", diff --git a/translations/nl.json b/translations/nl.json index 9d4f7930af..89616d1e96 100644 --- a/translations/nl.json +++ b/translations/nl.json @@ -226,6 +226,7 @@ "multiselect.filter.placeholder": "", "nav.back": "", "next": "", + "ogc.unreachable.unknown": "", "organisation.filter.placeholder": "", "organisation.sort.sortBy": "", "organisations.hits.found": "", @@ -290,14 +291,6 @@ "record.metadata.quality.updateFrequency.failed": "", "record.metadata.quality.updateFrequency.success": "", "record.metadata.related": "", - "record.metadata.userFeedbacks": "", - "record.metadata.userFeedbacks.anonymousUser": "", - "record.metadata.userFeedbacks.sortSelector.label": "", - "record.metadata.userFeedbacks.sortSelector.choices.newestFirst": "", - "record.metadata.userFeedbacks.sortSelector.choices.oldestFirst": "", - "record.metadata.userFeedbacks.newComment.placeholder": "", - "record.metadata.userFeedbacks.newAnswer.placeholder": "", - "record.metadata.userFeedbacks.newAnswer.buttonTitle": "", "record.metadata.sheet": "", "record.metadata.status": "", "record.metadata.technical": "", @@ -312,6 +305,14 @@ "record.metadata.updateFrequency": "", "record.metadata.updatedOn": "", "record.metadata.usage": "", + "record.metadata.userFeedbacks": "", + "record.metadata.userFeedbacks.anonymousUser": "", + "record.metadata.userFeedbacks.newAnswer.buttonTitle": "", + "record.metadata.userFeedbacks.newAnswer.placeholder": "", + "record.metadata.userFeedbacks.newComment.placeholder": "", + "record.metadata.userFeedbacks.sortSelector.choices.newestFirst": "", + "record.metadata.userFeedbacks.sortSelector.choices.oldestFirst": "", + "record.metadata.userFeedbacks.sortSelector.label": "", "record.more.details": "", "record.tab.chart": "", "record.tab.data": "", @@ -371,12 +372,6 @@ "table.loading.data": "", "table.object.count": "", "table.select.data": "", - "timeSincePipe.lessThanAMinute": "", - "timeSincePipe.minutesAgo": "", - "timeSincePipe.hoursAgo": "", - "timeSincePipe.daysAgo": "", - "timeSincePipe.monthsAgo": "", - "timeSincePipe.yearsAgo": "", "tooltip.html.copy": "", "tooltip.id.copy": "", "tooltip.url.copy": "", diff --git a/translations/pt.json b/translations/pt.json index c753cb1f9d..031e933c7a 100644 --- a/translations/pt.json +++ b/translations/pt.json @@ -226,6 +226,7 @@ "multiselect.filter.placeholder": "", "nav.back": "", "next": "", + "ogc.unreachable.unknown": "", "organisation.filter.placeholder": "", "organisation.sort.sortBy": "", "organisations.hits.found": "", @@ -290,14 +291,6 @@ "record.metadata.quality.updateFrequency.failed": "", "record.metadata.quality.updateFrequency.success": "", "record.metadata.related": "", - "record.metadata.userFeedbacks": "", - "record.metadata.userFeedbacks.anonymousUser": "", - "record.metadata.userFeedbacks.sortSelector.label": "", - "record.metadata.userFeedbacks.sortSelector.choices.newestFirst": "", - "record.metadata.userFeedbacks.sortSelector.choices.oldestFirst": "", - "record.metadata.userFeedbacks.newComment.placeholder": "", - "record.metadata.userFeedbacks.newAnswer.placeholder": "", - "record.metadata.userFeedbacks.newAnswer.buttonTitle": "", "record.metadata.sheet": "", "record.metadata.status": "", "record.metadata.technical": "", @@ -312,6 +305,14 @@ "record.metadata.updateFrequency": "", "record.metadata.updatedOn": "", "record.metadata.usage": "", + "record.metadata.userFeedbacks": "", + "record.metadata.userFeedbacks.anonymousUser": "", + "record.metadata.userFeedbacks.newAnswer.buttonTitle": "", + "record.metadata.userFeedbacks.newAnswer.placeholder": "", + "record.metadata.userFeedbacks.newComment.placeholder": "", + "record.metadata.userFeedbacks.sortSelector.choices.newestFirst": "", + "record.metadata.userFeedbacks.sortSelector.choices.oldestFirst": "", + "record.metadata.userFeedbacks.sortSelector.label": "", "record.more.details": "", "record.tab.chart": "", "record.tab.data": "", @@ -371,12 +372,6 @@ "table.loading.data": "", "table.object.count": "", "table.select.data": "", - "timeSincePipe.lessThanAMinute": "", - "timeSincePipe.minutesAgo": "", - "timeSincePipe.hoursAgo": "", - "timeSincePipe.daysAgo": "", - "timeSincePipe.monthsAgo": "", - "timeSincePipe.yearsAgo": "", "tooltip.html.copy": "", "tooltip.id.copy": "", "tooltip.url.copy": "", diff --git a/translations/sk.json b/translations/sk.json index efe0fa9685..006938fead 100644 --- a/translations/sk.json +++ b/translations/sk.json @@ -226,6 +226,7 @@ "multiselect.filter.placeholder": "Hľadať", "nav.back": "Späť", "next": "Ďalej", + "ogc.unreachable.unknown": "So službou sa nedalo spojiť", "organisation.filter.placeholder": "Filtrovať výsledky", "organisation.sort.sortBy": "Zoradiť podľa:", "organisations.hits.found": "{hits, plural, =0{Žiadna organizácia nenájdená} other{{hits} celkovo {total} organizácií nájdených}}", @@ -290,14 +291,6 @@ "record.metadata.quality.updateFrequency.failed": "Frekvencia aktualizácie nie je určená", "record.metadata.quality.updateFrequency.success": "Frekvencia aktualizácie je určená", "record.metadata.related": "Súvisiace záznamy", - "record.metadata.userFeedbacks": "", - "record.metadata.userFeedbacks.anonymousUser": "", - "record.metadata.userFeedbacks.sortSelector.label": "", - "record.metadata.userFeedbacks.sortSelector.choices.newestFirst": "", - "record.metadata.userFeedbacks.sortSelector.choices.oldestFirst": "", - "record.metadata.userFeedbacks.newComment.placeholder": "", - "record.metadata.userFeedbacks.newAnswer.placeholder": "", - "record.metadata.userFeedbacks.newAnswer.buttonTitle": "", "record.metadata.sheet": "Ďalšie metadáta sú k dispozícii na:", "record.metadata.status": "Stav", "record.metadata.technical": "", @@ -312,6 +305,14 @@ "record.metadata.updateFrequency": "Frekvencia aktualizácie metadát", "record.metadata.updatedOn": "Posledná aktualizácia metadát", "record.metadata.usage": "Použitie a obmedzenia", + "record.metadata.userFeedbacks": "", + "record.metadata.userFeedbacks.anonymousUser": "", + "record.metadata.userFeedbacks.newAnswer.buttonTitle": "", + "record.metadata.userFeedbacks.newAnswer.placeholder": "", + "record.metadata.userFeedbacks.newComment.placeholder": "", + "record.metadata.userFeedbacks.sortSelector.choices.newestFirst": "", + "record.metadata.userFeedbacks.sortSelector.choices.oldestFirst": "", + "record.metadata.userFeedbacks.sortSelector.label": "", "record.more.details": "Čítať viac", "record.tab.chart": "Graf", "record.tab.data": "Tabuľka", @@ -371,12 +372,6 @@ "table.loading.data": "Načítanie údajov...", "table.object.count": "objekty v tomto súbore údajov", "table.select.data": "Zdroj údajov", - "timeSincePipe.lessThanAMinute": "", - "timeSincePipe.minutesAgo": "", - "timeSincePipe.hoursAgo": "", - "timeSincePipe.daysAgo": "", - "timeSincePipe.monthsAgo": "", - "timeSincePipe.yearsAgo": "", "tooltip.html.copy": "Kopírovať HTML", "tooltip.id.copy": "Kopírovať jedinečný identifikátor", "tooltip.url.copy": "Kopírovať URL",