Commit Graph

228 Commits (db17321777ee7975cec10362cee11329482fd568)

Author SHA1 Message Date
Travis Ralston eac50aa800 Remove old user and room settings
This takes out the old user and room settings, replacing the paths with the new dialog editions. The labs setting has been removed in order to support this change.

In addition to removing the old components outright, some older components which were only used by the settings pages have been removed. The exception is the ColorSettings component as it has a high chance of sticking around in the future.

Styles that were shared by the settings components have been broken out to dedicated sections, making it easier to remove the old styles entirely.

Some stability testing of the app has been performed to ensure the app still works, however given the scope of this change there is a possibility of some broken functionality.
2019-02-04 13:40:21 -07:00
Travis Ralston a1e3887a74
Merge branch 'experimental' into travis/settings/positive 2019-01-28 08:25:40 -07:00
Travis Ralston e1bc1eee43 Appease the linter 2019-01-25 09:30:13 -07:00
Travis Ralston d136c33a87 Invert setting values in a common place 2019-01-25 09:04:56 -07:00
Travis Ralston cb6f415a05 Be more positive with setting labels
Fixes https://github.com/vector-im/riot-web/issues/6435

This is done through an on-the-fly inverter for the settings. All the settings changed are boolean values, so this should be more than safe to just let happen throughout the SettingsStore. Typically a change like this would be done in the individual handlers (similar to how setting names are remapped to different properties or even different storage locations on the fly), however doing that for this many settings would be a huge nightmare and involve changing *all* the layers. By putting a global "invert this" flag on the setting, we can get away with doing the inversion as the last possible step during a read (or write).

To speed up calculations of the default values, we cache all the inverted values into a lookup table similar to how we represent the defaults already. Without this, the DefaultHandler would need to iterate the setting list and invert the values, slowing things down over time. We invert the value up front so we can keep the generic inversion logic without checking the level ahead of time. It is fully intended that a default value represents the new setting name, not the legacy name.

This commit also includes a debugger for settings because it was hard to visualize what the SettingsStore was doing during development. Some added information is included as it may be helpful for when someone has a problem with their settings and we need to debug it. Typically the debugger would be run in conjunction with `mxSendRageshake`: `mxSettingsStore.debugSetting('showJoinLeaves') && mxSendRageshake('Debugging showJoinLeaves setting')`.
2019-01-24 20:57:40 -07:00
David Baker 6a90625d36 Merge remote-tracking branch 'origin/experimental' into dbkr/sas 2019-01-23 17:32:18 +00:00
Travis Ralston 5ef9015133 Add labs flag for tabbed settings 2019-01-22 10:28:33 -07:00
David Baker 970880737e Merge remote-tracking branch 'origin/experimental' into dbkr/sas 2019-01-18 18:33:11 +00:00
Travis Ralston 7f6ce69c3e Merge branch 'experimental' into travis/develop2 2019-01-17 16:03:45 -07:00
Bruno Windels 8c30d05eb8 Revert "Merge pull request #2348 from matrix-org/bwindels/roomgridview-experimental"
This reverts commit ece5cb1fcc, reversing
changes made to 64a3d2521c.
2019-01-17 10:29:37 +01:00
David Baker 55889d5491 Change wording of 'invite anyway' setting
https://github.com/vector-im/riot-web/issues/7922
2019-01-16 15:07:30 +00:00
David Baker 1d2538a7bc First working version of SAS 2019-01-15 18:08:13 +00:00
J. Ryan Stinnett 632bbde598 Remove usused setting value from CustomStatusController 2019-01-15 10:54:29 -06:00
J. Ryan Stinnett c76b273fae Update RoomTiles on custom status change 2019-01-15 10:54:29 -06:00
J. Ryan Stinnett e08c70b820 Prune unsupported setting RoomSubList.showEmpty
The code reading this setting was previously removed in #2229.
2019-01-15 10:54:29 -06:00
Travis Ralston 177d9f245a
Merge pull request #2441 from matrix-org/develop
Merge develop -> experimental
2019-01-14 14:45:20 -07:00
Travis Ralston a05c0f9214 Rephrase everything to be "invite anyways" rather than "retry"
Also handle profile errors better
2019-01-11 15:46:03 -07:00
Travis Ralston 5333114d7b Give a route for retrying invites for users which may not exist
Fixes https://github.com/vector-im/riot-web/issues/7922

