Merge remote-tracking branch 'upstream/develop' into feature_confetti#14676

This commit is contained in:
Steffen Kolmer 2020-10-19 13:15:33 +02:00
commit c86964cd5e
478 changed files with 21997 additions and 13673 deletions

View file

@ -32,6 +32,9 @@ import UseSystemFontController from './controllers/UseSystemFontController';
import { SettingLevel } from "./SettingLevel";
import SettingController from "./controllers/SettingController";
import { RightPanelPhases } from "../stores/RightPanelStorePhases";
import UIFeatureController from "./controllers/UIFeatureController";
import { UIFeature } from "./UIFeature";
import { OrderedMultiController } from "./controllers/OrderedMultiController";
// These are just a bunch of helper arrays to avoid copy/pasting a bunch of times
const LEVELS_ROOM_SETTINGS = [
@ -69,6 +72,10 @@ const LEVELS_DEVICE_ONLY_SETTINGS_WITH_CONFIG = [
SettingLevel.DEVICE,
SettingLevel.CONFIG,
];
const LEVELS_UI_FEATURE = [
SettingLevel.CONFIG,
// in future we might have a .well-known level or something
];
export interface ISetting {
// Must be set to true for features. Default is 'false'.
@ -109,6 +116,15 @@ export interface ISetting {
}
export const SETTINGS: {[setting: string]: ISetting} = {
"feature_communities_v2_prototypes": {
isFeature: true,
displayName: _td(
"Communities v2 prototypes. Requires compatible homeserver. " +
"Highly experimental - use with caution.",
),
supportedLevels: LEVELS_FEATURE,
default: false,
},
"feature_new_spinner": {
isFeature: true,
displayName: _td("New spinner design"),
@ -170,6 +186,12 @@ export const SETTINGS: {[setting: string]: ISetting} = {
supportedLevels: LEVELS_FEATURE,
default: false,
},
"feature_dehydration": {
isFeature: true,
displayName: _td("Offline encrypted messaging using dehydrated devices"),
supportedLevels: LEVELS_FEATURE,
default: false,
},
"advancedRoomListLogging": {
// TODO: Remove flag before launch: https://github.com/vector-im/element-web/issues/14231
displayName: _td("Enable advanced debugging for the room list"),
@ -266,16 +288,6 @@ export const SETTINGS: {[setting: string]: ISetting} = {
displayName: _td('Autoplay GIFs and videos'),
default: false,
},
"alwaysShowEncryptionIcons": {
supportedLevels: LEVELS_ACCOUNT_SETTINGS,
displayName: _td('Always show encryption icons'),
default: true,
},
"showRoomRecoveryReminder": {
supportedLevels: LEVELS_ACCOUNT_SETTINGS,
displayName: _td('Show a reminder to enable Secure Message Recovery in encrypted rooms'),
default: true,
},
"enableSyntaxHighlightLanguageDetection": {
supportedLevels: LEVELS_ACCOUNT_SETTINGS,
displayName: _td('Enable automatic language detection for syntax highlighting'),
@ -327,6 +339,8 @@ export const SETTINGS: {[setting: string]: ISetting} = {
displayName: _td('Enable Community Filter Panel'),
default: true,
invertedSettingName: 'TagPanel.disableTagPanel',
// We force the value to true because the invertedSettingName causes it to flip
controller: new UIFeatureController(UIFeature.Communities, true),
},
"theme": {
supportedLevels: LEVELS_ACCOUNT_SETTINGS,
@ -429,6 +443,7 @@ export const SETTINGS: {[setting: string]: ISetting} = {
"room-device": _td('Never send encrypted messages to unverified sessions in this room from this session'),
},
default: false,
controller: new UIFeatureController(UIFeature.AdvancedEncryption),
},
"urlPreviewsEnabled": {
supportedLevels: LEVELS_ROOM_SETTINGS_WITH_ROOM,
@ -438,6 +453,7 @@ export const SETTINGS: {[setting: string]: ISetting} = {
"room": _td("Enable URL previews by default for participants in this room"),
},
default: true,
controller: new UIFeatureController(UIFeature.URLPreviews),
},
"urlPreviewsEnabled_e2ee": {
supportedLevels: [SettingLevel.ROOM_DEVICE, SettingLevel.ROOM_ACCOUNT],
@ -445,6 +461,7 @@ export const SETTINGS: {[setting: string]: ISetting} = {
"room-account": _td("Enable URL previews for this room (only affects you)"),
},
default: false,
controller: new UIFeatureController(UIFeature.URLPreviews),
},
"roomColor": {
supportedLevels: LEVELS_ROOM_SETTINGS_WITH_ROOM,
@ -557,7 +574,7 @@ export const SETTINGS: {[setting: string]: ISetting} = {
},
"lastRightPanelPhaseForRoom": {
supportedLevels: LEVELS_DEVICE_ONLY_SETTINGS,
default: RightPanelPhases.RoomMemberInfo,
default: RightPanelPhases.RoomSummary,
},
"lastRightPanelPhaseForGroup": {
supportedLevels: LEVELS_DEVICE_ONLY_SETTINGS,
@ -576,14 +593,21 @@ export const SETTINGS: {[setting: string]: ISetting} = {
"showCallButtonsInComposer": {
supportedLevels: LEVELS_DEVICE_ONLY_SETTINGS_WITH_CONFIG,
default: true,
controller: new UIFeatureController(UIFeature.Voip),
},
"e2ee.manuallyVerifyAllSessions": {
supportedLevels: LEVELS_DEVICE_ONLY_SETTINGS,
displayName: _td("Manually verify all remote sessions"),
default: false,
controller: new PushToMatrixClientController(
MatrixClient.prototype.setCryptoTrustCrossSignedDevices, true,
),
controller: new OrderedMultiController([
// Apply the feature controller first to ensure that the setting doesn't
// show up and can't be toggled. PushToMatrixClientController doesn't
// do any overrides anyways.
new UIFeatureController(UIFeature.AdvancedEncryption),
new PushToMatrixClientController(
MatrixClient.prototype.setCryptoTrustCrossSignedDevices, true,
),
]),
},
"ircDisplayNameWidth": {
// We specifically want to have room-device > device so that users may set a device default
@ -602,5 +626,72 @@ export const SETTINGS: {[setting: string]: ISetting} = {
supportedLevels: LEVELS_ACCOUNT_SETTINGS,
displayName: _td("Don't show chat effects"),
default: false,
"Widgets.pinned": {
supportedLevels: LEVELS_ROOM_OR_ACCOUNT,
default: {},
},
[UIFeature.AdvancedEncryption]: {
supportedLevels: LEVELS_UI_FEATURE,
default: true,
},
[UIFeature.URLPreviews]: {
supportedLevels: LEVELS_UI_FEATURE,
default: true,
},
[UIFeature.Widgets]: {
supportedLevels: LEVELS_UI_FEATURE,
default: true,
},
[UIFeature.Voip]: {
supportedLevels: LEVELS_UI_FEATURE,
default: true,
},
[UIFeature.Feedback]: {
supportedLevels: LEVELS_UI_FEATURE,
default: true,
},
[UIFeature.Registration]: {
supportedLevels: LEVELS_UI_FEATURE,
default: true,
},
[UIFeature.PasswordReset]: {
supportedLevels: LEVELS_UI_FEATURE,
default: true,
},
[UIFeature.Deactivate]: {
supportedLevels: LEVELS_UI_FEATURE,
default: true,
},
[UIFeature.ShareQRCode]: {
supportedLevels: LEVELS_UI_FEATURE,
default: true,
},
[UIFeature.ShareSocial]: {
supportedLevels: LEVELS_UI_FEATURE,
default: true,
},
[UIFeature.IdentityServer]: {
supportedLevels: LEVELS_UI_FEATURE,
default: true,
// Identity Server (Discovery) Settings make no sense if 3PIDs in general are hidden
controller: new UIFeatureController(UIFeature.ThirdPartyID),
},
[UIFeature.ThirdPartyID]: {
supportedLevels: LEVELS_UI_FEATURE,
default: true,
},
[UIFeature.Flair]: {
supportedLevels: LEVELS_UI_FEATURE,
default: true,
// Disable Flair when Communities are disabled
controller: new UIFeatureController(UIFeature.Communities),
},
[UIFeature.Communities]: {
supportedLevels: LEVELS_UI_FEATURE,
default: true,
},
[UIFeature.AdvancedSettings]: {
supportedLevels: LEVELS_UI_FEATURE,
default: true,
},
};