Aller au contenu principal

TP4 - 🌭

Cet énoncé précise les fonctionalités du membre 🌭 et donne quelques pistes pour réussir.

Étape C​

Lorsqu’on crée un commentaire, on doit être capable d’y joindre zéro à plusieurs images, qui seront sauvegardées en taille originale et en miniature.

danger

⛔ Attention ! On peut créer des commentaires à deux endroits : dans PostComponent (quand on veut créer un commentaire ordinaire) et dans CommentComponent (quand on veut créer un sous-commentaire en réponse à un autre commentaire) Vous devrez faire pas mal de travail en double côté Angular. (Surtout du copié-collé à quelques détails près)

  • Cliquer sur le bouton avec l’icĂ´ne d’image permet dĂ©jĂ  d’afficher un input.
Créer un commentaire
Créer un commentaire
  • Le serveur reçoit un CommentDTO dans le corps de la requĂŞte actuellement pour crĂ©er un nouveau commentaire… ce ne sera plus possible car on va maintenant devoir envoyer un formData. Il faudra remplacer le DTO (qui va devenir inutile) par un formData.
  • N’oubliez pas d’afficher les images dans le composant CommentComponent. Pour y arriver, il faudra que le client Angular reçoive la liste des ids des images du commentaire.
  • Gardez Ă  l’esprit que le serveur n’envoie pas de Comment.cs Ă  Angular, mais bien des CommentDisplayDTO.cs !
Commentaire avec images

Étape D​

Les utilisateurs doivent pouvoir choisir un avatar personnalisé. Il est affiché à côté de leurs commentaires. (Mais pas dans le message principal d’un post) L’avatar peut être changé à tout moment. On doit pouvoir prévisualiser l'image choisie quand on change son avatar.

Changer son avatar
  • Ceci se dĂ©roule surtout dans le composant ProfileComponent et dans le UsersController. (N’oubliez pas l’affichage dans le composant CommentComponent !)
  • N’utilisez pas une classe sĂ©parĂ©e pour les avatars, ajoutez seulement un FileName et un MimeType dans la classe User, c’est plus simple. Exceptionnellement, vous pouvez vous en tirer sans utiliser de service cĂ´tĂ© serveur pour cette fois. (Ă€ l’aide de UserManager)
  • La requĂŞte pour afficher l’avatar sera plus simple si le paramètre dans l’URL est le pseudo de l’utilisateur.
Afficher son avatar

Étape E​

Cliquer sur une image dans un post ou un commentaire doit permettre de l’afficher en pleine taille, dans un autre onglet.

  • Ne vous compliquez pas la vie : Ajoutez une balise <a> avec un href qui contient la requĂŞte vers l’image en pleine taille. Cela redirigera vers une autre page qui contient seulement l’image. C’est suffisant. Vous devez ouvrir l’image dans un nouvel onglet.
  • Ceci concerne TOUTES les images qui ne sont pas des avatars. (Dont le carrousel fait par l’équipier đź›´ Ă  l’étape D) N’en oubliez pas.

Étape F​

On doit pouvoir supprimer les images d’un commentaire / post, individuellement.

  • L’image doit disparaĂ®tre immĂ©diatement de la page lorsqu’on le fait.
  • Cette suppression concerne une seule image Ă  la fois. Les autres ne sont pas touchĂ©es.
  • Bien entendu, on peut seulement supprimer les images de nos propres commentaires / posts. On ne veut pas voir le petit X si on n’est pas l’auteur du message.
Commentaire avec images
astuce

Pour placer les petits X en haut Ă  droite des images facilement :

  • Les <img> doivent ĂŞtre dans un <div> qui possède le CSS position:relative.
  • Le X doit ĂŞtre dans un <div> ou un <span> qui possède le CSS position:absolute, top:0px et right:0px.
attention

Dans le carrousel, les images « répétées » risquent d'être difficiles à supprimer. (Cliquer sur le petit X ne marchera pas forcément) La correction sera très tolérante : si on réussit à supprimer une image à la fois (quitte à réactualiser la page entre chaque suppression), il n'y aura pas de pénalté.

Alternativement, vous pouvez remplacer type:carousel par type:slider (Voir dans post.component.ts) pour désactiver la répétition d'images et garantir que le bouton X soit toujours fonctionnel.

Étape G​

Les utilisateurs peuvent signaler (Report) les commentaires / posts des autres utilisateurs.

  • Il n’est pas obligatoire d’offrir un feedback dans la page lorsqu’on clique sur ce bouton. Tant que le commentaire est flaggĂ© comme signalĂ© cĂ´tĂ© serveur.
  • Le signalement d'un commentaire peut ĂŞtre un simple bool mis Ă  true ou encore une List<User> Reporters si vous voulez faire ça proprement.
Signalement

Étape H​

Un rôle modérateur existe. Les modérateurs peuvent voir la liste des commentaires signalés. Ils peuvent supprimer les commentaires de leur choix via cette liste. Un utilisateur avec le rôle modérateur est ajouté dans le seed.

  • Le composant ModerateCommentsComponent existe dĂ©jĂ  et est accessible avec la route /reports, mais il faudra rendre disponible un onglet supplĂ©mentaire seulement visible pour les modĂ©rateurs permettant de s'y rendre. L'usage d'un â›” signal sera obligatoire pour le *ngIf qui permettra de cacher cet onglet. Inspirez-vous fortement du laboratoire 21.
Signalement
  • Il suffira de remplir une liste dans le composant ModerateCommentsComponent avec tous les commentaires ayant Ă©tĂ© signalĂ©s. Le bouton Supprimer appelera exactement la mĂŞme action du serveur que si un utilisateur supprimait son propre message. Il faudra donc permettre aux modĂ©rateurs ET Ă  l'auteur d'un message de le supprimer.
Signalement