Commit graph

179 commits

Author SHA1 Message Date
J. Ryan Stinnett
426bdafe22
Merge pull request #2672 from jryans/password-validation
Report validity state of all registration fields on any change
2019-02-26 18:20:38 +00:00
Matthew Hodgson
ef3b729ff4 s/google.com/recaptcha.net/ as per https://developers.google.com/recaptcha/docs/faq#can-i-use-recaptcha-globally 2019-02-24 23:35:08 +00:00
J. Ryan Stinnett
86a375c7da Report validity state of all registration fields on any change
This passes the validity state of all fields to the consumer of
`RegistrationForm` via the `onValdiationChange` callback, instead of just the
most recent error.

In addition, we notify the consumer for any validation change, whether success
or failure. This allows old validation messages to be properly cleared. It also
allows the consumer to be aware of multiple validation errors and display the
next one after you have fixed the first.

Fixes https://github.com/vector-im/riot-web/issues/8769
2019-02-21 14:44:39 +00:00
J. Ryan Stinnett
acae2e9976 Wait until password confirm is non-empty
If password confirm is empty on blur, there's no reason to try validating it.
The user may just be tabbing through fields.
2019-02-21 14:44:32 +00:00
J. Ryan Stinnett
27abd7d507 Update validation order to match field order
Validation is meant to run in reverse order of the fields (so that the last
message emitted is for the first invalid field).
2019-02-21 11:35:55 +00:00
J. Ryan Stinnett
8b66b6bdb3 Relabel custom HS link on registration from 'Edit' to 'Change'
Fixes https://github.com/vector-im/riot-web/issues/8853
2019-02-21 11:03:50 +00:00
J. Ryan Stinnett
16b9688303
Merge pull request #2669 from matrix-org/jryans/default-server-name
Restores support for `default_server_name` which discovers URLs via `.well-known`
2019-02-21 10:38:15 +00:00
J. Ryan Stinnett
42bb3c4f40 Prevent default for forgot password link
The forgot password link should prevent default to avoid changing the URL's hash
state.
2019-02-20 17:33:59 +00:00
J. Ryan Stinnett
d220dd49ef Clarify that the account is a Matrix account
Now that auth flows can show a server name like `example.com` which might
delegate the HS to some other server, it could be confusing to see text like
"Sign in to example.com", especially if `example.com` runs an identity service,
uses SSO, has its own account system, or other things like this.

To clarify that we mean Matrix accounts, all auth flows are updated to talk in
terms of "<verb> your Matrix account on <server>".

Fixes part of
https://github.com/vector-im/riot-web/issues/8763#issuecomment-464823909.
2019-02-20 17:33:59 +00:00
J. Ryan Stinnett
f4b7180087 Display default server name in login
If a default server name is set and the current HS URL is the default HS URL,
we'll display that name in the "sign in to" text on the login form.

This can be a bit more user friendly, especially when the HS is delegated to
somewhere such as Modular, since you'll then see "example.com" instead of
"example.modular.im", which you have no direct relationship with as a user.

This is the key bit of https://github.com/vector-im/riot-web/issues/8763 for
login.
2019-02-20 17:33:59 +00:00
J. Ryan Stinnett
91f56a4447 Display default server name in registration
If a default server name is set and the current HS URL is the default HS URL,
we'll display that name in the "your account" text on the registration form.

This can be a bit more user friendly, especially when the HS is delegated to
somewhere such as Modular, since you'll then see "example.com" instead of
"example.modular.im", which you have no direct relationship with as a user.

This is the key bit of https://github.com/vector-im/riot-web/issues/8763 for
registration.
2019-02-20 12:17:51 +00:00
J. Ryan Stinnett
b846ac5800 Rework ServerTypeSelector to only emit changes after initial setup
`ServerTypeSelector` would call its `onChange` prop both at construction
(because it computed the default selected type and consumers might want to know)
as well as on actual user change. This ended up complicating consumer code, as
they want to differentiate between initial state and changes made by the user.

To simplify things, `ServerTypeSelector` now exports a function to compute the
server type from HS URL, which can be useful for setting its initially selected
type. The consumer now provides that type via a prop, and `onChange` is now only
called for actual user changes, simplifying the logic in `Registration` which
uses `ServerTypeSelector`.

In addition, some usages of `customHsUrl` vs. `defaultHsUrl` in `Registration`
are simplified to be `customHsUrl` only (since it already includes a fallback to
the default URL in `MatrixChat`).
2019-02-20 11:23:51 +00:00
J. Ryan Stinnett
9292a46db0 Update comment about Modular server type selection
Modular now sets `disable_custom_urls`, so the server type selector is not shown
for Modular-hosted Riot.
2019-02-20 10:24:03 +00:00
J. Ryan Stinnett
1cde4abe6a Improve text layout above captcha 2019-02-19 13:59:15 +00:00
J. Ryan Stinnett
3c156218da Allow captchas on Riot desktop builds 2019-02-19 13:57:31 +00:00
J. Ryan Stinnett
5b64543159
Typo
Co-Authored-By: dbkr <dbkr@users.noreply.github.com>
2019-02-13 19:05:17 +00:00
David Baker
0f4092dcbc Fix registration after clicking email link
We weren't correctly jumping into the appropriate bit of the registration
flow when coming in from an email link.

 * If we have client secret / sessionId, go straight to registration phase
 * Don't reset server URLs when the server type component tells us its
   initial value
 * Confusingly, pass the custom server URL as 'default server URL' to
   the custom server type, as this is what we want the inital section
   to be based on.

