sort combined private mail conversations by latest updated conversation instead of created parent
This commit is contained in:
parent
5dad444026
commit
c8dbcf8a2a
@ -28,6 +28,8 @@ class Conversations {
|
||||
|
||||
require_once('include/message.php');
|
||||
|
||||
$o = '';
|
||||
|
||||
// private_messages_list() can do other more complicated stuff, for now keep it simple
|
||||
$r = private_messages_list(local_channel(), $mailbox, \App::$pager['start'], \App::$pager['itemspage']);
|
||||
|
||||
@ -36,13 +38,13 @@ class Conversations {
|
||||
return $o;
|
||||
}
|
||||
|
||||
$messages = array();
|
||||
$messages = [];
|
||||
|
||||
foreach($r as $rr) {
|
||||
|
||||
$selected = ((argc() == 3) ? intval(argv(2)) == intval($rr['id']) : $r[0]['id'] == $rr['id']);
|
||||
|
||||
$messages[] = array(
|
||||
$messages[] = [
|
||||
'mailbox' => $mailbox,
|
||||
'id' => $rr['id'],
|
||||
'from_name' => $rr['from']['xchan_name'],
|
||||
@ -57,14 +59,14 @@ class Conversations {
|
||||
'date' => datetime_convert('UTC',date_default_timezone_get(),$rr['created'], 'c'),
|
||||
'seen' => $rr['seen'],
|
||||
'selected' => ((argv(1) != 'new') ? $selected : '')
|
||||
);
|
||||
];
|
||||
}
|
||||
|
||||
$tpl = get_markup_template('mail_head.tpl');
|
||||
$o .= replace_macros($tpl, array(
|
||||
$o .= replace_macros($tpl, [
|
||||
'$header' => $header,
|
||||
'$messages' => $messages
|
||||
));
|
||||
]);
|
||||
|
||||
}
|
||||
return $o;
|
||||
|
@ -335,12 +335,9 @@ function private_messages_list($uid, $mailbox = '', $start = 0, $numitems = 0) {
|
||||
|
||||
case 'combined':
|
||||
default:
|
||||
|
||||
$parents = q("SELECT parent_mid FROM mail WHERE mid = parent_mid AND channel_id = %d ORDER BY created DESC",
|
||||
$parents = q("SELECT mail.parent_mid FROM mail LEFT JOIN conv ON mail.conv_guid = conv.guid WHERE mail.mid = mail.parent_mid AND mail.channel_id = %d ORDER BY conv.updated DESC $limit",
|
||||
dbesc($local_channel)
|
||||
);
|
||||
//FIXME: We need the latest mail of a thread here. This query throws errors in postgres. We now look for the latest in php until somebody can fix this...
|
||||
//$sql = "SELECT * FROM ( SELECT * FROM mail WHERE channel_id = $local_channel ORDER BY created DESC $limit ) AS temp_table GROUP BY parent_mid ORDER BY created DESC";
|
||||
break;
|
||||
|
||||
}
|
||||
|
Reference in New Issue
Block a user