Commit Graph

643 Commits

Author SHA1 Message Date
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
008c07596a converse-core: Call _tearDown when initialized again
When it's clear that a previous teardown didn't happen.
So that objects can be garbage collected and that obsolete event handlers don't
fire anymore.
2016-12-06 11:07:52 +00:00
JC Brand
bd81a98ffa converse-rosterview: Remove the rosterview when tearing down.
It gets created anew when reconnecting or logging in.
2016-12-06 11:06:21 +00:00
JC Brand
c877f63bf0 polyfill startsWith, to make the tests pass. 2016-12-05 18:55:11 +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
59ad285823 converse-core: cause can sometimes be DISCONNECTING 2016-12-05 15:22:47 +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
e179811181 converse-controlbox: Fix empty controlbox toggle after disconnect
- Remove apparently unused `giveFeedback` method on ControlBoxView
- Don't show old connection feedback when rendering a new login form.
  Now also no need to explicitly remove feedback after disconnection.
2016-12-04 16:37:07 +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
f0a454561b converse-core: Properly disconnect if reconnection attempt fails. 2016-12-04 15:00: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
3b3720c32d converse-core: Attempt to log in again when reconnecting
and when auto_login is not `true`. Will only work if the page wasn't reloaded,
because then the password will still be on the connection.
2016-12-04 14:14:40 +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
6abd805b52 Call trimChats immediately, not only after the element is visible
Since the element will already be taking up space (due to the
`opacity:0` property being used, instead of `display:none`).
2016-11-30 11:21:19 +01:00
JC Brand
9edc97101b Don't maximize minimized rooms when calling rooms.open 2016-11-30 11:03:28 +01:00
JC Brand
96d311e2e9 Use CSS animations for fading in. 2016-11-30 11:03:28 +01:00
JC Brand
0d542cee8c New config settings `allow_bookmarks` 2016-11-24 09:52:05 +01:00
JC Brand
a4eb622aaa checkForReservedNick wasn't called if there aren't any bookmarks.
Updates #723, #734
2016-11-24 09:45:17 +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
182dc55f11 Bugfix. event wasn't defined 2016-11-24 02:06:58 +01:00
JC Brand
0b22b5a6e0 Emit a reconnecting event. 2016-11-23 14:50:28 +00:00
JC Brand
bfde4d3e4c Reconnection fixes.
- Reconnection failed if original connection was never established
- When the `credentials_url` is specified, keep on trying to reconnect.
2016-11-23 11:53:06 +00:00
JC Brand
e90632d6fd Bugfix. No roster when reconnecting. 2016-11-23 10:24:33 +00: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
c3b2a913bb Don't open the controlbox on requesting contacts.
Can get annoying very quickly
2016-11-22 17:41:57 +01:00
JC Brand
06cbd5cdd0 Use the chats_panel.html template in converse-minimize.js
To which it's actually applicable (instead of core).
2016-11-22 17:39:36 +01:00
JC Brand
586bbd0e4d Bugfix. First configure browserStorage for ChatBoxes
before populating the roster.
2016-11-22 09:35:36 +00:00
JC Brand
3b38f7237c Bugfix. Chatboxes aren't closed when logging out. 2016-11-22 09:12:39 +00:00
JC Brand
c670893058 Bugfix. Arrays in configuration settings were ignored. 2016-11-22 08:55:52 +00: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
9bf00241de Updates #721 Restore sessions when logging in anonymously
together with keepalive.
2016-11-07 18:48:49 +01:00
JC Brand
8c3ffdffbb Release 2.0.1 2016-11-07 14:43:48 +00:00
JC Brand
d26d41a701 Use 'hidden' class instead of .hide(). Fixes #706 2016-11-07 14:10:39 +00:00
JC Brand
27035d47dc Remember toggle state of bookmarks list. 2016-11-03 15:33:56 +00:00
JC Brand
a2f4acdcee All tests suites now updated and isolated. 2016-11-03 13:59:05 +00:00
JC Brand
3e4095734b Call _tearDown when logging out.
This is necessary for cleaning up after tests (now that each test has its own
initialized converse).

