Commit graph

931 commits

Author SHA1 Message Date
Matthew Hodgson
8288eb730c a rather hacky implementation of theme switching 2017-01-17 19:13:23 +00:00
Matthew Hodgson
203172c886 typos 2017-01-17 14:11:01 +00:00
Jani Mustonen
959163f2ef Proper accessible buttons 2017-01-13 19:36:41 +02:00
Jani Mustonen
8d79716421 Turned the links to buttons to comply with MDN's recommendations 2017-01-13 19:36:40 +02:00
Jani Mustonen
ad072cc179 Turned buttons from divs to links. Makes it possible for screen readers and hotkeys to recognize the buttons. 2017-01-13 19:36:40 +02:00
Luke Barnard
d2d78919ce Overhaul MELS to deal with causality, kicks, etc.
The MELS can now deal with arbitrary sequences of transitions per user, where a transition is a change in membership. A transition can be joined, left, invite_reject, invite_withdrawal, invited, banned, unbanned or kicked.

Repeated segments (modulo 1 and 2), such as joined,left,joined,left,joined will be handled and will be rendered as " ... and 10 others joined and left 2 times and then joined". The repeated segments are assumed to be at the beginning of the sequence. This could be improved to handle arbitrary repeated sequences.
2017-01-12 18:55:53 +00:00
Luke Barnard
6e2a75bbee Fix redacted member events being visible
This was due to the `MemberEventListSummary` not ignoring redacted joins/leaves. This was also causing bug #2765.
2017-01-11 11:27:07 +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
Richard van der Hoff
42de77e588 Remove "Cannot re-join empty room" error
This is a lying error message. burn it with fire
2016-12-27 19:17:48 +00:00
Matthew Hodgson
69b277b282 ask electron users to do captchas in a web browser.
This will happen anyway when they follow email verification links.
make captchas poll for success so if they are completed elsewhere, electron moves on
2016-12-24 03:15:30 +00:00
Luke Barnard
2a63017372 Account for timezone in date separator calculation (#595)
* Account for timezone in date separator calculation

Decide on date separators using MatrixEvent.getDate(). This requires matrix-org/matrix-js-sdk#311
2016-12-22 17:54:30 +00:00
David Baker
fd44d9f4d6 Merge pull request #597 from matrix-org/dbkr/delete_threepid
Add support for deleting threepids
2016-12-22 15:31:34 +00:00
David Baker
8a3f2d9e91 Merge pull request #598 from matrix-org/dbkr/display_msisdn_threepid
Display msisdn threepids as 'Phone'
2016-12-22 15:28:09 +00:00
David Baker
a6fdbda011 Get variable name right 2016-12-22 15:26:08 +00:00
David Baker
98b22460ec They're not all emails anymore 2016-12-22 15:03:24 +00:00
Daniel Dent
7c841a86ef Unbranded error messages 2016-12-21 14:28:01 -08:00
David Baker
3dfffa385e Display msisdn threepids as 'Phone'
rather than pretending only email exists
2016-12-21 18:56:50 +00:00
David Baker
5e10ec4ece Add support for deleting threepids 2016-12-21 18:49:38 +00:00
Richard van der Hoff
4804fb3a1c Revert "Fix performance issues with wantsDateSeperator"
This change broke timezone handling, so that date-separators are shown at the
wrong time of day.

This reverts commit b908e7ef29.
2016-12-21 09:48:41 +00:00
Richard van der Hoff
b8c0fa507e Merge pull request #590 from matrix-org/luke/fix-membereventlistsummary-performance
Improve the performance of MemberEventListSummary
2016-12-16 10:53:51 +00:00
Luke Barnard
6b52b247e7 Update comment on MELS key 2016-12-15 18:26:41 +00:00
Luke Barnard
88aeb6417e Use the first member event ID or "initial" in the MELS key 2016-12-15 18:23:54 +00:00
Kegsay
71132c4610 Merge pull request #592 from matrix-org/kegan/bulk-reject-invites
Implement bulk invite rejections
2016-12-15 16:16:55 +00:00
Kegan Dougal
ec41fc284a Null guard on componentWillUnmount 2016-12-15 16:13:09 +00:00
Kegan Dougal
8a511ed54b Add .done() to catch exceptions which may be thrown in setState 2016-12-15 14:17:29 +00:00
Luke Barnard
e7564f4dc5 Spelling 2016-12-15 13:16:36 +00:00
Kegan Dougal
8f42134d9f Explain why binding 2016-12-14 16:04:20 +00:00
Luke Barnard
b908e7ef29 Fix performance issues with wantsDateSeperator
This was causing rendering of MemberEventListSummary to be quite slow. Instead of creating two date objects, just check to see if they represent timestamps that happened on different days.
2016-12-14 16:01:32 +00:00
Kegan Dougal
13dfe9ef0f Implement bulk invite rejects 2016-12-14 16:00:50 +00:00
Luke Barnard
c07e5d4992 Improve the performance of MemberEventListSummary
- The MessagePanel now uses the same key for the MELS instances rendered so that entirely new instances are not created, they are simply passed new props (namely when new events arrive).
- MELS itself now uses `shouldComponentUpdate` so that it only updates if it is given a different number of events to previous or if it is toggled to expand.
2016-12-14 15:31:35 +00:00
Kegan Dougal
1d4591ce68 Add UI in UserSettings for bulk rejecting invites 2016-12-14 15:01:50 +00:00
Kegan Dougal
49010c3e93 Refactor how 'readReceipts' are passed into EventTiles
Instead of passing a list of RoomMembers, pass a list of records with a
`roomMember` prop and a `ts` prop so we can display the timestamp on hover.
2016-12-09 11:24:10 +00:00
David Baker
9e3c94edf4 Fix exception when clearing room dir search
Needed more isMounted checks after promises return.
2016-12-06 14:59:10 +00:00
David Baker
6777e07a41 Remove device name from crypto section
As it was getting it by assuming our device was the first one,
which is just not a valid assumption.
2016-12-05 20:03:43 +00:00
David Baker
8ffe14881e Don't throw an exception entering settings page
if end to end encryption is disabled (eg. if you're a guest and
the server is too old to support e2e for guests).
2016-12-05 18:33:38 +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
David Baker
0069393650 Go back to same room after logging in 2016-11-24 13:28:51 +00:00
David Baker
0bc4659fe0 Fix crash on logging in
If you arrived at the page via a link to a room.

Fixes https://github.com/vector-im/vector-web/issues/2634
2016-11-24 12:33:31 +00:00
Richard van der Hoff
6e6bcf8b78 Reinstate missing sections from the UserSettings
The 'devices' and 'cryptography' sections got removed from UserSettings by #566.
2016-11-23 11:08:21 +00:00
Luke Barnard
42fc7b1b66 Use UNFILL_REQUEST_DEBOUNCE_MS constant, reset unfillDebouncer timeout reference. 2016-11-22 17:23:06 +00:00
Luke Barnard
d1a5d94916 Make the unpagination process less aggressive
This increases `UNPAGINATION_PADDING` (see the ASCII on ScrollPanel.js, `_getExcessHeight`), and also debounces unfilling requests made for 200ms. This forces unfilling requests not to be sent unless the next 200ms has no scrolling, effectively.
2016-11-22 16:47:56 +00:00
Luke Barnard
341175ea58 Fix pagination issue where recent events are lost (#563)
Fix pagination issue where recent events are lost

Scrolling up a few pages followed by scrolling down to the most recent events previously caused some events to go missing. A test has been modified in conjunction with this fix to make sure that this failure mode is tested for in future. This commit should fix the issue, and the most recent events should be paginated back in.
2016-11-18 11:15:14 +00:00
Luke Barnard
3618b49982 Use new js-sdk public unpaginate 2016-11-16 16:10:23 +00:00
Luke Barnard
beecbc7cd7 Fix join/part collapsing regressions (#553)
* Fix join/part collapsing regressions

* Simplify loop

* Explain e,e

* Explain return null in _renderSummary

* Kill it properly

* Move . to _renderSummary

* Only use the first and last events to decide whether a net change has occured

* Do not sort events by TS before summarising

* fix loop and comment

* remove data-number-events

* Better explanation comment in _renderSummary

* Less tortuous comment
2016-11-16 14:42:30 +00:00
Luke Barnard
b718f1542c Fix infinite loop when there are a lot of invisible events (#554)
Instead of using a window of a fixed number of events, unpaginate based on the distance of the viewport from the end of the scroll range.

The ScrollPanel uses the scrollTokens to convey to its parent (the TimelinePanel, in this case) the point to unpaginate up to. The TimelinePanel then takes a chunk of events off the front or back of `this.state.events` using `timelineWindow.unpaginate`.

Fixes https://github.com/vector-im/vector-web/issues/2020
2016-11-16 14:25:52 +00:00
Luke Barnard
2a1d32f4d5 Add key prop to memberlist summary 2016-11-11 13:49:25 +00:00
Richard van der Hoff
998690431f Merge pull request #542 from matrix-org/dbkr/get_app_version
Fix the vector web version in UserSettings
2016-11-11 11:11:36 +00:00
Richard van der Hoff
00ecff7497 Merge pull request #544 from matrix-org/luke/feature-truncate-m-room-member-events
Truncate consecutive member events
2016-11-11 11:01:47 +00:00
David Baker
857c0d1747 Wrap getAppVersion() in promise
in case it throws
2016-11-11 10:05:53 +00:00
Luke Barnard
3ec7940d12 Inline renderEvents 2016-11-10 17:26:36 +00:00
Luke Barnard
d2d7ebc979 correct comment 2016-11-10 17:22:16 +00:00
Luke Barnard
dcbb31279f Prefer import React, set prevEvent to last MemberhsipChange 2016-11-10 14:08:11 +00:00
Luke Barnard
566034cf2b Render children EventTiles before passing to summary element 2016-11-10 13:25:48 +00:00
Luke Barnard
764959ec1c Comment on i after membershipchanges 2016-11-10 13:14:04 +00:00
Luke Barnard
0ec5eebfc9 Hoist isMembershipChange out of for loop 2016-11-10 13:03:17 +00:00
Luke Barnard
d01bb0b78f Use sdk.getComponent 2016-11-10 13:01:48 +00:00
Luke Barnard
5f0b891d47 Add date seperator to the expanded events
netsplits across midnight is not handled, and @richvdh suggested splitting the list in two
2016-11-09 17:44:43 +00:00
Luke Barnard
04a934f738 Trying to get rid of the date separator problem 2016-11-09 16:24:56 +00:00
Luke Barnard
2f02c4b84e WIP nicer join/part folding 2016-11-09 16:03:35 +00:00
David Baker
a008f5010a Fix the ctrl+e mute camera shortcut
* Fixes the altgr+e shortcut on Windows
   (Fixes https://github.com/vector-im/vector-web/issues/2561)
 * Fixes the shortcuts to be cmd+e on mac rather than ctrl+e
   which is more normal and doesn't clobber ctrl+e which old
   school unix types use for go-to-end-of-line.
2016-11-08 18:04:22 +00:00
Luke Barnard
cd241a4a17 Truncate consecutive member events
This is needed for the IRC bridge to be able to do full membership list syncing without cluttering the message panel.
2016-11-08 16:34:02 +00:00
David Baker
d871ca2b24 PR feedback 2016-11-08 11:43:24 +00:00
David Baker
d44adcb7a9 Fix the vector web version in UserSettings
Add a getAppVersion() function to the platform rather than relying
on the updater code firing an event before we know what the app
version is.
2016-11-08 10:45:19 +00:00
Richard van der Hoff
2ee98e9fdc Fix NPE in LoggedInView
Fixes a NPE displaying the new version bar
(also fix displayname for WithMatrixClient)
2016-11-07 09:28:10 +00:00
David Baker
da10660c86 Merge remote-tracking branch 'origin/develop' into rav/add_client_to_context 2016-11-04 10:35:41 +00:00
Richard van der Hoff
cb5b311e44 Move saveScrollState into RoomView
It fits much more naturally here than in LoggedInView.
2016-11-04 09:28:35 +00:00
Richard van der Hoff
d3f20e1d9d Add the MatrixClient to the react context
Because that's the reacty way
2016-11-03 19:02:27 +00:00
Richard van der Hoff
f85a37c667 Factor out LoggedInView from MatrixChat
The idea here is to make a layer which sits around for as long as we have a
valid MatrixClient. Also it makes a plausible split for the render of
MatrixChat, even if they are much too tightly bound for now.
2016-11-03 18:59:32 +00:00
David Baker
3c4370c180 Move 'new version' support into Platform
Also adds support for the platform providing a changelog
2016-11-02 15:58:17 +00:00
David Baker
f433f9ca32 Move platform-specific functionality into Platform
Platform classes are provided by the application via
PlatformPeg.set().
2016-11-02 15:10:21 +00:00
David Baker
8395717f9b Merge pull request #525 from matrix-org/dbkr/fix_spin_on_join
Fix CPU spin on joining rooms
2016-10-26 15:46:42 +01:00
David Baker
32ebd8083b Stray comma 2016-10-26 15:32:09 +01:00
David Baker
e5a770a373 Don't send read receipt if user has logged out 2016-10-26 13:19:36 +01:00
David Baker
a2eb0a9cf0 Fix CPU spin on joining rooms
Ratelimit roomheader's updates and move some other things into
rate limited functions.
2016-10-26 13:09:53 +01:00
Richard van der Hoff
4f901f1894 Keyboard shortcuts to mute microphone/camera
Same as hangouts: ctrl-d for mute microphone; ctrl-e to mute camera.
2016-10-17 14:13:56 +01:00
David Baker
3f067cbdf6 Give our input fields names
Otherwise browsers' 'Remember Password' feature has to guess
badly and ends up putting the login username / password in the
first two password reset fields which is a bit odd.
2016-10-14 15:34:44 +01:00
David Baker
ef22ba1f39 Merge pull request #516 from matrix-org/rav/interactive_auth_dialog
InteractiveAuthDialog
2016-10-12 18:27:23 +01:00
Richard van der Hoff
1e683427da TODO comments on the registration flow
Add some notes to Signup and the Registration component that it would be nice
to factor out some common code someday.
2016-10-12 14:27:21 +01:00
Richard van der Hoff
eb36509620 Refactor CaptchaForm to put less logic in signupstages
A bunch of work being done in the Recaptcha signupstage makes more sense in
the CaptchaForm; let's move it.
2016-10-11 18:57:51 +01:00
Matthew Hodgson
9d303712f2 more s/Vector/Riot/ 2016-10-03 10:18:43 +01:00
David Baker
91771ec17d Ce n'est pas Python 2016-10-01 10:34:21 +01:00
David Baker
6abf6c9ec0 Merge pull request #505 from matrix-org/dbkr/dont_replacestate
Fix version going blank after logging in
2016-09-30 14:32:01 +01:00
David Baker
be99f17ee0 Oops, right variable 2016-09-30 14:05:01 +01:00
David Baker
8aeb0cfb68 Dedicated function for resetting screen state 2016-09-30 11:56:32 +01:00
David Baker
c41a8da4be Argh, there's more 2016-09-30 11:40:27 +01:00
David Baker
2f7366cb8a Comment state fields 2016-09-30 11:37:50 +01:00
David Baker
d5af2d2c52 Use 'Sign In' / 'Sign Out' universally
Rather than a mix of 'sign in/out' and 'log in/out'
2016-09-29 17:38:52 +01:00
David Baker
8cbddfcf28 Fix version going blank after logging in
Don't use replaceState in MatrixClient: there's lots of stuff in
MatrixClient's state now (including the app version) so replacing
the entire state doesn't really make sense (and also blows away
all of the nice defaults we set in getInitialState). Instead,
setState of the things we actually care about wherever we used
replaceState.

Also add a couple of state variables to getInitialState that were
missing.

Fixes https://github.com/vector-im/vector-web/issues/2322
2016-09-29 17:23:07 +01:00
David Baker
d1a5e54a69 Check if a room looks like a DM rooms on joining
and mark it as one if so.

Also change the heuristic to only count rooms with 2 total members rather than 2 joined members, otherwise this is going to mark any room as a DM if someone creates a room, invites a bunch of people and you happen to be first to join.
2016-09-20 17:59:46 +01:00
David Baker
b66c449bd7 Comment typo
and out comment in more sensible place
2016-09-20 16:08:11 +01:00
David Baker
746aad9a18 Oops, missed one 2016-09-19 14:47:08 +01:00
David Baker
31753fc3f3 Rebrand 2016-09-19 13:26:59 +01:00
Matthew Hodgson
cf1b1442eb no labs for guests 2016-09-17 14:29:40 +01:00
Matthew Hodgson
736b6dac7a default labs correctly :/ 2016-09-17 00:54:56 +01:00
Matthew Hodgson
00d2fd471d Merge pull request #483 from matrix-org/dbkr/scrollpanel_start_at_bottom
Add 'startAtBottom' flag
2016-09-16 22:38:21 +01:00
Matthew Hodgson
c322a191af turn on E2E and Scalar by default 2016-09-16 18:36:03 +01:00
David Baker
d0fd6e985f Document paranoia on the startAtBottom param 2016-09-16 17:48:08 +01:00
Matthew Hodgson
67565f88fa Merge pull request #474 from matrix-org/markjh/olm_version
Add the olm version to the settings page.
2016-09-16 17:30:35 +01:00