From 0d542cee8c6f94b667f7a285de65507ea1a54390 Mon Sep 17 00:00:00 2001 From: JC Brand Date: Thu, 24 Nov 2016 09:51:01 +0100 Subject: [PATCH] New config settings ``allow_bookmarks`` --- docs/CHANGES.md | 5 +++-- docs/source/configuration.rst | 8 ++++++++ src/converse-bookmarks.js | 27 +++++++++++++++++++++------ 3 files changed, 32 insertions(+), 8 deletions(-) diff --git a/docs/CHANGES.md b/docs/CHANGES.md index 7c54108b0..efec1722f 100755 --- a/docs/CHANGES.md +++ b/docs/CHANGES.md @@ -2,9 +2,10 @@ ## 2.0.2 (Unreleased) - #721 keepalive not working with anonymous authentication [jcbrand] +- #723 Bugfix: Arrays in configuration settings were ignored. [jcbrand] +- #734 Bugfix. `converse.rooms.open` ignored the `muc_nickname_from_jid` setting. [jcbrand] - Enable new rooms to be configured automatically, with a default config, via `rooms.open`. For details, refer to the [relevant documentation](https://conversejs.org/docs/html/developer_api.html#the-rooms-grouping) [jcbrand] -- #723 Bugfix: Arrays in configuration settings were ignored. [jcbrand] - Bugfix: Chatboxes aren't closed when logging out. [jcbrand] - Bugfix: Trying to save data on the `ControlBox` model before `ChatBoxes` collection has its `browserStorage` configured. @@ -16,7 +17,7 @@ Instead, `converse.initialize` returns a promise which will resolve once initialization is complete. [jcbrand] - New event ['reconnecting'](https://conversejs.org/docs/html/development.html#reconnecting) [jcbrand] -- #723, #734: Bugfix. `converse.rooms.open` ignored the `muc_nickname_from_jid` setting. [jcbrand] +- New configuration setting [allow_bookmarks](https://conversejs.org/docs/html/configuration.html#allow_bookmarks) [jcbrand] ## 2.0.1 (2016-11-07) - #203 New configuration setting [muc_domain](https://conversejs.org/docs/html/configuration.html#muc_domain) [jcbrand] diff --git a/docs/source/configuration.rst b/docs/source/configuration.rst index 0cf2d6598..decad4e6c 100644 --- a/docs/source/configuration.rst +++ b/docs/source/configuration.rst @@ -114,6 +114,14 @@ Here's an example of converse.js being initialized with these three options: allow_logout: false }); +allow_bookmarks +--------------- + +* Default: ``true`` + +Enables/disables chatroom bookmarks functionality. +This setting is only applicable if the ``converse-bookmarks`` plugin is loaded. + allow_chat_pending_contacts --------------------------- diff --git a/src/converse-bookmarks.js b/src/converse-bookmarks.js index b8c242a32..8d0024a74 100644 --- a/src/converse-bookmarks.js +++ b/src/converse-bookmarks.js @@ -71,11 +71,13 @@ render: function (options) { this.__super__.render.apply(this, arguments); - var label_bookmark = _('Bookmark this room'); - var button = ''; - this.$el.find('.chat-head-chatroom .icon-wrench').before(button); + if (converse.allow_bookmarks) { + var label_bookmark = _('Bookmark this room'); + var button = ''; + this.$el.find('.chat-head-chatroom .icon-wrench').before(button); + } return this; }, @@ -84,7 +86,7 @@ * for this room, and if so use it. * Otherwise delegate to the super method. */ - if (_.isUndefined(converse.bookmarks)) { + if (_.isUndefined(converse.bookmarks) || !converse.allow_bookmarks) { return this.__super__.checkForReservedNick.apply(this, arguments); } var model = converse.bookmarks.findWhere({'jid': this.model.get('jid')}); @@ -172,6 +174,13 @@ * loaded by converse.js's plugin machinery. */ var converse = this.converse; + // Configuration values for this plugin + // ==================================== + // Refer to docs/source/configuration.rst for explanations of these + // configuration settings. + this.updateSettings({ + allow_bookmarks: true + }); converse.Bookmark = Backbone.Model; @@ -410,6 +419,9 @@ }); var initBookmarks = function () { + if (!converse.allow_bookmarks) { + return; + } converse.bookmarks = new converse.Bookmarks(); converse.bookmarks.fetchBookmarks().always(function () { converse.bookmarksview = new converse.BookmarksView( @@ -420,6 +432,9 @@ converse.on('chatBoxesFetched', initBookmarks); var afterReconnection = function () { + if (!converse.allow_bookmarks) { + return; + } if (_.isUndefined(converse.bookmarksview)) { initBookmarks(); } else {