Merge remote-tracking branch 'origin/develop' into jryans/rebrand-packaged-artifact

pull/15810/head
J. Ryan Stinnett 2 years ago
commit 5b86aa3a7a
  1. 2
      .eslintrc.js
  2. 2
      .github/ISSUE_TEMPLATE.md
  3. 2
      .github/ISSUE_TEMPLATE/bug_report.md
  4. 2
      .github/ISSUE_TEMPLATE/user-interface-or-usability-bug-report.md
  5. 296
      CHANGELOG.md
  6. 6
      CONTRIBUTING.rst
  7. 2
      Dockerfile
  8. 53
      README.md
  9. 9
      config.sample.json
  10. 8
      contribute.json
  11. 64
      docs/config.md
  12. 34
      docs/customisations.md
  13. 49
      docs/e2ee.md
  14. 90
      docs/feature-flags.md
  15. 17
      docs/jitsi.md
  16. 17
      docs/labs.md
  17. 4
      docs/review.md
  18. 16
      docs/translating.md
  19. 2
      element.io/README
  20. 11
      element.io/app/config.json
  21. 26
      element.io/develop/config.json
  22. 18
      package.json
  23. 4
      release.sh
  24. 2
      res/sw.js
  25. 4
      res/welcome.html
  26. 9
      scripts/build-jitsi.js
  27. 2
      scripts/copy-res.js
  28. 6
      scripts/fetch-develop.deps.sh
  29. 2
      scripts/issues-burndown.pl
  30. 4
      scripts/redeploy.py
  31. 21
      src/async-components/structures/CompatibilityView.tsx
  32. 2
      src/components/structures/VectorEmbeddedPage.js
  33. 2
      src/components/views/auth/VectorAuthFooter.js
  34. 1
      src/customisations/README.md
  35. 63
      src/i18n/strings/ar.json
  36. 3
      src/i18n/strings/bg.json
  37. 36
      src/i18n/strings/bs.json
  38. 23
      src/i18n/strings/ca.json
  39. 10
      src/i18n/strings/de_DE.json
  40. 24
      src/i18n/strings/el.json
  41. 13
      src/i18n/strings/es.json
  42. 3
      src/i18n/strings/fr.json
  43. 3
      src/i18n/strings/kab.json
  44. 3
      src/i18n/strings/lt.json
  45. 11
      src/i18n/strings/nl.json
  46. 8
      src/i18n/strings/pl.json
  47. 9
      src/i18n/strings/pt.json
  48. 16
      src/i18n/strings/pt_BR.json
  49. 5
      src/i18n/strings/sk.json
  50. 27
      src/i18n/strings/sl.json
  51. 29
      src/i18n/strings/sv.json
  52. 14
      src/i18n/strings/tzm.json
  53. 6
      src/i18n/strings/uk.json
  54. 4
      src/i18n/strings/zh_Hans.json
  55. 2
      src/i18n/strings/zh_Hant.json
  56. 13
      src/vector/app.tsx
  57. 4
      src/vector/index.ts
  58. 2
      src/vector/init.tsx
  59. 5
      src/vector/jitsi/index.html
  60. 36
      src/vector/jitsi/index.scss
  61. 144
      src/vector/jitsi/index.ts
  62. 2
      src/vector/mobile_guide/index.html
  63. 14
      src/vector/platform/ElectronPlatform.tsx
  64. 8
      src/vector/rageshakesetup.ts
  65. 2
      src/vector/static/incompatible-browser.html
  66. 5
      tsconfig.json
  67. 2085
      yarn.lock

