From b4b081713ee88c9a7b2515d18c36bedf966641ce Mon Sep 17 00:00:00 2001
From: svncommit <devs@roundcube.net>
Date: Mon, 03 Jul 2006 16:14:26 -0400
Subject: [PATCH] Workaround for drag-drop using whitespace in FF, Junk emptying, misc fixes

---
 CHANGELOG                             |   11 +++++
 program/js/common.js                  |    2 
 skins/default/mail.css                |    6 +++
 program/localization/fr/labels.inc    |   21 ++++++++--
 UPGRADING                             |    1 
 config/main.inc.php.dist              |    3 +
 program/localization/nl_NL/labels.inc |    2 
 program/localization/it/messages.inc  |    4 +-
 program/localization/it/labels.inc    |    2 
 program/steps/mail/func.inc           |    7 +++
 program/localization/fr/messages.inc  |   20 ++++++---
 program/js/app.js                     |    6 +-
 skins/default/images/cleardot.png     |    0 
 13 files changed, 64 insertions(+), 21 deletions(-)

diff --git a/CHANGELOG b/CHANGELOG
index 1ed96f3..d99474a 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,6 +1,16 @@
 CHANGELOG RoundCube Webmail
 ---------------------------
 
+2006/07/03 (richs)
+----------
+- Fixed compatibility with in-body email addresses containing "+" (Bug #1483836)
+- Updated French localizations (Ticket #1483862)
+- Incoming messages can now be moved to Drafts, edited, saved, then moved back (Feature #1436191)
+- Added Firefox workaround when clicking whitespace to drag messages (Bug #1483857)
+- Corrected Dutch and Italian localizations (Ticket #1483851 and #1483848)
+- Enabled 'Empty' (purge) command for Junk mailbox (defined in main.inc.php) 
+
+
 2006/06/30 (richs)
 ----------
 - Fixed empty INBOX compatibility bug (Patch #1443200)
@@ -10,6 +20,7 @@
 - Fixed "unread count" in window title when count changed (Bug #1483812)
 - Fixed DB error when deleting from message table (Patch #1483835)
 
+
 2006/06/29 (richs)
 ----------
 - Added ability to remove attachments (Feature #1436721)
diff --git a/UPGRADING b/UPGRADING
index 36736f0..fd0a857 100644
--- a/UPGRADING
+++ b/UPGRADING
@@ -120,6 +120,7 @@
   $rcmail_config['db_persistent'] = TRUE;
 - add these lines to /config/main.inc.php
   $rcmail_config['drafts_mbox'] = 'Drafts';
+  $rcmail_config['junk_mbox'] = 'Junk';
   $rcmail_config['product_name'] = 'RoundCube Webmail';
   $rcmail_config['read_when_deleted'] = TRUE;
   $rcmail_config['enable_spellcheck'] = TRUE;
diff --git a/config/main.inc.php.dist b/config/main.inc.php.dist
index 806ec1a..ce05d80 100644
--- a/config/main.inc.php.dist
+++ b/config/main.inc.php.dist
@@ -121,6 +121,9 @@
 // leave blank if draft messages should not be stored
 $rcmail_config['drafts_mbox'] = 'Drafts';
 
+// store spam messages in this mailbox
+$rcmail_config['junk_mbox'] = 'Junk';
+
 // store sent message is this mailbox
 // leave blank if sent messages should not be stored
 $rcmail_config['sent_mbox'] = 'Sent';
diff --git a/program/js/app.js b/program/js/app.js
index 174920c..c60f62f 100644
--- a/program/js/app.js
+++ b/program/js/app.js
@@ -153,7 +153,7 @@
         if (this.env.messagecount)
           this.enable_command('select-all', 'select-none', 'sort', 'expunge', true);
 
-        if (this.env.messagecount && this.env.mailbox==this.env.trash_mailbox)
+        if (this.env.messagecount && (this.env.mailbox==this.env.trash_mailbox || this.env.mailbox==this.env.junk_mailbox))
           this.enable_command('purge', true);
 
         this.set_page_buttons();
@@ -893,7 +893,7 @@
             
           }
         else if (props)
-           url += '&_to='+props;
+           url += '&_to='+encodeURIComponent(props);
 
         // don't know if this is necessary...
         url = url.replace(/&_framed=1/, "");
@@ -1352,7 +1352,7 @@
       if (this.env.mailbox==this.env.drafts_mailbox)
 	{
 	this.enable_command('show', selected);
-	this.enable_command('delete', this.selection.length>0 ? true : false);
+	this.enable_command('delete', 'moveto', this.selection.length>0 ? true : false);
         }
       else
         {
diff --git a/program/js/common.js b/program/js/common.js
index f9fb9c1..65341a7 100644
--- a/program/js/common.js
+++ b/program/js/common.js
@@ -395,4 +395,4 @@
   }
 
 
-var bw = new roundcube_browser();
\ No newline at end of file
+var bw = new roundcube_browser();
diff --git a/program/localization/fr/labels.inc b/program/localization/fr/labels.inc
index 9362ed7..56de8d5 100644
--- a/program/localization/fr/labels.inc
+++ b/program/localization/fr/labels.inc
@@ -12,7 +12,7 @@
  | Author: aldweb <info@aldweb.com>, Pierre HAEGELI <pierre@haegeli.net> |
  +-----------------------------------------------------------------------+
 
- $Id$
+ $Id: labels.inc 220 2006-06-12 17:33:21Z roundcube $
 
 */
 
@@ -33,7 +33,6 @@
 
 // mailbox names
 $labels['inbox']  = 'Boîte de réception';
-$labels['drafts'] = 'Ébauches';
 $labels['sent']   = 'Messages envoyés';
 $labels['trash']  = 'Corbeille';
 $labels['drafts'] = 'Brouillons';
@@ -66,7 +65,7 @@
 
 $labels['preferhtml'] = 'Préférer HTML';
 $labels['htmlmessage'] = 'Message HTML';
-$labels['prettydate'] = 'Belles dates';
+$labels['prettydate'] = 'Affichage réduit des dates';
 
 $labels['addtoaddressbook'] = 'Ajouter au carnet d\'adresses';
 
@@ -91,7 +90,6 @@
 $labels['today'] = 'Aujourd\'hui';
 
 // toolbar buttons
-$labels['checkmail']        = 'Vérification les nouveaux messages';
 $labels['writenewmessage']  = 'Créer un nouveau message';
 $labels['replytomessage']   = 'Répondre au message';
 $labels['replytoallmessage'] = 'Répondre à tous';
@@ -113,14 +111,23 @@
 $labels['purge'] = 'Purger';
 
 $labels['quota'] = 'Utilisation Disque';
+$labels['unknown'] = 'inconnue';
+$labels['unlimited'] = 'illimitée';
 
+$labels['quicksearch']  = 'Recherche rapide';
+$labels['resetsearch']  = 'Réinitialiser la recherche';
 
 // message compose
 $labels['compose']  = 'Composer un nouveau message';
-$labels['savemessage']  = 'Économiser cette ébauche';
 $labels['sendmessage']  = 'Envoyer le message maintenant';
 $labels['addattachment']  = 'Joindre un fichier';
 $labels['charset']  = 'Encodage';
+$labels['returnreceipt'] = 'Accusé de réception';
+
+$labels['checkmail'] = 'Vérification des nouveaux messages';
+$labels['checkspelling'] = 'Vérifier l\'orthographe';
+$labels['resumeediting'] = 'Retourner à l\'édition';
+$labels['revertto'] = 'Revenir à';
 
 $labels['attachments'] = 'Fichiers joints';
 $labels['upload'] = 'Joindre';
@@ -158,6 +165,9 @@
 $labels['print']          = 'Imprimer';
 $labels['export']         = 'Exporter';
 
+$labels['previouspage'] = 'Montrer page précédente';
+$labels['nextpage']     = 'Montrer page suivante';
+
 // LDAP search
 $labels['ldapsearch'] = 'Recherche dans répertoires LDAP';
 
@@ -188,6 +198,7 @@
 $labels['timezone']  = 'Fuseau horaire';
 $labels['pagesize']  = 'Nombre de lignes par page';
 $labels['signature'] = 'Signature';
+$labels['dstactive'] = 'Heure d\'été';
 
 $labels['folder']  = 'Dossier';
 $labels['folders']  = 'Dossiers';
diff --git a/program/localization/fr/messages.inc b/program/localization/fr/messages.inc
index b084710..e85dc97 100644
--- a/program/localization/fr/messages.inc
+++ b/program/localization/fr/messages.inc
@@ -12,7 +12,7 @@
  | Author: aldweb <info@aldweb.com>, Pierre HAEGELI <pierre@haegeli.net> |
  +-----------------------------------------------------------------------+
 
- $Id$
+ $Id: messages.inc 139 2006-06-12 17:32:27Z roundcube $
 
 */
 
@@ -36,15 +36,9 @@
 
 $messages['loadingdata'] = 'Chargement des données en cours...';
 
-$messages['checkingmail'] = 'Vérification les nouveaux messages...';
-
 $messages['sendingmessage'] = 'Message en cours d\'envoi...';
 
 $messages['messagesent'] = 'Message envoyé';
-
-$messages['savingmessage'] = 'Message d\'économie...';
-
-$messages['messagesaved'] = 'Message sauvé aux ébauches';
 
 $messages['successfullysaved'] = 'Sauvegarde effectuée';
 
@@ -94,4 +88,16 @@
 
 $messages['nosearchname'] = 'Entrez un nom ou une adresse e-Mail de contact';
 
+$messages['searchsuccessful'] = '$nr messages trouvés';
+
+$messages['searchnomatch'] = 'Aucun résultat trouvé';
+
+$messages['searching'] = 'En cours de recherche...';
+
+$messages['checking'] = 'Vérification...';
+
+$messages['nospellerrors'] = 'Aucune faute trouvée';
+
+$messages['checkingmail'] = 'Vérification des nouveaux messages ...';
+
 ?>
diff --git a/program/localization/it/labels.inc b/program/localization/it/labels.inc
index 0f78e70..08848a9 100644
--- a/program/localization/it/labels.inc
+++ b/program/localization/it/labels.inc
@@ -117,7 +117,7 @@
 
 // message compose
 $labels['compose']  = 'Componi un messaggio';
-$labels['savemessage']  = 'Risparmi questa brutta copia';
+$labels['savemessage']  = 'Salva messaggio come bozza';
 $labels['sendmessage']  = 'Invia il messaggio adesso';
 $labels['addattachment']  = 'Allega un file';
 $labels['charset']  = 'Set di caratteri';
diff --git a/program/localization/it/messages.inc b/program/localization/it/messages.inc
index 92b7013..3472b25 100644
--- a/program/localization/it/messages.inc
+++ b/program/localization/it/messages.inc
@@ -42,9 +42,9 @@
 
 $messages['messagesent'] = 'Messaggio inviato correttamente';
 
-$messages['savingmessage'] = 'Messaggio di Saving...';
+$messages['savingmessage'] = 'Salvataggio bozza...';
 
-$messages['messagesaved'] = 'Messaggio conservato alle brutte copie';
+$messages['messagesaved'] = 'Messaggio salvato come bozza';
 
 $messages['successfullysaved'] = 'Salvato correttamente';
 
diff --git a/program/localization/nl_NL/labels.inc b/program/localization/nl_NL/labels.inc
index 5f9d5e8..ebbad9e 100644
--- a/program/localization/nl_NL/labels.inc
+++ b/program/localization/nl_NL/labels.inc
@@ -140,7 +140,7 @@
 
 
 // address boook
-$labels['name']      = 'Tonen als';
+$labels['name']      = 'Naam';
 $labels['firstname'] = 'Voornaam';
 $labels['surname']   = 'Achternaam';
 $labels['email']     = 'E-Mail';
diff --git a/program/steps/mail/func.inc b/program/steps/mail/func.inc
index 266c163..4e88871 100644
--- a/program/steps/mail/func.inc
+++ b/program/steps/mail/func.inc
@@ -67,7 +67,8 @@
 if ($CONFIG['drafts_mbox'])
   $OUTPUT->add_script(sprintf("%s.set_env('drafts_mailbox', '%s');", $JS_OBJECT_NAME, $CONFIG['drafts_mbox']));
 
-
+if ($CONFIG['junk_mbox'])
+  $OUTPUT->add_script(sprintf("%s.set_env('junk_mailbox', '%s');", $JS_OBJECT_NAME, $CONFIG['junk_mbox']));
 
 // return the mailboxlist in HTML
 function rcmail_mailbox_list($attrib)
@@ -433,7 +434,11 @@
       if ($col=='from' || $col=='to')
         $cont = rep_specialchars_output(rcmail_address_string($header->$col, 3, $attrib['addicon']));
       else if ($col=='subject')
+        {
         $cont = rep_specialchars_output($IMAP->decode_header($header->$col), 'html', 'all');
+	// firefox/mozilla workaround to pad subject with content so that whitespace in rows responds to drag+drop
+        $cont .= '<img src="http://www.whidbey.com/roundcube/roundcubemail/skins/default/images/cleardot.png" height="1" width="1000">';
+        }
       else if ($col=='size')
         $cont = show_bytes($header->$col);
       else if ($col=='date')
diff --git a/skins/default/images/cleardot.png b/skins/default/images/cleardot.png
new file mode 100644
index 0000000..98c3bfc
--- /dev/null
+++ b/skins/default/images/cleardot.png
Binary files differ
diff --git a/skins/default/mail.css b/skins/default/mail.css
index eebe541..ab6b045 100644
--- a/skins/default/mail.css
+++ b/skins/default/mail.css
@@ -397,33 +397,39 @@
 {
   display: table-column;
   text-align: left;
+  vertical-align: middle;
 }
 
 #messagelist tr td.icon
 {
   width: 16px;
+  vertical-align: middle;
 }
 
 #messagelist tr td.subject
 {
   overflow: hidden;
+  vertical-align: middle;
 }
 
 #messagelist tr td.size
 {
   width: 60px;
   text-align: right;
+  vertical-align: middle;
 }
 
 #messagelist tr td.from,
 #messagelist tr td.to
 {
   width: 180px;
+  vertical-align: middle;
 }
 
 #messagelist tr td.date
 {
   width: 110px;
+  vertical-align: middle;
 }
 
 #messagelist tr.message

--
Gitblit v1.9.1