diff --git a/apps/datahub-e2e/src/e2e/datasetDetailPage.cy.ts b/apps/datahub-e2e/src/e2e/datasetDetailPage.cy.ts index 362fc728b5..2862cb59c9 100644 --- a/apps/datahub-e2e/src/e2e/datasetDetailPage.cy.ts +++ b/apps/datahub-e2e/src/e2e/datasetDetailPage.cy.ts @@ -128,6 +128,10 @@ describe('dataset pages', () => { expect(text).not.to.equal('') }) }) + it('should display the keywords', () => { + cy.get('gn-ui-expandable-panel').eq(2).click() + cy.get('gn-ui-badge').should('have.length.gt', 0) + }) it('should display the lineage and usage tabs', () => { cy.get('datahub-record-metadata') .find('[id="about"]') @@ -160,6 +164,20 @@ describe('dataset pages', () => { cy.get('[data-cy="organization-name"]').click() cy.url().should('include', '/search?publisher=') }) + it('should go to dataset search page when clicking on keyword and filter by keyword', () => { + cy.get('gn-ui-expandable-panel').eq(2).click() + + cy.get('gn-ui-badge').should('have.length.gt', 0).eq(1).as('keyword') + + cy.get('@keyword').then((key) => { + keyword = key.text().toUpperCase() + cy.get('@keyword').first().click() + cy.url().should('include', '/search?q=') + cy.get('gn-ui-fuzzy-search') + .find('input') + .should('have.value', keyword) + }) + }) }) }) diff --git a/apps/datahub/src/app/record/record-metadata/record-metadata.component.html b/apps/datahub/src/app/record/record-metadata/record-metadata.component.html index 625eb0b34c..c07d56fccc 100644 --- a/apps/datahub/src/app/record/record-metadata/record-metadata.component.html +++ b/apps/datahub/src/app/record/record-metadata/record-metadata.component.html @@ -19,6 +19,7 @@ class="sm:block" [metadata]="facade.metadata$ | async" [incomplete]="facade.isIncomplete$ | async" + (keyword)="onInfoKeywordClick($event)" > diff --git a/libs/ui/elements/src/lib/metadata-info/metadata-info.component.css b/libs/ui/elements/src/lib/metadata-info/metadata-info.component.css index e7f085d517..3b22c90eaa 100644 --- a/libs/ui/elements/src/lib/metadata-info/metadata-info.component.css +++ b/libs/ui/elements/src/lib/metadata-info/metadata-info.component.css @@ -7,3 +7,7 @@ padding-bottom: 10px; @apply border-b border-gray-300; } + +:host ::ng-deep gn-ui-copy-text-button button mat-icon { + transform: scale(0.8); +} diff --git a/libs/ui/elements/src/lib/metadata-info/metadata-info.component.html b/libs/ui/elements/src/lib/metadata-info/metadata-info.component.html index 2a4ed6877a..1a7be4c4bf 100644 --- a/libs/ui/elements/src/lib/metadata-info/metadata-info.component.html +++ b/libs/ui/elements/src/lib/metadata-info/metadata-info.component.html @@ -75,12 +75,61 @@ *ngIf="metadata.landingPage" [title]="'record.metadata.details' | translate" > -
-

record.metadata.sheet

-

- - {{ metadata.landingPage }} - -

+
+
+

record.metadata.updatedOn

+

+ {{ metadata.recordUpdated && metadata.recordUpdated.toLocaleString() }} +

+
+
+

record.metadata.sheet

+

+ + {{ metadata.landingPage }} + +

+
+
+

record.metadata.owner

+

+ {{ metadata.ownerOrganization.name }} +

+
+
+

record.metadata.uniqueId

+
+ +

+ {{ metadata.uniqueIdentifier }} +

+
+
+
+

record.metadata.themes

+
+ {{ theme }} +
+
+
+

record.metadata.keywords

