Commit Graph

2334 Commits

Author SHA1 Message Date
JC Brand
e189acc8c9 Returning nick with credentials_url complicates things too much 2019-04-23 14:53:48 +02:00
JC Brand
741be5cc04 converse-muc: Handle VCards not being available 2019-04-23 12:32:59 +02:00
JC Brand
624cf4f435 Allow nickname to be provided by the credentials_url 2019-04-23 12:06:40 +02:00
JC Brand
cf75946e7b Make fetchLoginCredentials a function 2019-04-23 10:50:48 +02:00
JC Brand
e9e17cb293 Fixes #1543 2019-04-23 10:47:17 +02:00
JC Brand
5ead9796cc Set the JID in the session 2019-04-22 14:44:40 +02:00
JC Brand
25a0a898f2 Don't restore a BOSH session without knowing the JID 2019-04-22 14:33:49 +02:00
JC Brand
f8fcdc7eb8 Explicitly log out after each test. 2019-04-22 14:04:21 +02:00
JC Brand
cf32119c53 Make browserStorage key more readable 2019-04-19 11:18:34 +02:00
JC Brand
0288ef437e Fixes #1542 2019-04-19 10:55:06 +02:00
JC Brand
1251f395b1 Use webpack to generate css/converse.css 2019-04-18 17:50:05 +02:00
JC Brand
e1392895b0 Fix: when closing a modal the overlay doesn't get removed
Looks like the `webkitTransitionEnd` event doesn't fire because `fade`
is already on the modal, so there's no transition, which means that in
bootstrap.native the event doesn't get fired to remove the overlay.
2019-04-18 16:14:51 +02:00
JC Brand
8bc3aaa224 Upgrade to Webpack 4.28.1 2019-04-18 16:14:51 +02:00
JC Brand
725a382e3b Refactor initialization and defaults for chat boxes
- Let box_id start with char for valid HTML.
- No need to use SHA1 for box id
- No need for the user_id attribute.
- Set nickname when we set the roster contact.

Also...

- _converse.api.contacts.get is now async
- _converse.api.chats.create is now async
2019-04-18 16:14:51 +02:00
JC Brand
d2166ce3dd Remove deprecated API methods
since the next release will be a major one.
2019-04-16 16:57:55 +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
3c988240d1 Don't check for debug mode too early
Otherwise we can't enable it during operation
2019-04-16 13:59:04 +02:00
JC Brand
4eb6df92c6 Bugfix. Controlbox closed state not remembered
in overlay view mode.

Also refactored a bit to put the method, which determines whether a
chatbox may be shown, on the chatbox itself.
2019-04-16 13:38:46 +02:00
JC Brand
1dd2c4ce7b Reconnect if we can't send a message due to dropped connection 2019-04-16 13:01:47 +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
06f53e7f18 Add some padding to form error message 2019-04-11 23:42:19 +02:00
JC Brand
b593b8deb6 Fixes #1533
Users can only be muted in moderated rooms
2019-04-11 23:10:57 +02:00
JC Brand
76a7c3fa9b Bugfix. Update to new function which has been renamed. 2019-04-11 20:08:53 +02:00
JC Brand
f84c201437 Hide the textarea when a user is muted in a groupchat 2019-04-11 01:40:16 +02:00
JC Brand
aa90ebd7f0 Bugfix. Don't delete JID or resource...
when an affiliation change presence is received.
2019-04-11 01:39:06 +02:00
JC Brand
234556793f Provide a more user-friendly error message to muted users 2019-04-10 22:03:00 +02:00
JC Brand
f1899d0977 Looser coupling with converse-vcard
To make it easier to remove it without breaking stuff.
2019-04-10 19:35:35 +02:00
JC Brand
36761f290e Don't show checkmark for /me messages 2019-04-10 19:34:31 +02:00
JC Brand
d3a80e804f Move converse-caps into the headless build 2019-04-10 19:22:11 +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
d450ab5868 For a message, get VCard based on bare jid of sender 2019-04-09 13:54:55 +02:00
JC Brand
87337eaeef Bugfix. Modal auto-closes when you open it a second time 2019-04-08 21:45:09 +02:00
JC Brand
5532a9ec63 Remove jquery from tests 2019-04-08 21:45:09 +02:00
JC Brand
487114568a OAuth is not a core plugin 2019-04-05 14:04:50 +02:00
JC Brand
eb67f10371 Handle case where there isn't a MUC close button 2019-04-05 14:04:00 +02:00
JC Brand
e987214555 For roomspanel, don't set muc_domain if its locked 2019-04-05 13:14:57 +02:00
JC Brand
acab0339f1 New release 4.2.0 2019-04-04 12:33:08 +02:00
JC Brand
77241bf5fe Single emoji rendering fixes.
* Make the emoji a little bit smaller
* Avoid scrollbar appearing for single emoji messages
* Also identify single sent emojis
2019-03-31 20:46:49 +02:00
JC Brand
21ca33ec29 Bugfix. Create device based on prekey message for from JID
Otherwise for sent carbons we created it for the wrong user.
2019-03-31 19:36:04 +02:00
JC Brand
97400ed568 Also identify sent carbons as such. 2019-03-31 19:16:40 +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
f0201e236d Set default value of 'status' to undefined.
When no status message is in a presence stanza, the value gets set to
undefined, so we might as well make this the default value to avoid
unnecessarily triggering change events.
2019-03-31 13:05:13 +02:00
JC Brand
337e267594 Don't trigger OMEMOInitialized if something went wrong. 2019-03-31 12:01:19 +02:00
JC Brand
dd0c0b6c56 Add a new active flag for OMEMO devices.
Instead of deleting devices that are not returned in the device list,
set an `active` flag, so that we don't remove the trust setting.

