X-Git-Url: http://git.euphorik.ch/?p=euphorik.git;a=blobdiff_plain;f=doc%2FTODO.txt;h=cebd6464d642de11a920a90bad4fdfc8798456f4;hp=af01371d0e8c2583a785d0e4bda9722e5d1f86a9;hb=650c44a784cabc8a1f2bd1daa7e5e61ccf74ca6f;hpb=531c70729709cd97024eb1c2ff3ed836db9f550e diff --git a/doc/TODO.txt b/doc/TODO.txt index af01371..cebd646 100755 --- a/doc/TODO.txt +++ b/doc/TODO.txt @@ -1,42 +1,56 @@ == TODO == -=== v1.0 === - -* marquer lors de l'affichage des login dans le chat pour les personnes n'en ayant pas -[80%] 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" -* Créer un style common puis adapter les CSS (classic et cold -> web2.0) -* Rendre compatible IE 7 (pfff..) +=== v1.0.1 === +* Pouvoir afficher les utilisateurs (print_users(admin)) qui sont admin +<<<<<<< .working +* Mettre dans la FAQ la signification des couleurs associées aux messages. +* Ne pas pouvoir poster avec "" +* Ajouter euphorik_common.erl au repo !! +* Compilation : + * Compiler avec le flag +debug_info pour le developpement + * Compiler avec le flag +native lors de la mise en production + * Faire d'abord des tests en local pour voir s'il y a vraiment des gains, utiliser le module test_euphorik + * Regarder également si la comsommation de la mémoire est différentes + * La compilation DOIT se faire sur la machine cible, il faut donc d'abord copier les fichiers dans /tmp sur euphorik.ch + puis lancer la compilation à distance et finalement copier les fichiers sur /var/www/euphorik +* Appliquer les flags suivant à Yaws : http://forum.trapexit.org/mailinglists/viewtopic.php?t=6725&sid=8729e02f79c3ef0e0794add77b74b6ce +======= +* Ne pas pouvoir poster avec "" -> mettre en constante +* Ajouter euphorik_common.erl au repo !! +* Compilation : + * Compiler avec le flag +debug_info pour le developpement + * Compiler avec le flag +native lors de la mise en production + * Faire d'abord des tests en local pour voir s'il y a vraiment des gains, utiliser le module test_euphorik + * Regarder également si la comsommation de la mémoire est différentes + * La compilation DOIT se faire sur la machine cible, il faut donc d'abord copier les fichiers dans /tmp sur euphorik.ch + puis lancer la compilation à distance et finalement copier les fichiers sur /var/www/euphorik +* Appliquer les flags suivant à Yaws : http://forum.trapexit.org/mailinglists/viewtopic.php?t=6725&sid=8729e02f79c3ef0e0794add77b74b6ce +>>>>>>> .merge-right.r271 +=== v1.1 === +* 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 !! + * Fermer temporairement une conversation (la réduire sous la forme d'un onglet) + * lien vers une conversation : http://www.euphorik.ch/?conv=45 * 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 -* 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/ -* 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?" -* 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) -* Cleaner le code (erl, js, xhtml, css) et eventuellement profiler un peu (le refresh est lent sous opera) -* 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 - * Eventuellement mettre à jour automatiquement le Copyright (date) et les personnes responsables -* Passer à jQuery 1.2.4 -* Mise à jour automatique de la version dans le about en fonction du tag/branche courant ? -* La largeur de la ligne de saisie doit corresponde à la largeur de la fenêtre -* Corriger les bugs de niveau [1] et [2] -* 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 -=== v1.1 === +* Mise à jour automatique de la version dans le about en fonction du tag/branche courant (lors de la mise en production) ? * 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 -* Pouvoir récupérer son mdp (ou en générer un autre) via son email +* Pouvoir récupérer son mdp (ou en générer un autre) via son email. Marquer dans le profile que l'email sert à cela et n'est pas visible pas les autres personnes +* (Pouvoir inverser le chat) tester la faisabilité === v1.2 === +* Avoir une liste d'amis dans le profile + * 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 +* 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 + * Eventuellement mettre à jour automatiquement le Copyright (date) et les personnes responsables +* Système de censure par les admins (suppression d'un message) + * Ne supprime pas réellement le message mais le censure + * L'admin vois toujours le message (grisé, ou tracé) + * Les utilisateurs normaux voient à la place "" * 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 une certaine taille en pixel @@ -161,34 +175,87 @@ [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. + + === Bugs === 1 : Critique 2 : Urgent 3 : Peu grave - -[1] Les processus en attente ne se termine pas lorsque le socket est fermé (pour l'instant un timeout de 1heure est appliqué) - * De plus la mémoire utilisé (process_info(list_to_pid("<0.814.0>"), memory)) par une connexion en attente est de 1.5Mo (version de Décembre 2007). Il faut essayer de réduire cette consommation ! -[1] Possibilité d'enregistrer plusieurs users avec le même login -[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?) - * Arrive une fois sur 20 environ - * Jamais reproduit avec Opera - * Peut être un bug lié à jQuery -[2] cliquer sur les smiles ne marche pas sous IE -[2] Les smiles ne devraient pas dépasser de la fenêtre lorsqu'ils sont affichés -[2] le return ne marche pas sous IE -[2] Lors d'un login ou d'un logout il faut faire un full refresh (pour mettre à jour les messages auquel on répond par exemple) + +[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) es plutot moche, le texte est d'abors affiché puis le style est appliqué. +[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 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) + * 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 @@ -215,6 +282,27 @@ [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) +<<<<<<< .working +[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] 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 +>>>>>>> .merge-right.r271 === Idées === Une fois l'idée validée elle est déplacée dans une version à venir. @@ -225,25 +313,20 @@ Une fois l'idée validée elle est déplacée dans une version à venir. 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) + +[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 + * Utiliser la syntaxe de mediaWiki : http://en.wikipedia.org/wiki/Wikipedia:Cheatsheet * La balise pour mettre des spoilers -[2] Pouvoir cacher les dates +[2] Une option dans le profile pour se délogger automatiquement lorsque l'on quitte le site [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 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] 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]) @@ -260,21 +343,31 @@ ok : Implémenté * 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] Système de trolls. Voir decription.txt. [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] 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 === Concurrents === http://www.phpfreechat.net/demo.fr.html