Commit Graph

340 Commits

Author SHA1 Message Date
JC Brand
6f1ac50893 Move leaky MUC abstractions out of converse-chatview.js
In the process also updated `updateSettings` to allow merging.
2016-10-27 14:56:31 +02:00
JC Brand
a09db2746c Only set muc domain once connected 2016-10-27 10:08:05 +02:00
JC Brand
aad90cc9df Add the ability to set the MUC domain to be used.
updates #203
2016-10-26 13:31:18 +00:00
JC Brand
01c3a50cc2 Add code to generically and recursively update user settings.
Also moved chatview specific settings.
2016-10-26 14:14:49 +02:00
JC Brand
623c56c89f Minor refactoring.
Split showRoomInfo into two new methods.
2016-10-18 11:34:46 +02:00
JC Brand
2d6d4df1f1 Use requestAnimationFrame instead of setTimeout
For better performance.
2016-10-17 13:16:41 +02:00
JC Brand
f60ee4d640 Refactor rooms to have separate handlers for presence and message stanzas 2016-10-13 18:22:37 +02:00
JC Brand
0020be34d7 Show a list of current bookmarks in the "Rooms" panel 2016-10-06 12:05:25 +02:00
JC Brand
e39999f3ec Check bookmarks for nicks when joining rooms 2016-10-05 23:15:42 +02:00
JC Brand
052dd19252 Initial work on adding chatroom bookmarks. 2016-10-05 23:15:42 +02:00
JC Brand
90d1071df0 Load templates in the respective plugins 2016-09-23 12:35:01 +02:00
JC Brand
89e5bd7c54 Update to pluggable.js 0.0.2 2016-08-31 10:39:11 +00:00
JC Brand
b8aaf751d2 Changes concerning caching of data in the browser.
- Add new configuration setting messages_storage
- Hardcode the storage for roster contacts and chatroom occupants to `sessionStorage`.
2016-08-21 10:55:45 +00:00
JC Brand
95a0b91afa Update 'rooms' api to allow user to pass in room attributes. 2016-08-19 17:16:36 +02:00
JC Brand
fdb0425722 Make sure to scroll down after revealing the chat room messages. 2016-08-18 09:08:12 +00:00
JC Brand
1f805fa1e2 Fixes surrounding chat state notifications in MUC.
- Send chat state notifications with type groupchat for MUC.
- Don't show own chat state notifications if received from the server.
2016-08-12 17:00:15 +02:00
JC Brand
fe46f2ee77 Chat state notifications are now also sent out from chat rooms. 2016-08-12 12:52:33 +00:00
JC Brand
9d28145724 Bugfix. For reserved rooms, only render config form when they're new. 2016-08-12 10:39:57 +00:00
JC Brand
66d80cc4db New configuration setting muc_instant_rooms.
This option is by default set to `true` which entails no changes in behavior
compared to previous versions of converse.js.

If set to `false`, then rooms first need to be configured before they can be
joined by other users (so-called "reserved" rooms).

More info on "instant" and "reserved" rooms here:
http://xmpp.org/extensions/xep-0045.html#createroom
2016-08-11 16:05:07 +00:00
JC Brand
34eb8cdfc4 Add getDefaultNickname method
so that plugins can have a different mechanism for determining the default
nick.
2016-08-11 12:19:43 +00:00
JC Brand
462a43b891 Add new config option muc_nickname_from_jid
which if set to `true` will let converse.js automatically take the node part of
a user's JID as their nickname when entering a room.

If there is a nickname clash, then the nickname will be disambiguated by adding
integers to it.

For example, john will become john-1, then john-2 and so forth.
2016-08-11 12:02:35 +00:00
JC Brand
a1e24c95c9 Add nickname to chat message when clicking on room occupant.
Allows you to easily mention someone in your message.
2016-07-26 09:31:23 +00:00
JC Brand
8a42e241b7 We no longer need to force the user to provide a JID
when calling `converse.rooms.open`.
2016-07-26 07:27:28 +00:00
JC Brand
172ce7e0ce Remove the members-list work and keep the nickname form stuff
It's not stable yet and XMPP server support is very patchy.
However, the nickname form work can be merged into master.
2016-07-26 07:14:22 +00:00
JC Brand
0d105b8a6e make sure room nick is remembered across page loads. 2016-07-26 07:12:56 +00:00
JC Brand
be47ceaab5 In case of a nickname conflict, enable the user to choose a new one 2016-07-26 07:12:56 +00:00
JC Brand
f56b85cff7 Check whether the user has a reserved nickname
when they enter a chat room. If they have, we'll use that, otherwise we render
a form where they can specify their nick.

