From 87e3ed6ed09a9fcd3cab45a6ce674396e51b95bb Mon Sep 17 00:00:00 2001
From: thomascube <thomas@roundcube.net>
Date: Thu, 10 Aug 2006 14:53:07 -0400
Subject: [PATCH] Updated Slovak translation

---
 program/steps/mail/func.inc |   98 +++++++++++++++++++++++++++++++++++-------------
 1 files changed, 71 insertions(+), 27 deletions(-)

diff --git a/program/steps/mail/func.inc b/program/steps/mail/func.inc
index 6a24c02..4b3114b 100644
--- a/program/steps/mail/func.inc
+++ b/program/steps/mail/func.inc
@@ -25,6 +25,10 @@
 
 $EMAIL_ADDRESS_PATTERN = '/([a-z0-9][a-z0-9\-\.\+\_]*@[a-z0-9]([a-z0-9\-][.]?)*[a-z0-9]\\.[a-z]{2,5})/i';
 
+if (empty($_SESSION['mbox'])){
+  $_SESSION['mbox'] = $IMAP->get_mailbox_name();
+}
+
 // set imap properties and session vars
 if (strlen($_GET['_mbox']))
   {
@@ -38,6 +42,9 @@
   $_SESSION['page'] = $_GET['_page'];
   }
 
+// set mailbox to INBOX if not set
+if (empty($_SESSION['mbox']))
+  $_SESSION['mbox'] = $IMAP->get_mailbox_name();
 
 // set default sort col/order to session
 if (!isset($_SESSION['sort_col']))
@@ -54,11 +61,14 @@
 // set current mailbox in client environment
 $OUTPUT->add_script(sprintf("%s.set_env('mailbox', '%s');", $JS_OBJECT_NAME, $IMAP->get_mailbox_name()));
 
-
 if ($CONFIG['trash_mbox'])
   $OUTPUT->add_script(sprintf("%s.set_env('trash_mailbox', '%s');", $JS_OBJECT_NAME, $CONFIG['trash_mbox']));
 
+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)
@@ -90,7 +100,7 @@
                     rcube_label($attrib['noselection']));
   
   // get mailbox list
-  $mbox = $IMAP->get_mailbox_name();
+  $mbox_name = $IMAP->get_mailbox_name();
   
   // for these mailboxes we have localized labels
   $special_mailboxes = array('inbox', 'sent', 'drafts', 'trash', 'junk');
@@ -113,9 +123,9 @@
 // var_dump($a_mailboxes);
 
   if ($type=='select')
-    $out .= rcmail_render_folder_tree_select($a_mailboxes, $special_mailboxes, $mbox, $attrib['maxlength']);
+    $out .= rcmail_render_folder_tree_select($a_mailboxes, $special_mailboxes, $mbox_name, $attrib['maxlength']);
    else
-    $out .= rcmail_render_folder_tree_html($a_mailboxes, $special_mailboxes, $mbox, $attrib['maxlength']);
+    $out .= rcmail_render_folder_tree_html($a_mailboxes, $special_mailboxes, $mbox_name, $attrib['maxlength']);
 
 // rcube_print_time($mboxlist_start, 'render_folder_tree()');
 
@@ -159,7 +169,7 @@
   
 
 // return html for a structured list <ul> for the mailbox tree
-function rcmail_render_folder_tree_html(&$arrFolders, &$special, &$mbox, $maxlength, $nestLevel=0)
+function rcmail_render_folder_tree_html(&$arrFolders, &$special, &$mbox_name, $maxlength, $nestLevel=0)
   {
   global $JS_OBJECT_NAME, $COMM_PATH, $IMAP, $CONFIG, $OUTPUT;
 
@@ -188,7 +198,7 @@
       }
 
     // add unread message count display
-    if ($unread_count = $IMAP->messagecount($folder['id'], 'RECENT', ($folder['id']==$mbox)))
+    if ($unread_count = $IMAP->messagecount($folder['id'], 'RECENT', ($folder['id']==$mbox_name)))
       $foldername .= sprintf(' (%d)', $unread_count);
 
     // make folder name safe for ids and class names
@@ -204,25 +214,31 @@
     else if ($folder['id']==$CONFIG['junk_mbox'])
       $class_name = 'junk';
 
