ADD changement du skin1 pour une meilleure lisibilité des reponses
authorGreg Burri <greg.burri@gmail.com>
Thu, 5 Jun 2008 20:24:33 +0000 (20:24 +0000)
committerGreg Burri <greg.burri@gmail.com>
Thu, 5 Jun 2008 20:24:33 +0000 (20:24 +0000)
FIX problème du refresh des ip bannies

css/1/pageMinichat.css
doc/TODO.txt
doc/description.txt
doc/graphiques/couleurs entetes messages css1.svg [new file with mode: 0644]
doc/graphiques/maquette_1.svg
js/euphorik.js
js/pageAdmin.js
js/pageMinichat.js
modules/erl/euphorik_protocole.erl

index d555074..04d6f54 100755 (executable)
        float: left;
        width: 100%;
 }
-#page.minichat #conversations div.message {
-       border-left-width: 5px;
-       border-left-style: solid;
-       border-color: transparent;
-       padding-right: 5px;
-       cursor: pointer;
-       min-height: 18px;
-       line-height: 18px;
-}
 #page.minichat #conversations div.messageImpair {
    background-color: #fbeede;
 }
        filter: alpha(opacity = 30);
        zoom: 1
 }
-#page.minichat #conversations div.reponse {
-       border-color: #bd7a11
-}
-#page.minichat #conversations div.repondu {
-       border-color: #b711bd   
-}
-#page.minichat #conversations div.proprietaire {
-       border-color: #bd1129
-}
-#page.minichat #conversations div.systeme {
-       background-color: #f0df95
-}
 #page.minichat #conversations .titre {
        text-align: center;
        padding-right: 8px;
 }
 
 /***** Les messages *****/
+#page.minichat #conversations div.message {
+       padding-right: 5px;
+       cursor: pointer;
+       min-height: 18px;
+       line-height: 18px;
+}
+#page.minichat #conversations div.message.reponse .entete {
+       background-color: #31732f
+}
+#page.minichat #conversations div.message.reponse .delimitationEntete,
+#page.minichat #conversations div.message.reponse .repondA {
+       background-image: url(../../img/css1/fleche_reponse.png);
+}
+#page.minichat #conversations div.message.repondu .entete {
+       background-color: #84196c
+}
+#page.minichat #conversations div.message.repondu .delimitationEntete,
+#page.minichat #conversations div.message.repondu .repondA {
+       background-image: url(../../img/css1/fleche_repondu.png);
+}
+#page.minichat #conversations div.message.proprietaire .entete {
+       background-color: #bf2911
+}
+#page.minichat #conversations div.message.proprietaire .delimitationEntete,
+#page.minichat #conversations div.message.proprietaire .repondA {
+       background-image: url(../../img/css1/fleche_proprietaire.png);
+}
+#page.minichat #conversations div.message.systeme {
+       background-color: #f0df95
+}
 #page.minichat div.message a {
        font-weight: bold;
 }
index 26de108..6babe5d 100755 (executable)
 2 : Urgent
 3 : Peu grave\r
 \r
