Commit graph

6193 commits

Author SHA1 Message Date
Bruno Windels
c6952ba5b6 fix some more lint warnings, as limit is 16 now 2019-01-07 16:56:35 +01:00
Bruno Windels
aedc220b62 fix (some) lint warnings 2019-01-07 16:33:23 +01:00
Bruno Windels
c2f6fc381c add feature flag for grid view 2019-01-07 16:13:35 +01:00
Bruno Windels
8fa7ec0fac fix lint 2019-01-07 16:03:24 +01:00
Bruno Windels
81c48f07c7 clear width of right panel container when collapsed in grid view 2019-01-07 15:20:39 +01:00
Bruno Windels
b63bd5ea54 allow right panel to be hidden (although container is still visible) 2019-01-07 14:59:00 +01:00
Erik Johnston
4c204e88be Add feature flag for counters 2019-01-07 13:52:13 +00:00
Erik Johnston
712241d710 Add simple state counters to room heading 2019-01-07 13:52:13 +00:00
Bruno Windels
290dc9d8fb Merge branch 'experimental' into bwindels/roomgridview-experimental 2019-01-07 14:17:57 +01:00
David Baker
8fbb0607ff Re-write as full class component
So we can re-use the functions we pass to props
2019-01-07 12:09:19 +00:00
David Baker
522dddbd13 Lint 2019-01-07 10:13:02 +00:00
David Baker
47f303dc9d Make logout warning nag about key backups
https://github.com/vector-im/riot-web/issues/7805
2019-01-07 10:08:57 +00:00
Travis Ralston
5a2113e1a9 Fix a comparison bug in ordering the MemberList 2019-01-03 21:56:19 -07:00
Travis Ralston
77dfba8a22 Add unit tests for MemberList
Particularly the ordering of the tiles.
2019-01-03 21:55:52 -07:00
Travis Ralston
cc8fa7911b Merge remote-tracking branch 'origin/experimental' into travis/fix-memberlist-order 2019-01-03 20:01:28 -07:00
J. Ryan Stinnett
920911c0a1 Room list fixes for custom status 2019-01-03 18:49:15 -06:00
Travis Ralston
502288d4cc Merge branch 'travis/room-list-hover' into travis/re-apply-exp-changes 2019-01-03 16:28:05 -07:00
Travis Ralston
1481dcf9d7 Don't re-sort the room list if the user is hovering over it
Fixes vector-im/riot-web#5624
2019-01-03 16:27:59 -07: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
d8f6a7c684 Add missing stopPropagation 2019-01-03 16:26:01 -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
Travis Ralston
6447a60e1f Revert "Merge pull request #2336 from matrix-org/travis/notif-button"
This reverts commit 96300b45b7.
2019-01-03 15:44:07 -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
d111fe27bb Revert "Merge pull request #2396 from matrix-org/travis/room-list-hover"
This reverts commit 5098b28672.
2019-01-03 15:36:56 -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
78592286bd
Merge pull request #2383 from matrix-org/travis/back-button
Fix browser navigation not working between /home, /login, /register, etc
2019-01-03 14:37:04 -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
4c264b87fa Add missing stopPropagation 2019-01-03 14:23:26 -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
223a49d81f Don't re-sort the room list if the user is hovering over it
Fixes vector-im/riot-web#5624
2019-01-03 13:57:20 -07:00
Travis Ralston
95844ebf9d Comment out debugging statements
They are useful to have around, but not to have enabled all the time.
2019-01-03 12:15:27 -07:00
Travis Ralston
63a7b86eac Flatten and simplify the memberlist sorting algorithm
The previous algorithm had a bug where it was getting stuck on the power level comparison, leaving the memberlist incorrectly ordered. The new algorithm uses less branching to try and walk through the different cases instead. Additionally, the steps used to determine the order have changed slightly to better represent an active member list.

This commit also includes changes to try and re-sort the member list more often during presence changes. Events are not always emitted, however. This may be a js-sdk bug but appears to happen prior to these changes as well.