Should hopefully not cause any issues when logging out during normal use.
2016-11-03 13:59:05 +00:00
JC Brand
0c2c7be467 Close the controlbox when logging out...
and don't show the online count in the toggle.
2016-11-03 13:59:05 +00:00
JC Brand
5610d759c8 Call removeAll on rosterview when tearing down.
Otherwise RosterContactView objects stay around and keep on listening.
2016-11-03 13:59:05 +00:00
JC Brand
50275cce64 Remove shared state between tests
Only a small subset of tests currently working with this.
2016-11-03 13:59:05 +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
02864fd175 Don't assume the parent is the top-level message element. 2016-11-02 13:42:20 +00:00
JC Brand
151a476084 Find more cases of children that should be find. 2016-11-02 13:38:42 +00:00
JC Brand
ed01081240 Use $.find instead of $.children
To allow for better template customization.
2016-11-02 13:33:20 +00:00
JC Brand
38db959e11 Reconnection fixes. Fixes #712
- Remove groupviews, so that they'll get recreated upon reconnection
- Don't call `clearSession` when reconnecting. We want to reuse the
  Backbone collections.
- Emit `rosterInitialized` event and use that in converse-rosterview.js
  (instead of overriding).
- Refactor `onReconnected` to emit `rosterReadyAfterReconnection`, call
  `converse.populateRoster()` and `converse.chatboxes.onConnected()`.
- Recreate the roster view on the `rosterReadyAfterReconnection` event.
2016-11-02 13:13:49 +00:00
JC Brand
0d4993ef86 Merge branch 'master' of github.com:jcbrand/converse.js 2016-11-02 13:13:34 +00:00
JC Brand
e3d59afd80 Use converse instead of this, or that instead of bind 2016-11-02 12:46:29 +00:00
JC Brand
ec9ed96568 Remove {{message}} interpolation.
It's not used and confuses people. Instead the message gets inserted via
`$.text`, to avoid injection attacks.
2016-11-02 11:10:07 +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
7b003f1d9a Bugfix. Handle case where controlbox plugin is not loaded. 2016-10-27 13:22:57 +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
1b264461d7 Bugfix. Return after disconnection 2016-10-27 10:58:51 +00:00
JC Brand
bc5cd95a98 Various bookmarks fixes.
Including:
- Always render bookmarks list
- Hide bookmarks list if no bookmarks available
- Only send bookmarks stanza when appropriate
2016-10-27 10:49:09 +00:00
JC Brand
11c9670fc7 Render bookmarks list again after reconnection. 2016-10-27 10:38:06 +02:00
JC Brand
5b34ca9e37 Init bookmarks upon reconnection 2016-10-27 10:20:10 +02:00
JC Brand
a09db2746c Only set muc domain once connected 2016-10-27 10:08:05 +02:00
JC Brand
9ea018a512 Trigger onBookmarksFetched event and use to autojoin rooms 2016-10-27 10:07:45 +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
49500a5f2c Fix jshint error: undefined $ 2016-10-21 14:36:09 +00:00
JC Brand
d12309d70e Move converse.js to src/converse.js
Also remove "jquery", will be loaded implicitly
2016-10-21 13:52:00 +00:00
JC Brand
a51d503ea5 Remove invalid comment 2016-10-20 12:31:15 +00:00
JC Brand
1de2f7145c Let bookmarks list use same markup/css as the available rooms list 2016-10-18 11:34:46 +02:00
JC Brand
623c56c89f Minor refactoring.
Split showRoomInfo into two new methods.
2016-10-18 11:34:46 +02:00
JC Brand
0fe4031a1b Close all chat boxes when disconnected (with no reconnection attempt) 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
4b28f3f803 Bookmarks fixes.
- Remove bookmark from list when removed from collection
- Only render list after all bookmarks have been fetched
- Properly remove bookmarks from sessionStorage
2016-10-17 11:20:20 +02:00
JC Brand
b832285d93 Markup fix to allow bigger chatview avatar 2016-10-15 00:02:22 +02:00
JC Brand
862af642ff Move avatar markup to a template and make size configurable 2016-10-14 23:42:54 +02:00
JC Brand
2712bcb7cc Use strophejs-plugins from NPM 2016-10-13 21:55:39 +00: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
43ae702c7a Only fetch bookmarks once chatboxes can be handled. 2016-10-13 18:08:59 +02:00