Aperçu :
{{:txs:peertube-a18:calendar.png?250|Aperçu de la sélection de date}}
L'autre principal fichier à modifier est [[https://github.com/Chocobozzz/PeerTube/pull/1285/commits/1e74f19a2179df7fc2e0da73163ef2c3118cbecb#diff-a414a11e12bafa3d8555cc29f3207f7c|celui]], côté serveur, qui va enregistrer la nouvelle vidéo, ou la mettre à jour selon le cas. Comme pour les autres champs, si la valeur renseignée est différente de celle présente en base de données, alors on effectue la mise à jour.
if (videoInfoToUpdate.originallyPublishedAt !== undefined && videoInfoToUpdate.originallyPublishedAt !== null) {
videoInstance.set('originallyPublishedAt', videoInfoToUpdate.originallyPublishedAt)
}
Au niveau du comportement, si la date n'est pas renseignée par l'utilisateur, il a été décidé de lui donner la valeur ''null''. Ceci est permis en autorisant la valeur à être nulle :
function isVideoOriginallyPublishedAtValid (value: string | null) {
return value === null || isDateValid(value)
}
[[https://github.com/Chocobozzz/PeerTube/pull/1285/commits/1e74f19a2179df7fc2e0da73163ef2c3118cbecb|Voir le commit]]
==== Afficher la nouvelle date ====
Il ne reste plus qu'à permettre que cette nouvelle date soit affichée. Elle doit être visible quand l'utilisateur regarde la vidéo. On modifie donc le fichier HTML correspondant, et -- c'était nécessaire --, son fichier CSS associé. Dans le fichier HTML, on utilise l'affichage conditionnel permis par Angular avec la clause ''*ngIf'' en paramètre de la balise :
Published on
Unknown
{{ video.originallyPublishedAt | date: 'dd MMMM yyyy' }}
[[https://github.com/Chocobozzz/PeerTube/pull/1285/commits/2fb583e0f4b5aebc2e041890120edf973a0d19d0|Voir le commit]]
==== État à la fin de la TX ====
L'//issue// n'est pas complètement terminée. D'une part, le dernier //commit// va devoir être amélioré : si la date n'a pas été renseignée, on affiche "Unknown" directement dans le fichier HTML, il faudra le faire de manière programmatique, en donnant la valeur selon la langue de l'utilisateur. D'autre part, des tests unitaires devront sans-doute être rédigés.
===== Démo =====
Dans cette démo, on ajoute d'abord une vidéo en renseignant sa date de publication originale, puis une autre sans la renseigner :
{{ :txs:peertube-a18:demo.webm?853x480 | Démo ajout de date}}
===== Pistes ouvertes par la résolution de cette issue =====
Afin de mieux intégrer notre nouvelle variable, ''originallyPublishedAt'', nous avons développe deux fonctionnalités annexes.
* [[txs:contrib:peertube-a18:issue_recherche|Recherche par année de publication originale]]
* [[txs:contrib:peertube-a18:issue_import|Import de la date de publication originale depuis YouTube]