Commit Graph

831 Commits (1c5b7bf1321ceb08953932b44610a4c8b8fad403)

Author SHA1 Message Date
David Baker 1d2538a7bc First working version of SAS 2019-01-15 18:08:13 +00:00
David Baker 5c9d41d96b Lint 2019-01-11 13:42:40 +00:00
David Baker d87d00e4ae Different dialog for new trusted backup
Split the 'new recovery method' into two cases: one where the new
recovery method isn't trusted and you need to verify the device, and
another where it is and the client is using it (where it's more of
an FYI).

https://github.com/vector-im/riot-web/issues/8069
2019-01-11 13:15:09 +00:00
J. Ryan Stinnett 35af3fc6f7 Add separate dialog for recovery method removed
The "New Recovery Method" dialog would show if either the recovery method had
been changed or removed, but the dialog text didn't make much sense for the
removed case.

This adds a separate dialog customized for the removed case.

Fixes https://github.com/vector-im/riot-web/issues/8046.
2019-01-10 15:18:57 -06:00
Bruno Windels 290dc9d8fb Merge branch 'experimental' into bwindels/roomgridview-experimental 2019-01-07 14:17:57 +01:00
Travis Ralston 643dd5ca47 Add a comment explaining the reason for setting the LOGGED_IN view 2019-01-03 16:26:09 -07:00
Travis Ralston 2e5b3ec0f1 Use the safer way to set the logged in view state 2019-01-03 16:25:55 -07:00
Travis Ralston 8f5e825cd5 Fix browser navigation not working between /home, /login, /register, etc
All of the anchors were pointed at `#` which, when clicked, would trigger a hash change in the browser. This change races the change made by the screen handling where the screen handling ends up losing. Because the hash is then tracked as empty rather than `#/login` (for example), the state machine considers future changes as no-ops and doesn't do anything with them.

By using `preventDefault` and `stopPropagation` on the anchor click events, we prevent the browser from automatically going to an empty hash, which then means the screen handling isn't racing the browser, and the hash change state machine doesn't no-op.

After applying that fix, going between pages worked great unless you were going from /login to /home. This is because the MatrixChat state machine was now out of sync (a `view` of `LOGIN` but a `page` of `HomePage` - an invalid state). All we have to do here is ensure the right view is used when navigating to the homepage. 

Fixes https://github.com/vector-im/riot-web/issues/4061

Note: the concerns in 4061 about logging out upon entering the view appear to have been solved. Navigating to the login page doesn't obliterate your session, at least in my testing.
2019-01-03 16:25:51 -07:00
Travis Ralston 8017f0a4a1 Merge remote-tracking branch 'origin/experimental' into travis/develop-for-real 2019-01-03 16:00:23 -07:00
David Baker f928be6f59 Revert "Merge pull request #2395 from matrix-org/dbkr/merge_develop_experimental"
This reverts commit ad47144355.
2019-01-03 15:37:03 -07:00
Travis Ralston 0978687c65 Revert "Merge pull request #2383 from matrix-org/travis/back-button"
This reverts commit 78592286bd.
2019-01-03 15:36:51 -07:00
Travis Ralston e5192811a1 Add a comment explaining the reason for setting the LOGGED_IN view 2019-01-03 14:23:27 -07:00
Travis Ralston 7904b91b58 Use the safer way to set the logged in view state 2019-01-03 14:23:26 -07:00
Travis Ralston 35c9dce241 Fix browser navigation not working between /home, /login, /register, etc
All of the anchors were pointed at `#` which, when clicked, would trigger a hash change in the browser. This change races the change made by the screen handling where the screen handling ends up losing. Because the hash is then tracked as empty rather than `#/login` (for example), the state machine considers future changes as no-ops and doesn't do anything with them.

By using `preventDefault` and `stopPropagation` on the anchor click events, we prevent the browser from automatically going to an empty hash, which then means the screen handling isn't racing the browser, and the hash change state machine doesn't no-op.

After applying that fix, going between pages worked great unless you were going from /login to /home. This is because the MatrixChat state machine was now out of sync (a `view` of `LOGIN` but a `page` of `HomePage` - an invalid state). All we have to do here is ensure the right view is used when navigating to the homepage. 

Fixes https://github.com/vector-im/riot-web/issues/4061

Note: the concerns in 4061 about logging out upon entering the view appear to have been solved. Navigating to the login page doesn't obliterate your session, at least in my testing.
2019-01-03 12:13:41 -07:00
David Baker 7d161de35b Partial merge of develop to experimental
Does not include #2336 as the file has been moved out from underneath it:
will do this separately
2019-01-03 15:02:58 +00:00
J. Ryan Stinnett acc2e98355 Add New Recovery Method dialog
Adds a New Recovery Method dialog which is shown when key backup fails because
of a version mismatch / version not found error.

The set up button in the dialog currently only marks a device as verified (via a
verification prompt) instead of the eventual restore and cross-sign flow, since
those pieces don't exist yet.

Signed-off-by: J. Ryan Stinnett <jryans@gmail.com>
2018-12-18 10:20:12 +00:00
Bruno Windels b7c353d0a6 persist and load collapsed rhs globally 2018-12-17 15:56:35 +01:00
Bruno Windels f7b6e9c6fc name collapsedRhs consistently everywhere 2018-12-17 15:30:39 +01:00
Bruno Windels 510cec1ebf disabling setting theme without breaking the build 2018-12-17 12:49:38 +01:00
Bruno Windels 649910139a disable setting theme completely 2018-12-17 12:27:42 +01:00
Travis Ralston 366f343432
Merge pull request #2327 from matrix-org/travis/well-known-improvements
Introduce a default_server_name for aesthetics and rework .well-known
2018-12-13 14:55:04 -07:00
Travis Ralston 5f434cd31c Don't break the UI when something goes wrong 2018-12-13 14:45:08 -07:00
Bruno Windels 1810c17d24 remove trace, add comment, ... 2018-12-13 13:02:35 +01:00
Bruno Windels cf0f75cad4 allow changing active room in grid by clicking it 2018-12-13 13:01:59 +01:00
Bruno Windels 399d3c5c24 wire up view_group_grid action from community context menu to new view 2018-12-13 13:01:59 +01:00
Richard van der Hoff 36dd43f734 Avoid preserving HS url at logout
When I was talking to Matthew about this the other day, we couldn't think of a
good reason why we should preserve the HS URL at logout. It introduces the
problem that, if a client is redirected after login as per MSC1730, and then
you log out, you'll then get a login screen for the wrong server.

