thomascube
2007-05-17 41bece1a1adffb524daa2203dfb91211f63989d8
Add link to message subjects (#1484257); don't make selected list items bold; remove duplicate function

8 files modified
92 ■■■■ changed files
program/include/main.inc 30 ●●●●● patch | view | raw | blame | history
program/include/rcmail_template.inc 4 ●●●● patch | view | raw | blame | history
program/js/list.js 7 ●●●●● patch | view | raw | blame | history
program/steps/addressbook/func.inc 4 ●●●● patch | view | raw | blame | history
program/steps/addressbook/mailto.inc 2 ●●● patch | view | raw | blame | history
program/steps/mail/func.inc 28 ●●●●● patch | view | raw | blame | history
skins/default/common.css 2 ●●●●● patch | view | raw | blame | history
skins/default/mail.css 15 ●●●●● patch | view | raw | blame | history
program/include/main.inc
@@ -753,8 +753,15 @@
  }
// compose a URL to the given action
function rcmail_self_url($action, $p=array(), $task=null)
/**
 * Compose an URL for a specific action
 *
 * @param string  Request action
 * @param array   More URL parameters
 * @param string  Request task (omit if the same)
 * @return The application URL
 */
function rcmail_url($action, $p=array(), $task=null)
{
  global $MAIN_TASKS, $COMM_PATH;
  $qstring = '';
@@ -1120,25 +1127,6 @@
function strip_newlines($str)
{
  return preg_replace('/[\r\n]/', '', $str);
}
/**
 * Compose an URL for a specific action
 *
 * @param string Request action
 * @param array  More URL parameters
 * @return The application URL
 */
function rcmail_url($action, $param=NULL)
{
  $url = $GLOBALS['COMM_PATH'] . '&'.$action;
  if (is_array($param))
    foreach ($param as $p => $val)
      $url .= sprintf('&%s=%s', urlencode($p), urlencode($val));
  return $url;
}
program/include/rcmail_template.inc
@@ -563,9 +563,9 @@
      // make valid href to specific buttons
      if (in_array($attrib['command'], $MAIN_TASKS))
        $attrib['href'] = Q(rcmail_self_url(null, null, $attrib['command']));
        $attrib['href'] = Q(rcmail_url(null, null, $attrib['command']));
      else if (in_array($attrib['command'], $a_static_commands))
        $attrib['href'] = Q(rcmail_self_url($attrib['command']));
        $attrib['href'] = Q(rcmail_url($attrib['command']));
    }
    // overwrite attributes
program/js/list.js
@@ -584,7 +584,7 @@
  
    // get subjects of selectedd messages
    var names = '';
    var c, subject, obj;
    var c, node, subject, obj;
    for(var n=0; n<this.selection.length; n++)
    {
      if (n>12)  // only show 12 lines
@@ -599,10 +599,11 @@
        subject = '';
        for(c=0; c<obj.childNodes.length; c++)
          if (!subject && obj.childNodes[c].nodeName=='TD' && obj.childNodes[c].firstChild && obj.childNodes[c].firstChild.nodeType==3)
          if (obj.childNodes[c].nodeName=='TD' && (node = obj.childNodes[c].firstChild) && (node.nodeType==3 || node.nodeName=='A'))
          {
            subject = obj.childNodes[c].firstChild.data;
            subject = node.nodeType==3 ? node.data : node.innerHTML;
            names += (subject.length > 50 ? subject.substring(0, 50)+'...' : subject) + '<br />';
            break;
          }
      }
    }
