MOD mise en forme de util.js et conf.js, à faire pour tous les autres js
[euphorik.git] / doc / TODO.txt
index 902dca8..655553d 100755 (executable)
@@ -1,48 +1,8 @@
-== TODO ==
+== TODO ==\r
+\r
+Ce fichier est obsolète, Redmine le remplace : http://www.euphorik.ch:81
 
-=== v1.1 ===
-* é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
-* 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
-* 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
-* 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
-* 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
-* 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é.
-* (Pouvoir inverser le chat) tester la faisabilité
-* 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
 === v1.2 ===
-* option dans le profile pour ouvrir les liens dans un nouveau tab
 * Pouvoir auto répondre à une conversation
 * Possibilité d'ajouter des messages dans son profil
    * Les messages sont soient publics soient privées (Par défaut privées)
@@ -67,9 +27,6 @@
    * Pouvoir n'afficher les messages que des amis (et des personnes y répondant)
    * Ajouter une personne à ses amis avec une toolbar similaire à celle de banissement ) -> réflechir très fort à la réelle nécessité
 === v1.3 ===
-* Mise en place de Redmine -> dev.euphorik.ch
-   * Suppression de http://svn.euphorik.ch (car remplacer par Redmine)
-   * Utilisation de fused (rails sur yaws)
 * Shift-enter pour ajouter une ligne dans la ligne de saisie (retour à la ligne)
    * Crée un <br /> XHTML (lf -> br coté client)
    * A chaque Shift-enter la textbox s'agrandit d'une ligne
 [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)
+\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
-[2] Le changement de skin n'est pas mémorisé lorsque l'on est pas connecté (normal puisque le style est mémorisé dans le profil)
-   * solution 1 : permettre le changement de skin uniquement pour les personnes enregistré ?
-   * solution 2 : mémoriser le skin courant dans un cookie
-[2] Il est possible d'envoyer plusieurs fois le même message en pressant très rapidement plusieurs fois sur ENTER... (à vérifier)
-[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
-[2] Plein de bugs sous MS internet explorer 7
-   * click sur le lien du conv insère sont id systématiquement au début du message
-   * le changement de skin foire complétement
-[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...
-[3] Le changement de page sous Firefox (pas essayé avec d'autre nav) est plutot moche, le texte est d'abord 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 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)
-   * 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
-[3] Amélioration des requêtes MNESIA, voir : http://mail.google.com/mail/#label/Erlang+mailing-list/117f688280569a58
-[3] la page est completement rechargé après avoir submité le profile dans opera
-[3] après le login un '?' s'ajoute à l'adresse (opera, firefox)
-
 [ok] Comme le json du client est encapsulé dans de l'xml il faut utiliser des xml entities pour les charactères <, > et &. Il faudrait, absolument éviter cette encapsulation moisie.
 [ok] Au bout d'un moment opera n'écoute plus rien... et donc n'affiche plus les nouveaux messages..
 [ok] La méthod traiterSmiles est très lourde ! (4 secondes pour 80 appels (une page normale))
@@ -347,15 +248,6 @@ Une fois l'idée validée elle est déplacée dans une version à venir.
 A : Abandonné
 ok : Implémenté
 
-[2] Indiquer le nombre de fois qu'un lien a été visité (également pour les images) (Bernie)
-   * Afficher quelque part les url les plus cliqués
-[2] Raccourcis pour répondre aux conversations (genre CTRL+2 pour répondre au deuxième)
-[2] Système de news/event (Bernie)
-[2] Syntaxe avancée des messagees :
-   * Possibilité d'utiliser les balises <i>, <b>, <code>, <q> (quoted text)
-   * Utiliser la syntaxe de mediaWiki : http://en.wikipedia.org/wiki/Wikipedia:Cheatsheet
-   * La balise <hide> pour mettre des spoilers
-[2] Une option dans le profile pour se délogger automatiquement lorsque l'on quitte le site
 [3] Gestion de l'historique (calendrier)
 [3] Afficher une page concernant la grammaire, ya un topic sur HFR
 [3] Compatibilité avec wmcoinoin
@@ -366,8 +258,7 @@ ok : Implémenté
    * Pouvoir STFUER des personnes, lorsqu'elle envoie un message un autre truc à la con est écrit à la place
    * la phrase à la con est prise parmis une liste éditable depuis le panneau d'admin
    * La stfuation se fait depuis le panel de bannissement (slap, stfu, kick, ban)
-[4] Ajouter un skin "simple" sans images ni fioritures (éventuellement le proposer par défaut)
-[4] Créer un style "super old school" (couleur 8 bit, pas de smiles/images, font fixe)
+[4] Créer un style "super old school" (couleur 8 bit, pas de smiles/images, police à chasse fixe)
 [4] Unifier tout le code en anglais (sauf les commentaires)
 [4] Inscrire le nom de l'image dans 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.
@@ -408,10 +299,3 @@ ok : Implémenté
       * un pour fermer la conversation
       * un pour créer une url vers cette conversation (un peu à la manière de google maps)
 [ok] Pouvoir cacher les dates
-
-=== Concurrents ===
-http://www.phpfreechat.net/demo.fr.html
-http://moules.org/board
-http://hadoken.free.fr/board/index#b
-http://bouchot.org/tribune#missive
-https://linuxfr.org/board/