So basically there's no reason to have an mx_hs_url/mx_is_url without an access
token, and we can remove the stuff which preserves it, and the stuff that
attempts to restore it.
2018-12-10 14:44:12 +00:00
Travis Ralston 6707186edc Change how the default server name and HS URL interact
They are now independent of each other. If both are specified in the config, the user will see an error and be prevented from logging in. The expected behaviour is that when a default server name is given, we do a .well-known lookup to find the default homeserver (and block the UI while we do this to prevent it from using matrix.org while we go out and find more information). If the config specifies just a default homeserver URL however, we don't do anything special.
2018-12-07 15:36:49 -07:00
Travis Ralston 633be5061c Introduce a default_server_name for aesthetics and rework .well-known
Fixes https://github.com/vector-im/riot-web/issues/7724

The `default_server_name` from the config gets displayed in the "Login with my [server] matrix ID" dropdown when the default server is being used. At this point, we also discourage the use of the `default_hs_url` and `default_is_url` options because we do an implicit .well-known lookup to configure the client based on the `default_server_name`. If the URLs are still present in the config, we'll honour them and won't do a .well-known lookup when the URLs are mixed with the new server_name option. Users will be warned if the `default_server_name` does not match the `default_hs_url` if both are supplied. Users are additionally prevented from logging in, registering, and resetting their password if the implicit .well-known check fails - this is to prevent people from doing actions against the wrong homeserver.

This relies on https://github.com/matrix-org/matrix-js-sdk/pull/799 as we now do auto discovery in two places. Instead of bringing the .well-known out to its own utility class in the react-sdk, we might as well drag it out to the js-sdk.
2018-12-04 23:34:57 -07:00
David Baker 8ac62f8c12 Merge remote-tracking branch 'origin/develop' into dbkr/e2e_backups 2018-10-29 16:20:45 +00:00
David Baker b59b8b7fca Merge remote-tracking branch 'origin/develop' into dbkr/e2e_backups 2018-10-25 17:42:46 +01:00
Travis Ralston d7367a7cfd Merge branch 'develop' into travis/permalink-routing 2018-10-24 09:12:14 -06:00
Travis Ralston 8ff1da11ed
Merge pull request #2237 from aaronraimist/camel-case
lint: make colorScheme camel case
2018-10-22 22:44:14 -06:00
Aaron Raimist 4b3c865959
lint: make colorScheme camel case
Signed-off-by: Aaron Raimist <aaron@raim.ist>
2018-10-22 23:07:47 -05:00
Aaron Raimist 41bd6e4366
Change leave room button text, OK -> Leave
Signed-off-by: Aaron Raimist <aaron@raim.ist>
2018-10-22 20:55:24 -05:00
Travis Ralston 7383133846 Support parsing matrix.to links in the timeline with ?via= in them
This ends up being translated to ?server_name= in the matrix-js-sdk, although that has a bug at the time of writing. It converts `server_name: ['a', 'b']` to `?server_name=a,b` instead of `?server_name=a&server_name=b`

For reference: the `viaServers` option is routed through the 'join_room' action to RoomViewStore#_joinRoom which is passed directly to the js-sdk http-api#joinRoom function.

Next steps:
* Fix the js-sdk parsing
* Make the SDK generate matrix.to links with ?via=
2018-10-19 13:31:18 -06:00
Travis Ralston 6323d78b0c Move tinter init to MatrixChat
This is a much better place for it to live
2018-10-15 14:41:00 -06:00
David Baker 655627209a unused function 2018-10-10 17:25:32 +01:00
David Baker 0abcb5c78d Handle InvalidStoreError from js-sdk
js-sdk now emits sync state ERROR with an InvalidStoreError if the
store needs to be cleared before it can be used.

Requires https://github.com/matrix-org/matrix-js-sdk/pull/759
2018-10-10 17:07:17 +01:00
David Baker 387128ed1e Merge remote-tracking branch 'origin/develop' into dbkr/e2e_backups 2018-10-05 14:01:50 +01:00
David Baker a81589ffb5 Silence bluebird warnings 2018-10-05 12:15:03 +01:00
David Baker fa30707eae Merge remote-tracking branch 'origin/develop' into dbkr/e2e_backups 2018-10-02 16:59:15 +01:00
Travis Ralston a1cb6d64cf
Merge pull request #2182 from matrix-org/travis/warn-disconnect-early
Show the 'homeserver unavailable' warning when the first sync fails
2018-09-28 07:55:07 -06:00
Bruno Windels 5765d59132
Merge pull request #2083 from matrix-org/t3chguy/is_url
allow passing initial is_url like hs_url in query params
2018-09-28 13:20:50 +01:00
Travis Ralston 16b2fb7fe6 Show the 'homeserver unavailable' warning when the first sync fails
Fixes https://github.com/vector-im/riot-web/issues/7380
2018-09-27 14:31:55 -06:00
David Baker 5ba45a71e8 Remove SuggestKeyRestoreHandler
Didn't end up using it for this iteration
2018-09-18 15:32:33 +01:00
David Baker 292b1f09af WIP e2e key backups
Continues from Matthew's work: adds a feature flag & panel in
user settings to create a backup.

Can't restore a backup yet, nor even continue backing up to the same
backup after a refresh.
2018-09-13 17:11:46 +01:00
David Baker f62e92a07b Merge remote-tracking branch 'origin/develop' into matthew/e2e_backups 2018-09-11 11:37:22 +01:00
David Baker fa669bf096 Error on splash screen if sync is failing
Display an error on the splash screen with the spinner if the sync
request is not working, rather than just sitting there with a spinner
as if nothing is wrong.