-    $out .= sprintf('<li id="rcmbx%s" class="mailbox %s %s%s%s"><a href="%s&_mbox=%s"'.
+    $out .= sprintf('<li id="rcmbx%s" class="mailbox %s %s%s%s"><a href="%s&amp;_mbox=%s"'.
                     ' onclick="return %s.command(\'list\',\'%s\')"'.
+                    ' onmouseover="return %s.focus_mailbox(\'%s\')"' .            
+                    ' onmouseout="return %s.unfocus_mailbox(\'%s\')"' .
                     ' onmouseup="return %s.mbox_mouse_up(\'%s\')"%s>%s</a>',
                     $folder_css,
                     $class_name,
                     $zebra_class,
                     $unread_count ? ' unread' : '',
-                    $folder['id']==$mbox ? ' selected' : '',
+                    addslashes($folder['id'])==addslashes($mbox_name) ? ' selected' : '',
                     $COMM_PATH,
                     urlencode($folder['id']),
                     $JS_OBJECT_NAME,
-                    $folder['id'],
+                    addslashes($folder['id']),
                     $JS_OBJECT_NAME,
-                    $folder['id'],
+                    addslashes($folder['id']),
+                    $JS_OBJECT_NAME,
+                    addslashes($folder['id']),
+                    $JS_OBJECT_NAME,
+                    addslashes($folder['id']),
                     $title,
                     rep_specialchars_output($foldername, 'html', 'all'));
 
     if (!empty($folder['folders']))
-      $out .= "\n<ul>\n" . rcmail_render_folder_tree_html($folder['folders'], $special, $mbox, $maxlength, $nestLevel+1) . "</ul>\n";
+      $out .= "\n<ul>\n" . rcmail_render_folder_tree_html($folder['folders'], $special, $mbox_name, $maxlength, $nestLevel+1) . "</ul>\n";
 
     $out .= "</li>\n";
     $idx++;
@@ -233,7 +249,7 @@
 
 
 // return html for a flat list <select> for the mailbox tree
-function rcmail_render_folder_tree_select(&$arrFolders, &$special, &$mbox, $maxlength, $nestLevel=0)
+function rcmail_render_folder_tree_select(&$arrFolders, &$special, &$mbox_name, $maxlength, $nestLevel=0)
   {
   global $IMAP, $OUTPUT;
 
@@ -259,7 +275,7 @@
                     rep_specialchars_output($foldername, 'html', 'all'));
 
     if (!empty($folder['folders']))
-      $out .= rcmail_render_folder_tree_select($folder['folders'], $special, $mbox, $maxlength, $nestLevel+1);
+      $out .= rcmail_render_folder_tree_select($folder['folders'], $special, $mbox_name, $maxlength, $nestLevel+1);
 
     $idx++;
     }
@@ -279,6 +295,9 @@
   // check to see if we have some settings for sorting
   $sort_col   = $_SESSION['sort_col'];
   $sort_order = $_SESSION['sort_order'];
+  
+  // add some labels to client
+  rcube_add_label('from', 'to');
 
   // get message headers
   $a_headers = $IMAP->list_headers('', '', $sort_col, $sort_order);
@@ -295,10 +314,10 @@
 
   // define list of cols to be displayed
   $a_show_cols = is_array($CONFIG['list_cols']) ? $CONFIG['list_cols'] : array('subject');
-  $a_sort_cols = array('subject', 'date', 'from', 'to');
+  $a_sort_cols = array('subject', 'date', 'from', 'to', 'size');
   
   // show 'to' instead of from in sent messages
-  if (strtolower($IMAP->get_mailbox_name())=='sent' && ($f = array_search('from', $a_show_cols))
+  if (($IMAP->get_mailbox_name()==$CONFIG['sent_mbox'] || $IMAP->get_mailbox_name()==$CONFIG['drafts_mbox']) && ($f = array_search('from', $a_show_cols))
       && !array_search('to', $a_show_cols))
     $a_show_cols[$f] = 'to';
   
@@ -390,13 +409,16 @@
     $zebra_class = $i%2 ? 'even' : 'odd';
 
     // set messag attributes to javascript array
+    if ($header->deleted)
+      $js_row_arr['deleted'] = true;
     if (!$header->seen)
       $js_row_arr['unread'] = true;
     if ($header->answered)
       $js_row_arr['replied'] = true;
-
-	// set message icon    
-    if ($attrib['unreadicon'] && !$header->seen)
+    // set message icon  
+    if ($attrib['deletedicon'] && $header->deleted)
+      $message_icon = $attrib['deletedicon'];
+    else if ($attrib['unreadicon'] && !$header->seen)
       $message_icon = $attrib['unreadicon'];
     else if ($attrib['repliedicon'] && $header->answered)
       $message_icon = $attrib['repliedicon'];
@@ -421,7 +443,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 temporary workaround to pad subject with content so that whitespace in rows responds to drag+drop
+        $cont .= '<img src="./program/blank.gif" height="5" width="1000" alt="" />';
+        }
       else if ($col=='size')
         $cont = show_bytes($header->$col);
       else if ($col=='date')