Fixes https://github.com/vector-im/riot-web/issues/6953
2019-01-03 12:15:19 -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
982e037822 Fix merge 2019-01-03 18:05:38 +00: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
David Baker
c11d0bdf0c
Merge pull request #2394 from jryans/key-backup-unverified-creator
Show in-room reminder when key backup creating device unverified
2019-01-03 10:27:35 +00:00
J. Ryan Stinnett
758e867208
Merge pull request #2389 from christopherjmedlin/consistent-flair-ordering
Consistent flair ordering.
2019-01-02 16:35:50 -06:00
J. Ryan Stinnett
402f58225f Show in-room reminder when key backup creating device unverified
If the current device hasn't verified the device that created the account's
current key backup version, then the current device is won't use the key backup.
This change adjusts an existing in-room reminder to do the right thing for this
case by allowing the user to verify the device that created the key backup.

Fixes vector-im/riot-web#7902.
2019-01-02 15:36:40 -06:00
Christopher Medlin
384320e29f Consistently order flairs based on room configuration. 2018-12-24 14:46:36 -08:00
Travis Ralston
f5ff580e35 Add some logging for riot-web#7838
See https://github.com/vector-im/riot-web/issues/7838
2018-12-21 14:51:05 -07:00
J. Ryan Stinnett
097d6fdede Update room filter focus handling to avoid infinite loop
The classes on the search box input were changed without updating the focusing
loop in the room filter which used one of these classes as a boundary condition.
This led to a case that could loop forever.

Regressed by #2267.
Fixes vector-im/riot-web#7926.
2018-12-20 23:09:28 +00:00
Travis Ralston
2e1e536d5c
Merge pull request #2347 from matrix-org/travis/custom-status
Custom status messages
2018-12-19 11:11:15 -07:00
J. Ryan Stinnett
fd94dc686f Handle errors when fetching commits for changelog
It's possible to get errors when fetching commits (for example, if the rate
limit is exceeded), so this will handle the error case and display it instead of
an infinite spinner.

Signed-off-by: J. Ryan Stinnett <jryans@gmail.com>
2018-12-19 18:10:21 +00:00
Travis Ralston
a1347add95 Merge branch 'develop' into travis/custom-status 2018-12-19 10:33:34 -07:00
Travis Ralston
45f05092ed Add a comment to describe why we're not using the property we should be 2018-12-19 10:21:43 -07:00
Bruno Windels
b3a12867a6 remove extra blank lines 2018-12-19 12:56:08 +01:00
Bruno Windels
b826b0d998 Add redesign feedback dialog + button in tag panel 2018-12-19 12:27:05 +01:00
David Baker
1ca91370f3
Merge pull request #2372 from matrix-org/dbkr/electron_sandbox
React-sdk changes to support sandboxed electron
2018-12-19 09:48:05 +00:00
Travis Ralston
04c9fff6ce Add a feature flag for custom status messages 2018-12-18 15:11:08 -07:00
Travis Ralston
d20a934642 Appease the linter 2018-12-18 11:04:16 -07:00
David Baker
3a8b9ab850 unused import 2018-12-18 17:57:23 +00:00
Travis Ralston
ef60a34180 Clean up and follow code style 2018-12-18 10:53:37 -07:00
David Baker
37b3644fd9 React-sdk changes to support sandboxed electron 2018-12-18 17:40:30 +00:00
Bruno Windels
1d43712a8f Merge branch 'experimental' into nadonomy/icons 2018-12-18 18:22:24 +01:00
Nad Chishtie
074c96cd3e First pass of normalising icons. 2018-12-18 16:48:20 +00:00
Bruno Windels
8df139bfab
Merge pull request #2369 from matrix-org/bwindels/rhsdefaultsize
Redesign: give right panel default width
2018-12-18 16:20:51 +00:00
Bruno Windels
23f24a987c
Merge pull request #2367 from matrix-org/bwindels/selectqueryonclick
Redesign: select search query on focus
2018-12-18 16:19:24 +00:00
Bruno Windels
5e2ee883aa
Merge pull request #2366 from matrix-org/bwindels/fixrhscollapse
Redesign: fix remaining right panel collapse issues.
2018-12-18 16:19:02 +00:00
Bruno Windels
fd5ad56886 give right panel default width of 350px 2018-12-18 17:12:32 +01:00
Bruno Windels
dd6dd7a4fc select search query on focus 2018-12-18 16:37:37 +01:00
Bruno Windels
4b788fcb7e fix lint 2018-12-18 16:29:31 +01:00
Bruno Windels
c0ab74d5f1 reemit view_right_panel_phase when showing rhs, so right tab is active 2018-12-18 16:27:17 +01:00
Travis Ralston
66f5d0612c
Merge pull request #2363 from matrix-org/travis/fix-group-view
Make sure to grab the InlineSpinner object
2018-12-18 07:57:46 -07:00
Bruno Windels
92c598dbcf remove group header expand right panel button 2018-12-18 15:38:15 +01:00
Bruno Windels
dafc54c434 don't highlight room header buttons when right panel is collapsed 2018-12-18 15:36:54 +01:00
Bruno Windels
a10f0a3267 don't open right panel when switching room again
a view_right_panel_phase is dispatched by RoomHeaderButtons
on view_room, which was triggering this to show the panel again.