Set deactivated devices to `active` when a receive an OMEMO message from
it.

Also, set omemo_supported to true when we've succesfully decrypted a
message.
2019-03-31 11:33:31 +02:00
JC Brand
c32ecb7e82 Refactor fetchDevices to make it smaller and simpler to read 2019-03-30 17:01:50 +01:00
JC Brand
1b08df89bb Don't send OMEMO message when we don't have any devices for contact 2019-03-30 16:32:47 +01:00
JC Brand
1a2e7b235a OMEMO bugfix. Store prekey as boolean and handle '1' and 'true' 2019-03-30 15:57:36 +01:00
JC Brand
1dfdb36d20 Don't filter out own device when sending OMEMO message 2019-03-30 13:55:25 +01:00
JC Brand
a45bd8d14b Convert older docstrings to JSDoc syntax 2019-03-30 12:54:56 +01: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
be1abdb5ff Add classes for easy styling 2019-03-28 15:43:29 +01:00
Christoph Scholz
dde815e0a8 Allow manual entry of jid with xhr_user_search_url 2019-03-28 15:38:56 +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
42128e051d Regenerate headless build 2019-03-28 12:43:34 +01:00
JC Brand
b726a2353c Remove Awesomeplete in favor of _converse.AutoComplete 2019-03-28 12:43:34 +01:00
JC Brand
8d385487c9 Remove unused element attributes 2019-03-28 12:35:19 +01:00
JC Brand
75ae76ad93 Use _converse.AutoComplete in "Add Contact" modal 2019-03-28 10:47:14 +01:00
JC Brand
616731b323 Don't show MUC domain if locked_muc_domain is set to 'hidden' 2019-03-27 13:13:07 +01:00
JC Brand
03f9eb95da Fixes #1467. Fix rendering of URLs enclosed with sharp brackets
such as <https://example.org>
2019-03-27 11:24:55 +01:00
JC Brand
18ad34e194 Show emoji shortname in tooltip 2019-03-27 08:41:32 +01:00
JC Brand
6cbdaa0f4f Bugfix. Bookmarks list didn't remember toggle state
We need to wait for the state to be fetched from storage before
rendering the list.
2019-03-27 08:34:58 +01:00
JC Brand
225312694f Two small updates
* Ensure that outgoing messages are also marked as single emojis
* Also set msgid to origin-id for sent groupchat messages
2019-03-26 22:03:56 +01:00
JC Brand
3ce3d661bc Make sure required registration fields have "required" attribute 2019-03-26 14:52:26 +01:00
JC Brand
9f290dab25 New config setting locked_muc_nickname
When set, the "Nickname" field won't be shown in the "Add groupchat"
modal and instead the nickname will be automatically set (based on other
config settings).
2019-03-26 13:29:33 +01:00
JC Brand
32f0eb5488 Fixes #1407. Don't allow empty value for MUC nickname 2019-03-26 13:03:42 +01:00
JC Brand
a9ce9acff2 Make sure nickname config option takes precedence
above other nickname sources.
2019-03-26 11:31:11 +01:00
Guus der Kinderen
bde1b9529b Minimized bookmarked chatboxes should not be always maximized after page reload
This is a fix for https://github.com/conversejs/converse.js/issues/1508
2019-03-26 11:06:32 +01:00
JC Brand
e0cb3c34bb Bugfix. Don't extend chatbox attributes
when creating attributes for outgoing message.

Otherwise `id` is the same for all messages.
2019-03-25 23:04:39 +01:00
Christoph Scholz
10da92ec5b fix LMC with Conversations 2019-03-22 17:37:28 +02:00
JC Brand
fa85fc71b9 Use async/await 2019-03-22 15:49:44 +01:00
JC Brand
56bee63ed1 Start documenting events with JSDoc 2019-03-22 15:21:51 +01:00
JC Brand
27557d6a04 Document _converse.ChatBox.prototype.sendMessage as an API method
Until now, we've only been explicitly documenting the `_converse.api`
namespace and only considered the methods under it as forming the API
contract (which determines how we do semver releases).

It appears as if we've reached a point where trying to keep everything
under the `_converse.api` namespace no longer makes sense. Certain
methods are applicable to particular models and trying to shoehorn them
into the `_converse.api` namespace seems clunky and non-intuitive.

I've therefore decided to slightly refactor `sendMessage` to let it take
two simple parameters and to document it with JSDoc so that it's
presented as an API method, albeit only available on a chat model.

