|
@@ -48214,9 +48214,7 @@ _converse_headless_converse_core__WEBPACK_IMPORTED_MODULE_0__["default"].plugins
|
|
|
if (_converse.muc_respect_autojoin && bookmark.get('autojoin')) {
|
|
|
const groupchat = _converse.api.rooms.create(bookmark.get('jid'), bookmark.get('nick'));
|
|
|
|
|
|
- if (!groupchat.get('hidden') && !groupchat.get('minimized')) {
|
|
|
- groupchat.trigger('show');
|
|
|
- }
|
|
|
+ groupchat.maybeShow();
|
|
|
}
|
|
|
|
|
|
return bookmark;
|
|
@@ -48465,7 +48463,7 @@ _converse_headless_converse_core__WEBPACK_IMPORTED_MODULE_0__["default"].plugins
|
|
|
'name': name || Strophe.unescapeNode(Strophe.getNodeFromJid(jid)) || jid
|
|
|
};
|
|
|
|
|
|
- _converse.api.rooms.open(jid, data);
|
|
|
+ _converse.api.rooms.open(jid, data, true);
|
|
|
},
|
|
|
|
|
|
removeBookmark: _converse.removeBookmarkViaEvent,
|
|
@@ -50196,7 +50194,7 @@ _converse_headless_converse_core__WEBPACK_IMPORTED_MODULE_5__["default"].plugins
|
|
|
this.focus();
|
|
|
},
|
|
|
|
|
|
- _show(f) {
|
|
|
+ _show() {
|
|
|
/* Inner show method that gets debounced */
|
|
|
if (_converse_headless_utils_emoji__WEBPACK_IMPORTED_MODULE_21__["default"].isVisible(this.el)) {
|
|
|
this.focus();
|
|
@@ -50539,8 +50537,13 @@ _converse_headless_converse_core__WEBPACK_IMPORTED_MODULE_5__["default"].plugins
|
|
|
return this.__super__.validate.apply(this, arguments);
|
|
|
},
|
|
|
|
|
|
- mayBeShown() {
|
|
|
- return this.__super__.mayBeShown.apply(this, arguments) && this.get('id') !== 'controlbox';
|
|
|
+ maybeShow(force) {
|
|
|
+ if (!force && this.get('id') === 'controlbox') {
|
|
|
+ // Must return the chatbox
|
|
|
+ return this;
|
|
|
+ }
|
|
|
+
|
|
|
+ return this.__super__.maybeShow.apply(this, arguments);
|
|
|
},
|
|
|
|
|
|
initialize() {
|
|
@@ -51011,7 +51014,7 @@ _converse_headless_converse_core__WEBPACK_IMPORTED_MODULE_5__["default"].plugins
|
|
|
|
|
|
if (_converse.connection.connected) {
|
|
|
controlbox.save({
|
|
|
- closed: false
|
|
|
+ 'closed': false
|
|
|
});
|
|
|
} else {
|
|
|
controlbox.trigger('show');
|
|
@@ -52520,8 +52523,13 @@ _converse_headless_converse_core__WEBPACK_IMPORTED_MODULE_1__["default"].plugins
|
|
|
});
|
|
|
},
|
|
|
|
|
|
- mayBeShown() {
|
|
|
- return this.__super__.mayBeShown.apply(this, arguments) && !this.get('minimized');
|
|
|
+ maybeShow(force) {
|
|
|
+ if (!force && this.get('minimized')) {
|
|
|
+ // Must return the chatbox
|
|
|
+ return this;
|
|
|
+ }
|
|
|
+
|
|
|
+ return this.__super__.maybeShow.apply(this, arguments);
|
|
|
}
|
|
|
|
|
|
},
|
|
@@ -59004,7 +59012,7 @@ _converse_headless_converse_core__WEBPACK_IMPORTED_MODULE_0__["default"].plugins
|
|
|
const data = {
|
|
|
'name': name || Strophe.unescapeNode(Strophe.getNodeFromJid(jid)) || jid
|
|
|
};
|
|
|
- await _converse.api.rooms.open(jid, data);
|
|
|
+ await _converse.api.rooms.open(jid, data, true);
|
|
|
|
|
|
_converse.api.chatviews.get(jid).focus();
|
|
|
},
|
|
@@ -59715,7 +59723,7 @@ _converse_headless_converse_core__WEBPACK_IMPORTED_MODULE_4__["default"].plugins
|
|
|
|
|
|
const attrs = this.model.attributes;
|
|
|
|
|
|
- _converse.api.chats.open(attrs.jid, attrs);
|
|
|
+ _converse.api.chats.open(attrs.jid, attrs, true);
|
|
|
},
|
|
|
|
|
|
async removeContact(ev) {
|
|
@@ -60344,23 +60352,22 @@ _converse_headless_converse_core__WEBPACK_IMPORTED_MODULE_1__["default"].plugins
|
|
|
//
|
|
|
// new functions which don't exist yet can also be added.
|
|
|
ChatBox: {
|
|
|
- mayBeShown() {
|
|
|
+ maybeShow(force) {
|
|
|
+ // This method must return the chatbox
|
|
|
const _converse = this.__super__._converse;
|
|
|
|
|
|
- if (_converse.isUniView()) {
|
|
|
+ if (!force && _converse.isUniView()) {
|
|
|
if (this.get('id') === 'controlbox') {
|
|
|
- return true;
|
|
|
+ return this.trigger('show');
|
|
|
}
|
|
|
|
|
|
const any_chats_visible = _converse.chatboxes.filter(cb => cb.get('id') != 'controlbox').filter(cb => !cb.get('hidden')).length > 0;
|
|
|
|
|
|
- if (any_chats_visible) {
|
|
|
- return !this.get('hidden');
|
|
|
- } else {
|
|
|
- return true;
|
|
|
+ if (!any_chats_visible || !this.get('hidden')) {
|
|
|
+ return this.trigger('show');
|
|
|
}
|
|
|
} else {
|
|
|
- return this.__super__.mayBeShown.apply(this, arguments);
|
|
|
+ return this.__super__.maybeShow.apply(this, arguments);
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -62611,8 +62618,9 @@ _converse_core__WEBPACK_IMPORTED_MODULE_2__["default"].plugins.add('converse-cha
|
|
|
return attrs;
|
|
|
},
|
|
|
|
|
|
- mayBeShown() {
|
|
|
- return true;
|
|
|
+ maybeShow() {
|
|
|
+ // Returns the chatbox
|
|
|
+ return this.trigger("show");
|
|
|
},
|
|
|
|
|
|
isHidden() {
|
|
@@ -62689,11 +62697,7 @@ _converse_core__WEBPACK_IMPORTED_MODULE_2__["default"].plugins.add('converse-cha
|
|
|
|
|
|
onChatBoxesFetched(collection) {
|
|
|
/* Show chat boxes upon receiving them from sessionStorage */
|
|
|
- collection.each(chatbox => {
|
|
|
- if (chatbox.mayBeShown()) {
|
|
|
- chatbox.trigger('show');
|
|
|
- }
|
|
|
- });
|
|
|
+ collection.each(chatbox => chatbox.maybeShow());
|
|
|
/**
|
|
|
* Triggered when a message stanza is been received and processed.
|
|
|
* @event _converse#message
|
|
@@ -62979,7 +62983,7 @@ _converse_core__WEBPACK_IMPORTED_MODULE_2__["default"].plugins.add('converse-cha
|
|
|
/**
|
|
|
* @method _converse.api.chats.create
|
|
|
* @param {string|string[]} jid|jids An jid or array of jids
|
|
|
- * @param {object} attrs An object containing configuration attributes.
|
|
|
+ * @param {object} [attrs] An object containing configuration attributes.
|
|
|
*/
|
|
|
'create'(jids, attrs) {
|
|
|
if (_.isUndefined(jids)) {
|
|
@@ -63006,7 +63010,7 @@ _converse_core__WEBPACK_IMPORTED_MODULE_2__["default"].plugins.add('converse-cha
|
|
|
|
|
|
return _.map(jids, jid => {
|
|
|
attrs.fullname = _.get(_converse.api.contacts.get(jid), 'attributes.fullname');
|
|
|
- return _converse.chatboxes.getChatBox(jid, attrs, true).trigger('show');
|
|
|
+ return _converse.chatboxes.getChatBox(jid, attrs, true).maybeShow();
|
|
|
});
|
|
|
},
|
|
|
|
|
@@ -63015,7 +63019,15 @@ _converse_core__WEBPACK_IMPORTED_MODULE_2__["default"].plugins.add('converse-cha
|
|
|
*
|
|
|
* @method _converse.api.chats.open
|
|
|
* @param {String|string[]} name - e.g. 'buddy@example.com' or ['buddy1@example.com', 'buddy2@example.com']
|
|
|
- * @returns {Promise} Promise which resolves with the Backbone.Model representing the chat.
|
|
|
+ * @param {Object} [attrs] - Attributes to be set on the _converse.ChatBox model.
|
|
|
+ * @param {Boolean} [force=false] - By default, a minimized
|
|
|
+ * chat won't be maximized (in `overlayed` view mode) and in
|
|
|
+ * `fullscreen` view mode a newly opened chat won't replace
|
|
|
+ * another chat already in the foreground.
|
|
|
+ * Set `force` to `true` if you want to force the chat to be
|
|
|
+ * maximized or shown.
|
|
|
+ * @returns {Promise} Promise which resolves with the
|
|
|
+ * _converse.ChatBox representing the chat.
|
|
|
*
|
|
|
* @example
|
|
|
* // To open a single chat, provide the JID of the contact you're chatting with in that chat:
|
|
@@ -63023,7 +63035,7 @@ _converse_core__WEBPACK_IMPORTED_MODULE_2__["default"].plugins.add('converse-cha
|
|
|
* initialize: function() {
|
|
|
* var _converse = this._converse;
|
|
|
* // Note, buddy@example.org must be in your contacts roster!
|
|
|
- * _converse.api.chats.open('buddy@example.com').then((chat) => {
|
|
|
+ * _converse.api.chats.open('buddy@example.com').then(chat => {
|
|
|
* // Now you can do something with the chat model
|
|
|
* });
|
|
|
* }
|
|
@@ -63035,14 +63047,13 @@ _converse_core__WEBPACK_IMPORTED_MODULE_2__["default"].plugins.add('converse-cha
|
|
|
* initialize: function () {
|
|
|
* var _converse = this._converse;
|
|
|
* // Note, these users must first be in your contacts roster!
|
|
|
- * _converse.api.chats.open(['buddy1@example.com', 'buddy2@example.com']).then((chats) => {
|
|
|
+ * _converse.api.chats.open(['buddy1@example.com', 'buddy2@example.com']).then(chats => {
|
|
|
* // Now you can do something with the chat models
|
|
|
* });
|
|
|
* }
|
|
|
* });
|
|
|
- *
|
|
|
*/
|
|
|
- 'open'(jids, attrs) {
|
|
|
+ 'open'(jids, attrs, force) {
|
|
|
return new Promise((resolve, reject) => {
|
|
|
Promise.all([_converse.api.waitUntil('rosterContactsFetched'), _converse.api.waitUntil('chatBoxesFetched')]).then(() => {
|
|
|
if (_.isUndefined(jids)) {
|
|
@@ -63052,9 +63063,9 @@ _converse_core__WEBPACK_IMPORTED_MODULE_2__["default"].plugins.add('converse-cha
|
|
|
|
|
|
reject(new Error(err_msg));
|
|
|
} else if (_.isString(jids)) {
|
|
|
- resolve(_converse.api.chats.create(jids, attrs).trigger('show'));
|
|
|
+ resolve(_converse.api.chats.create(jids, attrs).maybeShow(force));
|
|
|
} else {
|
|
|
- resolve(_.map(jids, jid => _converse.api.chats.create(jid, attrs).trigger('show')));
|
|
|
+ resolve(_.map(jids, jid => _converse.api.chats.create(jid, attrs).maybeShow(force)));
|
|
|
}
|
|
|
}).catch(_.partial(_converse.log, _, Strophe.LogLevel.FATAL));
|
|
|
});
|
|
@@ -63064,7 +63075,7 @@ _converse_core__WEBPACK_IMPORTED_MODULE_2__["default"].plugins.add('converse-cha
|
|
|
* Returns a chat model. The chat should already be open.
|
|
|
*
|
|
|
* @method _converse.api.chats.get
|
|
|
- * @param {String|string[]} name - e.g. 'buddy@example.com' or ['buddy1@example.com', 'buddy2@example.com']
|
|
|
+ * @param {String|string[]} jids - e.g. 'buddy@example.com' or ['buddy1@example.com', 'buddy2@example.com']
|
|
|
* @returns {_converse.ChatBox}
|
|
|
*
|
|
|
* @example
|
|
@@ -66650,7 +66661,7 @@ _converse_core__WEBPACK_IMPORTED_MODULE_3__["default"].plugins.add('converse-muc
|
|
|
}
|
|
|
};
|
|
|
|
|
|
- _converse.openChatRoom = function (jid, settings, bring_to_foreground) {
|
|
|
+ function openChatRoom(jid, settings) {
|
|
|
/* Opens a groupchat, making sure that certain attributes
|
|
|
* are correct, for example that the "type" is set to
|
|
|
* "chatroom".
|
|
@@ -66661,9 +66672,9 @@ _converse_core__WEBPACK_IMPORTED_MODULE_3__["default"].plugins.add('converse-muc
|
|
|
|
|
|
const chatbox = _converse.chatboxes.getChatBox(jid, settings, true);
|
|
|
|
|
|
- chatbox.trigger('show', true);
|
|
|
+ chatbox.maybeShow(true);
|
|
|
return chatbox;
|
|
|
- };
|
|
|
+ }
|
|
|
/**
|
|
|
* Represents an open/ongoing groupchat conversation.
|
|
|
*
|
|
@@ -68033,7 +68044,7 @@ _converse_core__WEBPACK_IMPORTED_MODULE_3__["default"].plugins.add('converse-muc
|
|
|
}
|
|
|
|
|
|
if (result === true) {
|
|
|
- const chatroom = _converse.openChatRoom(room_jid, {
|
|
|
+ const chatroom = openChatRoom(room_jid, {
|
|
|
'password': x_el.getAttribute('password')
|
|
|
});
|
|
|
|
|
@@ -68246,6 +68257,12 @@ _converse_core__WEBPACK_IMPORTED_MODULE_3__["default"].plugins.add('converse-muc
|
|
|
* @param {boolean} [attrs.bring_to_foreground] A boolean indicating whether the room should be
|
|
|
* brought to the foreground and therefore replace the currently shown chat.
|
|
|
* If there is no chat currently open, then this option is ineffective.
|
|
|
+ * @param {Boolean} [force=false] - By default, a minimized
|
|
|
+ * room won't be maximized (in `overlayed` view mode) and in
|
|
|
+ * `fullscreen` view mode a newly opened room won't replace
|
|
|
+ * another chat already in the foreground.
|
|
|
+ * Set `force` to `true` if you want to force the room to be
|
|
|
+ * maximized or shown.
|
|
|
*
|
|
|
* @example
|
|
|
* this._converse.api.rooms.open('group@muc.example.com')
|
|
@@ -68277,6 +68294,7 @@ _converse_core__WEBPACK_IMPORTED_MODULE_3__["default"].plugins.add('converse-muc
|
|
|
* );
|
|
|
*/
|
|
|
'open': async function open(jids, attrs) {
|
|
|
+ let force = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
|
|
|
await _converse.api.waitUntil('chatBoxesFetched');
|
|
|
|
|
|
if (_.isUndefined(jids)) {
|
|
@@ -68286,9 +68304,9 @@ _converse_core__WEBPACK_IMPORTED_MODULE_3__["default"].plugins.add('converse-muc
|
|
|
|
|
|
throw new TypeError(err_msg);
|
|
|
} else if (_.isString(jids)) {
|
|
|
- return _converse.api.rooms.create(jids, attrs).trigger('show');
|
|
|
+ return _converse.api.rooms.create(jids, attrs).maybeShow(force);
|
|
|
} else {
|
|
|
- return _.map(jids, jid => _converse.api.rooms.create(jid, attrs).trigger('show'));
|
|
|
+ return _.map(jids, jid => _converse.api.rooms.create(jid, attrs).maybeShow(force));
|
|
|
}
|
|
|
},
|
|
|
|