Compare commits

..

1 Commits

Author SHA1 Message Date
David Baker
0169bec40e Docs for the widget_domain_allowlist config option 2020-09-09 13:13:14 +01:00
55 changed files with 825 additions and 2040 deletions

View File

@@ -38,7 +38,7 @@ For the web app:
- **Browser**: Chrome, Safari, Firefox? which version?
- **OS**: Windows, macOS, Ubuntu, Arch Linux, etc?
- **URL**: develop.element.io / app.element.io / somewhere else? If a private server, what version of Element Web?
- **URL**: riot.im/develop / riot.im/app / somewhere else? If a private server, what version of riot-web?
For the desktop app:

View File

@@ -48,7 +48,7 @@ For the web app:
- **Browser**: Chrome, Safari, Firefox? which version?
- **OS**: Windows, macOS, Ubuntu, Arch Linux, etc?
- **URL**: develop.element.io / app.element.io / somewhere else? If a private server, what version of Element Web?
- **URL**: riot.im/develop / riot.im/app / somewhere else? If a private server, what version of riot-web?
For the desktop app:

View File

@@ -50,7 +50,7 @@ For the web app:
- **Browser**: Chrome, Safari, Firefox? which version?
- **OS**: Windows, macOS, Ubuntu, Arch Linux, etc?
- **URL**: develop.element.io / app.element.io / somewhere else? If a private server, what version of Element Web?
- **URL**: riot.im/develop / riot.im/app / somewhere else? If a private server, what version of riot-web?
For the desktop app:

View File