Check the fromHeader flag just like when hiding the panel so
only room header buttons can hide or show the right panel
2018-12-18 15:33:45 +01:00
Bruno Windels
2cb817ae26 remove dead code (collapse button was removed) 2018-12-18 15:33:28 +01:00
Bruno Windels
acba36c975
Merge pull request #2364 from matrix-org/bwindels/fixresizepersistenceandscrollindicator-again
Redesign: left panel fixes
2018-12-18 14:23:38 +00:00
Bruno Windels
31c13adaba cleanup: do initialization in componentDidMount instead of render 2018-12-18 15:10:57 +01:00
Bruno Windels
2cda6d8f35 fix empty comment line 2018-12-18 15:06:56 +01:00
Bruno Windels
279521cab4 add id to props for completeness 2018-12-18 14:31:38 +01:00
Bruno Windels
e67d9c6d4f forward checkOverflow to AutoHideScrollbar, fix over/underflow detection
the overflow/underflow events are not always reliable in nooverlay
browsers (FF), so forward the checkOverflow call we need anyway
for the scroll indicator gradients to see if we need to do the
margin trick for the on-hover scrollbar we use in nooverlay browsers.

this fixes on hover jumping in a subroomlist
2018-12-18 14:29:42 +01:00
Bruno Windels
cdcb3c1a55 check overflow and restore sizes in more places inside RoomList:
check overflow on mount
restore size on query change (in case a sublist appeared)
check overflow when updating rooms

avoid duplicating for restoring size and checking overflow
2018-12-18 14:26:33 +01: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
b359a2edee call header clicked callback after rerendering, so resizer has DOM nodes 2018-12-18 10:56:00 +01:00
Bruno Windels
0676c1b8ad
Merge pull request #2361 from matrix-org/bwindels/collapserhs
Redesign: allow to hide the right panel when clicking already active button & persist
2018-12-18 09:46:30 +00:00
Bruno Windels
f6727c5724 add collapsedRhs to propTypes 2018-12-18 10:34:26 +01:00
Travis Ralston
c6da61f1de
Make sure to grab the InlineSpinner object 2018-12-17 18:47:33 -07:00
Willem Mulder
d304c35b38 Allow widgets to autoplay media
This is useful for e.g. webcam streams in widgets.

