X-Git-Url: http://git.euphorik.ch/?a=blobdiff_plain;f=doc%2FTODO.txt;h=ec91ebd0260734e7f44311bf0115e9eabd1f7a9d;hb=d0a68333e392d0aac61b612a07dd9cc80c4eeb93;hp=b0288c7498ac12e7186fddb99bbb472395f04ffb;hpb=cded85bdaf899cef1ba38d2ee6fd24c67f2abc52;p=euphorik.git diff --git a/doc/TODO.txt b/doc/TODO.txt index b0288c7..d8b4d9c 100755 --- a/doc/TODO.txt +++ b/doc/TODO.txt @@ -1,4 +1,22 @@ -== TODO == +== TODO == + +Ce fichier est obsolète, Redmine le remplace : http://dev.euphorik.ch + +=== v2.0 === +* Création des channels, un file de discussion ainsi qu'un troll de la semaine par channel (est ce que les channels enfants possèdent aussi un troll de la semaine??) + * Un channel possède un nom, une langue, une description et une série de mots clefs (tags) + * Un channel peut être l'enfant d'un autre channel (et ceci de manière récursive). + * lorsque l'on se trouve sur un parent on voit récursivement les messages de tous les enfants + * S'il l'on répond à un message d'un channel enfant le message fait alors "partie" de ce channel enfant + * Une page ressence tous les channels, il est possible de faire des recherches de channel par mot clef de la même manière que pour les conversations + * N'importe qui peut créer un channel + * Il est alors admin pour ce channel et peu nommer d'autres admins (à réflechir) + * Le site euphorik.ch ne montre que le channel "euphorik" +* Création d'un site à l'échelle mondiale + * Ce site permet d'accèder à tous les channels + * Traduction du site en plusieurs langues + + [ok] Réaliser la structure suivante : * Table minichat : {id, auteur_id, date, pseudo, contenu, reponses_minichat_id} reponses_minichat_id peut être null * Table reponse_minichat : {id, minichat_id} la clef est (id, minichat_id) @@ -54,31 +72,31 @@ * Créer le style old (avec le style de l'ancien site) [ok] Ne pas afficher la css dans le profile [ok] Ne pas effacer le message (dans le ) si l'on recoit un "pas ok" lors de l'envoie - -* Conversations : - a) implémenter coté serveur et client la sauvegarde et la restauration des conversations - b) Supprimer l'envoie de la description des conversations lors du refresh ainsi que modifié la manière de créer les conversations (maj des diagrammes de séquence) - c) Navigation vers les pages précédentes - c) Mettre à jour l'HTML/CSS de chaque skin en fonction -* Utiliser une listbox pour la liste des css -* Ralentir volontairement le connexion lors d'un mauvais login (ou après n mauvais login) -* Pouvoir switcher entre un affichage "pseudo" ou "pseudo (login)" -* réduire les pseudo trop long en mettant un ".." à la fin et permettre de le voir en entier lorsque le curseur le survol. -* Problème d'utf-8 avec opera, firefox et konqueror, le prologue ( XHTML - * A chaque Shift-enter la textbox s'agrandit d'une ligne -* Rendre compatible IE 7 -* Faire une page faq et raconter n'importe quoi (entre autre la limitation avec firefox) "pourquoi ce site à des couleurs qui ne veulent rien dire ?" +[ok] Conversations : + [ok] implémenter coté serveur et client la sauvegarde et la restauration des conversations + [ok] Supprimer l'envoie de la description des conversations lors du refresh ainsi que modifié la manière de créer les conversations (maj des diagrammes de séquence) + [ok] Navigation vers les pages précédentes + [ok] Lien vers une conversation dans les messages sous cette forme {5F}. Le clic dessus ouvre la conversation. Egalement un bouton sur chaque conversation pour insérer son lien dans le message en cours de rédaction + [ok] Mettre à jour la CSS de chaque skin +[ok] Remplacer l'XML par du JSON. gain en simplicité et en temps d'execution. + [ok] Tester sur un prototype : l'authentification -> concluant + [ok] Si concluant passage complet à JSON + [ok] Les id ne sont plus passés en base 36 + [ok] Flusher le profil lors du déchargement de la page ? -> oui + [ok] Envoyer les infos des conversations avec l'attente d'events ? -> oui +[ok] Problème de rafraichissement des couleurs des messages auquels on répond +[ok] Problème dans l'alternance des couleurs des messages +[ok] Utiliser une listbox pour la liste des css +[ok] Changer les noms des css : Light -> Cold, Old -> Classic +[ok] Faire une page faq et raconter n'importe quoi (entre autre la limitation avec firefox) "pourquoi ce site à des couleurs qui ne veulent rien dire ?" +[ok] Ralentir volontairement le connexion lors d'un mauvais login (ou après n mauvais login) +[ok] Pouvoir afficher le login et/ou le pseudo. Avoir dans le profile une liste box avec ces choix : + * pseudo + * login + * pseudo(login) * Créer un favicon (joli) -* Système de commande / - * /nick : changer de pseudo - * /me : "* " - * /blam : permet d'envoyer un blame à qqun (uniquement depuis un modo vers un non-modo) - * /+ blabla Pourvoir ajouter du texte (correctif en général) à son dernier message par une commande. Le texte ajouté est mise en évidence. Ceci peut être fait plusieurs fois. -* Ajouter de nouveaux smiles : +[ok] Créer une page 'about' +[ok] Ajouter de nouveaux smiles et changer la syntax pour eviter le conflit avec totoz : * "slurp" : http://forum-images.hardware.fr/images/perso/huit.gif * "agreed" : http://forum-images.hardware.fr/icones/smilies/jap.gif * "dodo" (tete avec un bonnet de nuit et des ZZZZ) @@ -87,29 +105,62 @@ * "interrogation" genre http://forum-images.hardware.fr/icones/confused.gif * http://forum-images.hardware.fr/images/perso/dao.gif ou http://forum-images.hardware.fr/icones/redface.gif * http://forum-images.hardware.fr/icones/ohwell.gif -* Ajouter un skin "simple" sans images ni fioritures (éventuellement le proposer par défaut) -* Cleaner le code (erl, js, xhtml, css) et eventuellement profiler un peu (le refresh est lent sous opera) -* Gestion de l'historique au niveau du navigateur (pouvoir revenir aux pages précédentes) -* Intégrer les totoz : http://www.totoz.eu/ (avec une limite de 3 par messages par exemple) - * avoir une option pour les cacher ou les voir - * Masquer systématiquement ceux qui dépassent d'une certaine taille (en pixel?) - * modifier la syntaxe des smiles actuels (pour pas qu'ils entre en conflit avec totoz) -* Mettre un icone (genre sablier) lorsque le chat se charge (également lors d'un changement de page par exemple) -* gestion des timezone (fuseaux horaire) : - * L'utilisateur peut simplement définit une timezone dans son profil, les dates sont alors affichées en fonction de sa zone (en option) -* Créer un style "super old school" (couleur 8 bit, pas de smiles/images, font fixe) -* 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) -* 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) - * traitementComplet() de euphorik.js est très très lent à executer -* Traiter les tags TODO dans le code +[ok] Tester avec des caractères accentués sur Firefox, Safari, Opera et IE7. Les messages doivent être envoyés en UTF8. +[ok] Tester avec des caractères exotiques (jap, coréen, etc..) +[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 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" +[ok] Passer à jQuery 1.2.4 +[ok] La largeur de la ligne de saisie doit corresponde à la largeur de la fenêtre +[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 + * Il est alors possible de voir la conversation lié au troll en cliquant sur le troll de la page principale +[ok] Faire des infos bulles à la facebook +[ok] Mettre les constantes au niveau du serveur dans euphorik_defines.hrl (par exemple les temps lié au flood) +[ok] Créer un style common puis adapter les CSS (classic et cold -> web2.0) + * 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 +[ok] Finir le script de mise en production + * Make des modules. + * 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. + * Modifier le script pour virer les lignes matchant /^\W*;;.*$/ + * Virer les commentaires dans les pages HTML + * processus : + 1) copie des fichiers (+minimisation) + 2) Execution d'un scripte erlang pour recharger tous les modules au sein du noeud + 3) Executer euphorik_bd:update() pour mettre à jour la BD +[ok] 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/ +[ok] Limiter la mise en évidence de la conversation lorsque le curseur se trouve sur les pseudos +[ok] Cleaner le code (erl, js, xhtml, css) et eventuellement profiler un peu (le refresh est lent sous opera) +[ok] Afficher l'ip dans le print_users(). +[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()) + - -== Bugs == +=== Bugs === 1 : Critique 2 : Urgent 3 : Peu grave +[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)) [ok] Utiliser Alpha truc à la place d'opacity sous explorer @@ -117,59 +168,89 @@ [ok] un undefined est mis lorsque l'on répond à qqun qui n'a pas de pseudo (traiter ces pseudo par le formateur) [ok] On ne peut pas réponde aux messages du système [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 +[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 +[ok] le return ne marche pas sous IE +[ok] Lors du click sur le bouton slap/kick/ban il faut fermer la mini fenêtre +[ok] 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?) + * Arrive une fois sur 20 environ + * Jamais reproduit avec Opera + * Peut être un bug lié à jQuery + * Reproduit sur Firefox 2 et 3 ! +[ok] Lors d'un logout il faut faire un full refresh (pour mettre à jour les messages auquel on répond par exemple) +[ok] Après être passé de la page Admin à Chat le client continu de réaliser de temps en temp des requêtes "lists_banned_ips" + * action=%7B%22action%22%3A%22list_banned_ips%22%2C%22cookie%22%3A%22<>%22%7D +[ok] Le widget select qui permet la sélection des css n'est pas initialisé correctement au chargement du site +[ok] Il est possible d'envoyer plusieurs fois le même message en pressant très rapidement plusieurs fois sur ENTER... (à vérifier) +[ok] griser le login dans le profil pour montrer qu'on ne peut pas l'éditer -[3] Amélioration des requêtes MNESIA, voir : http://mail.google.com/mail/#label/Erlang+mailing-list/117f688280569a58 -[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 -[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é -[3] "Return" ne marche pas sous safari -[2] cliquer sur les smiles ne marche pas sous IE -[2] le return ne marche pas sous IE -[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) +=== Idées === +Une fois l'idée validée elle est déplacée dans une version à venir. -== Idées == 1 : A implémenter tout de suite ! 2 : A implémenter dans un futur proche 3 : Ca peut attendre -4 : Faut en discuter, est-ce réellement utile ? +4 : A discuter A : Abandonné +ok : Implémenté -[A] smiles personnalisés, on peut en ajouter dans la préférence utilisateur. - -[40%] Possibilité d'extraire une conversation, on click (par l'intermediaire d'un petit bouton par exemple) sur un message et l'arbre de réponses correspondant s'affiche dans une colonne sur la gauche. - * Il est possible d'ouvrir plusieurs conversations - * Les messages faisant partie des conversations ne sont plus visibles dans le flux général - * (une colonne peut avoir le focus, dans ce cas on répond automatiquement à la dernière personne qui nous a répondu) - * Chaque colonne possède une entête avec le message d'origine et trois boutons : - * un pour copier l'id de la conversation dans la textbox (voir point suivant) - * un pour fermer la conversation - * un pour créer une url vers cette conversation (un peu à la manière de google maps) - -[2] Raccourcis pour répondre à des messages (genre CTRL+2 pour répondre au deuxième) -[2] Possibilité d'utiliser les balises et -[2] La balise pour mettre des spoilers -[2] Pouvoir insérer des tags qui sont des liens vers des conversations, par exemple : {R4S} =~ /\{\w+\}/ -[1] 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?" -[2] Pouvoir cacher les dates -[4] Pouvoir choisir une couleur pour son pseudo [3] Gestion de l'historique (calendrier) -[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 :)) +[3] Afficher une page concernant la grammaire, ya un topic sur HFR +[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 prise parmis une liste éditable depuis le panneau d'admin + * La stfuation se fait depuis le panel de bannissement (slap, stfu, kick, ban) +[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. +[4] Compatible OpenID pour l'identification +[4] Outil de localisation des personnes un peu comme ca : http://bouchot.org/cps +[4] Pouvoir voir le profile des personnes. + * Voir leurs derniers messages + * Une page de recherche de personne +[4] Chaque user possède un Blog (ne pas utiliser le terme 'Blog') Dans lequel il peut poster des "Troll", sorte de "sujet" de forum. + * Ce système est utilisé dans le chat principal (avec le troll de la semaine posté par un admin). + * Chaque troll possède un certain nombre de tag. + * il est possible de faire une recherche sur l'ensemble des users. + * Voir description.txt pour plus d'info sur les trolls +[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 + * Définir une interface pour la création de nouveau jeu au sein du serveur + * Jeu d'énigmes + * jeu du pendu + * 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] Plusieurs canaux +[4] Système de trolls. Voir decription.txt. - -== Concurrents == -http://www.phpfreechat.net/demo.fr.html -http://moules.org/board -http://hadoken.free.fr/board/index#b -http://bouchot.org/tribune#missive +[A] smiles personnalisés, on peut en ajouter dans la préférence utilisateur. +[ok] Pouvoir insérer des tags qui sont des liens vers des conversations, par exemple : {R4S} =~ /\{\w+\}/ +[ok] Possibilité d'extraire une conversation, on click (par l'intermediaire d'un petit bouton par exemple) sur un message et l'arbre de réponses correspondant s'affiche dans une colonne sur la gauche. + * Il est possible d'ouvrir plusieurs conversations + * Les messages faisant partie des conversations ne sont plus visibles dans le flux général + * (une colonne peut avoir le focus, dans ce cas on répond automatiquement à la dernière personne qui nous a répondu) + * Chaque colonne possède une entête avec le message d'origine et trois boutons : + * un pour copier l'id de la conversation dans la textbox (voir point suivant) + * 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