Commit Graph

468 Commits

Author SHA1 Message Date
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
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
c877f63bf0 polyfill startsWith, to make the tests pass. 2016-12-05 18:55:11 +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
7ad39cfdb9 Fetch the room information before opening the room. 2016-12-05 06:07:01 +00:00
JC Brand
67cdf5daf2 converse-muc: Expand the room configuration test 2016-12-04 18:06:11 +00:00
JC Brand
d109ed9416 converse-muc: Fix failing test.
No need to manually call `renderChatArea`.
2016-12-04 14:40:50 +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
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
de07b6a529 No need for two AMD-load cycles. 2016-11-30 12:18:58 +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
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
9bf00241de Updates #721 Restore sessions when logging in anonymously
together with keepalive.
2016-11-07 18:48:49 +01:00
JC Brand
27035d47dc Remember toggle state of bookmarks list. 2016-11-03 15:33:56 +00:00
JC Brand
64b5755d10 Add a quick test for remembering of open tab. 2016-11-03 14:10:08 +00:00
JC Brand
a2f4acdcee All tests suites now updated and isolated. 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
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
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
1de2f7145c Let bookmarks list use same markup/css as the available rooms list 2016-10-18 11:34:46 +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
43ae702c7a Only fetch bookmarks once chatboxes can be handled. 2016-10-13 18:08:59 +02:00
JC Brand
fc48e02937 More lazily render the bookmarks list
Could still be improved.
2016-10-06 13:21:59 +02:00
JC Brand
ee6c5dbf49 Add overflow for very long bookmark names 2016-10-06 12:48:16 +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
c3456eeede Test fixes.
- Call `_initialize` after tests have run
  Since the tests call `teardDown`, which removes all chatboxes.
- Open controlbox when navigating to panel
2016-10-06 09:00:57 +02:00
JC Brand
e39999f3ec Check bookmarks for nicks when joining rooms 2016-10-05 23:15:42 +02:00
JC Brand
7319ebf087 Use 'connected' event instead of 'initialized' which has been deprecated 2016-10-05 23:15:42 +02:00
JC Brand
6972066076 Bookmarked rooms will now be automatically opened
If configured for it.
2016-10-05 23:15:42 +02:00
JC Brand
e80f001b35 Allow bookmarks to be removed from rooms
Refactored the code a bit in the process.
2016-10-05 23:15:42 +02:00
JC Brand
7ca7943706 Indicate whether a chatroom has been bookmarked. 2016-10-05 23:15:42 +02:00
JC Brand
3e77deee26 Bugfix in format of IQ stanza to save bookmarks. 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
6ac4f2601d Fixes #677 Chatbox does not open after close
Problem was a race condition between hide and show methods.
Solution was to not hide the chat box during the initialize method.
2016-08-12 20:38:39 +00: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
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
561c138edd Bugfix. Allow multiple MAM queries to be made simultaneously. 2016-07-28 18:01:37 +02: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
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
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
dcd1a847bd Fix failing tests.
We now need to mock some extra XMPP stanzas being received when a user enters a chat
room in tests.
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
5ffebda8c2 Fix failing tests 2016-07-26 07:12:56 +00:00
JC Brand
71381e2f22 Show requesting contacts when filtering by chat state.
Also add an initial test case for filtering by chat state.
2016-07-18 08:42:07 +00:00
JC Brand
be122af3ed Add tests for rendering of error messages. 2016-06-23 08:56:15 +02:00
JC Brand
9cfec0ba8c Show requesting contacts at the top of the roster view. 2016-06-21 17:48:18 +00:00
JC Brand
705c043852 Fixes concerning tab visibility 2016-06-17 09:30:47 +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
6c99c51c74 New API method converse.rooms.close(). 2016-06-03 08:41:13 +00:00
JC Brand
a050015e61 Add processing hints to chat state notifications
So that they're not stored in MAM.
2016-05-30 16:53:31 +00:00
JC Brand
bd23a7751a Add processing hints to OTR messages
so that they're not stored in MAM and not forwarded.

updates #553
2016-05-30 16:52:26 +00:00
JC Brand
b6fcc9b79d Don't render unescaped urls. 2016-05-28 11:28:32 +00:00
JC Brand
5a1b308edd Render images from URLs 2016-05-28 11:13:49 +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
82ee7f694e Don't ignore messages sent to different resource
But make this behavior configurable. Updates #647
2016-05-28 06:36:24 +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
aaaacf2513 Also show the day for the first received messages.
Until now, new days were only indicated for messages received on different days
*after* the day's messages.
2016-05-25 06:24:42 +00:00
JC Brand
218000551d Add the ability to replay transcripts of chat logs. 2016-04-28 14:58:09 +00:00
JC Brand
09457d8461 Properly handle notifications for groupchat messages 2016-04-28 14:58:09 +00:00
JC Brand
d2ee62da71 Make sure that there is a valid connection when login API is called
In the process I had to refactor some methods which required the mock
connection of tests to be changed as well.
2016-04-13 15:11:50 +00:00
JC Brand
3246cb45a4 Another test case for headlines 2016-04-07 14:12:31 +00:00
JC Brand
d0c13ea91c Small translation tweaks and then compiled i18n files 2016-04-07 10:42:27 +00:00
JC Brand
64eb5d2f4a Fix grammar 2016-04-04 10:34:23 +00:00
JC Brand
8e0f8f0a6d Add the ability to filter contacts by chat state.
The roster filter is now also remembered across page loads.
2016-04-02 11:30:54 +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
f353fe8611 Bugfix for headline messages.
Couldn't handle messages with no "from" attribute.
Some refactoring to add code that checks if a messages is a headline to the
utils module.
Updated tests. Add sinon so that we can test returned value of spy.
2016-03-28 10:51:32 +00:00
JC Brand
b3e9a177e2 Merge pull request #617 from lixmal/master
Remove split of fullname. Fixes #609
2016-03-28 10:28:38 +02:00
Viktor Liu
eec2a4f5e9 Fix tests for #609 2016-03-23 23:27:25 +01: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
3aefba3200 Change ping plugin to not have to use overrides.
Had to add a `reconnect` event to core.
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
08222182c5 Move VCard functionality into separate plugin 2016-03-16 11:21:27 +00:00
JC Brand
bf9929b1e3 Fix failing tests after adding rel="noopener" 2016-03-16 09:06:44 +00:00
JC Brand
1676258c38 Move the MAM features to a separate plugin. 2016-03-14 14:04:36 +00:00
JC Brand
da72be8f3e Fix intermittent browser test failures 2016-03-14 14:04:36 +00:00
JC Brand
0746f2aa68 Fix failing tests. 2016-03-09 11:16:15 +00:00
JC Brand
d92645c8d3 Show a desktop notification when a contact request is received
updates #443
2016-03-08 11:04:10 +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
f7725943f8 Emit an event 'contactRequest' when a subscription request is received 2016-03-01 21:57:49 +00:00
JC Brand
26cb98d963 Move playing of sounds to the notification plugin.
Also add a config setting for the icon shown in HTML5 notificatins.

