CHANGELOG | ●●●●● patch | view | raw | blame | history | |
config/main.inc.php.dist | ●●●●● patch | view | raw | blame | history | |
program/include/main.inc | ●●●●● patch | view | raw | blame | history | |
program/js/app.js | ●●●●● patch | view | raw | blame | history | |
program/steps/mail/func.inc | ●●●●● patch | view | raw | blame | history | |
skins/default/templates/mail.html | ●●●●● patch | view | raw | blame | history |
CHANGELOG
@@ -1,6 +1,11 @@ CHANGELOG RoundCube Webmail --------------------------- 2008/11/23 (alec) ---------- - Allow setting attachment col position in 'list_cols' option - Allow override 'list_cols' via skin (#1485577) 2008/11/21 (alec) ---------- - Fix 'cache' table cleanup on session destroy (#1485516) config/main.inc.php.dist
@@ -110,9 +110,9 @@ // How many seconds must pass between emails sent by a user $rcmail_config['sendmail_delay'] = 0; // These cols are shown in the message list // available cols are: subject, from, to, cc, replyto, date, size, encoding, flag $rcmail_config['list_cols'] = array('subject', 'from', 'date', 'size', 'flag'); // These cols are shown in the message list. Available cols are: // subject, from, to, cc, replyto, date, size, encoding, flag, attachment $rcmail_config['list_cols'] = array('subject', 'from', 'date', 'size', 'flag', 'attachment'); // Includes should be interpreted as PHP files $rcmail_config['skin_include_php'] = FALSE; program/include/main.inc
@@ -661,7 +661,7 @@ function parse_attrib_string($str) { $attrib = array(); preg_match_all('/\s*([-_a-z]+)=(["\'])??(?(2)([^\2]+)\2|(\S+?))/Ui', stripslashes($str), $regs, PREG_SET_ORDER); preg_match_all('/\s*([-_a-z]+)=(["\'])??(?(2)([^\2]*)\2|(\S+?))/Ui', stripslashes($str), $regs, PREG_SET_ORDER); // convert attributes to an associative array (name => value) if ($regs) program/js/app.js
@@ -565,7 +565,7 @@ var sort_col = a_sort[0]; var sort_order = a_sort[1] ? a_sort[1].toUpperCase() : null; var header; // no sort order specified: toggle if (sort_order==null) { @@ -579,9 +579,9 @@ break; // set table header class if (header = document.getElementById('rcmHead'+this.env.sort_col)) if (header = document.getElementById('rcm'+this.env.sort_col)) this.set_classname(header, 'sorted'+(this.env.sort_order.toUpperCase()), false); if (header = document.getElementById('rcmHead'+sort_col)) if (header = document.getElementById('rcm'+sort_col)) this.set_classname(header, 'sorted'+sort_order, true); // save new sort properties @@ -3427,7 +3427,7 @@ else cell.innerHTML = this.get_label(this.coltypes[n]); cell.id = 'rcmHead'+col; cell.id = 'rcm'+col; } else if (col == 'subject' && this.message_list) this.message_list.subject_col = n+1; @@ -3498,17 +3498,14 @@ col.innerHTML = '<img src="'+this.env.flaggedicon+'" alt="" />'; else if(this.env.unflaggedicon) col.innerHTML = '<img src="'+this.env.unflaggedicon+'" alt="" />'; } } else if (c=='attachment') col.innerHTML = attachment && this.env.attachmenticon ? '<img src="'+this.env.attachmenticon+'" alt="" />' : ''; else col.innerHTML = cols[c]; row.appendChild(col); } col = document.createElement('TD'); col.className = 'icon'; col.innerHTML = attachment && this.env.attachmenticon ? '<img src="'+this.env.attachmenticon+'" alt="" />' : ''; row.appendChild(col); this.message_list.insert_row(row, attop); program/steps/mail/func.inc
@@ -114,8 +114,16 @@ $out = '<table' . $attrib_str . ">\n"; // define list of cols to be displayed $a_show_cols = is_array($CONFIG['list_cols']) ? $CONFIG['list_cols'] : array('subject'); // define list of cols to be displayed based on parameter or config if (empty($attrib['columns'])) $a_show_cols = is_array($CONFIG['list_cols']) ? $CONFIG['list_cols'] : array('subject'); else $a_show_cols = explode(',', strip_quotes($attrib['columns'])); // store column list in a session-variable $_SESSION['list_columns'] = $a_show_cols; // define sortable columns $a_sort_cols = array('subject', 'date', 'from', 'to', 'size'); $mbox = $IMAP->get_mailbox_name(); @@ -130,9 +138,8 @@ $out .= '<col class="icon" />'; foreach ($a_show_cols as $col) $out .= sprintf('<col class="%s" />', $col); $out .= ($col!='attachment') ? sprintf('<col class="%s" />', $col) : '<col class="icon" />'; $out .= '<col class="icon" />'; $out .= "</colgroup>\n"; // add table title @@ -142,7 +149,17 @@ foreach ($a_show_cols as $col) { // get column name $col_name = $col != 'flag' ? Q(rcube_label($col)) : sprintf($image_tag, $skin_path, $attrib['unflaggedicon'], ''); switch ($col) { case 'flag': $col_name = sprintf($image_tag, $skin_path, $attrib['unflaggedicon'], ''); break; case 'attachment': $col_name = sprintf($image_tag, $skin_path, $attrib['attachmenticon'], ''); break; default: $col_name = Q(rcube_label($col)); } // make sort links $sort = ''; @@ -190,10 +207,12 @@ $sort_class = $col==$sort_col ? " sorted$sort_order" : ''; // put it all together $out .= '<td class="'.$col.$sort_class.'" id="rcmHead'.$col.'">' . "$col_name$sort</td>\n"; if ($col!='attachment') $out .= '<td class="'.$col.$sort_class.'" id="rcm'.$col.'">' . "$col_name$sort</td>\n"; else $out .= '<td class="icon" id="rcm'.$col.'">' . "$col_name$sort</td>\n"; } $out .= '<td class="icon">'.($attrib['attachmenticon'] ? sprintf($image_tag, $skin_path, $attrib['attachmenticon'], '') : ' ')."</td>\n"; $out .= "</tr></thead>\n<tbody>\n"; // no messages in this mailbox @@ -283,10 +302,12 @@ else $cont = Q($header->$col); $out .= '<td class="'.$col.'">' . $cont . "</td>\n"; if ($col!='attachment') $out .= '<td class="'.$col.'">' . $cont . "</td>\n"; else $out .= sprintf("<td class=\"icon\">%s</td>\n", $attach_icon ? sprintf($image_tag, $skin_path, $attach_icon, '') : ''); } $out .= sprintf("<td class=\"icon\">%s</td>\n", $attach_icon ? sprintf($image_tag, $skin_path, $attach_icon, '') : ''); $out .= "</tr>\n"; if (sizeof($js_row_arr)) @@ -342,7 +363,11 @@ { global $CONFIG, $IMAP, $OUTPUT; $a_show_cols = is_array($CONFIG['list_cols']) ? $CONFIG['list_cols'] : array('subject'); if (empty($_SESSION['list_columns'])) $a_show_cols = is_array($CONFIG['list_cols']) ? $CONFIG['list_cols'] : array('subject'); else $a_show_cols = $_SESSION['list_columns']; $mbox = $IMAP->get_mailbox_name(); // show 'to' instead of from in sent messages @@ -364,6 +389,12 @@ if (!empty($header->charset)) $IMAP->set_charset($header->charset); // remove 'attachment' and 'flag' columns, we don't need them here if(($key = array_search('attachment', $a_show_cols)) !== FALSE) unset($a_show_cols[$key]); if(($key = array_search('flag', $a_show_cols)) !== FALSE) unset($a_show_cols[$key]); // format each col; similar as in rcmail_message_list() foreach ($a_show_cols as $col) { skins/default/templates/mail.html
@@ -46,6 +46,7 @@ <roundcube:object name="messages" id="messagelist" cellspacing="0" columns="" summary="Message list" messageIcon="/images/icons/dot.png" unreadIcon="/images/icons/unread.png"