The communications platform that puts data protection first.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Rocket.Chat/packages/rocketchat-ui-sidenav/client/roomList.js

84 lines
1.9 KiB

8 years ago
Template.roomList.helpers({
rooms() {
if (this.identifier === 'unread') {
const query = {
alert: true,
open: true,
hideUnreadStatus: { $ne: true }
};
return ChatSubscription.find(query, { sort: { 't': 1, 'name': 1 }});
8 years ago
}
if (this.anonymous) {
return RocketChat.models.Rooms.find({t: 'c'}, { sort: { name: 1 } });
}
8 years ago
const favoritesEnabled = RocketChat.settings.get('Favorite_Rooms');
8 years ago
const query = {
open: true
};
let sort = { 't': 1, 'name': 1 };
if (this.identifier === 'f') {
query.f = favoritesEnabled;
} else {
let types = [this.identifier];
if (this.identifier === 'activity') {
types = ['c', 'p', 'd'];
sort = { lastActivity : -1, _updatedAt: -1};
8 years ago
}
if (this.identifier === 'channels' || this.identifier === 'unread') {
types= [ 'c', 'p'];
}
const user = Meteor.user();
if (user && user.settings && user.settings.preferences && user.settings.preferences.roomsListExhibitionMode === 'unread') {
query.$or = [
{ alert: { $ne: true } },
{ hideUnreadStatus: true }
];
}
query.t = { $in: types };
8 years ago
query.f = { $ne: favoritesEnabled };
8 years ago
}
return ChatSubscription.find(query, { sort });
8 years ago
},
8 years ago
isLivechat() {
return this.identifier === 'l';
},
shouldAppear(group, rooms) {
/*
if is a normal group ('channel' 'private' 'direct')
or is favorite and has one room
or is unread and has one room
*/
return !['unread', 'f'].includes(group.identifier) || rooms.count();
8 years ago
},
8 years ago
roomType(room) {
if (room.header || room.identifier) {
return `type-${ room.header || room.identifier }`;
}
8 years ago
}
});
Template.roomList.events({
'click .more'(e, t) {
8 years ago
if (t.data.identifier === 'p') {
SideNav.setFlex('listPrivateGroupsFlex');
} else if (t.data.isCombined) {
SideNav.setFlex('listCombinedFlex');
} else {
SideNav.setFlex('listChannelsFlex');
}
8 years ago
return SideNav.openFlex();
}
});