Signed-off-by: Willem Mulder <willemmaster@hotmail.com>
2018-12-18 00:43:37 +00:00
Bruno Windels
b7c353d0a6 persist and load collapsed rhs globally 2018-12-17 15:56:35 +01:00
Bruno Windels
f744374d1d read collapsedRhs from props when mounting main split 2018-12-17 15:56:17 +01:00
Bruno Windels
a734fb9d35 dont set initial phase, show panel when collapsed 2018-12-17 15:55:26 +01:00
Bruno Windels
f7b6e9c6fc name collapsedRhs consistently everywhere 2018-12-17 15:30:39 +01:00
Bruno Windels
65f9bc9754 remove expand button in room header 2018-12-17 15:23:46 +01:00
Bruno Windels
bbafd8c2d3 toggle right panel when clicking already active header button 2018-12-17 15:22:02 +01:00
Bruno Windels
242b0c21ac make avatar 24px and tile height 32px 2018-12-17 14:03:48 +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
7b0766a303 Apply 50% opacity to the checkmark when there is no status 2018-12-14 13:49:35 -07:00
Travis Ralston
7efd82f713 Disable password managers on the status form 2018-12-14 13:44:40 -07:00
Bruno Windels
3ea0fd1a2f fix overflow indicators not being updated when searching 2018-12-14 17:06:51 +01:00
Bruno Windels
e4d2b6f2b7 fix resize handles being too thick on edge (hopefully) 2018-12-14 17:06:00 +01:00
Bruno Windels
7b6c863377 fix lint 2018-12-14 15:53:52 +01:00
Travis Ralston
7ed9559ad7
Merge pull request #2351 from matrix-org/travis/fix-username-requirements
Standardize errors about localpart structure
2018-12-13 22:09:49 -07:00
Travis Ralston
8592e76e12 Standardize errors about localpart structure
Fixes https://github.com/vector-im/riot-web/issues/5833

This also includes changing some Jira references that aren't searchable anymore, and a thing to replace the spinner on the SetMxidDialog as per https://github.com/vector-im/riot-web/issues/5833#issuecomment-445323177
2018-12-13 16:45:30 -07:00
Travis Ralston
49769a405d Fix translation error on notification icon
Introduced by https://github.com/matrix-org/matrix-react-sdk/pull/2336
2018-12-13 16:12:56 -07: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
Travis Ralston
63658e0441 Add a missing null check 2018-12-13 14:29:12 -07:00
Travis Ralston
96300b45b7
Merge pull request #2336 from matrix-org/travis/notif-button
Show the number of unread notifications above the bell on the right
2018-12-13 08:16:48 -07:00
Bruno Windels
1810c17d24 remove trace, add comment, ... 2018-12-13 13:02:35 +01:00
Bruno Windels
0ffd77762a make menu option look somewhat better 2018-12-13 13:02:35 +01:00
Bruno Windels
c8243357ea disable editor history/persistence when in grid to avoid pesky bug 2018-12-13 13:01:59 +01:00
Bruno Windels
f593bff3c3 show right panel tabs inside panel instead of room header in grid mode 2018-12-13 13:01:59 +01:00
Bruno Windels
74becf71d8 add right panel back to grid view 2018-12-13 13:01:59 +01:00
Bruno Windels
44200a6f78 only listen and dispatch to room-local dispatcher in room view, composer 2018-12-13 13:01:59 +01:00
Bruno Windels
9a24249fb5 emit focus_composer after updating the active room in GroupGridView
also change the active room from there so RoomView is oblivious
to grid view stuff
2018-12-13 13:01:59 +01:00
Bruno Windels
fbfbefe4fe also forward actions from room dispatcher to global one
avoiding replay if the action would be forwarded back to
the same room dispatcher