@@ -1,192 +1,3 @@
Changes in [1.7.13](https://github.com/vector-im/element-web/releases/tag/v1.7.13) (2020-11-09)
===============================================================================================
[Full Changelog](https://github.com/vector-im/element-web/compare/v1.7.13-rc.1...v1.7.13)
* Upgrade to React SDK 3.8.0 and JS SDK 9.1.0
Changes in [1.7.13-rc.1](https://github.com/vector-im/element-web/releases/tag/v1.7.13-rc.1) (2020-11-04)
=========================================================================================================
[Full Changelog](https://github.com/vector-im/element-web/compare/v1.7.12...v1.7.13-rc.1)
* Upgrade to React SDK 3.8.0-rc.1 and JS SDK 9.1.0-rc.1
* Translations update from Weblate
[\#15644](https://github.com/vector-im/element-web/pull/15644)
* Add countly experiment to develop/nightly configs
[\#15614](https://github.com/vector-im/element-web/pull/15614)
* Add documentation for new UIFeature flag regarding room history settings
[\#15592](https://github.com/vector-im/element-web/pull/15592)
* Rename Docker repo in docs
[\#15590](https://github.com/vector-im/element-web/pull/15590)
* Fix Jitsi regressions with custom themes
[\#15575](https://github.com/vector-im/element-web/pull/15575)
Changes in [1.7.12](https://github.com/vector-im/element-web/releases/tag/v1.7.12) (2020-10-28)
===============================================================================================
[Full Changelog](https://github.com/vector-im/element-web/compare/v1.7.11...v1.7.12)
* Upgrade to React SDK 3.7.1 and JS SDK 9.0.1
* [Release] Fix Jitsi regressions with custom themes
[\#15577](https://github.com/vector-im/element-web/pull/15577)
Changes in [1.7.11](https://github.com/vector-im/element-web/releases/tag/v1.7.11) (2020-10-26)
===============================================================================================
[Full Changelog](https://github.com/vector-im/element-web/compare/v1.7.11-rc.1...v1.7.11)
* Upgrade to React SDK 3.7.0 and JS SDK 9.0.0
Changes in [1.7.11-rc.1](https://github.com/vector-im/element-web/releases/tag/v1.7.11-rc.1) (2020-10-21)
=========================================================================================================
[Full Changelog](https://github.com/vector-im/element-web/compare/v1.7.10...v1.7.11-rc.1)
* Upgrade to React SDK 3.7.0-rc.2 and JS SDK 9.0.0-rc.1
* Update Weblate URL
[\#15516](https://github.com/vector-im/element-web/pull/15516)
* Translations update from Weblate
[\#15517](https://github.com/vector-im/element-web/pull/15517)
* Jitsi accept theme variable and restyle
[\#15499](https://github.com/vector-im/element-web/pull/15499)
* Skip editor confirmation of upgrades
[\#15506](https://github.com/vector-im/element-web/pull/15506)
* Adjust for new widget messaging APIs
[\#15495](https://github.com/vector-im/element-web/pull/15495)
* Use HTTPS_PROXY environment variable for downloading external_api.min…
[\#15479](https://github.com/vector-im/element-web/pull/15479)
* Document customisation points
[\#15475](https://github.com/vector-im/element-web/pull/15475)
* Don't fatally end the Jitsi widget when it's not being used as a widget
[\#15466](https://github.com/vector-im/element-web/pull/15466)
* electron-platform: Pass the user/devce id pair when initializing the event
index.
[\#15455](https://github.com/vector-im/element-web/pull/15455)
Changes in [1.7.10](https://github.com/vector-im/element-web/releases/tag/v1.7.10) (2020-10-20)
===============================================================================================
[Full Changelog](https://github.com/vector-im/element-web/compare/v1.7.9...v1.7.10)
* [Release] Adjust for new widget messaging APIs
[\#15497](https://github.com/vector-im/element-web/pull/15497)
* Upgrade to React SDK 3.6.1
Changes in [1.7.9](https://github.com/vector-im/element-web/releases/tag/v1.7.9) (2020-10-12)
=============================================================================================
[Full Changelog](https://github.com/vector-im/element-web/compare/v1.7.9-rc.1...v1.7.9)
* Upgrade to React SDK 3.6.0 and JS SDK 8.5.0
Changes in [1.7.9-rc.1](https://github.com/vector-im/element-web/releases/tag/v1.7.9-rc.1) (2020-10-07)
=======================================================================================================
[Full Changelog](https://github.com/vector-im/element-web/compare/v1.7.8...v1.7.9-rc.1)
* Upgrade to React SDK 3.6.0-rc.1 and JS SDK 8.5.0-rc.1
* Update from Weblate
[\#15406](https://github.com/vector-im/element-web/pull/15406)
* Update Jest and JSDOM
[\#15402](https://github.com/vector-im/element-web/pull/15402)
* Add support for dehydration/fallback keys
[\#15398](https://github.com/vector-im/element-web/pull/15398)
* Remove riot-bot from sample config
[\#15376](https://github.com/vector-im/element-web/pull/15376)
* Switch to using the Widget API SDK for Jitsi widgets
[\#15102](https://github.com/vector-im/element-web/pull/15102)
* Remove workbox
[\#15352](https://github.com/vector-im/element-web/pull/15352)
* Disable workbox when running in webpack dev server, not in dev mode
[\#15345](https://github.com/vector-im/element-web/pull/15345)
* Update Riot -> Element in contribute.json
[\#15326](https://github.com/vector-im/element-web/pull/15326)
* Update Riot -> Element in redeploy.py
[\#15336](https://github.com/vector-im/element-web/pull/15336)
* Update Riot -> Element in docs/feature-flags.md
[\#15325](https://github.com/vector-im/element-web/pull/15325)
* Update Riot -> Element in element.io/README.md
[\#15327](https://github.com/vector-im/element-web/pull/15327)
* Update Riot -> Element in VectorAuthFooter
[\#15328](https://github.com/vector-im/element-web/pull/15328)
* Update Riot -> Element in VectorEmbeddedPage
[\#15329](https://github.com/vector-im/element-web/pull/15329)
* Update Riot -> Element in docs/review.md
[\#15330](https://github.com/vector-im/element-web/pull/15330)
* Update Riot -> Element in welcome.html
[\#15332](https://github.com/vector-im/element-web/pull/15332)
* Update Riot -> Element in issues-burndown.pl
[\#15333](https://github.com/vector-im/element-web/pull/15333)
* Update Riot -> Element in redeploy.py
[\#15334](https://github.com/vector-im/element-web/pull/15334)
* Update Riot -> Element in index.ts
[\#15335](https://github.com/vector-im/element-web/pull/15335)
* Update Riot -> Element Web in issue templates
[\#15324](https://github.com/vector-im/element-web/pull/15324)
* Give the Jitsi widget an icon to help with discovery
[\#15316](https://github.com/vector-im/element-web/pull/15316)
* Jitsi widget wrapper updates for hangup button
[\#15219](https://github.com/vector-im/element-web/pull/15219)
* Tidy up Service Worker, only run Workbox in production
[\#15271](https://github.com/vector-im/element-web/pull/15271)
* Remove conference handler
[\#15274](https://github.com/vector-im/element-web/pull/15274)
* Rebrand the webpack pipeline for Element
[\#15266](https://github.com/vector-im/element-web/pull/15266)
* Replace dummy sw.js with pre-caching and runtime-caching workbox SW
[\#15196](https://github.com/vector-im/element-web/pull/15196)
Changes in [1.7.8](https://github.com/vector-im/element-web/releases/tag/v1.7.8) (2020-09-28)
=============================================================================================
[Full Changelog](https://github.com/vector-im/element-web/compare/v1.7.8-rc.1...v1.7.8)
* Upgrade to React SDK 3.5.0 and JS SDK 8.4.1
Changes in [1.7.8-rc.1](https://github.com/vector-im/element-web/releases/tag/v1.7.8-rc.1) (2020-09-23)
=======================================================================================================
[Full Changelog](https://github.com/vector-im/element-web/compare/v1.7.7...v1.7.8-rc.1)
* Upgrade to React SDK 3.5.0-rc.1 and JS SDK 8.4.0-rc.1
* Update from Weblate
[\#15262](https://github.com/vector-im/element-web/pull/15262)
* Upgrade sanitize-html
[\#15260](https://github.com/vector-im/element-web/pull/15260)
* Document config for preferring Secure Backup setup methods
[\#15251](https://github.com/vector-im/element-web/pull/15251)
* Add end-user documentation for UI features
[\#15190](https://github.com/vector-im/element-web/pull/15190)
* Update git checkout instructions
[\#15218](https://github.com/vector-im/element-web/pull/15218)
* If no bug_report_endpoint_url, hide rageshaking from the App
[\#15201](https://github.com/vector-im/element-web/pull/15201)
* Bump node-fetch from 2.6.0 to 2.6.1
[\#15153](https://github.com/vector-im/element-web/pull/15153)
* Remove references to Travis CI
[\#15137](https://github.com/vector-im/element-web/pull/15137)
* Fix onNewScreen to use replace when going from roomId->roomAlias
[\#15127](https://github.com/vector-im/element-web/pull/15127)
* Enable Estonian in language menu
[\#15136](https://github.com/vector-im/element-web/pull/15136)
Changes in [1.7.7](https://github.com/vector-im/element-web/releases/tag/v1.7.7) (2020-09-14)
=============================================================================================
[Full Changelog](https://github.com/vector-im/element-web/compare/v1.7.6...v1.7.7)
* Upgrade to React SDK 3.4.1
Changes in [1.7.6](https://github.com/vector-im/element-web/releases/tag/v1.7.6) (2020-09-14)
=============================================================================================
[Full Changelog](https://github.com/vector-im/element-web/compare/v1.7.6-rc.1...v1.7.6)
* Upgrade to React SDK 3.4.0 and JS SDK 8.3.0
Changes in [1.7.6-rc.1](https://github.com/vector-im/element-web/releases/tag/v1.7.6-rc.1) (2020-09-09)
=======================================================================================================
[Full Changelog](https://github.com/vector-im/element-web/compare/v1.7.5...v1.7.6-rc.1)
* Upgrade to React SDK 3.4.0-rc.1 and JS SDK 8.3.0-rc.1
* Update from Weblate
[\#15125](https://github.com/vector-im/element-web/pull/15125)
* Support usage of Jitsi widgets with "openidtoken-jwt" auth
[\#15114](https://github.com/vector-im/element-web/pull/15114)
* Fix eslint ts override tsx matching and delint
[\#15064](https://github.com/vector-im/element-web/pull/15064)
* Add testing to review guidelines
[\#15050](https://github.com/vector-im/element-web/pull/15050)
Changes in [1.7.5](https://github.com/vector-im/element-web/releases/tag/v1.7.5) (2020-09-01)
=============================================================================================
[Full Changelog](https://github.com/vector-im/element-web/compare/v1.7.5-rc.1...v1.7.5)

View File

@@ -1,4 +1,4 @@
Contributing code to Element
============================
Contributing code to Riot
=========================
Element follows the same pattern as https://github.com/matrix-org/matrix-js-sdk/blob/master/CONTRIBUTING.rst.
Riot follows the same pattern as https://github.com/matrix-org/matrix-js-sdk/blob/master/CONTRIBUTING.rst.

View File

@@ -2,7 +2,7 @@
FROM node:12 as builder
# Support custom branches of the react-sdk and js-sdk. This also helps us build
# images of element-web develop.
# images of riot-web develop.
ARG USE_CUSTOM_SDKS=false
ARG REACT_SDK_REPO="https://github.com/matrix-org/matrix-react-sdk.git"
ARG REACT_SDK_BRANCH="master"

View File

@@ -129,14 +129,14 @@ Running from Docker
The Docker image can be used to serve element-web as a web server. The easiest way to use
it is to use the prebuilt image:
```bash
docker run -p 80:80 vectorim/element-web
docker run -p 80:80 vectorim/riot-web
```
To supply your own custom `config.json`, map a volume to `/app/config.json`. For example,
if your custom config was located at `/etc/element-web/config.json` then your Docker command
would be:
```bash
docker run -p 80:80 -v /etc/element-web/config.json:/app/config.json vectorim/element-web
docker run -p 80:80 -v /etc/element-web/config.json:/app/config.json vectorim/riot-web
```
To build the image yourself:
@@ -225,6 +225,7 @@ First clone and build `matrix-js-sdk`:
``` bash
git clone https://github.com/matrix-org/matrix-js-sdk.git
pushd matrix-js-sdk
git checkout develop
yarn link
yarn install
popd
@@ -235,6 +236,7 @@ Then similarly with `matrix-react-sdk`:
```bash
git clone https://github.com/matrix-org/matrix-react-sdk.git
pushd matrix-react-sdk
git checkout develop
yarn link
yarn link matrix-js-sdk
yarn install
@@ -246,6 +248,7 @@ Finally, build and start Element itself:
```bash
git clone https://github.com/vector-im/element-web.git
cd element-web
git checkout develop
yarn link matrix-js-sdk
yarn link matrix-react-sdk
yarn install
@@ -333,7 +336,7 @@ To add a new translation, head to the [translating doc](docs/translating.md).
For a developer guide, see the [translating dev doc](docs/translating-dev.md).
[<img src="https://translate.element.io/widgets/element-web/-/multi-auto.svg" alt="translationsstatus" width="340">](https://translate.element.io/engage/element-web/?utm_source=widget)
[<img src="https://translate.riot.im/widgets/element-web/-/multi-auto.svg" alt="translationsstatus" width="340">](https://translate.riot.im/engage/element-web/?utm_source=widget)
Triaging issues
===============

View File

@@ -35,6 +35,7 @@
"matrix.org"
]
},
"welcomeUserId": "@riot-bot:matrix.org",
"piwik": {
"url": "https://piwik.riot.im/",
"whitelistedHSUrls": ["https://matrix.org"],

View File

@@ -1,13 +1,13 @@
{
"name": "Element",
"name": "Riot",
"description": "A glossy Matrix collaboration client for the web.",
"repository": {
"url": "https://github.com/vector-im/element-web",
"url": "https://github.com/vector-im/riot-web",
"license": "Apache License 2.0"
},
"bugs": {
"list": "https://github.com/vector-im/element-web/issues",
"report": "https://github.com/vector-im/element-web/issues/new/choose"
"list": "https://github.com/vector-im/riot-web/issues",
"report": "https://github.com/vector-im/riot-web/issues/new/choose"
},
"keywords": [
"chat",

View File

@@ -46,9 +46,11 @@ For a good example, see https://develop.element.io/config.json.
may be left blank to disable integrations.
1. `integrations_rest_url`: URL to the REST interface for the integrations server.
1. `integrations_widgets_urls`: list of URLs to the REST interface for the widget integrations server.
1. `widget_domain_allowlist`: list of domains to allow widgets to load from without prompting to
user for permission.
1. `bug_report_endpoint_url`: endpoint to send bug reports to (must be running a
https://github.com/matrix-org/rageshake server). Bug reports are sent when a user clicks
"Send Logs" within the application. Bug reports can be disabled/hidden by leaving the
"Send Logs" within the application. Bug reports can be disabled by leaving the
`bug_report_endpoint_url` out of your config file.
1. `roomDirectory`: config for the public room directory. This section is optional.
1. `roomDirectory.servers`: List of other homeservers' directories to include in the drop
@@ -101,15 +103,6 @@ For a good example, see https://develop.element.io/config.json.
Defaults to false (3rd party identity options are shown).
1. `default_federate`: Default option for room federation when creating a room
Defaults to true (room federation enabled).
1. `desktopBuilds`: Used to alter promotional links to the desktop app. By default
the builds are considered available and accessible from https://element.io. This
config option is typically used in the context of encouraging encrypted message
search capabilities (Seshat). All the options listed below are required if this
option is specified.
1. `available`: When false, the desktop app will not be promoted to the user.
1. `logo`: An HTTP URL to the avatar for the desktop build. Should be 24x24, ideally
an SVG.
1. `url`: An HTTP URL for where to send the user to download the desktop build.
Note that `index.html` also has an og:image meta tag that is set to an image
hosted on riot.im. This is the image used if links to your copy of Element
@@ -153,44 +146,3 @@ Desktop app configuration
=========================
See https://github.com/vector-im/riot-desktop#user-specified-configjson
UI Features
===========
Parts of the UI can be disabled using UI features. These are settings which appear
under `settingDefaults` and can only be `true` (default) or `false`. When `false`,
parts of the UI relating to that feature will be disabled regardless of the user's
preferences.
Currently, the following UI feature flags are supported:
* `UIFeature.urlPreviews` - Whether URL previews are enabled across the entire application.
* `UIFeature.feedback` - Whether prompts to supply feedback are shown.
* `UIFeature.voip` - Whether or not VoIP is shown readily to the user. When disabled,
Jitsi widgets will still work though they cannot easily be added.
* `UIFeature.widgets` - Whether or not widgets will be shown.
* `UIFeature.flair` - Whether or not community flair is shown in rooms.
* `UIFeature.communities` - Whether or not to show any UI related to communities. Implicitly
disables `UIFeature.flair` when disabled.
* `UIFeature.advancedSettings` - Whether or not sections titled "advanced" in room and
user settings are shown to the user.
* `UIFeature.shareQrCode` - Whether or not the QR code on the share room/event dialog
is shown.
* `UIFeature.shareSocial` - Whether or not the social icons on the share room/event dialog
are shown.
* `UIFeature.identityServer` - Whether or not functionality requiring an identity server
is shown. When disabled, the user will not be able to interact with the identity
server (sharing email addresses, 3PID invites, etc).
* `UIFeature.thirdPartyId` - Whether or not UI relating to third party identifiers (3PIDs)
is shown. Typically this is considered "contact information" on the homeserver, and is
not directly related to the identity server.
* `UIFeature.registration` - Whether or not the registration page is accessible. Typically
useful if accounts are managed externally.
* `UIFeature.passwordReset` - Whether or not the password reset page is accessible. Typically
useful if accounts are managed externally.
* `UIFeature.deactivate` - Whether or not the deactivate account button is accessible. Typically
useful if accounts are managed externally.
* `UIFeature.advancedEncryption` - Whether or not advanced encryption options are shown to the
user.
* `UIFeature.roomHistorySettings` - Whether or not the room history settings are shown to the user.
This should only be used if the room history visibility options are managed by the server.

View File

@@ -1,34 +0,0 @@
# Customisations
Element Web and the React SDK support "customisation points" that can be used to
easily add custom logic specific to a particular deployment of Element Web.
An example of this is the [security customisations
module](https://github.com/matrix-org/matrix-react-sdk/blob/develop/src/customisations/Security.ts).
This module in the React SDK only defines some empty functions and their types:
it does not do anything by default.
To make use of these customisation points, you will first need to fork Element
Web so that you can add your own code. Even though the default module is part of
the React SDK, you can still override it from the Element Web layer:
1. Copy the default customisation module to
`element-web/src/customisations/YourNameSecurity.ts`
2. Edit customisations points and make sure export the ones you actually want to
activate
3. Tweak the Element build process to use the customised module instead of the
default by adding this to end of the `plugins` array in `webpack.config.js`:
```js
new webpack.NormalModuleReplacementPlugin(
/src\/customisations\/Security.ts/,
path.resolve(__dirname, 'src/customisations/YourNameSecurity.ts'),
),
```
If we add more customisation modules in the future, we'll likely improve these
steps to remove the need for build changes like the above.
By isolating customisations to their own module, this approach should remove the
chance of merge conflicts when updating your fork, and thus simplify ongoing
maintenance.

View File

@@ -35,27 +35,6 @@ following on your homeserver's `/.well-known/matrix/client` config:
}
```
## Preferring setup methods
By default, Element offers users a choice of a random key or user-chosen
passphrase when setting up Secure Backup. If a homeserver admin would like to
only offer one of these, you can signal this via the
`/.well-known/matrix/client` config, for example:
```json
{
"io.element.e2ee": {
"secure_backup_setup_methods": ["passphrase"]
}
}
```
The field `secure_backup_setup_methods` is an array listing the methods the
client should display. Supported values currently include `key` and
`passphrase`. If the `secure_backup_setup_methods` field is not present or
exists but does not contain any supported methods, Element will fallback to the
default value of: `["key", "passphrase"]`.
# Compatibility
The settings above were first proposed under a `im.vector.riot.e2ee` key, which

View File

@@ -8,7 +8,7 @@ For example, flags make the following things possible:
* Extended testing of a feature via labs on develop
* Enabling features when ready instead of the first moment the code is released
* Testing a feature with a specific set of users (by enabling only on a specific
Element instance)
Riot instance)
The size of the feature controlled by a feature flag may vary widely: it could
be a large project like reactions or a smaller change to an existing algorithm.
@@ -49,7 +49,7 @@ When starting work on a feature, we should create a matching feature flag:
```js
SettingsStore.getValue("feature_cats")
```
3. Document the feature in the [labs documentation](https://github.com/vector-im/element-web/blob/develop/docs/labs.md)
3. Document the feature in the [labs documentation](https://github.com/vector-im/riot-web/blob/develop/docs/labs.md)
With these steps completed, the feature is disabled by default, but can be
enabled on develop and nightly by interested users for testing.
@@ -60,9 +60,9 @@ The following lists a few common options.
## Enabling by default on develop and nightly
Set the feature to `true` in the
[develop](https://github.com/vector-im/element-web/blob/develop/element.io/develop/config.json)
[develop](https://github.com/vector-im/riot-web/blob/develop/riot.im/develop/config.json)
and
[nightly](https://github.com/vector-im/element-desktop/blob/develop/element.io/nightly/config.json)
[nightly](https://github.com/vector-im/riot-desktop/blob/develop/riot.im/nightly/config.json)
configs:
```json
@@ -74,9 +74,9 @@ configs:
## Enabling by default on staging, app, and release
Set the feature to `true` in the
[staging / app](https://github.com/vector-im/element-web/blob/develop/element.io/app/config.json)
[staging / app](https://github.com/vector-im/riot-web/blob/develop/riot.im/app/config.json)
and
[release](https://github.com/vector-im/element-desktop/blob/develop/element.io/release/config.json)
[release](https://github.com/vector-im/riot-desktop/blob/develop/riot.im/release/config.json)
configs.
**Note:** The above will only enable the feature for https://app.element.io and official Element
@@ -90,18 +90,18 @@ Once we're confident that a feature is working well, we should remove or convert
If the feature is meant to be turned off/on by the user:
1. Remove `isFeature` from the [setting](https://github.com/matrix-org/matrix-react-sdk/blob/develop/src/settings/Settings.ts)
2. Change the `default` to `true` (if desired).
3. Remove the feature from the [labs documentation](https://github.com/vector-im/element-web/blob/develop/docs/labs.md)
3. Remove the feature from the [labs documentation](https://github.com/vector-im/riot-web/blob/develop/docs/labs.md)
4. Celebrate! 🥳
If the feature is meant to be forced on (non-configurable):
1. Remove the [setting](https://github.com/matrix-org/matrix-react-sdk/blob/develop/src/settings/Settings.ts)
2. Remove all `getValue` lines that test for the feature.
3. Remove the feature from the [labs documentation](https://github.com/vector-im/element-web/blob/develop/docs/labs.md)
3. Remove the feature from the [labs documentation](https://github.com/vector-im/riot-web/blob/develop/docs/labs.md)
4. If applicable, remove the feature state from
[develop](https://github.com/vector-im/element-web/blob/develop/element.io/develop/config.json),
[nightly](https://github.com/vector-im/element-desktop/blob/develop/element.io/nightly/config.json),
[staging / app](https://github.com/vector-im/element-web/blob/develop/element.io/app/config.json),
[develop](https://github.com/vector-im/riot-web/blob/develop/riot.im/develop/config.json),
[nightly](https://github.com/vector-im/riot-desktop/blob/develop/riot.im/nightly/config.json),
[staging / app](https://github.com/vector-im/riot-web/blob/develop/riot.im/app/config.json),
and
[release](https://github.com/vector-im/element-desktop/blob/develop/element.io/release/config.json)
[release](https://github.com/vector-im/riot-desktop/blob/develop/riot.im/release/config.json)
configs
5. Celebrate! 🥳

View File

@@ -106,8 +106,3 @@ To enable message previews for reactions in DMs, enable `feature_roomlist_previe
represent what communities v2 will look/feel like and can/will change without notice. Due to the early
stages this feature is in and the requirement for a compatible homeserver, we will not be accepting issues
or feedback for this functionality at this time.
## Dehydrated devices (`feature_dehydration`)
Allows users to receive encrypted messages by creating a device that is stored
encrypted on the server, as described in [MSC2697](https://github.com/matrix-org/matrix-doc/pull/2697).

View File

@@ -76,7 +76,7 @@ As it can be difficult to review design work from looking at just the changed
files in a PR, authors should be prepared for Design and / or Product teams to
request a link to an ad-hoc build of Element (hosted anywhere) that can be used for
the review. In the future, we [hope to automate
this](https://github.com/vector-im/element-web/issues/12624) for every PR.
this](https://github.com/vector-im/riot-web/issues/12624) for every PR.
Before starting work on a feature, it's best to ensure your plan aligns well
with our vision for Element. Please chat with the team in

View File

@@ -6,27 +6,27 @@
- Be able to understand English
- Be able to understand the language you want to translate Element into
## Step 0: Join #element-translations:matrix.org
## Step 0: Join #riotweb-translations:matrix.org
1. Come and join https://matrix.to/#/#element-translations:matrix.org
1. Come and join https://matrix.to/#/#riotweb-translations:matrix.org
2. Read scrollback and/or ask if anyone else is working on your language, and co-ordinate if needed. In general little-or-no coordination is needed though :)
## Step 1: Preparing your Weblate Profile
1. Head to https://translate.element.io and register either via Github or email
1. Head to https://translate.riot.im and register either via Github or email
2. After registering check if you got an email to verify your account and click the link (if there is none head to step 1.4)
3. Log into weblate
4. Head to https://translate.element.io/accounts/profile/ and select the languages you know and maybe another language you know too.
6. Head to https://translate.element.io/accounts/profile/#subscriptions and select Element Web as Project
4. Head to https://translate.riot.im/accounts/profile/ and select the languages you know and maybe another language you know too.
6. Head to https://translate.riot.im/accounts/profile/#subscriptions and select Element Web as Project
## How to check if your language already is being translated
Go to https://translate.element.io/projects/element-web/ and visit the 2 sub-projects.
Go to https://translate.riot.im/projects/riot-web/ and visit the 2 sub-projects.
If your language is listed go to Step 2a and if not go to Step 2b
## Step 2a: Helping on existing languages.
1. Head to one of the projects listed https://translate.element.io/projects/element-web/
1. Head to one of the projects listed https://translate.riot.im/projects/riot-web/
2. Click on the ``translate`` button on the right side of your language
3. Fill in the translations in the writeable field. You will see the original English string and the string of your second language above.
@@ -34,7 +34,7 @@ Head to the explanations under Steb 2b
## Step 2b: Adding a new language
1. Go to one of the projects listed https://translate.element.io/projects/element-web/
1. Go to one of the projects listed https://translate.riot.im/projects/riot-web/
2. Click the ``Start new translation`` button at the bottom
3. Select a language
4. Start translating like in 2a.3

View File

@@ -6,7 +6,7 @@ official element.io distribution, but these files may be useful if you want to
inspect the configuration used there.
Element Desktop uses a separate config (see
https://github.com/vector-im/element-desktop/tree/develop/element.io).
https://github.com/vector-im/riot-desktop/tree/develop/element.io).
Deployment scripts (such as app/deploy.py) are meant to be run on the web server
hosting the Element installation.

View File

@@ -18,10 +18,6 @@
"siteId": 1,
"policyUrl": "https://element.io/cookie-policy"
},
"countly": {
"url": "https://try.count.ly",
"appKey": "8abf1ee15646bc884556b82e5053857904264b66"
},
"roomDirectory": {
"servers": [
"matrix.org"

View File

@@ -1,7 +1,7 @@
{
"name": "riot-web",
"productName": "Riot",
"version": "1.7.13",
"version": "1.7.5",
"description": "A feature-rich client for Matrix.org",
"author": "New Vector Ltd.",
"repository": {
@@ -46,7 +46,7 @@
"build:bundle-stats": "webpack --progress --bail --mode production --json > webpack-stats.json",
"build:types": "tsc --emitDeclarationOnly --jsx react",
"dist": "scripts/package.sh",
"start": "concurrently --kill-others-on-fail --prefix \"{time} [{name}]\" -n reskindex,reskindex-react,res,element-js \"yarn reskindex:watch\" \"yarn reskindex:watch-react\" \"yarn start:res\" \"yarn start:js\"",
"start": "concurrently --kill-others-on-fail --prefix \"{time} [{name}]\" -n reskindex,reskindex-react,res,riot-js \"yarn reskindex:watch\" \"yarn reskindex:watch-react\" \"yarn start:res\" \"yarn start:js\"",
"start:res": "yarn build:jitsi && node scripts/copy-res.js -w",
"start:js": "webpack-dev-server --host=0.0.0.0 --output-filename=bundles/_dev_/[name].js --output-chunk-filename=bundles/_dev_/[name].js -w --progress --mode development",
"lint": "yarn lint:types && yarn lint:js && yarn lint:style",
@@ -60,14 +60,13 @@
"gfm.css": "^1.1.2",
"highlight.js": "^9.13.1",
"jsrsasign": "^9.1.5",
"matrix-js-sdk": "9.1.0",
"matrix-react-sdk": "3.8.0",
"matrix-widget-api": "^0.1.0-beta.5",
"olm": "https://packages.matrix.org/npm/olm/olm-3.2.1.tgz",
"matrix-js-sdk": "github:matrix-org/matrix-js-sdk#develop",
"matrix-react-sdk": "github:matrix-org/matrix-react-sdk#develop",
"olm": "https://packages.matrix.org/npm/olm/olm-3.1.4.tgz",
"prop-types": "^15.7.2",
"react": "^16.9.0",
"react-dom": "^16.9.0",
"sanitize-html": "github:apostrophecms/sanitize-html#3c7f93f2058f696f5359e3e58d464161647226db",
"sanitize-html": "^1.19.1",
"ua-parser-js": "^0.7.19",
"url": "^0.11.0"
},
@@ -93,7 +92,6 @@
"@types/node": "^12.12.41",
"@types/react": "16.9",
"@types/react-dom": "^16.9.4",
"@types/sanitize-html": "^1.23.3",
"autoprefixer": "^9.7.3",
"babel-eslint": "^10.0.3",
"babel-jest": "^24.9.0",
@@ -114,8 +112,8 @@
"file-loader": "^5.0.2",
"fs-extra": "^0.30.0",
"html-webpack-plugin": "^3.2.0",
"jest": "^26.5.2",
"jest-environment-jsdom-sixteen": "^1.0.3",
"jest": "^24.9.0",
"jest-environment-jsdom-fourteen": "^1.0.1",
"json-loader": "^0.5.3",
"loader-utils": "^1.2.3",
"matrix-mock-request": "^1.2.3",
@@ -139,7 +137,6 @@
"postcss-strip-inline-comments": "^0.1.5",
"rimraf": "^2.4.3",
"shell-escape": "^0.2.0",
"simple-proxy-agent": "^1.1.0",
"stylelint": "^12.0.1",
"terser-webpack-plugin": "^2.3.0",
"typescript": "^3.7.3",
@@ -148,7 +145,7 @@
"webpack-dev-server": "^3.9.0"
},
"jest": {
"testEnvironment": "jest-environment-jsdom-sixteen",
"testEnvironment": "jest-environment-jsdom-fourteen",
"testMatch": [
"<rootDir>/test/**/*-test.js"
],

View File

@@ -38,7 +38,9 @@ do
echo "Upgrading $i to $latestver..."
yarn add -E $i@$latestver
git add -u
git commit -m "Upgrade $i to $latestver"
# The `-e` flag opens the editor and gives you a chance to check
# the upgrade for correctness.
git commit -m "Upgrade $i to $latestver" -e
fi
fi
done

View File

@@ -1 +1 @@
self.addEventListener('fetch', () => {});
self.addEventListener('fetch',() => {});

View File

@@ -169,7 +169,7 @@ we don't have an account and should hide them. No account == no guest account ei
</style>
<div class="mx_Parent">
<a href="https://element.io" target="_blank" rel="noopener">
<a href="https://riot.im" target="_blank" rel="noopener">
<img src="welcome/images/logo.svg" alt="" class="mx_Logo"/>
</a>
<h1 class="mx_Header_title">_t("Welcome to Element")</h1>
@@ -185,7 +185,7 @@ we don't have an account and should hide them. No account == no guest account ei
</div>
<!-- The comments below are meant to be used by Ansible as a quick way
to strip out the marked content when desired.
See https://github.com/vector-im/element-web/issues/8622.
See https://github.com/vector-im/riot-web/issues/8622.
TODO: Strip out these comments and rely on the guest flag -->
<!-- BEGIN Ansible: Remove these lines when guest access is disabled -->
<div class="mx_ButtonRow mx_WelcomePage_guestFunctions">

View File

@@ -7,7 +7,6 @@ const fs = require("fs");
const path = require("path");
const mkdirp = require("mkdirp");
const fetch = require("node-fetch");
const ProxyAgent = require("simple-proxy-agent");
console.log("Making webapp directory");
mkdirp.sync("webapp");
@@ -15,13 +14,7 @@ mkdirp.sync("webapp");
// curl -s https://jitsi.riot.im/libs/external_api.min.js > ./webapp/jitsi_external_api.min.js
console.log("Downloading Jitsi script");
const fname = path.join("webapp", "jitsi_external_api.min.js");
const options = {};
if (process.env.HTTPS_PROXY) {
options.agent = new ProxyAgent(process.env.HTTPS_PROXY, {tunnel: true});
}
fetch("https://jitsi.riot.im/libs/external_api.min.js", options).then(res => {
fetch("https://jitsi.riot.im/libs/external_api.min.js").then(res => {
const stream = fs.createWriteStream(fname);
return new Promise((resolve, reject) => {
res.body.pipe(stream);

View File

@@ -21,7 +21,6 @@ const INCLUDE_LANGS = [
{'value': 'en_US', 'label': 'English (US)'},
{'value': 'eo', 'label': 'Esperanto'},
{'value': 'es', 'label': 'Español'},
{'value': 'et', 'label': 'Eesti'},
{'value': 'eu', 'label': 'Euskara'},
{'value': 'fi', 'label': 'Suomi'},
{'value': 'fr', 'label': 'Français'},

View File

@@ -70,6 +70,7 @@ function dodep() {
##############################
echo -en 'travis_fold:start:matrix-js-sdk\r'
echo 'Setting up matrix-js-sdk'
dodep matrix-org matrix-js-sdk
@@ -82,8 +83,11 @@ popd
yarn link matrix-js-sdk
echo -en 'travis_fold:end:matrix-js-sdk\r'
##############################
echo -en 'travis_fold:start:matrix-react-sdk\r'
echo 'Setting up matrix-react-sdk'
dodep matrix-org matrix-react-sdk
@@ -97,6 +101,8 @@ popd
yarn link matrix-react-sdk
echo -en 'travis_fold:end:matrix-react-sdk\r'
##############################
# Link the reskindex binary in place: if we used `yarn link`,

View File

@@ -18,7 +18,7 @@ my $gh = Net::GitHub->new(
login => 'ara4n', pass => read_password("github password: "),
);
$gh->set_default_user_repo('vector-im', 'element-web');
$gh->set_default_user_repo('vector-im', 'riot-web');
#my @issues = $gh->issue->repos_issues({ state => 'all', milestone => 3 });
my @issues = $gh->issue->repos_issues({ state => 'all' });

View File

@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
# auto-deploy script for https://develop.element.io
# auto-deploy script for https://riot.im/develop
#
# Listens for buildkite webhook pokes (https://buildkite.com/docs/apis/webhooks)
# When it gets one, downloads the artifact from buildkite
@@ -191,7 +191,7 @@ def deploy_tarball(artifact, build_dir):
# Download the tarball here as buildkite needs auth to do this
# we don't pgp-sign buildkite artifacts, relying on HTTPS and buildkite
# not being evil. If that's not good enough for you, don't use develop.element.io.
# not being evil. If that's not good enough for you, don't use riot.im/develop.
resp = requests.get(artifact['download_url'], stream=True, headers=req_headers())
resp.raise_for_status()
with open(artifact['filename'], 'wb') as ofp:

View File

@@ -28,7 +28,7 @@ export default class VectorEmbeddedPage extends EmbeddedPage {
// we're overriding the base component here, for Element-specific tweaks
translate(s) {
s = sanitizeHtml(_t(s));
// ugly fix for https://github.com/vector-im/element-web/issues/4243
// ugly fix for https://github.com/vector-im/riot-web/issues/4243
// eslint-disable-next-line max-len
s = s.replace(/\[matrix\]/, '<a href="https://matrix.org" target="_blank" rel="noreferrer noopener"><img width="79" height="34" alt="Matrix" style="padding-left: 1px;vertical-align: middle" src="welcome/images/matrix.svg"/></a>');
return s;

View File

@@ -24,7 +24,7 @@ const VectorAuthFooter = () => {
let links = [
{"text": "Blog", "url": "https://element.io/blog"},
{"text": "Twitter", "url": "https://twitter.com/element_hq"},
{"text": "GitHub", "url": "https://github.com/vector-im/element-web"},
{"text": "GitHub", "url": "https://github.com/vector-im/riot-web"},
];
if (brandingConfig && brandingConfig.authFooterLinks) {

View File

@@ -1 +0,0 @@
../../docs/customisations.md

View File

@@ -1,36 +1,35 @@
{
"Dismiss": "أهمِل",
"Dismiss": "تجاهل",
"Unknown device": "جهاز مجهول",
"You need to be using HTTPS to place a screen-sharing call.": "عليك استعمال ميفاق HTTPS للاتصال بمشاركة الشاشة.",
"You need to be using HTTPS to place a screen-sharing call.": "تحتاج الى استخدام الاتصال الآمن (HTTPS) للسماح بمشاركة الشاشة.",
"powered by Matrix": "مشغل بواسطة Matrix",
"Welcome to Element": "مرحبًا بك في Element",
"Decentralised, encrypted chat &amp; collaboration powered by [matrix]": "دردشة وتعاون غير مركزي معمّى، تدعمه [matrix]",
"Create Account": "أنشِئ حسابًا",
"Explore rooms": "استكشِف الغرف",
"Sign In": ِج",
"Missing indexeddb worker script!": "سكربت عامل indexeddb ناقص!",
"Invalid configuration: can only specify one of default_server_config, default_server_name, or default_hs_url.": "الضبط غير صالح: يمكنك تحديد واحدًا من الآتي فقط: default_server_config أو default_server_name أو default_hs_url.",
"Invalid configuration: no default server specified.": "الضبط غير صالح: لم تحدّد خادومًا مبدئيًا.",
"Your Element is misconfigured": "لم يُضبط تطبيق Element كما ينبغي",
"Your Element configuration contains invalid JSON. Please correct the problem and reload the page.": "يحتوي ضبط تطبيق Element على تنسيق JSON غير صالح. من فضلك صحّح المشكلة وأعِد تحميل الصفحة.",
"The message from the parser is: %(message)s": "الرسالة القادمة من المحلّل: %(message)s",
"Invalid JSON": "تنسيق JSON غير صالح",
"Unable to load config file: please refresh the page to try again.": "تعذّر تحميل ملف الضبط: من فضلك أنعِش الصفحة لمعاودة المحاولة.",
"Unexpected error preparing the app. See console for details.": "حدث عُطل غير متوقع أثناء تجهيز التطبيق. طالِع المِعراض للتفاصيل.",
"Download Completed": "اكتمل التنزيل",
"Open": "افتح",
"Open user settings": "افتح إعدادات المستخدم",
"Previous/next recently visited room or community": "الغرفة أو المجتمع التالي/السابق الذي زرته حديثًا",
"%(brand)s Desktop (%(platformName)s)": "%(brand)s لسطح المكتب (%(platformName)s)",
"Go to your browser to complete Sign In": "افتح المتصفح لإكمال الولوج",
"%(appName)s (%(browserName)s, %(osName)s)": "%(appName)s (%(browserName)s، %(osName)s)",
"Unsupported browser": "متصفح غير مدعوم",
"Your browser can't run %(brand)s": "لا يمكن لمتصفحك تشغيل %(brand)s",
"%(brand)s uses advanced browser features which aren't supported by your current browser.": "يستعمل %(brand)s ميزات متقدمة في المتصفحات لا يدعمها متصفحك الحالي.",
"Please install <chromeLink>Chrome</chromeLink>, <firefoxLink>Firefox</firefoxLink>, or <safariLink>Safari</safariLink> for the best experience.": "من فضلك ثبّت <chromeLink>كروم</chromeLink> أو <firefoxLink>فَيَرفُكس</firefoxLink> أو <safariLink>سفاري</safariLink> لأفضل تجربة.",
"You can continue using your current browser, but some or all features may not work and the look and feel of the application may be incorrect.": "يمكنك مواصل استعمال متصفحك الحالي ولكن قد لا تعمل بعض المزايا (أو كلها) وقد لا يظهر التطبيق كما ينبغي له أن يظهر.",
"I understand the risks and wish to continue": "أفهم المخاطرة وأود المواصلة",
"Go to element.io": "انتقل إلى element.io",
"Failed to start": "فشل البدء",
"Powered by Matrix": "تدعمه «ماترِكس»"
"Welcome to Element": "مرحبا بك في Element",
"Decentralised, encrypted chat &amp; collaboration powered by [matrix]": "دردشة مشفرة غير مركزية &amp;تطبيق تعاوني مدعوم بواسطة [matrix]",
"Create Account": "انشاء حساب",
"Explore rooms": "استكشف غرف المحادثات",
"Sign In": "الدخول",
"Missing indexeddb worker script!": "منفذ السكريبت الخاص ب Indexeddb غير موجود!",
"Invalid configuration: can only specify one of default_server_config, default_server_name, or default_hs_url.": "خطأ في الاعدادات: يمكنك فقط تحديد واحد فقط من: default_server_config، default_server_name، أو default_hs_url.",
"Invalid configuration: no default server specified.": "اعدادات خاطئة: لم يتم تحديد السيرفر الافتراضي.",
"Your Element is misconfigured": "تطبيقك معد بطريقة خاطئة",
"Your Element configuration contains invalid JSON. Please correct the problem and reload the page.": "اعداداتك تحتوى على بنية JSON غير صحيحة. يرجى تصحيح المشكلة واعادة تحديث الصفحة.",
"The message from the parser is: %(message)s": "الرسالة من المدقق هي:%(message)s",
"Invalid JSON": "JSON خاطئ",
"Unable to load config file: please refresh the page to try again.": "لم نستطع تحميل ملف الاعداد: يرجى تحديث الصفحة للمحاولة مرة اخرى.",
"Unexpected error preparing the app. See console for details.": "حدث خطأ غير متوقع عند تجهيز التطبيق. انظر الى منصة التحكم للمزيد من التفاصيل.",
"Download Completed": "تم اكتمال التحميل",
"Open": "فتح",
"Open user settings": "فتح اعدادات المستخدم",
"Previous/next recently visited room or community": "السابقة/اللاحقة الغرفة او المجتمع الذي تمت زيارته مؤخرا",
"%(brand)s Desktop (%(platformName)s)": "%(brand)s سطح المكتب (%(platformName)s)",
"Go to your browser to complete Sign In": "اذهب الى المتصفح لاكمال تسجيل الدخول",
"%(appName)s (%(browserName)s, %(osName)s)": "%(appName)s (%(browserName)s, %(osName)s)",
"Unsupported browser": "متصفح غير متوافق",
"Your browser can't run %(brand)s": "متصفحك لايمكنه تشغيل %(brand)s",
"%(brand)s uses advanced browser features which aren't supported by your current browser.": "%(brand)s يستخدم مزايا المتصفح المتقدمة والتي لا يدعمها متصفحك الحالي.",
"Please install <chromeLink>Chrome</chromeLink>, <firefoxLink>Firefox</firefoxLink>, or <safariLink>Safari</safariLink> for the best experience.": "يرجى تثبيت <chromeLink>Chrome</chromeLink>, <firefoxLink>Firefox</firefoxLink>, or <safariLink>Safari</safariLink> for the best experience.",
"You can continue using your current browser, but some or all features may not work and the look and feel of the application may be incorrect.": "يمكنك الاستمرار في استخدام متصفحك الحالي، ولكن بعض او كل المزايا ربما لا تعمل ويكون شكل التطبيق وشعورك تجاهه غير صحيح.",
"I understand the risks and wish to continue": "ادرك المخاطر وارغب في الاستمرار",
"Go to element.io": "اذهب الى Element.io",
"Failed to start": "فشل الاقلاع"
}

View File

@@ -31,6 +31,5 @@
"Download Completed": "Свалянето завърши",
"Open": "Отвори",
"Your browser can't run %(brand)s": "Браузърът ви не може да изпълни %(brand)s",
"%(brand)s uses advanced browser features which aren't supported by your current browser.": "%(brand)s използва модерни функции на браузъра, които не се поддържат от Вашия.",
"Powered by Matrix": "Базирано на Matrix"
"%(brand)s uses advanced browser features which aren't supported by your current browser.": "%(brand)s използва модерни функции на браузъра, които не се поддържат от Вашия."
}

View File

@@ -1,35 +1 @@
{
"Missing indexeddb worker script!": "Nedostaje indexeddb radna skripta!",
"Invalid configuration: can only specify one of default_server_config, default_server_name, or default_hs_url.": "Neispravna konfiguracija: navesti se samo može jedan od default_server_config, default_server_name ili default_hs_url.",
"Invalid configuration: no default server specified.": "Neispravna konfiguracija: nije naveden zadani server.",
"Your Element is misconfigured": "Vaš element je pogrešno konfiguriran",
"Your Element configuration contains invalid JSON. Please correct the problem and reload the page.": "Konfiguracija vašeg elementa sadrži nevažeći JSON. Ispravite problem i ponovo učitajte stranicu.",
"The message from the parser is: %(message)s": "Poruka parsera je: %(message)s",
"Invalid JSON": "Nevažeći JSON",
"Unable to load config file: please refresh the page to try again.": "Nije moguće učitati konfiguracijsku datoteku: osvježite stranicu i pokušajte ponovo.",
"Unexpected error preparing the app. See console for details.": "Neočekivana greška prilikom pripreme aplikacije. Pogledajte konzolu za detalje.",
"Download Completed": "Preuzimanje završeno",
"Open": "Otvori",
"Dismiss": "Odbaci",
"Open user settings": "Otvori korisničke postavke",
"Previous/next recently visited room or community": "Prethodna / sljedeća nedavno posjećena soba ili zajednica",
"%(brand)s Desktop (%(platformName)s)": "%(brand)s Radna povrsina (%(platformName)s)",
"Go to your browser to complete Sign In": "Idite na svoj pretraživač da biste dovršili prijavu",
"Unknown device": "Nepoznat uređaj",
"%(appName)s (%(browserName)s, %(osName)s)": "%(appName)s (%(browserName)s, %(osName)s)",
"You need to be using HTTPS to place a screen-sharing call.": "Morate koristiti HTTPS za upućivanje poziva za dijeljenje ekrana.",
"Powered by Matrix": "Pokretano uz Matrix",
"Unsupported browser": "Nepodržani pretraživač",
"Your browser can't run %(brand)s": "Vaš pretraživač ne može pokretati %(brand)s",
"%(brand)s uses advanced browser features which aren't supported by your current browser.": "%(brand)s koristi napredne funkcije pretraživača koje vaš trenutni pretraživač ne podržava.",
"Please install <chromeLink>Chrome</chromeLink>, <firefoxLink>Firefox</firefoxLink>, or <safariLink>Safari</safariLink> for the best experience.": "Molimo instalirajte <chromeLink>Chrome</chromeLink>, <firefoxLink>Firefox</firefoxLink> ili <safariLink>Safari</safariLink> za najbolje iskustvo.",
"You can continue using your current browser, but some or all features may not work and the look and feel of the application may be incorrect.": "Možete nastaviti koristiti svoj trenutni pretraživač, ali neke ili sve funkcije možda neće raditi, a izgled i dojam aplikacije mogu biti neispravani.",
"I understand the risks and wish to continue": "Razumijem rizike i želim nastaviti",
"Go to element.io": "Idite na element.io",
"Failed to start": "Pokretanje nije uspjelo",
"Welcome to Element": "Dobrodošli u Element",
"Decentralised, encrypted chat &amp; collaboration powered by [matrix]": "Decentralizirani, šifrirani razgovor &amp; suradnja pokrenuta [matrix]",
"Sign In": "Prijavite se",
"Create Account": "Otvori račun",
"Explore rooms": "Istražite sobe"
}
{}

View File

@@ -10,26 +10,5 @@
"Sign In": "Inicia la sessió",
"Invalid configuration: no default server specified.": "Configuració no vàlida: no s'ha especificat cap servidor per defecte.",
"Invalid JSON": "JSON no vàlid",
"Go to your browser to complete Sign In": "Aneu al vostre navegador per completar l'inici de sessió",
"Invalid configuration: can only specify one of default_server_config, default_server_name, or default_hs_url.": "Configuració incorrecta: només podeu especificar una de les opcions default_server_config, default_server_name, o default_hs_url.",
"Your Element is misconfigured": "El vostre Element està mal configurat",
"Your Element configuration contains invalid JSON. Please correct the problem and reload the page.": "El vostre Element conté un JSON incorrecte. Si us plau arregleu el problema i recarregueu la pàgina.",
"The message from the parser is: %(message)s": "El missatge de l'analitzador és: %(message)s",
"Unable to load config file: please refresh the page to try again.": "No he pogut carregar l'arxiu de configuració: si us plau recarregueu la pàgina per provar-ho de nou.",
"Unexpected error preparing the app. See console for details.": "Error inesperat preparant l'app. Vegeu la consola pels detalls.",
"Download Completed": "Descàrrega completada",
"Open": "Obre",
"Open user settings": "Obre configuració d'usuari",
"Previous/next recently visited room or community": "Anterior/Següent sala o comunitat visitada recentment",
"%(brand)s Desktop (%(platformName)s)": "%(brand)s d'escriptori (%(platformName)s)",
"%(appName)s (%(browserName)s, %(osName)s)": "%(appName)s (%(browserName)s, %(osName)s)",
"Powered by Matrix": "En funcionament gràcies a Matrix",
"Unsupported browser": "Navegador no suportat",
"Your browser can't run %(brand)s": "El vostre navegador no pot executar %(brand)s",
"%(brand)s uses advanced browser features which aren't supported by your current browser.": "%(brand)s usa característiques avançades del navegador que el vostre navegador no suporta.",
"Please install <chromeLink>Chrome</chromeLink>, <firefoxLink>Firefox</firefoxLink>, or <safariLink>Safari</safariLink> for the best experience.": "Si us plau instal·leu<chromeLink>Chrome</chromeLink>, <firefoxLink>Firefox</firefoxLink>, o <safariLink>Safari</safariLink> per una millor experiència.",
"You can continue using your current browser, but some or all features may not work and the look and feel of the application may be incorrect.": "Podeu continuar usant el vostre navegador actual, però algunes o totes les característiques podrien no funcionar i l'aspepte de l'aplicació podria mostrar errors.",
"I understand the risks and wish to continue": "Entenc els riscos i voldria continuar",
"Go to element.io": "Vés a element.io",
"Failed to start": "Ha fallat en iniciar-se"
"Go to your browser to complete Sign In": "Aneu al vostre navegador per completar l'inici de sessió"
}

View File

@@ -15,7 +15,7 @@
"Invalid JSON": "Ungültiges JSON",
"Go to your browser to complete Sign In": "Gehe zu deinem Browser, um die Anmeldung abzuschließen",
"Open user settings": "Öffne Nutzer-Einstellungen",
"Unable to load config file: please refresh the page to try again.": "Konfigurationsdatei kann nicht geladen werden: Bitte aktualisiere die Seite, um es erneut zu versuchen.",
"Unable to load config file: please refresh the page to try again.": "Konfigurationsdatei kann nicht geladen werden: Bitte aktualisieren Sie die Seite, um es erneut zu versuchen.",
"Missing indexeddb worker script!": "Fehlendes indexeddb Worker-Skript!",
"Previous/next recently visited room or community": "Vorheriger/nächster kürzlich besuchter Raum oder Community",
"Unsupported browser": "Nicht unterstützter Browser",
@@ -32,5 +32,5 @@
"Open": "Öffnen",
"%(brand)s uses advanced browser features which aren't supported by your current browser.": "%(brand)s verwendet erweiterte Browserfunktionen, die von Ihrem aktuellen Browser nicht unterstützt werden.",
"Your browser can't run %(brand)s": "Dein Browser kann %(brand)s nicht ausführen",
"Powered by Matrix": "Betrieben mit Matrix"
"Powered by Matrix": "Betrieben von Matrix"
}

View File

@@ -10,27 +10,7 @@
"The message from the parser is: %(message)s": "Το μήνυμα από τον αναλυτή είναι: %(message)s",
"Invalid JSON": "Μη έγκυρο JSON",
"Unexpected error preparing the app. See console for details.": "Απρόοπτο σφάλμα κατά την προετοιμασία της εφαρμογής. Δείτε το τερματικό για λεπτομέρειες.",
"Invalid configuration: can only specify one of default_server_config, default_server_name, or default_hs_url.": "Μη έγκυρη ρύθμιση: δυνατότητα ορισμού μόνο ένα από τα default_server_config, default_server_name, ή default_hs_url.",
"Invalid configuration: can only specify one of default_server_config, default_server_name, or default_hs_url.": "Μη έγκυρη ρύθμιση παραμέτρων: δυνατότητα ορισμού μόνο ένα από τα default_server_config, default_server_name, ή default_hs_url.",
"Invalid configuration: no default server specified.": "Μη έγκυρη ρύθμιση παραμέτρων: δεν έχει οριστεί προκαθορισμένος διακομιστής.",
"Explore rooms": "Εξερευνήστε δωμάτια",
"Open": "Άνοιγμα",
"Go to your browser to complete Sign In": "Μεταβείτε στο πρόγραμμα περιήγησής σας για να ολοκληρώσετε τη σύνδεση",
"Powered by Matrix": "Με την υποστήριξη του Matrix",
"Please install <chromeLink>Chrome</chromeLink>, <firefoxLink>Firefox</firefoxLink>, or <safariLink>Safari</safariLink> for the best experience.": "Παρακαλούμε εγκαταστήστε <chromeLink>Chrome</chromeLink>, <firefoxLink>Firefox</firefoxLink>, ή <safariLink>Safari</safariLink> για καλύτερη εμπειρία χρήσης.",
"Your Element is misconfigured": "Το Element σας δεν εχει ρυθμιστεί σωστά",
"Your Element configuration contains invalid JSON. Please correct the problem and reload the page.": "Η ρύθμιση του Element περιέχει μη έγκυρο JSON. Διορθώστε το πρόβλημα και φορτώστε ξανά τη σελίδα.",
"Unable to load config file: please refresh the page to try again.": "Δεν είναι δυνατή η φόρτωση του αρχείου config: ανανεώστε τη σελίδα για να δοκιμάσετε ξανά.",
"Download Completed": "Η λήψη ολοκληρώθηκε",
"Open user settings": "Ανοίξτε τις ρυθμίσεις χρήστη",
"Previous/next recently visited room or community": "Προηγούμενο / επόμενο δωμάτιο ή κοινότητα που επισκεφτήκατε πρόσφατα",
"Unsupported browser": "Μη υποστηριζόμενο πρόγραμμα περιήγησης",
"Your browser can't run %(brand)s": "Το πρόγραμμα περιήγησής σας δεν μπορεί να εκτελέσει %(brand)s",
"%(brand)s uses advanced browser features which aren't supported by your current browser.": "%(brand)s χρησιμοποιεί προηγμένες δυνατότητες προγράμματος περιήγησης που δεν υποστηρίζονται από το τρέχον πρόγραμμα περιήγησής σας.",
"You can continue using your current browser, but some or all features may not work and the look and feel of the application may be incorrect.": "Μπορείτε να συνεχίσετε να χρησιμοποιείτε το τρέχον πρόγραμμα περιήγησής σας, αλλά ορισμένες ή όλες οι λειτουργίες ενδέχεται να μην λειτουργούν και η εμφάνιση και η αίσθηση της εφαρμογής ενδέχεται να είναι λανθασμένη.",
"I understand the risks and wish to continue": "Κατανοώ τους κινδύνους και επιθυμώ να συνεχίσω",
"Go to element.io": "Πήγαινε στο element.io",
"Failed to start": "Αποτυχία έναρξης",
"%(appName)s (%(browserName)s, %(osName)s)": "%(appName)s (%(browserName)s, %(osName)s)",
"%(brand)s Desktop (%(platformName)s)": "%(brand)s Desktop (%(platformName)s)",
"Missing indexeddb worker script!": "Απουσία indexeddb worker script!"
"Explore rooms": "Εξερευνήστε δωμάτια"
}

View File

@@ -4,7 +4,7 @@
"powered by Matrix": "con el poder de Matrix",
"You need to be using HTTPS to place a screen-sharing call.": "Debes usar HTTPS para hacer una llamada con pantalla compartida.",
"Welcome to Element": "Bienvenido a Element",
"Decentralised, encrypted chat &amp; collaboration powered by [matrix]": "Conversaciones cifradas y descentralizadas &amp; colaboración impulsada por [matrix]",
"Decentralised, encrypted chat &amp; collaboration powered by [matrix]": "Conversaciones cifradas y descentralizadas y colaboración con el poder de [matrix]",
"Sign In": "Iniciar sesión",
"Create Account": "Crear cuenta",
"Explore rooms": "Explorar salas",
@@ -15,10 +15,10 @@
"Invalid JSON": "JSON inválido",
"Open user settings": "Abrir opciones de usuario",
"Go to your browser to complete Sign In": "Abre tu navegador web para completar el registro",
"Missing indexeddb worker script!": "Falta el script de trabajo indexeddb!",
"Missing indexeddb worker script!": "¡Worker script “indexeddb” faltante!",
"Unable to load config file: please refresh the page to try again.": "No se ha podido cargar el archivo de configuración. Recarga la página para intentar nuevamente.",
"Previous/next recently visited room or community": "Anterior/siguiente sala o comunidad visitada recientemente",
"%(brand)s Desktop (%(platformName)s)": "%(brand)s Escritorio (%(platformName)s)",
"%(brand)s Desktop (%(platformName)s)": "%(brand)s Desktop (%(platformName)s)",
"%(appName)s (%(browserName)s, %(osName)s)": "%(appName)s (%(browserName)s, %(osName)s)",
"Unsupported browser": "Navegador no soportado",
"Please install <chromeLink>Chrome</chromeLink>, <firefoxLink>Firefox</firefoxLink>, or <safariLink>Safari</safariLink> for the best experience.": "Por favor, instale <chromeLink>Chrome</chromeLink>, <firefoxLink>Firefox</firefoxLink>, o <safariLink>Safari</safariLink> para la mejor experiencia.",
@@ -26,11 +26,10 @@
"I understand the risks and wish to continue": "Entiendo los riesgos y deseo continuar",
"Go to element.io": "Ir a element.io",
"Failed to start": "Fallo al iniciar",
"Your Element is misconfigured": "Tu elemento está mal configurado",
"Your Element is misconfigured": "Su Element está mal configurado",
"Your Element configuration contains invalid JSON. Please correct the problem and reload the page.": "Su configuración de Element contiene JSON inválido. Por favor corríjalo e inténtelo de nuevo.",
"Download Completed": "Descarga completada",
"Open": "Abrir",
"Your browser can't run %(brand)s": "Su navegador es incompatible con %(brand)s",
"%(brand)s uses advanced browser features which aren't supported by your current browser.": "%(brand)s usa funciones avanzadas que su navegador actual no soporta.",
"Powered by Matrix": "Desarrollado por Matrix"
"Your browser can't run %(brand)s": "Su navegador es compatible con %(brand)s",
"%(brand)s uses advanced browser features which aren't supported by your current browser.": "%(brand)s utiliza funciones avanzadas no soportadas por su navegador."
}

View File

@@ -31,6 +31,5 @@
"Your Element is misconfigured": "Votre Element est mal configuré",
"Your Element configuration contains invalid JSON. Please correct the problem and reload the page.": "La configuration de votre Element contient du JSON invalide. Veuillez corriger le problème et recharger la page.",
"Your browser can't run %(brand)s": "Votre navigateur ne peut pas exécuter %(brand)s",
"%(brand)s uses advanced browser features which aren't supported by your current browser.": "%(brand)s nécessite des fonctionnalités avancées que votre navigateur actuel ne supporte pas.",
"Powered by Matrix": "Propulsé par Matrix"
"%(brand)s uses advanced browser features which aren't supported by your current browser.": "%(brand)s nécessite des fonctionnalités avancées que votre navigateur actuel ne supporte pas."
}

View File

@@ -31,6 +31,5 @@
"Open": "Atidaryti",
"Your browser can't run %(brand)s": "Jūsų naršyklė negali paleisti %(brand)s",
"%(brand)s uses advanced browser features which aren't supported by your current browser.": "%(brand)s naudoja išplėstines naršyklės funkcijas, kurių jūsų dabartinė naršyklė nepalaiko.",
"Please install <chromeLink>Chrome</chromeLink>, <firefoxLink>Firefox</firefoxLink>, or <safariLink>Safari</safariLink> for the best experience.": "Geriausiam veikimui suinstaliuokite <chromeLink>Chrome</chromeLink>, <firefoxLink>Firefox</firefoxLink>, arba <safariLink>Safari</safariLink>.",
"Powered by Matrix": "Veikia su Matrix"
"Please install <chromeLink>Chrome</chromeLink>, <firefoxLink>Firefox</firefoxLink>, or <safariLink>Safari</safariLink> for the best experience.": "Geriausiam veikimui suinstaliuokite <chromeLink>Chrome</chromeLink>, <firefoxLink>Firefox</firefoxLink>, arba <safariLink>Safari</safariLink>."
}

View File

@@ -7,7 +7,7 @@
"Decentralised, encrypted chat &amp; collaboration powered by [matrix]": "Gedecentraliseerd en versleuteld chatten &amp; samenwerken dankzij [matrix]",
"Sign In": "Aanmelden",
"Create Account": "Account aanmaken",
"Explore rooms": "Kamers verkennen",
"Explore rooms": "Gesprekken ontdekken",
"Unexpected error preparing the app. See console for details.": "Er is een onverwachte fout opgetreden bij het voorbereiden van de app. Zie de console voor details.",
"Invalid configuration: can only specify one of default_server_config, default_server_name, or default_hs_url.": "Configuratiefout: kan slechts één van default_server_config, default_server_name, of default_hs_url opgeven.",
"Invalid configuration: no default server specified.": "Configuratie ongeldig: geen standaardserver opgegeven.",
@@ -22,13 +22,8 @@
"%(appName)s (%(browserName)s, %(osName)s)": "%(appName)s (%(browserName)s, %(osName)s)",
"Unsupported browser": "Niet-ondersteunde browser",
"Please install <chromeLink>Chrome</chromeLink>, <firefoxLink>Firefox</firefoxLink>, or <safariLink>Safari</safariLink> for the best experience.": "Installeer <chromeLink>Chrome</chromeLink>, <firefoxLink>Firefox</firefoxLink>, of <safariLink>Safari</safariLink> voor de beste gebruikservaring.",
"You can continue using your current browser, but some or all features may not work and the look and feel of the application may be incorrect.": "U kunt uw huidige browser blijven gebruiken, maar sommige of alle functies zouden niet kunnen werken en de uitstraling van het programma kan verkeerd zijn.",
"You can continue using your current browser, but some or all features may not work and the look and feel of the application may be incorrect.": "U kunt uw huidige browser blijven gebruiken, maar sommige of alle features zouden niet kunnen werken en de uitstraling van het programma kan verkeerd zijn.",
"I understand the risks and wish to continue": "Ik begrijp de risico's en wil verder gaan",
"Go to element.io": "Ga naar element.io",
"Failed to start": "Opstarten mislukt",
"Open": "Open",
"Your Element configuration contains invalid JSON. Please correct the problem and reload the page.": "Uw Element configuratie bevat ongeldige JSON. Gelieve het probleem te corrigeren daarna de pagina te herladen.",
"Download Completed": "Download voltooid",
"Your Element is misconfigured": "Uw Element is verkeerd geconfigureerd",
"Your browser can't run %(brand)s": "Uw browser kan %(brand)s niet draaien."
"Failed to start": "Opstarten gefaald"
}

View File

@@ -25,11 +25,5 @@
"You can continue using your current browser, but some or all features may not work and the look and feel of the application may be incorrect.": "Możesz kontynuować używanie obecnej przeglądarki, lecz niektóre lub wszystkie funkcje mogą nie działać oraz wygląd aplikacji może być niepoprawny.",
"I understand the risks and wish to continue": "Rozumiem ryzyko i chcę kontynuować",
"Go to element.io": "Przejdź do element.io",
"Failed to start": "Nie udało się wystartować",
"Download Completed": "Pobieranie Zakończone",
"Open": "Otwórz",
"Your browser can't run %(brand)s": "Twoja przeglądarka nie obsługuje %(brand)s",
"%(brand)s uses advanced browser features which aren't supported by your current browser.": "%(brand)s używa zaawansowanych funkcji przeglądarki, które nie są dostępne w twojej przeglądarce.",
"Your Element configuration contains invalid JSON. Please correct the problem and reload the page.": "Konfiguracja Elementa zawiera niepoprawny JSON. Popraw konfiguracje i odśwież stronę.",
"Your Element is misconfigured": "Element jest nieprawidłowo skonfigurowany"
"Failed to start": "Nie udało się wystartować"
}

View File

@@ -3,7 +3,7 @@
"powered by Matrix": "powered by Matrix",
"Unknown device": "Dispositivo desconhecido",
"You need to be using HTTPS to place a screen-sharing call.": "Necessita de estar a usar HTTPS para poder iniciar uma chamada com partilha de ecrã.",
"Welcome to Element": "Boas-vindas ao Element",
"Welcome to Element": "Bem-vindo ao Element",
"Decentralised, encrypted chat &amp; collaboration powered by [matrix]": "Chat descentralizado, encriptado &amp; colaborativo powered by [matrix]",
"The message from the parser is: %(message)s": "A mensagem do parser é: %(message)s",
"Invalid JSON": "JSON inválido",
@@ -13,10 +13,5 @@
"Sign In": "Iniciar sessão",
"Create Account": "Criar conta",
"Explore rooms": "Explorar rooms",
"Go to your browser to complete Sign In": "Abra o seu navegador para completar o inicio de sessão",
"Open": "Abrir",
"Download Completed": "Transferência concluída",
"Unable to load config file: please refresh the page to try again.": "Não foi possível carregar o ficheiro de configuração: atualize a página para tentar novamente.",
"Your Element configuration contains invalid JSON. Please correct the problem and reload the page.": "A configuração do Element contém um JSON inválido. Corrija o problema e recarregue a página.",
"Your Element is misconfigured": "O Element está configurado incorretamente"
"Go to your browser to complete Sign In": "Abra o seu navegador para completar o inicio de sessão"
}

View File

@@ -3,7 +3,7 @@
"powered by Matrix": "oferecido por Matrix",
"Unknown device": "Aparelho desconhecido",
"You need to be using HTTPS to place a screen-sharing call.": "Você precisa usar HTTPS para compartilhar a tela durante uma chamada.",
"Welcome to Element": "Boas-vindas ao Element",
"Welcome to Element": "Seja bem-vinda(o) a Element",
"Decentralised, encrypted chat &amp; collaboration powered by [matrix]": "Chat descentralizado, criptografado e colaborativo construído com [matrix]",
"Sign In": "Entrar",
"Create Account": "Criar Conta",

View File

@@ -29,8 +29,7 @@
"Download Completed": "Preberanie dokončené",
"Open": "Otvoriť",
"Your Element is misconfigured": "Váš Element je nesprávne nastavený",
"Your Element configuration contains invalid JSON. Please correct the problem and reload the page.": "Vaša konfigurácia Elementu obsahuje nesprávny údaj JSON. Prosím, opravte chybu a obnovte stránku.",
"Your Element configuration contains invalid JSON. Please correct the problem and reload the page.": "Vaša konfigurácia Elementu obsahuje nesprávne JSON. Prosím, opravte chybu a obnovte stránku.",
"Your browser can't run %(brand)s": "Váš prehliadač nerozbehne %(brand)s",
"%(brand)s uses advanced browser features which aren't supported by your current browser.": "%(brand)s používa pokročilé funkcie prehliadača, ktoré nie sú podporované vaším aktuálnym prehliadačom.",
"Powered by Matrix": "používa protokol Matrix"
"%(brand)s uses advanced browser features which aren't supported by your current browser.": "%(brand)s používa pokročilé funkcie prehliadača, ktoré nie sú podporované vaším aktuálnym prehliadačom."
}

View File

@@ -1,14 +0,0 @@
{
"Create Account": "Ssenflul amiḍan",
"Download Completed": "Ittusmed wagam",
"Powered by Matrix": "Ittusker s Matrix",
"Sign In": "Kcem",
"Go to your browser to complete Sign In": "Ddu ɣer umessara fad ad tsemded azemmem",
"Welcome to Element": "Azul g Element",
"Go to element.io": "Ddu ɣer element.io",
"%(appName)s (%(browserName)s, %(osName)s)": "%(appName)s (%(browserName)s, %(osName)s)",
"Unknown device": "Allal arussin",
"Open user settings": "Ṛẓem tisɣal n unessemres",
"Dismiss": "Nexxel",
"Open": "Ṛẓem"
}

View File

@@ -32,5 +32,5 @@
"Open": "打开",
"Your browser can't run %(brand)s": "浏览器无法运行%(brand)s",
"%(brand)s uses advanced browser features which aren't supported by your current browser.": "当前浏览器不支持%(brand)s调用的高级浏览器特性。",
"Powered by Matrix": " Matrix 驱动"
"Powered by Matrix": "Powered by Matrix"
}

View File

@@ -32,5 +32,5 @@
"Your Element configuration contains invalid JSON. Please correct the problem and reload the page.": "Element 的配置中包含無效JSON請更正錯誤並重新加載網頁。",
"Your browser can't run %(brand)s": "當前瀏覽器無法運行%(brand)s",
"%(brand)s uses advanced browser features which aren't supported by your current browser.": "當前瀏覽器不支持%(brand)s使用的高級特性。",
"Powered by Matrix": " Matrix 提供"
"Powered by Matrix": "威力本源 Matrix"
}

View File

@@ -26,6 +26,7 @@ window.React = React;
import url from 'url';
import * as sdk from 'matrix-react-sdk';
import PlatformPeg from 'matrix-react-sdk/src/PlatformPeg';
import * as VectorConferenceHandler from 'matrix-react-sdk/src/VectorConferenceHandler';
import {_td, newTranslatableError} from 'matrix-react-sdk/src/languageHandler';
import AutoDiscoveryUtils from 'matrix-react-sdk/src/utils/AutoDiscoveryUtils';
import {AutoDiscovery} from "matrix-js-sdk/src/autodiscovery";
@@ -33,6 +34,7 @@ import * as Lifecycle from "matrix-react-sdk/src/Lifecycle";
import type MatrixChatType from "matrix-react-sdk/src/components/structures/MatrixChat";
import {MatrixClientPeg} from 'matrix-react-sdk/src/MatrixClientPeg';
import SdkConfig from "matrix-react-sdk/src/SdkConfig";
import CallHandler from 'matrix-react-sdk/src/CallHandler';
import {parseQs, parseQsFromFragment} from './url_utils';
import VectorBasePlatform from "./platform/VectorBasePlatform";
@@ -69,16 +71,11 @@ function onHashChange(ev: HashChangeEvent) {
// This will be called whenever the SDK changes screens,
// so a web page can update the URL bar appropriately.
function onNewScreen(screen: string, replaceLast = false) {
function onNewScreen(screen: string) {
console.log("newscreen " + screen);
const hash = '#/' + screen;
lastLocationHashSet = hash;
if (replaceLast) {
window.location.replace(hash);
} else {
window.location.assign(hash);
}
window.location.hash = hash;
}
// We use this to work out what URL the SDK should
@@ -139,6 +136,7 @@ export async function loadApp(fragParams: {}) {
throw newTranslatableError(_td("Missing indexeddb worker script!"));
}
MatrixClientPeg.setIndexedDbWorkerScript(vectorIndexeddbWorkerScript);
CallHandler.setConferenceHandler(VectorConferenceHandler);
window.addEventListener('hashchange', onHashChange);
@@ -157,6 +155,7 @@ export async function loadApp(fragParams: {}) {
return <MatrixChat
onNewScreen={onNewScreen}
makeRegistrationUrl={makeRegistrationUrl}
ConferenceHandler={VectorConferenceHandler}
config={config}
realQueryParams={params}
startingFragmentQueryParams={fragParams}

View File

@@ -85,7 +85,7 @@ const supportedBrowser = checkBrowserFeatures();
// try in react but fallback to an `alert`
// We start loading stuff but don't block on it until as late as possible to allow
// the browser to use as much parallelism as it can.
// Load parallelism is based on research in https://github.com/vector-im/element-web/issues/12253
// Load parallelism is based on research in https://github.com/vector-im/riot-web/issues/12253
async function start() {
// load init.ts async so that its code is not executed immediately and we can catch any exceptions
const {
@@ -114,7 +114,7 @@ async function start() {
// don't try to redirect to the native apps if we're
// verifying a 3pid (but after we've loaded the config)
// or if the user is following a deep link
// (https://github.com/vector-im/element-web/issues/7378)
// (https://github.com/vector-im/riot-web/issues/7378)
const preventRedirect = fragparts.params.client_secret || fragparts.location.length > 0;
if (!preventRedirect) {

View File

@@ -9,7 +9,6 @@
<div id="joinButtonContainer">
<div class="joinConferenceFloating">
<div class="joinConferencePrompt">
<span class="icon"><!-- managed by CSS --></span>
<!-- TODO: i18n -->
<h2>Jitsi Video Conference</h2>
<div id="widgetActionContainer">

View File

@@ -23,19 +23,10 @@ limitations under the License.
src: url('~matrix-react-sdk/res/fonts/Nunito/Nunito-Regular.ttf') format('truetype');
}
$dark-fg: #edf3ff;
$dark-bg: #363c43;
$light-fg: #2e2f32;
$light-bg: #fff;
body {
font-family: Nunito, Arial, Helvetica, sans-serif;
background-color: $dark-bg;
color: $dark-fg;
}
body.theme-light {
background-color: $light-bg;
color: $light-fg;
background-color: #181b21;
color: #edf3ff;
}
body, html {
@@ -82,26 +73,3 @@ body, html {
background-color: #03b381;
border: 0;
}
.icon {
$icon-size: 42px;
margin-top: -$icon-size; // to visually center the form
&::before {
content: '';
background-size: contain;
background-color: $dark-fg;
mask-repeat: no-repeat;
mask-position: center;
mask-image: url("~matrix-react-sdk/res/img/element-icons/call/video-call.svg");
mask-size: $icon-size;
display: block;
width: $icon-size;
height: $icon-size;
margin: 0 auto; // center
}
}
body.theme-light .icon::before {
background-color: $light-fg;
}

View File

@@ -18,14 +18,8 @@ limitations under the License.
require("./index.scss");
import * as qs from 'querystring';
import {Capability, WidgetApi} from 'matrix-react-sdk/src/widgets/WidgetApi';
import {KJUR} from 'jsrsasign';
import {
IOpenIDCredentials,
IWidgetApiRequest,
VideoConferenceCapabilities,
WidgetApi,
} from "matrix-widget-api";
import { ElementWidgetActions } from "matrix-react-sdk/src/stores/widgets/ElementWidgetActions";
const JITSI_OPENIDTOKEN_JWT_AUTH = 'openidtoken-jwt';
@@ -44,10 +38,8 @@ let avatarUrl: string;
let userId: string;
let jitsiAuth: string;
let roomId: string;
let openIdToken: IOpenIDCredentials;
let widgetApi: WidgetApi;
let meetApi: any; // JitsiMeetExternalAPI
(async function() {
try {
@@ -67,33 +59,13 @@ let meetApi: any; // JitsiMeetExternalAPI
// out into a browser.
const parentUrl = qsParam('parentUrl', true);
const widgetId = qsParam('widgetId', true);
const theme = qsParam('theme', true);
if (theme) {
document.body.classList.add(`theme-${theme.replace(" ", "_")}`);
}
// Set this up as early as possible because Element will be hitting it almost immediately.
let readyPromise: Promise<[void, void]>;
if (parentUrl && widgetId) {
const parentOrigin = new URL(qsParam('parentUrl')).origin;
widgetApi = new WidgetApi(qsParam("widgetId"), parentOrigin);
widgetApi.requestCapabilities(VideoConferenceCapabilities);
readyPromise = Promise.all([
new Promise<void>(resolve => {
widgetApi.once(`action:${ElementWidgetActions.ClientReady}`, ev => {
ev.preventDefault();
widgetApi.transport.reply(ev.detail, {});
resolve();
});
}),
new Promise<void>(resolve => {
widgetApi.once("ready", () => resolve());
}),
widgetApi = new WidgetApi(qsParam('parentUrl'), qsParam('widgetId'), [
Capability.AlwaysOnScreen,
]);
widgetApi.start();
} else {
console.warn("No parent URL or no widget ID - assuming no widget API is available");
widgetApi.expectingExplicitReady = true;
}
// Populate the Jitsi params now
@@ -106,33 +78,39 @@ let meetApi: any; // JitsiMeetExternalAPI
roomId = qsParam('roomId', true);
if (widgetApi) {
await readyPromise;
await widgetApi.waitReady();
await widgetApi.setAlwaysOnScreen(false); // start off as detachable from the screen
// See https://github.com/matrix-org/prosody-mod-auth-matrix-user-verification
if (jitsiAuth === JITSI_OPENIDTOKEN_JWT_AUTH) {
// Request credentials, give callback to continue when received
openIdToken = await widgetApi.requestOpenIDConnectToken();
console.log("Got OpenID Connect token");
widgetApi.requestOpenIDCredentials(credentialsResponseCallback);
} else {
enableJoinButton();
}
// TODO: register widgetApi listeners for PTT controls (https://github.com/vector-im/riot-web/issues/12795)
widgetApi.on(`action:${ElementWidgetActions.HangupCall}`,
(ev: CustomEvent<IWidgetApiRequest>) => {
if (meetApi) meetApi.executeCommand('hangup');
widgetApi.transport.reply(ev.detail, {}); // ack
},
);
} else {
enableJoinButton();
}
enableJoinButton(); // always enable the button
} catch (e) {
console.error("Error setting up Jitsi widget", e);
document.getElementById("widgetActionContainer").innerText = "Failed to load Jitsi widget";
}
})();
/**
* Enable or show error depending on what the credentials response is.
*/
function credentialsResponseCallback() {
if (widgetApi.openIDCredentials) {
console.info('Successfully got OpenID credentials.');
enableJoinButton();
} else {
console.warn('OpenID credentials request was blocked by user.');
document.getElementById("widgetActionContainer").innerText = "Failed to load Jitsi widget";
}
}
function enableJoinButton() {
document.getElementById("joinButton").onclick = () => joinConference();
}
@@ -162,7 +140,7 @@ function createJWTToken() {
room: "*",
context: {
matrix: {
token: openIdToken.access_token,
token: widgetApi.openIDCredentials.accessToken,
room_id: roomId,
},
user: {
@@ -185,7 +163,7 @@ function createJWTToken() {
function joinConference() { // event handler bound in HTML
let jwt;
if (jitsiAuth === JITSI_OPENIDTOKEN_JWT_AUTH) {
if (!openIdToken?.access_token) { // eslint-disable-line camelcase
if (!widgetApi.openIDCredentials || !widgetApi.openIDCredentials.accessToken) {
// We've failing to get a token, don't try to init conference
console.warn('Expected to have an OpenID credential, cannot initialize widget.');
document.getElementById("widgetActionContainer").innerText = "Failed to load Jitsi widget";
@@ -221,7 +199,7 @@ function joinConference() { // event handler bound in HTML
jwt: jwt,
};
meetApi = new JitsiMeetExternalAPI(jitsiDomain, options);
const meetApi = new JitsiMeetExternalAPI(jitsiDomain, options);
if (displayName) meetApi.executeCommand("displayName", displayName);
if (avatarUrl) meetApi.executeCommand("avatarUrl", avatarUrl);
if (userId) meetApi.executeCommand("email", userId);
@@ -236,6 +214,5 @@ function joinConference() { // event handler bound in HTML
}
document.getElementById("jitsiContainer").innerHTML = "";
meetApi = null;
});
}

View File

@@ -140,8 +140,8 @@ class SeshatIndexManager extends BaseEventIndexManager {
return this._ipcCall('supportsEventIndexing');
}
async initEventIndex(userId: string, deviceId: string): Promise<void> {
return this._ipcCall('initEventIndex', userId, deviceId);
async initEventIndex(): Promise<void> {
return this._ipcCall('initEventIndex');
}
async addEventToIndex(ev: MatrixEvent, profile: MatrixProfile): Promise<void> {

View File

@@ -51,18 +51,12 @@ export function initRageshake() {
}
window.mxSendRageshake = function(text: string, withLogs?: boolean) {
const url = SdkConfig.get().bug_report_endpoint_url;
if (!url) {
console.error("Cannot send a rageshake - no bug_report_endpoint_url configured");
return;
}
if (withLogs === undefined) withLogs = true;
if (!text || !text.trim()) {
console.error("Cannot send a rageshake without a message - please tell us what went wrong");
return;
}
sendBugReport(url, {
sendBugReport(SdkConfig.get().bug_report_endpoint_url, {
userText: text,
sendLogs: withLogs,
progressCallback: console.log.bind(console),

2058
yarn.lock

File diff suppressed because it is too large Load Diff