New config settings `allow_bookmarks`

This commit is contained in:
JC Brand 2016-11-24 09:51:01 +01:00
parent a4eb622aaa
commit 0d542cee8c
3 changed files with 32 additions and 8 deletions

View File

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

View File

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

View File

@ -71,11 +71,13 @@
render: function (options) {
this.__super__.render.apply(this, arguments);
var label_bookmark = _('Bookmark this room');
var button = '<a class="chatbox-btn toggle-bookmark icon-pushpin '+
(this.model.get('bookmarked') ? 'button-on"' : '"') +
'title="'+label_bookmark+'"></a>';
this.$el.find('.chat-head-chatroom .icon-wrench').before(button);
if (converse.allow_bookmarks) {
var label_bookmark = _('Bookmark this room');
var button = '<a class="chatbox-btn toggle-bookmark icon-pushpin '+
(this.model.get('bookmarked') ? 'button-on"' : '"') +
'title="'+label_bookmark+'"></a>';
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 {