also some fixing & renaming in OpenRoomsStore
2018-12-13 13:01:59 +01:00
Bruno Windels
36decaf70b also give empty tiles a key 2018-12-13 13:01:59 +01:00
Bruno Windels
cf0f75cad4 allow changing active room in grid by clicking it 2018-12-13 13:01:59 +01:00
Bruno Windels
b68df0420b fix errors when trying to switch room 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
Bruno Windels
d4748c91df add first draft of RoomGridView 2018-12-13 13:01:59 +01:00
Bruno Windels
720bc11aa4 avoid using roomviewstore for detecting selected room 2018-12-13 13:01:59 +01:00
Bruno Windels
78d5d7ac0c correctly detected collapsed rhs 2018-12-13 13:01:59 +01:00
Bruno Windels
43efa29ef8 track active room with OpenRoomsStore 2018-12-13 12:59:18 +01:00
Bruno Windels
df8539d6bc pass the RoomViewStore down with a prop instead of global var.
this will allow to have more than 1 RoomView further on
2018-12-13 12:59:18 +01:00
Travis Ralston
f2649f7807 Use the now-prefixed js-sdk status message API
See 08b3dfa3b5
2018-12-12 23:07:03 -07:00
Travis Ralston
b0b7932f5f Move status context menu to its own component
This fixes a lot of the state bugs such as buttons not updating, etc. 

This commit also adds the border around the avatar to indicate a status is set.
2018-12-12 22:26:39 -07:00
Travis Ralston
99f5b9e39b Misc cleanup of whitespace 2018-12-12 18:18:43 -07:00
Travis Ralston
a91963e5ee Replace the avatar next to the composer with a status entry menu
The checkmark might change, and there appears to be some state tracking mishaps that need to be worked out.

Part of https://github.com/vector-im/riot-web/issues/1528
2018-12-12 18:03:30 -07:00
Travis Ralston
dd382ecb05 Fix a bug with determining 1:1 rooms
We shouldn't consider rooms where people have left or been banned
2018-12-12 13:20:26 -07:00
Travis Ralston
cd9ea2b2d7 Fix alignment of avatars and status messages
also introduce the status message to the MemberInfo pane

Part of https://github.com/vector-im/riot-web/issues/1528
2018-12-12 12:57:48 -07:00
Travis Ralston
bc9c08b11a
Merge pull request #2338 from matrix-org/travis/validate-emails
Check to make sure email addresses look roughly valid before inviting them to rooms
2018-12-12 08:12:15 -07:00
Bruno Windels
9f5a0250bf
Merge pull request #2345 from matrix-org/bwindels/jumptofirstunread-rebased
Redesign: restyle jump to first unread message & rework read marker logic (rebased)
2018-12-12 10:13:51 +00:00
Bruno Windels
f49e8b0bda reduce in-view timeout to 1s 2018-12-12 11:13:09 +01:00
Travis Ralston
ce7969e3d5 Display custom status messages in the UI
Part of https://github.com/vector-im/riot-web/issues/1528
2018-12-11 21:40:11 -07:00
J. Ryan Stinnett
04c30181c6 Expose hidden notification rules in UI
Adds UI control for 3 hidden notification rules:

* Messages containing @room
* Encrypted one-to-one messages
* Encrypted group messages

This should help to clarify some mysterious notification behavior, as it wasn't
obvious that these rules existed.

Fixes vector-im/riot-web#7833.

