Add new option include_offline_state
which is by default false
We remove the offline state as a choice in the dropdown because 'offline' is not a valid XMPP state and it doesn't propagate across tabs. Updates: #547
This commit is contained in:
parent
bc571732e0
commit
dcf09ee924
|
@ -316,6 +316,7 @@
|
||||||
forward_messages: false,
|
forward_messages: false,
|
||||||
hide_muc_server: false,
|
hide_muc_server: false,
|
||||||
hide_offline_users: false,
|
hide_offline_users: false,
|
||||||
|
include_offline_state: false,
|
||||||
jid: undefined,
|
jid: undefined,
|
||||||
keepalive: false,
|
keepalive: false,
|
||||||
locked_domain: undefined,
|
locked_domain: undefined,
|
||||||
|
@ -2223,6 +2224,7 @@
|
||||||
label_away: __('Away'),
|
label_away: __('Away'),
|
||||||
label_offline: __('Offline'),
|
label_offline: __('Offline'),
|
||||||
label_logout: __('Log out'),
|
label_logout: __('Log out'),
|
||||||
|
include_offline_state: converse.include_offline_state,
|
||||||
allow_logout: converse.allow_logout
|
allow_logout: converse.allow_logout
|
||||||
});
|
});
|
||||||
this.$tabs.append(converse.templates.contacts_tab({label_contacts: LABEL_CONTACTS}));
|
this.$tabs.append(converse.templates.contacts_tab({label_contacts: LABEL_CONTACTS}));
|
||||||
|
|
|
@ -12,6 +12,8 @@
|
||||||
- #535 Messages not received when room with mixed-case JID is used. [jcbrand]
|
- #535 Messages not received when room with mixed-case JID is used. [jcbrand]
|
||||||
- #536 Presence not sent out (in cases where it should) after page refresh. [jcbrand]
|
- #536 Presence not sent out (in cases where it should) after page refresh. [jcbrand]
|
||||||
- #540 `bind is not a function` error for plugins without `initialize` method. [jcbrand]
|
- #540 `bind is not a function` error for plugins without `initialize` method. [jcbrand]
|
||||||
|
- #547 By default the `offline` state is no longer choosable.
|
||||||
|
See [include_offline_state](https://conversejs.org/docs/html/configuration.html#include_offline_state) for details. [jcbrand]
|
||||||
- A chatroom invite might come from someone not in your roster list. [ben]
|
- A chatroom invite might come from someone not in your roster list. [ben]
|
||||||
|
|
||||||
## 0.10.0 (2015-11-05)
|
## 0.10.0 (2015-11-05)
|
||||||
|
|
|
@ -341,6 +341,108 @@ domain_placeholder
|
||||||
|
|
||||||
The placeholder text shown in the domain input on the registration form.
|
The placeholder text shown in the domain input on the registration form.
|
||||||
|
|
||||||
|
expose_rid_and_sid
|
||||||
|
------------------
|
||||||
|
|
||||||
|
* Default: ``false``
|
||||||
|
|
||||||
|
Allow the prebind tokens, RID (request ID) and SID (session ID), to be exposed
|
||||||
|
globally via the API. This allows other scripts served on the same page to use
|
||||||
|
these values.
|
||||||
|
|
||||||
|
*Beware*: a malicious script could use these tokens to assume your identity
|
||||||
|
and inject fake chat messages.
|
||||||
|
|
||||||
|
forward_messages
|
||||||
|
----------------
|
||||||
|
|
||||||
|
* Default: ``false``
|
||||||
|
|
||||||
|
If set to ``true``, sent messages will also be forwarded to the sending user's
|
||||||
|
bare JID (their Jabber ID independent of any chat clients aka resources).
|
||||||
|
|
||||||
|
This means that sent messages are visible from all the user's chat clients,
|
||||||
|
and not just the one from which it was actually sent.
|
||||||
|
|
||||||
|
This is especially important for web chat, such as converse.js, where each
|
||||||
|
browser tab functions as a separate chat client, with its own resource.
|
||||||
|
|
||||||
|
This feature uses Stanza forwarding, see also `XEP 0297: Stanza Forwarding <http://www.xmpp.org/extensions/xep-0297.html>`_
|
||||||
|
|
||||||
|
For an alternative approach, see also `message_carbons`_.
|
||||||
|
|
||||||
|
fullname
|
||||||
|
--------
|
||||||
|
|
||||||
|
If you are using prebinding, can specify the fullname of the currently
|
||||||
|
logged in user, otherwise the user's vCard will be fetched.
|
||||||
|
|
||||||
|
hide_muc_server
|
||||||
|
---------------
|
||||||
|
|
||||||
|
* Default: ``false``
|
||||||
|
|
||||||
|
Hide the ``server`` input field of the form inside the ``Room`` panel of the
|
||||||
|
controlbox. Useful if you want to restrict users to a specific XMPP server of
|
||||||
|
your choosing.
|
||||||
|
|
||||||
|
hide_offline_users
|
||||||
|
------------------
|
||||||
|
|
||||||
|
* Default: ``false``
|
||||||
|
|
||||||
|
If set to ``true``, then don't show offline users.
|
||||||
|
|
||||||
|
include_offline_state
|
||||||
|
---------------------
|
||||||
|
|
||||||
|
* Default: `false`
|
||||||
|
|
||||||
|
Originally, converse.js included an `offline` state which the user could
|
||||||
|
choose (along with `online`, `busy` and `away`).
|
||||||
|
|
||||||
|
Eventually it was however decided to remove this state, since the `offline`
|
||||||
|
state doesn't propagate across tabs like the others do.
|
||||||
|
|
||||||
|
What's meant by "propagate across tabs", is that when you set the state to
|
||||||
|
`offline` in one tab, and you have instances of converse.js open in other tabs
|
||||||
|
in your browser, then those instances will not have their states changed to
|
||||||
|
`offline` as well. For the other statees the change is however propagated.
|
||||||
|
|
||||||
|
The reason for this is that according to the XMPP spec, there is no `offline`
|
||||||
|
state. The only defined states are:
|
||||||
|
|
||||||
|
* away -- The entity or resource is temporarily away.
|
||||||
|
* chat -- The entity or resource is actively interested in chattiIng.
|
||||||
|
* dnd -- The entity or resource is busy (dnd = "Do Not Disturb").
|
||||||
|
* xa -- The entity or resource is away for an extended period (xa = "eXtended Away").
|
||||||
|
|
||||||
|
Read the [relevant section in the XMPP spec](https://xmpp.org/rfcs/rfc6121.html#presence-syntax-children-show) for more info.
|
||||||
|
|
||||||
|
What used to happen in converse.js when the `offline` state was chosen, is
|
||||||
|
that a presence stanza with a `type` of `unavailable` was sent out.
|
||||||
|
|
||||||
|
This is actually exactly what happens when you log out of converse.js as well,
|
||||||
|
with the notable exception that in the `offline` state, the connection is not
|
||||||
|
terminated. So you can at any time change your state to something else and
|
||||||
|
start chatting again.
|
||||||
|
|
||||||
|
This might be useful to people, however the fact that the `offline` state
|
||||||
|
doesn't propagate across tabs means that the user experience is inconsistent,
|
||||||
|
confusing and appears "broken".
|
||||||
|
|
||||||
|
If you are however aware of this issue and still want to allow the `offline`
|
||||||
|
state, then you can set this option to `true` to enable it.
|
||||||
|
|
||||||
|
i18n
|
||||||
|
----
|
||||||
|
|
||||||
|
* Default: Auto-detection of the User/Browser language
|
||||||
|
|
||||||
|
If no locale is matching available locales, the default is ``en``.
|
||||||
|
Specify the locale/language. The language must be in the ``locales`` object. Refer to
|
||||||
|
``./locale/locales.js`` to see which locales are supported.
|
||||||
|
|
||||||
jid
|
jid
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
|
@ -4,7 +4,9 @@
|
||||||
<option value="online">{{label_online}}</option>
|
<option value="online">{{label_online}}</option>
|
||||||
<option value="dnd">{{label_busy}}</option>
|
<option value="dnd">{{label_busy}}</option>
|
||||||
<option value="away">{{label_away}}</option>
|
<option value="away">{{label_away}}</option>
|
||||||
|
{[ if (include_offline_state) { ]}
|
||||||
<option value="offline">{{label_offline}}</option>
|
<option value="offline">{{label_offline}}</option>
|
||||||
|
{[ } ]}
|
||||||
{[ if (allow_logout) { ]}
|
{[ if (allow_logout) { ]}
|
||||||
<option value="logout">{{label_logout}}</option>
|
<option value="logout">{{label_logout}}</option>
|
||||||
{[ } ]}
|
{[ } ]}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user