Fixes https://github.com/vector-im/riot-web/issues/7148
2018-09-07 12:18:25 +01:00
David Baker 27fa21e403 Replace view_set_mxid with require_registration
To put all the other flows through the to-ilag-or-not-to-ilag flow
2018-09-05 18:08:49 +01:00
David Baker a042f4d0af Do full registration if HS doesn't support ILAG
ILAG only works on HSes that allow registering without an email
address, so whenever we redirect to the ILAG flow, check what
registration flows the server supports, and if it doesn't offer one
that's ILAG-compatible, prompt the user to go through the full
registration process instead.

This doesn't change all the entry points into ILAG, I'll do that
in a separate commit.
2018-09-05 17:07:39 +01:00
Bruno Windels 5c395e4db7 wait for room creation, to go to home page in case of failure 2018-09-04 14:26:36 +02:00
David Baker 8fd7c4a66b Merge remote-tracking branch 'origin/develop' into matthew/e2e_backups 2018-08-24 14:07:16 +01:00
Bruno Windels 07083e61b7
Merge pull request #2058 from matrix-org/t3chguy/hide_logout_warning_whilst_logging_out
while logging out ignore `Session.logged_out` as it is intentional
2018-08-07 10:31:29 +02:00
Michael Telatynski 923de17b91
allow passing initial is_url like hs_url in query params
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2018-07-24 16:10:46 +01:00
Michael Telatynski ffe0b35504
while logging out ignore `Session.logged_out` as it is intentional
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2018-07-15 22:33:00 +01:00
Luke Barnard 5af8ddcf10 Fix import 2018-07-06 11:00:39 +01:00
Luke Barnard d53c836fd7 Implement aggregation by error type for tracked decryption failures 2018-07-05 13:54:44 +01:00
Luke Barnard 0dd3a77432 Track an event name when tracking a decryption failure
Otherwise piwik will not agregate the failures correctly for all views.
2018-07-02 09:45:32 +01:00
Luke Barnard 01dd387970 Track UISIs in bulk
Piwik supports sending an event value, which we can use to indicate
cardinality of UISIs to be tracked instead of tracking them individually.

This means we can track them at a lower frequency of (fairly arbitrary)
60s.
2018-06-28 15:07:27 +01:00
David Baker 210d920a92
Merge pull request #1949 from matrix-org/luke/track-uisis-piwik
Track decryption success/failure rate with piwik
2018-06-18 10:12:26 +01:00
Luke Barnard b0a2772889 Use more consistent start/stop pattern 2018-06-15 17:58:43 +01:00
Luke Barnard 488cc416cf For now, shelve persistance across sessions 2018-06-15 17:08:11 +01:00
Luke Barnard 7489d7d531 Fix incorrect call to DFT 2018-06-15 16:50:52 +01:00
Luke Barnard f08274585e Persist tracked event ID hash using localStorage 2018-06-15 15:30:54 +01:00
Luke Barnard cfe52a2888 Instead of passing dft.eventDecrypted, call it instead
So that `this` has the correct reference.
2018-06-15 15:15:05 +01:00
Luke Barnard 62601d657d Implement DecryptionFailureTracker for less agressive tracking
Instead of pinging Analytics once per failed decryption, add the failure
to a list of failures and after a grace period, add it to a FIFO for
tracking. On an interval, track a single failure from the FIFO.
2018-06-15 13:42:18 +01:00
Luke Barnard 3cadbd3974 Include decryption error in decryption failure metrics 2018-06-13 11:21:26 +01:00
Luke Barnard 230de44071 Adjust comment 2018-06-13 09:38:57 +01:00
Luke Barnard 64b86108d0 Only track decryption failures 2018-06-13 09:38:23 +01:00
Michael Telatynski 175f1aa15c
don't set the displayname on registration as Synapse now does it
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2018-06-12 16:43:54 +01:00
Luke Barnard 0934006817 Track decryption success/failure rate with piwik
Emit a piwik event when a decryption occurs in the category "E2E" with
the action "Decryption result" and the name either "failure" or
"success".

NB: This will cause Riot to a lot of networking when decrypting many
events. One HTTP request per decrypted event should be expected.
2018-06-12 14:13:09 +01:00
David Baker bea99e07b3
Merge pull request #1940 from matrix-org/luke/exit_settings
Fix click on faded left/right/middle panel -> close settings
2018-06-05 10:36:58 +01:00
Luke Barnard 6a317569d7 Add null-guard to support browsers that don't support performance
Like Tor.

Fixes https://github.com/vector-im/riot-web/issues/6781
2018-06-04 09:38:21 +01:00
Luke Barnard 404c071f2a Remove lie from docs 2018-05-29 13:19:56 +01:00
Luke Barnard da9fe9917b Fix click on faded left/right/middle panel -> close settings
- implement generic dispatch to close user/room/group settings
 - use dispatch to allow clicks on disabled left/right/middle panel to
   close settings

A much more maintainable approach would be to use dedicate routing
instead of doing different things depending on what page of the app is
currently being viewed. At the very least we could make the concept of a
settings page generic.
2018-05-29 13:16:39 +01:00
Matthew Hodgson 25216d4660 Merge branch 'develop' into matthew/e2e_backups 2018-05-28 00:46:05 +01:00
David Baker 168b956b3c homeserver 2018-05-24 17:01:00 +01:00
David Baker 9d2f223773 Message for leaving server notices room 2018-05-24 16:54:48 +01:00
Luke Barnard 658e88c30f Implement consent/terms and conditions dialog for /_matrix/consent flow 2018-05-22 18:03:56 +01:00
David Baker ae10491f95 Space between sentences in 'leave room' warning 2018-05-22 09:28:41 +01:00
Luke Barnard ac1cd384e7 Implement opt-in analytics with cookie bar 2018-05-16 15:20:38 +01:00
Luke Barnard 22f2d6f292 Fix crash when browser doesn't report page change measurement 2018-05-03 14:08:10 +01:00
David Baker 0c309c88ad Bluebird has no need for your .done() 2018-04-27 17:52:25 +01:00
David Baker 0323f8ed0c Wrap exception handling around all of loadSession
The user might (probably does) have a session even if we haven't actually tried
to load it yet, so wrap the whole loadSession code in the error handler we were
using for restoring sessions so we gracefully handle exceptions that happen
before trying to restore sessions too.

