Commit 0d542cee authored by JC Brand's avatar JC Brand

New config settings ``allow_bookmarks``

parent a4eb622a
...@@ -2,9 +2,10 @@ ...@@ -2,9 +2,10 @@
## 2.0.2 (Unreleased) ## 2.0.2 (Unreleased)
- #721 keepalive not working with anonymous authentication [jcbrand] - #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`. - 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] 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: Chatboxes aren't closed when logging out. [jcbrand]
- Bugfix: Trying to save data on the `ControlBox` model before `ChatBoxes` - Bugfix: Trying to save data on the `ControlBox` model before `ChatBoxes`
collection has its `browserStorage` configured. collection has its `browserStorage` configured.
...@@ -16,7 +17,7 @@ ...@@ -16,7 +17,7 @@
Instead, `converse.initialize` returns a promise which will resolve once Instead, `converse.initialize` returns a promise which will resolve once
initialization is complete. [jcbrand] initialization is complete. [jcbrand]
- New event ['reconnecting'](https://conversejs.org/docs/html/development.html#reconnecting) [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) ## 2.0.1 (2016-11-07)
- #203 New configuration setting [muc_domain](https://conversejs.org/docs/html/configuration.html#muc_domain) [jcbrand] - #203 New configuration setting [muc_domain](https://conversejs.org/docs/html/configuration.html#muc_domain) [jcbrand]
......
...@@ -114,6 +114,14 @@ Here's an example of converse.js being initialized with these three options: ...@@ -114,6 +114,14 @@ Here's an example of converse.js being initialized with these three options:
allow_logout: false 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 allow_chat_pending_contacts
--------------------------- ---------------------------
......
...@@ -71,11 +71,13 @@ ...@@ -71,11 +71,13 @@
render: function (options) { render: function (options) {
this.__super__.render.apply(this, arguments); this.__super__.render.apply(this, arguments);
var label_bookmark = _('Bookmark this room'); if (converse.allow_bookmarks) {
var button = '<a class="chatbox-btn toggle-bookmark icon-pushpin '+ var label_bookmark = _('Bookmark this room');
(this.model.get('bookmarked') ? 'button-on"' : '"') + var button = '<a class="chatbox-btn toggle-bookmark icon-pushpin '+
'title="'+label_bookmark+'"></a>'; (this.model.get('bookmarked') ? 'button-on"' : '"') +
this.$el.find('.chat-head-chatroom .icon-wrench').before(button); 'title="'+label_bookmark+'"></a>';
this.$el.find('.chat-head-chatroom .icon-wrench').before(button);
}
return this; return this;
}, },
...@@ -84,7 +86,7 @@ ...@@ -84,7 +86,7 @@
* for this room, and if so use it. * for this room, and if so use it.
* Otherwise delegate to the super method. * Otherwise delegate to the super method.
*/ */
if (_.isUndefined(converse.bookmarks)) { if (_.isUndefined(converse.bookmarks) || !converse.allow_bookmarks) {
return this.__super__.checkForReservedNick.apply(this, arguments); return this.__super__.checkForReservedNick.apply(this, arguments);
} }
var model = converse.bookmarks.findWhere({'jid': this.model.get('jid')}); var model = converse.bookmarks.findWhere({'jid': this.model.get('jid')});
...@@ -172,6 +174,13 @@ ...@@ -172,6 +174,13 @@
* loaded by converse.js's plugin machinery. * loaded by converse.js's plugin machinery.
*/ */
var converse = this.converse; 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; converse.Bookmark = Backbone.Model;
...@@ -410,6 +419,9 @@ ...@@ -410,6 +419,9 @@
}); });
var initBookmarks = function () { var initBookmarks = function () {
if (!converse.allow_bookmarks) {
return;
}
converse.bookmarks = new converse.Bookmarks(); converse.bookmarks = new converse.Bookmarks();
converse.bookmarks.fetchBookmarks().always(function () { converse.bookmarks.fetchBookmarks().always(function () {
converse.bookmarksview = new converse.BookmarksView( converse.bookmarksview = new converse.BookmarksView(
...@@ -420,6 +432,9 @@ ...@@ -420,6 +432,9 @@
converse.on('chatBoxesFetched', initBookmarks); converse.on('chatBoxesFetched', initBookmarks);
var afterReconnection = function () { var afterReconnection = function () {
if (!converse.allow_bookmarks) {
return;
}
if (_.isUndefined(converse.bookmarksview)) { if (_.isUndefined(converse.bookmarksview)) {
initBookmarks(); initBookmarks();
} else { } else {
......
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