Commit Graph

405 Commits

Author SHA1 Message Date
JC Brand
ce849aaffc Fix failing tests 2018-03-30 14:23:39 +02:00
JC Brand
d90416eae8 Add workaround for apparent Prosody bug
Details here: https://prosody.im/issues/1121
2018-03-30 14:22:53 +02:00
JC Brand
93a20ee4ee Make sure removeFromRoster is called only once 2018-03-30 14:22:53 +02:00
JC Brand
b584f2efb3 Add a new config setting nickname
- for subscription requests
- when entering chat rooms
2018-03-30 14:22:53 +02:00
JC Brand
1029aae215 Write out map when calling create 2018-03-30 14:22:52 +02:00
JC Brand
535fc7bc8d Use strings for map keys 2018-03-30 14:22:52 +02:00
JC Brand
2ff18c2cfb Fix emoji test (now that bootstrap dropdown is used) 2018-03-14 17:32:01 +00:00
JC Brand
05e7cc8529 Let api.contacts.get return the RosterContact model 2018-03-14 13:01:29 +00:00
JC Brand
9825d6e777 Use bootstrap dropdown to render the emoji picker 2018-03-09 14:51:24 +01:00
JC Brand
d4d3d4c838 Merge branch 'split-muc' into bootstrap4 2018-03-05 16:51:33 +01:00
JC Brand
0013ee5506 Split MUC views into separate file/plugin 2018-03-05 16:32:13 +01:00
JC Brand
dcc6244fc2 Don't overwrite default avatar with undefined 2018-03-04 07:29:24 +01:00
JC Brand
759603eea5 Hook in bg and tr locales 2018-03-04 06:11:18 +01:00
JC Brand
c4c154cfa1 Fixes #1022 Include stored status message in presences. 2018-03-02 19:35:06 +01:00
JC Brand
0a28e7aae4 Fixes #1027 Backwards compatibility fix for IE11 2018-03-02 15:54:28 +01:00
JC Brand
0bd96bbcfb Bugfix. Don't set xmppstatus' jid to null 2018-02-23 22:19:24 +01:00
JC Brand
b3409fd01b Move common modal view code into a base class 2018-02-22 18:41:01 +01:00
JC Brand
224e1eee29 Merge branch 'master' into bootstrap4 2018-02-22 14:39:20 +01:00
JC Brand
33cfe07331 Recreate promises upon logout. 2018-02-22 13:35:05 +01:00
JC Brand
1ce46a84ae Make sure that statusInitialized is always called
regardless of wether it's a connection or reconnection event.

We can then only listen for `statusInitialized` to handle both cases.
2018-02-22 11:20:26 +01:00
JC Brand
d1d43edf52 Move MUC views into a new plugin 2018-02-21 22:40:30 +01:00
JC Brand
ec2bda338b Refactor XMPPStatus.
- Remove undocumented and unused event `update-status-ui`
- Remove xhr_custom_status and xhr_custom_status_url options
- Use default value
- Remove unnecessary getter and setter
2018-02-21 14:41:54 +01:00
JC Brand
fa6569352c Don't use _.template for variable interpolation
It depends on `eval` which is unsafe.
2018-02-19 11:08:32 +01:00
JC Brand
48c806c9d0 Shorten utils to u 2018-02-19 10:34:52 +01:00
JC Brand
2d746d2a1e Make converse-muc-embedded a core plugin.
1. Add a new `view_mode` value: `embedded`.

   This value is used to determine wether the `converse-muc-embedded`
   plugin is active or not.

2. Remove the need for the #converse-embedded-chat element.

   Instead we reuse the #conversejs element and embed inside that.

3. Removed the need to manually blacklist core plugins

   This is now done automatically if `view_mode` is set to `embedded`.
   Perhaps eventually we don't blacklist at all and instead use the
   `enable` plugin method. For some that probably won't work, like
   `converse-chatview`, which we still need to be active.
2018-02-09 16:37:55 +01:00
JC Brand
56aa45b1d3 Set auto_reconnect to true by default. 2018-02-09 16:37:55 +01:00
JC Brand
ba9c3b01ed Set converse on the window and trigger an event after loaded.
Setting it on `window` is necessary to have it available inside a
webcomponent.

