SPW-DIG / metawal-core-geonetwork

Metawal - Catalogue pour l'information géographique de Wallonie
http://metawal.wallonie.be
GNU General Public License v2.0
3 stars 1 forks source link

Webcomponent - affichage des relations dans un tableau #804

Closed vbombaerts closed 1 year ago

vbombaerts commented 1 year ago

On veut afficher les ressources en relation avec une autre ressource dans un tableau. Est-ce possible actuellement avec les WC ? Comment ?

Nom donnée Fait partie de Est constitué de Sert de source pour Dérivé de Est une révision de
Donnée 1 Série A Donnée 2, Donnée 3
Série A Donnée 1, Donnée 4, Donnée 5 Série B
davinciagf commented 1 year ago

Il est possible d'obtenir ce rendu via la config actuelle du web component.

image

Exemple :

<catalogue-results-table
        catalogueurl="https://metawal.wallonie.be/geonetwork/srv"
        fields='
    {"columnName":"Nom de la donnée","columnIndex":"resourceTitleObject","columnJsonPath":"$.langfre","columnWidth":"2"} |
    {"columnName":"Fait partie de","columnIndex":"related","columnJsonPath":"$.datasets[*]._source.resourceTitleObject.langfre","columnWidth":"2" , "columnIcon":"th","columnFormatter":"withtext"} |
    {"columnName":"Dérivé de","columnIndex":"related","columnJsonPath":"$.associated[*]._source.resourceTitleObject.langfre","columnWidth":"2", "columnIcon":"th","columnFormatter":"withtext"} |
    {"columnName":"Est constitué de","columnIndex":"related","columnJsonPath":"$.children[*]._source.resourceTitleObject.langfre","columnWidth":"2", "columnIcon":"th","columnFormatter":"withtext"} 
    '
        size="15"
        sortby="mw-gp-localIdentifier"
        sorttype="asc"
      >
      </catalogue-results-table>

Malheureusement, il n'y a pas de mécanisme pour intégrer un hyperlien vers la relation.

Proposition: Une permière amélioration est de rajouter cet hyperlien via une icone sans introduire de nouveau paramètre de configuration au niveau de la définition des paramètres du wc : image En cours de déploiement ...

A discuter si nécessaire de :

vbombaerts commented 1 year ago

OK pour ces deux ci

<catalogue-results-table
        catalogueurl="https://metawal4.test.wallonie.be/geonetwork/srv"
        fields='
{"columnName":"Nom de la donnée","columnIndex":"resourceTitleObject","columnJsonPath":"$.langfre","columnWidth":"2"} |
{"columnName":"Identifiant","columnIndex":"mw-gp-localIdentifier","columnJsonPath":"","columnWidth":"2"} |
{"columnName":"Fait partie de","columnIndex":"related","columnJsonPath":"$.parent[*]._source.resourceTitleObject.langfre","columnWidth":"2" , "columnIcon":"th","columnFormatter":"withtext"} |
{"columnName":"Est constitué de","columnIndex":"related","columnJsonPath":"$.children[*]._source.resourceTitleObject.langfre","columnWidth":"2", "columnIcon":"th","columnFormatter":"withtext"}
    '
        size="5"
        filter="+(resourceType:dataset or resourceType:series)"
    filterfield="resourceType"
    sortby="mw-gp-localIdentifier"
        sorttype="asc"
      >
      </catalogue-results-table>

KO pour ces 3 là

<catalogue-results-table
        catalogueurl="https://metawal4.test.wallonie.be/geonetwork/srv"
        fields='
{"columnName":"Nom de la donnée","columnIndex":"resourceTitleObject","columnJsonPath":"$.langfre","columnWidth":"2"} |
{"columnName":"Identifiant","columnIndex":"mw-gp-localIdentifier","columnJsonPath":"","columnWidth":"2"} |
{"columnName":"Est une révision de","columnIndex":"related","columnJsonPath":"$.siblings[?(@.properties.associationType=='revisionOf')]._source.resourceTitleObject.langfre","columnWidth":"2", "columnIcon":"th","columnFormatter":"withtext"} |
{"columnName":"Dérivé de","columnIndex":"related","columnJsonPath":"$.sources[*]._source.resourceTitleObject.langfre","columnWidth":"2", "columnIcon":"th","columnFormatter":"withtext"} |
{"columnName":"Sert de source pour","columnIndex":"related","columnJsonPath":"$.hassources[*]._source.resourceTitleObject.langfre","columnWidth":"2", "columnIcon":"th","columnFormatter":"withtext"}
    '
        size="5"
        filter="+(resourceType:dataset or resourceType:series)"
    filterfield="resourceType"
    sortby="mw-gp-localIdentifier"
        sorttype="asc"
      >
      </catalogue-results-table>
vbombaerts commented 1 year ago

Fiches test :

hassources --> a0ad23a1-1845-4bd5-8c2f-0f62d3f1ec75 sources --> 438fcfc5-ae66-4faa-a352-0368145fad50 siblings[?(@.properties.associationType=="revisionOf")] --> 86462606-4a21-49c8-ab9e-564ccba681b7

vbombaerts commented 1 year ago

Remplacer siblings[?(@.properties.associationType=="revisionOf")] par $[?(/revisionOf/.test(@.siblings.properties.associationType))]._source.resourceTitleObject.default pour éviter l'utilisation des guillemets, ça permet d'afficher le tableau, mais toujours rien d'affiché dans les relations

davinciagf commented 1 year ago

Pour : hassources --> a0ad23a1-1845-4bd5-8c2f-0f62d3f1ec75 sources --> 438fcfc5-ae66-4faa-a352-0368145fad50 C'était lié à l'url de requête qui n'incluait pas l'ensemble des possibilités (hassources,...) Pour le siblings, voici le type de jsonpath mais il y avait également un erreur dans le code :

... "columnJsonPath":"$.siblings[?(@.properties.associationType==\"revisionOf\")]._source.resourceTitleObject.default"...

Déploiement en cours

vbombaerts commented 1 year ago

C'est corrigé ? Je n'ai toujours rien sur https://metawal4.test.wallonie.be/geonetwork/srv/api/pages/fre/demorelated/content

davinciagf commented 1 year ago

Pas encore déployé sur test (mais dispo sur apps.titellus.net) - je pousserai sur test en même temps que le #807

vbombaerts commented 1 year ago

OK avec webcomponent dispo sur titellus

vbombaerts commented 1 year ago

OK en test

marceaulouis commented 1 year ago

OK en valid (j'ai gardé le même catalogueurl pour pouvoir comparer)