Signed-off-by: J. Ryan Stinnett <jryans@gmail.com>
2018-12-12 01:41:27 +00:00
Bruno Windels
2b0c2eff1e Implement 10s in-view/30s out-of-view timeout for moving RM.
Uses Timer & changed UserActivity promise based api
2018-12-11 16:19:22 +01:00
Bruno Windels
ac9902e52a apply redesign to topunreadmessagebar
with placeholder for message count
2018-12-11 15:43:00 +01:00
Bruno Windels
a31dacc4bc allow logout dialog to be cancelled (can't see why not?) 2018-12-11 12:43:56 +01:00
Bruno Windels
fc57109c54 use logout dialog in topleft menu instead of dispatching logout 2018-12-11 12:43:17 +01:00
Bruno Windels
48cfd08ea6 move logout dialog to own component so we can reuse it 2018-12-11 12:42:52 +01:00
Bruno Windels
84044fca1c fix lint 2018-12-11 11:09:11 +01:00
Bruno Windels
02367742bc bring back autocomplete attribute 2018-12-11 10:54:36 +01:00
Bruno Windels
3040f2d2e2 remove try/catch as the error is already prevented inside resize 2018-12-11 10:51:14 +01:00
Richard van der Hoff
010a31dbd1 Merge remote-tracking branch 'origin/develop' into rav/no_preserve_hs_url 2018-12-10 16:47:54 +00:00
Bruno Windels
93767fa5f1 fix invite button layout 2018-12-10 17:46:22 +01:00
Bruno Windels
ccf65d5f3c remove background from group room list header button 2018-12-10 17:45:47 +01:00
Bruno Windels
397e44b7ba fix query field width 2018-12-10 17:45:30 +01:00
Bruno Windels
dbe5449d0c bring invite buttons back in group member / room list
also put filter field on bottom
2018-12-10 17:21:55 +01:00
Bruno Windels
f4e61b2bf1 fixup for roomsublist fix 2018-12-10 16:53:04 +01:00
Bruno Windels
fb4a441341 fix navigation to room info in group view 2018-12-10 16:52:45 +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
Bruno Windels
f987a50fef make add community icon themeable and give it background so it's visible 2018-12-10 15:43:57 +01:00
Bruno Windels
fe76287035 style communities button, make it visible again 2018-12-10 15:43:48 +01:00
Bruno Windels
10a989a003 make icon optional in action button
as we'll draw the icon with css
2018-12-10 15:33:35 +01:00
Travis Ralston
a969237dc0 Disable the submit button while .well-known is underway
To give the user a little feedback about something happening. This definitely needs to be improved in the future though.
2018-12-07 15:37:20 -07: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
0a32570026 Merge branch 'develop' into travis/well-known-improvements 2018-12-07 15:08:19 -07:00
Travis Ralston
d062e2c2f4 Check to make sure email addresses look roughly valid before inviting them to room
Fixes https://github.com/vector-im/riot-web/issues/6854
2018-12-07 15:03:58 -07:00
J. Ryan Stinnett
a92d2902c4 Add an in-room reminder to set up key recovery
This adds an in-room reminder above the message timeline to set up Secure
Message Recovery so that your keys will be backed up. If you try to ignore it,
an additional dialog is shown to confirm.

Fixes vector-im/riot-web#7783.

Signed-off-by: J. Ryan Stinnett <jryans@gmail.com>
2018-12-07 14:13:02 -06:00
Travis Ralston
95d15b7863 Fix tinting of notification icon and use a more reliable notification source
The js-sdk's placement of the notification change was unreliable and could cause stuck notifications. The new location (piggybacking the Notifier) is a lot more reliable.

The tinting has been changed fairly invasively in order to support the changing of the `fill` attribute. What was happening before was the `fill` property would happily get set to the forced color value, but when it came time to reset it it wouldn't be part of the colors array and fail the check, therefore never being changed back. By using a second field we can ensure we are checking the not-forced value where possible, falling back to the potentially forced value if needed. 

In addition to fixing which color the Tinter was checking against, something noticed during development is that `this.colors` might not always be a set of hex color codes. This is problematic when the attribute we're looking to replace is a rgb color code but we're only looking at `keyHex` - the value won't be reset. It appears as though this happens when people use custom tinting in places as `this.colors` often gets set to the rgb values throughout the file. To fix it, we just check against `keyHex` and `keyRgb`.
2018-12-06 22:26:51 -07:00
Travis Ralston
173669b375 Show the number of unread notifications above the bell on the right
Fixes https://github.com/vector-im/riot-web/issues/3383

This achieves the result by counting up the number of highlights across all rooms and setting that as the badge above the icon. If there are no highlights, nothing is displayed. The red highlight on the bell is done by abusing how the Tinter works: because it has access to the properties of the SVG that we'd need to override it, we give it a collection of colors it should use instead of the theme/tint it is trying to apply. This results in the Tinter using our warning color instead of whatever it was going to apply.

The RightPanel now listens for events to update the count too, otherwise when the user receives a ping they'd have to switch rooms to see the change.
2018-12-06 16:18:02 -07:00
Travis Ralston
ca1313099f Show the IncomingCallBox if the call is for the RoomSubList
Fixes https://github.com/vector-im/riot-web/issues/4369

Previously the RoomSubList would filter its list of rooms to verify that the incoming call belongs to it. This causes problems when the sub list is being told some rooms don't exist (ie: the list is filtered). It is trivial for the RoomList to instead track which RoomSubList (tag) it should be handing the call off to so we do that instead now. The RoomSubList trusts that the caller has already filtered it and will render the IncomingCallBox if it has an incoming call.
2018-12-06 11:45:58 -07:00
Travis Ralston
31b7a0ddcb
Merge pull request #2259 from matrix-org/t3chguy/account_deactivation_preferences
Remove temporary account_deactivation_preferences
2018-12-06 10:45:04 -07:00
Travis Ralston
0f348a7c78 Merge branch 'develop' into travis/invite-errors 2018-12-05 11:25:45 -07:00
David Baker
dad8e6a261
Merge pull request #2326 from jryans/group-users-error
Allow group summary to load when /users fails
2018-12-05 10:56:32 +00: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
J. Ryan Stinnett
22ff76e6b7 Add error to UI when group member list fails to load
Signed-off-by: J. Ryan Stinnett <jryans@gmail.com>
2018-12-04 18:46:15 -06:00
J. Ryan Stinnett
5fc25fd6ba Only mark group as failed to load for summary
Currently, any error in the `GroupStore`s several requests can cause the whole
`GroupView` component to hide and be mark the group as failed to load.

Since it is known that group members may fail to load in some cases, let's only
show failed to load for the whole group when the summary fails.

This also strengthens the `GroupView` test by ensuring we wait for multiple
updates for checking results.

Signed-off-by: J. Ryan Stinnett <jryans@gmail.com>
2018-12-04 18:32:16 -06:00
Bruno Windels
541b0011ac actually persist right panel width on resize 2018-12-03 10:43:35 +01:00
Bruno Windels
13491e797d persists & load collapsed room sub lists 2018-12-03 10:39:31 +01:00
Will Hunt
2b077b4f5d Merge remote-tracking branch 'upstream/develop' into hs/upload-limits 2018-12-01 16:24:43 +00:00
Bruno Windels
0212df922a dont render who is typing tile when no room available (like in notif panel) 2018-11-30 13:59:00 +01:00
Travis Ralston
987ad0b0db Check if users exist before inviting them and communicate errors
Fixes https://github.com/vector-im/riot-web/issues/3283
Fixes https://github.com/vector-im/riot-web/issues/3968
Fixes https://github.com/vector-im/riot-web/issues/4308
Fixes https://github.com/vector-im/riot-web/issues/1597
Fixes https://github.com/vector-im/riot-web/issues/6790

This does 3 things:
* Makes the `MultiInviter` check for a user profile before attempting an invite. This is to prove the user exists.
* Use the `MultiInviter` everywhere to avoid duplicating the logic. Although a couple places only invite one user, it is still worthwhile.
* Communicate errors from the `MultiInviter` to the user in all cases. This is done through dialogs, where some existed previously but were not invoked.

Specifically to the 403 error not working: What was happening was the `MultiInviter` loop was setting the `fatal` flag, but that didn't resolve the promise it stored. This caused a promise to always be open, therefore never hitting a dialog.
2018-11-29 15:05:53 -07:00
Travis Ralston
e3f2e69087
Merge pull request #2227 from matrix-org/travis/well-known
Support .well-known discovery
2018-11-27 13:51:44 -07:00
Travis Ralston
015af7d771 Use sensible logging 2018-11-27 13:41:34 -07:00
Bruno Windels
8f4292399b
Merge pull request #2297 from matrix-org/bwindels/roomlistsizingimprovements
Redesign: improve room sub list sizing & persist sizes
2018-11-27 13:40:48 +00:00
Bruno Windels
887defda9c temp solution to make room settings usable
make mx_fadable not do anything anymore, and make room settings
full size.

Room settings haven't been designed yet, so all of this will
have a full pass when we have a go at it.
2018-11-26 17:58:51 +01:00
Bruno Windels
0c7d51d70d persist room sub list sizes 2018-11-26 16:46:57 +01:00
Bruno Windels
f7a37be6dd support associating an id with a resize item/handle 2018-11-26 16:46:27 +01:00
Bruno Windels
35fc5307b6 remove unneeded params (as we're going to change their meaning) 2018-11-26 16:45:55 +01:00
Bruno Windels
8e77a6716c don't set initial size based on item count anymore 2018-11-26 14:49:30 +01:00
Bruno Windels
8929ff9b5e use room resize classes 2018-11-26 14:42:01 +01:00
Bruno Windels
67e0030ccd Merge branch 'develop' into experimental 2018-11-26 13:10:29 +01:00
David Baker
4f8c4f1c6e Make create key backup dialog async
So we can add zxcvbn to it without inflating the main bundle size
2018-11-23 10:55:18 +00:00
David Baker
d443d6173d Forgot to enable continue button on download 2018-11-22 19:06:58 +00:00
Travis Ralston
5600a9d02a Validate the identity server 2018-11-21 14:14:08 -07:00
Travis Ralston
4cfefe4c3c Introduce an onUsernameBlur and fix hostname parsing 2018-11-21 14:13:56 -07:00
Travis Ralston
6f0f930e0a Merge branch 'develop' into travis/well-known 2018-11-21 13:30:57 -07:00
David Baker
d714176fcd
Merge pull request #2169 from matrix-org/dbkr/e2e_backups
Online incremental megolm backups (v2)
2018-11-21 18:37:43 +00:00
David Baker
b529c98095
Merge pull request #2284 from matrix-org/dbkr/e2e_backups_download_recovery_key
Add recovery key download button
2018-11-21 18:25:33 +00:00
David Baker
3828798099 lint 2018-11-21 18:17:26 +00:00
David Baker
40ef2e0cf4 another missed translation 2018-11-21 18:08:44 +00:00
David Baker
1c06d781ae Missed translation 2018-11-21 18:06:37 +00:00
David Baker
08e2ba8c6c Don't allow enter to submit if field invalid 2018-11-21 18:02:58 +00:00
David Baker
985966f8be Update async dialog interface to use promises
Hopefully makes the syntax a bit nicer. Also uses ES6 async import
rather than require.ensure which is now deprecated. Also also
displays an error if the component fails to load rather than falling
over in a heap, which is nice.
2018-11-21 16:56:44 +00:00
David Baker
ed5d87e797 Add recovery key download button 2018-11-21 13:57:31 +00:00
David Baker
6fe2c9c2bb Merge branch 'dbkr/e2e_backups' into dbkr/e2e_backups_passphrase 2018-11-20 18:10:57 +00:00
David Baker
8ccaf53d20 Merge remote-tracking branch 'origin/develop' into dbkr/e2e_backups 2018-11-20 18:08:39 +00:00
David Baker
63a7ff5273 lint 2018-11-20 16:20:31 +00:00
David Baker
132408cf02 Add e2e backup recovery with passphrase 2018-11-20 16:16:24 +00:00
David Baker
fbab8ceeef Passphrase based key backups
Add passphrase support to backup creation stage
2018-11-20 13:11:58 +00:00
Richard van der Hoff
c61031d3e1
Merge pull request #2279 from matrix-org/rav/sso_login_type
Support for m.login.sso
2018-11-19 14:14:21 +01:00
Travis Ralston
7dd610b41e
Merge pull request #2235 from MaxwellKepler/develop
Added badge to non-autoplay GIFs
2018-11-16 13:25:40 -07:00
Travis Ralston
2408eeeb3d
Merge pull request #2277 from matrix-org/travis/terms-auth-improvements
Improve terms auth flow
2018-11-16 12:36:17 -07:00
Travis Ralston
7df003ef74 Be more positive in property naming 2018-11-16 12:15:44 -07:00