Fixes https://github.com/vector-im/riot-web/issues/8490
2019-02-13 18:12:34 +00:00
J. Ryan Stinnett
705c3248d4 Tweak embedded pages config name 2019-02-08 13:55:23 +00:00
J. Ryan Stinnett
7a15bb65c4 Tweak page URL defaulting 2019-02-08 13:53:17 +00:00
J. Ryan Stinnett
7238c713d7 Add language selector to bottom of welcome 2019-02-08 11:39:30 +00:00
J. Ryan Stinnett
1cf311da10 Place welcome content directly on glass 2019-02-08 11:26:47 +00:00
J. Ryan Stinnett
c587dcab92 Use separate config settings for each page 2019-02-07 17:16:02 +00:00
J. Ryan Stinnett
843f86fc1c Add separate welcome view 2019-02-07 16:25:09 +00:00
Travis Ralston
b2c161c7c1 Merge branch 'develop' into travis/settings/delete-the-old 2019-02-06 11:02:21 -07:00
J. Ryan Stinnett
02a20fa668 Tweak login wording to match design 2019-02-05 15:36:00 +00:00
Travis Ralston
eac50aa800 Remove old user and room settings
This takes out the old user and room settings, replacing the paths with the new dialog editions. The labs setting has been removed in order to support this change.

In addition to removing the old components outright, some older components which were only used by the settings pages have been removed. The exception is the ColorSettings component as it has a high chance of sticking around in the future.

Styles that were shared by the settings components have been broken out to dedicated sections, making it easier to remove the old styles entirely.

Some stability testing of the app has been performed to ensure the app still works, however given the scope of this change there is a possibility of some broken functionality.
2019-02-04 13:40:21 -07:00
J. Ryan Stinnett
4ed13e897a Hide registration fields that aren't used by any flow 2019-02-01 08:35:04 -06:00
J. Ryan Stinnett
ba50ef8445 Clarify required auth stages 2019-02-01 08:33:47 -06:00
J. Ryan Stinnett
e6b6133c7a
Merge pull request #2552 from jryans/spell-homeserver
Spell homeserver correctly
2019-02-01 08:26:17 -06:00
J. Ryan Stinnett
ab5c5c1261
Merge pull request #2546 from jryans/auth-focus-username
Auto-focus username on registration
2019-02-01 08:24:27 -06:00
J. Ryan Stinnett
68ae72f855 Spell homeserver correctly 2019-01-31 18:52:39 -06:00
J. Ryan Stinnett
6905e3e54c Fix typo on registration 2019-01-31 18:15:18 -06:00
J. Ryan Stinnett
81880c01d3 Auto-focus username on registration 2019-01-31 10:47:29 -06:00
J. Ryan Stinnett
346f73bb1d Remove dead code tweaking server URLs on blur 2019-01-31 10:06:35 -06:00
J. Ryan Stinnett
c560fd32c4 Allow empty user / pass on blur, check on submit 2019-01-31 10:06:35 -06:00
J. Ryan Stinnett
e3f3a94980 Remove shake animation from auth field errors 2019-01-31 10:06:35 -06:00
J. Ryan Stinnett
2f006939f2 Use mx_AuthBody prefix for consistency 2019-01-31 10:06:35 -06:00
J. Ryan Stinnett
9a17181f2c Use event value for username blur 2019-01-31 10:05:39 -06:00
J. Ryan Stinnett
eafd7e12d0 Validate login phone number on blur 2019-01-31 10:05:39 -06:00
J. Ryan Stinnett
cfe19d710b Avoid hsName for auth headers which can be outdated
`hsName` uses only the default HS, so that can easily be outdated if the HS URL
is customized.
2019-01-31 10:05:39 -06:00
J. Ryan Stinnett
36d162cb25 Validate server URLs on blur instead of change 2019-01-31 10:05:39 -06:00
J. Ryan Stinnett
f05ddcacf0 Add footer text to registration form 2019-01-29 17:38:28 -06:00
J. Ryan Stinnett
61a3ddb4e3 Adjust registration field labels 2019-01-29 17:38:28 -06:00
J. Ryan Stinnett
01d28bc137 Squeeze country dropdowns to match design 2019-01-29 17:38:28 -06:00
J. Ryan Stinnett
92394ba601 Change country dropdown to be smaller with arrow on right 2019-01-29 17:38:28 -06:00
J. Ryan Stinnett
daee5f0325 Reorganize registration inputs 2019-01-29 17:38:28 -06:00
J. Ryan Stinnett
379b940bfa Add server details edit link to registration 2019-01-29 17:38:28 -06:00
J. Ryan Stinnett
1f78b59a0e Add create your account header 2019-01-29 17:38:28 -06:00
J. Ryan Stinnett
3f4001f1fe Correct stale name in props 2019-01-29 17:38:28 -06:00
J. Ryan Stinnett
7da5a55c7e Add space to CustomServerDialog, format like riot-web variant 2019-01-28 21:51:05 -06:00
J. Ryan Stinnett
b0292929ba Update code style for ServerConfig components 2019-01-28 21:44:41 -06:00
J. Ryan Stinnett
34e2979f98 Add Modular server config screen 2019-01-28 17:32:56 -06:00
J. Ryan Stinnett
d96e814a92 Add link to edit server details 2019-01-28 16:13:19 -06:00
J. Ryan Stinnett
8e9fc8a8e7 Make existing fields full width 2019-01-28 15:29:36 -06:00
J. Ryan Stinnett
abe6fd2f60 Rework ServerConfig to approach design
The public server search box is left out for now, so this restyles the existing
custom server inputs to more closely approximate the design.
2019-01-28 08:52:20 -06:00
J. Ryan Stinnett
3a698ef4fa Clean up Custom Server Help dialog 2019-01-28 08:52:20 -06:00
J. Ryan Stinnett
306380d647 Update HS / IS URLs when changing server types 2019-01-28 08:52:20 -06:00
J. Ryan Stinnett
7934a2950c Add 'Your account' header 2019-01-28 08:52:20 -06:00
J. Ryan Stinnett
e5e0b34958 Fix indentation 2019-01-28 08:52:20 -06:00
J. Ryan Stinnett
cd280ca79f Username is one word 2019-01-28 08:52:20 -06:00
J. Ryan Stinnett
73aeb26a79 Remove dead code for empty matrixIdText in PasswordLogin 2019-01-28 08:52:20 -06:00
J. Ryan Stinnett
350c24c503 Initial wiring of server type selector 2019-01-28 08:52:20 -06:00
J. Ryan Stinnett
fa4ad21e0a Remove dead code for !withToggleButton in ServerConfig 2019-01-28 08:52:20 -06:00
J. Ryan Stinnett
0bee324e48 Add server type selector component 2019-01-28 08:52:20 -06:00
J. Ryan Stinnett
20b7debcaf Remove support for team servers 2019-01-25 16:13:30 -06:00
David Baker
4bcb9f12d4 Add target="_blank" to links that don't have it
This is now more of a problem in the Electron app because of
https://github.com/electron/electron/issues/8841 but is still
annoying in the webapp if you're taken away from your chat client.

