Fix bug where clicking date column with 'arrival' sorting would switch to sorting by 'date' (#1490126)

pull/297/head
Aleksander Machniak 9 years ago
parent dd7db21797
commit c49234bd78

@ -29,6 +29,7 @@ CHANGELOG Roundcube Webmail
- Plugin API: Added message_ready hook - Plugin API: Added message_ready hook
- Plugin API: Add special onload() method to execute plugin actions before startup (session and GUI initialization) - Plugin API: Add special onload() method to execute plugin actions before startup (session and GUI initialization)
- Implemented UI element to jump to specified page of the messages list (#1485235) - Implemented UI element to jump to specified page of the messages list (#1485235)
- Fix bug where clicking date column with 'arrival' sorting would switch to sorting by 'date' (#1490126)
- Fix bug where message content could overlap attachments list in Larry skin (#1490479) - Fix bug where message content could overlap attachments list in Larry skin (#1490479)
- Fix closing of nested menus (#1490443) - Fix closing of nested menus (#1490443)
- Fix so microseconds macro (u) in log_date_format works (#1490446) - Fix so microseconds macro (u) in log_date_format works (#1490446)

@ -2175,10 +2175,16 @@ function rcube_webmail()
this.set_list_sorting = function(sort_col, sort_order) this.set_list_sorting = function(sort_col, sort_order)
{ {
var sort_old = this.env.sort_col == 'arrival' ? 'date' : this.env.sort_col,
sort_new = sort_col == 'arrival' ? 'date' : sort_col;
// set table header class // set table header class
$('#rcm'+this.env.sort_col).removeClass('sorted'+(this.env.sort_order.toUpperCase())); $('#rcm' + sort_old).removeClass('sorted' + this.env.sort_order.toUpperCase());
if (sort_col) if (sort_new)
$('#rcm'+sort_col).addClass('sorted'+sort_order); $('#rcm' + sort_new).addClass('sorted' + sort_order);
// if sorting by 'arrival' is selected, click on date column should not switch to 'date'
$('#rcmdate > a').prop('rel', sort_col == 'arrival' ? 'arrival' : 'date');
this.env.sort_col = sort_col; this.env.sort_col = sort_col;
this.env.sort_order = sort_order; this.env.sort_order = sort_order;

@ -453,6 +453,8 @@ function rcmail_js_message_list($a_headers, $insert_top=false, $a_show_cols=null
} }
} }
$sort_col = $_SESSION['sort_col'];
// loop through message headers // loop through message headers
foreach ($a_headers as $header) { foreach ($a_headers as $header) {
if (empty($header)) if (empty($header))
@ -483,7 +485,7 @@ function rcmail_js_message_list($a_headers, $insert_top=false, $a_show_cols=null
else if ($col == 'size') else if ($col == 'size')
$cont = $RCMAIL->show_bytes($header->$col); $cont = $RCMAIL->show_bytes($header->$col);
else if ($col == 'date') else if ($col == 'date')
$cont = $RCMAIL->format_date($header->date); $cont = $RCMAIL->format_date($sort_col == 'arrival' ? $header->internaldate : $header->date);
else if ($col == 'folder') { else if ($col == 'folder') {
if ($last_folder !== $header->folder) { if ($last_folder !== $header->folder) {
$last_folder = $header->folder; $last_folder = $header->folder;
@ -588,8 +590,9 @@ function rcmail_message_list_head($attrib, $a_show_cols)
} }
foreach ($a_show_cols as $col) { foreach ($a_show_cols as $col) {
$label = ''; $label = '';
$sortable = false; $sortable = false;
$rel_col = $col == 'date' && $sort_col == 'arrival' ? 'arrival' : $col;
// get column name // get column name
switch ($col) { switch ($col) {
@ -607,11 +610,11 @@ function rcmail_message_list_head($attrib, $a_show_cols)
$col_name = $list_menu; $col_name = $list_menu;
break; break;
case 'fromto': case 'fromto':
$label = $RCMAIL->gettext($smart_col); $label = $RCMAIL->gettext($smart_col);
$col_name = rcube::Q($label); $col_name = rcube::Q($label);
break; break;
default: default:
$label = $RCMAIL->gettext($col); $label = $RCMAIL->gettext($col);
$col_name = rcube::Q($label); $col_name = rcube::Q($label);
} }
@ -621,7 +624,7 @@ function rcmail_message_list_head($attrib, $a_show_cols)
$col_name = html::a(array( $col_name = html::a(array(
'href' => "./#sort", 'href' => "./#sort",
'class' => 'sortcol', 'class' => 'sortcol',
'rel' => $col, 'rel' => $rel_col,
'title' => $RCMAIL->gettext('sortby') 'title' => $RCMAIL->gettext('sortby')
), $col_name); ), $col_name);
} }
@ -629,7 +632,7 @@ function rcmail_message_list_head($attrib, $a_show_cols)
$col_name = '<span class="' . $col .'">' . $col_name . '</span>'; $col_name = '<span class="' . $col .'">' . $col_name . '</span>';
} }
$sort_class = $col == $sort_col && !$disabled_order ? " sorted$sort_order" : ''; $sort_class = $rel_col == $sort_col && !$disabled_order ? " sorted$sort_order" : '';
$class_name = $col.$sort_class; $class_name = $col.$sort_class;
// put it all together // put it all together

Loading…
Cancel
Save