This supports the current style of errors (M_NOT_FOUND) as well as the errors presented by MSC1797: https://github.com/matrix-org/matrix-doc/pull/1797
2019-01-10 21:43:21 -07:00
Erik Johnston cbf9ff6aee Merge branch 'experimental' of github.com:matrix-org/matrix-react-sdk into erikj/state_counters 2019-01-10 16:56:47 +00:00
Bruno Windels c2f6fc381c add feature flag for grid view 2019-01-07 16:13:35 +01:00
Erik Johnston 4c204e88be Add feature flag for counters 2019-01-07 13:52:13 +00: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
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
Travis Ralston 04c9fff6ce Add a feature flag for custom status messages 2018-12-18 15:11:08 -07:00
Travis Ralston c706135c6e
Force use of dharma theme 2018-12-16 12:49:41 -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
Bruno Windels 67e0030ccd Merge branch 'develop' into experimental 2018-11-26 13:10:29 +01:00
David Baker 8ccaf53d20 Merge remote-tracking branch 'origin/develop' into dbkr/e2e_backups 2018-11-20 18:08:39 +00:00
Bruno Windels c19b593f5c Merge branch 'develop' into experimental 2018-11-06 15:28:20 +01:00
Travis Ralston 57b99893e5
Merge pull request #1936 from turt2live/travis/pinned-room-list
Add options to pin unread/mentioned rooms to the top of the room list
2018-11-01 08:04:12 -06:00
Bruno Windels ba83166661 Merge branch 'develop' into experimental 2018-10-31 14:54:22 +01:00
David Baker 8ac62f8c12 Merge remote-tracking branch 'origin/develop' into dbkr/e2e_backups 2018-10-29 16:20:45 +00:00
Aaron Raimist 49ce4ef117
eslint --fix src/
Signed-off-by: Aaron Raimist <aaron@raim.ist>
2018-10-26 22:50:38 -05:00
Bruno Windels 2c039483c6 Merge branch 'develop' into experimental 2018-10-26 15:33:39 +02:00
Travis Ralston 9cdb527163
Merge branch 'develop' into travis/pinned-room-list 2018-10-25 10:57:08 -06:00
David Baker b59b8b7fca Merge remote-tracking branch 'origin/develop' into dbkr/e2e_backups 2018-10-25 17:42:46 +01:00
Will Hunt a5ae599dcb Add show developer tools option 2018-10-24 18:15:25 +01:00
Bruno Windels 7d0b8083b6 hardcode to to dharma to avoid weird mix 2018-10-22 16:33:46 +02:00
Travis Ralston 103ed71eb5 Merge branch 'develop' into travis/pinned-room-list 2018-10-12 14:09:52 -06:00
Bruno Windels 6ed0777c96 turn it on! 2018-10-11 15:55:21 +02: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
Bruno Windels 7dc92fe917 Avoid clearing e2e encryption keys, also avoid warning 2018-08-13 17:24:27 +02:00
Bruno Windels 08f322753d explain exception 2018-08-13 16:53:16 +02:00
Bruno Windels 3e9d1342e8 fix lint 2018-08-13 16:51:37 +02:00
Bruno Windels 94c424d3bb translations 2018-08-13 11:24:32 +02:00
Bruno Windels 2f9aaeca46 undo whitespace change 2018-08-13 11:17:04 +02:00
Bruno Windels 09ad138306 remove unused imports 2018-08-13 11:16:29 +02:00
Bruno Windels 28292c3388 implement PR feedback, move LL dialog to UserSettings 2018-08-13 11:14:30 +02:00
Bruno Windels 3731431e59 use LL controller in setting 2018-08-09 18:41:41 +02:00
Bruno Windels 028f09e5d1 lazy loading settings controller to show dialog and export e2e keys 2018-08-09 18:39:55 +02:00
Bruno Windels 308a6b419e allow a setting controller to validate and revert a change (asynchronously) 2018-08-09 16:56:02 +02:00
Bruno Windels af07d73432 hide lazy loading behind feature flag 2018-07-25 16:10:49 +02:00
David Baker cfa7d0f11d Take jitsi conf calling out of labs 2018-07-24 19:06:19 +01:00
Michael Telatynski 37a8e7f2e2
add setting to throw new RoomSubList hide behaviour behind an opt-in
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2018-06-30 17:07:28 +01:00
David Baker 553111b6e2
Merge pull request #2001 from matrix-org/t3chguy/default_url_previews_off_e2ee
default to not showing url previews in e2ee rooms.
2018-06-25 11:50:14 +01:00
Michael Telatynski d1600bdacf
fix event type which room-account settings were read from
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2018-06-22 19:17:31 +01:00
Michael Telatynski acbc84a69c
switch to another settings key for e2e url previews to protect on change
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2018-06-22 18:44:54 +01:00
David Baker 6252f5b818 Merge remote-tracking branch 'origin/develop' into dbkr/jitsi_makewidget 2018-06-22 11:31:54 +01:00
David Baker e67dae704a Take replies out of labs! 2018-06-20 09:57:11 +01:00
David Baker 8cf17a66e5 Very basic Jitsi integration
Replaces the conference calling by adding a Jitsi widget. No support
for continuing the call on room change currently, so hidden behind
a feature flag. Existing behaviour is preserved by default.
2018-06-15 15:12:32 +01:00
David Baker 9567ffcb9f Remove tag panel feature flag
We forgot to remove this when taking tagpanel out of labs, so now
this flag just does nothing.
2018-06-15 11:56:44 +01:00
Michael Telatynski 2454540bc0
Merge branch 'develop' into t3chguy/audio_output 2018-06-14 11:03:59 +01:00
Travis Ralston 52cdf60954 Add options to pin unread/mentioned rooms to the top of the room list
Fixes https://github.com/vector-im/riot-web/issues/6604
Fixes https://github.com/vector-im/riot-web/issues/732
Fixes https://github.com/vector-im/riot-web/issues/1104

