Fixes #1089. When filtering by online
, show all non-offline users
This commit is contained in:
parent
f7a57f272e
commit
ea54644a45
@ -3,8 +3,9 @@
|
|||||||
## 6.0.0 (Unreleased)
|
## 6.0.0 (Unreleased)
|
||||||
|
|
||||||
- #129: Add support for XEP-0156: Disovering Alternative XMPP Connection Methods. Only XML is supported for now.
|
- #129: Add support for XEP-0156: Disovering Alternative XMPP Connection Methods. Only XML is supported for now.
|
||||||
- #1691 Fix `collection.chatbox is undefined` errors
|
- #1089: When filtering the roster for `online` users, show all non-offline users.
|
||||||
- #1733 New message notifications for a minimized chat stack on top of each other
|
- #1691: Fix `collection.chatbox is undefined` errors
|
||||||
|
- #1733: New message notifications for a minimized chat stack on top of each other
|
||||||
- Prevent editing of sent file uploads.
|
- Prevent editing of sent file uploads.
|
||||||
- Initial support for sending custom emojis. Currently only between Converse
|
- Initial support for sending custom emojis. Currently only between Converse
|
||||||
instances. Still working out a wire protocol for compatibility with other clients.
|
instances. Still working out a wire protocol for compatibility with other clients.
|
||||||
|
@ -593,13 +593,14 @@ converse.plugins.add('converse-rosterview', {
|
|||||||
return u.slideIn(this.contacts_el);
|
return u.slideIn(this.contacts_el);
|
||||||
},
|
},
|
||||||
|
|
||||||
|
/* Given a list of contacts, make sure they're filtered out
|
||||||
|
* (aka hidden) and that all other contacts are visible.
|
||||||
|
* If all contacts are hidden, then also hide the group title.
|
||||||
|
* @private
|
||||||
|
* @method _converse.RosterGroupView#filterOutContacts
|
||||||
|
* @param { Array } contacts
|
||||||
|
*/
|
||||||
filterOutContacts (contacts=[]) {
|
filterOutContacts (contacts=[]) {
|
||||||
/* Given a list of contacts, make sure they're filtered out
|
|
||||||
* (aka hidden) and that all other contacts are visible.
|
|
||||||
*
|
|
||||||
* If all contacts are hidden, then also hide the group
|
|
||||||
* title.
|
|
||||||
*/
|
|
||||||
let shown = 0;
|
let shown = 0;
|
||||||
this.model.contacts.forEach(contact => {
|
this.model.contacts.forEach(contact => {
|
||||||
const contact_view = this.get(contact.get('id'));
|
const contact_view = this.get(contact.get('id'));
|
||||||
@ -617,10 +618,15 @@ converse.plugins.add('converse-rosterview', {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Given the filter query "q" and the filter type "type",
|
||||||
|
* return a list of contacts that need to be filtered out.
|
||||||
|
* @private
|
||||||
|
* @method _converse.RosterGroupView#getFilterMatches
|
||||||
|
* @param { String } q - The filter query
|
||||||
|
* @param { String } type - The filter type
|
||||||
|
*/
|
||||||
getFilterMatches (q, type) {
|
getFilterMatches (q, type) {
|
||||||
/* Given the filter query "q" and the filter type "type",
|
|
||||||
* return a list of contacts that need to be filtered out.
|
|
||||||
*/
|
|
||||||
if (q.length === 0) {
|
if (q.length === 0) {
|
||||||
return [];
|
return [];
|
||||||
}
|
}
|
||||||
@ -631,15 +637,13 @@ converse.plugins.add('converse-rosterview', {
|
|||||||
// When filtering by chat state, we still want to
|
// When filtering by chat state, we still want to
|
||||||
// show requesting contacts, even though they don't
|
// show requesting contacts, even though they don't
|
||||||
// have the state in question.
|
// have the state in question.
|
||||||
matches = this.model.contacts.filter(
|
matches = this.model.contacts.filter(c => !_.includes(c.presence.get('show'), q) && !c.get('requesting'));
|
||||||
(contact) => !_.includes(contact.presence.get('show'), q) && !contact.get('requesting')
|
|
||||||
);
|
|
||||||
} else if (q === 'unread_messages') {
|
} else if (q === 'unread_messages') {
|
||||||
matches = this.model.contacts.filter({'num_unread': 0});
|
matches = this.model.contacts.filter({'num_unread': 0});
|
||||||
|
} else if (q === 'online') {
|
||||||
|
matches = this.model.contacts.filter(c => ["offline", "unavailable"].includes(c.presence.get('show')));
|
||||||
} else {
|
} else {
|
||||||
matches = this.model.contacts.filter(
|
matches = this.model.contacts.filter(c => !_.includes(c.presence.get('show'), q));
|
||||||
(contact) => !_.includes(contact.presence.get('show'), q)
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
matches = this.model.contacts.filter((contact) => {
|
matches = this.model.contacts.filter((contact) => {
|
||||||
|
@ -29,7 +29,7 @@
|
|||||||
muc_domain: 'conference.chat.example.org',
|
muc_domain: 'conference.chat.example.org',
|
||||||
muc_respect_autojoin: true,
|
muc_respect_autojoin: true,
|
||||||
password: 'secret',
|
password: 'secret',
|
||||||
view_mode: 'overlayed',
|
view_mode: 'fullscreen',
|
||||||
websocket_url: 'ws://chat.example.org:5380/xmpp-websocket',
|
websocket_url: 'ws://chat.example.org:5380/xmpp-websocket',
|
||||||
whitelisted_plugins: ['converse-debug'],
|
whitelisted_plugins: ['converse-debug'],
|
||||||
});
|
});
|
||||||
|
Loading…
Reference in New Issue
Block a user