Closed vbombaerts closed 2 years ago
J'ai fait un runtime field pour simplifier le nom du codespace de l'identifiant local en nom de la BD.
mw-gp-localIdentifierCodespace
---> mw-gp-localIdentifierCodespaceDB
def path = doc['mw-gp-localIdentifierCodespace'].value ;
if (path != null) {
int lastSlashIndex = path.lastIndexOf('.');
if (lastSlashIndex > 0) {
emit(path.substring(lastSlashIndex+1));
return;
}
}
emit("");
Ca marche dans Kibana, mais ça ne transparait pas dans la sortie de l'API. Donc inexploitable dans le Webcomponent.
Je propose de n'encoder que le nom de la BD dans le codespace de l'identifiant local plutôt que toute la chaine BE.SPW.INFRASIG... Je vais faire la modif en batch.
Hé mince, j'ai tout pété. L'index recherche SPW.INFRASIG. pour créer le localIdentifierCodeSpace :(
Retour à la situation initiale. Je vais tenter une autre approche...
Pour le tableau des données intranet, on manque de place. J'essaie donc de réduire les champs au maximum. Par exemple, pour le nom de la BD, on peut passer de BE.SPW.INFRASIG.CARTON à CARTON ou même C Pour le statut, on pourrait le remplacer par des icones de couleur.
D'où ces quelques questions abordées au tél avec Arnaud : Peut-on :
columnLabel
) sur base de la valeur du jsonpath.Deux cas sont possibles :
Cas 1 - On choisit une couleur de label unique pour l'ensemble des valeurs du jsonpath. Le paramètre columnLabel
est une simple string définissant la couleur
{"columnName":"BD","columnIndex":"mw-gp-localIdentifierCodespace", "columnLabel":"red", "columnJsonPath":"","columnWidth":"1"} |
Cas 2 - On choisit de différencier la couleur de label selon la valeur du jsonpath. Le paramètre columnLabel
est un objet de type key/value qui correspond à la valeur du jsonpath/couleur pour cette valeur. Si une valeur du jsonpath n'est pas définie dans l'objet, aucun label n'est appliqué.
{"columnName":"Type","columnIndex":"resourceType", "columnLabel":{"series":"blue"}, "columnJsonPath":"$[0]","columnWidth":"1"} |
columnFormatter
pour les valeurs de type non url (attention la valeurs pour ce paramètre est maintenant : "" ou "withouttext"). Si pas de texte ajout d'un tooltip columnIconColor
) sur base de la valeur du jsonpath.
Deux cas sont possibles :
Cas 1 - On choisit une couleur d'icone unique pour l'ensemble des valeurs du jsonpath. Le paramètre columnIconColor
est une simple string définissant la couleur de l'icone {"columnName":"Type","columnIndex":"resourceType", "columnLabel":{"series":"blue","dataset":"green"}, "columnIcon":{"series":"th","dataset":"map"}, "columnIconColor":"green", "columnFormatter":"withouttext", "columnJsonPath":"$[0]","columnWidth":"1"} |
Cas 2 - On choisit de différencier la couleur des icones selon la valeur du jsonpath. Le paramètre columnIconColor
est un objet de type key/value qui correspond à la valeur du jsonpath/couleur pour cette valeur. Si une valeur du jsonpath n'est pas définie dans l'objet, aucune couleur n'est appliquée pour l'icone.
{"columnName":"Type","columnIndex":"resourceType", "columnLabel":{"series":"blue","dataset":"green"}, "columnIcon":{"series":"th","dataset":"map"}, "columnIconColor":{"series":"green","dataset":"red"}, "columnFormatter":"withouttext", "columnJsonPath":"$[0]","columnWidth":"1"} |
columnValue
est une simple string définissant la valeur
{"columnName":"Type","columnIndex":"resourceType", "columnLabel":{"series":"blue","dataset":"green"}, "columnIcon":{"series":"th","dataset":"map"}, "columnIconColor":{"series":"green","dataset":"red"}, "columnValue":"toto", "columnFormatter":"", "columnJsonPath":"$[0]","columnWidth":"1"} |
Cas 2 - On choisit de différencier les valeurs affichées selon des conditions (sur base des valeurs de retour du jsonpath) Le paramètre `columnValue` est un objet de type key/value qui correspond à la valeur du jsonpath/valeur à afficher pour cette valeur. Affichage d'un tooltip avec la valeur du jsonpath
{"columnName":"BD","columnIndex":"mw-gp-localIdentifierCodespace", "columnLabel":"red", "columnJsonPath":"","columnWidth":"1" , "columnValue":{"BE.SPW.INFRASIG.GINET":"G","BE.SPW.INFRASIG.CARTON":"C"}} |
![image](https://user-images.githubusercontent.com/576292/175014575-612a313d-080f-457c-91d6-84a8fe0b6fc6.png)
C'est super !
J'aurais juste besoin d'une paire d'yeux supplémentaire pour détecter ce qui coince dans mon code. C'est au niveau de la colonne BD et de la colonne Statut. Le columnLabel, le columnIconColor et le columnIcon ne fonctionnent plus. Pourtant plus tôt j'avais réussi.
Autre point : depuis que tu as autorisé le découpage des mots, j'ai l'impression que le paramètre relatif à la largeur des colonnes ne fonctionne plus.
<link href="https://metawal4.test.wallonie.be/geonetwork/catalog/lib/icho/styles.css" rel="stylesheet" />
<link href="https://metawal4.test.wallonie.be/geonetwork/catalog/lib/icho/main.css" rel="stylesheet" />
<!--
<link href="https://apps.titellus.net/hub/webcomponents/styles.ef53c8a098d2c6ec.css" rel="stylesheet" />
<link href="https://apps.titellus.net/hub/webcomponents/main.5210541a9d9540bc.css" rel="stylesheet" />
-->
<div style="margin: 2.5em">
<h1>Contenu des bases de données</h1>
<catalogue-results-table
catalogueurl="https://metawal.wallonie.be/geonetwork/intranet"
fields='
{"columnName":"Nom de la donnée","columnIndex":"resourceTitleObject","columnJsonPath":"$.langfre","columnWidth":"2"} |
{"columnName":"Nom de la donnée","columnIndex":"overview","columnJsonPath":"$[0].url","columnWidth":"2"} |
{"columnName":"Type","columnIndex":"resourceType","columnJsonPath":"$[0]","columnIcon":{"series":"copy outline","dataset":"file outline"},"columnLabel":{"series":"blue","dataset":"teal"},"columnFormatter":"withouttext","columnWidth":"2"} |
{"columnName":"Identifiant","columnIndex":"mw-gp-localIdentifier","columnJsonPath":"","columnWidth":"3"} |
{"columnName":"BD","columnIndex":"mw-gp-localIdentifierCodespace","columnJsonPath":"","columnValue":{"BE.SPW.INFRASIG.GINET":"G","BE.SPW.INFRASIG.CARTON":"C"},"columnLabel":{"BE.SPW.INFRASIG.GINET":"yellow","BE.SPW.INFRASIG.CARTON":"pink"},"columnWidth":"1"} |
{"columnName":"Statut","columnIndex":"cl_status","columnJsonPath":"$[0].key","columnIcon":{"onGoing":"sync alternate","completed":"check","obsolete":"ban","planned":"calendar alternate outline","superseded":"ban"}, "columnIconColor":{"onGoing":"violet","completed":"green","obsolete":"red","planned":"orange","superseded":"red"},columnWidth":"1"} |
{"columnName":"Note","columnIndex":"supplementalInformationObject","columnJsonPath":"$[0].langfre","columnWidth":"2"} |
{"columnName":"Modèle et légende","columnIndex":"related","columnJsonPath":"$.onlines[?(@.function==\"featureCatalogue\")].url.fre","columnIcon":"th","columnFormatter":"withouttext","columnWidth":"2"} |
{"columnName":"Modèle et légende","columnIndex":"related","columnJsonPath":"$.onlines[?(@.function==\"legend\")].url.fre","columnIcon":"paint brush","columnFormatter":"withouttext","columnWidth":"2"} |
{"columnName":"Consulter (applications et services)","columnIndex":"mw-gp-thematicMap","columnJsonPath":"$[*].url","columnIcon":"map","columnFormatter":"withouttext","columnWidth":"2"} |
{"columnName":"Consulter (applications et services)","columnIndex":"mw-gp-allWebServices","columnJsonPath":"$[*].url","columnIcon":"world","columnFormatter":"withouttext","columnWidth":"2"}|
{"columnName":"Crédits","columnIndex":"resourceCreditObject","columnJsonPath":"$[0].langfre","columnWidth":"1"}
'
filter="+(resourceType:dataset or resourceType:series) -(th_infraSIG.default:Reporting INSPIRE) +(custodianOrgForResource:*SPW*)"
filterfield="th_Themes_geoportail_wallon_hierarchy.default"
size="10"
sortby="mw-gp-localIdentifier"
sorttype="asc"
togglefilterfield="mw-gp-localIdentifierCodespace"
toggleismultiselect="true"
togglelabel='{"label": "GINET", "value": "BE.SPW.INFRASIG.GINET"} | {"label": "CARTON", "value": "BE.SPW.INFRASIG.CARTON"}'
>
</catalogue-results-table>
</div>
<script src="https://metawal4.test.wallonie.be/geonetwork/catalog/lib/icho/runtime.esm.js" type="module">
</script><script src="https://metawal4.test.wallonie.be/geonetwork/catalog/lib/icho/polyfills.esm.js" type="module">
</script><script src="https://metawal4.test.wallonie.be/geonetwork/catalog/lib/icho/main.esm.js" type="module"></script>
<!--
<script src="https://apps.titellus.net/hub/webcomponents/runtime.04986a7c605c2376.esm.js" type="module">
</script><script src="https://apps.titellus.net/hub/webcomponents/polyfills.7e0034cfe0406d00.esm.js" type="module">
</script><script src="https://apps.titellus.net/hub/webcomponents/main.6420a91a188ea8ef.esm.js" type="module"></script>
-->
Non il y a un bug dans le code lorsque l'on a un object en columnValue et un en columnLabel. Je regarde...
Correctif apporté. Le template de l'intranet ne semble pas respecter la largeur des colonnes : Non reproductible en local, pas d'accès au site.
J'ai séparé la partie concernant le template intranet. A priori c'est à régler côté Jahia.
Suite de https://github.com/SPW-DIG/metawal-core-geonetwork/issues/700#issuecomment-1130069795_