Signed-off-by: Travis Ralston <travpc@gmail.com>
2018-05-26 20:29:35 -06:00
Travis Ralston 752605429c Persist pinned message open-ness between room switches
Addresses part of https://github.com/vector-im/riot-web/issues/5405

Signed-off-by: Travis Ralston <travpc@gmail.com>
2018-05-26 19:58:12 -06:00
Michael Telatynski 6636fa32f6
Allow selecting audio output for WebRTC Audio/Video calls
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2018-05-26 17:22:23 +01:00
Luke Barnard aa4bbbc3db Remove cookie bar setting from UserSettings 2018-05-16 15:20:38 +01:00
Luke Barnard ac1cd384e7 Implement opt-in analytics with cookie bar 2018-05-16 15:20:38 +01:00
Travis Ralston 9e11720191 Add setting to enable widget screenshots (if widgets declare support)
Fixes the remainder of https://github.com/vector-im/riot-web/issues/6708

Signed-off-by: Travis Ralston <travpc@gmail.com>
2018-05-12 14:30:59 -06:00
Luke Barnard e10e659457 Take feature_sticker_messagse out of labs 2018-05-09 14:59:35 +01:00
Eric Newport d42fa9d17a Hide inline encryption icons except when hovering over a message
Closes https://github.com/vector-im/riot-web/issues/2882

This is a redo of https://github.com/matrix-org/matrix-react-sdk/pull/1707 (see associated discussion there and here: https://github.com/vector-im/riot-web/pull/5988)

I tried several times to resolve the conflicts correctly, but could not. Thus, fresh PR.
2018-04-22 22:30:37 -04:00
Travis Ralston fe2cbc584d Merge branch 'develop' into travis/remove-presence 2018-04-11 15:17:28 -06:00
Luke Barnard 0306c365cc Fix to prevent guests from seeing features 2018-04-06 11:03:17 +01:00
Richard Lewis b109c9304c Put stickers behind labs flag. 2018-04-02 22:24:46 +01:00
Luke Barnard 27c71f15b9 Add setting to disable TagPanel 2018-02-28 18:16:01 +00:00
Michael Telatynski b7204e79a7 fallback after receiving settings rather than {} because its truthy
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2018-01-17 18:17:26 +00:00
Michael Telatynski 43bb8c561d add comment
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2018-01-17 18:10:19 +00:00
Michael Telatynski b90a98b5c1 don't pass back {} when we have no `org.matrix.room.color_scheme`
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2018-01-17 18:06:19 +00:00
Michael Telatynski 1bc9d344ae
Merge branch 'develop' of github.com:matrix-org/matrix-react-sdk into t3chguy/nvl/rich_quoting
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

# Conflicts:
#	src/components/views/messages/TextualBody.js
2018-01-10 11:54:58 +00:00
Travis Ralston 99d3045b4f Also remove the setting
Signed-off-by: Travis Ralston <travpc@gmail.com>
2017-12-25 14:33:46 -07:00
Travis Ralston 2815c576c1 Ignore the default value when calculating if notifications are enabled
This is to make the "Enable desktop notifications" checkbox accurately reflect the user's preference. The device-level setting is still respected. 

Signed-off-by: Travis Ralston <travpc@gmail.com>
2017-12-25 13:29:30 -07:00
Michael Telatynski 9603b21199
s/Quote/Reply/ and ES6 tweaks
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2017-12-17 20:20:45 +00:00
Michael Telatynski 4666ac7c83
hide rich quoting behind flags, retaining original quoting for now
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2017-12-12 23:29:43 +00:00
Luke Barnard f708250d44 Add feature flag for Tag Panel 2017-11-29 18:00:42 +00:00
Matthew Hodgson 3e13a919ed
remove rogue debug 2017-11-16 13:09:53 +00:00
Travis Ralston fb1f20b7d4 Treat the master push rule as authoritative
Previously the push rule was ignored, leading to all kinds of interesting issues regarding notifications. This fixes those issues by giving the master push rule the authority it deserves for reasonable defaults.

Part 2 of the fix for:
* https://github.com/vector-im/riot-web/issues/5603
* https://github.com/vector-im/riot-web/issues/5606

Signed-off-by: Travis Ralston <travpc@gmail.com>
2017-11-15 22:33:23 -07:00
Travis Ralston 5976fb2eed Treat null/undefined notification settings as "not set"
Otherwise we end up lying and saying notifications are disabled, despite the push rules saying otherwise.

Part 1 of the fix for:
* https://github.com/vector-im/riot-web/issues/5603
* https://github.com/vector-im/riot-web/issues/5606

Signed-off-by: Travis Ralston <travpc@gmail.com>
2017-11-15 22:08:13 -07:00
Travis Ralston f141ee1944 Use the correct level order when getting arbitrary settings
This shouldn't currently be causing problems, but will in teh future. The bug can be exposed by having a setting where the level order is completely reversed, therefore causing LEVEL_ORDER[0] to actually be the most generic, not the most specific. Instead, we'll pull in the setting's level order and fallback to LEVEL_ORDER, therefore requesting the most specific value.

Signed-off-by: Travis Ralston <travpc@gmail.com>
2017-11-15 19:24:32 -07:00
Travis Ralston cf8ff6aed3 Validate that URL previews are explicitly enabled/disabled
Otherwise `!null` ends up being "true", therefore forcing URL previews on for everyone.

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

Signed-off-by: Travis Ralston <travpc@gmail.com>
2017-11-15 19:22:30 -07: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
Matthew Hodgson 96a3eff5d3 lint hell 2017-11-15 11:25:56 +00:00
Matthew Hodgson 84591729a8 unbreak tests 2017-11-15 11:15:49 +00:00
Travis Ralston 443bff5832 Presence feature
Signed-off-by: Travis Ralston <travpc@gmail.com>
2017-11-14 19:14:56 -07:00
Travis Ralston 63bebe9dfd Split out avatar and display name hiding
Signed-off-by: Travis Ralston <travpc@gmail.com>
2017-11-13 12:58:10 -07:00
Travis Ralston ffecb82bca Groups were released
Signed-off-by: Travis Ralston <travpc@gmail.com>
2017-11-13 12:34:30 -07: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
Travis Ralston c7d8f3931f Revert notification toolbar setting
It isn't a setting.

Signed-off-by: Travis Ralston <travpc@gmail.com>
2017-11-08 17:06:36 -07: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 f0000f7400 Update documentation
Signed-off-by: Travis Ralston <travpc@gmail.com>
2017-11-05 14:33:40 -07:00
Travis Ralston e31c89d360 Make the controller work for notifications
Signed-off-by: Travis Ralston <travpc@gmail.com>
2017-11-04 22:28:35 -07:00
Travis Ralston 7ce4316cc8 Initial support for notification settings
Signed-off-by: Travis Ralston <travpc@gmail.com>
2017-11-04 21:47:18 -07:00
Travis Ralston 8351ec7e73 Local echo on all setting levels
Signed-off-by: Travis Ralston <travpc@gmail.com>
2017-11-04 20:32:00 -07:00
Travis Ralston b75be41f94 Fix split-brain for blacklistUnverifiedDevices
Signed-off-by: Travis Ralston <travpc@gmail.com>
2017-11-04 19:52:06 -07:00
Travis Ralston cb17c0a379 Migrate blacklistUnverifiedDevicesPerRoom
This currently causes a split-brain scenario for the application due to the priority of each level. Granular settings assumes a simple override, however the crypto setting wants per room to be overriden with the global setting, regardless of the room setting. Some additional comments are needed on the intended behaviour.

