X-Git-Url: http://git.euphorik.ch/?a=blobdiff_plain;f=js%2FpageMinichat.js;h=13f337581a7312be1356ce7a787fdcf3cd799a0d;hb=cb02531d4a4b217997db3fdfe2661af18c576ddd;hp=60c3a64ef1ddb03d061ad89a65c32ea6f8e025e2;hpb=5e6e8d4d1aecf4e7522592dc9876818851c99c9c;p=euphorik.git
diff --git a/js/pageMinichat.js b/js/pageMinichat.js
index 60c3a64..13f3375 100755
--- a/js/pageMinichat.js
+++ b/js/pageMinichat.js
@@ -1,645 +1,292 @@
// coding: utf-8
-
-function PageMinichat(client, formateur, util)
-{
- this.nom = "minichat"
-
- this.client = client
- this.formateur = formateur
- this.util = util
-
- this.regexMessageTagMatch = /\{.*?\}>/g
- this.regexMessageTagReplace = /^(.*?\{.*?\}>)*/
-
- this.messages = new Messages(this.client, this.formateur, this.util)
-}
-
-PageMinichat.prototype.contenu = function()
-{
- return '\
-
';
+
+ var conversationXHTML = '" +
- "[
" + message.date + "
]" +
- "
" + this.formateur.traitementComplet(message.pseudo) + "
:" +
- XHTMLrepondA +
- "
" + (message.systeme ? this.formateur.remplacerBalisesHTML(message.contenu) : this.formateur.traitementComplet(message.contenu, message.pseudo))+ "
" +
- "
"
- }
- jQuery("#messages").prepend(XHTML)
-
- if (myLightbox != null)
- myLightbox.updateImageList()
-
- var nbMessagesAffiche = jQuery("#messages .message").size()
- if (nbMessagesAffiche > this.nbMessageMax)
- jQuery("#messages .message").slice(this.nbMessageMax, nbMessagesAffiche).empty();
-
- jQuery("#messages .message").filter(function(){return parseInt(jQuery(this).attr("id"), 36) > parseInt(idDernierMessageAffiche, 36)}).each(
- function()
- {
- jQuery(this).click(
- function(event)
- {
- if (jQuery(event.target).is("a")) return
-
- var valCourant = jQuery("input.message").val()
- if (valCourant == undefined) valCourant = ""
- var tag = jQuery(".pseudo", this).text() + "{" + jQuery(this).attr("id") + "}" + ">"
- if (valCourant.indexOf(tag, 0) == -1)
- jQuery("input.message").val(tag + " " + valCourant)
- thisMessages.util.setCaretToEnd(jQuery("form input.message")[0])
- }
- )
- // Q : pourquoi pas un .hover ?
- // R : simplement pour éviter que lorsqu'un message arrive cela n'affecte la conversation actuellement mise en évidence
- .mousemove(
- function(e)
- {
- if (this !== thisMessages.messageOver)
- {
- thisMessages.afficherConversation(this)
- thisMessages.messageOver = this
- }
- }
- )
- }
- )
-}
+euphorik.PageMinichat.prototype.envoyerMessage = function(message) {
+ var thisPageMinichat = this;
+ var nick = $("form#posterMessage input.nick").val();
-/**
- * Etablit une liste des messages à mettre en evidence et des messages à cacher.
- * Puis applique un plan diabolique.
- * @param element un message de la liste des messages
- */
-Messages.prototype.afficherConversation = function(element)
-{
- // cherche le message selectionné
- var id = jQuery(element).attr("id")
- var message = this.messagesParId[id]
- if (message == undefined) return
-
- mess = message.afficherConversation(this)
-
- // FIXME : cet appel est très lent
- jQuery("#messages .message").each(
- function()
- {
- var jq = jQuery(this)
- if (!mess.hasOwnProperty(jq.attr("id")))
- jq.addClass("cache")
- else
- jq.removeClass("cache")
- }
- )
-}
+ // (un nick vide est autorisé)
+ nick = this.formater.formatNick(nick);
-Messages.prototype.viderMessages = function()
-{
- this.idDernierMesssage = null
- this.messages = new Array()
- jQuery("#messages").empty()
-}
+ if (nick === euphorik.conf.defaultNick) {
+ this.util.messageDialog("Choose a nickname");
+ return;
+ }
-/**
- * Met à jour les messages de manière continue.
- * (AJAX-Comet-style proof)
- * @param vider vide tous les messages avant d'afficher les nouveaux
- */
-Messages.prototype.rafraichirMessages = function(vider)
-{
- if (this.attenteCourante != null)
- this.attenteCourante.abort()
-
- if (vider == undefined)
- vider = false
-
- if (vider)
- {
- this.idDernierMesssage = null
- this.messages = new Array()
+ message = message.trim();
+ if (!message) {
+ this.util.messageDialog("The message is empty");
+ return;
}
- var thisMessages = this // caisupair javacrypte
-
- //this.util.log(this.util.serializer.serializeToString(this.getXMLrafraichirMessages()))
- //alert(this.util.xmlVersAction(this.getXMLrafraichirMessages()).action)
- this.attenteCourante = jQuery.ajax({
- type: "POST",
- url: "request",
- dataType: "xml",
- data: this.util.xmlVersAction(this.getXMLrafraichirMessages()),
- success:
- function(data)
- {
- //thisMessages.util.log(thisMessages.util.serializer.serializeToString(data))
-
- if (vider)
- thisMessages.viderMessages()
-
- thisMessages.MAJPages(parseInt(jQuery("nbPage", data.documentElement).text()))
-
- reponse = jQuery("message", data.documentElement).each(
- function(i)
- {
- thisMessages.ajouterMessage(this, false)
- }
- )
- thisMessages.flush()
- setTimeout(function(){ thisMessages.rafraichirMessages() }, 100);
- },
- error:
- function(XMLHttpRequest, textStatus, errorThrown)
- {
- setTimeout(function(){ thisMessages.rafraichirMessages() }, 1000);
- }
+ if (!this.client.authentifie()) {
+ if (!this.client.enregistrement()) {
+ this.util.messageDialog("unable to login");
+ return;
}
- )
-}
-
-Messages.prototype.MAJPages = function(nbPage)
-{
- //alert(nbPage)
-
- var thisMessages = this
-
- var nbPageActuel = jQuery("#pages span").size()
-
- for(var p = nbPageActuel + 1; p <= nbPage && p <= 3; p++)
- {
- jQuery("#pages").append("