Commit Graph

627 Commits

Author SHA1 Message Date
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