Commit 3bf27e8b authored by JC Brand's avatar JC Brand

New config option ``show_only_online_users``

If true, only users with a status of 'online' will be shown in the contacts
roster.
parent fcc1f5ad
...@@ -4,12 +4,13 @@ Changelog ...@@ -4,12 +4,13 @@ Changelog
0.6.5 (Unreleased) 0.6.5 (Unreleased)
------------------ ------------------
* Fetch vCards asynchronously once a roster contacts is added [jcbrand] * Fetch vCards asynchronously once a roster contact is added [jcbrand]
* Hungarian translation [w3host] * Hungarian translation [w3host]
* Russian translation [bkocherov] * Russian translation [bkocherov]
* Update CSS to avoid clash with bootstrap [seocam] * Update CSS to avoid clash with bootstrap [seocam]
* Add config option ``allow_muc`` to toggle multi-user chat (MUC) [jcbrand] * New config option ``allow_muc`` toggles multi-user chat (MUC) [jcbrand]
* Add config option ``allow_contact_requests`` to toggle user adding [jcbrand] * New config option ``allow_contact_requests`` toggles user adding [jcbrand]
* New config option ``show_only_online_users`` [jcbrand]
0.6.4 (2013-09-15) 0.6.4 (2013-09-15)
------------------ ------------------
......
...@@ -57,6 +57,7 @@ ...@@ -57,6 +57,7 @@
this.i18n = locales.en; this.i18n = locales.en;
this.prebind = false; this.prebind = false;
this.show_controlbox_by_default = false; this.show_controlbox_by_default = false;
this.show_only_online_users = false;
this.testing = false; // Exposes sensitive data for testing. Never set to true in production systems! this.testing = false; // Exposes sensitive data for testing. Never set to true in production systems!
this.xhr_custom_status = false; this.xhr_custom_status = false;
this.xhr_user_search = false; this.xhr_user_search = false;
...@@ -78,6 +79,7 @@ ...@@ -78,6 +79,7 @@
'prebind', 'prebind',
'rid', 'rid',
'show_controlbox_by_default', 'show_controlbox_by_default',
'show_only_online_users',
'sid', 'sid',
'testing', 'testing',
'xhr_custom_status', 'xhr_custom_status',
...@@ -2225,8 +2227,6 @@ ...@@ -2225,8 +2227,6 @@
converse.connection.roster.authorize(bare_jid); converse.connection.roster.authorize(bare_jid);
} else { } else {
if (!this.get(bare_jid)) { if (!this.get(bare_jid)) {
// TODO: we can perhaps do the creation inside
// getVCard.
converse.getVCard( converse.getVCard(
bare_jid, bare_jid,
$.proxy(function (jid, fullname, img, img_type, url) { $.proxy(function (jid, fullname, img, img_type, url) {
...@@ -2355,7 +2355,7 @@ ...@@ -2355,7 +2355,7 @@
this.model.on("remove", function (item) { this.removeRosterItem(item); }, this); this.model.on("remove", function (item) { this.removeRosterItem(item); }, this);
this.model.on("destroy", function (item) { this.removeRosterItem(item); }, this); this.model.on("destroy", function (item) { this.removeRosterItem(item); }, this);
var roster_markup = this.contacts_template() var roster_markup = this.contacts_template();
if (converse.allow_contact_requests) { if (converse.allow_contact_requests) {
roster_markup = this.requesting_contacts_template() + roster_markup + this.pending_contacts_template(); roster_markup = this.requesting_contacts_template() + roster_markup + this.pending_contacts_template();
} }
...@@ -2373,7 +2373,7 @@ ...@@ -2373,7 +2373,7 @@
// want to send a presence stanza, so we do it here. // want to send a presence stanza, so we do it here.
converse.xmppstatus.sendPresence(); converse.xmppstatus.sendPresence();
} }
}, }
}); // Get the cached roster items from localstorage }); // Get the cached roster items from localstorage
}, },
...@@ -2390,11 +2390,17 @@ ...@@ -2390,11 +2390,17 @@
chatbox.save(changes); chatbox.save(changes);
}, },
renderRosterItem: function () { renderRosterItem: function (item, view) {
if (converse.show_only_online_users) {
if (item.get('chat_status') !== 'online') {
view.$el.remove();
return;
}
}
if ($.contains(document.documentElement, view.el)) { if ($.contains(document.documentElement, view.el)) {
view.render(); view.render();
} else { } else {
$my_contacts.after(view.render().el); this.$el.find('#xmpp-contacts').after(view.render().el);
} }
}, },
...@@ -2418,7 +2424,7 @@ ...@@ -2418,7 +2424,7 @@
$contact_requests.after(view.render().el); $contact_requests.after(view.render().el);
$contact_requests.after($contact_requests.siblings('dd.requesting-xmpp-contact').tsort(crit)); $contact_requests.after($contact_requests.siblings('dd.requesting-xmpp-contact').tsort(crit));
} else if (subscription === 'both' || subscription === 'to') { } else if (subscription === 'both' || subscription === 'to') {
this.renderRosterItem(); this.renderRosterItem(item, view);
} }
changed_presence = view.model.changed.chat_status; changed_presence = view.model.changed.chat_status;
if (changed_presence) { if (changed_presence) {
......
...@@ -581,6 +581,13 @@ the page with class *toggle-online-users*. ...@@ -581,6 +581,13 @@ the page with class *toggle-online-users*.
If this options is set to true, the controlbox will by default be shown upon If this options is set to true, the controlbox will by default be shown upon
page load. page load.
show_only_online_users
----------------------
Default = ``false``
If set to ``true``, only online users will be shown in the contacts roster.
Users with any other status (e.g. away, busy etc.) will not be shown.
xhr_user_search xhr_user_search
--------------- ---------------
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment