Commit Graph

1191 Commits

Author SHA1 Message Date
JC Brand
063908e032 Append spinner when fetching newer messages 2017-12-02 15:09:04 +01:00
JC Brand
4df61cc496 After reconnection, fetch new messages for private chats 2017-12-02 14:26:28 +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
d420a35e91 Merge remote-tracking branch 'weblate/master' 2017-11-23 15:23:06 +01:00
JC Brand
fa7ca46d12 Text fixes based on feedback from translator 2017-11-23 12:10:40 +01:00
JC Brand
5939f11192 Some work on removing jquery from the controlbox code 2017-11-17 14:42:09 +01:00
JC Brand
141eaa6a39 Fix rendering of heading for headlines boxes 2017-11-17 14:41:54 +01:00
JC Brand
9aefd2739f Remove jquery as dependency for converse-profile.js 2017-11-17 14:21:18 +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
ca0cbb1c31 Use an img tag instead of canvas for rendering avatars 2017-11-17 13:19:21 +01:00
JC Brand
bac1d22205 Fix: In chatbox heading two avatars sometimes get rendered 2017-11-17 12:50:16 +01:00
JC Brand
250b06475e Bugfix. Disappearing contacts filter when changing the type 2017-11-17 11:30:50 +01:00
JC Brand
0acef8b49d Transpile backbone.vdomview 2017-11-17 11:02:55 +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
cfd5dad9c5 Use [backbone.vdomview](https://github.com/jcbrand/backbone.vdomview)
For the MUCJoinView and the LoginPanel
2017-11-10 22:01:36 +01:00
JC Brand
ed4c393a9d Create separate view for the MUC join form 2017-11-10 21:37:35 +01:00
JC Brand
a6f2877ed9 Disco API refactoring
This came out of the desire to let `converse-muc` use the API to
determine whether MUC is supported. However, we don't know the entity
JID before hand and I couldn't think of a good way to query all current
and future entities for a feature.

So `converse-muc` still does it's own thing without the API, but some
refactoring came as a result of attempting.
2017-11-10 21:37:35 +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
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
4d06228d89 Various changes around making builds.
- Update build scripts to use transpiled versions of newly added modules
- Stop building locales.js and remove locales stuff from build scripts
- No need for Grunt anymore since we don't need to make locales.js
2017-11-03 08:45:47 +01:00
JC Brand
042a26d05d New API method _converse.disco.supports
to check whether a certain service discovery feature is supported by an entity.
2017-11-02 23:23:01 +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
3514d6d56b fixes #316
- Also allow private chats to be opened via URL fragment.
- Make sure to clear the URL fragment when the relevant chat is closed.
2017-10-31 23:11:27 +01:00
JC Brand
985cf6c294 Use global router to open chat rooms 2017-10-31 22:08:06 +01:00
JC Brand
35db952e71 Make openChatRoom a closured function 2017-10-31 22:07:40 +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
61ed55dbaa Rename login and register urls 2017-10-31 20:39:44 +01:00
JC Brand
523c84a254 Log as warning instead of error 2017-10-31 20:38:52 +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
bb0e4d26ec Throw more helpful error when there's no connection 2017-10-31 20:38:51 +01:00
JC Brand
20f3172f5e Add fixme note 2017-10-24 11:07:58 +02:00
JC Brand
724e66d0e5 Initial code for opening a room via URL 2017-09-29 00:07:16 +02: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
79412215b5 Fix smooth scroll code for the website 2017-09-28 21:26:11 +02:00
JC Brand
5ac1e00cdb Don't add fade-in to controlbox. Causes flashes 2017-09-27 00:36:19 +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
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
9a8db618d3 More user-friendly phrasing 2017-09-24 11:03:27 +02:00
JC Brand
85078b403b Use change event instead of blur.
This solves a bug whereby switching to the register form doesn't happen because
validation gets triggered which somehow prevents it.
2017-09-24 10:21:14 +02:00
JC Brand
3d53943f49 Generate pot file from the converse-no-dependencies build
This is a workaround for the fact that getttext doesn't support ES2015 template
literals and it also allows us to scan for translateable strings in our HTML
templates.
2017-09-24 00:30:43 +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
be7f8ab4c4 Use a virtual dom to render the login form 2017-09-24 00:30:43 +02:00
JC Brand
2203e9505a Set autofocus on inputs 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
f827979000 converse-register: render the buttons as part of the template
instead of manually
2017-09-24 00:30:43 +02:00
JC Brand
33cc72829b converse-register: 2 changes.
* Use declarative events instead of `addEventListener`.
* Remove the jquery dependency in this module
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
a9b74ca9b5 converse-register: refactor in order to simplify. 2017-09-24 00:30:43 +02:00
JC Brand
ce1e29e4f2 Bugfix. Fields weren't being marked as required. 2017-09-24 00:30:43 +02:00
JC Brand
9cdb0dde8c Various changes
* In certain places, use native methods instead of jQuery
* Nicer rendering of registration forms
* Use CSS3 fade-in animations.
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
57d2f9bce8 Add validation message for an invalid JID in the login form 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
7e4fb52f8d Render register and login forms via links 2017-09-24 00:30:43 +02:00
JC Brand
37fcc6b70e Hide connection feedback parent element 2017-09-24 00:30:43 +02:00
JC Brand
140946a34b Add brand headings 2017-09-24 00:30:43 +02:00
JC Brand
1613c0d7de Styling changes now that we don't have tabs. 2017-09-24 00:30:43 +02:00
JC Brand
196a42dc50 Make sure strings get translated and that interpolation is safe 2017-09-24 00:30:43 +02:00
JC Brand
ce56e0d858 We no longer have login and register tabs 2017-09-24 00:30:42 +02:00
JC Brand
681245584e Remove Login and Registration tabs and consolidate into one panel 2017-09-24 00:30:42 +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
34e214d0df New release 3.2.1 2017-08-29 13:28:34 +02:00
JC Brand
c9913bf6ac Fix failing tests 2017-08-29 12:29:56 +02:00
JC Brand
e6e0fc9070 minimize: Don't trim chats prematurely.
Also, the minimized chats view now gets rendered after chat boxes are fetched,
so we need to make it check for already added and minimized chats.
2017-08-29 12:29:56 +02:00
JC Brand
b9b9689668 Fixes #912 maximize method in converse-minimize fails...
if the `controlbox` is not there.

Also, make `converse-controlbox` and `converse-muc` optional dependencies of
`converse-minimize`.
2017-08-29 12:21:53 +02:00
JC Brand
734991f1ce Fixes #907: unnecessary validation error 2017-08-29 10:32:44 +02:00
JC Brand
4da4131003 Fixes #908: narrow inVerse login form when allow_registration is false. 2017-08-29 10:23:03 +02:00
lduburas
eef483cb4d Fix regarding ChatRoomView.getDefaultNickName() and muc_nickname_from_jid (#911)
* ChatRoomView.getDefaultNickName() when muc_nickname_from_jid  is used

Allows to overridde nickname by plugins when muc_nickname_from_jid is used.

* CHANGES.md updated
2017-08-28 09:27:59 +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
6c6b85347a Move functions out to make containing function smaller 2017-08-23 11:54:19 +02:00
JC Brand
ab0ec7301f Various fixes for browser that don't support ES2015
Specifically for IE11.

* Add a polyfill for String.prototype.includes
* Make sure all bundled code is transpiled
* Add IE specific fix in converse-otr.js
2017-08-21 15:43:36 +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
d70746d6ef Fix linting error 2017-08-16 16:32:25 +02:00
JC Brand
9e8c034b42 Handle cases where Jed and/or Strophe.disco aren't available 2017-08-16 16:01:31 +02:00
JC Brand
56c5a9c8d0 Move form utilities to form-utils.js 2017-08-16 15:19:41 +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
956340aa8c Make initialized a promise and use it in the controlbox 2017-08-16 12:32:15 +02:00
JC Brand
bc6b5ca930 controlbox: Set connected immediately 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
4938621048 Nicer CSS and markup for room configuration forms. 2017-08-16 09:39:13 +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
3afe5eb8f3 Run the lodash converter only once. 2017-08-15 16:46:55 +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
4d2c807cf2 Fixes #220. Enable usage of both _ and fp in non-AMD case 2017-08-09 17:35:48 +02:00
JC Brand
38f8724dd9 roomslist: Add ability to add or remove bookmarks 2017-08-09 15:50:24 +02:00
JC Brand
01888b9ba4 vcard: Properly handle case where FN is empty in VCard 2017-08-09 14:37:33 +02:00
JC Brand
eed936ff64 Trying to fix timing/heisenbugs on Travis 2017-08-09 14:21:24 +02:00
JC Brand
5a67d985dc emoji: Render shortname in textarea, not unicode. 2017-08-09 12:33:00 +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
805db75e10 Bugfix. Handle case where there's no room data 2017-08-08 16:27:07 +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
8113a14ace Release candicate for 3.2.0 2017-07-22 22:23:44 +02:00
JC Brand
27931d3e37 controlbox: Add JID validation to the login form 2017-07-21 20:14:38 +02:00
JC Brand
631ac6108f controlbox: have only one dropdown menu open at one time. 2017-07-21 20:10:32 +02:00
JC Brand
bfc1e99694 Fix disco test 2017-07-21 20:01:09 +02:00
JC Brand
59edcb2393 muc: Add JID validation to the occupant invite form 2017-07-21 19:53:57 +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
75342b066e css: Titles for available chat rooms were cut off too soon 2017-07-21 18:08:29 +02:00
JC Brand
de7a1f7545 Check specifically for the Slack identity when working around its quirks 2017-07-21 17:58:46 +02:00
JC Brand
9084cdaa57 disco: Don't query for #items on conference components.
We don't need them at that time and we'll query when a chat room gets opened.
2017-07-21 17:46:24 +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
084d9914b0 muc: Refactored how MAM messages are fetched.
Listen for the `afterMessagesFetched` event.
Wait until `discoInitialized` before fetching.
Add `fetchArchivedMessagesIfNecessary` method(s).
2017-07-21 15:09:50 +02:00
JC Brand
0a47f60f94 Emit new event `afterMessagesFetched` 2017-07-21 15:09:50 +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
6ac01ed2ac Bookmark icon shown in open rooms list when allow_bookmarks set to false 2017-07-19 09:28:44 +02:00
JC Brand
0edb38e2c6 Fixes #896 Consistently use XMPP username in user facing text 2017-07-19 09:17:46 +02:00
JC Brand
713e49b095 Fix failing tests 2017-07-19 09:14:02 +02:00
JC Brand
f84790e68c muc: Show JID (instead of only server) in room info
Also made some styling changes and tweaked the room head to better
differentiate between the Name and JID of a room.
2017-07-19 08:30:04 +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
5c487d2faf Refactored the slide methods
so that slider does not have fixed height after being opened and can therefore
shrink or expand appropriately when its children change.
2017-07-17 21:53:33 +02:00
JC Brand
d23046329e Fixed a bug in slideOut where offsetHeight changes after sliding out
As a result we can again show emoji categories and skin tones on the same line
(if there is enough space).
2017-07-17 18:09:14 +02:00
JC Brand
496d2521fc muc: Show room domain in header.
Also make sure room name gets saved once it's been updated.
2017-07-17 18:07:31 +02:00
JC Brand
e4ebcc8f71 emoji: various css and html changes to improve ui/ux in converse and inverse 2017-07-16 15:04:54 +02:00
JC Brand
ffdd4e25f3 emoji: remember category and skin tone selection 2017-07-16 14:12:17 +02:00
JC Brand
8c4f6ffe03 emoji: Listen for clicks on a larger surface area 2017-07-16 13:41:01 +02:00
JC Brand
1dfdba0db9 muc: Ignore non-MUC (like error) messages
Noticed that Slack sends error messages back in response to chat state
notifications.

We're not doing anything with them currently and they bloat the sessionStorage
2017-07-16 12:51:20 +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
49f26d8e49 emoji: Allow the assets path of Emojione to be overridden 2017-07-16 12:30:40 +02:00
JC Brand
f8c6467feb emoji: Show only one skin-tone at a time (including the "neutral" one) 2017-07-16 12:29:09 +02:00
JC Brand
3ebe41384d emoji: Remember scroll position when rerendering the emoji picker 2017-07-16 12:29:09 +02:00
JC Brand
9a5f2fce61 emoji: Add a skin-tone picker to the emoji toolbar 2017-07-16 12:29:09 +02:00
JC Brand
22113a8ccb Expand test for rendering of images (and fix accordingly) 2017-07-16 12:29:08 +02:00
JC Brand
12510a9689 emoji: Fix rendering of emojione images 2017-07-16 12:29:05 +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
284e884766 Add js-xss and use it to sanitize message HTML 2017-07-15 19:15:48 +02:00
JC Brand
b85b29bb20 vcard: Bugfix. 'FN' may not be defined. 2017-07-15 17:26:59 +02:00
JC Brand
e6492e286d Don't specify method 2017-07-15 16:00:36 +02:00
JC Brand
0958915021 Refactor slightly to improve readability 2017-07-15 16:00:18 +02:00
JC Brand
f69e39dc8b Reuse code for submitting a message 2017-07-15 15:58:11 +02:00
JC Brand
cf1e8f2921 Fix failing test for emoji picker 2017-07-15 15:16:38 +02:00