MOD la feuille de style est maintenant prédéfini définit dans le html envoyé
[euphorik.git] / doc / TODO.txt
index a36c000..ec37827 100755 (executable)
@@ -2,35 +2,34 @@
 \r
 === v1.0 ===\r
 * Rendre compatible IE 7 (pfff..)\r
-* Mettre un icone (genre sablier ou truc qui tourne à la apple) lorsque le chat se charge (également lors d'un changement de page par exemple)\r
-* Ajouter dans la FAQ et/ou dans la page d'enregistrement les conditions d'utilisation, genre "chacun est responsable de ses dires" https://linuxfr.org/bouchot/\r
-* Avoir un thème de discussion affiché en haut des messages genre appellé "troll de la semaine : linux sera-t-il desktop ready en 2008?"\r
-* Un statut "EK" avec plein de privilège à la con. (avoir une petite étoile à coté de son nick ou le nick d'une certaine couleur)\r
-   * Une page "admin" avec :\r
-      * Trolls : La liste des trolls proposés. L'admin peut éditer ses propres trolls.\r
-      * Les ip bannis : avec la date d'échéance et le pseudo. Un admin peut décider de débannir un utilisateur\r
-   * Pouvoir kick/ban un user (directement depuis le chat, lors du survol du pseudo d'un user des options sont présentés sous la forme de petits boutons)\r
-      * Un kick : l'utilisateur (ip) est kické et bannis pour 15 min\r
-      * Un ban : l'utilisateur (ip) est kické et bannis pour 3 jours
-      * Modification de la BD -> ajouter une relation "banned_ip"\r
-* Traiter les tags TODO et FIXME dans le code
-   * Mettre les constantes au niveau du serveur dans euphorik_defines.hrl (par exemple les temps lié au flood)\r
-* Cleaner le code (erl, js, xhtml, css) et eventuellement profiler un peu (le refresh est lent sous opera)\r
-* Choisir une licence et la mettre un peu partout dans les sources, voir : http://www.gnu.org/licenses/gpl-howto.fr.html\r
 * Finir le script de mise en production\r
    * Make des modules.\r
    * Compactage des js lors de la mise en production (afin d'optimiser la bande passante lors de l'accès au site), regarder comment fait jQuery.\r
-      * Modifier le script pour virer les lignes matchant /^\W*;;;.*$/
+      * Modifier le script pour virer les lignes matchant /^\W*;;.*$/
    * Virer les commentaires dans les pages HTML\r
+   * processus :\r
+      1) copie des fichiers (+minimisation)\r
+      2) Execution d'un scripte erlang pour recharger tous les modules au sein du noeud\r
+      3) Executer euphorik_bd:update() pour mettre à jour la BD\r
+* Ajouter dans la FAQ et/ou dans la page d'enregistrement les conditions d'utilisation, genre "chacun est responsable de ses dires" https://linuxfr.org/bouchot/\r
+* Corriger les bugs de niveau [1] et [2]\r
+* Cleaner le code (erl, js, xhtml, css) et eventuellement profiler un peu (le refresh est lent sous opera)\r
 === v1.1 ===\r
+* 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)\r
+   * Simuler un réseau lent\r
+* Création d'un script ruby dans /tool pour apposer  automatiquement une entête concernant la licence voir : http://www.gnu.org/licenses/gpl-howto.fr.html\r
+   * Eventuellement mettre à jour automatiquement le Copyright (date) et les personnes responsables \r
+* Mise à jour automatique de la version dans le about en fonction du tag/branche courant ?\r
+* Modération des messages : les modos peuvent les supprimer\r
 * Tests de monter en charge coté serveur, analyse de la complexité (regarder du coté des TODO dans le code). Utiliser eventuellement Tsung\r
 * Profiling pour améliorer les performances (client et serveur)\r
    * traitementComplet() de euphorik.js est très très lent à executer\r
+* Traiter les tags TODO et FIXME dans le code\r
 * Pouvoir récupérer son mdp (ou en générer un autre) via son email\r
 === v1.2 ===\r
 * Intégrer les totoz : http://www.totoz.eu/ (avec une limite de 3 par messages par exemple) \r
    * avoir une option pour les cacher ou les voir\r