-[1] Le widget select qui permet la sélection des css n'est pas initialisé correctement au chargement du site\r
-[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\r
-[1] 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"\r
-   * action=%7B%22action%22%3A%22list_banned_ips%22%2C%22cookie%22%3A%22<<cookie>>%22%7D\r
-[1] Traiter les tags TODO et FIXME dans le code
+[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
+[2] Le widget select qui permet la sélection des css n'est pas initialisé correctement au chargement du site\r
+[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\r
    * 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<<cookie>>%22%7D
 
 === Idées ===\r
 Une fois l'idée validée elle est déplacée dans une version à venir.\r
index a91e228..11e1205 100644 (file)
@@ -44,7 +44,10 @@ Les n derniers trolls des semaines pr
 \r
 === Le message ===\r
 Un message répond à un troll et peut répondre à d'autres messages de ce troll.\r
-Un message ne peut pas être éditer, il est possible de lui appondre une ou plusieurs corrections " +++ Correction"\r
+Un message ne peut pas être éditer, il est possible de lui appondre une ou plusieurs corrections " +++ Correction"
+un message dont l'entête est de couleur verte signfie : "un message qui me répond"
+un message dont l'entête est de couleur orange signifie : "mon message"
+Un message dont l'entête est de couleur bleu signifie : "un message auquel je répond"\r
 \r
 \r
 === Admin ===\r
diff --git a/doc/graphiques/couleurs entetes messages css1.svg b/doc/graphiques/couleurs entetes messages css1.svg
new file mode 100644 (file)
index 0000000..a8b1b14
--- /dev/null
@@ -0,0 +1,132 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="744.09448819"
+   height="1052.3622047"
+   id="svg2"
+   sodipodi:version="0.32"
+   inkscape:version="0.46"
+   sodipodi:docname="couleurs entetes messages css1.svg"
+   inkscape:output_extension="org.inkscape.output.svg.inkscape">
+  <defs
+     id="defs4">
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 526.18109 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="744.09448 : 526.18109 : 1"
+       inkscape:persp3d-origin="372.04724 : 350.78739 : 1"
+       id="perspective10" />
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     gridtolerance="10000"
+     guidetolerance="10"
+     objecttolerance="10"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="1.4"
+     inkscape:cx="131.32911"
+     inkscape:cy="504.74238"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="false"
+     inkscape:window-width="652"
+     inkscape:window-height="667"
+     inkscape:window-x="0"
+     inkscape:window-y="133" />
+  <metadata
+     id="metadata7">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1">
+    <rect
+       style="opacity:1;fill:#31732f;fill-opacity:1;fill-rule:evenodd;stroke:#0d00a8;stroke-width:0.34887081;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect3153"
+       width="100.18613"
+       height="75.186127"
+       x="116.3355"
+       y="383.69766" />
+    <rect
+       style="opacity:1;fill:#841919;fill-opacity:1;fill-rule:evenodd;stroke:#0d00a8;stroke-width:0.34887081;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect3155"
+       width="100.18613"
+       height="75.186127"
+       x="116.3355"
+       y="465.48337" />
+    <rect
+       style="opacity:1;fill:#bf2911;fill-opacity:1;fill-rule:evenodd;stroke:#0d00a8;stroke-width:0.34887081;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect3157"
+       width="100.18613"
+       height="75.186127"
+       x="116.3355"
+       y="547.2691" />
+    <rect
+       style="opacity:1;fill:#84196c;fill-opacity:1;fill-rule:evenodd;stroke:#0d00a8;stroke-width:0.34887081;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
+       id="rect3159"
+       width="100.18613"
+       height="75.186127"
+       x="116.3355"
+       y="629.05481" />
+    <text
+       xml:space="preserve"
+       style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+       x="49.285713"
+       y="507.79028"
+       id="text3181"><tspan
+         sodipodi:role="line"
+         id="tspan3183"
+         x="49.285713"
+         y="507.79028">référence</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+       x="58.356026"
+       y="424.84149"
+       id="text3185"><tspan
+         sodipodi:role="line"
+         id="tspan3187"
+         x="58.356026"
+         y="424.84149">réponse</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+       x="22.215401"
+       y="586.97449"
+       id="text3189"><tspan
+         sodipodi:role="line"
+         id="tspan3191"
+         x="22.215401"
+         y="586.97449">mon message</tspan></text>
+    <text
+       xml:space="preserve"
+       style="font-size:12px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans"
+       x="57.225166"
+       y="670.19867"
+       id="text3193"><tspan
+         sodipodi:role="line"
+         id="tspan3195"
+         x="57.225166"
+         y="670.19867">répondu</tspan></text>
+  </g>
+</svg>
index f7f1a98..85a06ab 100644 (file)
      objecttolerance="10"
      inkscape:pageopacity="0.0"
      inkscape:pageshadow="2"
-     inkscape:zoom="1.7173688"
-     inkscape:cx="521.17414"
-     inkscape:cy="922.1821"
+     inkscape:zoom="9.714905"
+     inkscape:cx="540.88058"
+     inkscape:cy="905.07314"
      inkscape:document-units="px"
-     inkscape:current-layer="layer2"
+     inkscape:current-layer="layer1"
      showgrid="false"
      inkscape:window-width="1280"
      inkscape:window-height="800"
        inkscape:export-filename="/home/gburri/projets/euphorik/doc/graphiques/copier_conv_hover.png"
        inkscape:export-xdpi="138.64"
        inkscape:export-ydpi="138.64" />
+    <path
+       style="fill:#31732f;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1;display:inline"
+       d="M 561.84882,143.03283 L 566.71018,149.47435 L 561.84882,155.65071 L 561.84882,143.03283 z"
+       id="path3464"
+       sodipodi:nodetypes="cccc"
+       inkscape:export-filename="/home/gburri/projets/euphorik/img/css1/fleche_reponse.png"
+       inkscape:export-xdpi="128.38945"
+       inkscape:export-ydpi="128.38945" />
+    <path
+       style="fill:#bf2911;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1;display:inline"
+       d="M 570.29345,143.03283 L 575.15481,149.47435 L 570.29345,155.65071 L 570.29345,143.03283 z"
+       id="path3466"
+       sodipodi:nodetypes="cccc"
+       inkscape:export-filename="/home/gburri/projets/euphorik/img/css1/fleche_proprietaire.png"
+       inkscape:export-xdpi="128.38945"
+       inkscape:export-ydpi="128.38945" />
+    <path
+       style="fill:#84196c;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1;display:inline"
+       d="M 578.73815,143.03283 L 583.59951,149.47435 L 578.73815,155.65071 L 578.73815,143.03283 z"
+       id="path3468"
+       sodipodi:nodetypes="cccc"
+       inkscape:export-filename="/home/gburri/projets/euphorik/img/css1/fleche_repondu.png"
+       inkscape:export-xdpi="128.38945"
+       inkscape:export-ydpi="128.38945" />
   </g>
   <g
      inkscape:groupmode="layer"
index 825e4c3..5ada1d7 100755 (executable)
@@ -994,6 +994,16 @@ Client.prototype.kick = function(userId, raison)
 
 /**
    * classe permettant de gérer les événements (push serveur).
+   * l'information envoyé est sous la forme :
+   *  {
+   *     "action" : "wait_event"
+   *     "page" : <page>
+   *     [..]
+   *  }
+   * l'information reçu est sous la forme :
+   *  {
+   *     "reply" : <reply>
+   *  }
    * @page la page
    */
 function PageEvent(page, util)
@@ -1024,9 +1034,11 @@ PageEvent.prototype.stopAttenteCourante = function()
 /**
   * Attend un événement lié à la page. 
   * @funSend une fonction renvoyant les données json à envoyer
-  * @funReceive une fonction qui accepte un paramètre correspondant au données reçues
+  * @funsReceive est un objet comprenant les fonctions à appeler en fonction du "reply"
+  * les fonctions acceptent un paramètre correspondant au données reçues.
+  * exemple : {"new_message" : function(data){ ... }}
   */
-PageEvent.prototype.waitEvent = function(funSend, funReceive)
+PageEvent.prototype.waitEvent = function(funSend, funsReceive)
 {
    this.stopAttenteCourante()
    
@@ -1057,15 +1069,16 @@ PageEvent.prototype.waitEvent = function(funSend, funReceive)
          {            
             ;; dumpObj(data)
             
-            funReceive(data)
+            funsReceive[data["reply"]](data)
             
             // rappel de la fonction dans 100 ms
-            setTimeout(function(){ thisPageEvent.waitEvent2(funSend, funReceive) }, 100)
+            setTimeout(function(){ thisPageEvent.waitEvent2(funSend, funsReceive) }, 100)
          },
       error:
          function(XMLHttpRequest, textStatus, errorThrown)
          {
-            setTimeout(function(){ thisPageEvent.waitEvent2(funSend, funReceive) }, 1000)
+            ;; console.log("Connexion perdue dans waitEvent")
+            setTimeout(function(){ thisPageEvent.waitEvent2(funSend, funsReceive) }, 1000)
          }
    })
 }
@@ -1073,11 +1086,11 @@ PageEvent.prototype.waitEvent = function(funSend, funReceive)
 /**
   * Si un stopAttenteCourante survient un peu n'importe quand il faut imédiatement arreter de boucler.
   */
-PageEvent.prototype.waitEvent2 = function(funSend, funReceive)
+PageEvent.prototype.waitEvent2 = function(funSend, funsReceive)
 {
    if (this.stop)
       return
-   this.waitEvent(funSend, funReceive)
+   this.waitEvent(funSend, funsReceive)
 }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
index ddde690..0187118 100644 (file)
@@ -267,26 +267,16 @@ PageAdmin.prototype.waitEvent = function()
          
    this.pageEvent.waitEvent(
       function() { return { "last_troll" : thisPageAdmin.trolls.dernierTroll }},
-      function(data)
       {
-         switch (data["reply"])
-         {
-            case "troll_added" :
-               thisPageAdmin.trolls.ajouterTrollEvent(data)
-               break
-            case "troll_modified" :
-               thisPageAdmin.trolls.modifierTrollEvent(data)
-               break
-            case "troll_deleted" :
-               thisPageAdmin.trolls.supprimerTrollEvent(data)
-               break
-            case "banned_ips_refresh" :
-               thisPageAdmin.majIPs()
-               break
-            case "error" :
+         "troll_added" : function(data){ thisPageAdmin.trolls.ajouterTrollEvent(data) },
+         "troll_modified" : function(data){ thisPageAdmin.trolls.modifierTrollEvent },
+         "troll_deleted" : function(data){ thisPageAdmin.trolls.supprimerTrollEvent },
+         "banned_ips_refresh" : function(data){ thisPageAdmin.majIPs() },
+         "error" :
+            function(data)
+            {
                thisTrolls.util.messageDialogue(data["error_message"])
-               break
-         }
+            }
       }
    )
 }