updates #443
2016-03-01 08:58:36 +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
0db447a585 Add some tests for the ping feature. 2016-02-19 13:02:42 +00:00
JC Brand
da0c858fe0 Used debounce ineffectually. Fixed now.
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.
2016-02-16 07:47:16 +00:00
JC Brand
f779b9a3c0 Fixes #535. Room doesn't get opened when mixed-case JID is used. 2016-01-15 08:49:19 +00:00
JC Brand
ea701f3865 updates #493
Compare bare JID of from attr in roster update. @teseo's fix was too specific
and tailored for a misbehaving server (servers shouldn't be sending from the
full JID in a roster push).
2015-11-04 18:00:44 +00:00
JC Brand
dfcebeb621 Rename participants to occupants. 2015-10-31 16:48:50 +00:00
JC Brand
3dfa36c2cb Fix tests after small markup change 2015-10-30 17:44:24 +00:00
JC Brand
7ad3c385aa Rename chat-message-* class to chat-msg-* 2015-10-28 08:52:19 +00:00
JC Brand
ca2b40f79c More css refactoring. 2015-10-28 08:49:28 +00:00
JC Brand
8b3ede9e56 Remove unused parts from Gruntfile
Wouldn't mind getting rid of grunt completely.
2015-10-27 09:11:36 +00:00
JC Brand
e835a25184 Add jshint checking and fix errors. 2015-10-25 17:55:18 +00:00
JC Brand
ff2910b9ce Fix CSS and horizontal dragresize for chat rooms.
- Rename .chat-body to .chatroom-body
- Upate SASS for chat rooms
- Hide the room occupants view by toggling the class "hidden"
- The chatroom chat area and occupants list are now shown as table cells.
2015-10-24 20:46:58 +00:00
JC Brand
6344703cb8 Merge pull request #500 from 1st8/master
Fix #467
2015-10-12 16:53:23 +02:00
JC Brand
81391ff4a2 Ensure that tests execute with 'en' locale. refs #501 2015-10-12 14:43:20 +00:00
JC Brand
12d6785d02 Fixes #472 Cannot read property 'splitOnce' of undefined 2015-10-12 14:24:22 +00:00
Christoph
e20018961f Fix outgoing chat messages not having a msgid when being put into sessionStorage, fixes #467 2015-10-12 11:06:12 +02:00
JC Brand
e3cb6f3fc7 Use .bind instead of $.proxy 2015-10-07 09:05:53 +00:00
JC Brand
0d4cf15f0e Move changelog entry to right version and add test case. 2015-09-09 10:17:46 +02:00
JC Brand
2cc76c3af7 Type attribute on data forms is mandatory. updates #306
See here:
https://github.com/strophe/strophejs-plugins/pull/65
2015-07-29 14:35:07 +02:00
JC Brand
f0df6df219 Add a test for serviceDiscovered event. 2015-07-21 23:24:05 +02:00
JC Brand
1dbe0ed8de Trying to work around timezone issues.
Causing tests to fail on Travis.
2015-07-21 23:18:03 +02:00
JC Brand
5eea22f245 More work on showing archived chatroom messages.
updates #306
2015-07-21 20:10:31 +02:00
JC Brand
e8fba4a7d0 Refactored showNewDay to indicate day changes between messages.
updates #306
2015-07-19 13:43:26 +02:00
JC Brand
99c7b9cb95 Add a new emitted event: serviceDiscovered.
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.
2015-07-17 20:34:48 +02:00
JC Brand
087718d7f0 Expand a test case to also check for received archived messages.
updates #306
2015-07-13 23:16:21 +02:00
JC Brand
1a9771c717 Test code which receives archived messages and calls callback
updates #306
2015-07-12 23:58:07 +02:00
JC Brand
27afd32aeb Test that archive.query takes a Strophe.RSM object.
updates #306
2015-07-12 22:00:32 +02:00
JC Brand
69de033cea Write documentation for the archive API. Also add another test.
update #306
2015-07-12 21:27:22 +02:00
JC Brand
9abbd1e8f0 Allow a Strophe.RSM object to be passed in to archive.query.
updates #306
2015-07-11 14:55:02 +02:00
JC Brand
1261a2525d Use Strophe.RSM for result set management. 2015-07-11 12:03:20 +02:00
JC Brand
b77d76b364 Started adding the API for querying archived messages. 2015-07-11 06:36:44 +02:00
JC Brand
eeeaddbe04 Add the ability to read and set MAM preferences. 2015-07-10 15:24:13 +02:00
JC Brand
eae706690f Renamed some methods and added docstrings, for clarity. 2015-07-04 10:24:00 +02:00
JC Brand
6736a5bce4 Test carbons of user's own sent messages.
Found and fixed a bug in the process.
2015-07-03 11:55:13 +02:00
JC Brand
0afa7ec188 Don't carbon copy OTR messages. 2015-07-03 11:41:14 +02:00
JC Brand
0fdf28625b Add a test for forwarded carbon messages. 2015-07-03 11:36:30 +02:00
JC Brand
c2ccb2c693 New test and fixes to the message handler. updates #431 2015-07-02 11:23:52 +02:00
JC Brand
b47069b4f6 Add, test and document an API method for setting the user's status.
fixes #367
2015-06-27 21:21:27 +02:00
JC Brand
c745e1ebff Cherry-pick only those languages from Moment which we support in converse.js 2015-06-22 22:20:02 +02:00
JC Brand
868435173f Decouple automatic away and XEP-0352 support.
- 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.
2015-06-22 00:01:31 +02:00
JC Brand
785244f15e Add a styleguide to the documentation.
Also update the contributor guidelines to mention the styleguide.
2015-06-16 00:20:28 +02:00
JC Brand
3afc0e58bc Bugfixes to make profiling work again. 2015-05-01 14:34:20 +02:00
JC Brand
848c13eb62 Merge branch 'master' into roster_refactor
Conflicts:
	dev.html