Remove the catch in MatrixChat that sent you to the login screen.  This is
never the right way to handle an error condition: we should only display the
login screen if we successfully determined that the user has no session, or
they explicitly chose to blow their sessions away.
2018-04-27 11:25:13 +01:00
Luke Barnard 665e052596 Allow debugging of unhandled login errors 2018-04-26 15:09:17 +01:00
Luke Barnard 00167fbc06 Init page change state in willMount 2018-03-28 11:25:28 +01:00
Luke Barnard c8312dd5ae Use a less fragile API to track page change performance 2018-03-28 10:25:28 +01:00
Luke Barnard 69d9080dd5 Track duration of page changes
The duration measured is between
 - componentWillUpdate of MatrixChat and
 - componentDidUpdate of MatrixChat.

This does not account for *all* changes to the view that occur
when a room switch happens, for example. But it does at least
capture the difference between switching to a "big" room and
switching to a small test room.
2018-03-27 11:17:49 +01:00
David Baker 580b68a1b6
Merge pull request #1652 from pvagner/dialog-a11y
Dialog a11y
2018-03-20 11:35:57 +00:00
David Baker ba4626521f Remove the message on migrating crypto data
This was for when the new and old versions were available
concurrently on /develop and /app.

The various migration steps are still logged to the console in
js-sdk.
2018-03-15 10:09:12 +00:00
Peter Vágner 410570936a Reimplement setting aria-hidden on the main app node by dispatching actions rather than assuming we can find and manipulate the node directly 2018-02-08 22:51:07 +01:00
lukebarnard 45ad46b468 Fix HS/IS URL reset when switching to Registration 2018-02-07 15:58:29 +00:00
Will Hunt 5206c9d18b Show a warning if the user attempts to leave a room that is invite only 2018-01-19 22:52:43 +00:00
lukebarnard 00dc077271 Remove react-dnd, revert fa14bc9 as no longer needed 2018-01-19 13:34:56 +00:00
Matthew Hodgson a233af67ea initial pseudocode WIP for e2e online backups 2018-01-15 02:02:48 +00:00
Aidan Gauland 35780f5ae0 Remove use of deprecated React.PropTypes
Replace all uses of React.PropTypes with PropTypes and importing PropTypes from
'prop-types'.
2017-12-26 14:03:18 +13:00
Matthew Hodgson fa14bc9b8d don't gutwrench 2017-12-18 22:49:23 +00:00
Matthew Hodgson e65c67ca15 fix https://github.com/vector-im/riot-web/issues/5841 2017-12-18 22:47:28 +00:00
Luke Barnard 8b11b10531 Avoid NPEs by using ref method for collecting loggedInView in MatrixChat 2017-12-15 15:24:37 +00:00
Luke Barnard 9975941f3c
Merge pull request #1653 from matrix-org/luke/feature-ordered-tag-panel
DnD Ordered TagPanel
2017-12-14 10:36:16 +00:00
David Baker bb9376098a
Merge pull request #1654 from matrix-org/dbkr/crypto_store_migrate_warning
Warn when migrating e2e data to indexeddb
2017-12-08 16:52:05 +00:00
David Baker 0d38e7510d
Merge pull request #1600 from matrix-org/dbkr/udd_no_auto_show
Don't Auto-show UnknownDeviceDialog
2017-12-08 16:33:25 +00:00
Luke Barnard 8f0774496f Remove redundant MatrixChat 2017-12-08 11:29:21 +00:00
David Baker aa99b898ce Add that it might not work now either
also a comma
2017-12-06 18:57:48 +00:00
David Baker 4462694438 lint 2017-12-06 16:06:33 +00:00
David Baker 65c210cdde Warn when migrating e2e data to indexeddb 2017-12-06 15:28:20 +00:00
Luke Barnard 7e1f1cdbd9 Move DragDropContext to wrap LoggedInView
Becuase the tests rely on being able to inspect the state of MatrixChat
2017-12-06 15:01:16 +00:00
Luke Barnard 7aa5dcef69 Move DragDropContext to wrap entire app 2017-12-06 13:10:58 +00:00
Luke Barnard a8594a58e5 Allow guest to see MyGroups, show ILAG when creating a group 2017-11-28 13:32:46 +00:00
Travis Ralston 33a3b07d88 Pull the theme through the default process
This is to ensure the `config` level is respected.

Signed-off-by: Travis Ralston <travpc@gmail.com>
2017-11-16 20:52:12 -07:00
David Baker 196eafdc7f Merge remote-tracking branch 'origin/develop' into dbkr/udd_no_auto_show 2017-11-16 15:59:16 +00:00
Luke Barnard b54e563cb6 Merge branch 'develop' into luke/linting-keyword-spacing 2017-11-16 13:23:42 +00:00
Luke Barnard dad797d4a2 Run linting --fix 2017-11-16 13:19:36 +00:00
Travis Ralston 022e40a127 Use SettingsStore for default theme
Signed-off-by: Travis Ralston <travpc@gmail.com>
2017-11-15 19:04:49 -07:00
David Baker f8fc6dc83e Merge remote-tracking branch 'origin/develop' into dbkr/udd_no_auto_show 2017-11-15 12:11:33 +00:00
Matthew Hodgson 060a890275
Merge pull request #1516 from turt2live/travis/granular-settings
Granular settings
2017-11-15 10:55:55 +00:00
Matthew Hodgson e91e94fd42 fix unstyled CSS bug https://github.com/vector-im/riot-web/issues/5601 2017-11-15 09:56:44 +00:00
Travis Ralston bd4102eb3d Merge branch 'develop' into travis/granular-settings 2017-11-14 19:12:48 -07:00
Matthew Hodgson 546b062d82 automatically and correctly retint when changing theme 2017-11-15 01:45:51 +00:00
Matthew Hodgson 7c98558b6a fix neglible race when loading CSS 2017-11-14 16:07:48 +00:00
Matthew Hodgson 1fd7ac30e4 turns out i made up the .complete property on link elements 2017-11-14 16:04:11 +00:00
Matthew Hodgson 8d6e3dd27d fix lint 2017-11-14 15:37:03 +00:00
Matthew Hodgson dcfbe93409 fix race when loading CSS
fixes https://github.com/vector-im/riot-web/issues/5590
2017-11-14 15:28:34 +00:00
Travis Ralston 0648b3eae7 Merge branch 'develop' into travis/granular-settings 2017-11-13 12:29:36 -07:00
Travis Ralston c5c346f0b7 Merge branch 'develop' into travis/granular-settings 2017-11-13 12:18:41 -07:00
David Baker 0659ac1ccb Merge remote-tracking branch 'origin/develop' into dbkr/udd_no_auto_show 2017-11-13 17:45:57 +00:00
Matthew Hodgson a0cdaf29f9 Merge remote-tracking branch 'origin/develop' into matthew/status 2017-11-10 15:29:42 -08:00
Luke Barnard 0d174ffe9a Fix tests 2017-11-10 11:13:52 +00:00
Luke Barnard f4428267a1 Refactor onboarding redirect, add groups to the onboarding starters 2017-11-10 10:51:28 +00:00
David Baker b1ec430523 Remove now-unused dispatches 2017-11-09 16:09:12 +00:00
David Baker 820d9c1c25 Show staus bar on Unknown Device Error
Don't pop up the dialog as soon as we can't send a message.