index f4faa02..0aa2142 100755 (executable)
@@ -380,6 +380,16 @@ Conversation.prototype.enleverMiseEnEvidence = function()
    $("#conversations .message").removeClass("cache")
 }
 
+Conversation.prototype.colorerEntetes = function()
+{
+
+}
+
+Conversation.prototype.decolorerEntetes = function()
+{
+
+}
+
 /**
   * Défini la page courante et s'il l'on se trouve sur la dernière page.
   * @pageCourante la page courante
@@ -918,18 +928,10 @@ Messages.prototype.rafraichirMessages = function(vider)
    
    this.pageEvent.waitEvent(
       function() { return thisMessages.getJSONrafraichirMessages() },
-      function(data)
-      {   
-         if (vider)
-         {
-            thisMessages.viderMessages()
-            vider = false
-         }
-               
-         // en fonction du message
-         switch(data["reply"])
-         {
-            case "new_troll" :
+      {
+         "new_troll" :
+            function(data)
+            {   
                thisMessages.trollIdCourant = data["troll_id"]
                $("#trollCourant .troll").html(thisMessages.formateur.traitementComplet(data["content"])).unbind("click").click(
                   function()
@@ -939,9 +941,15 @@ Messages.prototype.rafraichirMessages = function(vider)
                )
                
                $("#trollCourant .troll a[@rel*=lightbox]").lightBox()
-               break
-               
-            case "new_messages" :   
+            },
+         "new_messages" :   
+            function(data)
+            {
+               if (vider)
+               {
+                  thisMessages.viderMessages()
+                  vider = false
+               }
                // ajoute les messages reçus à leur conversation respective
                for (var numConv = 0; numConv < data["conversations"].length; numConv++)
                {
@@ -951,8 +959,7 @@ Messages.prototype.rafraichirMessages = function(vider)
                      thisMessages.client.supprimerConversation(numConv - 1) 
                   }
                }
-               break
-         }
+            }
       }
    )
 }
index ae79d84..72a9157 100755 (executable)
@@ -318,7 +318,7 @@ wait_event_bd_page_chat() ->
    % Après 60 minutes de connexion, le client doit donc reétablir une connexion
    after 1000 * 60 * 60 -> 
       timeout
-   end.        
+   end.
 
 
 % Attent un événement concernant la page admin