Closed tfrancart closed 2 years ago
Prérequis : #92 Je sors la gestion du OPTIONAL dans un ticket séparé
Mockup de l'idée
Suggestion d'ergonomie : Pour rendre affichable les champs, ceux ci pourraient être directement ajoutés dans une section en dessous de la liste des critères. Ceux-ci pourraient être disposés sur une même ligne. Seul le premier objet serait par défaut affiché. Il suffirait de cliquer sur les éléments pour les afficher ou non et les déplacer en drag end drop pour les ordonner.
Note : le premier objet ne sera pas forcément sélectionné si on en sélectionne d'autres
Pour l'utilisateur final, il faut souvent récupérer un libellé pour chaque objet sélectionné, l'URI ne suffit pas. Il faudra avoir un moyen de dire si on veut l'URI de l'entité, son libellé, ou les 2.
On peut imaginer un comportement à la Wikidata ou on génère une variable avec "xxxLabel" à la fin qui correspond au label de l'élément choisi dans la requête.
Sur le choix des colonnes, on activerait l'option de sélectionner un libellé
@tfrancart merge avec #148 réalisé puis déplacement des Class nouvellement créées dans SparnaturalComponents.js
Voila donc ce que tu peux tester pour le moment dans cette branche.
Merci !
Voilà ce que je vois :
@antoine37120 j'ai eu le double "?this" quand j'ai réinitialisé la query, en repartant de zéro. Au début, il n'apparait bien qu'une fois, mais après réinitiaisation, quand on recommence une nouvelle query, il est en double.
Et en fait j'ai bien les flèches orange, c'est juste que je n'étais pas aller au bout de ma query ! il suffit juste de n'afficher les yeux que quand la flèche est orange, et pas avant.
Et si tu avances sur le tri, tu peux aussi positionner les critères de tri dans la query, cf. Query.js :
@tfrancart j'ai testé le fait de préciser l'ordre (ASC ou DESC) mais cela semble avoir un impact dans ce qui se trouve dans le select. de la requête. Tu peux voir ce qui se passe en cliquant par exemple sur le bouton AZ et ensuite le Cercle barré. As tu une idée ? Tu peux voir ce que j'ai changé dans le dernier commit.
Hello @antoine37120 merci - oui ce sont les post-processings de la requêtes qui sont fait dans la page HTML qui ne fonctionnent plus. Ces post-processings doivent se repérer sur le dernier "}", et comme avec le critère de tri ce caractère n'est plus le dernier de la requête, les post-processing échouent. Tu peux commenter les fonction "isPrimaryTopicOfPostProcess", "rdfsLabelPostProcess" et "orderByPostProcess" dans index.html
Merci @tfrancart J'ai pu trouver un exemple fonctionnel pour les regex, tu peux voir ceci dans le dernier commit Le classement fonctionne bien, Par contre les mots commençants par une lettre accentuées comme É se positionnent comme les autre caractères spéciaux en fin de classement. Donc si ce sont par exemple des pays, l'Égypte arrive en fin de classement.
J'ajoute les champs sélectionnés cet après midi.
Pour le É c'est normal, pas d'inquiétude. Merci d'avoir regardé pour les regex ! on ne va sans doute pas les garder de toutes façons, si on a la sélection des colonnes et le tri dans Sparnatural, ces fonctions vont sauter (peut-être juste garder celle qui met le LIMIT)
Le lun. 20 déc. 2021 à 13:32, antoine37120 @.***> a écrit :
Merci @tfrancart https://github.com/tfrancart J'ai pu trouver un exemple fonctionnel pour les regex, tu peux voir ceci dans le dernier commit Le classement fonctionne bien, Par contre les mots commençants par une lettre accentuées comme É se positionnent comme les autre caractères spéciaux en fin de classement. Donc si ce sont par exemple des pays, l'Égypte arrive en fin de classement.
— Reply to this email directly, view it on GitHub https://github.com/sparna-git/Sparnatural/issues/121#issuecomment-997883803, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAU2H4JNCDE2ENF5GL6U4C3UR4O4FANCNFSM4ITD6CLA . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.
You are receiving this because you were mentioned.Message ID: @.***>
--
Thomas Francart - SPARNA Web de données | Architecture de l'information | Accès aux connaissances blog : blog.sparna.fr, site : sparna.fr, linkedin : fr.linkedin.com/in/thomasfrancart tel : +33 (0)6.71.11.25.97, skype : francartthomas
@tfrancart Avec ces dernier commits la fonctionnalité devient utilisable. Prend maintenant en charge la suppression des critères ou de la endClass pour mettre à jour la liste. Dans le cas ou this n'est pas visible, celui ci le devient si au moment de supprimer un critère il n'y a plus de variable sélectionné dans la liste. Chaque changement dans l'ordre des variables ou les interactions pour afficher ou non celles-ci déclenchent l'event submit du composant.
Merci. Il faut une petite limitation :
Bon, c'est des cas limites, on peut vivre sans cette vérification.
Par contre, il faudrait faire toutes les autres évolutions autour de cette barre de recherche pour que ça devienne vraiment utilisable : couleur des flèches, option 1, 2, 3, barre de résultats repliée par défaut, etc.
Sinon c'est très sympa. Il faudrait que je mette à jour la page de démo pour ajouter des attributs qui correspondent aux noms des musées ou au nom des personnes.
J'ai essayé de faire une sélection de la date de naissance d'une personne, mais ca ne marche pas, l'oeil n'est pas là, il n'est là que si je sélectionne une valeur:
Une idée ?
@tfrancart Oui, il y a encor un peu de travail... J'attend les svg de Célia pour revoir le design, ça ne devrait plus tarder. Et ensuite effectivement traiter les cas quand une valeur est sélectionnée.
A propos des dates, on aura aussi l'option "Toutes" ? Si c'est oui, en sélectionnant "Toutes" l'œil pourra apparaitre, le critère sera considéré comme complet. Il me semble que dans les cas ou plusieurs valeurs sont possibles dans les résultats l'œil devrait être visible et cliquable. Donc avec les dates et aussi dans les cas ou plusieurs valeurs sont sélectionnées. Ce sera d'ailleurs certainement le cas avec les arbres de sélection.
Et si je ne me trompe pas, le chargement de requête avec la sélection des variables à afficher ne devrait pas être très long à traiter.
Il faut adapter légèrement le comportement pour les widgets qui ne sont pas des widgets de sélection d'entités (list/autocomplete/arbre). C'est à dire les widgets de : search / date / pas de widgets. Pour ces 3 widgets, on n'aura pas l'option "Toutes"; l'option "Toutes" n'a de sens que pour les widgets de sélection d'entités. Pour ces 3 widgets, il faudra que l'oeil soit cliquable même si on n'a pas sélectionné de valeur et même si on n'aura pas l'option "Toutes".
Le use-case cible est le suivant : "Je cherche tous les Musées qui sont en France, avec leur nom". On doit pouvoir sélectionner "Musée pays = France + Musée a_pour_libellé String", sans préciser de valeur pour la String, et on doit pouvoir cliquer sur l'oeil.
Pour ces widgets de date et de Search, la flèche ne se met orange actuellement que quand on a sélectionné une valeur. Il faudrait revoir ce comportement pour que la flèche avec l'oeil soit orange tout de suite, même sans valeur sélectionnée.
Cela laisse la possibilité que les champs pour entrer des valeurs soient tout le temps visible. J'ai un doute pour le premier critère avec le widget search, si il n'est pas rempli ça revient à afficher "this" ? Ou même si il est rempli ? Ce qui change, c'est peut être l'attribut de this correspondant à la relation choisie entre startClass et EndClass ?
Cela laisse la possibilité que les champs pour entrer des valeurs soient tout le temps visible.
Ha oui tu as raison. Ce que je voulais éviter c'était le clic systématique sur "Toutes" juste pour le cas où on veut la variable en colonne pour des propriétés litérales. Tu as raison, pour les cas du search et des dates, il faut conserver le même comportement avec le "Toutes". Mais pour le "no widget", quand il n'y a pas du tout de widget, alors la flèche doit être orange tout de suite et l'oeil disponible tout de suite.
J'ai mis à jour index.html pour avoir des exemples de sélection et de recherche sur les libellés :
"Museum nom Texte" sans widget :
(ca c'est vraiment le use-case de base "Je veux tous les musées d'un pays avec leur nom").
"Oeuvre nom Texte" avec un Widget de Search:
J'ai un doute pour le premier critère avec le widget search, si il n'est pas rempli ça revient à afficher "this" ? Ou même si il est rempli ?
Pas compris...
Et bien pour l'exemple avec "Œuvre => Nom => Texte" This (qui est l'œuvre) renvoye bien le nom des œuvres dans les résultats ?
Non, ?this doit toujours renvoyer l'identifiant de l'oeuvre, rien ne change là-dessus. Si on veut le nom de l'oeuvre en plus, on doit sélectionner explicitement "Texte".
Le mar. 21 déc. 2021 à 15:11, antoine37120 @.***> a écrit :
Et bien pour l'exemple avec "Œuvre => Nom => Texte" This (qui est l'œuvre) renvoye bien le nom des œuvres dans les résultats ?
— Reply to this email directly, view it on GitHub https://github.com/sparna-git/Sparnatural/issues/121#issuecomment-998810948, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAU2H4PHGRN4L7MCJORLIS3USCDJVANCNFSM4ITD6CLA . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.
You are receiving this because you were mentioned.Message ID: @.***>
--
Thomas Francart - SPARNA Web de données | Architecture de l'information | Accès aux connaissances blog : blog.sparna.fr, site : sparna.fr, linkedin : fr.linkedin.com/in/thomasfrancart tel : +33 (0)6.71.11.25.97, skype : francartthomas
@Thomas, ce n'est pas encore tout à fait correcte pour la mise en forme mais tu peux voir ce que cela donne avec les nouvelles flèches et notamment le higtlight avec le contour vers pour les variables sélectionnées
Mon rapport de test - le highlight marche impeccable, mais pas mal d'autres choses à corriger:
Note: quand je sélectionne 2 valeurs j'arrive à désélectionner la 2ème, mais pas la 1ère.
Ce que je vois :
Ce qu'il y avait sur les maquettes:
Il faut que ce soit comme sur la maquette
La flèche de la liste de valeurs est trop collée au libellé:
Ne pas souligner "Trouver pays" sinon c'est confus avec l'action "Tous.tes":
Il faut rapprocher les 2 lignes et avoir un pointillé régulier comme sur les maquettes:
Sur les maquettes:
Ce qu'on voit:
Note : c'est le use-case principal et primordial du mécanisme de sélection des colonnes : ajouter des lignes dans la query qui correspondent aux libellés des objets pour récupérer leur nom (ou d'autres propriétés textuelles) Note : je viens de faire une correction sur la génération du SPARQL pour ce cas
@tfrancart, l'ensemble des points ont été revus et corrigés sauf le numéro 9.
Alors là ca commence à devenir assez bluffant ! les nouvelles flèches avec le nouveau design ça claque ! Quelques petites remarques :
Et, si ni le optionnel ni le négatif ne sont disponible, elle doit rester en silver light, il ne faudrait pas qu'elle repasse en gris foncé.
Il faut peut-être utiliser une image ou un icône plutôt qu'une bordure.
Je pense qu'il y a du blanc au-dessus du libellé qui pourrait être enlevé
@antoine37120 , à propos de mon commentaire "Et, si ni le optionnel ni le négatif ne sont disponible, la flèche doit rester en silver light, il ne faudrait pas qu'elle repasse en gris foncé." : en fait, ce serait même préférable qu'elle n'apparaisse pas du tout si ni le optionnel ni le négatif ne sont présents
Les options de tri sont inversés : l'icône de tri de A à Z fait un tri de Z à A
@tfrancart Voici pour ces précédents commit les corrections aux commentaires que tu avais. Pour le moment le menu option est en gris très clair si il n'y a pas d'option possible. Mais si tu le souhaite vraiment on peut complètement le cacher pour ce cas précis. C'est aussi réglé pour le point 9 de la précédente série de commentaires. La bonne variable est maintenant prise en compte pour l'ordre des résultats.
Je note ici un bug que je ne peux pas régler de suite pour en garder la trace : Si le range est modifié dans un critère, les items du menu des options ne se met pas à jour on fonction de ce qui est configuré pour ce dernier.
La branche #148 à été mergé dans la #121 pour finaliser le rendu du menu des options.
Merci Antoine
5 Est-il possible de réduire un peu la largeur de la flèche "+" pour sélectionner de nouvelles valeurs ? (pour que le "+" soit dans le bout de la flèche comme l'oeil - si pas possible, ce n'est pas grave)
et il faudra penser au chargement des requêtes sauvegardées :
@tfrancart, je crois que c'est bon vis à vis des derniers commentaires que tu as postés. En tout cas, ils peuvent être vérifiés J'ai en plus résolu ce que j'évoquais aussi plus haut :
Si le range est modifié dans un critère, les items du menu des options ne se met pas à jour on fonction de ce qui est configuré pour ce dernier.
Et en bonus, l'auto sélection de la variable à afficher si :
J'y pense, cela pourrait être aussi étendue aux cas ou au moins deux variable sont sélectionnés et aux cas ou il s'agit d'une recherche textuelle
Merci Antoine, je trouve encore des petites choses ci-dessous. On arrive quasi à une version intermédiaire stable et utilisable. Et pour la suite j'essaie de te faire une liste par priorité des points auxquels je pense :
Salut Antoine, voici ce qui serait le plus prioritaire pour moi pour la suite des devs. On en reparle.
Flèche optionnal / négatif :
Implémenter le rechargement des queries avec les options "Tous.tes" + l'oeil + les variables dans la barre de résultat
Implémenter le bouton de reset de la query
Implémenter le masquage / affichage de la barre de résultats
Implémenter la possibilité de modifier les noms de colonne dans la barre de résultats
Implémenter le bouton d'exécution de la query, avec une option de config pour ne pas l'afficher si on ne le veut pas
@tfrancart j'ai réalisé des correctifs pour les point abordés dans le premier commantaire. Sauf à propos du switch, il est maintenant implémenté.
A propos du lancement de la requête, pouvons nous d'une manière générale, considérer que si un critère n'est pas complet, pas de lancement de la requête ?
Dans la deuxième série de commentaires le point concernant l'ombrage du bouton du menu des options est ajouté.
A propos du lancement de la requête, pouvons nous d'une manière générale, considérer que si un critère n'est pas complet, pas de lancement de la requête ?
Oui, c'est bien l'idée
J'oubliais, je ne vois pas du tout de différence de hauteur de la première colonne sélectionnée... Est tu certain que ce n'est pas un effet d'optique. Dans Chrome et Firefox la hauteur est de 38.2px.
Oui, c'est bien l'idée
J'ai pu voir qu'il y avait plusieurs autres situations qui pouvaientt être concernées. Et donc je pense que cela peut être géré plus globalement en vérifiant simplement que tous les critères sont complets avant d'envoyer la requête. Sinon, nous allons avoir des règles dans tous les sens pour limiter ou non l'envoi de la requête.
Sinon c'est tout bon pour le reste
Et donc je pense que cela peut être géré plus globalement en vérifiant simplement que tous les critères sont complets avant d'envoyer la requête.
Non je ne crois pas. Si on laisse un critère incomplet, mais qu'on complète un autre critère dans une autre ligne, la requête doit être générée et envoyée (sans le critère incomplet). Le fait d'avoir un critère incomplet ne doit pas bloquer l'envoi de la requête par ailleurs. C'est simplement le moment du déclenchement de l'event qu'il faut changer (le mettre sur la sélection du "Tous.tes" et plus sur la sélection de la propriété)
@tfrancart c'est bon pour la largeur mini et la coloration du switch.
Je vient aussi de publier une correction parce que en mode affichage des noms de variables, la valeur par défaut du widget de liste pour sélectionner des valeurs disparaissait.
Ha, petit problème que je n'avais pas anticipé: quand on a sélectionné une première valeur, et qu'on clique sur le "+" pour en sélectionner une 2ème, l'option "Tous.tes" ne devrait plus apparaitre...:
Corrigé avec la couleur du switch plutôt en orange quand actif
Quand j'active le switch, et que je saisis un nouveau critère, le nouveau critère n'affiche pas les noms de variables. Pire, si j'enlève le switch, tout s'inverse ! là ou j'avais des noms de variables, j'ai des classes, et là où j'avais des classes, j'ai des noms de variables !
Quand le switch est activé, idéalement, les noms de variables doivent être affichés pour les nouveaux critères. Si trop compliqué, au moins je devrais pouvoir désactiver et réactiver le switch pour avoir un affichage cohérent dans toute la requête.
@tfrancart Non ce n'est pas trop compliqué, j'ai compris le problème tout de suite et sais pourquoi. je t'envois un correctif cet après midi.
@tfrancart fix envoyé