-
-function PageMinichat(client, formateur, util)
-{
- this.nom = "minichat"
-
- this.client = client
- this.formateur = formateur
- this.util = util
-
- this.regexMessageTagMatch = /\{.*?\}>/g
- this.regexMessageTagReplace = /^(.*?\{.*?\}>)*/
-}
-
-PageMinichat.prototype.contenu = function()
-{
-// <input class="captcha" name="captcha" type="text" size="12"></input>\
- return '\
-<div id="smiles"></div>\
-<form method="post" action="">\
- <p>\
- <input class="captcha" name="captcha" type="text" size="8" maxlength="8"></input>\
- <input class="pseudo" name="pseudo" type="text" size="12" maxlength="50" value="<nick>"></input>\
- <input class="message" name="message" type="text" size="80" maxlength="500" value=""></input>\
- <button class="return"></button>\
- </p>\
-</form>\
-<div id="conversations"></div>'
-}
-
-PageMinichat.prototype.charger = function()
-{
- thisPage = this
-
- jQuery("form input.pseudo").val(this.client.pseudo)
-
- // cet appel ne doit pas être fait avant l'appel à 'charger'
- this.messages = new Messages(this.client, this.formateur, this.util)
-
- this.messages.rafraichirMessages(true)
- \r
- this.util.setCaretToEnd(jQuery("form input.message")[0])
-
- // affichage des smiles
- jQuery("#smiles").html(this.formateur.getSmilesHTML()).children().each(
- function(i)
- {
- var opacityBase = jQuery(this).css("opacity")
- jQuery(this).click(
- function(event)
- {
- thisPage.util.replaceSelection(jQuery("form input.message")[0], thisPage.formateur.smiles[jQuery(this).attr("class")][0].source.replace(/\\/g, ""))
- }
- )
- .hover(
- function()
- {
- jQuery(this).animate(
- {
- opacity: 1
- }, 200
- )
- },
- function()
- {
- jQuery(this).animate(
- {
- opacity: opacityBase
- }, 200
- )
- }
- )
- }
- )
-
- /// événements
- jQuery("form button.return").click(
- function()
- { \r
- // captcha anti bot\r
- if (jQuery("form input.captcha").val() != "") return
-
- thisPage.envoyerMessage(
- jQuery("form input.pseudo").val(),
- jQuery("form input.message").val()
- )
-
- jQuery("form input.message")[0].focus()
- }
- )
- // interdiction de submiter le formulaire
- jQuery("form").submit(function(){return false})
-
- jQuery("input.pseudo").click(
- function()
- {
- var input = jQuery("input.pseudo")[0]
- if (input.value == conf.pseudoDefaut)
- input.value = ""
- }
- )
-}
-
-PageMinichat.prototype.decharger = function()
-{
- //alert(this.attenteCourante)
- this.messages.stopAttenteCourante()
-}
-
-PageMinichat.prototype.getXMLMessage = function(pseudo, message, repondA)
-{
- var XMLDocument = this.util.creerDocumentXMLAction()
- XMLDocument.documentElement.setAttribute("name", "message")
-
- var nodeCookie = XMLDocument.createElement("cookie")
- nodeCookie.appendChild(XMLDocument.createTextNode(this.client.cookie))
- XMLDocument.documentElement.appendChild(nodeCookie)
-
- var nodePseudo = XMLDocument.createElement("pseudo")
- nodePseudo.appendChild(XMLDocument.createTextNode(pseudo))
- XMLDocument.documentElement.appendChild(nodePseudo)
-
- var nodeContenu = XMLDocument.createElement("contenu")
- nodeContenu.appendChild(XMLDocument.createTextNode(message))
- XMLDocument.documentElement.appendChild(nodeContenu)
-
- if (repondA.length > 0)
- {
- var nodeReponses = XMLDocument.createElement("reponses")
- XMLDocument.documentElement.appendChild(nodeReponses)
- for (var i = 0; i < repondA.length; i++)
- {
- var nodeReponse = XMLDocument.createElement("reponse")
- nodeReponse.setAttribute("id", repondA[i])
- nodeReponses.appendChild(nodeReponse)
- }
+// Copyright 2008 Grégory Burri
+//
+// This file is part of Euphorik.
+//
+// Euphorik is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+//
+// Euphorik is distributed in the hope that it will be useful,
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with Euphorik. If not, see <http://www.gnu.org/licenses/>.
+
+/*jslint laxbreak:true */
+
+euphorik.PageMinichat = function(client, formater, util, communication) {
+ this.name = "minichat";
+
+ this.client = client;
+ this.formater = formater;
+ this.util = util;
+ this.communication = communication;
+ this.commandes = new euphorik.Commandes(this.client, this, this.util, this.formater);
+
+ // permet d'éviter d'envoyer plusieurs messages simultanément en pressant
+ // rapidement sur "enter" par exemple
+ this.envoieMessageEnCours = false;
+};
+
+euphorik.PageMinichat.prototype.contenu = function() {
+ // le fait que tout soit collé est fait exprès, permet d'éviter d'avoir des espaces supplémentaires entre les spans
+ var formulaireXHTML = '' +
+ '<form method="post" action="" id ="posterMessage">' +
+ ' <p>' +
+ ' <input class="captcha" name="captcha" type="text" size="8" maxlength="8"></input>' +
+ ' <input class="nick" name="nick" type="text" maxlength="50" value="' + encodeURI(euphorik.conf.defaultNick) + '"></input>' +
+ ' <span id="repondA"><span class="nb">0</span><span class="messages"></span></span>' +
+ ' <input class="message" name="message" type="text" maxlength="500" value=""></input>' +
+ ' <button class="smiles"></button>' +
+ ' <button class="return"></button>' +
+ ' </p>' +
+ '</form>';
+
+ var conversationXHTML = '<table id="conversations"><tr></tr></table>';
+
+ if (this.client.chatOrder === "reverse") {
+ return formulaireXHTML + conversationXHTML;
+ } else {
+ return conversationXHTML + formulaireXHTML;