L'échec est silencieux si la description dépasse 1000 caractères

Résumé :

Si la description d’un événement dépasse 1000 caractères, elle apparaît vide, ou la description de l’événement précédent est affichée.

Cela est causé par une limite stricte dans la table discourse_post_event_events : description character varying(1000)

Reproduction #1

  • Créer un événement
  • Faire en sorte que la description de l’événement (le texte entre [event] et [/event]) dépasse 1000 caractères
  • La description de l’événement n’apparaîtra pas dans le message rendu

Reproduction #2

  • Créer un événement
  • Faire en sorte que la description de l’événement (le texte entre [event] et [/event]) soit inférieure à 1000 caractères
  • Modifier l’événement
  • Faire en sorte que la description de l’événement (le texte entre [event] et [/event]) dépasse 1000 caractères
  • La description de l’événement précédent sera affichée dans le message rendu

Cela permet également d’empoisonner les résultats de recherche.

Liés

La même chose semble s’appliquer aux champs url et location

Attendu

L’un des éléments suivants :

a) la description de l’événement devrait être illimitée
b) un avertissement clair est affiché lorsque la description de l’événement est trop longue
c) la description de l’événement est tronquée lors du rendu (tandis que le texte complet est toujours conservé dans le markdown)

6 « J'aime »

Merci pour cela.

À mon avis, l’option (c) sans avertissement est également insuffisante. Si j’avais un vote, (a) serait la meilleure solution.

1 « J'aime »

Reproduction confirmée sur la dernière version, testée aujourd’hui. Un utilisateur a signalé un problème avec les cartes d’événement qui ne s’affichaient pas, sans raison apparente. Le sujet s’est enregistré normalement, le balisage de l’événement était correct dans le message brut, mais aucune carte d’événement n’apparaissait ni dans le sujet ni ailleurs. Il n’y avait aucun avertissement de l’éditeur, aucune erreur d’enregistrement, aucune erreur dans la console du navigateur, ni aucune entrée pertinente dans /logs.

Je serais favorable à la proposition b) : un avertissement clair ou une erreur de validation.

Pendant que nous y sommes, exactement le même comportement (échec silencieux de l’affichage de la carte) se produit si, pour toute autre raison, le balisage de l’événement ne peut pas être analysé correctement. Dans le cas que j’investigais il y a quelques mois, un utilisateur avait soigneusement préparé son balisage d’événement dans Word, puis l’avait copié-collé dans Discourse, ce qui a entraîné l’insertion automatique de « guillemets intelligents » autour des éléments data=, avec le lot de surprises que l’on peut s’imaginer.

Donc oui, une erreur visible, même si elle n’apparaît que dans la console, serait vraiment très appréciable.

2 « J'aime »