Also removes dispatches used to keep the RoomStatusBar up to date.
We can get the same events straight from the js-sdk via the
pending events event.
2017-11-09 15:58:15 +00:00
Travis Ralston f7da5836e1 Make blacklistUnverifiedDevices override the level order
Signed-off-by: Travis Ralston <travpc@gmail.com>
2017-11-08 17:41:32 -07:00
Matthew Hodgson 58ee4d0a76 rewrite the tinter to be ES6, and correctly cache fixups per theme 2017-11-08 06:55:07 -08:00
Matthew Hodgson e729bc431d Merge remote-tracking branch 'origin/develop' into matthew/status 2017-11-08 04:29:52 -08:00
Travis Ralston 289b0c2b6a
Merge branch 'develop' into travis/granular-settings 2017-11-07 14:55:12 -07:00
Luke Barnard 36cd22663a Open group settings when the group is created 2017-11-06 18:02:50 +00:00
Travis Ralston 781b94c8f4 Appease the linter
Signed-off-by: Travis Ralston <travpc@gmail.com>
2017-11-05 15:37:06 -07:00
Travis Ralston 10519f9465 Fix the tests
Signed-off-by: Travis Ralston <travpc@gmail.com>
2017-11-05 14:56:41 -07:00
Travis Ralston 3958e32672 Ensure blacklistUnverifiedDevices persists reloads
Signed-off-by: Travis Ralston <travpc@gmail.com>
2017-11-04 20:13:23 -07:00
Matthew Hodgson 68115f5b9c tint when theming correctly 2017-11-05 00:40:38 +00:00
Matthew Hodgson e72e30197a calculate new CSS tinting when we change theme 2017-11-04 23:50:57 +00:00
Travis Ralston 0d3f0eaf98 Convert local settings to granular settings
This breaks language selection.

Signed-off-by: Travis Ralston <travpc@gmail.com>
2017-10-29 16:53:00 -06:00
David Baker 858c3a2548 Merge remote-tracking branch 'origin/develop' into matthew/status 2017-10-27 18:59:57 +01:00
Matthew Hodgson ac7a94afb2 apply theme tint at launch 2017-10-26 01:43:42 +01:00
Luke Barnard 2f8f2ce76e Swap from `ui_opacity` to `panel_disabled`
to simplify the process of disabling panels in the UI.
2017-10-25 11:23:51 +01:00
Matthew Hodgson 37fd19290f concept of default theme 2017-10-20 18:42:29 +01:00
Michael Telatynski 7492f2dffa
Merge branch 'develop' of github.com:matrix-org/matrix-react-sdk into set_default_federate_by_settings 2017-10-04 22:35:29 +01:00
Luke Barnard 6b9a2909df Add rule to enforce spacing in curly brackets in JSX children
This required an updated in version of eslint-plugin-react to 7.4.0.
2017-09-28 11:21:06 +01:00
Luke Barnard e9fb5712bd Merge branch 'develop' into dbkr/group_userlist 2017-09-19 13:26:55 +01:00
David Baker 1f837d2ae1 Make /join join again
The auto_join parameter to view_room got broken at some point so
/join took you to the room and then sat there like a lemon.

Fixes https://github.com/vector-im/riot-web/issues/5029
2017-09-14 23:06:00 +01:00
David Baker 3c3328c5f1 Merge remote-tracking branch 'origin/develop' into dbkr/group_userlist 2017-09-13 16:34:39 +01:00
Matthew Hodgson 0e8bd856bc remove obsolete this._roomViewStoreToken.remove(); 2017-09-08 20:14:27 +02:00
David Baker 663dc3e513 Don't re-render matrixchat unnecessarily
...on room switch. We were setting most of the state in viewRoom,
but getting the current room ID from the RoomViewStore, but this
meant we did one setState from the RoomViewStore updating,
re-rendered and then setState again in viewRoom causing another
render. This just sets the room ID in viewRoom.
2017-09-08 18:56:57 +01:00
David Baker d86fe0df6e Merge remote-tracking branch 'origin/develop' into dbkr/group_userlist 2017-08-29 13:29:55 +01:00
David Baker 299db845ff PR feedback 2017-08-25 12:10:13 +01:00
Richard van der Hoff b65e1769d7 Dispatch incoming_call synchronously
- this should fix a race where if the 'hangup' arrives hard on the tail of the
Call.incoming, we don't ignore it.

