JC Brand
b2240cfe94
Use $.when to keep track of all outgoing promises
...
Now that we are sending multiple IQ stanzas when setting affiliations.
We now again have a sendAffiliation method, so we use that.
2016-12-08 07:34:01 +00:00
JC Brand
f5fbf71275
New config setting: muc_disable_moderator_commands
2016-12-07 13:48:47 +00:00
JC Brand
636f02109d
Various fixes in the delta algorithm
2016-12-07 13:02:03 +00:00
JC Brand
993c8f1695
We need to send out a separate IQ stanza for each affiliation
...
At least for Prosody.
2016-12-07 12:43:41 +00:00
JC Brand
54371f0e7d
Remove setAffiliation
and use the more general purpose setAffiliations
2016-12-07 11:45:51 +00:00
JC Brand
77d3e64f42
Specify the reason (if given) when setting someone's affiliation
...
This changed required me to go back to an array of maps instead of a single map
to store jids and affiliations.
2016-12-07 11:45:51 +00:00
JC Brand
b516ae51e7
Move code into separate function.
2016-12-07 10:34:02 +00:00
JC Brand
802c9d1f02
Make it configurable how the affiliations delta is computed.
...
When inviting someone to a members-only room, you only want to add an
affiliation of 'member' if they don't already have any other affiliation.
So we need to ignore the "new" member if they're already on *any* of the lists.
2016-12-06 20:04:08 +00:00
JC Brand
58f07cf115
Change the data structures representing members
...
Make the delta algorithm simpler. Fixed some delta bugs in the process.
2016-12-06 19:39:16 +00:00
JC Brand
c6767bcdaa
Refactor to send out 3 affiliation request stanzas.
...
One for each affiliation (member, owner, admin).
Unfortunately Prosody doesn't give you correct results if you query for all
three affiliations in one stanza.
We'll have to see whether setting all three in one stanza actually works.
2016-12-06 18:34:54 +00:00
JC Brand
6c725409c2
converse-muc: Only send the delta when setting the member list.
...
As required by XEP-0045.
This requires that we first fetch the existing member list, compute the delta
and then send that if there is one.
2016-12-06 15:18:33 +00:00
JC Brand
cf42911754
converse-muc: rename wrapping function again and put on converse
...
So that it can be overridden.
2016-12-05 18:31:58 +00:00
JC Brand
376c50fbc8
When inviting to a members-only room, first add to user to the member-list
2016-12-05 15:06:20 +00:00
JC Brand
088eb03b54
Immediately hide chat room on close.
...
Also, use sendPresence from latest strophe so that we have a timeout in case a
responding presence never comes.
2016-12-05 10:49:51 +00:00
JC Brand
7ad39cfdb9
Fetch the room information before opening the room.
2016-12-05 06:07:01 +00:00
JC Brand
5b944f9e5f
Fixes #737 : translations weren't being applied.
2016-12-04 16:53:35 +00:00
JC Brand
81e3cb976c
converse-muc: Show a spinner while fetching the config form
2016-12-04 15:11:09 +00:00
JC Brand
fd40f24710
converse-muc: Don't delete reference, can cause attribute error
2016-12-04 15:08:02 +00:00
JC Brand
be25c688ff
converse-controlbox: Use event listeners instead of (removed) overrides
...
Due to changes in `converse-core` the controlbox wasn't aware anymore of
disconnection or reconnection events.
2016-12-04 15:07:46 +00:00
JC Brand
2a81d2e6f3
converse-mam: Don't fetch MAM messages on each page load.
2016-12-04 14:45:36 +00:00
JC Brand
ec91175a70
converse-muc: Don't send a join presence at every page reload.
...
Instead, keep track of the connection state of the room and send a presence
only when the room's connection was disrupted.
2016-12-04 14:41:03 +01:00
JC Brand
d7892d942c
converse-muc: Bugfix.
...
Switching from bookmarks form to config form shows only spinner.
2016-12-04 14:40:55 +01:00
JC Brand
4026248c68
converse-muc: Fixes concerning room occupants.
...
- Fixed a sessionStorage caching bug caused by putting the nickname (which is
liable to change) in the cache key.
- Clear the occupants sessionStorage when closing a chat room.
2016-12-04 14:40:43 +01:00
JC Brand
69e2068241
converse-muc: Remove unused promises
...
Now that we cache disco info and not the room configuration.
2016-12-04 14:40:40 +01:00
JC Brand
81879bc070
converse-muc: Cache the room disco information
...
Instead of the room configuration.
This is because non-owners have access to the former, but not the latter.
2016-12-04 14:40:28 +01:00
JC Brand
0f4efac084
converse-muc: Docstrings.
2016-12-04 14:40:25 +01:00
JC Brand
fbf2e56be4
converse-muc: Cache the room configuration on the Backbone.Model object
2016-12-04 14:40:20 +01:00
JC Brand
6379676cff
converse-muc: Rename _transform
to getWrappedChatBox
.
2016-12-04 14:40:13 +01:00
JC Brand
5e1b094881
Expand upon rooms.open
testcase to test configuration
2016-12-02 21:35:56 +01:00
JC Brand
910e9bddcd
Refactoring in MUC
...
What started as an attempt to fix a bug in parseXUserElement, turned into
another large refactoring of MUC code, and it's not clear how to break this up
into multiple atomic commits. So I'm just pushing it all.
At least there are two new tests added to the suite.
2016-12-02 18:41:05 +01:00
JC Brand
a3bc7a18e5
Fixes #735 . Querying by attribute returns empty list
2016-11-30 18:47:29 +01:00
JC Brand
9edc97101b
Don't maximize minimized rooms when calling rooms.open
2016-11-30 11:03:28 +01:00
JC Brand
1b434dbe81
Updates #723 and #734 .
...
`converse.rooms.open` ignored the `muc_nickname_from_jid` setting.
2016-11-24 09:25:06 +01:00
JC Brand
a5f76abcf1
Updates #729 . Minimized chat boxes don't stay hidden
...
Bug got introduced during fix for #677
Eventually had to do a significant refactoring, to more consistently use the
`hidden` class instead of `display: None`. (relevant for #695 )
2016-11-22 17:42:58 +01:00
JC Brand
5a72466c45
Rename variables to adhere to coding style.
2016-11-22 08:54:17 +00:00
JC Brand
5e9e685219
Mention the actor (if available) when removed from room
2016-11-21 13:10:36 +00:00
JC Brand
e02c044ae4
Refactored notification code
...
responsible for showing messages based on the extended presence information.
- Use DOM API instead of jQuery
- Make info messages overridable (allows also for disabling them)
- Break up large function with inline callbacks into smaller ones
2016-11-21 12:57:22 +00:00
JC Brand
ebc7409d55
Enable new rooms to be configured automatically
...
Via `rooms.open` API method.
2016-11-20 16:42:11 +00:00
JC Brand
d26d41a701
Use 'hidden' class instead of .hide()
. Fixes #706
2016-11-07 14:10:39 +00:00
JC Brand
d3090f80bc
Remember which panel was open when reloading the page.
2016-11-02 22:08:20 +00:00
JC Brand
e5b2acde06
MUC: Don't send out unavailable presence when connection is lost.
2016-11-02 14:51:23 +00:00
JC Brand
e63853ee92
Add a logout
event.
...
updates #714
2016-11-02 08:42:24 +01:00
JC Brand
b6c88b92fd
Don't listen exclusively for keypress in a textarea
...
Could be a different element as well.
2016-10-28 13:32:35 +00:00
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