Some chat room tests now fail and still need to be fixed.
2016-07-26 07:12:56 +00:00
JC Brand
cd75b2efab Let the user choose their nick after opening a chat room
This change is with an eye on supporting reserved nicknames, in which case the
user who has a reserved nickname won't have to choose a nick upon joining a
room.
2016-07-26 07:12:56 +00:00
JC Brand
5ffebda8c2 Fix failing tests 2016-07-26 07:12:56 +00:00
JC Brand
c1be16aaab Bugfix. Store and find occupant views by id, not jid
because we don't always have a jid...
2016-07-26 07:12:56 +00:00
JC Brand
93a8dfc024 Indicate whether a room occupant is online or not. 2016-07-26 07:12:56 +00:00
JC Brand
09802cfbde Add invitees to the member-list of the room. 2016-07-26 07:12:56 +00:00
JC Brand
60f433d12e Initial work on managing a room's member's list. 2016-07-26 07:12:56 +00:00
JC Brand
5ed8dfbe0a Get chat box views by id
Fixes bug when fetching controlbox, which doesn't have a jid
2016-07-05 07:43:34 +02:00
JC Brand
01f576e505 Return all rooms or private chat when caling get without arguments 2016-06-24 10:54:39 +02:00
JC Brand
10ca2900d4 Add a "create" parameter to rooms.get
to indicate whether the room should be created if not found.
2016-06-17 09:30:31 +00:00
JC Brand
73bf2f88ea Bugfix. The rooms.get method didn't work properly
because the method it was delegating to was applicable to private chats only.
2016-06-16 17:20:11 +02:00
JC Brand
70f1570984 Bugfix. If controlbox is not there, undefined is returned.:wq 2016-06-16 17:15:27 +02:00
JC Brand
e2f1c68cff Always show the chat when calling 'open' 2016-06-13 07:36:59 +00:00
JC Brand
380a60aebd Two fixes related to occupants toggling
* Empty chat area doesn't resize when hiding occupants.
* Properly change icon when toggling occupants
2016-06-13 07:36:59 +00:00
JC Brand
854633089d Add config setting to disable MUC direct invites. 2016-06-10 14:17:10 +00:00
JC Brand
1bf8b80cec Refactored converse-pluggable to remove all deferreds
by not attempting to load `optional_dependencies` via require.js.

Instead, we just expect them to be plugins and to have been loaded already.
2016-06-10 08:26:38 +00:00
JC Brand
62c170273e Allow plugins to have optional dependencies.
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.
2016-06-10 08:26:29 +00:00
JC Brand
3ca6108083 Add controlbox back as dependency of MUC.
Will have to come up with some other way to disable it in cases where it's not
needed.
2016-06-06 20:52:05 +00:00
JC Brand
66242fc2f2 Remove the controlbox as a dependency of converse-muc. 2016-06-03 18:47:23 +02:00
JC Brand
1b8ab4c4ec Refactor code into insertIntoDOM method
To make overridding it easier.
2016-06-03 13:56:00 +02:00
JC Brand
6c99c51c74 New API method converse.rooms.close(). 2016-06-03 08:41:13 +00:00
JC Brand
5993fba1d4 Fix MAM issue. Messages weren't being queried for properly
because the archive ids of messages weren't being stored.
2016-05-30 16:19:05 +00:00
JC Brand
d9a2c1623f Make new msgs indicator clickable in chat rooms 2016-05-30 09:45:39 +00:00
JC Brand
c738d085c4 Indicate to the user when there are unread messages
further down in the chat box.
2016-05-28 10:07:11 +00:00
JC Brand
619d970f25 Scroll down on <subject> messages.
Also, don't call scrollDown unnecessarily in showStatusMessages
2016-05-27 12:53:07 +00:00
JC Brand
bbc23764e7 Initial work on keeping track whether the user scrolled
so that we don't scroll down while the user is reading messages further up.
2016-05-27 10:07:43 +00:00
JC Brand
22041b3d7f Bugfix, room subject wasn't being shown. Also added a test for it. 2016-05-25 09:22:27 +00:00
JC Brand
7b006f31d4 Fix failing test.
When sending a MUC message, fullname should be the user's nick in the chat room.
2016-05-25 09:00:25 +00:00
JC Brand
2473fb133a On 2nd thought, don't query the msg text
I'm afraid it might get very expensive.
2016-05-25 08:31:35 +00:00
JC Brand
29c2a96481 Bot message doesn't appear when it has the same id as its command 2016-05-25 07:54:58 +00:00
JC Brand
d0c13ea91c Small translation tweaks and then compiled i18n files 2016-04-07 10:42:27 +00:00
JC Brand
94693f2d02 Some refactoring to fix issues with how/when chat rooms are shown
- Don't call show in a room's initialize method (instead let the code be more
  similar to normal chats, in that it should listen to the "show" trigger).
- Rename chatBoxShouldBeShown to chatBoxMayBeShown
- Implement auto_join for rooms only once boxes have been fetched already.
2016-04-05 11:23:16 +00:00
JC Brand
64eb5d2f4a Fix grammar 2016-04-04 10:34:23 +00:00
JC Brand
a6c3b46237 Move the drag-resize code into a separate component. 2016-04-01 12:46:19 +00:00
JC Brand
a9a9368439 Bugifx. rooms weren't shown if converse-minimize was disabled. 2016-03-31 15:01:27 +00:00
JC Brand
4c6bd1f49c Cleaner separation between minimize/trimming feature and core
One visible effect is that when this component is now removed,
minimize buttons are not visible on the chat boxes.

