Commit graph

12343 commits

Author SHA1 Message Date
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
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
2ca7477406 Fix typo in push rules comment
Signed-off-by: J. Ryan Stinnett <jryans@gmail.com>
2018-12-12 01:46:48 +00:00
J. Ryan Stinnett
bea551f52e
Merge pull request #2346 from jryans/expose-push-rules
Expose hidden notification rules in UI
2018-12-12 02:44:32 +01: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
J. Ryan Stinnett
ab6566980f Remove unused string left behind after #2259
Signed-off-by: J. Ryan Stinnett <jryans@gmail.com>
2018-12-11 19:15:08 +00:00
Bruno Windels
566e03568e
Merge pull request #2340 from matrix-org/rav/no_preserve_hs_url
Avoid preserving HS url at logout
2018-12-11 16:40:46 +00: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
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
David Baker
f578bc6f87 Merge branch 'master' into develop 2018-12-10 13:44:52 +00:00
David Baker
37c984e195 v0.14.7 2018-12-10 13:43:59 +00:00
David Baker
9d456b2d0d Prepare changelog for v0.14.7 2018-12-10 13:43:58 +00:00
David Baker
5444a61e6f Released js-sdk 2018-12-10 13:39:35 +00:00
Travis Ralston
780315817c
Merge pull request #2339 from matrix-org/travis/speed-up-room-list
Speed up room unread checks by not hitting the SettingsStore so often
2018-12-08 12:16:30 -07:00
Travis Ralston
ebdba32393
Add a comment about the SettingsStore being slow 2018-12-08 12:06:37 -07:00
Travis Ralston
f2468f562d Speed up room unread checks by not hitting the SettingsStore so often
This was noticed as a problem after `Unread.doesRoomHaveUnreadMessages` started being called a lot more frequently. Down the call stack, `shouldHideEvent` is called which used to call into the `SettingsStore` frequently, causing performance issues in many cases. The `SettingsStore` tries to be as fast as possible, however there's still code paths that make it less than desirable to use as the first condition in an AND condition. By not hitting the `SettingsStore` so often, we can shorten those code paths.

As for how much this improves things, I ran some profiling before and after this change. This was done on my massive 1200+ room account. Before it was possible to see nearly 2 seconds spent generating room lists where 20-130ms per room was spent figuring out if the room has unread messages. Afterwards, the room list was generating within ~330ms and each unread check taking 0-2ms. There's still room for improvement on generating the room list, however the significant gains here seem worth it.
2018-12-07 20:15:21 -07: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
David Baker
d40225bf55
Merge pull request #2337 from jryans/rm-outdated-skin-info
Remove outdated info about custom skins
2018-12-07 18:08:38 +00:00
David Baker
8f217dc3a4
Merge pull request #2333 from matrix-org/travis/callbox-hidden
Show the IncomingCallBox if the call is for the RoomSubList
2018-12-07 18:00:53 +00:00
Travis Ralston
482e6b57da
Merge pull request #2331 from matrix-org/travis/mto-via
Don't consider ACL'd servers as permalink candidates
2018-12-07 10:59:50 -07:00
David Baker
d7319d7e4f
Merge pull request #2330 from matrix-org/travis/fix-pinned-rooms
Fix pinning of rooms without badges
2018-12-07 17:44:36 +00:00
David Baker
6d58296fa6
Merge pull request #2329 from matrix-org/travis/sort-i18n-2
Sort translations by file name
2018-12-07 17:43:57 +00: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
J. Ryan Stinnett
0b65a1ee1a Remove outdated info about custom skins
It has been marked outdated for several years. Since it appears on the repo home
page, it makes the project feel unmaintained.

Signed-off-by: J. Ryan Stinnett <jryans@gmail.com>
2018-12-06 19:25:07 -06: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
Matthew Hodgson
245c839962
Merge pull request #2335 from jryans/react-style-guide
Update React guide in code style
2018-12-06 23:12:30 +00:00
J. Ryan Stinnett
757181c322 Update React guide in code style
This updates React guidance to prefer JS classes and adds additional info about
how to handle specific situations when using them.

Signed-off-by: J. Ryan Stinnett <jryans@gmail.com>
2018-12-06 16:34:54 -06: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
David Baker
a82b54f25a v0.14.7-rc.2 2018-12-06 12:39:24 +00:00
David Baker
c94d8d6f68 Prepare changelog for v0.14.7-rc.2 2018-12-06 12:39:23 +00:00
David Baker
c6d22cbc83
Merge pull request #2332 from matrix-org/dbkr/ship_babelrc
Ship the babelrc file to npm
2018-12-06 12:29:38 +00:00
David Baker
77c51aff2d Ship the babelrc file to npm
We ship the source files, so it probably makes sense to ship the
babelrc that tells you how to compile them.
2018-12-06 11:44:00 +00:00
David Baker
58ab9a0995 v0.14.7-rc.1 2018-12-06 11:18:37 +00:00
David Baker
e2c01445d3 Prepare changelog for v0.14.7-rc.1 2018-12-06 11:18:37 +00:00
David Baker
870825b180 js-sdk rc.1 2018-12-06 11:15:36 +00:00
Travis Ralston
45bc1f7dbd Appease the linter 2018-12-05 18:14:22 -07:00
Travis Ralston
f08a54ed1e Don't consider ACL'd servers as permalink candidates
and fix the bug where it was picking 4 servers instead of 3. This was due to `<=` instead of `<` in the `MAX_SERVER_CANDIDATES` loop. Added tests for all the things.

Fixes https://github.com/vector-im/riot-web/issues/7752
Fixes https://github.com/vector-im/riot-web/issues/7682
2018-12-05 18:00:09 -07:00
Travis Ralston
93c90896b5 Regenerate en_EN.json 2018-12-05 14:00:09 -07:00
Travis Ralston
79ad95c853 Merge remote-tracking branch 'origin/develop' into travis/sort-i18n-2 2018-12-05 13:58:18 -07:00
Travis Ralston
daa0ddd21d
Merge pull request #2306 from matrix-org/travis/cors-on-join
Suppress CORS errors in the 'failed to join room' dialog
2018-12-05 13:53:24 -07:00