فهرست منبع

Add config option ``allow_contact_requests`` to toggle user adding

JC Brand 11 سال پیش
والد
کامیت
0d6e29f067
3فایلهای تغییر یافته به همراه25 افزوده شده و 10 حذف شده
  1. 2 1
      CHANGES.rst
  2. 23 8
      converse.js
  3. 0 1
      index.html

+ 2 - 1
CHANGES.rst

@@ -8,7 +8,8 @@ Changelog
 * Hungarian translation [w3host]
 * Russian translation [bkocherov]
 * Update CSS to avoid clash with bootstrap [seocam]
-* Add config option ``allow_muc`` to enable/disable multi-user chat (MUC) [jcbrand]
+* Add config option ``allow_muc`` to toggle multi-user chat (MUC) [jcbrand]
+* Add config option ``allow_contact_requests`` to toggle user adding [jcbrand]
 
 0.6.4 (2013-09-15)
 ------------------

+ 23 - 8
converse.js

@@ -41,8 +41,11 @@
 }(this, function ($, _, console) {
     var converse = {};
     converse.initialize = function (settings, callback) {
-        // Default values
         var converse = this;
+        // Default values
+        this.allow_contact_requests = true;
+        this.allow_muc = true;
+        this.allow_otr = true;
         this.animate = true;
         this.auto_list_rooms = false;
         this.auto_subscribe = false;
@@ -50,17 +53,19 @@
         this.debug = false;
         this.hide_muc_server = false;
         this.i18n = locales.en;
-        this.allow_muc = true;
         this.prebind = false;
         this.show_controlbox_by_default = false;
-        this.xhr_user_search = false;
-        this.xhr_custom_status = false;
         this.testing = false; // Exposes sensitive data for testing. Never set to true in production systems!
+        this.xhr_custom_status = false;
+        this.xhr_user_search = false;
+
         this.callback = callback || function () {};
 
         // Allow only the whitelisted settings attributes to be overwritten,
         // nothing else.
         whitelist = [
+            'allow_contact_requests',
+            'allow_muc',
             'animate',
             'auto_list_rooms',
             'auto_subscribe',
@@ -687,7 +692,10 @@
                             '<option value="offline">'+__('Offline')+'</option>'+
                         '</select>'+
                     '</span>'+
-                '</form>'+
+                '</form>'
+            ),
+
+            add_contact_dropdown_template: _.template(
                 '<dl class="add-converse-contact dropdown">' +
                     '<dt id="xmpp-contact-search" class="fancy-dropdown">' +
                         '<a class="toggle-xmpp-contact-form" href="#"'+
@@ -698,7 +706,7 @@
                 '</dl>'
             ),
 
-            add_contact_template: _.template(
+            add_contact_form_template: _.template(
                 '<li>'+
                     '<form class="add-xmpp-contact">' +
                         '<input type="text" name="identifier" class="username" placeholder="'+__('Contact username')+'"/>' +
@@ -723,13 +731,20 @@
 
             render: function () {
                 var markup;
+                var widgets = this.template();
+
                 this.$tabs.append(this.tab_template());
                 if (converse.xhr_user_search) {
                     markup = this.search_contact_template();
                 } else {
-                    markup = this.add_contact_template();
+                    markup = this.add_contact_form_template();
+                }
+
+                if (converse.allow_contact_requests) {
+                    widgets += this.add_contact_dropdown_template();
                 }
-                this.$el.html(this.template());
+                this.$el.html(widgets);
+
                 this.$el.find('.search-xmpp ul').append(markup);
                 this.$el.append(converse.rosterview.$el);
                 return this;

+ 0 - 1
index.html

@@ -192,7 +192,6 @@
 <script>
     require(['converse'], function (converse) {
         converse.initialize({
-            allow_muc: true,
             auto_list_rooms: false,
             auto_subscribe: false,
             bosh_service_url: 'https://bind.opkode.im', // Please use this connection manager only for testing purposes