@ -8,7 +8,7 @@ module.exports = {
"quotes": "off",
},
"overrides": [{
"files": ["src/**/*.{ts, tsx}"],
"files": ["src/**/*.{ts,tsx}"],
"extends": ["matrix-org/ts", "matrix-org/react"],
"env": {
"browser": true,

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

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

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

@ -1,3 +1,299 @@
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)
## Security notice
Element Web 1.7.5 fixes an issue where encrypted state events could break incoming call handling.
Thanks to @awesome-michael from Awesome Technologies for responsibly disclosing this via Matrix's
Security Disclosure Policy.
## All changes
* Upgrade to React SDK 3.3.0 and JS SDK 8.2.0
Changes in [1.7.5-rc.1](https://github.com/vector-im/element-web/releases/tag/v1.7.5-rc.1) (2020-08-26)
=======================================================================================================
[Full Changelog](https://github.com/vector-im/element-web/compare/v1.7.4...v1.7.5-rc.1)
* Upgrade to React SDK 3.3.0-rc.1 and JS SDK 8.2.0-rc.1
* Update from Weblate
[\#15045](https://github.com/vector-im/element-web/pull/15045)
* Document .well-known E2EE secure backup setting
[\#15003](https://github.com/vector-im/element-web/pull/15003)
* Add docs for communities v2 prototyping feature flag
[\#15013](https://github.com/vector-im/element-web/pull/15013)
* Update links in README.md to point to Element
[\#14973](https://github.com/vector-im/element-web/pull/14973)
* Make kabyle translation available
[\#15027](https://github.com/vector-im/element-web/pull/15027)
* Change Riot to Element in readme
[\#15016](https://github.com/vector-im/element-web/pull/15016)
* Update links to element in the readme
[\#15014](https://github.com/vector-im/element-web/pull/15014)
* Link to Element in F-Droid as well
[\#15002](https://github.com/vector-im/element-web/pull/15002)
* Settings v3: Update documentation and configs for new feature flag behaviour
[\#14986](https://github.com/vector-im/element-web/pull/14986)
* Update jitsi.md with Element Android details
[\#14952](https://github.com/vector-im/element-web/pull/14952)
* TypeScript: enable es2019 lib for newer definitions
[\#14983](https://github.com/vector-im/element-web/pull/14983)
* Add reaction preview labs flags to develop
[\#14979](https://github.com/vector-im/element-web/pull/14979)
* Document new labs tweaks
[\#14958](https://github.com/vector-im/element-web/pull/14958)
Changes in [1.7.4](https://github.com/vector-im/element-web/releases/tag/v1.7.4) (2020-08-17)
=============================================================================================
[Full Changelog](https://github.com/vector-im/element-web/compare/v1.7.4-rc.1...v1.7.4)
* Upgrade to React SDK 3.2.0 and JS SDK 8.1.0
Changes in [1.7.4-rc.1](https://github.com/vector-im/element-web/releases/tag/v1.7.4-rc.1) (2020-08-13)
=======================================================================================================
[Full Changelog](https://github.com/vector-im/element-web/compare/v1.7.3...v1.7.4-rc.1)
* Upgrade to React SDK 3.2.0-rc.1 and JS SDK 8.1.0-rc.1
* Update policy links to element.io
[\#14905](https://github.com/vector-im/element-web/pull/14905)
* Update from Weblate
[\#14949](https://github.com/vector-im/element-web/pull/14949)
* Try to close notification on all platforms which support it, not just
electron
[\#14939](https://github.com/vector-im/element-web/pull/14939)
* Update bug report submission URL
[\#14903](https://github.com/vector-im/element-web/pull/14903)
* Fix arm docker build
[\#14522](https://github.com/vector-im/element-web/pull/14522)
Changes in [1.7.3](https://github.com/vector-im/element-web/releases/tag/v1.7.3) (2020-08-05)
=============================================================================================
## Security notice
Element Web 1.7.3 (as well as the earlier release 1.7.2) fixes an issue where
replying to a specially formatted message would make it seem like the replier
said something they did not. Thanks to Sorunome for responsibly disclosing this
via Matrix's Security Disclosure Policy.
Element Web 1.7.3 (as well as the earlier release 1.7.2) fixes an issue where an
unexpected language ID in a code block could cause Element to crash. Thanks to
SakiiR for responsibly disclosing this via Matrix's Security Disclosure Policy.
## All changes
[Full Changelog](https://github.com/vector-im/element-web/compare/v1.7.3-rc.1...v1.7.3)
* Upgrade to React SDK 3.1.0 and JS SDK 8.0.1
Changes in [1.7.3-rc.1](https://github.com/vector-im/riot-web/releases/tag/v1.7.3-rc.1) (2020-07-31)
====================================================================================================
[Full Changelog](https://github.com/vector-im/riot-web/compare/v1.7.2...v1.7.3-rc.1)
* Upgrade to React SDK 3.1.0-rc.1 and JS SDK 8.0.1-rc.1
* Make Lojban translation available
[\#14703](https://github.com/vector-im/riot-web/pull/14703)
* Update from Weblate
[\#14841](https://github.com/vector-im/riot-web/pull/14841)
* Remove redundant lint dependencies
[\#14810](https://github.com/vector-im/riot-web/pull/14810)
* Bump elliptic from 6.5.2 to 6.5.3
[\#14826](https://github.com/vector-im/riot-web/pull/14826)
* Update mobile config intercept URL
[\#14796](https://github.com/vector-im/riot-web/pull/14796)
* Fix typo in https://
[\#14791](https://github.com/vector-im/riot-web/pull/14791)
Changes in [1.7.2](https://github.com/vector-im/riot-web/releases/tag/v1.7.2) (2020-07-27)
==========================================================================================
[Full Changelog](https://github.com/vector-im/riot-web/compare/v1.7.1...v1.7.2)

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

@ -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 riot-web develop.
# images of element-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"

@ -24,8 +24,8 @@ Element has several tiers of support for different environments:
* Everything else
For accessing Element on an Android or iOS device, we currently recommend the
native apps [riot-android](https://github.com/vector-im/riot-android)
and [riot-ios](https://github.com/vector-im/riot-ios).
native apps [element-android](https://github.com/vector-im/element-android)
and [element-ios](https://github.com/vector-im/element-ios).
Getting Started
===============
@ -37,7 +37,7 @@ for those who like living dangerously.
To host your own copy of Element, the quickest bet is to use a pre-built
released version of Element:
1. Download the latest version from https://github.com/vector-im/riot-web/releases
1. Download the latest version from https://github.com/vector-im/element-web/releases
1. Untar the tarball on your web server
1. Move (or symlink) the `riot-x.x.x` directory to an appropriate name
1. Configure the correct caching headers in your webserver (see below)
@ -69,7 +69,7 @@ access to Element (or other apps) due to sharing the same domain.
We have put some coarse mitigations into place to try to protect against this
situation, but it's still not good practice to do it in the first place. See
https://github.com/vector-im/riot-web/issues/1977 for more details.
https://github.com/vector-im/element-web/issues/1977 for more details.
Building From Source
====================
@ -82,8 +82,8 @@ guide](https://classic.yarnpkg.com/en/docs/install) if you do not have it alread
1. Install or update `node.js` so that your `node` is at least v10.x.
1. Install `yarn` if not present already.
1. Clone the repo: `git clone https://github.com/vector-im/riot-web.git`.
1. Switch to the riot-web directory: `cd riot-web`.
1. Clone the repo: `git clone https://github.com/vector-im/element-web.git`.
1. Switch to the element-web directory: `cd element-web`.
1. Install the prerequisites: `yarn install`.
* If you're using the `develop` branch, then it is recommended to set up a
proper development environment (see [Setting up a dev
@ -105,10 +105,10 @@ Running as a Desktop app
========================
Element can also be run as a desktop app, wrapped in Electron. You can download a
pre-built version from https://riot.im/download/desktop/ or, if you prefer,
pre-built version from https://element.io/get-started or, if you prefer,
build it yourself.
To build it yourself, follow the instructions at https://github.com/vector-im/riot-desktop.
To build it yourself, follow the instructions at https://github.com/vector-im/element-desktop.
Many thanks to @aviraldg for the initial work on the Electron integration.
@ -126,31 +126,31 @@ override the desktop app's default settings if desired.
Running from Docker
===================
The Docker image can be used to serve riot-web as a web server. The easiest way to use
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/riot-web
docker run -p 80:80 vectorim/element-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/riot-web/config.json` then your Docker command
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/riot-web/config.json:/app/config.json vectorim/riot-web
docker run -p 80:80 -v /etc/element-web/config.json:/app/config.json vectorim/element-web
```
To build the image yourself:
```bash
git clone https://github.com/vector-im/riot-web.git riot-web
cd riot-web
git clone https://github.com/vector-im/element-web.git element-web
cd element-web
git checkout master
docker build -t vectorim/riot-web .
docker build .
```
If you're building a custom branch, or want to use the develop branch, check out the appropriate
riot-web branch and then run:
element-web branch and then run:
```bash
docker build -t vectorim/riot-web:develop \
docker build -t \
--build-arg USE_CUSTOM_SDKS=true \
--build-arg REACT_SDK_REPO="https://github.com/matrix-org/matrix-react-sdk.git" \
--build-arg REACT_SDK_BRANCH="develop" \
@ -169,7 +169,7 @@ Labs Features
=============
Some features of Element may be enabled by flags in the `Labs` section of the settings.
Some of these features are described in [labs.md](https://github.com/vector-im/riot-web/blob/develop/docs/labs.md).
Some of these features are described in [labs.md](https://github.com/vector-im/element-web/blob/develop/docs/labs.md).
Caching requirements
====================
@ -186,13 +186,13 @@ Element requires the following URLs not to be cached, when/if you are serving El
Development
===========
Before attempting to develop on Riot you **must** read the [developer guide
Before attempting to develop on Element you **must** read the [developer guide
for `matrix-react-sdk`](https://github.com/matrix-org/matrix-react-sdk#developer-guide), which
also defines the design, architecture and style for Element too.
Before starting work on a feature, it's best to ensure your plan aligns well
with our vision for Riot. Please chat with the team in
[#riot-dev:matrix.org](https://matrix.to/#/#riot-dev:matrix.org) before you
with our vision for Element. Please chat with the team in
[#element-dev:matrix.org](https://matrix.to/#/#element-dev:matrix.org) before you
start so we can ensure it's something we'd be willing to merge.
You should also familiarise yourself with the ["Here be Dragons" guide
@ -225,7 +225,6 @@ 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
@ -236,7 +235,6 @@ 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,9 +244,8 @@ popd
Finally, build and start Element itself:
```bash
git clone https://github.com/vector-im/riot-web.git
cd riot-web
git checkout develop
git clone https://github.com/vector-im/element-web.git
cd element-web
yarn link matrix-js-sdk
yarn link matrix-react-sdk
yarn install
@ -275,7 +272,7 @@ bundle.css.map 116 kB 0 [emitted] main
Configure the app by copying `config.sample.json` to `config.json` and
modifying it. See the [configuration docs](docs/config.md) for details.
Open http://127.0.0.1:8080/ in your browser to see your newly built Riot.
Open http://127.0.0.1:8080/ in your browser to see your newly built Element.
**Note**: The build script uses inotify by default on Linux to monitor directories
for changes. If the inotify watch limit is too low your build will silently fail.
@ -336,7 +333,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.riot.im/widgets/riot-web/-/multi-auto.svg" alt="translationsstatus" width="340">](https://translate.riot.im/engage/riot-web/?utm_source=widget)
[<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)
Triaging issues
===============

@ -22,15 +22,11 @@
"https://scalar-staging.vector.im/api",
"https://scalar-staging.riot.im/scalar/api"
],
"bug_report_endpoint_url": "https://riot.im/bugreports/submit",
"bug_report_endpoint_url": "https://element.io/bugreports/submit",
"defaultCountryCode": "GB",
"showLabsSettings": false,
"features": {
"feature_new_spinner": "labs",
"feature_pinning": "labs",
"feature_custom_status": "labs",
"feature_custom_tags": "labs",
"feature_state_counters": "labs"
"feature_new_spinner": false
},
"default_federate": true,
"default_theme": "light",
@ -39,7 +35,6 @@
"matrix.org"
]
},
"welcomeUserId": "@riot-bot:matrix.org",
"piwik": {
"url": "https://piwik.riot.im/",
"whitelistedHSUrls": ["https://matrix.org"],

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

@ -22,12 +22,12 @@ For a good example, see https://develop.element.io/config.json.
`default_hs_url` is specified. When multiple sources are specified, it is unclear
which should take priority and therefore the application cannot continue.
* As of Element 1.4.0, identity servers are optional. See [Identity servers](#identity-servers) below.
1. `features`: Lookup of optional features that may be `enable`d, `disable`d, or
exposed to the user in the `labs` section of settings. The available
optional experimental features vary from release to release and are [documented](labs.md). The feature flag process is
[documented](feature-flags.md) as well.
1. `showLabsSettings`: Shows the "labs" tab of user settings even when no `features` are enabled
or present. Useful for getting at settings which may be otherwise hidden.
1. `features`: Lookup of optional features that may be force-enabled (`true`) or force-disabled (`false`).
When features are not listed here, their defaults will be used, and users can turn them on/off if `showLabsSettings`
allows them to. The available optional experimental features vary from release to release and are
[documented](labs.md). The feature flag process is [documented](feature-flags.md) as well.
1. `showLabsSettings`: Shows the "labs" tab of user settings. Useful to allow users to turn on experimental features
they might not otherwise have access to.
1. `brand`: String to pass to your homeserver when configuring email notifications, to let the
homeserver know what email template to use when talking to you.
1. `branding`: Configures various branding and logo details, such as:
@ -48,7 +48,7 @@ For a good example, see https://develop.element.io/config.json.
1. `integrations_widgets_urls`: list of URLs to the REST interface for the widget integrations server.
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 by leaving the
"Send Logs" within the application. Bug reports can be disabled/hidden 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,6 +101,15 @@ 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
@ -144,3 +153,44 @@ 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.

@ -0,0 +1,34 @@
# 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.

@ -7,10 +7,57 @@ For private room creation, Element will default to encryption on but give you th
Set the following on your homeserver's
`/.well-known/matrix/client` config:
```json
{
"im.vector.riot.e2ee": {
"io.element.e2ee": {
"default": false
}
}
```
# Secure backup
By default, Element strongly encourages (but does not require) users to set up
Secure Backup so that cross-signing identity key and message keys can be
recovered in case of a disaster where you lose access to all active devices.
## Requiring secure backup
To require Secure Backup to be configured before Element can be used, set the
following on your homeserver's `/.well-known/matrix/client` config:
```json
{
"io.element.e2ee": {
"secure_backup_required": true
}
}
```
## 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
is now deprecated. Element will check for either key, preferring
`io.element.e2ee` if both exist.

@ -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
Riot instance)
Element 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.
@ -35,7 +35,7 @@ clients commit to doing the associated clean up work once a feature stabilises.
When starting work on a feature, we should create a matching feature flag:
1. Add a new
[setting](https://github.com/matrix-org/matrix-react-sdk/blob/develop/src/settings/Settings.js)
[setting](https://github.com/matrix-org/matrix-react-sdk/blob/develop/src/settings/Settings.ts)
of the form:
```js
"feature_cats": {
@ -47,17 +47,9 @@ When starting work on a feature, we should create a matching feature flag:
```
2. Check whether the feature is enabled as appropriate:
```js
SettingsStore.isFeatureEnabled("feature_cats")
SettingsStore.getValue("feature_cats")
```
3. Add the feature to the set of labs on
[develop](https://github.com/vector-im/riot-web/blob/develop/riot.im/develop/config.json)
and [nightly](https://github.com/vector-im/riot-desktop/blob/develop/riot.im/nightly/config.json):
```json
"features": {
"feature_cats": "labs"
},
```
4. Document the feature in the [labs documentation](https://github.com/vector-im/riot-web/blob/develop/docs/labs.md)
3. Document the feature in the [labs documentation](https://github.com/vector-im/element-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.
@ -67,69 +59,49 @@ The following lists a few common options.
## Enabling by default on develop and nightly
Set the feature to `enable` in the
[develop](https://github.com/vector-im/riot-web/blob/develop/riot.im/develop/config.json)
Set the feature to `true` in the
[develop](https://github.com/vector-im/element-web/blob/develop/element.io/develop/config.json)
and
[nightly](https://github.com/vector-im/riot-desktop/blob/develop/riot.im/nightly/config.json)
[nightly](https://github.com/vector-im/element-desktop/blob/develop/element.io/nightly/config.json)
configs:
```json
"features": {
"feature_cats": "enable"
"feature_cats": true
},
```
## Enabling by default on staging, app, and release
Set the feature to `enable` in the
[staging / app](https://github.com/vector-im/riot-web/blob/develop/riot.im/app/config.json)
Set the feature to `true` in the
[staging / app](https://github.com/vector-im/element-web/blob/develop/element.io/app/config.json)
and
[release](https://github.com/vector-im/riot-desktop/blob/develop/riot.im/release/config.json)
[release](https://github.com/vector-im/element-desktop/blob/develop/element.io/release/config.json)
configs.
**Warning:** While this does mean the feature is enabled by default for
https://app.element.io and official Element Desktop builds, it will not be enabled by
default for self-hosted installs, custom desktop builds, etc. To cover those
cases as well, the best options at the moment are converting to a regular
setting defaulted on or to remove the flag. Simply enabling the existing flag by
default in `Settings.js`
[does not work currently](https://github.com/vector-im/riot-web/issues/10360).
**Note:** The above will only enable the feature for https://app.element.io and official Element
Desktop builds. It will not be enabled for self-hosted installed, custom desktop builds, etc. To
cover these cases, change the setting's `default` in `Settings.ts` to `true`.
## Feature deployed successfully
Once we're confident that a feature is working well, we should remove the flag:
1. Remove the [setting](https://github.com/matrix-org/matrix-react-sdk/blob/develop/src/settings/Settings.js)
2. Remove all `isFeatureEnabled` lines that test for the feature's setting
3. Remove the feature from the [labs documentation](https://github.com/vector-im/riot-web/blob/develop/docs/labs.md)
4. Remove feature state from
[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),
Once we're confident that a feature is working well, we should remove or convert the flag.
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)
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)
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),
and
[release](https://github.com/vector-im/riot-desktop/blob/develop/riot.im/release/config.json)
[release](https://github.com/vector-im/element-desktop/blob/develop/element.io/release/config.json)
configs
5. Celebrate! 🥳
## Convert to a regular setting (optional)
Sometimes we decide a feature should always be user-controllable as a setting
even after it has been fully deployed. In that case, we would craft a new,
regular setting:
1. Remove the feature flag from
[settings](https://github.com/matrix-org/matrix-react-sdk/blob/develop/src/settings/Settings.js)
and add a regular setting with the appropriate levels for your feature
2. Replace the `isFeatureEnabled` lines with `getValue` or similar calls
according to the [settings
docs](https://github.com/matrix-org/matrix-react-sdk/blob/develop/docs/settings.md)
(checking carefully, as we may want a different mix of code paths when the
feature is always present but gated by a setting)
3. Remove the feature from the [labs documentation](https://github.com/vector-im/riot-web/blob/develop/docs/labs.md)
4. Remove feature state from
[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/riot-desktop/blob/develop/riot.im/release/config.json)
configs

@ -50,7 +50,22 @@ default, and you are using riot-web 1.6 or newer, set the following on your home
}
```
## Mobile app support
## Element Android
Element Android (1.0.5+) supports custom Jitsi domains, similar to Element Web above.
1:1 calls, or calls between you and one other person, do not use Jitsi. Instead, those
calls work directly between clients or via TURN servers configured on the respective
homeservers.
For rooms with more than 2 joined members, when creating a Jitsi conference via call/video buttons of the toolbar (not via integration manager), Element Android will create a widget using the [wrapper](https://github.com/vector-im/element-web/blob/develop/docs/jitsi-dev.md) hosted on `app.element.io`.
The domain used is the one specified by the `/.well-known/matrix/client` endpoint, and if not present it uses the fallback defined in `config.xml` (jitsi.riot.im)
For active Jitsi widgets in the room, a native Jitsi widget UI is created and points to the instance specified in the `domain` key of the widget content data.
Element Android manages allowed native widgets permissions a bit differently than web widgets (as the data shared are different and never shared with the widget URL). For Jitsi widgets, permissions are requested only once per domain (consent saved in account data).
## Element iOS
Currently the Element mobile apps do not support custom Jitsi servers and will instead
use the default `jitsi.riot.im` server. When users on the mobile apps join the call,

@ -94,3 +94,20 @@ adds an ability for end users to add themes themselves by using a URL to the JSO
theme definition.
For some sample themes, check out [aaronraimist/element-themes](https://github.com/aaronraimist/element-themes).
## Message preview tweaks
To enable message previews for reactions in all rooms, enable `feature_roomlist_preview_reactions_all`.
To enable message previews for reactions in DMs, enable `feature_roomlist_preview_reactions_dms`, ignored when it is enabled for all rooms.
## Communities v2 prototyping (`feature_communities_v2_prototypes`) [In Development]
**This is a highly experimental implementation for parts of the communities v2 experience.** It does not
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).

@ -14,6 +14,7 @@ When reviewing code, here are some things we look for and also things we avoid:
* Performance
* Accessibility
* Security
* Quality via automated and manual testing
* Comments and documentation where needed
* Sharing knowledge of different areas among the team
* Ensuring it's something we're comfortable maintaining for the long term
@ -34,6 +35,7 @@ When reviewing code, here are some things we look for and also things we avoid:
* Reviewers should be explicit about required versus optional changes
* Reviews are conversations and the PR author should feel comfortable
discussing and pushing back on changes before making them
* Reviewers are encouraged to ask for tests where they believe it is reasonable
* Core team should lead by example through their tone and language
* Take the time to thank and point out good code changes
* Using softer language like "please" and "what do you think?" goes a long way
@ -74,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/riot-web/issues/12624) for every PR.
this](https://github.com/vector-im/element-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

@ -6,27 +6,27 @@
- Be able to understand English
- Be able to understand the language you want to translate Element into
## Step 0: Join #riotweb-translations:matrix.org
## Step 0: Join #element-translations:matrix.org
1. Come and join https://matrix.to/#/#riotweb-translations:matrix.org
1. Come and join https://matrix.to/#/#element-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.riot.im and register either via Github or email
1. Head to https://translate.element.io 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.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
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
## How to check if your language already is being translated
Go to https://translate.riot.im/projects/riot-web/ and visit the 2 sub-projects.
Go to https://translate.element.io/projects/element-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.riot.im/projects/riot-web/
1. Head to one of the projects listed https://translate.element.io/projects/element-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.riot.im/projects/riot-web/
1. Go to one of the projects listed https://translate.element.io/projects/element-web/
2. Click the ``Start new translation`` button at the bottom
3. Select a language
4. Start translating like in 2a.3

@ -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/riot-desktop/tree/develop/element.io).
https://github.com/vector-im/element-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.

@ -11,13 +11,12 @@
"https://scalar-staging.riot.im/scalar/api"
],
"hosting_signup_link": "https://element.io/matrix-services?utm_source=element-web&utm_medium=web",
"bug_report_endpoint_url": "https://riot.im/bugreports/submit",
"features": {
},
"bug_report_endpoint_url": "https://element.io/bugreports/submit",
"showLabsSettings": false,
"piwik": {
"url": "https://piwik.riot.im/",
"siteId": 1,
"policyUrl": "https://matrix.org/legal/riot-im-cookie-policy"
"policyUrl": "https://element.io/cookie-policy"
},
"roomDirectory": {
"servers": [
@ -30,11 +29,11 @@
},
"terms_and_conditions_links": [
{
"url": "https://riot.im/privacy",
"url": "https://element.io/privacy",
"text": "Privacy Policy"
},
{
"url": "https://matrix.org/legal/riot-im-cookie-policy",
"url": "https://element.io/cookie-policy",
"text": "Cookie Policy"
}
]

@ -11,24 +11,16 @@
"https://scalar-staging.riot.im/scalar/api"
],
"hosting_signup_link": "https://element.io/matrix-services?utm_source=element-web&utm_medium=web",
"bug_report_endpoint_url": "https://riot.im/bugreports/submit",
"features": {
"feature_new_spinner": "labs",
"feature_pinning": "labs",
"feature_custom_status": "labs",
"feature_custom_tags": "labs",
"feature_state_counters": "labs",
"feature_many_integration_managers": "labs",
"feature_mjolnir": "labs",
"feature_dm_verification": "labs",
"feature_bridge_state": "labs",
"feature_presence_in_room_list": "labs",
"feature_custom_themes": "labs"
},
"bug_report_endpoint_url": "https://element.io/bugreports/submit",
"showLabsSettings": true,
"piwik": {
"url": "https://piwik.riot.im/",
"siteId": 1,
"policyUrl": "https://matrix.org/legal/riot-im-cookie-policy"
"policyUrl": "https://element.io/cookie-policy"
},
"countly": {
"url": "https://try.count.ly",
"appKey": "8abf1ee15646bc884556b82e5053857904264b66"
},
"roomDirectory": {
"servers": [
@ -41,11 +33,11 @@
},
"terms_and_conditions_links": [
{
"url": "https://riot.im/privacy",
"url": "https://element.io/privacy",
"text": "Privacy Policy"
},
{
"url": "https://matrix.org/legal/riot-im-cookie-policy",
"url": "https://element.io/cookie-policy",
"text": "Cookie Policy"
}
]

@ -1,7 +1,7 @@
{
"name": "riot-web",
"productName": "Riot",
"version": "1.7.2",
"version": "1.7.13",
"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,riot-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,element-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",
@ -59,13 +59,15 @@
"browser-request": "^0.3.3",
"gfm.css": "^1.1.2",
"highlight.js": "^9.13.1",
"jsrsasign": "^9.1.5",
"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",
"matrix-widget-api": "^0.1.0-beta.8",
"olm": "https://packages.matrix.org/npm/olm/olm-3.2.1.tgz",
"prop-types": "^15.7.2",
"react": "^16.9.0",
"react-dom": "^16.9.0",
"sanitize-html": "^1.19.1",
"sanitize-html": "github:apostrophecms/sanitize-html#3c7f93f2058f696f5359e3e58d464161647226db",
"ua-parser-js": "^0.7.19",
"url": "^0.11.0"
},
@ -91,6 +93,7 @@
"@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",
@ -111,8 +114,8 @@
"file-loader": "^5.0.2",
"fs-extra": "^0.30.0",
"html-webpack-plugin": "^3.2.0",
"jest": "^24.9.0",
"jest-environment-jsdom-fourteen": "^1.0.1",
"jest": "^26.5.2",
"jest-environment-jsdom-sixteen": "^1.0.3",
"json-loader": "^0.5.3",
"loader-utils": "^1.2.3",
"matrix-mock-request": "^1.2.3",
@ -136,6 +139,7 @@
"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",
@ -144,7 +148,7 @@
"webpack-dev-server": "^3.9.0"
},
"jest": {
"testEnvironment": "jest-environment-jsdom-fourteen",
"testEnvironment": "jest-environment-jsdom-sixteen",
"testMatch": [
"<rootDir>/test/**/*-test.js"
],

@ -38,9 +38,7 @@ do
echo "Upgrading $i to $latestver..."
yarn add -E $i@$latestver
git add -u
# 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
git commit -m "Upgrade $i to $latestver"
fi
fi
done

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

@ -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://riot.im" target="_blank" rel="noopener">
<a href="https://element.io" 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/riot-web/issues/8622.
See https://github.com/vector-im/element-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">

@ -7,6 +7,7 @@ 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");
@ -14,7 +15,13 @@ 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");
fetch("https://jitsi.riot.im/libs/external_api.min.js").then(res => {
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 => {
const stream = fs.createWriteStream(fname);
return new Promise((resolve, reject) => {
res.body.pipe(stream);

@ -21,6 +21,7 @@ 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'},
@ -31,6 +32,7 @@ const INCLUDE_LANGS = [
{'value': 'it', 'label': 'Italiano'},
{'value': 'ja', 'label': '日本語'},
{'value': 'jbo', 'label': 'banjubu\'o'},
{'value': 'kab', 'label': 'Taqbaylit'},
{'value': 'ko', 'label': '한국어'},
{'value': 'lt', 'label': 'Lietuvių'},
{'value': 'lv', 'label': 'Latviešu'},

@ -70,7 +70,6 @@ function dodep() {
##############################
echo -en 'travis_fold:start:matrix-js-sdk\r'
echo 'Setting up matrix-js-sdk'
dodep matrix-org matrix-js-sdk
@ -83,11 +82,8 @@ 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
@ -101,8 +97,6 @@ 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`,

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

@ -1,6 +1,6 @@
#!/usr/bin/env python
#
# auto-deploy script for https://riot.im/develop
# auto-deploy script for https://develop.element.io
#
# 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 riot.im/develop.
# not being evil. If that's not good enough for you, don't use develop.element.io.