(We still have a problem in that we blip the hangup tone and UI, but that is
arguably a separate problem)
2017-08-24 13:05:17 +01:00
Michael Telatynski bdb2d6b475
Merge remote-tracking branch 'remotes/origin/develop' into set_default_federate_by_settings
# Conflicts:
#	src/components/structures/MatrixChat.js
2017-08-17 13:39:19 +01:00
Michael Telatynski ca5e26744f
Make dialog more specific and hide options behind advanced spoiler 2017-08-17 13:33:07 +01:00
David Baker ddf1017799 Make group invites work 2017-08-16 14:58:30 +01:00
David Baker 252ab208e4 Merge pull request #1300 from matrix-org/dbkr/userpicker
Refactor ChatInviteDialog to be UserPickerDialog
2017-08-16 14:29:07 +01:00
David Baker e1ddd3781d Merge branch 'dbkr/userpicker' into dbkr/group_userlist 2017-08-15 14:10:45 +01:00
David Baker 1b66e88b6e ChatInviteDialog -> UserPickerDialog pt 2
The other changes I forgot to add
2017-08-14 17:43:00 +01:00
Luke Barnard 2844b574d5 Re-add useful comment 2017-08-14 14:41:03 +01:00
Luke Barnard b59de7964c Wait for first sync before dispatching view_user on /user
the RightPanel will be mounted once we're done doing the first sync, so wait until then and then dispatch a view_user. This is not very nice but it's what we do for view_room.
2017-08-14 14:37:49 +01:00
Luke Barnard d9e8292a5e Revert "At /user, view member of current room" 2017-08-14 14:06:54 +01:00
David Baker 02217c8bd2 Merge pull request #1290 from matrix-org/luke/fix-user-url-no-middle-panel
At /user, view member of current room
2017-08-11 10:49:22 +01:00
Luke Barnard 89254e77f4 When no member, use `null` `roomId` 2017-08-10 15:23:14 +01:00
Michael Telatynski b19c1010aa
Merge branches 'develop' and 't3chguy/i18n_analytics' of github.com:matrix-org/matrix-react-sdk into t3chguy/i18n_analytics
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

# Conflicts:
#	src/Analytics.js
2017-08-10 13:54:55 +01:00
Michael Telatynski 24599ace32
don't track error messages
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2017-08-10 13:49:11 +01:00
Luke Barnard 07633fe67f At /user, view member of current room
With the fallback of existing behaviour, which is UserView (no middle panel and no avatar, display name).

To improve, MemberInfo should probably track the current roomId and userId and then update the view asynchronously by re-fetching the member object when either roomId or userId change.

Also, it should be hitting the profile API to get the user's avatar if a room hasn't been specified.
2017-08-10 13:12:50 +01:00
Richard van der Hoff 38114711fd Make MatrixChat do fewer render cycles during mount
This is mostly with the intent of making the login tests more reliable, but it
seems generally worthwhile:

* keep screenAfterLogin in the object props rather than `state` so that we can
  clear it without triggering a rerender

* also move our record of the window width to the object props, and call
  `handleResize` from componentWillMount rather than componentDidMount so that
  we don't trigger a rerender by updating `state.width`

* Remove update of unused `loading` state
2017-08-08 22:31:40 +01:00
Michael Telatynski 6e39e72849
fix m.federate always being false because value is a string. Y HTML...
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2017-08-02 14:00:24 +01:00
Michael Telatynski 4b4b730233
fix and i18n the impl
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2017-08-02 13:41:26 +01:00
Michael Telatynski fd454b476a
Merge branch 'develop' of github.com:matrix-org/matrix-react-sdk into set_default_federate_by_settings 2017-08-02 12:15:00 +01:00
Michael Telatynski bf98c0da7c
un-i18n Modal Analytics
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2017-07-27 17:19:18 +01:00
Richard van der Hoff 0d7cc59d99 replace q method calls with bluebird ones
```
find src test -name '*.js' |
    xargs perl -i -pe 's/q\.(all|defer|reject|delay|try|isFulfilled)\(/Promise.$1(/'
```
2017-07-12 18:05:40 +01:00
Richard van der Hoff 0254d2b3a2 q(...) -> Promise.resolve
```
find src test -name '*.js' | xargs perl -i -pe 's/\b[qQ]\(/Promise.resolve(/'
```
2017-07-12 18:05:08 +01:00
Richard van der Hoff a06bd84213 replace imports of `q` with bluebird
update `package.json`