updates #622
2016-03-31 08:40:25 +00:00
JC Brand
ed4b9a85cc Remove ChatBox views when they get closed.
Previously views were only hidden, but not removed. This was an unnecessary
"optimization" which introduced unnecessary complexity.

Problem solved was that closing minimized chats didn't dereference the model
for hidden "normal" chat views, causing an exception to be raised when trying
to log out.
2016-03-28 12:23:36 +00:00
JC Brand
946e9fed5d Add new MUC option auto_join_rooms.
Fixes #156
2016-03-22 08:15:52 +00:00
JC Brand
fc7f50887a Refactored MUC plugin to not have to override ChatBoxes collection.
Instead we use event handlers.
2016-03-22 07:49:25 +00:00
JC Brand
2d846961c2 Use 'type' = 'chatroom' instead of 'chatroom' boolean. 2016-03-21 10:00:15 +00:00
JC Brand
82aa9fec2c Support for showing headline messages. 2016-03-21 10:00:10 +00:00
JC Brand
8e18d736b4 fixed indentation of comments 2016-03-19 22:16:00 +00:00
JC Brand
a2b8d04d84 Move config settings to the relevant plugins 2016-03-18 08:12:23 +00:00
JC Brand
6618d694b1 No need to override ChatBoxView with MUC-specific method 2016-03-16 09:03:00 +00:00
JC Brand
2fa39f2150 Move dependencies to the plugins that actually use them 2016-03-16 09:02:12 +00:00
JC Brand
9d9f64b2c3 declare namespace in relevant plugin 2016-03-14 16:46:04 +00:00
JC Brand
7039dbe01b Move chat minimization to a separate plugin 2016-03-14 16:38:43 +00:00
JC Brand
fc251db59e Let MUC plugin override the chatbox wrapper. 2016-03-14 16:02:43 +00:00
JC Brand
1676258c38 Move the MAM features to a separate plugin. 2016-03-14 14:04:36 +00:00
JC Brand
fe47773c7f Move ChatView into separate plugin. 2016-03-14 14:04:36 +00:00
JC Brand
8b459c68b1 Call trimChats in the show method of the box view
Not in the onAdded handler.
2016-03-09 11:03:06 +00:00
JC Brand
0aa0c02124 Add tests for src/converse-notification.js. updates #443
In the process refactored the code being tested.

- Move notifications code in MUC to src/converse-notification.js
- Trigger the 'contactStatusChanged' event in RosterContact and not in
  ChatBoxView (which might not exist).
2016-03-08 10:44:27 +00:00
JC Brand
23a1dc4f2b Some fixes concerning event emitting.
Don't make the event "this" context the protected converse object.
Can't trigger multiple data parameters, need to pass an object if there are
multiple values to be sent.
2016-03-01 22:39:45 +00:00
JC Brand
9cce0ff6ae Add plugin settings to default settings.
So that they are retrievable via the API.
2016-03-01 08:57:57 +00:00
JC Brand
cd731ed699 Some refactoring to make plugins easier.
- Refactored sound notification to make it a bit more generic
- Split up onMessage
2016-02-29 20:54:34 +00:00
JC Brand
dcd090ff31 Rip out the controlbox code and put it in src/converse-controlbox.js
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.
2016-02-29 16:40:51 +00:00
JC Brand
9ae2f71747 Found more chatroom specific code in converse-core.js 2016-02-29 16:40:51 +00:00
JC Brand
9f9b38f852 Some i18n fixes
The __ translate method should only be run *after* converse.js has been
initialized and we know what the actual desired language is

Also fix bug in src/locales.js where wrong langs were assigned to wrong keys.
2016-02-28 08:45:36 +00:00
JC Brand
e79c204241 Refactor the API out into a separate module, src/convers-api.js
Plugins are now also updated so that they can get the closured converse object
directly and don't need to rely on _super.
2016-02-20 15:06:12 +00:00
JC Brand
cb241dd594 Moved all the registration code into a plugin 2016-02-19 10:43:46 +00:00
JC Brand
147a3c9e3e Found more MUC stuff in core.
Move the Occupants views and models to converse-muc.js as well as some
MUC-specific config variables.
2016-02-19 09:45:24 +00:00
rlanvin
00caccd1a3 Fix non_amd.html
- converse-muc.js was overriding the global "converse" variable
  with undefind (the factory function didn't return anything)
- locales was not defined in utils.js in non AMD (not passed in
  the factory function)
2016-02-17 10:04:46 +02:00
JC Brand
9eba9989dc OTR stuff has been moved to a component/plugin in src/converse-otr.js
Also fixed errors with converse obj not being defined in the MUC plugin.
2016-02-16 07:47:16 +00:00
JC Brand
576efc4815 Initial work on breaking converse.js up into components
First component to remove is MUC which was moved to src/converse-muc.js
The components are written as plugins and use converse.js's plugin machinery.

Update the plugin docs somewhat with new insites found while working on the muc
plugin.
2016-02-16 07:47:08 +00:00