-   * Masquer systématiquement ceux qui dépassent d'une certaine taille (en pixel?)\r
+   * Masquer systématiquement ceux qui dépassent une certaine taille en pixel\r
 === V1.3 ===\r
 * Shift-enter pour ajouter une ligne dans la ligne de saisie (retour à la ligne)\r
    * Crée un <br /> XHTML (lf -> br coté client)\r
 [ok] Modifier la syntaxe des smiles actuels (pour pas qu'ils entre en conflit avec totoz)
 [ok] Trouver un moyen pour éviter la création à la suite de plusieurs comptes (via register). 
 [ok] Restructurer le code Erlang : déplacer certaines fonctions d'un module à l'autre (ev. créer des modules)
-
-
+[ok] remplacer lightbox par : http://leandrovieira.com/projects/jquery/lightbox/
+[ok] Problème des images dans les trolls
+[ok] Finir l'édition (mémoriser le contenu) des trolls
+[ok] Est-ce que client.dernierMessageErreur est vraiment utile ??
+[ok] marquer <aucun login> lors de l'affichage des login dans le chat pour les personnes n'en ayant pas : finalement il n'affiche tout simplement pas les logins
+[ok] Avoir un thème de discussion affiché en haut des messages genre appellé "troll de la semaine : linux sera-t-il desktop ready en 2008?"
+[ok] Un statut "EK" avec plein de privilège à la con. (avoir une petite étoile à coté de son nick ou le nick d'une certaine couleur)
+   * Une page "admin" avec :
+      * Trolls : La liste des trolls proposés. L'admin peut éditer ses propres trolls.
+      * Les ip bannis : avec la date d'échéance et le pseudo. Un admin peut décider de débannir un utilisateur
+   * Pouvoir kick/ban un user (directement depuis le chat, lors du survol du pseudo d'un user des options sont présentés sous la forme de petits boutons)
+      * Un kick : l'utilisateur (ip) est kické et bannis pour 15 min
+      * Un ban : l'utilisateur (ip) est kické et bannis pour 3 jours
+      * Modification de la BD -> ajouter une relation "banned_ip"\r
+[ok] Passer à jQuery 1.2.4\r
+[ok] La largeur de la ligne de saisie doit corresponde à la largeur de la fenêtre\r
+[ok] Lorsqu'un troll de la semaine est posté un message l'est également par le sys formant la racine de la conversation lié au troll\r
+   * Il est alors possible de voir la conversation lié au troll en cliquant sur le troll de la page principale\r
+[ok] Faire des infos bulles à la facebook\r
+[ok] Mettre les constantes au niveau du serveur dans euphorik_defines.hrl (par exemple les temps lié au flood)\r
+[ok] Créer un style common puis adapter les CSS (classic et cold -> web2.0)\r
+   * Alignement du menu, du troll et des trolls de la partie admin à l'aide de line-height
+[ok] Finir les options d'affichage des bulles et des dates
+[ok] Stocker quelque part la version de la BD
+   * Créer une table "proprietes" contenant des tuples {propriete, nom, val}
+[ok] Définir la bonne feuille de style au chargement de la page pour éviter le "clignotement" pas beau
+   * Le cookie envoyé par le client doit permettre de retrouver le user      
+      
 === Bugs ===
 1 : Critique
 2 : Urgent
 3 : Peu grave\r
-     
-[1] Bug rafraichissement des conversations, exemple :
-   - la page 2 de la conv est affiché (mess 1 à 10) et la conv principale contient les mess de 11 à 2.
-   - lors de l'ajout d'un mess dans la conv celle ci n'est pas rafraichit.
-   - trouver une solution : donné un idDernierMess pour chaque conv ou supprimer cet idDernierMess et jouer sur le fait que l'on recoit un message après l'autre (orientation des messages après attente)
+
 [1] Lors de l'extraction d'une conv il arrive que la conv extractée soit bien créée mais vide, le bouton ne ferme pas la conv (très étrange, bug de firefox?)
-[2] Quand on revient en arrière dans firefox le message en rédaction est perdu
-[2] En changeant de page puis en revenant sur la page principale les smiles ne sont plus highlightés lorsque le curseur les survol\r
-[2] Dans certains cas (à déterminer) les message-box (message d'information affiché tout en haut de la page) ne s'affiche plus (on ne voit que un petit bout dépassé)
-[2] Après un register le pseudo est effacé - le pseudo n'est pas mémorisé dans le profil lors d'un envoie de mess en l'ayant changé\r
-[2] cliquer sur les smiles ne marche pas sous IE\r
-[2] le return ne marche pas sous IE
-[2] Lors d'un login ou d'un logout il faut faire un full refresh
-[2] jQuery définit l'option "X-Requested-With" à "XMLHttpRequest dans l'entête HTTP. De ce fait Yaws exige absolument de l'xml...
-   Solution actuelle : jquery.js est modifié pour ne plus définir cette option. Trouver un autre moyen plus élégant.\r
-[3] Le changement de page sous Firefox (pas essayé avec d'autre nav) es plutot moche, le texte est d'abors affiché puis le style est appliqué.
+   * Arrive une fois sur 20 environ
+   * Jamais reproduit avec Opera\r
+   * Peut être un bug lié à jQuery\r
+   * Reproduit sur Firefox 2 et 3 !\r
+[2] Lors du click sur le bouton slap/kick/ban il faut fermer la mini fenêtre\r
+[2] Après l'ajout d'une image il n'est pas possible de naviger depuis celle ci vers les autres images en utilisant Next et Prev de lightbox après l'avoir affiché\r
+[2] cliquer sur les smiles ne marche pas sous IE
+[2] Lors d'un logout il faut faire un full refresh (pour mettre à jour les messages auquel on répond par exemple)
+[3] Quand on revient en arrière dans firefox le message en rédaction est perdu
+   * Pas sous Opera, apparemment Firefox recharge toute la page (donc impossible qu'il puisse remettre le message)
+   * Eventuellement sauvegarder le message en rédaction dans le profile...\r
+[3] Le changement de page sous Firefox (pas essayé avec d'autre nav) est plutot moche, le texte est d'abors affiché puis le style est appliqué.
+[3] Quelques fichiers sont encore en iso-8859-1 (Makefile, euphorik_bd.hrl, etc..) tout passer en UTF-8
 [3] Un message envoyé sans être authentifié ne sera pas taggé comme appartenant à l'utilisateur.
    a) L'utilisateur attend des messages SANS donné de cookie car il n'est pas authentifié
    b) L'utilisateur envoie un message
-      i) Il se register sans login/pass (réalisé automatiquement)
+      i) Il s'enregistre sans login/pass (réalisé automatiquement)
       ii) Il envoie le message (put_message)
    c) Le serveur réagie au nouveau message et débloque la connexion, à ce moment le serveur n'a pas le cookie car pas donné, voir a)
-[3] Traiter le cas ou le cookie n'existe pas coté serveur (et plus généralement traiter tous les cas d'inputs exeptionnels)
+[3] Traiter le cas ou le cookie n'existe pas coté serveur (et plus généralement traiter tous les cas d'inputs exeptionnels)\r
+   * Afficher un message dans le cas ou le navigateur du client ne supporte pas les cookies en lui disant que la session ne pourra pas être autmatiquement restoré à la prochaine utilisation
 [3] "Return" ne marche pas sous safari
 [3] Le "cachage" des messages ne marche pas sous Konqueror, voir : "#page.minichat #conversations div.cache {" dans pageMinichat.css.
        "-khtml-opacity: 0.3;" ne fonctionne pas\r
 [ok] les heures sont formatées par le serveur avec un espace devant : " 12.30:10", zarb\r
 [ok] un undefined est mis lorsque l'on répond à qqun qui n'a pas de pseudo (traiter ces pseudo par le formateur)\r
 [ok] On ne peut pas réponde aux messages du système\r
