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
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
937b310733
Refactor login form to make it more reactive.
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
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
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
681245584e
Remove Login
and Registration
tabs and consolidate into one panel
2017-09-24 00:30:42 +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
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
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
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
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
6fea88fcc3
Add JID validation and error messages to the add contact
form
2017-07-17 22:08:15 +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
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
f09d01c930
roster: Move roster push and rosterX handlers to core.
...
There's nothing about them that's view specific.
2017-06-16 11:42:46 +02:00
JC Brand
be28e04c57
roster: render unread messages in tab upon reload
...
Also including css fixes around the unread messages indicator.
2017-06-15 18:38:38 +02:00
JC Brand
e48015df66
Fixes #575
2017-06-15 17:51:56 +02:00
JC Brand
d527f693c2
Updates #890 Destroy and recreate session upon reconnection
...
This ensures that carbons will be activated again.
2017-06-15 17:30:26 +02:00
JC Brand
3181956b61
controlbox: use `sticky_controlbox
` setting to reduce inverse code
2017-06-15 15:01:34 +02:00
JC Brand
d1bafdb38a
Re-render only the tab when num_unread
changes.
2017-06-09 23:45:54 +02:00
JC Brand
b5ecc1fc6a
Expose the fp version of lodash via the API
2017-06-07 09:15:22 +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
bab80a3234
No need to set num_unread, it has a default value.
2017-05-23 18:15:28 +02:00
JC Brand
7c9475e9fc
controlbox: Only render the contacts panel when connected
...
Otherwise it gets rendered multiple times (at least during testing).
2017-05-16 11:54:20 +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
JC Brand
3ea43c6a0f
Use noConflict
to avoid polluting globale namespace
...
with lodash and Backbone.
2017-04-21 18:06:27 +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
27a0560ad3
Consistently use . Fixes failing test
2017-03-03 15:25:05 +01:00
JC Brand
eb82d64426
converse-controlbox: Retain open state after logging in.
2017-03-03 14:43:13 +01:00
JC Brand
9817aedea7
No need to set templates on the _converse object.
...
If it's needed in another plugin, it can simply be `require`'d.
2017-02-19 11:12:26 +01:00
JC Brand
073a95b7e6
Avoid visibility transience and fix failing test
2017-02-15 07:46:24 +00:00
JC Brand
fbdbea223d
Ensure consistent behavior from show_controlbox_by_default
2017-02-14 17:23:22 +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
f73a1d3fc0
Don't name the modules.
...
According to the require.js docs this shouldn't be done.
http://requirejs.org/docs/whyamd.html#namedmodules
2017-02-13 14:37:17 +00:00
JC Brand
bfd3e7f0b6
Bugfix. Show custom status, not chat status.
2017-02-13 12:00:46 +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
9b48b2d6bd
Update plugins to not depend on converse-core
...
To illustrate that this is not necessary (and also not possible with
non-bundled plugins).
2017-02-02 18:34:13 +00:00
JC Brand
b701c4830f
Also use _converse
as pluggable object reference.
2017-02-02 18:34:13 +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
081f075aa9
Add eslint with lodash checking and apply its suggestions
2017-02-01 14:02:18 +01:00
JC Brand
0cf9903726
Fix failing tests.
2017-02-01 10:49:13 +00:00
JC Brand
af42bc0696
Only close controlbox when logging out
...
Not when the connection failed due to other reasons (like wrong credentials).
2017-02-01 10:49:12 +00:00
JC Brand
e179811181
converse-controlbox: Fix empty controlbox toggle after disconnect
...
- Remove apparently unused `giveFeedback` method on ControlBoxView
- Don't show old connection feedback when rendering a new login form.
Now also no need to explicitly remove feedback after disconnection.
2016-12-04 16:37:07 +00:00
JC Brand
be25c688ff
converse-controlbox: Use event listeners instead of (removed) overrides
...
Due to changes in `converse-core` the controlbox wasn't aware anymore of
disconnection or reconnection events.
2016-12-04 15:07:46 +00:00
JC Brand
a5f76abcf1
Updates #729 . Minimized chat boxes don't stay hidden
...
Bug got introduced during fix for #677
Eventually had to do a significant refactoring, to more consistently use the
`hidden` class instead of `display: None`. (relevant for #695 )
2016-11-22 17:42:58 +01:00
JC Brand
0c2c7be467
Close the controlbox when logging out...
...
and don't show the online count in the toggle.
2016-11-03 13:59:05 +00:00
JC Brand
5610d759c8
Call removeAll
on rosterview when tearing down.
...
Otherwise RosterContactView objects stay around and keep on listening.
2016-11-03 13:59:05 +00:00
JC Brand
d3090f80bc
Remember which panel was open when reloading the page.
2016-11-02 22:08:20 +00:00
JC Brand
38db959e11
Reconnection fixes. Fixes #712
...
- Remove groupviews, so that they'll get recreated upon reconnection
- Don't call `clearSession` when reconnecting. We want to reuse the
Backbone collections.
- Emit `rosterInitialized` event and use that in converse-rosterview.js
(instead of overriding).
- Refactor `onReconnected` to emit `rosterReadyAfterReconnection`, call
`converse.populateRoster()` and `converse.chatboxes.onConnected()`.
- Recreate the roster view on the `rosterReadyAfterReconnection` event.
2016-11-02 13:13:49 +00:00
JC Brand
e3d59afd80
Use converse
instead of this
, or that
instead of bind
2016-11-02 12:46:29 +00:00
JC Brand
90d1071df0
Load templates in the respective plugins
2016-09-23 12:35:01 +02:00
JC Brand
d8d1c283a7
Let the RosterView render and populate itself
...
instead of having the ControlBoxView do it. This provides for cleaner
separation between the two plugins.
2016-09-21 11:48:43 +02:00
JC Brand
7030495275
Refactor the rosterview.fetch method
...
So that we can also fetch the roster also without the controlbox and rosterview.
2016-09-20 17:38:01 +02:00
JC Brand
713922a9e1
Update to Strophe 1.2.8 and add support for SASL-EXTERNAL auth
2016-09-16 13:06:52 +02:00
JC Brand
89e5bd7c54
Update to pluggable.js 0.0.2
2016-08-31 10:39:11 +00:00
JC Brand
3c9b5bd7a0
More work on session management.
...
When it's not possible to reconnect due to password no longer being cached,
render the login form.
Fixed a bug whereby after one failed reconnection event, reconnection becomes
impossible (due to 'connection' state of the controlbox).
2016-08-23 18:14:09 +00:00
JC Brand
f5b182c365
Set connected
back to true
after reconnect.
2016-08-23 13:25:34 +00:00
JC Brand
4a2048baae
Found a better way to ensure roster is fetched after reconnecting.
2016-08-23 08:53:37 +00:00
JC Brand
59143c1c72
More work on auto-reconnecting and on maintaining sessions.
...
- Added the ability to reconnect to more disconnection causes.
- Make sure the roster is fetched again when reconnecting.
2016-08-19 12:16:55 +00:00
JC Brand
9e8674ef55
Rename ChatBoxView.insertIntoPage
to ChatBoxView.insertIntoDOM
...
to ensure naming consistency, we have the same method on `ChatRoomView`.
2016-06-22 15:54:22 +02:00
JC Brand
081d377881
Move code from plugins to core.
...
Move init of RosterGroups collection and presenceHandler registration out of
the controlbox and rosterview plugins and into core, since this code is
generally useful (indeed necessary) even without those plugins.
2016-06-22 10:25:01 +00:00
JC Brand
7f753040de
Move roster-related models/collections to core
2016-06-21 17:36:40 +00:00
JC Brand
2c6f6bfef2
Merge branch 'soft-dependencie'
2016-06-13 07:45:15 +00:00
amanzur
45a3e643a8
online users count issue-656 ( #657 )
...
* online users count issue-656
* change log entry added for issue 656
2016-06-10 16:27:28 +02:00
JC Brand
62c170273e
Allow plugins to have optional dependencies.
...
This change refactors out the plugin code from converse-core into
src/converse-puggable.js
Additionally, plugins now have an optional attribute `optional_dependencies`
which is an array of dependencies which are "nice-to-have" but not essential.
Work has also been done to ensure that a plugins' dependencies are first loaded
before the plugin itself.
2016-06-10 08:26:29 +00:00
JC Brand
0002c0bd53
converse._tearDown
shouldn't be called from converse-controlbox.js
2016-05-31 10:24:22 +00:00
JC Brand
cb288341fb
Bugfix. Login form doesn't render after logging out
...
when auto_reconnect = false
2016-05-24 09:03:41 +00:00
JC Brand
0564f0f592
Handle case were connection is not defined.
2016-04-13 10:09:47 +00:00
JC Brand
aee232421c
Properly tear down when logging out or disconnecting.
...
Remove interval handler and the user activity handler.
Make sure the connection is reset when logging out.
Also removed the reconnectTimeout, instead debounce the reconnect method by 1 second.
2016-04-08 09:02:06 +00:00
JC Brand
f4c1e0916e
Debounce so that it doesn't get called for each fetched contact
2016-04-07 10:42:35 +00:00
JC Brand
d0c13ea91c
Small translation tweaks and then compiled i18n files
2016-04-07 10:42:27 +00:00
JC Brand
cd3cc412d9
Move updateOnlineCount to controlbox, where it belongs.
2016-04-06 13:14:38 +00:00
JC Brand
94693f2d02
Some refactoring to fix issues with how/when chat rooms are shown
...
- Don't call show in a room's initialize method (instead let the code be more
similar to normal chats, in that it should listen to the "show" trigger).
- Rename chatBoxShouldBeShown to chatBoxMayBeShown
- Implement auto_join for rooms only once boxes have been fetched already.
2016-04-05 11:23:16 +00:00
JC Brand
8e0f8f0a6d
Add the ability to filter contacts by chat state.
...
The roster filter is now also remembered across page loads.
2016-04-02 11:30:54 +00:00
JC Brand
885c553e2e
Bugfix. Login panel wasn't being rendered after logging out
2016-04-02 03:43:04 +00:00
JC Brand
a6c3b46237
Move the drag-resize code into a separate component.
2016-04-01 12:46:19 +00:00
JC Brand
e0d1a32fdb
Attempt to reconnect when authfail happens
...
and auto_login is true and credentials_url is set.
Trying to handle the case where tokens are used for credentials_url (and the
token is expired).
Not yet 100% happy with this implementation.
2016-03-31 12:32:11 +00:00
JC Brand
ea9665df4b
Add the option sticky_controlbox, to disable closing it.
...
updates #622
2016-03-31 09:17:32 +00:00
JC Brand
4c6bd1f49c
Cleaner separation between minimize/trimming feature and core
...
One visible effect is that when this component is now removed,
minimize buttons are not visible on the chat boxes.
updates #622
2016-03-31 08:40:25 +00:00
JC Brand
868aacb2fc
Controlbox fix. Make sure to initialize the view again.
2016-03-29 15:41:27 +00:00
JC Brand
2d846961c2
Use 'type' = 'chatroom' instead of 'chatroom' boolean.
2016-03-21 10:00:15 +00:00
JC Brand
8e18d736b4
fixed indentation of comments
2016-03-19 22:16:00 +00:00
JC Brand
a2b8d04d84
Move config settings to the relevant plugins
2016-03-18 08:12:23 +00:00
JC Brand
7039dbe01b
Move chat minimization to a separate plugin
2016-03-14 16:38:43 +00:00
JC Brand
df3bcad0b3
Move roster view code into a separate plugin
2016-03-14 14:04:36 +00:00
JC Brand
f55b593791
Use the new plugin helper method updateSettings
2016-03-14 14:04:36 +00:00
JC Brand
fe47773c7f
Move ChatView into separate plugin.
2016-03-14 14:04:36 +00:00
JC Brand
8b459c68b1
Call trimChats in the show method of the box view
...
Not in the onAdded handler.
2016-03-09 11:03:06 +00:00
JC Brand
d192b34919
onChatBoxFetched renamed to onChatBoxesFetched
2016-03-09 10:54:50 +00:00
JC Brand
d893d9782a
Improvement in when trimChats gets called
...
Don't call trimChats when the box is minimized or maximized, instead call it
only when the minimized chats toggle appears or disappears, since that's the
element that adds/removes space.
Also, a fix. 'onShow' has been renamed to 'onMaximized'
2016-03-09 10:26:14 +00:00
JC Brand
7484259024
Bugfix, need to return the chatbox
2016-03-09 10:01:20 +00:00
JC Brand
2dbe2fc5a3
Bugfix. Need to set the context when calling a _super method
2016-03-09 08:39:04 +00:00
JC Brand
9cce0ff6ae
Add plugin settings to default settings.
...
So that they are retrievable via the API.
2016-03-01 08:57:57 +00:00
JC Brand
578ca540b3
Move RosterContact and RosterContacts back into core.
...
They're independent of the controlbox and used by other core functions.
2016-02-29 21:29:05 +00:00
JC Brand
4ebed3c995
We still need the roster in core, so set it there.
...
Still have to move the roster code out of src/converse-controlbox.js
2016-02-29 20:05:01 +00:00
JC Brand
dcd090ff31
Rip out the controlbox code and put it in src/converse-controlbox.js
...
Also fixed an issue w.r.t the plugin architecture. Previously infinite
recursion would happen when more than one plugin was overriding a method.
Resolved now by using a wrapper function that lazily sets the correct super
method.
2016-02-29 16:40:51 +00:00
JC Brand
e79c204241
Refactor the API out into a separate module, src/convers-api.js
...
Plugins are now also updated so that they can get the closured converse object
directly and don't need to rely on _super.
2016-02-20 15:06:12 +00:00