2015-04-21 16:51:15 +02:00
Guillermo Bonvehí
8934043d79 Submit registration form as xform or legacy
Support to send the registration form as legacy or xform, we
use the same variable form_type that was already being used when
calling render
Added submission tests
2015-04-21 11:05:03 -03:00
Guillermo Bonvehí
b08776a1ab Added form_type setting tests
Two tests were created to see if RegisterPanel.form_type is set
to correctly to legacy or xform when receiving server registration
form.
2015-04-21 10:22:48 -03:00
JC Brand
f399c5f681 Add more protocol tests.
* Unsubscribing
* Incoming subscription requests.

Noticed that it's not necessary to call "unauthorize" when setting
subscription="remove".
2015-04-10 16:30:04 +02:00
JC Brand
1ce328783c Also add tests for case where contact declines request.
Did a bit of renaming and fixed a bug in updateContact where a user wasn't
created when it should have been.
2015-04-10 13:01:31 +02:00
JC Brand
827efab093 Fix and expand broken tests after recent refactor 2015-04-10 01:23:33 +02:00
JC Brand
ade08104a2 Finish tests for the "happy path" of the add/subscribe protocol 2015-04-09 10:35:51 +02:00
JC Brand
c05d17ca25 Expand the protocol tests.
* Fixed a bug in the process which prevented "to" contacts from being shown as
existing.
* Add "to" or "both" as classes on the contacts to indicate their
subscription status.
* Delete roster handlers in tearDown method to avoid them being registered
multiple times.
2015-04-08 19:51:33 +02:00
JC Brand
c7bf1713d8 Add new spec protocol for testing the XMPP protocol.
Already testing the first 3 sections of RFC-3921 section 8.2 "User subscribes to contact".
2015-04-08 10:35:14 +02:00
JC Brand
7aba5b2af5 Fix test after refactoring. 2015-04-08 10:34:14 +02:00
JC Brand
330b1434bd Completely remove strophe.roster as a dependency. 2015-04-06 20:55:38 +02:00
JC Brand
1ea770c79a Add the ability to reject presence subscriptions.
Still part of the refactoring of strophe.roster.
2015-04-06 12:26:08 +02:00
JC Brand
f380e11851 Initial refactoring of roster and presence subscriptions.
The goal being to be able to remove strophe.roster completely.
2015-04-06 11:10:05 +02:00
JC Brand
df0c55ed4d Merge branch 'master' into anon_login 2015-04-04 11:32:22 +02:00
JC Brand
5a488333ec Add a test and changelog entry for #359
updates #359
2015-04-04 11:25:50 +02:00
JC Brand
a2be2567d2 Allow auto_login also with a provided jid and password.
* 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.
2015-04-02 13:07:59 +02:00
JC Brand
a2d27ee971 Merge branch 'master' into anon_login
Conflicts:
	converse.js
2015-04-02 12:23:13 +02:00
JC Brand
5ec7c67b50 Don't automatically show a chat box when creating it. updates #357
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.
2015-04-02 02:01:53 +02:00
JC Brand
4646944327 Add some auth tests. 2015-03-31 16:06:33 +02:00
JC Brand
14c09c509e Add some consistency to how errors are thrown.
Add tests for contacts.add API method and make it a bit more compact.
Add entry in changelog.

update #354
2015-03-31 15:29:41 +02:00
JC Brand
9dae305c23 Fix the failing test. 2015-03-22 12:52:54 +01:00