Commit graph

6014 commits

Author SHA1 Message Date
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
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
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