Commit d8963a8a authored by JC Brand's avatar JC Brand

bookmarks: New setting `hide_open_bookmarks`

parent 0bd0798e
......@@ -579,6 +579,22 @@ hide_offline_users
If set to ``true``, then don't show offline users.
hide_open_bookmarks
-------------------
* Default: ``false``
This setting applies to the ``converse-bookmarks`` plugin and specfically the
list of bookmarks shown in the ``Rooms`` tab of the control box.
By default all bookmarks are shown in that list, if this setting is set to
``true``, then only bookmarks for rooms not currently open (i.e. that the
current user hasn't joined), are shown.
Makes sense to set this to ``true`` when also using the non-core
``converse-roomslist`` plugin, which shows a list of currently open (i.e.
"joined") rooms.
include_offline_state
---------------------
......
......@@ -194,7 +194,8 @@
// Refer to docs/source/configuration.rst for explanations of these
// configuration settings.
this.updateSettings({
allow_bookmarks: true
allow_bookmarks: true,
hide_open_bookmarks: false
});
_converse.Bookmark = Backbone.Model;
......@@ -360,6 +361,8 @@
initialize: function () {
this.model.on('add', this.renderBookmarkListElement, this);
this.model.on('remove', this.removeBookmarkListElement, this);
_converse.chatboxes.on('add', this.renderBookmarkListElement, this);
_converse.chatboxes.on('remove', this.renderBookmarkListElement, this);
var cachekey = 'converse.room-bookmarks'+_converse.bare_jid+'-list-model';
this.list_model = new _converse.BookmarksList();
......@@ -398,6 +401,11 @@
},
renderBookmarkListElement: function (item) {
if (_converse.hide_open_bookmarks &&
_converse.chatboxes.where({'jid': item.get('jid')}).length) {
this.removeBookmarkListElement(item);
return;
}
var div = document.createElement('div');
div.innerHTML = tpl_bookmark({
'bookmarked': true,
......@@ -430,7 +438,7 @@
if (el) {
list_el.removeChild(el);
}
if (this.model.length === 0) {
if (list_el.childElementCount === 0) {
this.hide();
}
},
......@@ -460,6 +468,7 @@
{'model': _converse.bookmarks}
);
});
_converse.emit('bookmarksInitialized');
};
_converse.on('chatBoxesFetched', initBookmarks);
......
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