Commit graph

379 commits

Author SHA1 Message Date
David Baker
d419c42a4f Squash merge https://github.com/matrix-org/matrix-react-sdk/pull/801 2017-05-23 15:16:31 +01:00
Luke Barnard
b0a824c941 Remove double declaration of TextInputDialog 2017-05-22 16:28:23 +01:00
Luke Barnard
05aaa599cc Merge branch 'develop' into new-guest-access
Conflicts:
	src/components/structures/MatrixChat.js
2017-05-22 16:19:10 +01:00
Richard van der Hoff
e3dbf057fb Fix 'missing page_type' error
LoggedInView will complain if it is instantiated without a page_type, so let's
keep showing the syncing spinner until we have one.
2017-05-19 14:09:20 +01:00
Richard van der Hoff
c61294f71c Delintify some of MatrixChat (#907)
... it annoyed me too much.
2017-05-19 13:53:11 +01:00
Michael Telatynski
a2ab36f598 Merge branch 'develop' of github.com:matrix-org/matrix-react-sdk into forward_message
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2017-05-19 00:33:36 +01:00
Michael Telatynski
0e7e4d8595 replace weird sidebar snapping with better ui_opacity
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2017-05-19 00:20:32 +01:00
Luke Barnard
e38437e6ce Invite the welcome user after registration if configured
This will shift focus to the welcome user DM.

We probably don't want to do this for teams, but I shall leave that for another PR that fixes teams WRT to new-guest-access.
2017-05-18 11:14:56 +01:00
Luke Barnard
c6350379dc Merge pull request #881 from matrix-org/luke/user-settings-remove-current-password
Remove "Current Password" input if mx_pass exists
2017-05-16 12:29:23 +01:00
Luke Barnard
eb0041d21a Remove redundant state 2017-05-15 17:03:54 +01:00
Luke Barnard
f73cf772fb Move sessionStore ref from MatrixChat to LoggedInView
MatrixChat didn't actually use the sessionStore, so this is one less prop to pass.
2017-05-15 14:56:05 +01:00
Luke Barnard
da3cb0ee48 SessionStore extends flux.Store 2017-05-15 14:52:19 +01:00
Luke Barnard
683f1b8a1a Invite the welcome user after registration if configured
This will shift focus to the welcome user DM.

We probably don't want to do this for teams, but I shall leave that for another PR that fixes teams WRT to new-guest-access.
2017-05-12 17:39:38 +01:00
Luke Barnard
536724e7c5 ES6 SessionStore 2017-05-12 15:58:44 +01:00
Luke Barnard
5c8187dc8f Explicitly pass thru userHasGeneratedPassword 2017-05-12 15:47:37 +01:00
Luke Barnard
1176573f39 Implement SessionStore
This wraps session-related state into a basic flux store. The localStorage item 'mx_pass' is the only thing managed by this store for now but it could easily be extended to track other items (like the teamToken which is passed around through props a lot)
2017-05-12 12:02:45 +01:00
Luke Barnard
8725ef3863 Remove "Current Password" input if mx_pass exists
If the user is PWLU, do not show "Current Password" field in ChangePassword and when setting a new password, use the cached password.
2017-05-11 17:47:45 +01:00
Luke Barnard
cfa108a28c No need to dispatch, just call setMxId 2017-05-11 17:07:03 +01:00
Luke Barnard
6326a95b39 Prevent ROUs from creating new chats/new rooms
Spawn a SetMxIdDialog instead and do nothing.
2017-05-11 17:04:11 +01:00
Luke Barnard
5151264f60 Merge branch 'develop' into new-guest-access
Conflicts:
	src/component-index.js
2017-05-11 13:22:30 +01:00
David Baker
85ed39b9d8 Put room name in 'leave room' confirmation dialog
https://github.com/vector-im/riot-web/issues/3850
2017-05-08 16:49:40 +01:00
Luke Barnard
6f4eb9d8b1 Show password nag bar when user is PWLU 2017-05-05 16:31:33 +01:00
Luke Barnard
8774100508 Initial implementation: SetDisplayName -> SetMxIdDialog
- Replaces SetDisplayNameDialog with SetMxIdDialog. This new dialog will use InteractiveAuth to authenticate a user with their chosen mxid.

De-scoped:
 - style tweaks for the InteractiveAuth in the dialog (capcha) and error message.
 - checking for mxid availability
2017-04-28 13:22:55 +01:00
Michael Telatynski
3997974f0f remove debug console log (ignore its content pls)
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2017-04-24 22:16:15 +01:00
Michael Telatynski
4cf9e0c1ae Create a way to restore last state of the rhs panel.
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2017-04-24 22:00:59 +01:00
Matthew Hodgson
a2be764681 display err.message to user if available in error msgs 2017-04-23 01:48:27 +01:00
Luke Barnard
a815788af8 Fix issue where teamTokenMap was ignored for guests
This was an issue because guests do not log in with a teamToken, it is implicitly set by MatrixChat when it mounts. The fix is to view_home_page when a login occurs and MatrixChat has this._teamToken set.
2017-04-06 17:10:32 +01:00
Luke Barnard
5f8a7b46a8 Remove redundant setState call, always focus composer after sync 2017-04-06 11:44:25 +01:00
Luke Barnard
95b40a976c Replace sdkReady with firstSyncPromise, add mx_last_room_id
- Create a promise that will serve as a lock to be blocked on by things that need to wait for the first sync before accessing state.
- Use this promise to block `view_room` calls until a sync has occured instead of just dropping them silently if the sync hasn't happened yet.
- Store the current room ID in a localStorage item `mx_last_room_id` when `view_room` fires. This persists the last viewed room ID so that it can be restored on refresh, browser quit. This replaces the previous logic which set the room following a sync based on the most recent unread room.
2017-04-06 11:38:06 +01:00
Luke Barnard
fff83ba234 Fix the onFinished for timeline pos dialog
This was causing a blank RoomView because it was trying to work with `room_id = undefined`.
2017-03-30 17:18:22 +01:00
David Baker
dff79984a6 Merge remote-tracking branch 'origin/develop' into dbkr/remove_session_load_error 2017-03-29 18:24:06 +01:00
David Baker
22b0f69ac9 Merge pull request #782 from matrix-org/dbkr/matrixchat_tidy
Use Login & Register via component interface
2017-03-29 18:23:36 +01:00
David Baker
a6612bb8ad Remove non-functional session load error
MatrixChat was trying to display an error if the session failed to
restore, but it was never actually being shown because it was just
set as a member variable and therefore never actually caused
a re-render for the error to be displayed. Almost all errors are
caught by _restoreFromLocalStorage which displays the fancy dialog
if your session can't be restored, so I'm not convinced this ever
even tried to do anything anyway. Remove it.
2017-03-29 16:23:18 +01:00
David Baker
cee2628b41 Use Login & Register via component interface
Login & Register were being imprted directly for some reason,
rather than going via the normal component interface.

Should be functionally identical.
2017-03-29 15:24:47 +01:00
Luke Barnard
2146e89c09 Attempt to fix the flakyness seen with tests
Specifically:
```

JS 2.1.1 (Linux 0.0.0) joining a room over federation should not get stuck at a spinner FAILED
	Did not find exactly one match (found: 0) for componentType:function (props, context, updater) {
```

actually meant that the room directory wasn't displayed - probably because the dispatch `view_room_directory` ended up on another tick of the event loop, meaning that the directory wasn't displayedi. The fix attempted in ths commit is to use `this._setPage` instead to view the directory. This uses `setState` to set the screen to the directory, so I'm not entirely convinced this will solve the problem (as `setState` may also end up doing things on another tick.

and

```
JS 2.1.1 (Linux 0.0.0) loading: MatrixClient rehydrated from stored credentials: shows a room view if we followed a room link FAILED
	MatrixChat still not ready after 5 tries
	awaitRoomView@/home/travis/build/vector-im/riot-web/test/all-tests.js:201363:90
```

was happening probably because in the handler for the `sync` event in `MatrixChat` (around line 840), there was one case in which the `ready` state may not be true (causing all 5 attempts to fail), and this case relied on `starting_room_alias_payload`. This `starting_room_alias_payload` is now redundant because of `initialScreenAfterLogin`, which was added recently.
2017-03-29 15:02:28 +01:00
Luke Barnard
c650cfffac logged_in -> loggedIn
Also added `loggingIn` to `initialState` and removed some commented code.
2017-03-27 17:14:39 +01:00
Luke Barnard
30c5af35e5 Add state loggingIn to MatrixChat to fix flashing login
To prevent the login screen from flashing when refreshing the app, use some state to indicate that a login is in progress, and OR that with the existing `loading` boolean to show the `<Spinner>` instead of the default `<Login>`.

This might be too invasive, and a default spinner may be better.
2017-03-27 16:39:04 +01:00
Kegan Dougal
4cebded04f Add canResetTimeline callback and thread it through to TimelinePanel 2017-03-22 15:06:52 +00:00
Luke Barnard
5330e47b3f Add null check 2017-03-15 13:05:03 +00:00
Luke Barnard
238e48e4af Do routing to /register _onLoadCompleted
_onLoadCompleted happens straight away because Lifecycle finishes loading the session instantly when registration parameters (client_secret etc.) are set.
2017-03-15 12:02:08 +00:00
Luke Barnard
47958180a6 Add null check to start_login 2017-03-14 15:13:36 +00:00
Luke Barnard
5e93dde0dd Merge pull request #746 from matrix-org/luke/merge-RoomTile-context-menus
Merge the two RoomTile context menus into one
2017-03-14 14:19:36 +00:00
David Baker
30b442515e Merge pull request #743 from matrix-org/luke/fix-screen-after-login
Decide on which screen to show after login in one place
2017-03-14 13:44:08 +00:00
Matthew Hodgson
3aaf37df1a beautify a tonne more errors 2017-03-12 22:59:41 +00:00
Luke Barnard
1f788feacd Merge the two RoomTile context menus into one
This will require riot-web changes https://github.com/vector-im/riot-web/pull/3395
2017-03-09 17:03:57 +00:00
Luke Barnard
c4001b5c5d Use else instead of two returns 2017-03-08 15:11:38 +00:00
Luke Barnard
eca82bdb42 Make sure the screen is set, otherwise ignore screenAfterLogin 2017-03-08 10:45:07 +00:00
Luke Barnard
06a05c351d Decide on which screen to show after login in one place
This follows from a small amount of refactoring done when RTS was introduced. Instead of setting the screen after sync, do it only after login.

This requires as-yet-to-be-PRd riot-web changes.

This includes:
 - initialScreenAfterLogin, which can be used to set the screen after login, and represents the screen that would be viewed if the window.location at the time of initialising Riot were routed.
 - guestCreds are now part of state, because otherwise they don't cause the login/registration views to update when set.
 - instead of worrying about races and using this._setPage, use a dispatch.
2017-03-08 10:25:54 +00:00
David Baker
1bdf213d67 Merge pull request #729 from matrix-org/dbkr/register_ui_auth
Port registration over to use InteractiveAuth
2017-03-03 13:37:41 +00:00
David Baker
0914226327 Actuall pass our proxy makeRegistrationUrl 2017-03-02 14:47:47 +00:00
David Baker
3028b335a4 Oops, re-add referrer param
as Registration was still using it
2017-03-02 14:46:18 +00:00
David Baker
dd762cc835 Add makeRegistrationUrl to proptypes 2017-03-02 14:40:55 +00:00
David Baker
a5cf3a964b doc 2017-03-02 14:39:25 +00:00
David Baker
95cff17698 Merge pull request #721 from matrix-org/luke/fix-refactor-UnknownDeviceDialog
Show UDDialog on UDE during VoIP calls
2017-03-02 13:13:45 +00:00
Luke Barnard
39427839b9 Use ES6 export style 2017-03-01 14:33:25 +00:00
David Baker
dd33624454 Merge remote-tracking branch 'origin/develop' into dbkr/register_ui_auth
(This ended up mostly being merged by hand as git made a complete
mess of the merge)
2017-03-01 10:45:17 +00:00
Luke Barnard
0ef8e2a8f4 Various fixes 2017-02-28 15:18:00 +00:00
Luke Barnard
48a3d0d595 Refactor to not set team token in bad ways
Use the on_logged_in dispatch instead. Call setPage in one place, _onLoggedIn, when deciding which page to view on login. Change some require to import, var to const. Remove onTeamMemberRegistered and just use a nullable argument to onRegistered
2017-02-28 15:05:49 +00:00
David Baker
c22db1db5f Fix race when signup is completed elsewhere
as commented
2017-02-27 18:22:26 +00:00
Luke Barnard
7221900497 Refactor remove resend_all_events and cancel_all_events dispatches 2017-02-27 13:39:12 +00:00
David Baker
51467506f8 Port registration over to use InteractiveAuth
These changes are moved over from the dbkr/msisdn_signin branch
2017-02-24 11:41:23 +00:00
Luke Barnard
e1a40a8ef0 Notify MatrixChat of teamToken after login 2017-02-23 16:30:26 +00:00
Luke Barnard
436e6b36f1 Move UDE handling to a its own file, adjust wording 2017-02-22 16:42:14 +00:00
Luke Barnard
c13ff254b1 Add "Retry" button to UDE 2017-02-22 10:21:43 +00:00
Luke Barnard
878e31eba2 Show UDDialog on m.call.invite failure
Requires https://github.com/matrix-org/matrix-js-sdk/pull/378

Also, refactored UDDialog creation into its own dispatch event, because there will be other parts of the code that will want to spawn one.
2017-02-21 17:22:22 +00:00
Luke Barnard
9eef3c53a3 Allow setting the default HS from the query parameter
Fixes https://github.com/vector-im/riot-web/issues/3207
2017-02-20 16:53:26 +00:00
Luke Barnard
9d2bb70823 If the home page is somehow accessed, goto directory
For example, if someone ends up on /home somehow, just redirect to the directory instead of displaying a very awkward "File not found" plain text in the home page iFrame.
2017-02-16 17:03:22 +00:00
David Baker
973b92b8f6 Merge pull request #694 from matrix-org/dbkr/confirm_ban
Add confirmation dialog to kick/ban buttons
2017-02-14 17:31:51 +00:00
David Baker
6663f5bff0 Remove commented stuff
That I've now broken such that it wouldnt work if it were
uncommented
2017-02-14 16:12:04 +00:00
Luke Barnard
1b8e93d4f2 Treat the literal team token string "undefined" as undefined
Some users appear to have gotten team tokens into their local storage. This fix will treat the literal string "undefined" as undefined.
2017-02-14 12:56:29 +00:00
David Baker
18cba1fe45 Merge pull request #689 from matrix-org/luke/rts-set-team-token-view-home
View /home on registered /w team
2017-02-14 10:21:23 +00:00
Luke Barnard
16e3365240 Use a callback prop instead of window. 2017-02-13 14:36:35 +00:00
Luke Barnard
75deb55844 Null check on teamName 2017-02-13 11:48:03 +00:00
Luke Barnard
bdd031eac2 Enable branded URLs again by parsing the path client-side
Use the first path segment to key off config.teamTokenMap, which contains a mapping to teamTokens. The client then behaves as before, keeping the path in the address bar constant with no redirects required.
2017-02-10 15:09:45 +00:00
Luke Barnard
ec730056d8 Alter comment 2017-02-10 11:39:22 +00:00
Luke Barnard
bab6a0b84a Persist query parameter team token across refreshes 2017-02-10 11:31:04 +00:00
David Baker
fe17e2452b Merge pull request #676 from matrix-org/luke/rts-team-token-login
Get team_token from the RTS on login
2017-02-08 10:54:24 +00:00
Luke Barnard
3d30db81e0 Only init RTS if configured correctly 2017-02-07 15:24:57 +00:00
Luke Barnard
d5f6ecdc49 Use teamToken, not config when doing screen fallback 2017-02-07 13:23:58 +00:00
Luke Barnard
c93b6c3c34 Style, fixes 2017-02-07 13:15:40 +00:00
Luke Barnard
173e80a5de Get team_token from the RTS on login
Use the /login endpoint of the RTS to get the team token when the user has successfully logged in.
2017-02-03 14:34:24 +00:00
Luke Barnard
efae5f6bf1 Use localStorage team token with fall-back on query parameter 2017-02-03 11:48:24 +00:00
Luke Barnard
8c941b11cd Use mx_team_token instead of config 2017-02-02 11:22:40 +00:00
Luke Barnard
acde1f3db7 Merge branch 'develop' into luke/rts-welcome-pages
Conflicts:
	src/components/views/avatars/BaseAvatar.js
2017-02-01 17:22:45 +00:00
Luke Barnard
878e5593ba Implement tracking of referrals (#659)
* Implement tracking of referrals

This also modifies (or fixes) auto-joining.
2017-01-31 11:13:05 +00:00
Luke Barnard
4e0889454a GET /teams from RTS instead of config.json
Now that the RTS contains config for teams, use GET /teams to get that information so that users will see be able to register as a team (but not yet auto-join rooms, be sent to welcome page or be tracked as a referral).
2017-01-30 15:50:31 +00:00
Kegan Dougal
97387db014 Reduce log spam: Revert a16aeeef2a
As per #riot-dev, this is no longer required.
2017-01-24 16:40:26 +00:00
David Baker
18d4d3392a Fix a bunch of linting errors
eslint --fix and a few manual ones
2017-01-20 14:22:27 +00:00
Richard van der Hoff
a16aeeef2a Temporarily add more logging, to try to catch failures on travis 2017-01-20 13:06:06 +00:00
Matthew Hodgson
b76b0f755d fix context menu bg 2017-01-20 02:47:47 +00:00
Richard van der Hoff
a88f9fdd73 (hopefully) fix theming on Chrome
Jump through some hoops to make Chrome behave sensibly on non-default themes.
2017-01-19 15:36:57 +00:00
Matthew Hodgson
4e5689082d correctly load synced themes without NPE 2017-01-18 20:06:54 +00:00
Matthew Hodgson
3d30553b7f review fixes, plus unbreak to work with new webpack layout 2017-01-18 14:06:47 +00:00
Matthew Hodgson
a0bbe3a306 Merge branch 'develop' into matthew/postcss 2017-01-18 12:52:59 +00:00
Luke Barnard
5ef5204c8c Implement simple team-based registration (#620)
* Implement simple team-based registration

Config required goes in the `teams` top-level property in config.json. This consists of an array of team objects:
```json
{
  "name": "University of Bath",
  "emailSuffix": "bath.ac.uk"
}
```
These can be selected on registration and require a user to have a certain email address in order to register as part of a team. This is for vector-im/riot-web#2940. The next step would be sending users with emails matching the emailSuffix of a team to the correct welcome page as in vector-im/riot-web#2430.
2017-01-18 12:48:28 +01:00
Matthew Hodgson
8288eb730c a rather hacky implementation of theme switching 2017-01-17 19:13:23 +00:00
David Baker
13a5337e0f Fix 'create account' link in 'forgot password'
Fixes https://github.com/vector-im/riot-web/issues/2853
2017-01-10 15:16:39 +00:00
Mark Haines
81e429eb14 Fix e2e attachment download by using iframes. (#562)
* Render attachments inside iframes.

* Fix up the image and video views

* Fix m.audio

* Comments, and only use the cross domain renderer if the attachment is encrypted

* Fix whitespace

* Don't decrypt file attachments immediately

* Use https://usercontent.riot.im/v1.html by default

* typos

* Put the config in the React context.

Use it in MFileBody to configure the cross origin renderer URL.

* Call it appConfig in the context

* Return the promises so they don't get dropped
2016-12-02 14:21:07 +00:00
David Baker
8547d00f32 Don't default the page_type to room directory
As it breaks the behaviour of redirecting to /#/directory
2016-11-24 16:39:48 +00:00
David Baker
2aba646acd Clear room alias etc. on logout 2016-11-24 14:58:37 +00:00