- new config option `singleton`.
- new plugin `converse-uniview`
- removed `converse-embedded`.
- various CSS changes, to properly render an embedded full app
- don't re-open cached and non-autojoined chats in singleton mode
The goal here is to extend the `embedded` `view_mode` so that the full app can
also be embedded, not just a single MUC or private chat.
To do this, we'll need to differentiate between multi and singleton chat apps.
* A singleton chat app contains only a single chat.
* A multi-chat app can contain zero or more chats
So we introduce a new config option, `singleton`, which when used with
`view_mode` set to `embedded` will determine whether a single chat or the full
app is embedded.
Similarly, in `overlayed`, `fullscreen` and `mobile` view modes, `singleton`
set to true will allow only one chat within the parameters of that view mode.
We're appropriating the word `singleton` and introducing the concepts of
`uniview` and `multiview` (see a785ca8) to cover what was
previously meant with `singleton`.
updates #1297
This changes the API method's current behavior by not automatically
maximizing (in `overlayed` view mode) or bringing a background chat into
foreground (in `fullscreen` view mode). Instead `force` needs to be set
to `true` for that to happen.
We distinguish between UniView and MultiView instances.
UniView means that only one chat is visible, even though there might be multiple ongoing chats.
MultiView means that multiple chats may be visible simultaneously.
Removed `_converse.chatboxviews.showChat` and trying to simplify how
chats are created and when they're shown.
Prompted by the work to split the MUC views into a separate plugin
1. Add a new `view_mode` value: `embedded`.
This value is used to determine wether the `converse-muc-embedded`
plugin is active or not.
2. Remove the need for the #converse-embedded-chat element.
Instead we reuse the #conversejs element and embed inside that.
3. Removed the need to manually blacklist core plugins
This is now done automatically if `view_mode` is set to `embedded`.
Perhaps eventually we don't blacklist at all and instead use the
`enable` plugin method. For some that probably won't work, like
`converse-chatview`, which we still need to be active.
- Use `enabled` method for plugins
- Rename `converse-inverse.js` to `converse-fullscreen.js` and make it a
core plugin.
- We're no longer making separate mobile and inverse builds
No longer a need to whitelist/blacklist plugins for inverse to work.
So that when a room is closed, a previously obscured chat doesn't become
visible again. Allowing this would force us to know which chat is visible, so
that we can falsify it's `hidden` attribute.