Commit Graph

203 Commits

Author SHA1 Message Date
JC Brand
969f902d4a Playing around with removing more lodash calls 2019-04-29 09:47:46 +02:00
JC Brand
ba6de8844e Use Object.keys instead of _.keys 2019-04-29 09:29:40 +02:00
JC Brand
34469425d6 Use Object.assign instead of _.extend 2019-04-29 09:07:15 +02:00
JC Brand
ee78ec1333 Add force parameter to _converse.chats.open
This changes the API method's current behavior by not automatically
maximizing (in `overlayed` view mode) or bringing a background chat into
foreground (in `fullscreen` view mode). Instead `force` needs to be set
to `true` for that to happen.
2019-04-16 16:42:15 +02:00
JC Brand
1328168d1e Fixes #1532 Converse reloads on enter pressed in the filter box 2019-04-11 23:44:16 +02:00
JC Brand
a75c118a2c Prioritize roster nickname as message and chatbox display name
Set reference to roster contact on the message and chatbox object and
listen for changes to the nickname.

Currently, because chat boxes are fetched and initialized before the
roster, messages and chats are repainted with the correct display name
only later, causing a "flash" effect.

Ideally we would only initialize the chat boxes after the roster
contacts have been fetched, but this is currently not easily possible
because we need the control box to render before everything else.
2019-04-09 17:20:41 +02:00
JC Brand
b8107afa0e Bugfix. Remove highlight from roster item when chatbox is closed. 2019-03-31 13:05:51 +02:00
JC Brand
63a0c63927 Fix bugs with moving events 2019-03-29 21:56:56 +01:00
JC Brand
f897703565 Rename emit to trigger for consistency with Backbone.Events 2019-03-29 21:56:56 +01:00
JC Brand
f6335dcabe Document fired events with JSDoc 2019-03-29 21:04:33 +01:00
JC Brand
d41a7a14c3 Use API to emit and listen to events 2019-03-29 14:16:07 +01:00
JC Brand
7481643453 Validation error when trying to add an already existing contact 2019-03-28 15:54:47 +01:00
JC Brand
d300be58cc Fixes #144. Fall back to JID if name is not available 2019-03-28 15:37:01 +01:00
JC Brand
34b8cd2ee6 Prevent user from adding themselves as contact 2019-03-28 15:36:08 +01:00
JC Brand
cc865de0f0 Add new config setting autocomplete_add_contact
Determines whether search suggestions are shown in the "Add Contact" modal.
2019-03-28 14:34:12 +01:00
JC Brand
75ae76ad93 Use _converse.AutoComplete in "Add Contact" modal 2019-03-28 10:47:14 +01:00
Emmanuel Gil Peyrot
b7ae9f212c Replace http: with https: in conversejs.org links 2019-03-04 17:47:45 +01:00
JC Brand
310b2c723b Fixes #1149
With xhr_user_search_url, contact requests are not being sent out
2019-03-01 11:56:22 +01:00
JC Brand
ce2ae87df2 Bugfix. Open groupchats not shown when logging in after disconnection
* Replace `tearDown` overrides with event handlers.
* Move presence listeners to `connected` event handler, otherwise they
  don't get called when logging in again after disconnection.
* Add `clearSession` listeners to clean up upon disconnection.
* Use `Promise.all` instead of listening for multiple events.
2019-02-20 23:08:27 +01:00
JC Brand
c026dc8a86 New copyright year 2019-02-18 20:23:18 +01:00
JC Brand
9233087548 Don't hash web storage ids.
Makes debugging more difficult and uses up extra CPU cycles for no real security benefit.
2019-02-18 20:23:18 +01:00
JC Brand
7d74319efd Fixes #1356 2019-01-03 11:45:52 +01:00
JC Brand
118bc20478 Rename isSingleton to isUniView
We distinguish between UniView and MultiView instances.

UniView means that only one chat is visible, even though there might be multiple ongoing chats.
MultiView means that multiple chats may be visible simultaneously.
2018-12-04 13:50:15 +01:00
JC Brand
d341c6a13b Revert "Use getter to lazily create Strophe.Connection"
This reverts commit 7af73c3471.