+
+ {{ keyword }} +
+
diff --git a/libs/ui/elements/src/lib/metadata-info/metadata-info.component.ts b/libs/ui/elements/src/lib/metadata-info/metadata-info.component.ts index c2745049c2..cee796092e 100644 --- a/libs/ui/elements/src/lib/metadata-info/metadata-info.component.ts +++ b/libs/ui/elements/src/lib/metadata-info/metadata-info.component.ts @@ -52,4 +52,13 @@ export class MetadataInfoComponent { fieldReady(propName: string) { return !this.incomplete || propName in this.metadata } + + onKeywordClick(keyword: string) { + this.keyword.emit(keyword) + } + + copyText() { + navigator.clipboard.writeText(this.metadata.uniqueIdentifier) + ;(event.target as HTMLElement).blur() + } } diff --git a/translations/de.json b/translations/de.json index 63ab9e47af..7d6c9899f6 100644 --- a/translations/de.json +++ b/translations/de.json @@ -218,7 +218,7 @@ "record.metadata.catalog": "Katalog", "record.metadata.contact": "Kontakt", "record.metadata.createdOn": "Erstellt am", - "record.metadata.details": "Details", + "record.metadata.details": "Technische Informationen", "record.metadata.download": "Downloads", "record.metadata.formats": "", "record.metadata.isOpenData": "Open Data", @@ -227,6 +227,7 @@ "record.metadata.links": "Links", "record.metadata.noUsage": "Für diesen Datensatz sind keine Verwendungsbedingungen angegeben.", "record.metadata.origin": "Über die Daten", + "record.metadata.owner": "", "record.metadata.preview": "Vorschau", "record.metadata.publications": "Veröffentlichungen", "record.metadata.quality": "", @@ -249,8 +250,10 @@ "record.metadata.quality.updateFrequency.success": "", "record.metadata.related": "Ähnliche Datensätze", "record.metadata.sheet": "Weitere Informationen erhalten Sie unter :", + "record.metadata.themes": "", "record.metadata.title": "Titel", "record.metadata.type": "", + "record.metadata.uniqueId": "", "record.metadata.updateFrequency": "Aktualisierungsfrequenz der Daten", "record.metadata.updateStatus": "Aktualisierungsstatus der Daten", "record.metadata.updatedOn": "Letzte Aktualisierung der Dateninformationen", @@ -314,6 +317,7 @@ "table.object.count": "Objekte in diesem Datensatz", "table.select.data": "Datenquelle", "tooltip.html.copy": "HTML kopieren", + "tooltip.id.copy": "", "tooltip.url.copy": "URL kopieren", "tooltip.url.open": "URL öffnen", "ui.readLess": "Weniger lesen", diff --git a/translations/en.json b/translations/en.json index 8ab67d92e0..976bb6cc8a 100644 --- a/translations/en.json +++ b/translations/en.json @@ -218,7 +218,7 @@ "record.metadata.catalog": "Catalog", "record.metadata.contact": "Contact", "record.metadata.createdOn": "Created on", - "record.metadata.details": "Details", + "record.metadata.details": "Technical information", "record.metadata.download": "Downloads", "record.metadata.formats": "Formats", "record.metadata.isOpenData": "Open Data", @@ -227,6 +227,7 @@ "record.metadata.links": "Links", "record.metadata.noUsage": "No usage conditions specified for this record.", "record.metadata.origin": "About the data", + "record.metadata.owner": "Catalog of origin", "record.metadata.preview": "Preview", "record.metadata.publications": "publications", "record.metadata.quality": "Metadata Quality", @@ -248,12 +249,14 @@ "record.metadata.quality.updateFrequency.failed": "Update frequency is not completed", "record.metadata.quality.updateFrequency.success": "Update frequency is completed", "record.metadata.related": "Related records", - "record.metadata.sheet": "More information available from:", + "record.metadata.sheet": "Original metadata", + "record.metadata.themes": "Categories", "record.metadata.title": "Title", "record.metadata.type": "Geographical dataset", + "record.metadata.uniqueId": "Unique Identifier", "record.metadata.updateFrequency": "Data Update Frequency", "record.metadata.updateStatus": "Data Update Status", - "record.metadata.updatedOn": "Last Data Information Update", + "record.metadata.updatedOn": "Metadata's last update", "record.metadata.usage": "Usage & constraints", "record.more.details": "Read more", "record.tab.chart": "Chart", @@ -314,6 +317,7 @@ "table.object.count": "objects in this dataset", "table.select.data": "Data source", "tooltip.html.copy": "Copy HTML", + "tooltip.id.copy": "Copy unique identifier", "tooltip.url.copy": "Copy URL", "tooltip.url.open": "Open URL", "ui.readLess": "Read less", diff --git a/translations/es.json b/translations/es.json index caa35ea247..e379e5ae57 100644 --- a/translations/es.json +++ b/translations/es.json @@ -227,6 +227,7 @@ "record.metadata.links": "", "record.metadata.noUsage": "", "record.metadata.origin": "", + "record.metadata.owner": "", "record.metadata.preview": "", "record.metadata.publications": "", "record.metadata.quality": "", @@ -249,8 +250,10 @@ "record.metadata.quality.updateFrequency.success": "", "record.metadata.related": "", "record.metadata.sheet": "", + "record.metadata.themes": "", "record.metadata.title": "", "record.metadata.type": "", + "record.metadata.uniqueId": "", "record.metadata.updateFrequency": "", "record.metadata.updateStatus": "", "record.metadata.updatedOn": "", @@ -314,6 +317,7 @@ "table.object.count": "", "table.select.data": "", "tooltip.html.copy": "", + "tooltip.id.copy": "", "tooltip.url.copy": "", "tooltip.url.open": "", "ui.readLess": "", diff --git a/translations/fr.json b/translations/fr.json index ba02e6b075..993c73bd1f 100644 --- a/translations/fr.json +++ b/translations/fr.json @@ -218,7 +218,7 @@ "record.metadata.catalog": "Catalogue", "record.metadata.contact": "Contact", "record.metadata.createdOn": "Créé le", - "record.metadata.details": "Détails", + "record.metadata.details": "Informations techniques", "record.metadata.download": "Téléchargements", "record.metadata.formats": "Formats", "record.metadata.isOpenData": "Donnée Ouverte", @@ -227,6 +227,7 @@ "record.metadata.links": "Liens", "record.metadata.noUsage": "Aucune condition d'utilisation spécifiée pour ces données", "record.metadata.origin": "À propos des données", + "record.metadata.owner": "Catalogue d'origine", "record.metadata.preview": "Aperçu", "record.metadata.publications": "données", "record.metadata.quality": "Qualité des métadonnées", @@ -248,12 +249,14 @@ "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.sheet": "Plus d'informations à l'adresse suivante :", + "record.metadata.sheet": "Fiche de métadonnées d'origine", + "record.metadata.themes": "Catégories", "record.metadata.title": "Titre", "record.metadata.type": "Donnée géographique", + "record.metadata.uniqueId": "Identificateur de ressource unique", "record.metadata.updateFrequency": "Fréquence de mise à jour des données", "record.metadata.updateStatus": "Statut de mise à jour des données", - "record.metadata.updatedOn": "Dernière mise à jour des informations sur les données", + "record.metadata.updatedOn": "Mise à jour de la fiche de métadonnée", "record.metadata.usage": "Conditions d'utilisation", "record.more.details": "Détails", "record.tab.chart": "Graphique", @@ -314,6 +317,7 @@ "table.object.count": "enregistrements dans ces données", "table.select.data": "Source de données", "tooltip.html.copy": "Copier le HTML", + "tooltip.id.copy": "Copier l'identifiant unique", "tooltip.url.copy": "Copier l'URL", "tooltip.url.open": "Ouvrir l'URL", "ui.readLess": "Réduire", diff --git a/translations/it.json b/translations/it.json index b5fc692fa1..d35a909296 100644 --- a/translations/it.json +++ b/translations/it.json @@ -218,7 +218,7 @@ "record.metadata.catalog": "Catalogo", "record.metadata.contact": "Contatto", "record.metadata.createdOn": "Creato il", - "record.metadata.details": "Dettagli", + "record.metadata.details": "Informazioni tecniche", "record.metadata.download": "Download", "record.metadata.formats": "Formati", "record.metadata.isOpenData": "Data aperta", @@ -227,6 +227,7 @@ "record.metadata.links": "Collegamenti", "record.metadata.noUsage": "Nessuna condizione d'uso specificata per questi dati", "record.metadata.origin": "Informazioni sui dati", + "record.metadata.owner": "Catalogo originale", "record.metadata.preview": "Anteprima", "record.metadata.publications": "pubblicazioni", "record.metadata.quality": "Qualità dei metadati", @@ -248,12 +249,14 @@ "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.sheet": "Per ulteriori informazioni, cliccate qui:", + "record.metadata.sheet": "Origine del metadata", + "record.metadata.themes": "Categorie", "record.metadata.title": "Titolo", "record.metadata.type": "Dati geografici", + "record.metadata.uniqueId": "Identificatore unico di risorsa", "record.metadata.updateFrequency": "Frequenza di aggiornamento dei dati", "record.metadata.updateStatus": "Stato di aggiornamento dei dati", - "record.metadata.updatedOn": "Ultimo aggiornamento delle informazioni sui dati", + "record.metadata.updatedOn": "Ultimo aggiornamento del metadata", "record.metadata.usage": "Condizioni d'uso", "record.more.details": "Dettagli", "record.tab.chart": "Grafico", @@ -314,6 +317,7 @@ "table.object.count": "record in questi dati", "table.select.data": "Sorgente dati", "tooltip.html.copy": "Copiare il HTML", + "tooltip.id.copy": "Copiare l'identificatore unico", "tooltip.url.copy": "Copiare l'URL", "tooltip.url.open": "Aprire l'URL", "ui.readLess": "Ridurre", diff --git a/translations/nl.json b/translations/nl.json index 516891b9de..6c51ad7e03 100644 --- a/translations/nl.json +++ b/translations/nl.json @@ -227,6 +227,7 @@ "record.metadata.links": "", "record.metadata.noUsage": "", "record.metadata.origin": "", + "record.metadata.owner": "", "record.metadata.preview": "", "record.metadata.publications": "", "record.metadata.quality": "", @@ -249,8 +250,10 @@ "record.metadata.quality.updateFrequency.success": "", "record.metadata.related": "", "record.metadata.sheet": "", + "record.metadata.themes": "", "record.metadata.title": "", "record.metadata.type": "", + "record.metadata.uniqueId": "", "record.metadata.updateFrequency": "", "record.metadata.updateStatus": "", "record.metadata.updatedOn": "", @@ -314,6 +317,7 @@ "table.object.count": "", "table.select.data": "", "tooltip.html.copy": "", + "tooltip.id.copy": "", "tooltip.url.copy": "", "tooltip.url.open": "", "ui.readLess": "", diff --git a/translations/pt.json b/translations/pt.json index 141d74f640..a625d6eb14 100644 --- a/translations/pt.json +++ b/translations/pt.json @@ -227,6 +227,7 @@ "record.metadata.links": "", "record.metadata.noUsage": "", "record.metadata.origin": "", + "record.metadata.owner": "", "record.metadata.preview": "", "record.metadata.publications": "", "record.metadata.quality": "", @@ -249,8 +250,10 @@ "record.metadata.quality.updateFrequency.success": "", "record.metadata.related": "", "record.metadata.sheet": "", + "record.metadata.themes": "", "record.metadata.title": "", "record.metadata.type": "", + "record.metadata.uniqueId": "", "record.metadata.updateFrequency": "", "record.metadata.updateStatus": "", "record.metadata.updatedOn": "", @@ -314,6 +317,7 @@ "table.object.count": "", "table.select.data": "", "tooltip.html.copy": "", + "tooltip.id.copy": "", "tooltip.url.copy": "", "tooltip.url.open": "", "ui.readLess": "", diff --git a/translations/sk.json b/translations/sk.json index 7796ee298c..1124148783 100644 --- a/translations/sk.json +++ b/translations/sk.json @@ -227,6 +227,7 @@ "record.metadata.links": "Odkazy", "record.metadata.noUsage": "Pre túto položku nie sú špecifikované žiadne podmienky použitia.", "record.metadata.origin": "Pôvod", + "record.metadata.owner": "", "record.metadata.preview": "Náhľad", "record.metadata.publications": "publikácie", "record.metadata.quality": "Kvalita metadát", @@ -249,8 +250,10 @@ "record.metadata.quality.updateFrequency.success": "", "record.metadata.related": "Súvisiace záznamy", "record.metadata.sheet": "Ďalšie metadáta sú k dispozícii na:", + "record.metadata.themes": "", "record.metadata.title": "Názov", "record.metadata.type": "", + "record.metadata.uniqueId": "", "record.metadata.updateFrequency": "Frekvencia aktualizácie metadát", "record.metadata.updateStatus": "Stav aktualizácie metadát", "record.metadata.updatedOn": "Posledná aktualizácia metadát", @@ -314,6 +317,7 @@ "table.object.count": "", "table.select.data": "", "tooltip.html.copy": "", + "tooltip.id.copy": "", "tooltip.url.copy": "", "tooltip.url.open": "", "ui.readLess": "",