@@ -456,6 +482,8 @@
   
   if ($attrib['messageicon'])
     $javascript .= sprintf("%s.set_env('messageicon', '%s%s');\n", $JS_OBJECT_NAME, $skin_path, $attrib['messageicon']);
+  if ($attrib['deletedicon'])
+    $javascript .= sprintf("%s.set_env('deletedicon', '%s%s');\n", $JS_OBJECT_NAME, $skin_path, $attrib['deletedicon']);
   if ($attrib['unreadicon'])
     $javascript .= sprintf("%s.set_env('unreadicon', '%s%s');\n", $JS_OBJECT_NAME, $skin_path, $attrib['unreadicon']);
   if ($attrib['repliedicon'])
@@ -486,6 +514,8 @@
       && !array_search('to', $a_show_cols))
     $a_show_cols[$f] = 'to';
 
+  $commands .= sprintf("this.set_message_coltypes(%s);\n", array2js($a_show_cols)); 
+
   // loop through message headers
   for ($n=0; $a_headers[$n]; $n++)
     {
@@ -510,12 +540,9 @@
       $a_msg_cols[$col] = $cont;
       }
 
+    $a_msg_flags['deleted'] = $header->deleted ? 1 : 0;
     $a_msg_flags['unread'] = $header->seen ? 0 : 1;
     $a_msg_flags['replied'] = $header->answered ? 1 : 0;
-    
-    if ($header->deleted)
-      $a_msg_flags['deleted'] = 1;
-  
     $commands .= sprintf("this.add_message_row(%s, %s, %s, %b, %b);\n",
                          $header->uid,
                          array2js($a_msg_cols),
@@ -999,7 +1026,7 @@
     if ($hkey=='date' && !empty($headers[$hkey]))
       $header_value = format_date(strtotime($headers[$hkey]));
     else if (in_array($hkey, array('from', 'to', 'cc', 'bcc', 'reply-to')))
-      $header_value = rep_specialchars_output(rcmail_address_string($IMAP->decode_header($headers[$hkey]), NULL, $attrib['addicon']));
+      $header_value = rep_specialchars_output(rcmail_address_string($headers[$hkey], NULL, $attrib['addicon']));
     else
       $header_value = rep_specialchars_output($IMAP->decode_header($headers[$hkey]), '', 'all');
 
@@ -1149,11 +1176,14 @@
     $body = preg_replace('/(url\s*\()(["\']?)([\.\/]+[^"\'\)\s]+)(\2)\)/Uie', "'\\1\''.make_absolute_url('\\3', '$base_url').'\')'", $body);
     $body = preg_replace($base_reg, '', $body);
     }
+    
+  // modify HTML links to open a new window if clicked
+  $body = preg_replace('/<a\s+([^>]+)>/Uie', "rcmail_alter_html_link('\\1');", $body);
 
   // add comments arround html and other tags
   $out = preg_replace(array('/(<\/?html[^>]*>)/i',
                             '/(<\/?head[^>]*>)/i',
-                            '/(<title[^>]*>.+<\/title>)/ui',
+                            '/(<title[^>]*>.*<\/title>)/Ui',
                             '/(<\/?meta[^>]*>)/i'),
                       '<!--\\1-->',
                       $body);
@@ -1163,11 +1193,25 @@
                       array('<div class="rcmBody">',
                             '</div>'),
                       $out);
-
   
   return $out;
   }
 
+
+// parse link attributes and set correct target
+function rcmail_alter_html_link($in)
+  {
+  $attrib = parse_attrib_string($in);
+
+  if (stristr((string)$attrib['href'], 'mailto:'))
+    $attrib['onclick'] = sprintf("return %s.command('compose','%s',this)",
+                                 $GLOBALS['JS_OBJECT_NAME'],
+                                 substr($attrib['href'], 7));
+  else if (!empty($attrib['href']) && $attrib['href']{0}!='#')
+    $attrib['target'] = '_blank';
+  
+  return '<a' . create_attrib_string($attrib, array('href', 'name', 'target', 'onclick', 'id', 'class', 'style', 'title')) . '>';
+  }
 
 
 // replace all css definitions with #container [def]
@@ -1429,7 +1473,7 @@
   $attrib['src'] = './?'.str_replace('_frame=', ($ctype_primary=='text' ? '_show=' : '_preload='), $_SERVER['QUERY_STRING']);
 
   $attrib_str = create_attrib_string($attrib, array('id', 'class', 'style', 'src', 'width', 'height'));
-  $out = '<iframe '. $attrib_str . "></ifame>";
+  $out = '<iframe '. $attrib_str . "></iframe>";
     
   return $out;
   }
@@ -1476,4 +1520,4 @@
   }
   
   
-?>
\ No newline at end of file
+?>

--
Gitblit v1.9.1