updates #1496
updates #1504
2019-03-21 21:03:02 +01:00
JC Brand
675692df74 Use _converse.api.send to forward messages 2019-03-21 20:54:23 +01:00
JC Brand
d87551328d Upgrade to Strophe 1.3.2 2019-03-21 07:28:37 +01:00
Christoph Scholz
0957b7086f Don't prompt for reason if auto_join_on_invite 2019-03-19 22:26:42 +02:00
JC Brand
4c50ac23e7 Add Jed as dependency of @converse/headless
fixes #1352
2019-03-15 15:49:12 +01:00
JC Brand
c0f3096216 Move MAM view overrides and view-based code out of @converse/headless
updates #1352
2019-03-15 15:49:12 +01:00
JC Brand
11c1b01692 Add converse-headless.js dist file and recipes
updates #1352
2019-03-15 10:24:39 +01:00
JC Brand
d919e81216 Set up XML logging before emitting connectionInitialized 2019-03-15 10:24:15 +01:00
JC Brand
5b4ce87a4d Don't send out receipts or markers for MAM messages
Eventually we need to add better support for receipts and markers of MAM
messages.

We'll need to do the following:

* First check whether the MAM page already contains the receipts or markers, to avoid duplication
* Only ever in catchup mode
* Only after full catchup to ensure that the receipt is not in a different page than the message
2019-03-12 13:02:10 +01:00
Meitar M
76bff83ca3 Allow http: image URLs if Converse.js is loaded on an insecure origin.
Currently, in order for Converse.js to recognize a pasted URL as an
image, it must be an URL whose protocol is `https:` (`https` in the
URI.js library's notation). This is sensible, but means that any
non-HTTPS image URL is not recognized as a valid URL (and thus will not
be rendered inline, even if `show_images_inline` is set to `true`).

It is important to always check for HTTPS URLs when in a secure context
(i.e., the initial page load was requested via HTTPS) in order to ensure
that non-secured content does not mix with secured content. However, the
inverse is not true: if the original page was loaded over HTTP, then
enforcing HTTPS for images adds arguably no meaningful protection while
also breaking the `show_images_inline` feature for the edge cases where
Converse.js is deployed without HTTPS and a user pastes an HTTP URL.

This patch changes the behavior of the `isImageURL` method such that the
requirement for the pasted URL's protocol to be `https:` is enforced
only when the `window.location.protocol` itself is also `https:`. By
doing this, we ensure that secure origins (i.e., when Converse.js is
loaded over HTTPS initially) are still secured and cannot have non-HTTPS
content introduced to the page via a pasted non-HTTPS URL, however it
also allows non-HTTPS origins to render both HTTP and HTTPS image URLs.
2019-03-09 14:15:22 +02:00
Christoph Scholz
ed9d2a2526 make it configurable whether to respect autojoin 2019-03-09 14:10:40 +02:00
JC Brand
143d44c3f6 Avoid horizontal scrolling on the fullscreen login page 2019-03-07 17:47:30 +01:00
JC Brand
ebd1797991 Call save only once when updating a cached message 2019-03-07 17:38:07 +01:00
Axel Viala
b51d98d6d1 Fix #1327: Refusing url and email as mentions
Before the function `extractReference` in
`/src/headless/converse-muc.js` matched url and email.

Fix: https://github.com/conversejs/converse.js/issues/1327
2019-03-07 16:53:27 +01:00
JC Brand
33600eeece No need for a separate archive_id value.
With MAM2 we can just use stanza-id
2019-03-07 16:45:00 +01:00
JC Brand
be6a5d9c37 Reuse XEP-359 unique and stable stanza ids for Message id.
This helps us to avoid duplicates by relying on the fact that Backbone
models have unique ids.
2019-03-07 08:56:17 +01:00
Holger Weiss
a15aec3519 Assume "text-single" as default form field type
As per XEP-0004, the default "type" of data form fields is
"text-single", so a missing "type" attribute should not be treated
differently.

This fixes handling of CAPTCHAs offered by ejabberd.
2019-03-06 15:08:41 +01:00
Christoph Scholz
37800d92d3 allow drag & drop also in MUCs 2019-03-05 18:21:07 +01:00
JC Brand
0ebfc3fce8 Let converse-autocomplete also be triggered with backspace 2019-03-05 17:59:22 +01:00
JC Brand
7910447cf6 Use ev.key instead of ev.keyCode
Removes the need for maintaining a map of keycodes to keys
2019-03-05 17:59:22 +01:00
JC Brand
f8e31a7b49 Update converse-autocomplete to make it more flexible
* Accepts other triggers besides tab or @
* More finegrained control over whether the triggering char is
  included in the returned value or not.
2019-03-05 17:59:22 +01:00
Emmanuel Gil Peyrot
3aa9ee1ba0 Replace http: with https: in xmpp.org links 2019-03-04 17:49:44 +01:00
Emmanuel Gil Peyrot
b7ae9f212c Replace http: with https: in conversejs.org links 2019-03-04 17:47:45 +01:00