-== TODO ==
+== TODO ==\r
+\r
+Ce fichier est obsolète, Redmine le remplace : http://www.euphorik.ch:81
-=== v1.1 ===
-* Mise à jour automatique de la version dans le about en fonction du tag/branche courant (lors de la mise en production) ?
- * Remplacé par un fichier VERSION et un script dans /tools
-* Gestion de l'historique au niveau du navigateur (pouvoir revenir aux pages précédentes). Utiliser un plugin jQuery si possible. Voir du coté des ancres (fragment d'url) : #ancre.
- * http://www.euphorik.ch/#page=chat
-* Revoir le système de conversation :
- * Pouvoir extraire "toute la conversation" ou seulement une "sous conversation" (ce qui est actuellement le cas)
- * Tous les messages auquels on répond doivent faire partie de la conversation !
- * L'entête de la conversation contient :
- * le premier message (la racine)
- * des flèches et un numéro de page pour passer d'une page à l'autre
- * un bouton "réduire"
- * un bouton "créer lien"
- * un bouton "fermer"
- * Possibilité de fermer temporairement une conversation (la réduire sous la forme d'un onglet)
- * etre averti lorsqu'un nouveau message arrive dans une conversation réduite
- * étudier la solution SVG et le calcul de pourcentage pour la largeur des fenêtres
- * le calcul des largeurs devra surement être fait en pixel et actualisé lorsque le conteneur change de taille
-* Mettre un icon (genre sablier ou truc qui tourne à la apple) lorsque le chat se charge (également lors d'un changement de page par exemple)
- * L'icon apparait tout en haut (absolute)
- * Simuler un réseau lent, peut-être exist-il des plugins
-* Pouvoir récupérer son mdp (ou en générer un http://www.euphorik.ch/ autre) via son email. Marquer dans le profile que l'email sert à cela et n'est pas visible pas les autres personnes
- * L'utilisateur peut sur la page de login inscrire un email
- * un id est généré et envoyé par email avec une adresse de type http://www.euphorik.ch?emailid=<id>
- * un tuple {<id> <id_user> <date>} est inséré dans la table 'recup_id'
- * Lorsque l'utilisateur se rend sur l'adresse l'id et la date sont vérifiés, si tout est ok le cookie "cookie" est définit pour l'utilisateur. L'utilisateur est alors loggé.
-* Réaliser un système de preproduction, étapes de preprod :
- * Renommer euphorik_bd_update en euphorik_bd_admin et ajouter deux fonctions pour faire un backup et reprendre depuis ce backup
- * Déplacer également les fonctions d'admin de euphorik_bd vers euphorik_bd_admin tel que "print_users" par exemple
- * 1) Réalisation d'un backup de la BD dans BD/backups/preprod.bckup
- * 2) Copie parfaite de l'environnement de prod vers /var/euphorik_preprod/ (sauf les mutables : BD)
- * 3) Copie d'un yaws_conf_preprod
- * 4) Lancer yaws (attention : port différent dans yaws_conf_preprod !)
- * 5) Restoration des données preprod.bckup
- * 5) Lancer le processus de mise en prod pour la preprod
- * 6) Tester si tout va bien
-* Tests de monter en charge coté serveur, analyse de la complexité (regarder du coté des TODO dans le code). Utiliser eventuellement Tsung
-* Profiling pour améliorer les performances (client et serveur)
- * Ne plus attacher chaque evenement sur chaque message mais de manière générale à l'ensemble des messages
- * traitementComplet() de euphorik.js est très très lent à executer
=== v1.2 ===
* option dans le profile pour ouvrir les liens dans un nouveau tab
* Pouvoir auto répondre à une conversation
[ok] Enlever le petit carré mis en couleur et mettre le pseudo + date en couleur à la place
[ok] Mettre dans la FAQ la signification des couleurs associées aux messages.
[ok] Elaborer une stratégie de mise à jour de la structure de la BD quand celle ci est modifiée (voir euphorik_bd:vers_version())
-=== v1.0.1 ===
-[ok] Ne pas pouvoir poster avec "<nick>"
-[ok] La validation du profil fait revenir sur la page de chat
-[ok] Ne plus mémoriser le numéro de page dans le profile
-[ok] faire un backup de la base v1 avant d'écrire la mise à jour 1->2, permet de revenir à la 1 si des modifs supplémentaires sont nécessaires
-[ok] Modifier le comportement du système de reponse :
- * Ne plus concatener les id des messages auquels on répond
- * Un élément se place entre le pseudo et la ligne de saisie du message et affiche le nombre de message auquel on répond
- * Lorsque l'on passe le curseur sur cet élément les messages sont affichés en dessous du bouton
- * Les messages auquels ont répond sont mis en évidence
- * lors de la mise à jour des messages la liste est interrogé pour savoir s'il faut le mettre en évidence
-[ok] Avoir une option dans le profile pour montrer son rang (ekMaster) de manière ostantatoire, discret ou caché
-[ok] Pouvoir inverser le chat
-[ok] supprimer le cookie si le client n'arrive pas à s'authentifier avec (réponse négative du serveur)
-[ok] (Pouvoir inverser le chat) tester la faisabilité
-[ok] Inverser l'affichage des messages auquels on répond (lorsque le curseur se trouve sur le numéro à coté de la ligne de saisie) en fonction du sens du chat\r
+\r
=== Bugs ===
1 : Critique
2 : Urgent
3 : Peu grave
-[1] Il arrive qu'après le poste d'un message le refresh ne se fasse plus, peut-être une "race-condition" dans la classe PageEvent de euphorik.js
- * Observé sur opera et firefox
- * Après quelques analyses il apparait que firefox attend alors que le processus n'existe plus du coté yaws
- * Cela arrive après 5-10min
- * Regarder du coté des paramètres (options) du socket coté yaws s'il n'y a pas un indice, par exemple un timeout
- * solution de secours : timeout de (1 à 5 min) sur la connexion ajax
- * Est-ce que yaws tient compte du "Keep-Alive 300" de l'entête HTTP ? (=5min) (normalement pas puisque HTTP/1.1) après avoir regardé les sources il me semble que non
- * Normalement si le socket est fermé du coté de yaws, le client devrait être avertis... !?
- * Après beaucoup d'investigation il semblerai que se soit le firewall/routeur qui coupe la connexion sans prévenir,
- pour éviter cela il est possible de mettre 'keepalive' à true au niveau du socket, voir :
- - http://erlang.org/doc/man/inet.html#setopts-2
- - http://forums.globalscape.com/tm.aspx?m=4114
[2] Le minificateur js doit ajouter un espace après une expression régulière sinon il est possible que le caractère qui suit celle ci soit pris pour un modificateur de la regexp
[2] Le widget select qui permet la sélection des css n'est pas initialisé correctement au chargement du site
[2] Traiter les tags TODO et FIXME dans le code