X-Git-Url: http://git.euphorik.ch/?a=blobdiff_plain;f=doc%2FTODO.txt;h=d8b4d9c4e87b35e909990318dc1737c0d26ecfdb;hb=ff0a596b8f672cd14178397aba952f1be598f335;hp=18ef33777f79775ac13ac21e834af62ff6a67684;hpb=2bbd6782d4a9cce060042a4b532b3a017943413f;p=euphorik.git diff --git a/doc/TODO.txt b/doc/TODO.txt index 18ef337..d8b4d9c 100755 --- a/doc/TODO.txt +++ b/doc/TODO.txt @@ -1,60 +1,21 @@ == TODO == -[50%] 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) - * Navigation vers les pages précédentes - * Mettre à jour l'HTML/CSS de chaque skin - * Url vers conversation(s) + également un bouton sur chaque conversation pour obtenir l'url vers celle ci - * Lien vers une conversation dans les messages sou s 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 -* 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 ?" -* 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 : - * "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) - * "hum?" : http://forum-images.hardware.fr/icones/smilies/heink.gif - * "pas reveillé" avec une tasse de café et des cernes : http://forum-images.hardware.fr/images/perso/elmoricq.gif - * "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 -* Compatage 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. -* Elaborer une stratégie de mise à jour de la structure de la BD quand celle ci est modifiée (voir euphorik_bd:vers_version()) -* Inscrire le nom de l'image dans les les liens vers des images (à la place de simplement [jpg] ou [gif]) -* 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/ -* Choisir une licence et la mettre un peu partout dans les sources +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 @@ -111,78 +72,185 @@ * 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 - +[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) +[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) + * "hum?" : http://forum-images.hardware.fr/icones/smilies/heink.gif + * "pas reveillé" avec une tasse de café et des cernes : http://forum-images.hardware.fr/images/perso/elmoricq.gif + * "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 +[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 === 1 : Critique 2 : Urgent -3 : Peu grave +3 : Peu grave -[1] Lors de l'extraction d'une conv il arrive que la conv extracté 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 -[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é -[2] cliquer sur les smiles ne marche pas sous IE -[2] le return ne marche pas sous IE -[3] "Return" ne marche pas sous safari -[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] 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 -[ok] les heures sont formatées par le serveur avec un espace devant : " 12.30:10", zarb -[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] 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 +[ok] les heures sont formatées par le serveur avec un espace devant : " 12.30:10", zarb +[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 === Idées === +Une fois l'idée validée elle est déplacée dans une version à venir. + 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é -[1] 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) -[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 insérer des tags qui sont des liens vers des conversations, par exemple : {R4S} =~ /\{\w+\}/ -[2] Raccourcis pour répondre à des messages (genre CTRL+2 pour répondre au deuxième) -[2] Pouvoir récupérer son mdp (ou en générer un autre) via son email -[2] Syntaxe avancée des messagees : - * Possibilité d'utiliser les balises , , , (quoted text) - * La balise pour mettre des spoilers -[2] Pouvoir cacher les dates [3] Gestion de l'historique (calendrier) +[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. 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 + * 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 - -[A] smiles personnalisés, on peut en ajouter dans la préférence utilisateur. +[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 -https://linuxfr.org/board/ +[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