Don't sort the global ContactRosters collection (we only need to sort the
individual groups).
Only add the roster to the DOM once the users have been added.
When re-attaching to an existing session, chat rooms are fetched from
sessionStorage and we join them again.
However, unless we send a presence of type unavailable before reloading the
page, from the XMPP server's perspective we never left the chat room.
It therefore doesn't send us again the room occupants or room messages.
To send a presence of type unavailable is a hack and not desireable. Rather, we
want to stay in the room and just re-attach to it upon page reload.
In order to do this, we need some new functionality.
* Refactor the chat room sidebar into a new Backbone Model/View combo. (done).
* Store/fetch room occupants in/from sessionStorage (done).
* Store/fetch room messages in/from sessionStorage (not yet done).
* Instead of re-joining a chat room which we never left, just register the event handlers again. (not yet done).
Instead of differentiating between trimmed chats and minimized chats, the two
are now combined into the same thing.
This commit contains some initial work, but functionality is still impaired.
Configuration options have changed a bit.
show_emoticons and show_call_button are now removed. Instead the toolbar is
configured via a new config option: "visible_toolbar_buttons".
- disable drag resizing when chatboxes are minimized.
- refactored chat box and chat room markup so that they are more similar.
- don't make the chat box title clickable if no vcard URL is available
- make only the title text clickable, not the whitespace
- fixed toggling of resized chats