Commit Graph

990 Commits

Author SHA1 Message Date
JC Brand
042c1947ed Add file-upload button 2018-04-14 07:40:07 +02:00
JC Brand
a9d2881888 Fix disco hierarchy
Previously we kept all entities and their items (which are also
instances of _converse.DiscoEntity) in a flat array.

Instead, we should have a tree-like structure where items are stored
on the relevant entity (and recursively on other items).
2018-04-14 07:36:24 +02:00
JC Brand
77a51cc2a6 Initial work on XEP-0363: HTTP File Upload 2018-04-14 07:36:24 +02:00
JC Brand
d278a02778 General cleanup 2018-04-14 07:34:50 +02:00
worlword
7660dbfb31 merge httpFileUpload-Branch with master 2018-04-12 07:43:39 +02:00
worlword
fa80749658 refactoring based on the review from jcbrand 06.Apr.2018 2018-04-11 15:29:41 +02:00
worlword
fa101d05c3 added tests from http-file-upload-Branch 2018-04-11 07:52:53 +02:00
JC Brand
9528d81c00 Move various MUC methods onto the Backbone.Model
To more cleanly separate views and models and to make MUC in headless
mode more viable.

Refs #1032
2018-04-10 18:59:02 +02:00
JC Brand
9a526d4194 Refactoring of the XEP-0085 Chat State Notifications code
* Distinguish between CSN messages and other types of messages
* Properly clear previous notifications
* Better handling of notifications from multiple users (in MUC)
* Rename methods to make clarify intent
2018-04-06 17:02:28 +02:00
worlword
76d6b94703 changed testcase for toolbar. now expects 3 buttons instead of 2 2018-04-04 16:41:20 +02:00
ChaosKid42
fce9ee0db9 replace geoURIs (e.g. from Convesations) by links to openstreetmap (#1054)
* replace geoURIs by link to openstreetmap

* Added testcase
2018-03-31 18:29:01 +02:00
JC Brand
6381128a5f Test was failing due to file rename 2018-03-30 15:41:09 +02:00
JC Brand
b39429b229 Bump timeouts to try and avoid unnecessary test failures on Travis 2018-03-30 15:25:31 +02:00
JC Brand
ebfd0a8f77 Move various funcitons related to MUC member lists to utils
and out of the MUC views plugin.

Refs #1032
2018-03-30 14:23:39 +02:00
JC Brand
06141b3212 Move methods from MUC view to model
* checkForReservedNick
* parseRoomFeatures
* sendConfiguration

Refs #1032
2018-03-30 14:23:39 +02:00
JC Brand
6a12a96e85 Fixes #1043 Parsing of bookmarks fail with missing nick element. 2018-03-30 14:23:39 +02:00
JC Brand
ce849aaffc Fix failing tests 2018-03-30 14:23:39 +02:00
JC Brand
4f2b040f22 Allow setting a nickname when adding a roster contact 2018-03-30 14:22:51 +02:00
JC Brand
95406a149d Re-add xhr_user_search_url and autocomplete when adding contacts 2018-03-30 14:22:51 +02:00
JC Brand
1e927294e0 Fix failing test 2018-03-30 14:22:50 +02:00
JC Brand
b6d0f87129 Remove invalid test 2018-03-30 14:22:50 +02:00
JC Brand
2977643bf7 Fix failing tests 2018-03-18 03:35:34 +00:00
JC Brand
11f02f78fe Fix more failing tests 2018-03-17 18:54:19 +00:00
JC Brand
cb0b99ac37 Bugfix. Show message author in spoiler messages 2018-03-17 14:39:30 +00:00
JC Brand
850c6aa2bd Fix more failing tests 2018-03-16 23:37:52 +00:00
JC Brand
56e28070b2 Fix failing test 2018-03-16 19:48:31 +00:00
JC Brand
7b8a244163 Fix failing bookmarks tests 2018-03-16 11:49:39 +00:00
JC Brand
2f46bb8ce7 Fix failing tests 2018-03-14 23:10:31 +00:00
JC Brand
1565decfc0 Add identifiable class name 2018-03-14 18:25:33 +00:00
JC Brand
2ff18c2cfb Fix emoji test (now that bootstrap dropdown is used) 2018-03-14 17:32:01 +00:00
JC Brand
044907e4fa Looks like focus parameter was never used. 2018-03-14 13:27:36 +00:00
JC Brand
03d7f07a4c Bugfix. Chat wasn't being opened when receiving a message. 2018-03-13 19:11:49 +01:00
JC Brand
ca141401a0 Fix failing tests 2018-03-13 13:42:00 +01:00
JC Brand
c4c154cfa1 Fixes #1022 Include stored status message in presences. 2018-03-02 19:35:06 +01:00
JC Brand
34ac7e99ab Fixes #1024
Use sizzle, otherwise we sometimes get null returned.
2018-03-02 12:36:08 +01:00
JC Brand
e630339a69 Update spec to test sent out stanza as well 2018-03-02 11:59:25 +01:00
JC Brand
03b9447f1d Asynchronously render spoiler button only if all clients support it 2018-02-08 17:48:15 +01:00
JC Brand
ba09996998 Don't allow PEP bookmarks if #publish-options is not advertised 2018-02-08 09:49:05 +01:00
JC Brand
fbef370b65 Listen for new room bookmarks pushed from the user's PEP service 2018-02-07 21:59:45 +01:00
JC Brand
5f3761dc7f Only initialize bookmarks and show icon if PEP is supported
which we check by checking if the PEP identity is provided.
https://xmpp.org/extensions/xep-0163.html#support
2018-02-07 21:05:38 +01:00
JC Brand
4732f315ed Use "hidden message" instead of spoiler 2018-02-07 14:39:45 +01:00
JC Brand
4742e66b69 Fix linting errors and failing tests 2018-02-07 14:21:46 +01:00
JC Brand
9c3e9233e4 Test that the spoiler button is hidden when OTR is active 2018-02-07 13:16:34 +01:00
JC Brand
20706cb617 Expand the spoiler tests 2018-02-06 21:21:21 +01:00
JC Brand
d6da643a7f Add an (incomplete) test for a received spoiler message 2018-02-06 18:05:12 +01:00
JC Brand
ed33d4e53d Add spec for spoilers, clean up linting errors 2018-02-06 18:05:12 +01:00
JC Brand
bf97ffd381 Check JIDs of archived MAM messages 2018-01-21 22:02:12 +01:00
JC Brand
cac04d076a Remove jquery as a dependency in MAM spec 2018-01-21 19:50:19 +01:00
JC Brand
210a75b02f Scroll down again after all images have been loaded. 2018-01-17 19:29:11 +01:00
JC Brand
59c11526f2 Use latest releases and update test for travis 2018-01-15 21:24:08 +01:00
JC Brand
9b3c6d1a3a Fixes #985 Give help messages a "message" class and isodate data attr. 2018-01-15 20:32:24 +01:00
JC Brand
8c616f0edd Test breaks when run in a different timezone 2018-01-15 19:03:08 +01:00
JC Brand
e9bba77b36 Add test for /help command in private chats 2018-01-15 18:41:04 +01:00
JC Brand
4f227b467b Take all messages except chat events into consideration
when determining where to insert new messages
2018-01-10 12:45:12 +00:00
JC Brand
e5b256e45e Fix broken tests 2018-01-10 12:27:46 +00:00
JC Brand
31e884f79a Add code to check for duplicates 2018-01-09 22:06:53 +00:00
JC Brand
d7a113e081 Fix transcripts code. 2018-01-09 13:52:27 +00:00
JC Brand
da1f103532 Bugfix. Don't include .chat-events, to avoid null reference 2018-01-09 13:40:32 +00:00
JC Brand
96742a6684 Also make the open rooms list an OrderedListView 2018-01-06 20:42:46 +00:00
JC Brand
5ea1b07b6b Use an OrderedListView to render the bookmarks list 2018-01-04 21:51:42 +00:00
JC Brand
f7cf1fb70d Fix broken tests 2018-01-04 16:12:09 +00:00
JC Brand
ee751ec58e Update jquery and sizzle and fix/improve some tests
Fixes #825
2018-01-04 13:11:50 +00:00
JC Brand
4652385bb4 Remove jQuery from non-tests config 2018-01-04 12:11:03 +00:00
JC Brand
7cf9c9ef8f Fix linting error 2018-01-04 11:31:04 +00:00
JC Brand
671691353a Use Backbone.NativeView instead of Backbone.View 2018-01-03 20:41:03 +00:00
JC Brand
3a6f7ed109 Remove jquery from converse-minimize 2018-01-03 14:20:10 +00:00
JC Brand
da3670d9f0 MUC Join/Leave messages now also show a new day indicator 2018-01-03 13:37:25 +00:00
JC Brand
46e54667c3 Simplify insertDayIndicator method 2018-01-03 13:37:25 +00:00
JC Brand
e360d9eead Removed jquery from converse-chatview 2018-01-02 21:52:55 +00:00
JC Brand
ee15e9e331 Fix and test message ordering 2018-01-02 20:25:30 +00:00
JC Brand
334a24c938 Use template to render .chat-info messages
Also did some work on removing jQuery from converse-chatview
2017-12-24 17:09:49 +00:00
JC Brand
a6d4419c04 Remove jQuery from converse-bookmarks 2017-12-23 20:56:20 +00:00
JC Brand
f84c443bd2 Remove jQuery from converse-muc.js 2017-12-23 20:29:20 +00:00
JC Brand
7c782ed6a4 Fix failing test 2017-12-22 21:24:45 +00:00
JC Brand
cacba4e6b0 Add test for contacts changing their groups
and fix the resulting fallout
2017-12-22 16:58:48 +00:00
JC Brand
f36b069e5d Add missing spec/roster.js 2017-12-22 15:55:03 +00:00
JC Brand
c6d2108024 Let RosterView also be an OrderedListView 2017-12-22 15:53:03 +00:00
JC Brand
b5e7bd5605 Move roster tests into their own module 2017-12-22 14:39:29 +00:00
JC Brand
1178badec8 Role was wrongly set to 'occupant' instead of 'participant' 2017-12-22 12:02:24 +00:00
JC Brand
ac643ae63f Refactor views to use Backbone.OrderedListView 2017-12-22 12:02:18 +00:00
JC Brand
ce1954a9f7 Improved roster performance.
Don't sort the roster group for each `chat_status` change. Instead batch
every 500ms.
2017-12-20 16:59:17 +00:00
JC Brand
19979c4840 Listen to animationend event instead of using setTimeout 2017-12-20 11:02:46 +00:00
JC Brand
32621b8327 Clear chat_state timer when closing chat 2017-12-19 19:17:38 +00:00
JC Brand
6c6ef1f1f9 Refactoring of the roster view.
* Removed the dependency on jQuery
* Contacts are now shown inside a group element, simplifying the code
2017-12-19 18:44:31 +00:00
JC Brand
f9343594bf Collapse multiple, consecutive join/leave messages 2017-12-15 16:24:30 +00:00
JC Brand
c874efeb79 Sort chatroom occupants alphabetically and according to role 2017-12-14 18:07:40 +00:00
JC Brand
a68cb85969 Add a test case for the /op and /deop commands 2017-12-14 13:23:14 +00:00
JC Brand
dc16930464 Test the /voice command and fix a bug 2017-12-14 13:07:39 +00:00
JC Brand
bd5a49da3f Show an info message when a MUC occupant is muted. 2017-12-07 07:05:37 +01:00
JC Brand
e34d62287b Test that headlines box doesn't show an avatar 2017-12-07 06:35:28 +01:00
JC Brand
2b6db9d50b Test /help, /kick and /mute commands 2017-12-06 22:11:53 +01:00
JC Brand
85bea60066 Some of refactoring to avoid code duplication and jQuery 2017-12-06 16:26:53 +01:00
JC Brand
1adc4938a8 Fetch VCard when starting a chat with someone not in the user's roster 2017-12-03 20:50:13 +01:00
JC Brand
fc94127014 Fix failing tests 2017-12-03 18:49:53 +01:00
JC Brand
8662f751e3 Refactor converse-vcard and add API method to fetch a VCard 2017-12-02 18:01:56 +01:00
JC Brand
d5e2aa5992 Fix failing test 2017-11-17 11:13:27 +01:00
JC Brand
8a4aa4efdd Use a named variable for _.template
This removes the need for `switch (obj)` in the template which is not
allowed in strict mode.

Additionally using a named variable speeds up rendering.
2017-11-05 18:59:29 +01:00
JC Brand
754ad7a027 Initial work on combining the converse and inverse modes
- Adds new config setting: `view_mode`
- `converse-singleton` is now a core plugin and its behavior depends on `view_mode`.
2017-11-02 14:21:29 +01:00
JC Brand
79080b3569 Routing fixes
* Check if `Backbone.history.start()` has been called before.
* Only call it after routes have been registered.
* Use route for switching between login and register forms
2017-09-28 23:29:37 +02:00
JC Brand
74b91faf9a Use browser-based "constraint validation"
to validate required fields, instead of doing it manually.

All supported browsers have this feature.
2017-09-25 13:55:17 +02:00
JC Brand
f0debc61ab Refactor i18n so that only relevant translations are fetched
instead of bundling all translations in the dist file.
2017-09-25 12:49:10 +02:00
JC Brand
7cfe81ea1f Fix failing tests.
Somehow the tests are flaky when the router sets a URL fragment for login or
registration, so I've now added an event handler which does the work without
setting the URL fragment.

The router is still there so that one can manually link to a URL that has the
registration form open. (Issue #828)
2017-09-24 00:30:43 +02:00
JC Brand
c9913bf6ac Fix failing tests 2017-08-29 12:29:56 +02:00
JC Brand
3b8c2d1b00 Various bug and timing fixes due to the previous refactoring 2017-08-16 14:16:24 +02:00
JC Brand
694eabfc0e Use promises to determine when to create the controlbox 2017-08-16 13:22:18 +02:00
JC Brand
ad695c253d Trying to fix timing bug in tests (for Travis) 2017-08-16 10:10:38 +02:00
JC Brand
add3b8efb3 utils now no longer depends on jquery. 2017-08-16 09:05:15 +02:00
JC Brand
6c3aa34c23 Some work on removing jquery from converse-bookmarks 2017-08-15 21:47:06 +02:00
JC Brand
eed936ff64 Trying to fix timing/heisenbugs on Travis 2017-08-09 14:21:24 +02:00
JC Brand
02a055d31d Bugfix. Query user's JID for mam:2 support, not the domain 2017-08-08 22:09:17 +02:00
JC Brand
bfc1e99694 Fix disco test 2017-07-21 20:01:09 +02:00
JC Brand
439e37feaa disco: Refactor service discovery and add tests.
* `disco#items` are now only fetched when advertised by the entity.
* `identity` information is now also stored on the `DiscoEntity` model.
2017-07-21 17:38:08 +02:00
JC Brand
7850c38faa disco: Create new plugin converse-disco.
We can now support feature discovery for multiple entities (although we
currently still only query for the user's own XMPP server).
2017-07-21 15:09:50 +02:00
JC Brand
713e49b095 Fix failing tests 2017-07-19 09:14:02 +02:00
JC Brand
22113a8ccb Expand test for rendering of images (and fix accordingly) 2017-07-16 12:29:08 +02:00
JC Brand
972c31be1d emoji: Allow the option of using emojione (now that we sanitize) 2017-07-16 12:29:02 +02:00
JC Brand
cf1e8f2921 Fix failing test for emoji picker 2017-07-15 15:16:38 +02:00
JC Brand
4ea50de927 Use emoji instead of emoticon 2017-07-15 15:14:47 +02:00
JC Brand
3fabe88970 Updated package-lock. Fix tests. 2017-07-15 07:58:57 +02:00
JC Brand
67578c9747 Merge branch 'master' into emoji 2017-07-15 07:16:37 +02:00
JC Brand
dc7249f07d roomslist: Room name wasn't being shown in confirm dialog 2017-07-13 23:54:06 +02:00
JC Brand
397927b189 Fix broken tests and update changelog 2017-07-12 09:58:14 +02:00
JC Brand
6af029048d Replace $.Deferred with ES2015 promises 2017-07-11 17:21:13 +02:00
JC Brand
16d62bf9e4 Fix broken tests due to using ES2015 promises 2017-07-11 17:05:02 +02:00
JC Brand
6ef0536e31 Some work on using es6 promises 2017-07-10 21:14:48 +02:00
JC Brand
40e7ee1ae6 Initial stab at using ES2015
Mostly replaced ``var`` with ``let`` and ``const``.
Also added a few arrow functions.
2017-07-10 12:49:20 +02:00
JC Brand
a36e8a63ce Fix test when not running on localhost 2017-07-05 09:55:40 +00:00
JC Brand
5ab1693136 logging: Add deprecation warning for updateSettings
and also use the Strophe.LogLevel levels for logging in general.
2017-07-05 11:33:55 +02:00
JC Brand
f81a94baf1 Move updateSettings to the private API.
Also add an API method for exposing new promises.

Update the plugin and API documentation, specifically concerning the above
changes.
2017-07-05 11:03:13 +02:00
JC Brand
70f56b31f4 Merge branch 'master' into emoji 2017-06-24 11:04:19 +02:00
JC Brand
095e7add86 mam: Upgrade MAM support to version 2 2017-06-23 22:58:47 +02:00
JC Brand
47cf5c1910 Fixup 2017-06-23 20:18:57 +02:00
JC Brand
02e5921415 Fix problem of stuck/hanging tests on TravisCI 2017-06-19 15:05:22 +02:00
JC Brand
ca53a8d8ef Add support for Emojis 2017-06-17 01:01:52 +02:00
JC Brand
fb69106352 Fixes #887 Enclose embedded images in URLs 2017-06-16 15:11:19 +02:00
JC Brand
6c262f7213 Various small changes to reduce (non-critical) errors during testing 2017-06-14 20:14:45 +02:00
JC Brand
8191d5e83a muc: Rename `createChatRoom to openChatRoom`
It doesn't always create a new room.
2017-06-13 18:22:19 +02:00
JC Brand
a128a70d41 Discriminate between which unread messages to indicate per tab 2017-06-07 00:55:57 +02:00
JC Brand
f897fbb7c0 Show number of unread mesages on the "Contacts" tab 2017-06-05 21:42:25 +02:00
JC Brand
5949ca9e36 Show number of unread messages on the "Rooms" tab 2017-06-05 14:52:24 +02:00
JC Brand
ebc8d243fa roomslist: also test that indicators are removed upon maximization 2017-05-24 09:07:07 +02:00
JC Brand
c83026e5a8 muc: Differentiate between generally unread messages and unread mentions 2017-05-24 08:40:09 +02:00
JC Brand
3e5beaaf64 Add test to check that the open rooms list shows unread messages 2017-05-23 20:42:12 +02:00
JC Brand
a4284e48f7 Use proper message handler. Fix typo 2017-05-23 18:49:04 +02:00
JC Brand
bae06922fc fixup 2017-05-23 18:40:55 +02:00
JC Brand
184f08157c Test the hide_open_bookmarks setting. 2017-05-23 14:59:37 +02:00
JC Brand
67257b0ae4 Test that room can be closed from rooms' list 2017-05-23 14:39:35 +02:00
JC Brand
6b2ca629cc roomslist: expand tests 2017-05-22 13:40:07 +02:00
JC Brand
095606a824 roomslist: Add initial test spec for converse-roomslist. 2017-05-16 12:00:43 +02:00
JC Brand
e49fbc457d bookmarks: Don't duplicate bookmarks in list. 2017-05-15 18:04:28 +02:00
JC Brand
0c61a5d791 core: Refactor common code into restoreBOSHSession 2017-05-11 10:42:10 +02:00
JC Brand
d50992b130 bookmarks: Fix remaining broken tests. 2017-05-09 09:45:12 +02:00
JC Brand
07dbf14a7d bookmarks: enable registration of spy on the mock connection during init
We need this because when the plugin listens to a promise, we can't trigger it
again later (after adding our spy), we instead need to add the spy beforehand.
2017-05-08 21:28:56 +02:00
JC Brand
b32a8c5391 Update and simplify HTML/CSS for choosing status
Should also fix some of the issues mentioned in #847
2017-05-08 21:25:22 +02:00
Novokreshchenov Konstantin
7c057910a8 Inconsistent unread messages count updating #873 (#874)
* Consistent unread messages count updating on ChatBoxView, Minimized ChatBoxView, RosterView and page's title

* Add tests for checking unread messages count updates in different GUI parts

* Update docs/CHANGES.md

* document windowStateChanged event in events.rst
2017-05-03 09:06:28 +02:00
Novokreshchenov Konstantin
4b46ec3f8c #591 Unread message counter is reset when the chatbox is closed (#867)
* chatview: disable handling onMessageAdded when fetching messages during initialization

* update CHANGES.md
2017-05-01 13:05:58 +02:00
JC Brand
c81599931c Fix failing tests based on recent unread message changes 2017-04-24 15:57:22 +02:00
Novokreshchenov Konstantin
bf1e612768 support opening chat in minimized mode initially (#855) 2017-04-23 15:38:48 +02:00
JC Brand
6af4480c14 Render disconnect message via template and add padding. 2017-04-21 18:26:59 +02:00
JC Brand
f3373c44fd Fixes #850. .where method doesn't match numbers. 2017-04-21 18:06:28 +02:00
JC Brand
ee8f37b4fc Bump waiting time to avoid test failures 2017-04-19 14:41:42 +02:00
JC Brand
d2eadbdce4 Use classList API 2017-04-06 23:21:52 +02:00
JC Brand
0c43e4b87c Upgrade to Jasmine 2.5.3 2017-04-06 11:31:05 +02:00
JC Brand
ecdb3a12be Merge image loading tests. Updates #814 2017-04-04 14:06:24 +00:00
Novokreshchenov Konstantin
0b50c0c8c8 Fix #814: Images from URLs with query strings aren't being rendered. (#832)
* unescape html characters in URL before checking whether it targets to image

* update docs/CHANGES.md

* test image's URL with query string which contains html-escaped characters

* utils.js: following code conventions

* split test url with query string to separate test
2017-04-04 16:05:50 +02:00
JC Brand
9fc61d9302 Bugfix. Endless spinner when trying to log in
after rendering the registration form.
2017-03-31 01:54:42 +00:00
JC Brand
6e94e11dcc Fixes #820. Inconsistency in displaying room features 2017-03-19 18:23:02 +00:00
Soumit Bose
c976f3f079 Fixed typing status for typing from different devices (#802) 2017-03-16 16:28:59 +01:00
JC Brand
a2cea678fe Shut eslint up and fix test 2017-03-15 12:41:04 +00:00
Soumit Bose
2c5ecd7120 Make messages' time format configurable (#797)
Fixes #675 

* Made time format configurable

* Made changes to values of time_format

* Removed user restrictions on time format

* Added documentation for time-format config

* Edited changes.md

* Edited config doc

* Modified time-format explanation

* Added link to moment

* Added test to check rendered time

* Edited CHANGES and removeunncessary lines from time format checking spec

* Removed unncessary spaces
2017-03-12 11:32:38 +01:00
Anshul Singhal
40da1d688e Fixes #628. Bug in displaying chat status during private chat with carbons. (PR #801)
* Fixes the bug in displaying chat status during private chat(message carbons)

* Adds fix#628 to ChangeLog

* Changes Log added to version 3.0.1

* Makes the string alphanumeric

* Orders the logs with ticket number
2017-03-09 12:38:54 +01:00
Anshul Singhal
3dd6ff1751 Fixes the duplication bug in adding contact and adds test for the same 2017-03-08 15:33:43 +01:00
JC Brand
f24e7c0905 Remove scrollDownMessageHeight. Fix failing test 2017-03-03 15:12:48 +01:00
JC Brand
c7de70052c Fix failing test 2017-02-28 07:17:30 +00:00
JC Brand
f2f05ff484 MUC: Don't show duplicate join messages. 2017-02-28 05:02:36 +00:00
JC Brand
f8d9368163 MUC: only render and listen to 'scroll' event...
after the cached messages have been fetched.
2017-02-27 21:09:17 +00:00
JC Brand
946a240080 Make sure to show the invite widget
when the room features change.
2017-02-27 17:56:40 +00:00
JC Brand
cfb0cd0970 New defaults 2017-02-27 10:41:46 +00:00
JC Brand
f60b4fc268 auto_away shouldn't change the user's status if it's set to dnd
Fixes #620
2017-02-25 09:52:31 +00:00
JC Brand
0d48929bb3 Show join/leave messages in chat rooms. Updates #365 2017-02-24 17:54:45 +00:00
JC Brand
e140eb84c8 updated to use initConverse 2017-02-24 17:13:38 +00:00
JC Brand
b15c107e4e Don't show notifications for full JID headline messages if...
allow_non_roster_messaging is false.
2017-02-24 17:13:38 +00:00
JC Brand
5c445a0268 Don't show headlines from full JID if allow_non_roster_messaging is false 2017-02-24 17:13:38 +00:00
JC Brand
fe2a925c88 Fix failing test. 2017-02-23 10:25:29 +00:00
JC Brand
8a63813f5e Add the ability to set the presence priority.
Fixes #745
2017-02-22 22:13:23 +01:00
JC Brand
17e0e70e4e Support for XEP-0203 delayed delivery of presence stanzas 2017-02-21 23:30:11 +01:00
JC Brand
4aa123d557 Add timestamps to resources
So that when a higher priority resource goes offline, we can fall back to the
right chat status if at the next priority level there are multiple resources.

789654d54e (comments)
2017-02-21 22:15:08 +01:00
JC Brand
29add969a6 Shut eslint up 2017-02-21 09:00:56 +00:00
JC Brand
7ae2e46925 Expand tests and found a bug in the process.
updates #785
2017-02-20 22:37:06 +01:00
JC Brand
789654d54e Updates #785 and #787
Improve upon the previous implementation.

If the resource with the highest priority goes offline or becomes unavailable,
then the chat status of the contact must fall back to that of the resource with
the next highest priority.

In your example from #785, if the resource with priority 1 goes offline or
becomes unavailable, then in your implementation the chat status would stay at
online, although it must actually go to xa.

The solution is to update the resources attribute on the contact to not just be
an array or strings, but instead to be a map of resources to priorities and
statuses and to use that data structure.
2017-02-20 22:29:13 +01:00
JC Brand
3aa5a83d02 Add a test case based on #785 2017-02-20 20:47:08 +01:00
JC Brand
441f7a2a15 Show the chatroom occupants JID in the tooltip
if you're allowed to see it.
2017-02-19 01:08:08 +00:00
JC Brand
10a85336cc Show the description in the heading, not the subject 2017-02-19 00:20:21 +00:00
JC Brand
51fc401a24 Fix failing tests due to new defaults. 2017-02-17 09:45:34 +00:00
JC Brand
65fa39dd81 Properly fix and test the /me command 2017-02-15 21:03:02 +00:00
JC Brand
a033899946 Fix leaky abstraction of MUC 2017-02-15 20:30:32 +00:00
JC Brand
ba9d3c36d5 Refactored converse-otr.js
- Removed password encryption of the key.
  It never properly worked and bloated the build through extra dependencies.
- Store the key and instance tag on the ChatBox model.
2017-02-15 11:15:03 +00:00
JC Brand
e52a775430 Bugfix. See below.
"TypeError: this.sendConfiguration(...).then is not a function" when a room is created
2017-02-14 16:55:32 +00:00
JC Brand
bc8e3e1a01 Return a Backbone.View object instead of a wrapper
When returning chat boxes via the API.

We can do this now because these API methods are only available to
(whitelisted) plugins.
2017-02-14 15:10:46 +00:00
JC Brand
fe6a9ca748 Merge converse-api and converse-core
Otherwise `require('converse-core')` can be called, exposing the inner converse
object.
2017-02-14 14:35:52 +00:00
JC Brand
d3bdcd865e Fix failing test 2017-02-14 13:39:22 +00:00
JC Brand
33fad75154 Workaround to get tests on phantomjs to pass 2017-02-14 12:52:03 +00:00
JC Brand
d2227c8d44 Replace typeahead with awesomplete.
Much smaller library.
No dependence on jQuery.

Updates #779
2017-02-14 12:26:56 +01:00
JC Brand
85f6a75fed Escape user-generated input to avoid injection attacks 2017-02-13 13:41:37 +00:00
JC Brand
6d2a38a7c1 Fixes #486 Update docs and fix failing test. 2017-02-12 19:01:07 +00:00
JC Brand
63888dd454 Fix failing tests 2017-02-02 21:55:05 +00:00
JC Brand
0424df9edc Rename the closured converse object to _converse
to indicate that it's private and to differentiate it from the outer "global"
converse object.
2017-02-02 20:43:48 +00:00
JC Brand
a30cf931b8 Split API into public and private (plugin only) parts. 2017-02-02 20:09:52 +00:00
JC Brand
1476ffeb77 Fix tests failing on phantomjs 2017-02-02 19:28:50 +00:00
JC Brand
83feebb229 Two plugins changes
- Remove the `plugins.remove` API method.
- Throw an error when attempting to register multiple plugins with the same name.
2017-02-02 18:54:15 +00:00
JC Brand
b7b9711296 Rename the closured converse object to _converse
to indicate that it's private and to differentiate it from the outer "global"
converse object.
2017-02-02 18:34:13 +00:00
JC Brand
4dcb855562 Split API into public and private (plugin only) parts. 2017-02-02 18:30:59 +00:00
JC Brand
3494691286 Fix failing tests
after allowing chatting with pending/requesting contacts
2017-02-02 16:37:41 +01:00
JC Brand
bcbeb8da6c Case-insensitive matching of moderation commands.
Also add `/subject` as alias to `/topic`
2017-02-02 14:56:56 +01:00
JC Brand
081f075aa9 Add eslint with lodash checking and apply its suggestions 2017-02-01 14:02:18 +01:00
Richard Icke
343e5777d1 first attempt to replace underscore with lodash 2017-02-01 14:00:38 +01:00
JC Brand
25d9880f9e Add config setting allow_non_roster_messaging
- Add a test case.
- Don't allow passing of `attrs` to `chats.open`. Not sure yet of the
  implications of this.
2017-02-01 10:49:13 +00:00
JC Brand
e81eaf323e Prevent forging of messages via carbons. 2017-02-01 10:49:13 +00:00
JC Brand
0cf9903726 Fix failing tests. 2017-02-01 10:49:13 +00:00
JC Brand
035f5d683a Add unit tests for how the affiliations delta is computed. 2016-12-08 12:44:18 +00:00
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
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
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
JC Brand
d0b8a3870b Add a test to check that notifications are properly sent in chat rooms. 2015-03-16 17:27:26 +01:00
JC Brand
db44a297cb Remove the last calls to connection.muc. updates #307 2015-03-04 22:27:11 +01:00
JC Brand
762e2bac04 Write a test for rooms listing. 2015-03-01 19:09:10 +01:00
JC Brand
c7d5b8b13f Refactor to no longer call muc.listRooms. updates #307 2015-03-01 13:32:53 +01:00
JC Brand
79a5121219 Also test for users leaving a room. updates #307 2015-03-01 13:28:24 +01:00
JC Brand
6c31f76406 Refactor other tests. All tests pass now again. updates #307 2015-03-01 11:58:07 +01:00
JC Brand
405351058a Rename the nick changed tests. updates #307
Test from a lower level (stanza request received by strophe) and also test the
case where the server automatically changed the nick.
2015-03-01 11:22:37 +01:00
JC Brand
5e1a4bd9f4 Remove tests for old deprecated API methods. 2015-02-27 21:42:40 +01:00
JC Brand
c70561b898 Some API changes:
* Let contacts.get() return all roster contacts.
* Also, add "open" method for the chats API.
* chats.get will now only return a chat box if it's already open.
2015-02-25 18:31:09 +01:00
JC Brand
04912c5c5a Merge branch 'master' into amd-strophe
Conflicts:
	docs/CHANGES.rst
2015-02-22 12:53:18 +01:00
JC Brand
b31261f6fd Expand the API to allow configuration settings to...
be set on the fly.
2015-02-11 15:08:10 +01:00
JC Brand
95bc55c1c3 Merge branch 'master' into amd-strophe 2015-02-07 14:10:32 +01:00
JC Brand
f283f6bce5 Fix failing tests after introducing AMD version of Strophe 2015-02-01 16:15:34 +01:00
Guillermo Bonvehí
fc0a1d9dbd Added test case for #305 and updated CHANGES.rst 2015-01-23 12:06:10 -03:00
JC Brand
cea68e5af0 Merge branch 'chat_states'
Conflicts:
	docs/CHANGES.rst
2015-01-16 20:06:53 +01:00
JC Brand
607c2a81c9 Instead of GONE, set chat_state to INACTIVE when a box is closed.
Also, fixed all broken tests.
2015-01-09 10:48:36 +01:00
JC Brand
b4d53aaa94 Some refactoring of chat states work. updates #292
- Don't add a timeout for the GONE state.
- Change state to GONE when the user closes the chat box.
- Change the state to inactive when the user minimizes the chat box.
- Change the state to active when the users maximizes the chat box.
- Add more tests for chat states.
2015-01-09 09:09:49 +01:00
Guillermo Bonvehi
4843f7efc2 Add fullname and jid to contact's tooltip in roster
It seems title attributes are limited to 512 chars, we will have
to live with that unless a custom tooltip is used.
2015-01-05 03:43:53 -03:00
JC Brand
bb468ae0a3 Add better support for XEP-0085. closes #292
Converse.js will now send chat state notifications of <paused>, <inactive> and
<gone> when the user has stopped typing for 30 seconds, 2 minutes and 10 minutes
respectively.
2015-01-01 22:59:10 +01:00
Guillermo Bonvehí
00af792899 Unified pending/requesting checking 2014-12-10 22:42:09 -03:00
Guillermo Bonvehí
2354a27832 Always show pending/requesting users in roster
Even if show_only_online_users or hide_offline_users
are set, show users that are pending or requesting
2014-12-10 21:32:59 -03:00
JC Brand
03ec659b50 Add another test and another template. refs #117 2014-12-01 20:31:01 +01:00
JC Brand
702cddd89b Add tests for account registration. 2014-11-27 11:16:06 +01:00
JC Brand
6100aaf114 Refactor the API. updates #46
API methods now consist of simple accessors and mutators that are logically
grouped.
2014-11-09 13:06:09 +01:00
JC Brand
147e62d000 Don't increment unread msgs counter for <paused> chat state.
Also update release notes. updates #267
2014-10-30 11:48:58 +01:00
JC Brand
55e32c735d Fix tests 2014-10-27 23:06:11 +01:00
JC Brand
d03a9a0192 bugfix in positionGroup.
Index must always be 0 if there aren't any group elements in the dom yet.
2014-10-26 23:13:04 +01:00
JC Brand
902e833dec Some refactoring. Add showInRoster method
which checks if a contact should appear in the roster (depends on
show_only_online_users setting)
2014-10-26 23:10:43 +01:00
JC Brand
015367af62 Add another profiling method for adding users without groups 2014-10-26 17:12:59 +01:00
JC Brand
3d32bfefc3 Don't add test users alphabetically, but rather randomly 2014-10-25 12:33:08 +02:00
JC Brand
f4ff6370b9 Performance fix. Debounce the update method on the roster. 2014-10-25 09:57:05 +02:00
JC Brand
6088417df7 Add an outline to the profiling tests. 2014-10-24 22:24:05 +02:00
JC Brand
cdb86788a3 Fix tests.
In the previous commit, the mock connection object was refactored to use a real
Strophe.Connection object.

This caused a test in spec/controlbox.js to fail (due to a method that was now
no longer mocked).

Added a quick workaround (via monkeypatch) for now.
2014-10-24 21:45:48 +02:00
JC Brand
5e4d6bd3b2 Initial work on adding profiling tests. 2014-10-24 18:58:42 +02:00
JC Brand
4a89d28e38 Fix tests by depending on jquery obj.
Also fixed groupchat test by getting and including correct msg id.
2014-10-15 19:16:02 +02:00
JC Brand
5b46e27c41 Add 2 new API methods. updates #46
Added openChatBox and getChatBox.
2014-10-12 10:34:33 +02:00
JC Brand
8843910d52 Add API method to retrieve buddy attributes. fixes #223 2014-09-22 15:03:57 +02:00
JC Brand
297259fdb7 Remember toggle state of control box. updates #222 2014-09-22 13:08:56 +02:00
JC Brand
7b6dfff99d Fix tests.
Elements in chat rooms are now hidden, instead of removed. Update tests to
reflect this.
2014-09-21 00:47:36 +02:00
JC Brand
5124c05f65 Fix (some) tests. 2014-09-16 10:26:24 +02:00
JC Brand
dfb130fb32 Test that user is properly informed when kicked out of a room 2014-09-06 12:46:24 +02:00
JC Brand
9e5dc21aa4 Refactor showing of chat room status messages.
onChatRoomPresence and showStatusMessages have been refactored to give more
detailed information and to also show the reasons given to actions taken by
moderators.
2014-09-06 12:25:37 +02:00
JC Brand
9d886a9f1d Add a test for the onInvite method. refs #215 2014-09-02 20:01:49 +02:00
JC Brand
18cbe06d58 Add some initial tests for the room invite feature. updates #215 2014-08-31 22:48:26 +02:00
JC Brand
ff32866f21 Mention live filter bugfix and add tests for it. updates #212 2014-08-31 21:20:28 +02:00
JC Brand
37255a2692 updates #215, see below.
* Filter by both fullname and jid when searching for users to invite.
* Combine the confirm and prompt popups into a single confirm popup.
* Bugfix in groups filter. Make sure to show group that were previously filtered out.
2014-08-31 19:44:05 +02:00
JC Brand
278c2c428d Add tests for the live filter functionality. updates #212 2014-08-18 22:39:24 +02:00
JC Brand
e7d563b34b Let tests pass again 2014-08-08 22:06:01 +02:00
JC Brand
cdf0a0d279 Make sure contacts added to a collapsed group header are hidden.
updates #83
2014-08-04 18:48:48 +02:00
JC Brand
9a3104cb21 "is_last" property no longer used. 2014-08-04 18:00:30 +02:00
JC Brand
6a28420d09 Fix linting errors 2014-08-03 23:07:48 +02:00
JC Brand
33d84a0c8e Store roster on converse obj.
Storing it on the rosterview causes race conditions.
2014-08-03 23:05:36 +02:00
JC Brand
ce0096de33 Remember toggle state of group headers. updates #83 2014-08-03 20:48:49 +02:00
JC Brand
219d5c8a30 Major refactor.
The RosterView view is now an overview of RosterGroup objects.

RosterGroup objects each have their own collection of contacts which fall under that group.
Additionally, the RosterView has a collection of all contacts.

The comparator of RosterContacts is now used to correctly position roster
contacts and we therefore no longer need to explicitly sort them afterwards.

updates #83
updates #151
2014-08-02 19:31:53 +02:00
JC Brand
ca260f7b4f Add support for separe group objects and collection 2014-08-02 14:25:24 +02:00
JC Brand
fdd0583a0c Rename RosterItem to RosterContact 2014-08-02 11:35:03 +02:00
JC Brand
76a18bae0d Finish the test which checks that contacts can appear in more than one group 2014-08-01 21:36:20 +02:00
JC Brand
2b927f21be Big refactor. The RosterView is no longer an overview.
This is because we can no longer assume a one to one mapping between roster
contacts and their views. Roster contacts can belong to more than one group,
each group needs to show the contact, which means we need a view for each group
the contact belongs to.

updates #83
2014-08-01 21:31:21 +02:00
JC Brand
6a82c087c3 Refactor to eventually allow buddies to belong to multiple groups.
In order to make group values non-distinct, (i.e. buddies can be in multiple
groups), we can't assume there's one view per roster item.

This means we cannot manage the rosterview as an overview (since it makes this
assumption).
2014-07-31 21:50:34 +02:00
JC Brand
d0f07f26a5 Check that users are sorted per group and that groups are in the correct order.
updates #83
2014-07-31 20:52:38 +02:00
JC Brand
64580bfd3d Refactor to make more manageable 2014-07-31 18:20:20 +02:00
JC Brand
9b65b57024 Ensure that group headings appear in alphabetical order.
updates #83
2014-07-30 19:20:38 +02:00
JC Brand
303041a980 Test for more variance within group names. updates #83 2014-07-30 09:11:28 +02:00
JC Brand
3984aadb9f More work (with tests) on showing roster items under groups.
updates #83
2014-07-29 19:53:57 +02:00
JC Brand
be76156292 All tests pass \o/ 2014-07-25 10:18:59 +02:00
JC Brand
cfa55896a5 Trying to use a document fragment for the roster view 2014-07-25 09:58:42 +02:00
JC Brand
0640dd5ae5 Clean up the initialize method of RosterView
by moving event handers out
2014-07-25 08:59:38 +02:00
JC Brand
434e21d046 Some sorting optimizations
* Differentiate between adding new roster items and rendering existing ones.
* Also, only sort pending and requesting contacts once they've all been added
  (similar to what was already being done with existing contacts)
2014-07-24 20:48:52 +02:00
JC Brand
ce617f1f31 Some refactoring of RosterView and skeleton for groups test 2014-07-20 22:44:50 +02:00
JC Brand
0f6d1f9edb Add tests for toggleable headings. updates #83 2014-07-20 20:45:59 +02:00
JC Brand
3236d251e5 JShint doesn't like functions inside loops 2014-07-20 19:36:53 +02:00
JC Brand
04d2b3aefd Some initial refactoring to support roster groups. updates #83
Made sure that the non-group usecase is still covered.
2014-07-19 23:45:21 +02:00
JC Brand
0be33b81ef Fix tests 2014-07-19 15:26:30 +02:00
JC Brand
df91f17894 Fix tests. Emitted events weren't yet renamed in the tests. 2014-07-14 23:29:08 +02:00
JC Brand
38b26784b6 trimmed views are minimized by default 2014-07-06 11:00:43 +02:00
JC Brand
c25f33b181 Add proper separation between controlbox tests 2014-07-04 21:18:28 +02:00
JC Brand
5034ae33f2 Work on getting proper separation between tests. 2014-06-30 20:26:45 +02:00
JC Brand
718f75a464 Make sure sessionStorage is cleared 2014-06-30 19:55:26 +02:00