Changeset 7902df4 in github


Ignore:
Timestamp:
Oct 20, 2005 6:20:26 PM (8 years ago)
Author:
thomascube <thomas@…>
Branches:
master, HEAD, courier-fix, dev-browser-capabilities, pdo, release-0.6, release-0.7, release-0.8
Children:
a95e0e1
Parents:
1038d554
Message:

Fixed SSL support; improved Courier compatibility; some visual enhancements and bugfixes

Files:
6 added
17 edited

Legend:

Unmodified
Added
Removed
  • config/db.inc.php.dist

    rf45ec7e r7902df4  
    1717// PEAR database DSN for read/write operations 
    1818// format is db_provider://user:password@host/databse 
    19 // currentyl suported db_providers: mysql, sqlite, pgsql 
     19// currentyl suported db_providers: mysql, sqlite 
    2020 
    2121$rcmail_config['db_dsnw'] = 'mysql://roundcube:pass@localhost/roundcubemail'; 
  • config/main.inc.php.dist

    rd206c1f r7902df4  
    2323$rcmail_config['enable_caching'] = TRUE; 
    2424 
    25 // automatically create a new user when log-in the first time 
     25// automatically create a new RoundCube user when log-in the first time. 
     26// a new user will be created once the IMAP login succeeded. 
    2627// set to false if only registered users can use this service 
    2728$rcmail_config['auto_create_user'] = TRUE; 
     
    6869$rcmail_config['temp_dir'] = 'temp/'; 
    6970 
     71// session lifetime in minutes 
     72$rcmail_config['session_lifetime'] = 10; 
     73 
    7074// check client IP in session athorization 
    7175$rcmail_config['ip_check'] = TRUE; 
     
    8185 
    8286// add this user-agent to message headers when sending 
    83 $rcmail_config['useragent'] = 'RoundCube Webmail/0.1-20051011'; 
     87$rcmail_config['useragent'] = 'RoundCube Webmail/0.1-20051021'; 
    8488 
    8589// only list folders within this path 
  • index.php

    rf45ec7e r7902df4  
    44 +-----------------------------------------------------------------------+ 
    55 | RoundCube Webmail IMAP Client                                         | 
    6  | Version 0.1-20051007                                                  | 
     6 | Version 0.1-20051018                                                  | 
    77 |                                                                       | 
    88 | Copyright (C) 2005, RoundCube Dev. - Switzerland                      | 
     
    6969require_once('include/main.inc'); 
    7070require_once('include/cache.inc'); 
     71require_once('PEAR.php'); 
     72 
     73 
     74// set PEAR error handling 
     75// PEAR::setErrorHandling(PEAR_ERROR_TRIGGER, E_USER_NOTICE); 
    7176 
    7277 
     
    139144else if ($_action!='login' && $_auth && $sess_auth) 
    140145  { 
    141   if ($_auth !== $sess_auth || $_auth != rcmail_auth_hash($_SESSION['client_id'], $_SESSION['auth_time'])) 
     146  if ($_auth !== $sess_auth || $_auth != rcmail_auth_hash($_SESSION['client_id'], $_SESSION['auth_time']) || 
     147      ($CONFIG['session_lifetime'] && $SESS_CHANGED + $CONFIG['session_lifetime']*60 < mktime())) 
    142148    { 
    143149    $message = show_message('sessionerror', 'error'); 
     
    150156if (!empty($_SESSION['user_id']) && $_task=='mail') 
    151157  { 
    152   $conn = $IMAP->connect($_SESSION['imap_host'], $_SESSION['username'], decrypt_passwd($_SESSION['password'])); 
     158  $conn = $IMAP->connect($_SESSION['imap_host'], $_SESSION['username'], decrypt_passwd($_SESSION['password']), $_SESSION['imap_port'], $_SESSION['imap_ssl']); 
    153159  if (!$conn) 
    154160    { 
     
    156162    $_SESSION['user_id'] = ''; 
    157163    } 
     164  else 
     165    rcmail_set_imap_prop(); 
    158166  } 
    159167 
  • program/include/main.inc

    r1038d554 r7902df4  
    5252  else 
    5353    ini_set('display_errors', 0); 
     54   
     55  // set session garbage collecting time according to session_lifetime 
     56  if (!empty($CONFIG['session_lifetime'])) 
     57    ini_set('session.gc_maxlifetime', ($CONFIG['session_lifetime']+2)*60); 
    5458 
    5559 
     
    139143  $IMAP = new rcube_imap(); 
    140144 
     145  // connect with stored session data 
     146  if ($connect) 
     147    { 
     148    if (!($conn = $IMAP->connect($_SESSION['imap_host'], $_SESSION['username'], decrypt_passwd($_SESSION['password']), $_SESSION['imap_port'], $_SESSION['imap_ssl']))) 
     149      show_message('imaperror', 'error'); 
     150       
     151    rcmail_set_imap_prop(); 
     152    } 
     153 
    141154  // enable caching of imap data 
    142155  if ($CONFIG['enable_caching']===TRUE) 
    143156    $IMAP->set_caching(TRUE); 
    144157 
     158  if (is_array($CONFIG['default_imap_folders'])) 
     159    $IMAP->set_default_mailboxes($CONFIG['default_imap_folders']); 
     160 
     161  // set pagesize from config 
     162  if (isset($CONFIG['pagesize'])) 
     163    $IMAP->set_pagesize($CONFIG['pagesize']); 
     164  } 
     165 
     166 
     167// set root dir and last stored mailbox 
     168// this must be done AFTER connecting to the server 
     169function rcmail_set_imap_prop() 
     170  { 
     171  global $CONFIG, $IMAP; 
     172 
    145173  // set root dir from config 
    146174  if (strlen($CONFIG['imap_root'])) 
    147175    $IMAP->set_rootdir($CONFIG['imap_root']); 
    148      
    149   if (is_array($CONFIG['default_imap_folders'])) 
    150     $IMAP->set_default_mailboxes($CONFIG['default_imap_folders']); 
    151176 
    152177  if (strlen($_SESSION['mbox'])) 
    153178    $IMAP->set_mailbox($_SESSION['mbox']); 
    154  
     179     
    155180  if (isset($_SESSION['page'])) 
    156181    $IMAP->set_page($_SESSION['page']); 
    157  
    158   // set pagesize from config 
    159   if (isset($CONFIG['pagesize'])) 
    160     $IMAP->set_pagesize($CONFIG['pagesize']); 
    161  
    162  
    163   // connect with stored session data 
    164   if ($connect) 
    165     { 
    166     if (!($conn = $IMAP->connect($_SESSION['imap_host'], $_SESSION['username'], decrypt_passwd($_SESSION['password'])))) 
    167       show_message('imaperror', 'error'); 
    168     } 
    169182  } 
    170183 
     
    263276    $host = $a_host['host']; 
    264277    $imap_ssl = (isset($a_host['scheme']) && in_array($a_host['scheme'], array('ssl','imaps','tls'))) ? TRUE : FALSE; 
    265     $imap_port = isset($a_host['post']) ? $a_host['post'] : ($imap_ssl ? 993 : $CONFIG['default_port']); 
     278    $imap_port = isset($a_host['port']) ? $a_host['port'] : ($imap_ssl ? 993 : $CONFIG['default_port']); 
    266279    } 
    267280 
     
    302315    $_SESSION['user_id']   = $user_id; 
    303316    $_SESSION['imap_host'] = $host; 
     317    $_SESSION['imap_port'] = $imap_port; 
     318    $_SESSION['imap_ssl']  = $imap_ssl; 
    304319    $_SESSION['username']  = $user; 
    305320    $_SESSION['password']  = encrypt_passwd($pass); 
  • program/include/rcube_imap.inc

    r8c03283 r7902df4  
    5858  function connect($host, $user, $pass, $port=143, $use_ssl=FALSE) 
    5959    { 
    60     global $ICL_PORT, $CONFIG; 
     60    global $ICL_SSL, $ICL_PORT, $CONFIG; 
    6161     
    6262    // check for Open-SSL support in PHP build 
     
    6767      raise_error(array('code' => 403, 
    6868                        'type' => 'imap', 
     69                        'file' => __FILE__, 
    6970                        'message' => 'Open SSL not available;'), TRUE, FALSE); 
    7071      $port = 143; 
     
    99100        $this->delimiter = $this->conn->delimiter; 
    100101      if (!empty($this->conn->rootdir)) 
    101         $this->root_ns = $this->conn->rootdir; 
     102        { 
     103        $this->set_rootdir($this->conn->rootdir); 
     104        $this->root_ns = ereg_replace('[\.\/]$', '', $this->conn->rootdir); 
     105        } 
    102106      } 
    103107 
     
    186190      $this->delimiter = iil_C_GetHierarchyDelimiter($this->conn); 
    187191 
     192    if (empty($this->delimiter)) 
     193      $this->delimiter = '/'; 
     194 
    188195    return $this->delimiter; 
    189196    } 
     
    269276      $count = iil_C_CountMessages($this->conn, $mailbox); 
    270277 
    271 // print "/**** get messagecount for $mailbox ($mode): $count ****/\n"; 
    272  
    273278    if (is_array($a_mailbox_cache[$mailbox])) 
    274279      $a_mailbox_cache[$mailbox] = array(); 
     
    279284    $this->update_cache('messagecount', $a_mailbox_cache); 
    280285 
    281 //var_dump($a_mailbox_cache); 
    282  
    283286    return (int)$count; 
    284287    } 
     
    295298 
    296299  // private method for listing message header 
     300  // by DrSlump <drslump@drslump.biz> 
     301  function __list_headers($mailbox='', $page=NULL, $sort_field='date', $sort_order='DESC') 
     302    { 
     303    $a_out = array(); 
     304    $cached_count = 0; 
     305 
     306    if (!strlen($mailbox)) 
     307      return $a_out; 
     308 
     309    $mbox_count = $this->_messagecount($mailbox /*, 'ALL', TRUE*/); 
     310 
     311    $revalidate = false; 
     312    if ($mbox_count) 
     313      { 
     314      // get cached headers 
     315      $a_out = $this->get_cache($mailbox.'.msg'); 
     316      $a_out = is_array($a_out) ? $a_out : array(); // make sure we get an array 
     317 
     318      $cached_count = count($a_out); 
     319      $a_new = array(); 
     320      $revalidate = true; // revalidate by default 
     321      
     322      // if the cache count is greater then there have been changes for sure 
     323      if ($cached_count <= $mbox_count) 
     324        { 
     325        $from = $cached_count?$cached_count:1; 
     326        
     327        //get new headers (at least one is returned) 
     328        $a_temp = iil_C_FetchHeaders($this->conn, $mailbox, $from . ':' . $mbox_count); 
     329        $duplicated = $cached_count?true:false; 
     330        
     331        foreach ($a_temp as $hdr) 
     332          { 
     333          //skip the first one if duplicated 
     334          if ($duplicated) 
     335            { 
     336            //check for changes using the UID 
     337            $lastCacheHdr = end($a_out); 
     338            if ($hdr->uid === $lastCacheHdr->uid) 
     339              $revalidate = false; 
     340 
     341            $duplicated = false; 
     342            continue; 
     343            } 
     344            
     345          //skip deleted ones 
     346          if (! $hdr->deleted) 
     347            $a_new[ $hdr->uid ] = $hdr; 
     348          } 
     349        } 
     350 
     351      //revalidate cache if needed 
     352      $to = $mbox_count - count($a_new); 
     353      if ($revalidate && $to !== 0)    //we'll need to reindex the array so we have to make a copy 
     354        { 
     355        $a_dirty = $a_out; 
     356        $a_out = array(); 
     357        $a_buffers = array(); 
     358 
     359        //fetch chunks of 20 headers 
     360        $step = 20; 
     361        $found = false; 
     362          
     363        //fetch headers in blocks starting from new to old 
     364        do { 
     365          $from = $to-$step; 
     366          if ($from < 1) $from = 1; 
     367 
     368          //store the block in a temporal buffer 
     369          $a_buffers[$from] = iil_C_FetchHeaders($this->conn, $mailbox, $from . ':' . $to); 
     370 
     371          //compare the fetched headers with the ones in the cache 
     372          $idx = 0; 
     373          foreach ($a_buffers[$from] as $k=>$hdr) 
     374            { 
     375            //if it's different the comparison ends 
     376            if (!isset($a_dirty[$hdr->uid]) || $a_dirty[$hdr->uid]->id !== $hdr->id) 
     377              break; 
     378 
     379            //if we arrive here then we know that the older messages in cache are ok 
     380            $found = $hdr->id; 
     381            $idx++; 
     382            } 
     383 
     384          //remove from the buffer the headers which are already cached 
     385          if ($found) 
     386            $a_buffers[$from] = array_splice($a_buffers[$from], 0, $idx ); 
     387              
     388          $to = $from-1; 
     389          } 
     390        while ($found===false && $from > 1); 
     391 
     392        //just keep the headers we are certain that didn't change in the cache 
     393        if ($found !== false) 
     394          { 
     395          foreach ($a_dirty as $hdr) 
     396            { 
     397            if ($hdr->id > $found) break; 
     398            $a_out[$hdr->uid] = $hdr; 
     399            } 
     400          } 
     401            
     402        //we builded the block buffers from new to older, we process them in reverse order 
     403        ksort($a_buffers, SORT_NUMERIC); 
     404        foreach ($a_buffers as $a_buff) 
     405          { 
     406          foreach ($a_buff as $hdr) 
     407            { 
     408            if (! $hdr->deleted) 
     409              $a_out[$hdr->uid] = $hdr; 
     410            } 
     411          } 
     412        } 
     413          
     414      //array_merge() would reindex the keys, so we use this 'hack' 
     415      $a_out += $a_new; 
     416      } 
     417  
     418    //write headers list to cache if needed 
     419    if ($revalidate || count($a_out)!=$cached_count) { 
     420      $this->update_cache($mailbox.'.msg', $a_out); 
     421     } 
     422 
     423    //sort headers by a specific col 
     424    $a_out = iil_SortHeaders( $a_out, $sort_field, $sort_order ); 
     425    
     426    // return complete list of messages 
     427    if (strtolower($page)=='all') 
     428      return $a_out; 
     429 
     430    $start_msg = ($this->list_page-1) * $this->page_size; 
     431    return array_slice($a_out, $start_msg, $this->page_size); 
     432    } 
     433 
     434 
     435  // old function; replaced 2005/10/18 
     436  // private method for listing message header 
    297437  function _list_headers($mailbox='', $page=NULL, $sort_field='date', $sort_order='DESC') 
    298438    { 
    299     $max = $this->_messagecount($mailbox /*, 'ALL', TRUE*/); 
    300      
     439    $max = $this->_messagecount($mailbox); 
     440 
    301441    if (!strlen($mailbox)) 
    302442      return array(); 
     
    305445    $a_msg_headers = $this->get_cache($mailbox.'.msg'); 
    306446 
    307 // print "/**** count = $max; headers = ".sizeof($a_msg_headers)." ****/\n"; 
    308  
    309447    // retrieve headers from IMAP 
    310448    if (!is_array($a_msg_headers) || sizeof($a_msg_headers) != $max) 
     
    312450      $a_header_index = iil_C_FetchHeaders($this->conn, $mailbox, "1:$max"); 
    313451      $a_msg_headers = array(); 
    314        
     452 
    315453      if (!empty($a_header_index)) 
    316                 foreach ($a_header_index as $i => $headers) 
    317                         if (!$headers->deleted) 
    318                                 $a_msg_headers[$headers->uid] = $headers; 
    319          
    320 // print "/**** fetch headers ****/\n"; 
     454        foreach ($a_header_index as $i => $headers) 
     455          if (!$headers->deleted) 
     456            $a_msg_headers[$headers->uid] = $headers; 
    321457      } 
    322458    else 
     
    346482    return array_slice($a_headers, $start_msg, $this->page_size); 
    347483    } 
    348  
     484   
    349485 
    350486  // return sorted array of message UIDs 
     
    669805    $a_mailbox_cache = $this->get_cache('mailboxes'); 
    670806     
    671     if (strlen($this->root_ns)) 
    672       $abs_name = $this->root_ns.$abs_name; 
     807    //if (strlen($this->root_ns)) 
     808    //  $abs_name = $this->root_ns.$abs_name; 
    673809 
    674810    if (strlen($abs_name) && (!is_array($a_mailbox_cache) || !in_array($abs_name, $a_mailbox_cache))) 
     
    677813    // update mailboxlist cache 
    678814    if ($result && $subscribe) 
    679       $this->subscribe($this->root_ns.$name); 
    680  
    681     return $result ? $this->root_ns.$name : FALSE; 
     815      $this->subscribe($name); 
     816 
     817    return $result ? $name : FALSE; 
    682818    } 
    683819 
     
    9361072  function _mod_mailbox($mbox, $mode='in') 
    9371073    { 
    938     if (!empty($this->root_dir) && $mode=='in') 
     1074    if (!empty($this->root_ns) && $this->root_ns == $mbox) 
     1075      return $mbox; 
     1076 
     1077    if (!empty($this->root_dir) &&  $mode=='in')  
    9391078      $mbox = $this->root_dir.$this->delimiter.$mbox; 
    940     else if (strlen($this->root_dir) && $mode=='out') 
     1079    else if (strlen($this->root_dir) && $mode=='out')  
    9411080      $mbox = substr($mbox, strlen($this->root_dir)+1); 
    9421081 
  • program/js/app.js

    r9fee0ed r7902df4  
    205205    // flag object as complete 
    206206    this.loaded = true; 
    207        
     207           
    208208    // show message 
    209209    if (this.pending_message) 
  • program/steps/mail/compose.inc

    r09941ea r7902df4  
    510510                       rcube_label('high'), 
    511511                       rcube_label('highest')), 
    512                  array(1, 2, 0, 4, 5)); 
     512                 array(5, 4, 0, 2, 1)); 
    513513                  
    514514  $sel = isset($_POST['_priority']) ? $_POST['_priority'] : 0; 
  • program/steps/mail/func.inc

    r1038d554 r7902df4  
    199199  foreach ($arrFolders as $key=>$folder) 
    200200    { 
     201    $folder_lc = strtolower($folder['id']); 
     202    if (in_array($folder_lc, $special)) 
     203      $foldername = rcube_label($folder_lc); 
     204    else 
     205      $foldername = $folder['name']; 
     206 
    201207    // shorten the folder name to a given length 
    202208    if ($maxlength && $maxlength>1) 
    203       $foldername = abbrevate_string($folder['name'], $maxlength); 
    204     else 
    205       $foldername = $folder['name']; 
     209      $foldername = abbrevate_string($foldername, $maxlength); 
    206210 
    207211    $out .= sprintf('<option value="%s">%s%s</option>'."\n", 
     
    304308        $cont = rep_specialchars_output(rcmail_address_string($header->$col, 3, $attrib['addicon'])); 
    305309      else if ($col=='subject') 
    306         $cont = rep_specialchars_output($IMAP->decode_header($header->$col)); 
     310        $cont = rep_specialchars_output($IMAP->decode_header($header->$col), 'html', 'all'); 
    307311      else if ($col=='size') 
    308312        $cont = show_bytes($header->$col); 
     
    310314        $cont = format_date($header->date); //date('m.d.Y G:i:s', strtotime($header->date)); 
    311315      else 
    312         $cont = rep_specialchars_output($header->$col); 
     316        $cont = rep_specialchars_output($header->$col, 'html', 'all'); 
    313317         
    314318          $out .= '<td class="'.$col.'">' . $cont . "</td>\n"; 
     
    378382        $cont = rep_specialchars_output(rcmail_address_string($header->$col, 3)); 
    379383      else if ($col=='subject') 
    380         $cont = rep_specialchars_output($IMAP->decode_header($header->$col)); 
     384        $cont = rep_specialchars_output($IMAP->decode_header($header->$col), 'html', 'all'); 
    381385      else if ($col=='size') 
    382386        $cont = show_bytes($header->$col); 
     
    384388        $cont = format_date($header->date); //date('m.d.Y G:i:s', strtotime($header->date)); 
    385389      else 
    386         $cont = rep_specialchars_output($header->$col); 
     390        $cont = rep_specialchars_output($header->$col, 'html', 'all'); 
    387391           
    388392      $a_msg_cols[$col] = $cont; 
  • program/steps/mail/move_del.inc

    r09941ea r7902df4  
    6666$commands .= sprintf("this.set_env('pagecount', %d);\n", $pages); 
    6767 
    68    
     68 
    6969// update mailboxlist 
    7070$mbox = $IMAP->get_mailbox_name(); 
    7171$commands .= sprintf("this.set_unread_count('%s', %d);\n", $mbox, $IMAP->messagecount($mbox, 'UNSEEN')); 
    72 $commands .= sprintf("this.set_unread_count('%s', %d);\n", $_GET['_target_mbox'], $IMAP->messagecount($_GET['_target_mbox'], 'UNSEEN')); 
     72 
     73if ($_action=='moveto') 
     74  $commands .= sprintf("this.set_unread_count('%s', %d);\n", $_GET['_target_mbox'], $IMAP->messagecount($_GET['_target_mbox'], 'UNSEEN')); 
    7375 
    7476 
  • skins/default/addresses.css

    r4e17e6c r7902df4  
    55{ 
    66  position: absolute; 
    7   top: 32px; 
     7  top: 45px; 
    88  left: 200px; 
    99  height: 35px; 
     
    1818{ 
    1919  position: absolute; 
    20   top: 50px; 
     20  top: 60px; 
    2121  left: 490px; 
    2222  width: 200px; 
     
    3535{ 
    3636  position: absolute; 
    37   top: 75px; 
     37  top: 85px; 
    3838  left: 20px; 
    3939  width: 450px; 
    40   bottom: 60px; 
     40  bottom: 40px; 
    4141  border: 1px solid #999999; 
    4242  background-color: #F9F9F9; 
     
    6464{ 
    6565  position: absolute; 
    66   top: 75px; 
     66  top: 85px; 
    6767  left: 490px; 
    6868  right: 40px; 
    69   bottom: 60px; 
     69  bottom: 40px; 
    7070  border: 1px solid #999999; 
    7171  overflow: hidden; 
  • skins/default/common.css

    r4e17e6c r7902df4  
    44{ 
    55  margin: 8px; 
    6   background-color: #F2F2F2; /* #EBEBEB; */ 
     6  background-color: #F6F6F6; /* #EBEBEB; */ 
    77  color: #000000; 
    88} 
     
    104104#header 
    105105{ 
    106 /* margin: 10px auto; */ 
     106  position: absolute; 
     107  top: 10px; 
     108  left: 20px; 
    107109  width: 170px; 
    108110  height: 40px; 
    109   margin-top: 0px; 
    110   margin-left: 10px; 
    111 /* border: 1px solid #cccccc;  */ 
    112 } 
    113  
    114 #footer 
    115 { 
    116   position: fixed !important; 
    117   left: 0px; 
     111  z-index: 100; 
     112} 
     113 
     114#taskbar 
     115{ 
     116  position: absolute; 
     117  top: 0px; 
    118118  right: 0px; 
    119   bottom: 0px !important; 
    120   height: 40px; 
    121   background-color: #f2f2f2; 
    122  
    123   /* css hack for IE */ 
    124   position: absolute; 
    125   bottom: auto; 
    126   top: expression((parseInt(document.documentElement.clientHeight)+parseInt(document.documentElement.scrollTop)-42)+'px'); 
    127   width: expression(parseInt(document.documentElement.clientWidth)+'px'); 
    128 } 
    129  
    130 #taskbar 
    131 { 
    132   margin: 0px auto; 
    133   width: 400px; 
    134   height: 34px; 
    135   padding: 3px; 
    136   text-align: center; 
    137   border: 1px solid #cccccc;   
    138 } 
    139  
    140 #taskbar a 
    141 { 
    142   padding-right: 10px; 
     119  width: 600px; 
     120  height: 37px; 
     121  background: url(images/taskbar.gif) top right no-repeat; 
     122  padding: 10px 24px 0px 0px; 
     123  text-align: right; 
     124  white-space: nowrap; 
     125  z-index: 2; 
     126} 
     127 
     128#taskbar a, 
     129#taskbar a:active, 
     130#taskbar a:visited 
     131{ 
     132  font-size: 11px; 
     133  color: #666666; 
     134  text-decoration: none; 
     135  padding: 6px 16px 6px 30px; 
     136  background-repeat: no-repeat; 
     137} 
     138 
     139#taskbar a:hover 
     140{ 
     141  color: #333333; 
     142} 
     143 
     144a.button-mail 
     145{ 
     146  background-image: url(images/buttons/mail.gif); 
     147} 
     148 
     149a.button-addressbook 
     150{ 
     151  background-image: url(images/buttons/addressbook.gif); 
     152} 
     153 
     154a.button-settings 
     155{ 
     156  background-image: url(images/buttons/settings.gif); 
     157} 
     158 
     159a.button-logout 
     160{ 
     161  background-image: url(images/buttons/logout.gif); 
    143162} 
    144163 
     
    148167  position: absolute; 
    149168  display: none; 
    150   top: 0px; 
     169  top: -1px; 
    151170  left: 200px; 
    152171  right: 200px; 
     
    158177  width: 400px; 
    159178  margin: 0px auto; 
    160   height: 22px; 
    161   min-height: 22px; 
     179  height: 24px; 
     180  min-height: 24px; 
    162181  padding: 8px 10px 8px 46px; 
    163182} 
     
    189208{ 
    190209  background: url(images/display/loading.gif) 6px 3px no-repeat; 
    191   background-color: #EFEFEF; 
     210  background-color: #EBEBEB; 
    192211  border: 1px solid #CCCCCC; 
    193212} 
  • skins/default/includes/header.html

    r4e17e6c r7902df4  
    1 <div id="header"><img src="/images/roundcube_logo.png" width="165" height="55" alt="RoundCube Webmail" /></div> 
     1<div id="taskbar"> 
     2<roundcube:button command="mail" label="mail" class="button-mail" /> 
     3<roundcube:button command="addressbook" label="addressbook" class="button-addressbook" /> 
     4<roundcube:button command="settings" label="settings" class="button-settings" /> 
     5<roundcube:button command="logout" label="logout" class="button-logout" /> 
     6</div> 
     7 
     8<div id="header"><roundcube:button command="mail" image="/images/roundcube_logo.png" alt="RoundCube Webmail" width="165" height="55" /></div> 
    29 
    310<roundcube:object name="message" id="message" /> 
  • skins/default/includes/taskbar.html

    r4e17e6c r7902df4  
    1 <div id="footer"> 
    2 <div id="taskbar"> 
    3 <roundcube:button command="mail" image="/images/buttons/mail.png" title="mail" width="32" height="32" /> 
    4 <roundcube:button command="addressbook" image="/images/buttons/addressbook.png" title="addressbook" width="32" height="32" /> 
    5 <roundcube:button command="settings" image="/images/buttons/settings.png" title="settings" width="32" height="32" /> 
    6 <roundcube:button command="logout" image="/images/buttons/logout.png" title="logout" width="32" height="32" /> 
    7 </div> 
    8 </div> 
    91 
    102<!-- 
  • skins/default/mail.css

    rcd900dd r7902df4  
    55{ 
    66  position: absolute; 
    7   top: 20px; 
     7  top: 45px; 
    88  left: 200px; 
    99  right: 250px; 
     
    4545  position: absolute; 
    4646  left: 200px; 
    47   bottom: 60px; 
     47  bottom: 20px; 
    4848  height: 16px; 
    4949  width: 400px; 
     
    7474{ 
    7575  position: absolute; 
    76   top: 35px; 
    77   right: 60px; 
     76  top: 60px; 
     77  right: 40px; 
    7878  width: 250px; 
    7979  height: 20px; 
     
    9999{ 
    100100  position: absolute; 
    101   top: 60px; 
     101  top: 85px; 
    102102  left: 200px; 
    103103  right: 40px; 
    104   bottom: 80px; 
     104  bottom: 40px; 
    105105  border: 1px solid #999999; 
    106106  background-color: #F9F9F9; 
     
    161161{ 
    162162  position: absolute; 
    163   top: 80px; 
     163  top: 85px; 
    164164  left: 20px; 
    165165  width: 140px !important; 
     
    178178{ 
    179179  position: absolute; 
    180   top: 100px; 
     180  top: 105px; 
    181181  left: 20px; 
    182182  width: 160px; 
    183   bottom: 80px; 
     183  bottom: 40px; 
    184184  border: 1px solid #CCCCCC; 
    185185  background-color: #F9F9F9; 
     
    404404{ 
    405405  position: absolute; 
    406   top: 70px; 
     406  top: 85px; 
    407407  left: 200px; 
    408408  right: 40px; 
    409409  /* css hack for IE */ 
    410   margin-bottom: 50px; 
     410  margin-bottom: 10px; 
    411411  width: expression(document.body.clientWidth-240); 
    412412} 
     
    477477  min-height: 300px; 
    478478  margin-top: 10px; 
    479   margin-bottom: 50px; 
     479  margin-bottom: 10px; 
    480480  background-color: #FFFFFF; 
    481481  border: 1px solid #cccccc; 
     
    536536{ 
    537537  position: absolute; 
    538   top: 70px; 
     538  top: 90px; 
    539539  left: 200px; 
    540540  right: 40px; 
    541   bottom: 60px; 
     541  bottom: 20px; 
    542542  padding: 0px; 
    543543  margin: 0px; 
  • skins/default/settings.css

    r61bda79 r7902df4  
    55{ 
    66  position: absolute; 
    7   top: 42px; 
     7  top: 45px; 
    88  left: 220px; 
    99  right: 60px; 
     
    121121  width: 500px; 
    122122  margin-top: 20px; 
    123   margin-bottom: 50px; 
     123  margin-bottom: 20px; 
    124124  border: 1px solid #999999; 
    125125} 
  • skins/default/templates/login.html

    r4e17e6c r7902df4  
    88#login-form 
    99  { 
    10         margin: 50px auto; 
     10        margin: 150px auto; 
    1111        width: 350px; 
    1212  } 
     
    1616<body> 
    1717 
    18 <roundcube:include file="/includes/header.html" /> 
     18<div id="header"><img src="skins/default/images/roundcube_logo.png" id="rcmbtn104" width="165" height="55" border="0" alt="RoundCube Webmail" /></div> 
     19 
     20<roundcube:object name="message" id="message" /> 
    1921 
    2022<div id="login-form"> 
Note: See TracChangeset for help on using the changeset viewer.