Triggering an event is necessary so that we don't call
`converse.initialize` too early.
2018-02-09 16:37:55 +01:00
JC Brand
5517e3554c Add a new configuration setting: root 2018-02-09 16:08:39 +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
680f30412a Bugfix. Object values for defaults passed-by-reference 2018-02-08 17:06:36 +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
253c4d736e Focus the textarea after toggling between spoiler or not 2018-02-06 18:05:12 +01:00
Seve
a866c17414 Initial example plugin 2018-02-06 18:05:12 +01:00
ChaosKid42
1da20577e1 make locales_url relative (#1012) 2018-02-04 09:19:08 +01:00
JC Brand
3d32f69548 console.trace is only shown when showing VERBOSEly
So use `console.error` instead, which is shown when the console settings
is set to something less verbose.
2018-01-29 11:17:54 +01:00
JC Brand
12af9d5cbd Tying some loose ends 2018-01-22 09:53:35 +01:00
JC Brand
026cce3ada Rename zh to zh_TW and add Simplified Chinese as zh_CN 2018-01-18 11:02:44 +01:00
JC Brand
bc7b70732e Add support for simplified Chinese 2018-01-18 10:44:24 +01:00
linkmauve
561bdbba35 Always use formatting inside translatable strings (#983)
This helps translators reorder words in the string.
2018-01-17 17:02:51 +01:00
JC Brand
16b8946dd9 Updates #978: Use moment and generate date in correct format 2018-01-04 13:11:51 +00:00
JC Brand
671691353a Use Backbone.NativeView instead of Backbone.View 2018-01-03 20:41:03 +00:00
Emmanuel Gil Peyrot
f2ecf3c010 Remove executable bit from files which don’t need it 2017-12-24 17:05:01 +00:00
JC Brand
ac643ae63f Refactor views to use Backbone.OrderedListView 2017-12-22 12:02:18 +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
8dae284e6f Log reason when catching errors 2017-12-18 12:20:39 +00:00
JC Brand
5eabf4008e Render "create account" link via a VDOMView and hide when connecting 2017-12-14 12:30:50 +00:00
JC Brand
8cd75aa09c Move ChatBox, Message and Messages to converse-chatboxes 2017-12-06 22:09:46 +01:00
JC Brand
c26ccf5e01 Remove jQuery as dependency for converse-mam.
Also, if a message has no `archive_id` attribute, then do a time-based MAM query.
2017-12-02 14:26:28 +01:00
JC Brand
9d1c6236ac Move the xmpp status (e.g. profile) view into separate plugin 2017-11-17 13:32:03 +01:00
JC Brand
87213bf90a Rename getPromiseWrapper to getResolveablePromise
Let a promise be returned instead of a wrapper, but glue the `resolve`
and `reject` methods onto it
2017-11-10 21:37:35 +01:00
JC Brand
007e608f32 More work on combining the inverse/converse builds
- Use `enabled` method for plugins
- Rename `converse-inverse.js` to `converse-fullscreen.js` and make it a
  core plugin.
- We're no longer making separate mobile and inverse builds

No longer a need to whitelist/blacklist plugins for inverse to work.
2017-11-02 16:41:06 +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
46ca6c7de2 Make the router global and clear login/register fragments
upon login or after registering.
2017-10-31 21:47:27 +01:00
JC Brand
e8e20fbf93 Make sure to emit upon reconnection 2017-10-31 20:38:52 +01:00
JC Brand
2d747bb287 Various changes. See below.
* Update localisation/translation documentation due to recent changes.
* Remove `moment_locales.js` and instead load the moment locales in `src/i18n.js`
* Mention how to load the fullscreen version. Refs #939
2017-10-31 20:38:51 +01:00
JC Brand
9862d747a9 Refetch the roster from the server after reconnection.
From the perspective of the XMPP server, this is an entirely new login,
and therefore as per RFC-6121 the roster SHOULD be queried, making the
client an "interested resource".

https://tools.ietf.org/html/rfc6121#section-2
2017-10-31 20:38:51 +01:00
JC Brand
0a7c20a1e2 Log incoming and outgoing XML stanzas in different colors 2017-10-31 20:38:51 +01:00
JC Brand
4dad60c8d6 Include timestamps in debug logs 2017-10-31 20:38:51 +01:00
JC Brand
05c3a5cad6 Move translation machinery into a separate module 2017-10-31 20:38:51 +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
50064ec1fd Translation bugfix. Wait until after locales attribute is there 2017-09-27 00:33:58 +02:00
JC Brand
80b3692131 More work in removing locales from builds 2017-09-26 18:27:41 +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
92af05d510 Some more refactoring now that we use a vdom for the login panel
We can now simply call `render` whenever we want to show an error or
notification message.

The flip side is that the template is now larger and contains more login.
2017-09-24 00:30:43 +02:00
JC Brand
937b310733 Refactor login form to make it more reactive. 2017-09-24 00:30:43 +02:00
JC Brand
4063bbfc1c converse-register: Consolidate validation and error reporting 2017-09-24 00:30:43 +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
43bbae9006 Don't require auto_login to be true when using the API to log in 2017-09-24 00:30:43 +02:00
JC Brand
158acbf1d7 Fixes #828 Add routing for login and register URL fragments 2017-09-24 00:30:43 +02:00
JC Brand
f908463ab9 Clear connection feedback after login 2017-09-08 18:18:55 +02:00
JC Brand
bd913734e4 Don't hang indefinitely + nicer error messages
when a connection can't be established.
2017-09-08 14:24:38 +02:00
JC Brand
c9913bf6ac Fix failing tests 2017-08-29 12:29:56 +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
75301d2875 Bugfix. info called on object that doesn't implement interface Console 2017-08-21 12:52:18 +02:00
JC Brand
016bca74b8 console.warn is not supported on FF < 52 2017-08-21 11:29:06 +02:00
JC Brand
694eabfc0e Use promises to determine when to create the controlbox 2017-08-16 13:22:18 +02:00
JC Brand
956340aa8c Make initialized a promise and use it in the controlbox 2017-08-16 12:32:15 +02:00
JC Brand
273da9e876 Move chatboxes collection and overview into separate plugin 2017-08-16 12:32:15 +02:00
JC Brand
e4d95eb794 Don't load lodash.fp in converse-core. It's not being used there. 2017-08-15 16:36:43 +02:00
JC Brand
bfeb297ffc Clarify usage of locked_domain.
Also, declare it in the controlbox plugin, not in core, where it's not used.
2017-08-15 10:23:57 +02:00
JC Brand
a9d1e5c235 Don't use forEach on nodeList objects (not supported by all browsers). 2017-08-08 15:32:53 +02:00
JC Brand
a9589cba71 Don't expose 'connected' as a promise.
'reconnected' cannot be used as a promise (because it's recurring),
so to avoid confusion let's not have a 'connected' promise either.
2017-07-21 15:09:50 +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
00484280c2 core: Catch and log errors that might happen during initStatus 2017-07-21 15:09:50 +02:00
JC Brand
c012c2c1af Don't show duplicate sent groupchat messages in Slack chat rooms 2017-07-19 08:28:51 +02:00
JC Brand
d9a61746a2 Bugfix. Server disco features forgotten between logouts. 2017-07-18 10:46:46 +02:00
JC Brand
6fea88fcc3 Add JID validation and error messages to the add contact form 2017-07-17 22:08:15 +02:00
JC Brand
e3d2abf0ec emoji: Make sure emojis are also rendered for ascii emoticons 2017-07-16 12:50:59 +02:00
JC Brand
284e884766 Add js-xss and use it to sanitize message HTML 2017-07-15 19:15:48 +02:00
JC Brand
e75b6ad694 Recreate promises whenever initialize is called. 2017-07-11 17:05:01 +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
8c1c665e2e core: Some more logging improvements. 2017-07-10 10:43:13 +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
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
ea04b11724 Try to fix what appears to be a timing bug 2017-06-27 09:29:46 +02:00
JC Brand
095e7add86 mam: Upgrade MAM support to version 2 2017-06-23 22:58:47 +02:00
JC Brand
66fd9a9f28 muc: Fix: after reconnecting, already open room didn't receive new messages 2017-06-23 20:19:38 +02:00