Doesn't look like the right approach for adding support for XEP-0156.
Work on that will continue in a branch in the meantime.
2018-11-20 17:31:53 +01:00
JC Brand
7af73c3471 Use getter to lazily create Strophe.Connection 2018-11-18 18:05:47 +01:00
JC Brand
9d0cfe8f43 Presence subscription bugfixes.
* Return the promise, so that we can wait.
* `sendContactAddIQ` now returns a promise and doesn't take a callback
* Don't call `destroy` on a contact that's already been removed.
2018-11-10 19:09:51 +01:00
JC Brand
2179255d0a Add button for resyncing roster contacts 2018-11-07 11:12:04 +01:00
JC Brand
5e7d5d7fb1 Add own class and style for controlbox heading buttons 2018-11-07 11:11:20 +01:00
Emmanuel Gil Peyrot
35b7dbe389 Convert a few functions to async/await. 2018-10-24 21:23:32 +02:00
JC Brand
a3040a45fc Move the converse-roster plugin to the @converse/headless build 2018-10-23 15:40:06 +02:00
JC Brand
6904f9a897 Use es2015 modules instead of UMD 2018-10-23 12:25:58 +02:00
cmrd Senya
8ba8eb02fa Update main converse.js package to use @converse/headless
* Update moved dependencies references to @converse/headless
* Remove unused webpack resolve aliases
2018-10-22 12:44:38 +02:00
JC Brand
1c7c70af66 Use new status icon CSS classes for roster contacts as well
updates #1209
2018-10-21 23:49:41 +02:00
JC Brand
7a330600d4 Fixes #1214
Hide "add contact" button and requesting/pending contacts when
allow_contact_requests is false.
2018-10-05 17:19:53 +02:00
JC Brand
31080bf2f9 Add a FormData polyfill for Edge comptaibility
Fixes #1220
2018-09-24 16:18:51 +02:00
JC Brand
2ef117e402 Fix more missing icons due to Fontawesome upgrade 2018-09-06 19:50:41 +02:00
JC Brand
16faf62d3f Fixes #1129 Hide "Contacts" section when logged in anonymously 2018-07-16 00:09:54 +02:00
JC Brand
efa5e30596 updates #1069 Highlight currently open private chat in the sidebar 2018-07-04 09:08:22 +02:00
JC Brand
6cd9d2e813 Rename _tearDown to tearDown and rebuild 2018-06-07 14:30:10 +02:00
JC Brand
37b622251e Improve and simplify unread message notifications in the roster
Use one event instead of two, by listening to `num_unread` on chatboxes.
2018-06-07 13:40:20 +02:00
JC Brand
57b4dec5a0 Bugfix. Validation messages wasn't being shown
due to Awesomplete doing things to the DOM and then confusing Snabbdom.
2018-06-06 18:31:04 +02:00
JC Brand
f7c3351e2b Merge branch 'master' into webpack 2018-06-04 13:46:27 +02:00
JC Brand
9c6c90a4fc Move config settings into the relevant plugins 2018-05-31 06:38:40 +02:00
JC Brand
6dc9e8edf1 Use webpack for module bundling 2018-05-25 14:23:32 +02:00
JC Brand
36fd859a88 Store presence info in a separate collection
So that we can cache roster data for longer and presence data for
shorter.
2018-05-22 21:09:43 +02:00
JC Brand
e82112715d Update padding of controlbox elements
Instead of padding the container, pad individual elements that need it.
This enables us to have highlighting (e.g. on hover) that spans the full
width of the controlbox.

