color: #EEEEEE;\r
/*text-align: center;*/ /* uniquement pour IE */\r
background-color: #DFDFDF;\r
- background-image: url(../../img/css1/fond.png)\r
+ background-image: url(../../img/css2/fond.png)\r
}\r
\r
#container {
#logo {
z-index: 10;
- background-image: url(../../img/css1/logo_2.png);
+ background-image: url(../../img/css2/logo_2.png);
width: 253px;
height: 37px;
position: absolute;
div#info .boutons div:hover {
background-color: #bc0000;
}
+
+/***** Les infos bulles *****/
+#flecheBulle {
+ position: absolute;
+ z-index: 50;
+ width: 15px;
+ height: 8px;
+ background-image: url(../../img/css2/fleche_bulle.png);
+ display: none
+}
+#messageBulle {
+ position: absolute;
+ z-index: 50;
+ color: #ffffff;
+ background-color: #164200;
+ display: none;
+ font-size: 10px;
+}
+#messageBulle p {
+ padding: 3px 6px;
+}
+
\r
.captcha {\r
display:none\r
#page.minichat form .return {
height: 16px;
width: 32px;
- background-image: url(../../img/css1/return.png);
+ background-image: url(../../img/css2/return.png);
background-repeat: no-repeat;
background-position: 5px 2px;
vertical-align: top;
#page.minichat form .smiles {
height: 16px;
width: 16px;
- background-image: url(../../img/css1/bouton_smiles.png);
+ background-image: url(../../img/css2/bouton_smiles.png);
background-repeat: no-repeat;
background-position: 2px 2px;
vertical-align: top;
margin-left: 3px;
}
+
+#page.minichat div.message .pseudo:after {
+ content: ":"
+}
+
#page.minichat div.message .pseudo,
#page.minichat form .pseudo {
margin-left: 4px;
}*/
#page.minichat #conversations .repondA {
- margin-left: 4px;
- color: #bd7a11
+ color: #bd7a11;
+ margin-right: 3px;
+}
+
+#page.minichat #conversations .repondA:after {
+ content: ">"
}
/*#page.minichat #conversations .contenu {
background-color: #4f5519;
}
+#page.minichat #conversations .extraire:after {
+ content: ">"
+}
+
#page.minichat #conversations .extraire:hover {
background-color: #818c27
}
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 .lien {
float: right
}
+#page.minichat #conversations .titre .lien:after {
+ content: "c"
+}
#page.minichat #conversations .titre .lien,
#page.minichat #conversations .titre .next,
== TODO ==\r
\r
=== v1.0 ===\r
-* Rendre compatible IE 7 (pfff..)\r
-* Stocker quelque part la version de la BD\r
- * Créer une table "proprietes" contenant des tuples {propriete, nom, val}\r
+* Rendre compatible IE 7 (pfff..)
+* 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\r
* Finir le script de mise en production\r
* Make des modules.\r
* 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.\r
- * Modifier le script pour virer les lignes matchant /^\W*;;;.*$/
+ * Modifier le script pour virer les lignes matchant /^\W*;;.*$/
* Virer les commentaires dans les pages HTML\r
* processus :\r
1) copie des fichiers (+minimisation)\r
[ok] Créer un style common puis adapter les CSS (classic et cold -> web2.0)\r
* 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}
=== Bugs ===
1 : Critique
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
<head>
<title>euphorik.ch</title>
- <link id="cssPrincipale" rel="stylesheet" href="css/1/euphorik.css" type="text/css" media="screen" ></link>
+
+ <link id="cssPrincipale" rel="stylesheet" href="<erl>
+ out(A) -> {html, "css/1/euphorik.css"}.
+ </erl>" type="text/css" media="screen" ></link>
<link rel="stylesheet" href="css/jquery.lightbox.css" type="text/css" media="screen" ></link>
<script type="text/javascript" src="js/jquery.js" ></script>
<script type="text/javascript" src="js/jquery.lightbox.js"></script>
<ul id="menu">
<li class="minichat">chat</li><li class="admin" style="display:none">admin</li><li class="profile"></li><li class="register">register</li><li class="logout">logout</li><li class="about">about</li>\r
</ul>
- <!-- form action="" id="formMenuCss">
+ <form action="" id="formMenuCss">
<p>
<select id="menuCss">
- <option value="1" selected="selected">Dark</option>
- <option value="2">Cold</option>
- <option value="3">Classic</option>
+ <option value="1" selected="selected">Retro</option>
+ <option value="2">Dark</option>
</select>
</p>
- </form -->
+ </form>
<div id="page"></div>
<div id="footer"><a href="http://yaws.hyber.org"><img src="img/powered-by-yaws.gif" alt="powered by Yaws" /></a></div>
</div>
Client.prototype.connexion = function(messageJson)
{
- ;;; dumpObj(messageJson)
+ ;; dumpObj(messageJson)
thisClient = this
jQuery.ajax(
{
success:
function(data)
{
- ;;; dumpObj(data)
+ ;; dumpObj(data)
if (data["reply"] == "error")
thisClient.util.messageDialogue(data["error_message"])
else
var thisClient = this
var ok = true
- ;;; dumpObj(this.getJSONProfile())
+ ;; dumpObj(this.getJSONProfile())
jQuery.ajax(
{
async: async,
success:
function(data)
{
- ;;; dumpObj(data)
+ ;; dumpObj(data)
if (data["reply"] == "error")
{
thisClient.util.messageDialogue(data["error_message"])
for (v in poulpe)
dataToSend[v] = poulpe[v]
- ;;; dumpObj(dataToSend)
+ ;; dumpObj(dataToSend)
this.attenteCourante = jQuery.ajax({
type: "POST",
success:
function(data)
{
- ;;; dumpObj(data)
+ ;; dumpObj(data)
funReceive(data)
}
// charge dynamiquement le script de debug
-;;; jQuery.ajax({async : false, url : "js/debug.js", dataType : "script"})
+;; jQuery.ajax({async : false, url : "js/debug.js", dataType : "script"})
\r
// le main
$(document).ready(
"content" : content
}
- ;;; dumpObj(dataToSend)
+ ;; dumpObj(dataToSend)
jQuery.ajax(
{
type: "POST",
success:
function(data)
{
- ;;; dumpObj(data)
+ ;; dumpObj(data)
if (data["reply"] == "ok")
{
"cookie" : this.client.cookie
}
- ;;; dumpObj(dataToSend)
+ ;; dumpObj(dataToSend)
jQuery.ajax(
{
type: "POST",
success:
function(data)
{
- ;;; dumpObj(data)
+ ;; dumpObj(data)
if (data["reply"] == "list_banned_ips")
{
"ip" : ip
}
- ;;; dumpObj(dataToSend)
+ ;; dumpObj(dataToSend)
jQuery.ajax(
{
type: "POST",
success:
function(data)
{
- ;;; dumpObj(data)
+ ;; dumpObj(data)
switch(data["reply"])
{
case "error" :
"content" : content
}
- ;;; dumpObj(dataToSend)
+ ;; dumpObj(dataToSend)
jQuery.ajax(
{
type: "POST",
success:
function(data)
{
- ;;; dumpObj(data)
+ ;; dumpObj(data)
if (data["reply"] == "error")
{
thisTrolls.util.messageDialogue(data["error_message"])
"troll_id" : id
}
- ;;; dumpObj(dataToSend)
+ ;; dumpObj(dataToSend)
jQuery.ajax(
{
type: "POST",
success:
function(data)
{
- ;;; dumpObj(data)
+ ;; dumpObj(data)
if (data["reply"] == "error")
{
thisTrolls.util.messageDialogue(data["error_message"])
this.client.pseudo = pseudo\r
- ;;; dumpObj(this.getJSONMessage(pseudo, message, repondA))\r
+ ;; dumpObj(this.getJSONMessage(pseudo, message, repondA))\r
jQuery.ajax(\r
{\r
url : "request", \r
},\r
success : function(data, textStatus)\r
{
- ;;; dumpObj(data)
+ ;; dumpObj(data)
if(data["reply"] == "ok")
{ \r
--- /dev/null
+# SciTE session file
+
+buffer.1.path=/home/gburri/projets/euphorik/css/2/euphorik.css
+buffer.1.position=1
+buffer.1.current=1
+
+buffer.2.path=/home/gburri/projets/euphorik/css/2/pageAbout.css
+buffer.2.position=1
+
+buffer.3.path=/home/gburri/projets/euphorik/css/2/pageAdmin.css
+buffer.3.position=1
+
+buffer.4.path=/home/gburri/projets/euphorik/css/2/pageMinichat.css
+buffer.4.position=1
+
+buffer.5.path=/home/gburri/projets/euphorik/css/2/pageProfileRegister.css
+buffer.5.position=130
# peek() is used to see if a '/' is followed by a '/' or '*'.
def mynext()
c = get
- if (c == "/")
- if(peek == "/")
+ # saute les commentaires (également les lignes commencant pas ;;)
+ if (c == "/" or c == ";")
+ prochain = peek
+ if(prochain == "/" or prochain == ";")
while(true)
c = get
- if (c <= "\n")
- return c
+ if (c[0] <= "\n"[0])
+ return c
end
end
end
-#!/usr/bin/ruby\r
-=begin\r
-Copyright 2008 Grégory Burri\r
-
-This file is part of Euphorik.\r
-\r
-Euphorik is free software: you can redistribute it and/or modify\r
-it under the terms of the GNU General Public License as published by\r
-the Free Software Foundation, either version 3 of the License, or\r
-(at your option) any later version.\r
-\r
-Euphorik is distributed in the hope that it will be useful,\r
-but WITHOUT ANY WARRANTY; without even the implied warranty of\r
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r
-GNU General Public License for more details.\r
-\r
-You should have received a copy of the GNU General Public License\r
-along with Euphorik. If not, see <http://www.gnu.org/licenses/>.\r
-=end\r
-\r
-
-def copy_files(dest, opt)
- `rsync #{opt} index.html #{dest}`
- `rsync #{opt} -r css #{dest}`
- `rsync #{opt} -r img #{dest}`
- #`rsync #{opt} -r js #{dest}`
- `rsync #{opt} -r lightbox #{dest}`
- `rsync #{opt} -r modules/include #{dest}/modules`
- `rsync #{opt} -r modules/ebin #{dest}/modules`
- `rsync #{opt} -r pages #{dest}`\r
- \r
- # copie des js avec minification\r
-
-end
+#!/usr/bin/ruby
+=begin
+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,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+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/>.
+=end
+
-if __FILE__ == $0
- # la destination
- $dest = 'gburri@euphorik.ch:/var/www/euphorik'
- $dest = $*[0] if $*.length > 1
- # les options communes
- $opt = ''
-
- copy_files($dest, $opt)
+### MAKE
+Dir.chdir('../modules')
+puts `make`
+
+### COPIE
+$rep_remote = '/tmp/euphorik' #'/var/www/euphorik'
+$host = 'localhost' #"gburri@euphorik.ch:#{rep_remote}"
+$opt_rsync = ''
+
+def creer_remote_rep(rep)
+ begin
+ `ssh #{$host} "mkdir #{$rep_remote}/#{rep}"`
+ rescue
+ end
end
+
+creer_remote_rep('BD')
+
+Dir.chdir('..')
+print `rsync #{$opt_rsync} index.html #{$host}:#{$rep_remote}`
+print `rsync #{$opt_rsync} favicon.ico #{$host}:#{$rep_remote}`
+print `rsync #{$opt_rsync} -r css #{$host}:#{$rep_remote}`
+print `rsync #{$opt_rsync} -r --exclude 'autres' img #{$host}:#{$rep_remote}`
+
+# copie des js avec minification
+rep_js = 'js'
+creer_remote_rep(rep_js)
+Dir.entries(rep_js).each{|fichier|
+ if fichier[0..0] != "." and fichier != "debug.js"
+ puts "Minimisation et copie de #{fichier}"
+ print `tools/jsmin.rb < #{rep_js}/#{fichier} | ssh #{$host} "cat > #{$rep_remote}/#{rep_js}/#{fichier}"`
+ end
+}
+
+creer_remote_rep('modules')
+`rsync #{$opt_rsync} -r modules/ebin #{$host}:#{$rep_remote}/modules`
+`rsync #{$opt_rsync} -r pages #{$host}:#{$rep_remote}`