[NEW] Sort channel directory listing by latest message (#16604)

Co-authored-by: Diego Sampaio <chinello@gmail.com>
pull/16569/head^2
Subham Sahoo 6 years ago committed by GitHub
parent 5355b8275b
commit 2d4e5ca4a6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 4
      app/ui/client/views/app/directory.html
  2. 6
      server/methods/browseChannels.js

@ -45,8 +45,8 @@
<div class="table-fake-th"><span>{{_ "Users"}}</span> {{> icon icon=(sortIcon 'usersCount')}}</div>
</th>
{{#if showLastMessage}}
<th class="table-column-date">
<div class="table-fake-th">{{_ "Last_Message"}}</div>
<th class="table-column-date js-sort {{#if searchSortBy 'lastMessage'}}is-sorting{{/if}}" data-sort="lastMessage">
<div class="table-fake-th"><span>{{_ "Last_Message"}}</span> {{> icon icon=(sortIcon 'lastMessage')}}</div>
</th>
{{/if}}
<th class="js-sort table-column-date {{#if searchSortBy 'createdAt'}}is-sorting{{/if}}" data-sort="createdAt">

@ -15,6 +15,10 @@ const sortChannels = function(field, direction) {
return {
ts: direction === 'asc' ? 1 : -1,
};
case 'lastMessage':
return {
'lastMessage.ts': direction === 'asc' ? 1 : -1,
};
default:
return {
[field]: direction === 'asc' ? 1 : -1,
@ -51,7 +55,7 @@ Meteor.methods({
return;
}
if (!['name', 'createdAt', 'usersCount', ...type === 'channels' ? ['usernames'] : [], ...type === 'users' ? ['username', 'email'] : []].includes(sortBy)) {
if (!['name', 'createdAt', 'usersCount', ...type === 'channels' ? ['usernames', 'lastMessage'] : [], ...type === 'users' ? ['username', 'email'] : []].includes(sortBy)) {
return;
}

Loading…
Cancel
Save