Newer
Older
# Action Text
*PoC : Ajouter d'un `new_text` sur les `Communication::Website::Post`*
## Ajouts des assets
A partir de la commande `rails g action_text:install`, les styles sont importés en SASS.
Pour la partie JS, avant Rails 7, Action Text n'est fourni qu'en module ES6 prêt pour Babel. Ce format est incompatible avec Sprockets. La solution est de récupérer sur la branche `main` de Rails, le fichier `actiontext/app/assets/javascripts/actiontext.js` et de le mettre dans les vendors pour l'importer via Sprockets.
## Base de données
A partir de la commande `rails g action_text:install`, le fichier de migration pour les rich texts est importé.
On modifie bien la relation polymorphique et l'appel de `create_table` pour utiliser le type UUID.
## Modèle
On rajoute un `has_rich_text :new_text` sur `Communication::Website::Post`, ajout dans les permitted_params, ajout dans le formulaire avec `as: :rich_text_area`, et ajout dans le show.
On crée un initializer pour Action Text car les `ActiveStorage::Blob` uploadés sont rattachés à un objet `ActionText::RichText`, lui-même rattaché au `Communication::Website::Post`.
Ainsi dans l'initializer, on fait déléguer l'appel de `university` et `university_id` au `record` attaché au `ActionText::RichText`.
## Sanitizer
Action Text a sa propre configuration des tags et attributs autorisés dans son sanitizer. On a donc dans l'initializer `action_text.rb`, des appels pour modifier cette configuration.
## Affichage des attachments
TODO