X-Git-Url: http://git.euphorik.ch/?p=euphorik.git;a=blobdiff_plain;f=doc%2FTODO.txt;h=655553d059fed32181b8d747587e58bd1954c737;hp=902dca850fde2f9a9d72c836f0de6308805d964e;hb=ce1fba00ff3eaa6708d6070763f74a400273203b;hpb=bb692b6ec033e2c6ce4dd12d95831af96033ec6f diff --git a/doc/TODO.txt b/doc/TODO.txt index 902dca8..655553d 100755 --- a/doc/TODO.txt +++ b/doc/TODO.txt @@ -1,48 +1,8 @@ -== TODO == +== TODO == + +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= - * un tuple { } 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
XHTML (lf -> br coté client) * A chaque Shift-enter la textbox s'agrandit d'une ligne @@ -237,69 +194,13 @@ [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 "" -[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) + === 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 , , , (quoted text) - * Utiliser la syntaxe de mediaWiki : http://en.wikipedia.org/wiki/Wikipedia:Cheatsheet - * La balise 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/