```
find src test -name '*.js' |
   xargs perl -i -pe 'if (/require\(.[qQ].\)/) { $_ = "import Promise from '\''bluebird'\'';\n"; }'

find src test -name '*.js' |
   xargs perl -i -pe 'if (/import [qQ]/) { $_ = "import Promise from '\''bluebird'\'';\n"; }'
```
2017-07-12 18:05:08 +01:00
David Baker 29990296d2 Lint 2017-07-11 11:02:23 +01:00
David Baker 925d5bd480 Add featured users to Group View 2017-07-10 19:32:02 +01:00
David Baker a2ff289ed8 Add 'groups' page 2017-06-28 13:56:18 +01:00
David Baker 6c9716637e Fix linting errors 2017-06-27 13:13:00 +01:00
David Baker 09b1012388 Merge remote-tracking branch 'origin/develop' into erikj/group_server 2017-06-26 17:49:06 +01:00
David Baker 8f3eb89f8b Fix potential race in setting client listeners 2017-06-23 10:48:21 +01:00
David Baker 75ef80ecd4 Merge remote-tracking branch 'origin/develop' into erikj/group_server 2017-06-23 09:51:24 +01:00
David Baker ac3e039e2a Merge pull request #1019 from matrix-org/t3chguy/updating_stuff
manual check for updates
2017-06-22 17:36:55 +01:00
Richard van der Hoff fcd945afc2 Fix an incorrect console error
... this error is thrown when registering as guest or loading from
localstorage, not when using tokenparams.
2017-06-22 15:08:30 +01:00
David Baker 72e73c05ac Merge pull request #1127 from matrix-org/t3chguy/reset_favicon_on_logout
reset page subtitle and favicon on_logged_out
2017-06-21 14:58:26 +01:00
David Baker 9ef9d09d44 Fix another race with first-sync
Set the first sync variables in onWillStartClient, as they race if
set on logged in (similar fix to https://github.com/matrix-org/matrix-react-sdk/pull/1124)
2017-06-21 11:27:18 +01:00
Michael Telatynski 7f6a252bcb Merge branch 'develop' of github.com:matrix-org/matrix-react-sdk into t3chguy/reset_favicon_on_logout 2017-06-20 18:39:59 +01:00
Richard van der Hoff cd73139af5 Various logging cleanups
* don't just log errors without any context as to where they came from or what
   they mean
 * avoid the use of '%s' and multi-argument console.log because it looks awful
   under karma.
2017-06-20 17:38:02 +01:00
Michael Telatynski b712a15a14 move in case it is racey ---- somehow?
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2017-06-20 16:15:42 +01:00
Michael Telatynski 04aed416d2 Merge branches 'develop' and 't3chguy/reset_favicon_on_logout' of github.com:matrix-org/matrix-react-sdk into t3chguy/reset_favicon_on_logout
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

# Conflicts:
#	src/components/structures/MatrixChat.js
2017-06-20 15:37:05 +01:00
Michael Telatynski 5460b0f5b2 reset page subtitle on_logged_out
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2017-06-20 15:31:12 +01:00
David Baker a2dc17256a Merge remote-tracking branch 'origin/develop' into t3chguy/updating_stuff 2017-06-20 13:44:27 +01:00
Richard van der Hoff 0c431887b0 Merge pull request #996 from matrix-org/rav/handle_received_room_key_requests
Pop up a dialog when we get a room key request
2017-06-20 13:20:58 +01:00
David Baker e15aedfeb2 Fix another infinite spin on register
Don't set ready on logging_in, set it before we start the client,
as commented
2017-06-20 12:03:37 +01:00
Richard van der Hoff a0534e7477 Merge branch 'develop' into rav/handle_received_room_key_requests 2017-06-20 00:25:14 +01:00
Richard van der Hoff 3a6dabdc08 Merge pull request #1116 from matrix-org/rav/no_more_guestcreds
Get rid of guestCreds
2017-06-19 14:34:12 +01:00
Richard van der Hoff a5d65ee391 Get rid of guestCreds
-- we just keep the MatrixClient running in the background, so it is easy to
resume.
2017-06-19 10:36:25 +01:00
Richard van der Hoff 3b518f2c59 Fix race in registration for pusher config
we no longer immediately create the MatrixClient, so don't assume we do.
2017-06-19 10:22:18 +01:00
Richard van der Hoff 115a3deed9 Merge pull request #1102 from matrix-org/rav/refactor_matrixclient_states
Refactor the state machine in MatrixChat
2017-06-19 08:53:50 +01:00
Richard van der Hoff cb29d92912 Merge pull request #1110 from matrix-org/rav/fix_token_redirect
Avoid transitioning to loggedIn state during token login
2017-06-19 08:52:22 +01:00
Michael Telatynski 7b4cd31124 make forward_message be friendly with the RVS stuffs
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2017-06-16 16:12:52 +01:00
Richard van der Hoff db3d9c0573 Make Lifecycle.loadSession return an explicit result
- rather than inferring it from the fact it didn't call logging_in.
2017-06-16 15:23:09 +01:00
Richard van der Hoff 5f689b7929 Merge branch 'rav/fix_token_redirect' into rav/refactor_matrixclient_states_tmp 2017-06-16 15:20:47 +01:00
Richard van der Hoff eb1fc9ae2d Avoid transitioning to loggedIn state during token login
Fixes riot-web#4334

When we do a token login, don't carry on with the normal app startup
(transitioning to the loggedIn state etc) - instead tell the app about the
successful login and wait for it to redirect.

Replace onLoadCompleted with onTokenLoginCompleted so that the app can see what
it's supposed to be doing.
2017-06-16 15:05:53 +01:00
David Baker 236cf1efb2 Merge remote-tracking branch 'origin/develop' into erikj/group_server 2017-06-16 14:19:54 +01:00
Richard van der Hoff 3884c5ccf0 Log an error on unknown state instead of throwing 2017-06-16 11:51:12 +01:00
Richard van der Hoff 5e5639b730 Fix half-written comment 2017-06-16 11:50:53 +01:00
Luke Barnard 82b2da7833 Correctly inspect state when rejecting invite
So that we view_next_room if we're looking at the room we're rejecting
2017-06-16 11:27:47 +01:00
Richard van der Hoff 7b526308fd Rearrange MatrixChat.render for sanity
no-op to make it into a nice simple switch-like arrangement
2017-06-15 17:57:24 +01:00
Richard van der Hoff 90213ce72e MatrixChat: Replace state.{loading,loggedIn,loggingIn} with views
MatrixChat is essentially a glorified state machine, with its states partially
determined by the loading, loggedIn and loggingIn state flags. If we actually
make each of the states implied by those flags an explicit 'view', then
everything gets much clearer.
2017-06-15 17:57:24 +01:00
Richard van der Hoff ce42a9a06f Replace MatrixChat.state.screen with 'view'
'screen' is overloaded, as it us used for the parameter of `showScreen` (and,
by implication, `state.screenAfterLogin`). Attempt to clear up the confusion by
replacing 'screen' with 'view' and using some constants for the potential
values.

This should be a no-op!
2017-06-15 16:41:17 +01:00
David Baker 8f9bf5f093 Merge branch 'develop' into erikj/group_server 2017-06-15 14:19:46 +01:00
Richard van der Hoff 65f351ff22 Clear Lifecycle.RtsClient on MatrixChat.mount
- otherwise it ends up sitting around and failing later tests.
2017-06-15 02:15:13 +01:00
Richard van der Hoff 498ea53995 Don't create a guest login if user went to /login
This fixes an unintuitive behaviour where, if you follow a link to
riot.im/app/#/login, we take you to the login page, but not before we've
registered a guest account (or restarted the MatrixClient with the stored
creds).

This actually ends up simplifying some of the startup dance, as we special-case
the registration flows earlier on.
2017-06-14 11:02:38 +01:00
Richard van der Hoff 9e70884415 Merge pull request #1085 from matrix-org/rav/clear_storage_on_login
Clear persistent storage on login and logout
2017-06-14 10:34:26 +01:00
Richard van der Hoff 68e1a7be74 Clear persistent storage on login and logout
Make sure that we don't end up with sensitive data sitting around in the stores
from a previous session.
2017-06-13 12:51:47 +01:00
Richard van der Hoff 1ea9ed5d8c remove RoomViewStore listener from MatrixChat on unmount
... to avoid spurious warnings from the tests.
2017-06-13 12:39:26 +01:00
Richard van der Hoff cc74a09abd Remove start_upgrade_registration dispatch handler
This dispatch is no longer raised anywhere, so we may as well get rid of the
code that it executes, as well as the state which is only set there.
2017-06-12 08:38:29 +01:00
Richard van der Hoff 56efe7d2f2 Merge pull request #1064 from matrix-org/rav/delinting
Delinting
2017-06-12 08:34:58 +01:00
Michael Telatynski 1069bd33f0 Merge branch 'develop' of github.com:matrix-org/matrix-react-sdk into t3chguy/updating_stuff
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2017-06-11 23:21:50 +01:00
Michael Telatynski 6ead97c7a6 change interface to UpdateCheckBar and change launching mechanism
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2017-06-11 19:12:40 +01:00
Luke Barnard ecc8abbfc9 When ChatCreateOrReuseDialog is cancelled by a guest, go home 2017-06-09 13:46:45 +01:00
David Baker 924c08b143 Merge pull request #1067 from matrix-org/luke/fix-forgetting-last-room
Goto /home when forgetting the last room
2017-06-09 11:03:14 +01:00
Luke Barnard 19bb879fbf Handle only 1 room in the list 2017-06-09 10:54:42 +01:00
Luke Barnard c7229967a6 Goto /home when forgetting the last room 2017-06-09 10:28:45 +01:00
Luke Barnard a21b6e61a6 Default to home page when settings is closed
If the current room isn't set.
2017-06-09 10:08:26 +01:00
Richard van der Hoff 105c6b2b87 delint MatrixChat
once more. with feeling.
2017-06-09 03:09:03 +01:00
Luke Barnard 5588e115eb Clarify doc for highlighted 2017-06-08 17:57:37 +01:00
Luke Barnard 9892566007 Highlighted means highlighted 2017-06-08 17:54:41 +01:00
Luke Barnard 2e82bf40fb Explain setting of highlighted in room/$eventId showScreen handling. 2017-06-08 15:34:20 +01:00
Luke Barnard 8ddc38c9b1 Doc _viewRoom highlighted 2017-06-08 15:32:31 +01:00
Luke Barnard aa20ad706e Remove redundant `currentRoomAlias` 2017-06-08 15:30:43 +01:00
Luke Barnard ea97d16aa2 Merge branch 'develop' into luke/fix-event-id-state
Conflicts:
	src/components/structures/MatrixChat.js
2017-06-08 14:33:58 +01:00
Luke Barnard f320f7d475 Remove redundant action id 2017-06-08 14:30:45 +01:00
Luke Barnard d3cf78ff5a Control currently viewied event via RoomViewStore
Fix for https://github.com/vector-im/riot-web/issues/4224

Due to the way `MatrixChat` does a state update when the `view_room` dispatch fires and a second update when `RoomViewStore` sends an update, the current event ID and room ID were becoming out of sync. The solution devised was to have the event ID managed by the `RoomViewStore` itself and do any defaulting there (for when we revisit a room that we saved scroll state for previously).

This required a few changes:
 - The addition of `update_scroll_state` in `RoomViewStore` allows the `RoomView` to save scroll state for a room before swapping to another one. Previously the caching of scroll state was done in `RoomView`.
 - The `view_room` dispatch now accepts an `event_id`, which dictates which event is supposed to be scrolled to in the `MessagePanel` when a new room is viewed. It also accepts `event_offset`, but currently, this isn't passed in by a dispatch in the app, but it is clobbered when loading the default position when an `event_id` isn't specified. Finally, `highlighted` was added to distinguish whether the initial event being scrolled to is also highlighted. This flag is also used by `viewRoom` in `MatrixChat` in order to decide whether to `notifyNewScreen` with the specified `event_id`.
2017-06-08 14:17:49 +01:00
Richard van der Hoff 566fb2caeb Add some logging around switching rooms
... which I wish had been there when I was staring at a rageshake.
2017-06-07 22:41:02 +01:00
Richard van der Hoff 27e5098e00 Merge remote-tracking branch 'origin/develop' into rav/handle_received_room_key_requests 2017-06-07 15:44:33 +01:00
Richard van der Hoff c1151fd31c Merge branch 'develop' into rav/handle_received_room_key_requests 2017-06-07 15:37:38 +01:00
Luke Barnard 53ea41e8a5 Merge branch 'develop' into new-guest-access 2017-06-07 12:08:37 +01:00
Kegan Dougal 4127e7121c Translate src/components/structures
Includes some pluralisation! Tested them manually to make sure they work.
2017-06-07 11:40:46 +01:00
David Baker 9f15e8e152 Merge branch 'master' into develop 2017-06-06 17:41:05 +01:00
David Baker 00ccf4bb51 Revert "Call MatrixClient.clearStores on logout"
This reverts commit c3d37c1ff9.

This commit was introducing a bug where no rooms would be shown if
you want straight to /#/login and logged in (because this causes
a guest session to be created but the indexeddb store not to be
cleared, so the new login picks up the stale indexedb sync data.
2017-06-06 17:33:50 +01:00
Luke Barnard 205fd1fad4 Allow password reset when logged in 2017-06-06 17:22:49 +01:00
David Baker c27f50207d comment 2017-06-06 11:43:07 +01:00
David Baker 12d2480916 Reset 'first sync' flag / promise on log in
Otherwise on any logins after the first,we always think the first
sync has completed.
2017-06-06 11:36:33 +01:00
David Baker f8198ba9c9 Merge branch 'develop' into new-guest-access 2017-06-06 10:33:01 +01:00
David Baker a99f6525c9 Merge pull request #1039 from matrix-org/dbkr/ilag_cancel_action
Cancel deferred actions
2017-06-05 21:27:13 +01:00