Exception is the SSO link, as commented (issue filed at
https://github.com/vector-im/riot-web/issues/8247).

Fixes https://github.com/vector-im/riot-web/issues/8226
2019-01-24 16:19:18 +00:00
J. Ryan Stinnett
7b5500b9e8
Merge pull request #2493 from jryans/auth-lint
Appease linter in auth related files
2019-01-23 19:04:54 -06:00
J. Ryan Stinnett
41c79a93c0
Merge pull request #2489 from jryans/auth-text-and-links
Update text and links in authentication flows
2019-01-23 18:40:55 -06:00
J. Ryan Stinnett
9470424bcb Enable linting for all auth related files 2019-01-23 18:32:36 -06:00
J. Ryan Stinnett
9f5f552be1 Move LanguageSelector to views
It's too simple to be called a structure.
2019-01-23 16:14:03 -06:00
J. Ryan Stinnett
e396954a20 Update forgot password link text and style 2019-01-23 15:50:44 -06:00
J. Ryan Stinnett
36ebd91f07 Move language selector to auth header 2019-01-23 10:18:06 -06:00
David Baker
6d7e88a84a Fix desktop captcha check
Change gnarly hardcoded protocol to detect running in the electron app

Fixes https://github.com/vector-im/riot-web/issues/8236
2019-01-23 15:06:49 +00:00
J. Ryan Stinnett
0f3ee9c786 Extract auth header logo to new component
This will allow `riot-web` to replace only the logo, rather than the whole
header.
2019-01-22 22:41:10 -06:00
J. Ryan Stinnett
575cd1e37b Add modal look to authentication flows
This changes the auth screens to use the modal-like style of the redesign.

This does not attempt to style the actual body content of each screen.  Instead,
it covers the header area with logo, footer links, and overall modal container
only.
2019-01-22 20:44:49 -06:00
J. Ryan Stinnett
1d01ac398c Rename mx_Login_box to mx_AuthPage_modal and fold into AuthPage 2019-01-21 19:11:43 -06:00
J. Ryan Stinnett
3bd765f63f Rename LoginPage, Header, Footer views to Auth* 2019-01-21 19:11:43 -06:00
J. Ryan Stinnett
c7354f483b Rename LoginBox to AuthButtons
This component displays login and register buttons. It's currently used in the
composer when viewing a room as a guest.

The name is confusing because the login flow uses are very similarly named
`mx_Login_box` as a wrapping around forms, which is totally different than these
buttons.

Additionally, the components is moved to `views/auth` since it is very simple
and auth related.
2019-01-21 19:11:43 -06:00
J. Ryan Stinnett
29be3ee4b5 Rename login directory to auth 2019-01-21 17:45:55 -06:00