2
0
Эх сурвалжийг харах

Merge branch '0.6.x'

Conflicts:
	converse.js
JC Brand 11 жил өмнө
parent
commit
37f2f8ca0c
3 өөрчлөгдсөн 23 нэмэгдсэн , 9 устгасан
  1. 4 3
      CHANGES.rst
  2. 12 6
      converse.js
  3. 7 0
      docs/source/index.rst

+ 4 - 3
CHANGES.rst

@@ -4,12 +4,13 @@ Changelog
 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]
 * Russian translation [bkocherov]
 * Update CSS to avoid clash with bootstrap [seocam]
-* Add config option ``allow_muc`` to toggle multi-user chat (MUC) [jcbrand]
-* Add config option ``allow_contact_requests`` to toggle user adding [jcbrand]
+* New config option ``allow_muc`` toggles multi-user chat (MUC) [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)
 ------------------

+ 12 - 6
converse.js

@@ -69,6 +69,7 @@
         this.i18n = locales.en;
         this.prebind = false;
         this.show_controlbox_by_default = false;
+        this.show_only_online_users = false;
         this.show_toolbar = true;
         this.testing = false; // Exposes sensitive data for testing. Never set to true in production systems!
         this.xhr_custom_status = false;
@@ -92,6 +93,7 @@
             'prebind',
             'rid',
             'show_controlbox_by_default',
+            'show_only_online_users',
             'show_toolbar',
             'sid',
             'testing',
@@ -2605,8 +2607,6 @@
                         converse.connection.roster.authorize(bare_jid);
                     } else {
                         if (!this.get(bare_jid)) {
-                            // TODO: we can perhaps do the creation inside
-                            // getVCard.
                             converse.getVCard(
                                 bare_jid,
                                 $.proxy(function (jid, fullname, img, img_type, url) {
@@ -2735,7 +2735,7 @@
                 this.model.on("remove", 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) {
                     roster_markup = this.requesting_contacts_template() + roster_markup + this.pending_contacts_template();
                 }
@@ -2770,11 +2770,17 @@
                 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)) {
                     view.render();
                 } else {
-                    $my_contacts.after(view.render().el);
+                    this.$el.find('#xmpp-contacts').after(view.render().el);
                 }
             },
 
@@ -2798,7 +2804,7 @@
                         $contact_requests.after(view.render().el);
                         $contact_requests.after($contact_requests.siblings('dd.requesting-xmpp-contact').tsort(crit));
                     } else if (subscription === 'both' || subscription === 'to') {
-                        this.renderRosterItem();
+                        this.renderRosterItem(item, view);
                     }
                     changed_presence = view.model.changed.chat_status;
                     if (changed_presence) {

+ 7 - 0
docs/source/index.rst

@@ -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
 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
 ---------------