updates #1069
2018-05-18 15:44:42 +02:00
ChaosKid42
7a36acade5 remove "?" from user-search-query (#1103) 2018-05-17 18:26:06 +02:00
JC Brand
b8679063c5 Use the VCards collection for roster contacts
Instead of saving the vcard data on the contact model itself
2018-05-05 20:51:14 +02:00
JC Brand
e5cfdca30d Move roster models into their own module 2018-05-05 20:16:23 +02:00
JC Brand
911ede2886 Small bugfixes.
- Filter did the opposite of what it was supposed to do
- Wrong bind context
- Should actually be mam:2, issue was server misconfiguration
2018-05-02 14:30:14 +02:00
JC Brand
dd505ad9da More fixes now that we don't store the JID under 'fullname'
if the fullname is not available.
2018-05-01 20:07:56 +02:00
JC Brand
3d42425083 Some UI improvements
- Render images as thumbnails
- Use the image.html template when rendering images from pasted URLs
- Update message and spoiler markup to render avatars
- Use the default avatar as fallback when user doesn't have one
- Instead of 'me' render own name or JID
2018-04-30 15:37:36 +02:00
JC Brand
ce849aaffc Fix failing tests 2018-03-30 14:23:39 +02:00
JC Brand
faaaa8139a Properly remove ContactView from the overview 2018-03-30 14:22:53 +02:00
JC Brand
3354083934 Bugfix. Remove view for contact moved to different group
Otherwise the contact stays visible under "Pending Contacts" although
the subscription request has been accepted.
2018-03-30 14:22:53 +02:00
JC Brand
e8718ec3d3 Bugfix. Make sure group gets inserted
when it's created due to a new contact being added.

Was previously in the wrong place.
2018-03-30 14:22:52 +02:00
JC Brand
c8f72b350b Disable vcard plugin is use_vcard is false 2018-03-30 14:22:52 +02:00
JC Brand
0173d28f48 Clear "add contact" form after submission. 2018-03-30 14:22:52 +02:00
JC Brand
b9cdf6b71f Make sure relevant roster group gets inserted when a new contact gets added
by calling `sortAndPositionAllItems`.

Particularly relevant to the "Pending Contacts" group.
2018-03-30 14:22:52 +02:00
JC Brand
e1995c6d4e Focus input when showing the add contact modal 2018-03-30 14:22:51 +02:00
JC Brand
4f2b040f22 Allow setting a nickname when adding a roster contact 2018-03-30 14:22:51 +02:00
JC Brand
5e8843e8bd xhr_user_search_url fixes after some real world testing 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
f90ca8f7f4 Remove unused class 2018-03-30 14:16:04 +02:00
JC Brand
f0ae8c44ff Show caret for room, bookmark and group toggles 2018-03-17 11:42:17 +00:00
JC Brand
850c6aa2bd Fix more failing tests 2018-03-16 23:37:52 +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
e344bf769a New modal for adding contacts.
Remove the xhr_user_search and xhr_user_search_url options
Lazily create modals
2018-02-23 16:33:09 +01:00
JC Brand
249ee2b5ca Bugfix. Method wasn't called 2018-02-22 17:47:08 +01:00
JC Brand
47aad31899 Tricky refactoring.
Removed `_converse.chatboxviews.showChat` and trying to simplify how
chats are created and when they're shown.

Prompted by the work to split the MUC views into a separate plugin
2018-02-21 23:47:02 +01:00
JC Brand
b5812e257d Work on the status modal 2018-02-21 16:17:57 +01:00
JC Brand
6cdaa47493 Fix roster filter functionality 2018-02-19 17:37:47 +01:00
JC Brand
493ecb2e4f Update markup for the roster filter 2018-02-19 16:08:54 +01:00
JC Brand
2fa8304945 Improve and update roster markup 2018-02-19 15:01:02 +01:00
JC Brand
650ed22da7 Update requesting contacts and tweak bookmark icons 2018-02-16 15:24:17 +01:00
JC Brand
ede21e7c32 Remove controlbox tabs and show rooms and contacts panels together 2018-02-16 14:16:55 +01:00
linkmauve
af6867e638 improve @title on roster item (#1013) 2018-02-14 00:43:33 +01:00
JC Brand
a91e9216e6 No need to manually remove. Gets done in the OrderedListView 2018-01-06 20:42:46 +00:00
JC Brand
671691353a Use Backbone.NativeView instead of Backbone.View 2018-01-03 20:41:03 +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
c6d2108024 Let RosterView also be an OrderedListView 2017-12-22 15:53:03 +00:00
JC Brand
a3b80eeb6e Move RosterView after RosterGroupView 2017-12-22 14:40:58 +00:00
JC Brand
f59048061f Simplify by removing need to override createItemView 2017-12-22 13:38:20 +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
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
9fca25b6a9 Use snabbdom via backbone.vdomview 2017-12-13 22:04:58 +00:00
JC Brand
250b06475e Bugfix. Disappearing contacts filter when changing the type 2017-11-17 11:30:50 +01:00
JC Brand
adb92a2eda Two small UX fixes
- Don't close the emojis panel after inserting an emoji.
- Focus the message textarea when the emojis panel is opened or closed.
2017-11-12 20:08:37 +01:00
JC Brand
691c48468f Hide the roster filter by default. Updates #949
- Also, use a virtual-dom view for rendering the roster filter.
2017-11-11 09:16:45 +01: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
32d574039d Translateable strings must not be template literals
xgettext doesn't support them yet, which causes errors in the pot/po files.

https://savannah.gnu.org/bugs/?50920

updates #909
2017-08-23 12:00:49 +02:00
JC Brand
694eabfc0e Use promises to determine when to create the controlbox 2017-08-16 13:22:18 +02:00
JC Brand
273da9e876 Move chatboxes collection and overview into separate plugin 2017-08-16 12:32:15 +02:00
JC Brand
b1e5cb26a1 rosterview: When filtering, contacts in closed groups appear. 2017-07-21 18:48:55 +02:00
JC Brand
e59168a360 rosterview: show filter when there are 10 or more contacts
Instead of checking if there's a scrollbar. Otherwise the filter disappears
when all groups are collapsed.
2017-07-21 18:47:43 +02:00
JC Brand
6ef0536e31 Some work on using es6 promises 2017-07-10 21:14:48 +02:00
JC Brand
9a9eae3fcf Use esnext to auto-generate es2015 syntax 2017-07-10 17:46:22 +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
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