-[ok] Apparement les process liés aux connexions ne sont jamais terminé même quand l'utilisateur coupe la connexion à cause de minichat:attends_nouveau_messages()\r
-
+[ok] Apparement les process liés aux connexions ne sont jamais terminé même quand l'utilisateur coupe la connexion à cause de minichat:attends_nouveau_messages()
+[ok] Bug rafraichissement des conversations, exemple :
+   - la page 2 de la conv est affiché (mess 1 à 10) et la conv principale contient les mess de 11 à 2.
+   - lors de l'ajout d'un mess dans la conv celle ci n'est pas rafraichit.
+   - trouver une solution : donné un idDernierMess pour chaque conv ou supprimer cet idDernierMess et jouer sur le fait que l'on recoit un message après l'autre (orientation des messages après attente)
+[ok] En changeant de page puis en revenant sur la page principale les smiles ne sont plus highlightés lorsque le curseur les survol
+   * Plus reproduit
+[ok] Dans certains cas (à déterminer) les message-box (message d'information affiché tout en haut de la page) ne s'affiche plus (on ne voit que un petit bout dépassé)
+   * Plus reproduit\r
+[ok] Après un register le pseudo est effacé - le pseudo n'est pas mémorisé dans le profil lors d'un envoie de mess en l'ayant changé
+[ok] jQuery définit l'option "X-Requested-With" à "XMLHttpRequest dans l'entête HTTP. De ce fait Yaws exige absolument de l'xml...
+   Solution actuelle : jquery.js est modifié pour ne plus définir cette option. Trouver un autre moyen plus élégant.
+[ok] Les smiles ne devraient pas dépasser de la fenêtre lorsqu'ils sont affichés
+[ok] Les processus en attente ne se termine pas lorsque le socket est fermé (pour l'instant un timeout de 1heure est appliqué)
+[ok] Possibilité d'enregistrer plusieurs users avec le même login\r
+[ok] le return ne marche pas sous IE
 
 === Idées ===\r
 Une fois l'idée validée elle est déplacée dans une version à venir.\r
@@ -217,8 +256,14 @@ ok : Implémenté
    * Possibilité d'utiliser les balises <i>, <b>, <code>, <q> (quoted text)\r
    * Utiliser la syntaxe de mediaWiki
    * La balise <hide> pour mettre des spoilers
+[2] Une option dans le profile pour se délogger automatiquement lorsque l'on quitte le site
 [2] Pouvoir cacher les dates\r
 [3] Gestion de l'historique (calendrier)
+[3] Idée de bernie :
+   * Pouvoir STFUER des personnes, lorsqu'elle envoie un message un autre truc à la con est écrit à la place
+   * la phrase à la con est piché parmis une liste éditable depuis le panneau d'admin
+   * La stfuation se fait depuis le panel de bannissement (slap, stfu, kick, ban)
+[4] Unifier tout le code en anglais (sauf les commentaires)
 [4] Inscrire le nom de l'image dans les les liens vers des images (à la place de simplement [jpg] ou [gif])
 [4] Réduire les pseudos trop long en mettant un ".." à la fin et permettre de le voir en entier lorsque le curseur le survol.\r
 [4] Compatible OpenID pour l'identification\r
@@ -233,14 +278,16 @@ ok : Implémenté
    * Voir description.txt pour plus d'info sur les trolls\r
 [4] Pouvoir privatiser une conversation entre 2 ou plusieurs personnes
 [4] Pouvoir choisir une couleur pour son pseudo
-[4] Créer un gamebot pour lancer des jeux. Par exemple un jeu d'énigmes
-[4] Utiliser XMLRPC ou SOAP ou JSON pour la communication client -> serveur (boah, faut pas déconner :))
+[4] Créer un gamebot pour lancer des jeux\r
+   * Définir une interface pour la création de nouveau jeu au sein du serveur\r
+   * Jeu d'énigmes\r
+   * jeu du pendu\r
+   * Jeu des chiffres et des lettres : "[Lettres tirées] - E N X U L S Z C M I - (trouvez le mot de plus long avec ces lettres)"
 [4] Image animée à la http://www.google.co.kr/ cf http://www.google.co.kr//ig/f/AaEyQnOaAr4/intl/ALL_kr/svc_sprite_all.gif
 [4] Bot de traduction
-[4] Bot de jeu (jeu du pendu par exemple)
 [4] RSS
 [4] Système de vote sur les messages, + ou - qui donne des points aux messages...
-[4] Voir les personnes connectées
+[4] Voir les personnes connectées + un statut
 [4] Avoir une liste d'amis
 [4] Restreindre la consultation d'un message posté à un ou plusieurs utilisateurs définis. Les messages de la conversation ne sont alors vus que par cet ensemble d'utilisateurs.
 [4] Système de trolls. Voir decription.txt.\r