program/steps/addressbook/func.inc
@@ -71,7 +71,7 @@
  $out .= sprintf($line_templ,
    'rcmli'.$local_id,
    !$current ? 'selected' : '',
    Q(rcmail_self_url('list', array('_source' => 0))),
    Q(rcmail_url('list', array('_source' => 0))),
    JS_OBJECT_NAME,
    $local_id,
    JS_OBJECT_NAME,
@@ -89,7 +89,7 @@
    $out .= sprintf($line_templ,
      'rcmli'.$dom_id,
      $current == $id ? 'selected' : '',
      Q(rcmail_self_url('list', array('_source' => $id))),
      Q(rcmail_url('list', array('_source' => $id))),
      JS_OBJECT_NAME,
      $js_id,
      JS_OBJECT_NAME,
program/steps/addressbook/mailto.inc
@@ -36,7 +36,7 @@
  $mailto_str = join(', ', $mailto);
  $mailto_id = substr(md5($mailto_str), 0, 16);
  $_SESSION['mailto'][$mailto_id] = $mailto_str;
  $OUTPUT->command('redirect', rcmail_self_url('compose', array('_mailto' => $mailto_id), 'mail'));
  $OUTPUT->command('redirect', rcmail_url('compose', array('_mailto' => $mailto_id), 'mail'));
}
else
  $OUTPUT->show_message('nocontactsfound', 'warning');
program/steps/mail/func.inc
@@ -58,7 +58,7 @@
// define url for getting message parts
if (strlen($_GET['_uid']))
  $GET_URL = sprintf('%s&_action=get&_mbox=%s&_uid=%d', $COMM_PATH, $IMAP->get_mailbox_name(), get_input_value('_uid', RCUBE_INPUT_GET));
  $GET_URL = rcmail_url('get', array('_mbox'=>$IMAP->get_mailbox_name(), '_uid'=>get_input_value('_uid', RCUBE_INPUT_GET)));
// set current mailbox in client environment
@@ -233,7 +233,7 @@
                    $zebra_class,
                    $unread_count ? ' unread' : '',
                    $folder['id']==$mbox_name ? ' selected' : '',
                    Q(rcmail_self_url('', array('_mbox' => $folder['id']))),
                    Q(rcmail_url('', array('_mbox' => $folder['id']))),
                    JS_OBJECT_NAME,
                    $js_name,
                    JS_OBJECT_NAME,
@@ -323,9 +323,11 @@
  // 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', 'size');
  $mbox = $IMAP->get_mailbox_name();
  
  // show 'to' instead of from in sent messages
  if (($IMAP->get_mailbox_name()==$CONFIG['sent_mbox'] || $IMAP->get_mailbox_name()==$CONFIG['drafts_mbox']) && ($f = array_search('from', $a_show_cols))
  if (($mbox==$CONFIG['sent_mbox'] || $mbox==$CONFIG['drafts_mbox']) && ($f = array_search('from', $a_show_cols))
      && !array_search('to', $a_show_cols))
    $a_show_cols[$f] = 'to';
  
@@ -382,11 +384,12 @@
      // just add a link tag to the header
      else
        {
        $col_name = sprintf('<a href="./#sort" onclick="return %s.command(\'sort\',\'%s\',this)" title="%s">%s</a>',
                            JS_OBJECT_NAME,
                            $col,
                            rcube_label('sortby'),
                            $col_name);
        $col_name = sprintf(
          '<a href="./#sort" onclick="return %s.command(\'sort\',\'%s\',this)" title="%s">%s</a>',
          JS_OBJECT_NAME,
          $col,
          rcube_label('sortby'),
          $col_name);
        }
      }
      
@@ -453,8 +456,11 @@
        $cont = Q(rcmail_address_string($header->$col, 3, $attrib['addicon']), 'show');
      else if ($col=='subject')
        {
        $action = $mbox==$CONFIG['drafts_mbox'] ? 'compose' : 'show';
        $uid_param = $mbox==$CONFIG['drafts_mbox'] ? '_draf_uid' : '_uid';
        $cont = Q(rcube_imap::decode_mime_string($header->$col, $header->charset));
        if (empty($cont)) $cont = Q(rcube_label('nosubject'));
        $cont = sprintf('<a href="%s" onclick="return false">%s</a>', Q(rcmail_url($action, array($uid_param=>$header->uid, '_mbox'=>$mbox))), $cont);
        }
      else if ($col=='size')
        $cont = show_bytes($header->$col);
@@ -513,9 +519,10 @@
  global $CONFIG, $IMAP, $OUTPUT;
  $a_show_cols = is_array($CONFIG['list_cols']) ? $CONFIG['list_cols'] : array('subject');
  $mbox = $IMAP->get_mailbox_name();
  // show 'to' instead of from in sent messages
  if (($IMAP->get_mailbox_name() == $CONFIG['sent_mbox'] || $IMAP->get_mailbox_name() == $CONFIG['drafts_mbox'])
  if (($mbox == $CONFIG['sent_mbox'] || $mbox == $CONFIG['drafts_mbox'])
      && (($f = array_search('from', $a_show_cols)) !== false) && array_search('to', $a_show_cols) === false)
    $a_show_cols[$f] = 'to';
@@ -535,8 +542,11 @@
        $cont = Q(rcmail_address_string($header->$col, 3), 'show');
      else if ($col=='subject')
        {
        $action = $mbox==$CONFIG['drafts_mbox'] ? 'compose' : 'show';
        $uid_param = $mbox==$CONFIG['drafts_mbox'] ? '_draf_uid' : '_uid';
        $cont = Q(rcube_imap::decode_mime_string($header->$col, $header->charset));
        if (!$cont) $cont = Q(rcube_label('nosubject'));
        $cont = sprintf('<a href="%s" onclick="return false">%s</a>', Q(rcmail_url($action, array($uid_param=>$header->uid, '_mbox'=>$mbox))), $cont);
        }
      else if ($col=='size')
        $cont = show_bytes($header->$col);
skins/default/common.css
@@ -289,7 +289,6 @@
table.records-table tr.selected td
{
  font-weight: bold;
  color: #FFFFFF;
  background-color: #CC3333;
}
@@ -300,7 +299,6 @@
table.records-table tr.unfocused td
{
  font-weight: bold;
  color: #FFFFFF;
  background-color: #929292;
}
skins/default/mail.css
@@ -396,7 +396,7 @@
}
#messagelist thead tr td a,
#messagelist thead tr td a:hover
#messagelist tbody tr td a
{
  display: block;
  width: auto !important;
@@ -416,6 +416,11 @@
  text-overflow: ellipsis;
  border-bottom: 1px solid #EBEBEB;
  cursor: pointer;
}
#messagelist tbody tr td a
{
  color: #000;
}
#messagelist col
@@ -477,29 +482,27 @@
#messagelist tr.selected td
{
  font-weight: bold;
  color: #FFFFFF;
  background-color: #CC3333;
}
#messagelist tr.unfocused td
{
  font-weight: bold;
  color: #FFFFFF;
  background-color: #929292;
}
#messagelist tr.selected td a.rcmContactAddress
#messagelist tr.selected td a
{
  color: #FFFFFF;
}
#messagelist tr.unfocused td a.rcmContactAddress
#messagelist tr.unfocused td a
{
  color: #FFFFFF;
}
#messagelist tr.deleted td a.rcmContactAddress
#messagelist tr.deleted td a
{
  color: #CCCCCC;
}