`toLocaleString` now returns element attributes in alphabetical order
(for better cross-browser consistency).
Also, `toLocaleString` is now used in favor of `outerHTML` because
browsers aren't consistent with one another in their output.
This change refactors out the plugin code from converse-core into
src/converse-puggable.js
Additionally, plugins now have an optional attribute `optional_dependencies`
which is an array of dependencies which are "nice-to-have" but not essential.
Work has also been done to ensure that a plugins' dependencies are first loaded
before the plugin itself.
Also fixed an issue w.r.t the plugin architecture. Previously infinite
recursion would happen when more than one plugin was overriding a method.
Resolved now by using a wrapper function that lazily sets the correct super
method.
The ChatBox.show() method was being called for every invocation, 100ms after
the fact, instead of it being called only once.
Fixed that and also changed to call it at the start.
Gets thrown every time converse learns of a supported server service.
Useful when 3rd party code wants to use API methods that depend on the service
being discovered first.
- Add new config option csi_waiting_time for CSI support.
- The auto_away and auto_xa options won't send out CSI stanzas if csi_waiting_time is 0
- Update docs and add tests for both features.
* Update the docs to mention the new ``authentication`` option.
* Update failing tests due to ``prebind`` being replaced with ``authentication``.
* Rename 'manual' value for authentication to 'login' since it's used in both manual and auto cases.
This caused a bug whereby a chat box would open only on chat state
notifications.
Also refactored the chats.open and chats.get methods so that they now reuse the
same map function and so that chats.get can now return any chat box and not
just already open ones.
Updated the tests to properly test this and updated the docs.
* Let contacts.get() return all roster contacts.
* Also, add "open" method for the chats API.
* chats.get will now only return a chat box if it's already open.