Bonjour à tous (et toutes …),
Gladys m’informe constamment (vocalement et via un bot Télégram) de mes prochains RDV grâce au calendrier, et je vous en remercie une nouvelle fois, c’est vraiment très pratique.
Je constate toutefois un problème depuis quelques temps (je ne saurais pas dire depuis quand exactement …) : dans le nom de l’événement apparaissent les codes HTML des ponctuations et caractères spéciaux, ce qui rends le texte inaudible et moins lisible.
Serait-il possible d’apporter une correction ?
Je vous en remercie par avance,
Belle fin de journée,
Jean
Salut @jean_bruder ,
Merci pour ton retour !
En fait, tout dépend de la source du calendrier, certains outils ajoutent des caractères spéciaux HTML dans les titres / descriptions.
Tu as raison, on pourrait retirer ces caractères spéciaux pour que ce soit plus propre
@bertrandda je pense qu’on pourrait modifier calendar.formaters.js pour décoder name, location et description, tu en penses quoi ?
Salut,
j’ai regardé rapidement je pense avoir réussi à reproduire et peut être que je me trompe mais je ne pense pas que ce soit caldav qui pose problème. J’ai l’impression que dès qu’un apostrophe ou autre caractère spécial est dans une variable « compilé » par la librairie Handlebars, la lib échappe le caractère.
Exemple (screenshot en dessous), quand je regarde en base de données l’apostrophe est seule si je console.log avant le compile() l’apostrophe est seule également par contre juste après dans le résultat si je console.log ça met des caractères supplémentaires.
J’ai proposé une PR, dit moi ce que tu en penses.
master ← bertrandda:fix/escaped-char-variable
ouvert 06:02PM - 25 Jun 26 UTC
### Pull Request check-list
To ensure your Pull Request can be accepted as fa… st as possible, make sure to review and check all of these items:
- [ ] If your changes affect the code, did you write the tests?
- [ ] Are tests passing? (`npm test` on both front/server)
- [ ] Is the linter passing? (`npm run eslint` on both front/server)
- [ ] Did you run prettier? (`npm run prettier` on both front/server)
- [ ] If you are adding a new feature/service, did you run the integration comparator? (`npm run compare-translations` on front)
- [ ] Did you test this pull request in real life? With real devices? If this development is a big feature or a new service, we recommend that you provide a Docker image to the community ([forum](https://community.gladysassistant.com/)) for testing before merging.
- [ ] If your changes modify the API (REST or Node.js), did you modify the API documentation? (Documentation is based on comments in code)
- [ ] If you are adding a new features/services which needs explanation, did you modify the user documentation? See [the GitHub repo](https://github.com/GladysAssistant/v4-website) and the [website](https://gladysassistant.com).
- [ ] Did you add fake requests data for the demo mode (`front/src/config/demo.js`) so that the demo website is working without a backend? (if needed) See [https://demo.gladysassistant.com](https://demo.gladysassistant.com).
NOTE: these things are not required to open a PR and can be done afterwards / while the PR is open.
### Description of change
Please provide a description of the change here. It's always best with screenshots, so don't hesitate to add some!
https://community.gladysassistant.com/t/valeurs-de-calendrier-dans-une-scene-et-caracteres-specaux-accentes/10273/2
Voilà un screenshot (premier message avant le fix, deuxième message après le fix)
Merci d’avoir investigué, ça me paraît bien !
Par contre, je pense que tu peux étendre ce comportement aux autres endroits concernés, sinon on risque de rencontrer le même problème ailleurs
Je vois encore pas mal de Handlebars.compile dans le projet.
Et n’hésite pas à ajouter un petit test au passage, comme ça on s’assure que le comportement reste stable dans le temps
@bertrandda en fait j’avais pas vu mais c’était bien le cas dans ta PR, j’ai mergé, ça partira dans la prochaine version de Gladys
Non tu avais raison la PR n’était pas complète. J’ai ajouté le paramètre noescape dans les Handlebars.compile restants. J’ai également ajouté un test
master ← bertrandda:fix/noescape-handlebar
ouvert 06:27PM - 30 Jun 26 UTC
### Pull Request check-list
To ensure your Pull Request can be accepted as fa… st as possible, make sure to review and check all of these items:
- [ ] If your changes affect the code, did you write the tests?
- [ ] Are tests passing? (`npm test` on both front/server)
- [ ] Is the linter passing? (`npm run eslint` on both front/server)
- [ ] Did you run prettier? (`npm run prettier` on both front/server)
- [ ] If you are adding a new feature/service, did you run the integration comparator? (`npm run compare-translations` on front)
- [ ] Did you test this pull request in real life? With real devices? If this development is a big feature or a new service, we recommend that you provide a Docker image to the community ([forum](https://community.gladysassistant.com/)) for testing before merging.
- [ ] If your changes modify the API (REST or Node.js), did you modify the API documentation? (Documentation is based on comments in code)
- [ ] If you are adding a new features/services which needs explanation, did you modify the user documentation? See [the GitHub repo](https://github.com/GladysAssistant/v4-website) and the [website](https://gladysassistant.com).
- [ ] Did you add fake requests data for the demo mode (`front/src/config/demo.js`) so that the demo website is working without a backend? (if needed) See [https://demo.gladysassistant.com](https://demo.gladysassistant.com).
NOTE: these things are not required to open a PR and can be done afterwards / while the PR is open.
### Description of change
Add `noescape` param for all Handlebars.compile functions to avoid html encoding chars in rendered texts.
Also added a test on one compile with `'`
https://community.gladysassistant.com/t/valeurs-de-calendrier-dans-une-scene-et-caracteres-specaux-accentes/10273/4
## Summary by CodeRabbit
* **Bug Fixes**
* Improved rendering of dynamic text and template-based values so special characters, including apostrophes, are preserved correctly.
* Fixed several scene actions that use generated content, including messages, HTTP requests, delays, conditions, and device values, to display or send text more reliably.
Bonjour @pierre-gilles et @bertrandda
Je confirme qu’avec la version 4.81.0 qui tourne chez moi, l’échappement des caractères spéciaux est corrigé : plus de choses étranges envoyées par message et de prononciation incohérente des événements à présent !
Une fois de plus, je ne peux que vous remercier
Jean
Excellent ! Dans la prochaine version de Gladys on va corriger ce bug à d’autres endroits car c’était pas le seul endroit.
Merci d’avoir remonté le bug et merci à @bertrandda pour le correctif