*/\r
euphorik.conf = {\r
versionProtocole : 3, // version du protcole\r
- nickDefaut : "<nick>",\r
nbMessageAffiche : 10, // (par page)\r
pseudoDefaut : "<nick>",\r
tempsAffichageMessageDialogue : 4000, // en ms\r
euphorik.Commandes.liste = {
"nick" : {
- usage : "\\nick <nouveau pseudo",
+ usage : "/nick <nouveau pseudo>",
exec : function(args, client) {
if (args.length === 0) {
return euphorik.Commandes.liste[nomCommande].exec(args, this.client);
}
- return [euphorik.Commandes.statut.erreur_commande, 'La commande \\' + nomCommande + ' est inconnue'];
+ return [euphorik.Commandes.statut.erreur_commande, 'La commande /' + nomCommande + ' est inconnue'];
};
'<div class="titre">' +\r
(reverse ? messageRacineXHTML : "") +\r
'<div class="nav">' +\r
- (this.num === 0 ? '' : '<div class="fermer"></div><div class="lien"></div>') + //</div><div class="reduire">\r
+ (this.num === 0 ? '' : '<div class="fermer"></div><div class="creerLien"></div>') + //</div><div class="reduire">\r
'<span class="next"><</span><span class="numPage">1</span><span class="prev">></span>' +\r
'</div>' +\r
(reverse ? "" : messageRacineXHTML) +\r
// les infos bulles\r
this.util.infoBulle("Aller à la première page", $("#" + this.getId() + " .titre .numPage"), euphorik.Util.positionBulleType.haut);\r
if (this.num !== 0) {\r
- this.util.infoBulle("Créer un lien vers la conversation", $("#" + this.getId() + " .titre .lien"));\r
+ this.util.infoBulle("Créer un lien vers la conversation", $("#" + this.getId() + " .titre .creerLien"));\r
this.util.infoBulle("Fermer la conversation", $("#" + this.getId() + " .titre .fermer"));\r
}\r
\r
// les différents événements liés à la conversation\r
var thisConversation = this; \r
- $("#" + this.getId() + " .titre .lien").click(function() {\r
+ $("#" + this.getId() + " .titre .creerLien").click(function() {\r
thisConversation.util.replaceSelection(\r
$("form#posterMessage input.message")[0],\r
"{" + thisConversation.client.conversations[thisConversation.num - 1].root.toString(36) + "}"\r
\r
/**\r
* Attache des événements à un message donné.\r
+ * Utilisé lorsqu'un message est ajouté au document HTML.\r
* @element le message du DOM\r
*/\r
euphorik.Conversation.prototype.attacherEventsSurMessage = function(element) {\r
$("form input.message").focus();\r
}).hover(function() { // affiche les outils liées au message\r
var top = $(this).offset().top\r
- var left = $(this).offset().left + $(this).width() - thisConversation.util.outilsMessage.largeur\r
- thisConversation.util.outilsMessage.css("top", top + 1).css("left", left).prependTo(this).show();\r
+ var left = $(this).offset().left + $(this).outerWidth() - thisConversation.util.outilsMessage.largeur\r
+ $(".extraire", thisConversation.util.outilsMessage).unbind();\r
+ $(".extraireCompletement", thisConversation.util.outilsMessage).unbind();\r
+ // TODO : ces deux appels devraient se trouver dans "PageMinichat" lors de la création de thisConversation.util\r
+ // malheureusement lors de la modification du DOM (suppression des conversations) les événements liés sont supprimés\r
+ thisConversation.util.infoBulle("Extraction de la conversation à partir de ce message", $(".extraire", thisConversation.util.outilsMessage));\r
+ thisConversation.util.infoBulle("Extraction de la conversation complète", $(".extraireCompletement", thisConversation.util.outilsMessage));\r
+ thisConversation.util.outilsMessage.css("top", top).css("left", left).prependTo(this).show();\r
+ thisConversation.util.outilsMessage.largeur = thisConversation.util.outilsMessage.outerWidth();\r
}, function() {\r
thisConversation.util.outilsMessage.hide()\r
});\r
'<form method="post" action="" id ="posterMessage">' +
' <p>' +
' <input class="captcha" name="captcha" type="text" size="8" maxlength="8"></input>' +
- ' <input class="pseudo" name="pseudo" type="text" maxlength="50" value="' + encodeURI(euphorik.conf.nickDefaut) + '"></input>' +
+ ' <input class="pseudo" name="pseudo" type="text" maxlength="50" value="' + encodeURI(euphorik.conf.pseudoDefaut) + '"></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>' +
}
// la barre d'outils liée à chaque message
- this.util.outilsMessage = $('<div class="outilsMess"><div class="extraire"></div><div class="extraireCompletement"></div></div>').prependTo("#page.minichat")
- this.util.outilsMessage.largeur = this.util.outilsMessage.width(); // TODO : gros cheat pas beau :O
- this.util.infoBulle("Extraction de la conversation à partir de ce message", $(".extraire", this.util.outilsMessage));
- this.util.infoBulle("Extraction de la conversation complète", $(".extraireCompletement", this.util.outilsMessage));
+ this.util.outilsMessage = $('<div id="outilsMess"><div class="extraire"></div><div class="extraireCompletement"></div></div>').prependTo("#page.minichat");
+ this.util.outilsMessage.largeur = this.util.outilsMessage.outerWidth(); // TODO : gros cheat pas beau :O
+ //console.log(this.util.outilsMessage.largeur)
this.util.infoBulle("Ouvrir la conversation liée au troll de la semaine", $("#trollCourant .troll"));
// (un pseudo vide est autorisé)
pseudo = this.formateur.filtrerInputPseudo(pseudo);
- if (pseudo === euphorik.conf.nickDefaut) {
- this.util.messageDialogue("Le pseudo ne peut pas être " + euphorik.conf.nickDefaut);
+ if (pseudo === euphorik.conf.pseudoDefaut) {
+ this.util.messageDialogue("Le pseudo ne peut pas être " + euphorik.conf.pseudoDefaut);
return;
}
+/* coding: utf-8 */
+
#page.minichat {
padding: 0px;
}
vertical-align: top;
margin-right: 5px;
}
+/* La boite montrant les messages auquels l'utilisateur répond */
#page.minichat form#posterMessage #repondA {
background-color: #f0df95;
border: #841919 1px solid;
- margin-right: 5px;
- padding-right: 2px;
- padding-left: 2px;
- cursor: pointer;
- display: none;
+ margin-right: 5px;
+ padding-right: 2px;
+ padding-left: 2px;
+ cursor: pointer;
+ display: none;
}
#page.minichat form#posterMessage #repondA .messages {
- position: absolute;
+ position: absolute;
border: #841919 1px solid;
- width: 50%;
- display:none;
+ width: 50%;
+ display:none;
}
#page.minichat form#posterMessage #repondA .messages div.message:hover .outilsMess {
- display: none
+ display: none
}
/***** Les conversations *****/
#page.minichat #conversations {
overflow: hidden;
width: 100%;
- border-spacing: 0px;
- background-color:#E19671;
+ border-spacing: 0px;
+ background-color:#E19671;
}
#page.minichat.orderChrono #conversations td
{
background-color: #e19671;
color: #ffffff;
}
-
-#page.minichat #conversations .titre .nav .reduire {
+/*#page.minichat #conversations .titre .nav .reduire {
margin-top: 1px;
margin-left: 5px;
float: right;
}
#page.minichat #conversations .titre .nav .reduire:hover {
background-image: url(img/reduire_conv_hover.png);
-}
-
-#page.minichat #conversations .fermer {
- background-image: url(img/fermer_conv.png);
-}
+}*/
#page.minichat #conversations .titre .nav .fermer {
margin-top: 1px;
#page.minichat #conversations .titre .nav .fermer:hover {
background-image: url(img/fermer_conv_hover.png);
}
-#page.minichat #conversations .titre .nav .lien {
+#page.minichat #conversations .titre .nav .creerLien {
margin-top: 1px;
margin-left: 5px;
float: right;
background-image: url(img/copier_conv.png);
cursor: pointer;
}
-#page.minichat #conversations .titre .nav .lien:hover {
+#page.minichat #conversations .titre .nav .creerLien:hover {
background-image: url(img/copier_conv_hover.png);
}
#page.minichat #conversations .titre .nav .next,
#page.minichat .contenu {
margin-left: 5px;
}
-#page.minichat .outilsMess {
- position: absolute;
+#page.minichat #outilsMess {
+ position: absolute;
+ padding-top: 1px;
+ padding-right: 2px;
display: none;
}
-#page.minichat .extraire {
+#page.minichat #outilsMess .extraire {
float: right;
width: 13px;
height: 13px;
background-image: url(img/extraction.png);
margin-top: 2px;
}
-#page.minichat .extraire:hover {
+#page.minichat #outilsMess .extraire:hover {
background-image: url(img/extraction_hover.png);
}
-#page.minichat .extraireCompletement {
+#page.minichat #outilsMess .extraireCompletement {
float: right;
width: 13px;
height: 13px;
background-image: url(img/extraction_complete.png);
margin-top: 2px;
- margin-right: 2px;
+ margin-right: 2px;
}
-#page.minichat .extraireCompletement:hover {
+#page.minichat #outilsMess .extraireCompletement:hover {
background-image: url(img/extraction_complete_hover.png);
}
/***** Les liens *****/
.lien, a {
- text-decoration: none;
+ text-decoration: none;
color: #7664ff;
}
.lien {
vertical-align: top;
margin-right: 5px;
}
+/* La boite montrant les messages auquels l'utilisateur répond */
+#page.minichat form#posterMessage #repondA {
+ background-color: #164200;
+ border: #2d8800 1px solid;
+ margin-right: 5px;
+ padding-right: 2px;
+ padding-left: 2px;
+ cursor: pointer;
+ display: none;
+}
+#page.minichat form#posterMessage #repondA .messages {
+ position: absolute;
+ border: #841919 1px solid;
+ width: 50%;
+ display:none;
+}
+#page.minichat #outilsMess {
+ position: absolute;
+ display: none
+}
+#page.minichat #outilsMess .extraire,
+#page.minichat #outilsMess .extraireCompletement {
+ float: right;
+ padding-right: 2px;
+ padding-left: 2px;
+ background-color: #4f5519;
+}
+#page.minichat #outilsMess .extraire:hover,
+#page.minichat #outilsMess .extraireCompletement:hover:hover {
+ background-color: #818c27
+}
+#page.minichat #outilsMess .extraire:after {
+ content: ">"
+}
+#page.minichat #outilsMess .extraireCompletement:after {
+ content: "#"
+}
/***** Les conversations *****/
/* voir pour l'astuce css "float left" des conversations : http://www.quirksmode.org/css/clearing.html */
#page.minichat #conversations {
overflow: hidden;
- width: 100%
+ width: 100%;
+ border-spacing: 0px;
+ background-color:#000000;
+}
+#page.minichat.orderChrono #conversations td
+{
+ vertical-align: bottom
+}
+#page.minichat.orderReverse #conversations td
+{
+ vertical-align: top
+}
+#page.minichat.orderChrono #conversations .titre {
+ border-bottom: 1px dashed white
+}
+#page.minichat.orderReverse #conversations .titre {
+ border-top: 1px dashed white
+}
+#page.minichat #conversations .titre .nav {
+ text-align: center;
+ padding-right: 8px;
+ background-color: #4b4215;
}
-#page.minichat #conversations .conversation {
+/*#page.minichat #conversations .conversation {
border-width: 0px;
border-style: solid;
border-color: white;
float: left;
width: 100%;
+}*/
+#page.minichat #conversations .titre .nav .fermer {
+ float: right;
+ padding-right: 5px;
+ padding-left: 5px;
+ background-color: #7d1b1b;
+ cursor: pointer;
+}
+#page.minichat #conversations .titre .nav .fermer:after {
+ content: "x"
+}
+#page.minichat #conversations .titre .nav .fermer:hover {
+ background-color: #c95656
+}
+#page.minichat #conversations .titre .nav .creerLien {
+ float: right
+}
+#page.minichat #conversations .titre .nav .creerLien:after {
+ content: "c"
+}
+#page.minichat #conversations .titre .nav .next,
+#page.minichat #conversations .titre .nav .prev {
+ display: none;
+}
+#page.minichat #conversations .titre .nav .creerLien,
+#page.minichat #conversations .titre .nav .next,
+#page.minichat #conversations .titre .nav .prev,
+#page.minichat #conversations .titre .nav .numPage {
+ background-color: #42380b;
+ cursor: pointer;
+ padding-right: 5px;
+ padding-left: 5px;
}
-#page.minichat #conversations div.message {
+#page.minichat #conversations .titre .nav .creerLien:hover,
+#page.minichat #conversations .titre .nav .next:hover,
+#page.minichat #conversations .titre .nav .prev:hover,
+#page.minichat #conversations .titre .nav .numPage:hover {
+ background-color: #7c6e2e
+}
+
+/***** Les messages *****/
+#page.minichat div.message {
border-left-width: 5px;
border-left-style: solid;
border-color: transparent;
padding-left: 4px;
cursor: pointer;
}
-#page.minichat #conversations div.messageImpair {
+#page.minichat div.messageImpair {
background-color: #05002c;
}
-#page.minichat #conversations div.messagePair {
+#page.minichat div.messagePair {
background-color: #080047;
}
#page.minichat #conversations div.cache {
filter: alpha(opacity = 30);
zoom: 1
}
-#page.minichat #conversations div.reponse {
+#page.minichat div.reponse {
border-color: #bf2911
}
-#page.minichat #conversations div.repondu {
+#page.minichat div.repondu {
border-color: #84196c
}
-#page.minichat #conversations div.proprietaire {
+#page.minichat div.proprietaire {
border-color: #31732f
}
-#page.minichat #conversations div.systeme {
+#page.minichat div.systeme {
background-color: #555555
}
-#page.minichat #conversations .titre {
- text-align: center;
- padding-right: 8px;
- background-color: #4b4215
-}
-#page.minichat #conversations .titre .fermer {
- float: right;
- padding-right: 5px;
- padding-left: 5px;
- background-color: #7d1b1b;
- cursor: pointer;
-}
-#page.minichat #conversations .titre .fermer:after {
- content: "x"
-}
-#page.minichat #conversations .titre .fermer:hover {
- background-color: #c95656
-}
-#page.minichat #conversations .titre .next,
-#page.minichat #conversations .titre .prev {
- display: none;
-}
-#page.minichat #conversations .titre .lien {
- float: right
-}
-#page.minichat #conversations .titre .lien:after {
- content: "c"
-}
-#page.minichat #conversations .titre .lien,
-#page.minichat #conversations .titre .next,
-#page.minichat #conversations .titre .prev,
-#page.minichat #conversations .titre .numPage {
- background-color: #42380b;
- cursor: pointer;
- padding-right: 5px;
- padding-left: 5px;
-}
-#page.minichat #conversations .titre .lien:hover,
-#page.minichat #conversations .titre .next:hover,
-#page.minichat #conversations .titre .prev:hover,
-#page.minichat #conversations .titre .numPage:hover {
- background-color: #7c6e2e
-}
-
-/***** Les messages *****/
#page.minichat div.message a {
font-weight: bold;
}
#page.minichat div.systeme .pseudo {
color: #CCCCCC
}
-#page.minichat #conversations .repondA {
+#page.minichat .repondA {
color: #bd7a11;
margin-right: 3px;
}
-#page.minichat #conversations .repondA:after {
- content: ">"
-}
-#page.minichat #conversations .extraire {
- float: right;
- padding-right: 2px;
- padding-left: 2px;
- background-color: #4f5519;
-}
-#page.minichat #conversations .extraire:after {
+#page.minichat.repondA:after {
content: ">"
}
-#page.minichat #conversations .extraire:hover {
- background-color: #818c27
-}
# - Mise en production et en preproduction
# tools.rb peut s'utiliser à la ligne de commande, exemples :
# * Mise en production :
-# ./tools.rb --doprod gburri@euphorik.ch:/var/www/euphorik
+# ./tools.rb prod gburri@euphorik.ch:/var/www/euphorik
# * Mise en préproduction, l'emplacement de production peut être indiqué pour copier la base
-# ./tools.rb --dopreprod gburri@euphorik.ch:/var/www/euphorik_preprod --prod gburri@euphorik.ch:/var/www/euphorik
+# ./tools.rb pre gburri@euphorik.ch:/var/www/euphorik_preprod gburri@euphorik.ch:/var/www/euphorik
# voir : http://net-ssh.rubyforge.org/ssh/v2/api/index.html
# require 'net/ssh'
end
elsif fichier[-3, 3] == '.js'
puts "== Vérification de #{dossier}/#{fichier} =="
- system("java org.mozilla.javascript.tools.shell.Main jslint.js #{dossier}/#{fichier}")
+ # TODO : mettre un if pour la version windows si dessous
+ #system("java org.mozilla.javascript.tools.shell.Main jslint.js #{dossier}/#{fichier}")
+ system("rhino jslint.js #{dossier}/#{fichier}")
# puts $?.exitstatus
if $?.exitstatus > 0
return false
# Traite la ligne de commande lorsque tools.rb est utilisé comme tel
class Commande
+ def initialize
+ @miseEnProd = MiseEnProd.new(
+ "gburri@euphorik.ch:/var/www/euphorik",
+ "gburri@euphorik.ch:/var/www/euphorik_preprod"
+ )
+ @verifJS = VerifJS.new("../js")
+ @version = Version.new("..")
+ end
+
def traiter
- #ARGV
+ if ARGV.size == 0
+ afficherUsage
+ return
+ end
+
+ case ARGV[0]
+ when 'prod'
+ @version.maj()
+ @miseEnProd.miseEnProd()
+ when 'pre'
+ @version.maj()
+ @miseEnProd.miseEnPreProd()
+ when 'js'
+ @verifJS.verifier()
+ when 'version'
+ @version.maj()
+ end
+
=begin
Net::SSH.start('euphorik.ch', 'gburri') {|ssh|
output = ssh.exec!("hostname")
stdout << data if stream == :stdout
}
puts stdout
- }\r
+ }
=end
-
-
- #miseEnProd = MiseEnProd.new("gburri@euphorik.ch:/var/www/euphorik", "gburri@euphorik.ch:/var/www/euphorik_preprod")
- #miseEnProd.miseEnPreProd()
-
- verifJS = VerifJS.new("../js")
- verifJS.verifier()
-
- #version = Version.new("..")
- #version.maj()
+ end
+
+ def afficherUsage
+ puts "Usage : tools.rb (prod | pre | js | version)\n" +
+ " prod : Mise en production\n" +
+ " preprod : Mise en préproduction, copie les données en production\n" +
+ " js : vérification des fichiers JavaScript\n" +
+ " version : met à jour la version à partir du fichier VERSION"
end
end