Nom de fichier ICS indéfini

:information_source: Vue d’ensemble

Lorsque vous cliquez sur « Ajouter au calendrier » dans la fenêtre modale d’aperçu de l’événement (celle qui apparaît après avoir cliqué sur la date de l’événement) :

le fichier .ics téléchargé est nommé undefined.ics et le titre de l’événement dans le fichier du calendrier est également défini sur SUMMARY:undefined. Cependant, le téléchargement du calendrier via l’option « Ajouter au calendrier » du menu à trois points de l’événement fonctionne comme prévu, en utilisant le titre de l’événement pour le nom de fichier et le résumé du calendrier.

:walking_woman: Étapes pour reproduire

  1. Créez ou ouvrez un sujet avec un événement
  2. Cliquez sur la date de l’événement affichée dans le message pour développer la fenêtre modale d’aperçu
  3. Dans la fenêtre modale, cliquez sur Ajouter au calendrier
  4. Enregistrez le fichier .ics généré.
  5. Facultativement, comparez en cliquant sur le menu à trois points de l’événement et en utilisant l’option « Ajouter au calendrier » à partir de là

:white_check_mark: Résultats attendus

  • Le fichier .ics téléchargé doit être nommé d’après le titre de l’événement
  • Le contenu du fichier du calendrier doit avoir un SUMMARY: correct avec le titre de l’événement

:x: Résultats observés

  • Le fichier téléchargé est nommé undefined.ics
  • Le titre de l’événement dans le fichier du calendrier est SUMMARY:undefined
  • (Lors du téléchargement à partir du menu à trois points, le nom de fichier et le résumé sont corrects.)

:books: Contexte supplémentaire

  • Exemple de contenu ICS malformé :
    BEGIN:VCALENDAR
    VERSION:2.0
    PRODID:-//Discourse//EN
    BEGIN:VEVENT
    UID:1762794000000_1762801200000
    DTSTAMP:20251105T173754Z
    DTSTART:20251110T170000Z
    DTEND:20251110T190000Z
    SUMMARY:undefined
    END:VEVENT
    END:VCALENDAR
    

Testé sur Meta et plusieurs autres sites Discourse, même résultat.

3 « J'aime »

C’est un point délicat, Dax, qui est un effet secondaire de notre pipeline.

Nous générons le bbcode pour les dates ici :

Et nous le traitons ici :

Donc, dans le contexte du bloc HTML traité, le « téléchargement ics » n’est pas conscient du message sur lequel il se trouve (ou de l’événement).

Nous avons également un pipeline différent pour la génération d’ics à :

Nous devons donc décider d’un point de vue technique si :

  1. Nous apprenons au « traitement des dates » comment réacheminer la génération d’ics vers Discourse Calendar.

OU

  1. Nous fournissons suffisamment de contexte à Discourse Local Dates, afin qu’il puisse générer indépendamment l’ics et maintenir le code fragmenté.

Je ne suis pas sûr de la bonne approche, mais je l’ai priorisée pour que l’équipe puisse la trier et la résoudre.

5 « J'aime »

Bonjour à tous, pour ajouter un peu de contexte, si vous cliquez sur les trois points d’un événement, il y a une option Ajouter au calendrier et cela fonctionne. Je ne sais pas si cela peut vous aider à examiner cela, mais il semble que cela ait été résolu ailleurs dans le code.

6 « J'aime »

Il y a BEAUCOUP ici :

C’est vendredi (au moins quelque part ;p ), donc j’attendrai lundi pour fusionner.

Ce changement est incroyablement important et devrait nous donner un support ICS considérablement amélioré.

  • Unifie le pipeline pour la génération d’ICS - nous n’utilisons qu’un seul mécanisme pour l’ajout au calendrier et le clic sur les dates
  • Corrige de nombreux petits détails de nuance dans le format ics
    • Nous transmettons RRULE, donc si vous prenez un événement récurrent
    • Saut de ligne CRLF approprié et respect général du format ICS
    • Support du fuseau horaire, donc lorsque vous prenez un ICS pour un événement, il signalera le bon fuseau horaire au lieu d’être un événement UTC - cela signifie que la récurrence fonctionnera.
  • Étend le format des dates locales pour prendre en charge un ics encodé optionnellement

Une question ouverte que j’ai est oui, rrule ou non, rrule.

Si vous cliquez ici :

Avons-nous l’intention d’ajouter l’événement récurrent ? Ou juste une seule instance de l’événement ?

De même, qu’en est-il ici :

@lindsey Je suis indécis, je peux voir les arguments des deux côtés.

  1. J’ai cliqué sur un événement récurrent et j’ai voulu ajouter la récurrence à mon calendrier

OU

  1. J’ai cliqué sur une INSTANCE d’une récurrence et je veux seulement l’ajouter.

J’ai implémenté (1) car j’ai tendance à penser que c’est plus correct, mais je suis ouvert à le changer en (2) si vous préférez.

7 « J'aime »

Un message a été fusionné dans un sujet existant : La page des événements à venir est cassée après la dernière mise à jour

Je peux comprendre l’argument dans les deux sens, mais je préfère aussi le 1. Je pense que c’est à la fois plus correct et plus facile à « corriger » si ce n’était pas ce que l’utilisateur voulait, car la plupart des logiciels de calendrier permettent de supprimer facilement des événements supplémentaires en une seule action (comme Google Agenda) :

Ainsi, les tracas de :

  • Je ne voulais pas répondre à tous les événements, donc je dois supprimer ceux qui sont supplémentaires

Sont bien moindres que les tracas de :

  • Je voulais répondre à tous les événements, donc je dois revenir ici chaque semaine et m’assurer de continuer à les ajouter à mon calendrier
5 « J'aime »

Génial, j’ai gardé la réponse à tous.

Il a été fusionné aujourd’hui :confetti_ball:

5 « J'aime »

Ce sujet a été automatiquement fermé après 4 jours. Les nouvelles réponses ne sont plus autorisées.