Signed-off-by: Travis Ralston <travpc@gmail.com>
2017-11-04 19:15:55 -07:00
Travis Ralston c7eee36990 Fix lanugage detection
Signed-off-by: Travis Ralston <travpc@gmail.com>
2017-11-04 16:38:26 -06:00
Travis Ralston 4f1ad974fc Delay URL preview saving until the save button is pressed
Signed-off-by: Travis Ralston <travpc@gmail.com>
2017-11-04 16:32:13 -06:00
Travis Ralston 358298e4ee Support room color in settings
Signed-off-by: Travis Ralston <travpc@gmail.com>
2017-11-04 16:10:25 -06:00
Travis Ralston bb5f7bed85 Check the correct event type for the room
Signed-off-by: Travis Ralston <travpc@gmail.com>
2017-11-04 15:48:24 -06:00
Travis Ralston a8169a682c Throw errors if the setting isn't known
Signed-off-by: Travis Ralston <travpc@gmail.com>
2017-11-04 15:46:15 -06:00
Travis Ralston 257e1aabb8 Improve documentation of settings
Signed-off-by: Travis Ralston <travpc@gmail.com>
2017-11-04 15:44:01 -06:00
Travis Ralston 8282534f87 Add SettingsLevel enum; Move settings to own file.
Signed-off-by: Travis Ralston <travpc@gmail.com>
2017-11-03 23:19:45 -06:00
Travis Ralston 6f8523081b Some documentation
Far from complete, and probably needs a bit of work, but it's a start.

Signed-off-by: Travis Ralston <travpc@gmail.com>
2017-10-30 21:09:24 -06:00
Travis Ralston 3efb0fdeeb Support default theme at config level
Signed-off-by: Travis Ralston <travpc@gmail.com>
2017-10-30 19:53:36 -06:00
Travis Ralston 9c846e4dd9 Fix URL preview options
Signed-off-by: Travis Ralston <travpc@gmail.com>
2017-10-30 19:49:44 -06:00
Travis Ralston 72517f95bb Don't explode if the SdkConfig isn't available
This can happen prior to logging in, for some reason.

Signed-off-by: Travis Ralston <travpc@gmail.com>
2017-10-29 22:53:59 -06:00
Travis Ralston 786bd87fec Support URL previews (with bugs)
Known issues at this point:
* The room-level setting accepts the current user's default, which is wrong
* The checkboxes on RoomSettings are not independent
* The checkboxes in RoomSettings need some layout fixes

Signed-off-by: Travis Ralston <travpc@gmail.com>
2017-10-29 21:48:29 -06:00
Travis Ralston 9fdc1be7bd Make getLevelAt() return more generic responses
Signed-off-by: Travis Ralston <travpc@gmail.com>
2017-10-29 20:44:00 -06:00
Travis Ralston b5d5c81f32 Add a new component to back various settings
Signed-off-by: Travis Ralston <travpc@gmail.com>
2017-10-29 20:43:27 -06:00
Travis Ralston 52f227cb3b Drop the idea of "config" being automatically supported
Signed-off-by: Travis Ralston <travpc@gmail.com>
2017-10-29 17:08:39 -06: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
Travis Ralston b3d17a7b51 Support legacy settings on the device
Signed-off-by: Travis Ralston <travpc@gmail.com>
2017-10-29 16:08:45 -06:00
Travis Ralston e8acb0e102 Use getValueAt()
Signed-off-by: Travis Ralston <travpc@gmail.com>
2017-10-29 16:02:51 -06:00
Travis Ralston ae10a11ac4 Convert synced settings to granular settings
Signed-off-by: Travis Ralston <travpc@gmail.com>
2017-10-29 01:43:52 -06:00
Travis Ralston bf815f4be9 Support labs features
Signed-off-by: Travis Ralston <travpc@gmail.com>
2017-10-28 20:21:50 -06:00
Travis Ralston 7dda5e9196 Appease the linter round 1
Signed-off-by: Travis Ralston <travpc@gmail.com>
2017-10-28 19:53:12 -06:00
Travis Ralston 23d159e21c Make reading settings synchronous
Signed-off-by: Travis Ralston <travpc@gmail.com>
2017-10-28 19:45:48 -06:00
Travis Ralston 989bdcf5fb Rebuild SettingsStore to be better supported
This does away with the room- and account-style settings, and just replaces them with `supportedLevels`. The handlers have also been moved out to be in better support of the other options, like SdkConfig and per-room-per-device.

Signed-off-by: Travis Ralston <travpc@gmail.com>
2017-10-28 19:13:06 -06:00