Compare commits

..

73 Commits

Author SHA1 Message Date
Michael Telatynski
3e46be0ac8 Move toast priorities to a numeric enum to enforce uniqueness
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-07-22 09:55:19 +01:00
Travis Ralston
ae8ba13ab1 Merge pull request #14673 from vector-im/joriks/eslint-config
Configure eslint package and fix lint issues
2020-07-21 14:47:01 -06:00
Jorik Schellekens
9bb1f99bd9 Confiure eslint package and fix lint issues 2020-07-21 11:30:28 +01:00
J. Ryan Stinnett
6c50aa14ad Merge pull request #14581 from resynth1943/resynth1943-patch-riot-to-element
Riot → Element
2020-07-21 10:46:31 +01:00
J. Ryan Stinnett
37b75eaf31 Merge branch 'develop' into resynth1943-patch-riot-to-element 2020-07-21 10:20:02 +01:00
Travis Ralston
223e55de44 Merge pull request #14603 from vector-im/travis/room-list/rm-old
Remove labs info for the new room list
2020-07-20 06:46:19 -06:00
Resynth
622ea3ead6 Update labs.md 2020-07-18 11:07:59 +00:00
Resynth
7598942800 Update labs.md 2020-07-18 11:07:33 +00:00
Travis Ralston
ef16ef4272 Remove labs info for the new room list 2020-07-17 16:27:03 -06:00
J. Ryan Stinnett
f254a806d5 Merge pull request #14593 from vector-im/jryans/dev-mode-react
Convince Webpack to use development on CI
2020-07-17 16:45:07 +01:00
J. Ryan Stinnett
3f0de699f0 Clean up comments around Webpack modes 2020-07-17 14:57:48 +01:00
J. Ryan Stinnett
869c379264 Remove webpack -p option
This option is redundant, as it means the same as `--mode production`, and it
prevents us from tweaking the mode via `CI_PACKAGE`.
2020-07-17 14:55:01 +01:00
J. Ryan Stinnett
8ae4298637 Webpack modes also manage NODE_ENV
We don't need to manually define `NODE_ENV` in the Webpack config, nor do we
need to set it outside Webpack with `cross-env` either, as Webpack's modes will
take care of this for us.
2020-07-17 14:18:08 +01:00
Resynth
eac628ddcf Update README.md
Co-authored-by: J. Ryan Stinnett <jryans@gmail.com>
2020-07-17 13:04:55 +01:00
Resynth
050b7fe4df Update scripts/docker-link-repos.sh
Co-authored-by: J. Ryan Stinnett <jryans@gmail.com>
2020-07-17 13:04:55 +01:00
Resynth
79f70e00d0 Update scripts/ci_package.sh
Co-authored-by: J. Ryan Stinnett <jryans@gmail.com>
2020-07-17 13:04:55 +01:00
Resynth
8947f160b8 Update release.sh
Co-authored-by: J. Ryan Stinnett <jryans@gmail.com>
2020-07-17 13:04:55 +01:00
Resynth
b1cf1a2d1a Update docs/translating.md
Co-authored-by: J. Ryan Stinnett <jryans@gmail.com>
2020-07-17 13:04:55 +01:00
Resynth
a8a6c538fa Update docs/skinning thoughts.md
Co-authored-by: J. Ryan Stinnett <jryans@gmail.com>
2020-07-17 13:04:55 +01:00
Resynth
9be8c1c8b0 Update docs/skinning thoughts.md
Co-authored-by: J. Ryan Stinnett <jryans@gmail.com>
2020-07-17 13:04:55 +01:00
Resynth
6b317798dc Update docs/review.md
Co-authored-by: J. Ryan Stinnett <jryans@gmail.com>
2020-07-17 13:04:55 +01:00
resynth1943
9fa8b7a9b3 Update docs/labs.md
Co-authored-by: J. Ryan Stinnett <jryans@gmail.com>
2020-07-17 13:04:44 +01:00
Resynth
d9c2b34249 Update README.md
Co-authored-by: J. Ryan Stinnett <jryans@gmail.com>
2020-07-17 13:04:03 +01:00
Resynth
e367690e4b Update release.sh 2020-07-17 13:04:03 +01:00
Resynth
2f7b43dcfa Update docker-link-repos.sh 2020-07-17 13:04:03 +01:00
Resynth
2c83458f35 Update ci_package.sh 2020-07-17 13:04:03 +01:00
Resynth
dde3f93822 Update translating.md 2020-07-17 13:04:03 +01:00
Resynth
ffd802f726 Update translating-dev.md 2020-07-17 13:04:03 +01:00
Resynth
55ea61b36c Update theming.md 2020-07-17 13:04:03 +01:00
Resynth
44c15df58e Update skinning thoughts.md 2020-07-17 13:04:03 +01:00
Resynth
17649dc2b1 Update review.md 2020-07-17 13:04:03 +01:00
Resynth
5d8b246ef1 Update native-node-modules.md 2020-07-17 13:04:03 +01:00
Resynth
0f159c5d77 Update memory-profiles-and-leaks.md 2020-07-17 13:04:03 +01:00
Resynth
f2b9bd4c49 Update labs.md 2020-07-17 13:04:03 +01:00
Resynth
bbd1974eb4 Update jitsi-dev.md 2020-07-17 13:04:03 +01:00
Resynth
6f04841e4b Update e2ee.md 2020-07-17 13:04:03 +01:00
Resynth
7c4cef614e Update config.md 2020-07-17 13:04:03 +01:00
Resynth
f8ed536bb8 Update jitsi.md 2020-07-17 13:04:03 +01:00
Resynth
2657df8f3f Change Riot to Element 2020-07-17 13:04:03 +01:00
Resynth
9687575c86 Change Riot → Element in docs/feature-flags.md 2020-07-17 13:04:03 +01:00
Michael Telatynski
398033e7ce Merge pull request #14572 from vector-im/t3chguy/devdep
Move dev dep to the right place
2020-07-17 12:11:32 +01:00
Michael Telatynski
d328cab538 Move dev dep to the right place
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-07-17 10:36:38 +01:00
Travis Ralston
da7550e0a4 Merge pull request #14552 from vector-im/dependabot/npm_and_yarn/lodash-4.17.19
Bump lodash from 4.17.15 to 4.17.19
2020-07-16 15:10:26 -06:00
dependabot[bot]
eaebafc29a Bump lodash from 4.17.15 to 4.17.19
Bumps [lodash](https://github.com/lodash/lodash) from 4.17.15 to 4.17.19.
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/compare/4.17.15...4.17.19)

Signed-off-by: dependabot[bot] <support@github.com>
2020-07-16 19:40:00 +00:00
J. Ryan Stinnett
c412406956 Merge pull request #14541 from vector-im/jryans/update-mobile-apps
Update all mobile links to match marketing site
2020-07-16 16:21:17 +01:00
RiotRobot
dbd82c7425 Reset matrix-react-sdk back to develop branch 2020-07-16 16:20:02 +01:00
RiotRobot
da5008bab1 Reset matrix-js-sdk back to develop branch 2020-07-16 16:19:49 +01:00
RiotRobot
9c9da4345b v1.7.1 2020-07-16 16:15:39 +01:00
RiotRobot
eed6a01efa Prepare changelog for v1.7.1 2020-07-16 16:15:38 +01:00
RiotRobot
0159699d1b Upgrade matrix-react-sdk to 2.10.1 2020-07-16 16:13:15 +01:00
RiotRobot
1262a1ef08 Upgrade matrix-js-sdk to 7.1.0 2020-07-16 16:12:35 +01:00
Travis Ralston
8e67450477 Merge pull request #14544 from vector-im/travis/fix-sso2
Fix SSO session ID paramater
2020-07-16 08:13:58 -06:00
Travis Ralston
b2d4432ba9 Fix SSO session ID paramater 2020-07-16 08:11:04 -06:00
J. Ryan Stinnett
503ea3d973 Update all mobile links to match marketing site 2020-07-16 14:42:20 +01:00
J. Ryan Stinnett
efa603939b Merge pull request #14488 from jaller94/j94/pngcrush
Run pngcrush on vector-icons
2020-07-16 14:06:25 +01:00
David Baker
a1c06c5a0e Merge pull request #14502 from vector-im/dbkr/hostinglink
Fix hosting signup link
2020-07-16 09:30:19 +01:00
Travis Ralston
8eac445ddc Merge pull request #14513 from vector-im/travis/fix-sso
Use the right protocol for SSO URLs
2020-07-15 19:48:17 -06:00
Travis Ralston
1b60743910 Use the right protocol for SSO URLs 2020-07-15 17:05:17 -06:00
David Baker
1a49459b81 Apparently we have changed this 2020-07-15 20:04:17 +01:00
David Baker
62d1e4937c Fix hosting signup link
Fixes https://github.com/vector-im/riot-web/issues/14500
2020-07-15 19:58:34 +01:00
J. Ryan Stinnett
636529bb36 Merge pull request #14485 from jaller94/j94/fix-mstile-310-150
Fix mstile-310x150 by renaming it
2020-07-15 16:54:32 +01:00
Christian Paul
37126b3f76 Run pngcrush on vector-icons 2020-07-15 16:58:17 +02:00
Christian Paul
16726c7e16 Add pixels left and right for mstile-310x150.png to be 310x150 2020-07-15 16:54:01 +02:00
David Baker
bfc62e04f0 Merge pull request #14478 from vector-im/hs/blog-and-twitter-links
Update blog and twitter links to point to Element
2020-07-15 15:01:53 +01:00
Christian Paul
2bcadfab83 Fix mstile-310x150 by renaming it 2020-07-15 15:52:29 +02:00
Will Hunt
d04e0f441d Update blog and twitter links 2020-07-15 13:23:51 +01:00
RiotRobot
7c17272c83 Reset matrix-react-sdk back to develop branch 2020-07-15 12:14:38 +01:00
RiotRobot
6886dbcbd4 Reset matrix-js-sdk back to develop branch 2020-07-15 12:14:27 +01:00
RiotRobot
15203bb32b v1.7.0 2020-07-15 12:10:02 +01:00
RiotRobot
c8b8efd47a Prepare changelog for v1.7.0 2020-07-15 12:10:02 +01:00
RiotRobot
e5398f4345 Upgrade matrix-react-sdk to 2.10.0 2020-07-15 12:05:47 +01:00
RiotRobot
e077bea046 Upgrade matrix-js-sdk to 7.1.0 2020-07-15 12:05:31 +01:00
Travis Ralston
cd18764287 Fix sample config brand 2020-07-15 04:26:26 -06:00
64 changed files with 806 additions and 311 deletions

View File

@@ -1,3 +1,23 @@
module.exports = {
extends: ["./node_modules/matrix-react-sdk/.eslintrc.js"],
"extends": ["matrix-org", "matrix-org/react"],
"env": {
"browser": true,
"node": true,
},
"rules": {
"quotes": "off",
},
"overrides": [{
"files": ["src/**/*.{ts, tsx}"],
"extends": ["matrix-org/ts", "matrix-org/react"],
"env": {
"browser": true,
},
"rules": {
"quotes": "off",
// While converting to ts we allow this
"@typescript-eslint/no-explicit-any": "off",
"prefer-promise-reject-errors": "off",
},
}],
}

View File

@@ -1,3 +1,42 @@
Changes in [1.7.1](https://github.com/vector-im/riot-web/releases/tag/v1.7.1) (2020-07-16)
==========================================================================================
[Full Changelog](https://github.com/vector-im/riot-web/compare/v1.7.0...v1.7.1)
* Upgrade to React SDK 2.10.1
* Fix SSO session ID paramater
[\#14544](https://github.com/vector-im/riot-web/pull/14544)
* Run pngcrush on vector-icons
[\#14488](https://github.com/vector-im/riot-web/pull/14488)
* Fix hosting signup link
[\#14502](https://github.com/vector-im/riot-web/pull/14502)
* Use the right protocol for SSO URLs
[\#14513](https://github.com/vector-im/riot-web/pull/14513)
* Fix mstile-310x150 by renaming it
[\#14485](https://github.com/vector-im/riot-web/pull/14485)
* Update blog and twitter links to point to Element
[\#14478](https://github.com/vector-im/riot-web/pull/14478)
Changes in [1.7.0](https://github.com/vector-im/riot-web/releases/tag/v1.7.0) (2020-07-15)
==========================================================================================
[Full Changelog](https://github.com/vector-im/riot-web/compare/v1.6.8...v1.7.0)
* App name changed from Riot to Element
* Upgrade to React SDK 2.10.0
* Remove redundant enum
[\#14472](https://github.com/vector-im/riot-web/pull/14472)
* Remove font scaling from labs
[\#14355](https://github.com/vector-im/riot-web/pull/14355)
* Update documentation and remove labs flag for new room list
[\#14375](https://github.com/vector-im/riot-web/pull/14375)
* Update from Weblate
[\#14434](https://github.com/vector-im/riot-web/pull/14434)
* Release the irc layout from labs
[\#14350](https://github.com/vector-im/riot-web/pull/14350)
* Fix welcomeBackgroundUrl array causing background to change during use
[\#14368](https://github.com/vector-im/riot-web/pull/14368)
* Be more explicit about type when calling platform startUpdater
[\#14299](https://github.com/vector-im/riot-web/pull/14299)
Changes in [1.6.8](https://github.com/vector-im/riot-web/releases/tag/v1.6.8) (2020-07-03)
==========================================================================================
[Full Changelog](https://github.com/vector-im/riot-web/compare/v1.6.8-rc.1...v1.6.8)

View File

@@ -1,41 +1,41 @@
Riot
====
Element
=======
Riot (formerly known as Vector) is a Matrix web client built using the [Matrix
Element (formerly known as Vector and Riot) is a Matrix web client built using the [Matrix
React SDK](https://github.com/matrix-org/matrix-react-sdk).
Supported Environments
======================
Riot has several tiers of support for different environments:
Element has several tiers of support for different environments:
* Supported
* Definition: Issues **actively triaged**, regressions **block** the release
* Last 2 major versions of Chrome, Firefox, and Safari on desktop OSes
* Latest release of official Riot Desktop app on desktop OSes
* Latest release of official Element Desktop app on desktop OSes
* Desktop OSes means macOS, Windows, and Linux versions for desktop devices
that are actively supported by the OS vendor and receive security updates
* Experimental
* Definition: Issues **accepted**, regressions **do not block** the release
* Riot as an installed PWA via current stable version of Chrome, Firefox, and Safari
* Element as an installed PWA via current stable version of Chrome, Firefox, and Safari
* Mobile web for current stable version of Chrome, Firefox, and Safari on Android, iOS, and iPadOS
* Not supported
* Definition: Issues only affecting unsupported environments are **closed**
* Everything else
For accessing Riot on an Android or iOS device, we currently recommend the
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).
Getting Started
===============
The easiest way to test Riot is to just use the hosted copy at https://riot.im/app.
The `develop` branch is continuously deployed by Jenkins at https://riot.im/develop
The easiest way to test Element is to just use the hosted copy at https://app.element.io.
The `develop` branch is continuously deployed by Jenkins at https://develop.element.io
for those who like living dangerously.
To host your own copy of Riot, the quickest bet is to use a pre-built
released version of Riot:
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. Untar the tarball on your web server
@@ -43,29 +43,29 @@ released version of Riot:
1. Configure the correct caching headers in your webserver (see below)
1. If desired, copy `config.sample.json` to `config.json` and edit it
as desired. See the [configuration docs](docs/config.md) for details.
1. Enter the URL into your browser and log into Riot!
1. Enter the URL into your browser and log into Element!
Releases are signed using gpg and the OpenPGP standard, and can be checked against the public key located
at https://packages.riot.im/riot-release-key.asc.
Note that for the security of your chats will need to serve Riot
Note that for the security of your chats will need to serve Element
over HTTPS. Major browsers also do not allow you to use VoIP/video
chats over HTTP, as WebRTC is only usable over HTTPS.
There are some exceptions like when using localhost, which is
considered a [secure context](https://developer.mozilla.org/docs/Web/Security/Secure_Contexts)
and thus allowed.
To install Riot as a desktop application, see [Running as a desktop
To install Element as a desktop application, see [Running as a desktop
app](#running-as-a-desktop-app) below.
Important Security Note
=======================
We do not recommend running Riot from the same domain name as your Matrix
We do not recommend running Element from the same domain name as your Matrix
homeserver. The reason is the risk of XSS (cross-site-scripting)
vulnerabilities that could occur if someone caused Riot to load and render
vulnerabilities that could occur if someone caused Element to load and render
malicious user generated content from a Matrix API which then had trusted
access to Riot (or other apps) due to sharing the same domain.
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
@@ -74,7 +74,7 @@ https://github.com/vector-im/riot-web/issues/1977 for more details.
Building From Source
====================
Riot is a modular webapp built with modern ES6 and uses a Node.js build system.
Element is a modular webapp built with modern ES6 and uses a Node.js build system.
Ensure you have the latest LTS version of Node.js installed.
Using `yarn` instead of `npm` is recommended. Please see the Yarn [install
@@ -88,7 +88,7 @@ guide](https://classic.yarnpkg.com/en/docs/install) if you do not have it alread
* If you're using the `develop` branch, then it is recommended to set up a
proper development environment (see [Setting up a dev
environment](#setting-up-a-dev-environment) below). Alternatively, you
can use https://riot.im/develop - the continuous integration release of
can use https://develop.element.io - the continuous integration release of
the develop branch.
1. Configure the app by copying `config.sample.json` to `config.json` and
modifying it. See the [configuration docs](docs/config.md) for details.
@@ -97,14 +97,14 @@ guide](https://classic.yarnpkg.com/en/docs/install) if you do not have it alread
web server.
Note that `yarn dist` is not supported on Windows, so Windows users can run `yarn build`,
which will build all the necessary files into the `webapp` directory. The version of Riot
which will build all the necessary files into the `webapp` directory. The version of Element
will not appear in Settings without using the dist script. You can then mount the
`webapp` directory on your webserver to actually serve up the app, which is entirely static content.
Running as a Desktop app
========================
Riot can also be run as a desktop app, wrapped in Electron. You can download a
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,
build it yourself.
@@ -117,7 +117,7 @@ Other options for running as a desktop app:
```bash
yarn global add nativefier
nativefier https://riot.im/app/
nativefier https://app.element.io/
```
The [configuration docs](docs/config.md#desktop-app-configuration) show how to
@@ -162,19 +162,19 @@ docker build -t vectorim/riot-web:develop \
config.json
===========
Riot supports a variety of settings to configure default servers, behaviour, themes, etc.
Element supports a variety of settings to configure default servers, behaviour, themes, etc.
See the [configuration docs](docs/config.md) for more details.
Labs Features
=============
Some features of Riot may be enabled by flags in the `Labs` section of the settings.
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).
Caching requirements
====================
Riot requires the following URLs not to be cached, when/if you are serving Riot from your own webserver:
Element requires the following URLs not to be cached, when/if you are serving Element from your own webserver:
```
/config.*.json
/i18n
@@ -188,7 +188,7 @@ Development
Before attempting to develop on Riot 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 Riot too.
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
@@ -199,7 +199,7 @@ You should also familiarise yourself with the ["Here be Dragons" guide
](https://docs.google.com/document/d/12jYzvkidrp1h7liEuLIe6BMdU0NUjndUYI971O06ooM)
to the tame & not-so-tame dragons (gotchas) which exist in the codebase.
The idea of Riot is to be a relatively lightweight "skin" of customisations on
The idea of Element is to be a relatively lightweight "skin" of customisations on
top of the underlying `matrix-react-sdk`. `matrix-react-sdk` provides both the
higher and lower level React components useful for building Matrix communication
apps using React.
@@ -207,15 +207,15 @@ apps using React.
After creating a new component you must run `yarn reskindex` to regenerate
the `component-index.js` for the app (used in future for skinning).
Please note that Riot is intended to run correctly without access to the public
Please note that Element is intended to run correctly without access to the public
internet. So please don't depend on resources (JS libs, CSS, images, fonts)
hosted by external CDNs or servers but instead please package all dependencies
into Riot itself.
into Element itself.
Setting up a dev environment
============================
Much of the functionality in Riot is actually in the `matrix-react-sdk` and
Much of the functionality in Element is actually in the `matrix-react-sdk` and
`matrix-js-sdk` modules. It is possible to set these up in a way that makes it
easy to track the `develop` branches in git and to make local changes without
having to manually rebuild each time.
@@ -243,7 +243,7 @@ yarn install
popd
```
Finally, build and start Riot itself:
Finally, build and start Element itself:
```bash
git clone https://github.com/vector-im/riot-web.git
@@ -299,12 +299,12 @@ ___
When you make changes to `matrix-react-sdk` or `matrix-js-sdk` they should be
automatically picked up by webpack and built.
If you add or remove any components from the Riot skin, you will need to rebuild
If you add or remove any components from the Element skin, you will need to rebuild
the skin's index by running, `yarn reskindex`.
If any of these steps error with, `file table overflow`, you are probably on a mac
which has a very low limit on max open files. Run `ulimit -Sn 1024` and try again.
You'll need to do this in each new terminal you open before building Riot.
You'll need to do this in each new terminal you open before building Element.
Running the tests
-----------------

View File

@@ -12,7 +12,7 @@
"disable_guests": false,
"disable_login_language_selector": false,
"disable_3pid_login": false,
"brand": "Riot",
"brand": "Element",
"integrations_ui_url": "https://scalar.vector.im/",
"integrations_rest_url": "https://scalar.vector.im/api",
"integrations_widgets_urls": [

View File

@@ -4,13 +4,13 @@ Configuration
You can configure the app by copying `config.sample.json` to
`config.json` and customising it:
For a good example, see https://riot.im/develop/config.json.
For a good example, see https;//develop.element.io/config.json.
1. `default_server_config` sets the default homeserver and identity server URL for
Riot to use. The object is the same as returned by [https://<server_name>/.well-known/matrix/client](https://matrix.org/docs/spec/client_server/latest.html#get-well-known-matrix-client),
Element to use. The object is the same as returned by [https://<server_name>/.well-known/matrix/client](https://matrix.org/docs/spec/client_server/latest.html#get-well-known-matrix-client),
with added support for a `server_name` under the `m.homeserver` section to display
a custom homeserver name. Alternatively, the config can contain a `default_server_name`
instead which is where Riot will go to get that same object, although this option is
instead which is where Element will go to get that same object, although this option is
deprecated - see the `.well-known` link above for more information on using this option.
Note that the `default_server_name` is used to get a complete server configuration
whereas the `server_name` in the `default_server_config` is for display purposes only.
@@ -18,10 +18,10 @@ For a good example, see https://riot.im/develop/config.json.
`default_is_url`, however these are deprecated. They are maintained for backwards
compatibility with older configurations. `default_is_url` is respected only
if `default_hs_url` is used.
* Riot will fail to load if a mix of `default_server_config`, `default_server_name`, or
* Element will fail to load if a mix of `default_server_config`, `default_server_name`, or
`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 Riot 1.4.0, identity servers are optional. See [Identity servers](#identity-servers) below.
* 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
@@ -42,7 +42,7 @@ For a good example, see https://riot.im/develop/config.json.
1. `adminMessageMD`: An extra message to show on the reporting dialog to
mention homeserver-specific policies. Accepts Markdown.
1. `integrations_ui_url`: URL to the web interface for the integrations server. The integrations
server is not Riot and normally not your homeserver either. The integration server settings
server is not Element and normally not your homeserver either. The integration server settings
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.
@@ -65,10 +65,10 @@ For a good example, see https://riot.im/develop/config.json.
1. `whitelistedISUrls`: a list of IS URLs to not redact from the analytics
1. `siteId`: The Piwik Site ID to use when sending analytics to the Piwik server configured above
1. `welcomeUserId`: the user ID of a bot to invite whenever users register that can give them a tour
1. `embeddedPages`: Configures the pages displayed in portions of Riot that
1. `embeddedPages`: Configures the pages displayed in portions of Element that
embed static files, such as:
1. `welcomeUrl`: Initial content shown on the outside of the app when not
logged in. Defaults to `welcome.html` supplied with Riot.
logged in. Defaults to `welcome.html` supplied with Element.
1. `homeUrl`: Content shown on the inside of the app when a specific room is
not selected. By default, no home page is configured. If one is set, a
button to access it will be shown in the top left menu.
@@ -80,7 +80,7 @@ For a good example, see https://riot.im/develop/config.json.
is special cased to the `default_theme` in the config file).
1. `disable_custom_urls`: disallow the user to change the
default homeserver when signing up or logging in.
1. `permalinkPrefix`: Used to change the URL that Riot generates permalinks with.
1. `permalinkPrefix`: Used to change the URL that Element generates permalinks with.
By default, this is "https://matrix.to" to generate matrix.to (spec) permalinks.
Set this to your Riot instance URL if you run an unfederated server (eg:
"https://riot.example.org").
@@ -103,14 +103,14 @@ For a good example, see https://riot.im/develop/config.json.
Defaults to true (room federation enabled).
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 Riot
appear in some websites like Facebook, and indeed Riot itself. This has to be
hosted on riot.im. This is the image used if links to your copy of Element
appear in some websites like Facebook, and indeed Element itself. This has to be
static in the HTML and an absolute URL (and HTTP rather than HTTPS), so it's
not possible for this to be an option in config.json. If you'd like to change
it, you can build Riot, but run
it, you can build Element, but run
`RIOT_OG_IMAGE_URL="http://example.com/logo.png" yarn build`.
Alternatively, you can edit the `og:image` meta tag in `index.html` directly
each time you download a new version of Riot.
each time you download a new version of Element.
Identity servers
================
@@ -119,10 +119,10 @@ The identity server is used for inviting other users to a room via third party
identifiers like emails and phone numbers. It is not used to store your password
or account information.
As of Riot 1.4.0, all identity server functions are optional and you are
As of Element 1.4.0, all identity server functions are optional and you are
prompted to agree to terms before data is sent to the identity server.
Riot will check multiple sources when looking for an identity server to use in
Element will check multiple sources when looking for an identity server to use in
the following order of preference:
1. The identity server set in the user's account data
@@ -132,7 +132,7 @@ the following order of preference:
login
3. The identity server provided by the Riot config file
If none of these sources have an identity server set, then Riot will prompt the
If none of these sources have an identity server set, then Element will prompt the
user to set an identity server first when attempting to use features that
require one.

View File

@@ -1,7 +1,7 @@
# End to end encryption by default
By default, Riot will create encrypted DM rooms if the user you are chatting with has keys uploaded on their account.
For private room creation, Riot will default to encryption on but give you the choice to opt-out.
By default, Element will create encrypted DM rooms if the user you are chatting with has keys uploaded on their account.
For private room creation, Element will default to encryption on but give you the choice to opt-out.
## Disabling encryption by default

View File

@@ -1,6 +1,6 @@
# Feature flags
When developing new features for Riot, we use feature flags to give us more
When developing new features for Element, we use feature flags to give us more
flexibility and control over when and where those features are enabled.
For example, flags make the following things possible:
@@ -88,7 +88,7 @@ and
configs.
**Warning:** While this does mean the feature is enabled by default for
https://riot.im and official Riot Desktop builds, it will not be enabled by
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

View File

@@ -1,10 +1,10 @@
# Jitsi wrapper developer docs
*If you're looking for information on how to set up Jitsi in your Riot, see
*If you're looking for information on how to set up Jitsi in your Element, see
[jitsi.md](./jitsi.md) instead.*
These docs are for developers wondering how the different conference buttons work
within Riot. If you're not a developer, you're probably looking for [jitsi.md](./jitsi.md).
within Element. If you're not a developer, you're probably looking for [jitsi.md](./jitsi.md).
## Brief introduction to widgets
@@ -17,8 +17,8 @@ in the react-sdk), though for some widgets special integration can be done. v2 w
have a `data` object which helps achieve that special integration, though v1 widgets
are best iframed and left alone.
Widgets have a `postMessage` API they can use to interact with Riot, which also allows
Riot to interact with them. Typically this is most used by the sticker picker (an
Widgets have a `postMessage` API they can use to interact with Element, which also allows
Element to interact with them. Typically this is most used by the sticker picker (an
account-level widget), though widgets like the Jitsi widget will request permissions to
get 'stuck' into the room list during a conference.
@@ -28,7 +28,7 @@ Widgets can be added with the `/addwidget <url>` command.
Integration managers (like Scalar and Dimension) are accessible via the 4 squares in
the top right of the room and provide a simple UI over top of bridges, bots, and other
stuff to plug into a room. They are a separate service to Riot and are thus iframed
stuff to plug into a room. They are a separate service to Element and are thus iframed
in a dialog as well. They also have a `postMessage` API they can use to interact with
the client to create things like widgets, give permissions to bridges, and generally
set everything up for the integration the user is working with.
@@ -51,7 +51,7 @@ over `postMessage`, even if they aren't going to be using the widget APIs).
Widgets added with the `/addwidget` command will *not* be wrapped as they are not going
through an integration manager. The widgets themselves *should* also work outside of
Riot. Widgets currently have a "pop out" button which opens them in a new tab and
Element. Widgets currently have a "pop out" button which opens them in a new tab and
therefore have no connection back to Riot.
## Jitsi widgets from integration managers
@@ -65,27 +65,27 @@ server they specified in their config.json - this is expected.
Some integration managers allow the user to change the conference name while others
will generate one for the user.
## Jitsi widgets generated by Riot itself
## Jitsi widgets generated by Element itself
When the user clicks on the call buttons by the composer, the integration manager is
not involved in the slightest. Instead, Riot itself generates a widget event, this time
not involved in the slightest. Instead, Element itself generates a widget event, this time
using the config.json parameters, and publishes that to the room. If there's only two
people in the room, a plain WebRTC call is made instead of using a widget at all - these
are defined in the Matrix specification.
The Jitsi widget created by Riot uses a local `jitsi.html` wrapper (or one hosted by
`https://riot.im/app` for desktop users or those on non-https domains) as the widget
`url`. The wrapper has some basic functionality for talking to Riot to ensure the
The Jitsi widget created by Element uses a local `jitsi.html` wrapper (or one hosted by
`https://app.element.io` for desktop users or those on non-https domains) as the widget
`url`. The wrapper has some basic functionality for talking to Element to ensure the
required `postMessage` calls are fulfilled.
**Note**: Per [jitsi.md](./jitsi.md) the `preferredDomain` can also come from the server's
client .well-known data.
## The Jitsi wrapper in Riot
## The Jitsi wrapper in Element
Whenever Riot sees a Jitsi widget, it ditches the `url` and instead replaces it with
Whenever Element sees a Jitsi widget, it ditches the `url` and instead replaces it with
its local wrapper, much like what it would do when creating a widget. However, instead
of using one from riot.im/app, it will use one local to the client instead.
of using one from [app.element.io](https://app.element.io), it will use one local to the client instead.
The wrapper is used to provide a consistent experience to users, as well as being faster
and less risky to load. The local wrapper URL is populated with the conference information

View File

@@ -1,6 +1,6 @@
# Jitsi in Riot
# Jitsi in Element
Riot uses [Jitsi](https://jitsi.org/) for conference calls, which provides options for
Element uses [Jitsi](https://jitsi.org/) for conference calls, which provides options for
self-hosting your own server and supports most major platforms.
1:1 calls, or calls between you and one other person, do not use Jitsi. Instead, those
@@ -14,13 +14,13 @@ will add a Jitsi widget which allows anyone in the room to join.
Integration managers (available through the 4 squares in the top right of the room) may
provide their own approaches for adding Jitsi widgets.
## Configuring Riot to use your self-hosted Jitsi server
## Configuring Element to use your self-hosted Jitsi server
Riot will use the Jitsi server that is embedded in the widget, even if it is not the
Element will use the Jitsi server that is embedded in the widget, even if it is not the
one you configured. This is because conference calls must be held on a single Jitsi
server and cannot be split over multiple servers.
However, you can configure Riot to *start* a conference with your Jitsi server by adding
However, you can configure Element to *start* a conference with your Jitsi server by adding
to your [config](./config.md) the following:
```json
{
@@ -30,13 +30,13 @@ to your [config](./config.md) the following:
}
```
The default is `jitsi.riot.im` (a free service offered by Riot), and the demo site for
The default is `jitsi.riot.im` (a free service offered by Element), and the demo site for
Jitsi uses `meet.jit.si` (also free).
Once you've applied the config change, refresh Riot and press the call button. This
Once you've applied the config change, refresh Element and press the call button. This
should start a new conference on your Jitsi server.
**Note**: The widget URL will point to a `jitsi.html` page hosted by Riot. The Jitsi
**Note**: The widget URL will point to a `jitsi.html` page hosted by Element. The Jitsi
domain will appear later in the URL as a configuration parameter.
**Hint**: If you want everyone on your homeserver to use the same Jitsi server by
@@ -52,7 +52,7 @@ default, and you are using riot-web 1.6 or newer, set the following on your home
## Mobile app support
Currently the Riot mobile apps do not support custom Jitsi servers and will instead
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,
they will be joining a different conference which has the same name, but not the same
participants. This is a known bug and which needs to be fixed.

View File

@@ -1,8 +1,8 @@
# Labs features
If Labs is enabled in the [Riot config](config.md), you can enable some of these features by going
If Labs is enabled in the [Element config](config.md), you can enable some of these features by going
to `Settings->Labs`. This list is non-exhaustive and subject to change, chat in
[#riot-web:matrix.org](https://matrix.to/#/#riot-web:matrix.org) for more information.
[#element-web:matrix.org](https://matrix.to/#/#element-web:matrix.org) for more information.
**Be warned! Labs features are not finalised, they may be fragile, they may change, they may be
dropped. Ask in the room if you are unclear about any details here.**
@@ -26,7 +26,7 @@ your avatar next to the message composer.
An experimental approach for dealing with custom tags. Custom tags will appear in the bottom portion
of the community filter panel.
Setting custom tags is not supported by Riot.
Setting custom tags is not supported by Element.
## Render simple counters in room header (`feature_state_counters`)
@@ -53,7 +53,7 @@ That's it. Now should see your new counter under the header.
## Multiple integration managers (`feature_many_integration_managers`)
Exposes a way to access all the integration managers known to Riot. This is an implementation of [MSC1957](https://github.com/matrix-org/matrix-doc/pull/1957).
Exposes a way to access all the integration managers known to Element. This is an implementation of [MSC1957](https://github.com/matrix-org/matrix-doc/pull/1957).
## New ways to ignore people (`feature_mjolnir`)
@@ -88,26 +88,9 @@ person is online.
## Custom themes (`feature_custom_themes`)
Custom themes are possible through Riot's [theme support](./theming.md), though
normally these themes need to be defined in the config for Riot. This labs flag
Custom themes are possible through Element's [theme support](./theming.md), though
normally these themes need to be defined in the config for Element. This labs flag
adds an ability for end users to add themes themselves by using a URL to the JSON
theme definition.
For some sample themes, check out [aaronraimist/riot-web-themes](https://github.com/aaronraimist/riot-web-themes).
## New room list
A complete rewrite of the room list is underway to increase performance, stability,
and general usability.
In the event the new room list needs to be disabled, add this to your config.json:
```json
{
"settingDefaults": {
"feature_new_room_list": false
}
}
```
**Note**: In a future release the new room list will not be optional.
For some sample themes, check out [aaronraimist/element-themes](https://github.com/aaronraimist/element-themes).

View File

@@ -1,6 +1,6 @@
## Memory leaks
Riot usually emits slow behaviour just before it is about to crash. Getting a
Element usually emits slow behaviour just before it is about to crash. Getting a
memory snapshot (below) just before that happens is ideal in figuring out what
is going wrong.
@@ -14,14 +14,14 @@ this happens though so we can try and narrow down what might have gone wrong.
## Memory profiles/snapshots
When investigating memory leaks/problems it's usually important to compare snapshots
from different points in the Riot session lifecycle. Most importantly, a snapshot
from different points in the Element session lifecycle. Most importantly, a snapshot
to establish the baseline or "normal" memory usage is useful. Taking a snapshot
roughly 30-60 minutes after starting Riot is a good time to establish "normal"
roughly 30-60 minutes after starting Element is a good time to establish "normal"
memory usage for the app - anything after that is at risk of hiding the memory leak
and anything newer is still in the warmup stages of the app.
**Memory profiles can contain sensitive information.** If you are submitting a memory
profile to us for debugging purposes, please pick the appropriate Riot developer and
profile to us for debugging purposes, please pick the appropriate Element developer and
send them over an encrypted private message. *Do not share your memory profile in
public channels or with people you do not trust.*
@@ -42,7 +42,7 @@ While the profile is in progress, the tab might be frozen or unresponsive.
1. Press CTRL+SHIFT+I (I as in eye).
2. Click the Memory tab.
3. Select "Heap Snapshot" and the riot.im VM instance (not the indexeddb one).
3. Select "Heap Snapshot" and the app.element.io VM instance (not the indexeddb one).
4. Click "Take Snapshot".
5. Wait a bit (coffee is a good option).
6. When the save button appears on the left side of the panel, click it to save the

View File

@@ -1,24 +1,24 @@
# Native Node Modules
For some features, the desktop version of Riot can make use of native Node
For some features, the desktop version of Element can make use of native Node
modules. These allow Riot to integrate with the desktop in ways that a browser
cannot.
While native modules enable powerful new features, they must be complied for
each operating system. For official Riot releases, we will always build these
each operating system. For official Element releases, we will always build these
modules from source to ensure we can trust the compiled output. In the future,
we may offer a pre-compiled path for those who want to use these features in a
custom build of Riot without installing the various build tools required.
custom build of Element without installing the various build tools required.
Do note that compiling a module for a particular operating system
(Linux/macOS/Windows) will need to be done on that operating system.
Cross-compiling from a host OS for a different target OS may be possible, but
we don't support this flow with Riot dependencies at this time.
we don't support this flow with Element dependencies at this time.
At the moment, we need to make some changes to the Riot release process before
At the moment, we need to make some changes to the Element release process before
we can support native Node modules at release time, so these features are
currently disabled by default until that is resolved. The following sections
explain the manual steps you can use with a custom build of Riot to enable
explain the manual steps you can use with a custom build of Element to enable
these features if you'd like to try them out.
## Adding Seshat for search in E2E encrypted rooms
@@ -53,7 +53,7 @@ Please make sure to include all the `--` as well as the `--release` command line
switch at the end. Modify your electron version accordingly depending on the
version that is installed on your system.
After this is done the Electron version of Riot can be run from the main folder
After this is done the Electron version of Element can be run from the main folder
as usual using:
yarn electron

View File

@@ -1,7 +1,7 @@
# Review Guidelines
The following summarises review guidelines that we follow for pull requests in
Riot Web and other supporting repos. These are just guidelines (not strict
Element Web and other supporting repos. These are just guidelines (not strict
rules) and may be updated over time.
## Code Review
@@ -58,7 +58,7 @@ When reviewing code, here are some things we look for and also things we avoid:
## Design and Product Review
We want to ensure that all changes to Riot fit with our design and product
We want to ensure that all changes to Element fit with our design and product
vision. We often request review from those teams so they can provide their
perspective.
@@ -72,11 +72,11 @@ functionality is:
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 Riot (hosted anywhere) that can be used for
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.
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.

View File

@@ -5,14 +5,14 @@ matrix-react-sdk
- base CSS
- all the components needed to build a workable app (including the top layer)
riot-web: the riot skin
- riot-specific classes (e.g. login header/footer)
- riot-specific themes
element-web: the Element skin
- Element-specific classes (e.g. login header/footer)
- Element-specific themes
- light
- dark
i.e. the only things which should go into riot-web are bits which apply vector-specific skinning
specifically "Stuff that any other brand would not want to use. (e.g. riot logos, links, T&Cs)"
i.e. the only things which should go into element-web are bits which apply vector-specific skinning
specifically "Stuff that any other brand would not want to use. (e.g. Element logos, links, T&Cs)"
- Questions:
- Electron app? (should probably be a separate repo in its own right? but might as well go here for now)
- index.html & index.js? (should be in matrix-react-sdk, given the SDK is useless without them?)
@@ -21,7 +21,7 @@ ideally matrix-react-sdk itself should ship with a default skin which actually w
status skin (can go in the same app for now)
- has status theme
- which inherits from riot light theme
- which inherits from Element light theme
- how do we share graphics between skins?
- shove them into react-sdk, or...
- guess we do ../../vector/img
@@ -64,5 +64,5 @@ random thoughts;
-----------------
Immediate plan for Status:
* Implement it as a theme for the riot skin
* Implement it as a theme for the Element skin
* Ideally move skins to a sensible level (possibly even including src?)

View File

@@ -1,14 +1,14 @@
Theming Riot
Theming Element
============
Themes are a very basic way of providing simple alternative look & feels to the
riot-web app via CSS & custom imagery.
Element app via CSS & custom imagery.
They are *NOT* co be confused with 'skins', which describe apps which sit on top
of matrix-react-sdk - e.g. in theory Riot itself is a react-sdk skin.
As of Jan 2017, skins are not fully supported; riot is the only available skin.
of matrix-react-sdk - e.g. in theory Element itself is a react-sdk skin.
As of Jan 2017, skins are not fully supported; Element is the only available skin.
To define a theme for Riot:
To define a theme for Element:
1. Pick a name, e.g. `teal`. at time of writing we have `light` and `dark`.
2. Fork `src/skins/vector/css/themes/dark.scss` to be `teal.scss`

View File

@@ -1,4 +1,4 @@
# How to translate riot-web (Dev Guide)
# How to translate Element (Dev Guide)
## Requirements
@@ -6,7 +6,7 @@
- Including up-to-date versions of matrix-react-sdk and matrix-js-sdk
- Latest LTS version of Node.js installed
- Be able to understand English
- Be able to understand the language you want to translate riot-web into
- Be able to understand the language you want to translate Element into
## Translating strings vs. marking strings for translation

View File

@@ -1,10 +1,10 @@
# How to translate riot-web
# How to translate Element
## Requirements
- Web Browser
- Be able to understand English
- Be able to understand the language you want to translate riot-web into
- Be able to understand the language you want to translate Element into
## Step 0: Join #riotweb-translations:matrix.org
@@ -17,7 +17,7 @@
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 Riot Web as Project
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
@@ -50,7 +50,7 @@ The yellow button has to be used if you are unsure about the translation but you
### What are "%(something)s"?
These things are variables that are expanded when displayed by Riot. They can be room names, usernames or similar. If you find one, you can move to the right place for your language, but not delete it as the variable will be missing if you do.
These things are variables that are expanded when displayed by Element. They can be room names, usernames or similar. If you find one, you can move to the right place for your language, but not delete it as the variable will be missing if you do.
A special case is `%(urlStart)s` and `%(urlEnd)s` which are used to mark the beginning of a hyperlink (i.e. `<a href="/somewhere">` and `</a>`. You must keep these markers surrounding the equivalent string in your language that needs to be hyperlinked.

View File

@@ -10,7 +10,7 @@
"https://scalar-staging.vector.im/api",
"https://scalar-staging.riot.im/scalar/api"
],
"hosting_signup_link": "https://modular.im/services/matrix-hosting-riot?utm_source=riot-web&utm_medium=web",
"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": {
},

View File

@@ -10,7 +10,7 @@
"https://scalar-staging.vector.im/api",
"https://scalar-staging.riot.im/scalar/api"
],
"hosting_signup_link": "https://modular.im/services/matrix-hosting-riot?utm_source=riot-web&utm_medium=web",
"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",

View File

@@ -1,7 +1,7 @@
{
"name": "riot-web",
"productName": "Riot",
"version": "1.6.8",
"version": "1.7.1",
"description": "A feature-rich client for Matrix.org",
"author": "New Vector Ltd.",
"repository": {
@@ -42,16 +42,15 @@
"build:genfiles": "yarn reskindex && yarn build:res && yarn build:jitsi",
"build:modernizr": "modernizr -c .modernizr.json -d src/vector/modernizr.js",
"build:compile": "babel -d lib --verbose --extensions \".ts,.js,.tsx\" src",
"build:bundle": "cross-env NODE_ENV=production webpack -p --progress --bail --mode production",
"build:bundle-stats": "cross-env NODE_ENV=production webpack -p --progress --bail --mode production --json > webpack-stats.json",
"build:bundle": "webpack --progress --bail --mode production",
"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: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:ts && yarn lint:js && yarn lint:style",
"lint": "yarn lint:types && yarn lint:js && yarn lint:style",
"lint:js": "eslint src",
"lint:ts": "echo 'We don't actually have a typescript linter at this layer because tslint is being removed from our stack. Presumably your TS is fine.'",
"lint:types": "tsc --noEmit --jsx react",
"lint:style": "stylelint 'res/css/**/*.scss'",
"test": "jest"
@@ -63,7 +62,6 @@
"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",
"postcss-easings": "^2.0.0",
"prop-types": "^15.7.2",
"react": "^16.9.0",
"react-dom": "^16.9.0",
@@ -101,10 +99,10 @@
"chokidar": "^3.3.1",
"concurrently": "^4.0.1",
"cpx": "^1.3.2",
"cross-env": "^6.0.3",
"css-loader": "^3.3.2",
"eslint": "^5.8.0",
"eslint": "7.3.1",
"eslint-config-google": "^0.7.1",
"eslint-config-matrix-org": "^0.1.2",
"eslint-plugin-babel": "^4.1.2",
"eslint-plugin-flowtype": "^2.50.3",
"eslint-plugin-jest": "^23.0.4",
@@ -127,6 +125,7 @@
"modernizr": "^3.6.0",
"node-fetch": "^2.6.0",
"optimize-css-assets-webpack-plugin": "^5.0.3",
"postcss-easings": "^2.0.0",
"postcss-extend": "^1.0.5",
"postcss-hexrgba": "^2.0.0",
"postcss-import": "^12.0.1",

View File

@@ -1,6 +1,6 @@
#!/bin/bash
#
# Script to perform a release of riot-web.
# Script to perform a release of element-web.
#
# Requires github-changelog-generator; to install, do
# pip install git+https://github.com/matrix-org/github-changelog-generator.git

View File

@@ -74,12 +74,12 @@
"related_applications": [
{
"platform": "play",
"url": "https://play.google.com/store/apps/details?id=im.vector.alpha",
"id": "im.vector.alpha"
"url": "https://play.google.com/store/apps/details?id=im.vector.app",
"id": "im.vector.app"
},
{
"platform": "itunes",
"url": "https://itunes.apple.com/gb/app/riot-open-source-team-collaboration-via-matrix/id1083446067"
"url": "https://apps.apple.com/app/vector/id1083446067"
}
]
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 KiB

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.2 KiB

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.7 KiB

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 651 B

After

Width:  |  Height:  |  Size: 434 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.4 KiB

After

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 KiB

After

Width:  |  Height:  |  Size: 629 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 732 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.1 KiB

After

Width:  |  Height:  |  Size: 4.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.0 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 KiB

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 KiB

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.4 KiB

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 803 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 837 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 974 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 KiB

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.3 KiB

After

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 940 B

View File

@@ -1,6 +1,6 @@
#!/bin/bash
# Runs package.sh setting the version to git hashes of the riot-web,
# Runs package.sh setting the version to git hashes of the element-web,
# react-sdk & js-sdk checkouts, for the case where these dependencies
# are git checkouts.

View File

@@ -34,6 +34,6 @@ yarn link matrix-js-sdk
yarn --network-timeout=100000 install
cd ../
echo "Setting up riot-web with react-sdk and js-sdk packages"
echo "Setting up element-web with react-sdk and js-sdk packages"
yarn link matrix-js-sdk
yarn link matrix-react-sdk

View File

@@ -78,7 +78,7 @@ const CompatibilityView: React.FC<IProps> = ({ onAccept }) => {
<div>
<h2 id="step2_heading">Use Element on mobile</h2>
<p><strong>iOS</strong> (iPhone or iPad)</p>
<a href="https://itunes.apple.com/app/riot-im/id1083446067?mt=8" target="_blank"
<a href="https://apps.apple.com/app/vector/id1083446067" target="_blank"
className="mx_ClearDecoration">
<img height="48" src="themes/element/img/download/apple.svg" alt="Apple App Store" />
</a>

View File

@@ -29,6 +29,7 @@ export default class VectorEmbeddedPage extends EmbeddedPage {
translate(s) {
s = sanitizeHtml(_t(s));
// 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

@@ -22,8 +22,8 @@ import { _t } from 'matrix-react-sdk/src/languageHandler';
const VectorAuthFooter = () => {
const brandingConfig = SdkConfig.get().branding;
let links = [
{"text": "blog", "url": "https://blog.riot.im"},
{"text": "twitter", "url": "https://twitter.com/@RiotChat"},
{"text": "blog", "url": "https://element.io/blog"},
{"text": "twitter", "url": "https://twitter.com/element_hq"},
{"text": "github", "url": "https://github.com/vector-im/riot-web"},
];

View File

@@ -52,7 +52,7 @@ export default class Favicon {
private context: CanvasRenderingContext2D;
private icons: HTMLLinkElement[];
private isReady: boolean = false;
private isReady = false;
// callback to run once isReady is asserted, allows for a badge to be queued for when it can be shown
private readyCb = () => {};

View File

@@ -18,7 +18,7 @@ import request from 'browser-request';
// Load the config file. First try to load up a domain-specific config of the
// form "config.$domain.json" and if that fails, fall back to config.json.
export async function getVectorConfig(relativeLocation: string='') {
export async function getVectorConfig(relativeLocation='') {
if (relativeLocation !== '' && !relativeLocation.endsWith('/')) relativeLocation += '/';
const specificConfigPromise = getConfig(`${relativeLocation}config.${document.domain}.json`);

View File

@@ -175,8 +175,12 @@ async function start() {
if (error.err && error.err instanceof SyntaxError) {
// This uses the default brand since the app config is unavailable.
return showError(_t("Your Element is misconfigured"), [
_t("Your Element configuration contains invalid JSON. Please correct the problem and reload the page."),
_t("The message from the parser is: %(message)s", { message: error.err.message || _t("Invalid JSON")}),
_t("Your Element configuration contains invalid JSON. " +
"Please correct the problem and reload the page."),
_t(
"The message from the parser is: %(message)s",
{ message: error.err.message || _t("Invalid JSON") },
),
]);
}
return showError(_t("Unable to load config file: please refresh the page to try again."));
@@ -210,6 +214,7 @@ start().catch(err => {
// with some basic styling to make the iframe full page
delete document.body.style.height;
const iframe = document.createElement("iframe");
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore - typescript seems to only like the IE syntax for iframe sandboxing
iframe["sandbox"] = "";
iframe.src = supportedBrowser ? "static/unable-to-load.html" : "static/incompatible-browser.html";

View File

@@ -23,7 +23,7 @@ import { Capability, WidgetApi } from "matrix-react-sdk/src/widgets/WidgetApi";
// Dev note: we use raw JS without many dependencies to reduce bundle size.
// We do not need all of React to render a Jitsi conference.
declare var JitsiMeetExternalAPI: any;
declare let JitsiMeetExternalAPI: any;
let inConference = false;
@@ -36,7 +36,7 @@ let userId: string;
let widgetApi: WidgetApi;
(async function () {
(async function() {
try {
// The widget's options are encoded into the fragment to avoid leaking info to the server. The widget
// spec on the other hand requires the widgetId and parentUrl to show up in the regular query string.

View File

@@ -161,7 +161,7 @@ body {
<div>
<h2 id="step1_heading">Install the app</h2>
<p><strong>iOS</strong> (iPhone or iPad)</p>
<a href="https://itunes.apple.com/app/riot-im/id1083446067?mt=8" target="_blank" class="mx_ClearDecoration">
<a href="https://apps.apple.com/app/vector/id1083446067" target="_blank" class="mx_ClearDecoration">
<svg width="144px" height="48px" viewBox="0 0 120 40" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<desc>Download on the App Store.</desc>
<defs></defs>

View File

@@ -29,7 +29,7 @@ function renderConfigError(message) {
async function initPage() {
document.getElementById('back_to_element_button').onclick = onBackToElementClick;
let config = await getVectorConfig('..');
const config = await getVectorConfig('..');
// We manually parse the config similar to how validateServerConfig works because
// calling that function pulls in roughly 4mb of JS we don't use.

View File

@@ -46,7 +46,7 @@ import {Action} from "matrix-react-sdk/src/dispatcher/actions";
import {ActionPayload} from "matrix-react-sdk/src/dispatcher/payloads";
import {showToast as showUpdateToast} from "matrix-react-sdk/src/toasts/UpdateToast";
import {CheckUpdatesPayload} from "matrix-react-sdk/src/dispatcher/payloads/CheckUpdatesPayload";
import ToastStore from "matrix-react-sdk/src/stores/ToastStore";
import ToastStore, {Priority} from "matrix-react-sdk/src/stores/ToastStore";
import GenericExpiringToast from "matrix-react-sdk/src/components/views/toasts/GenericExpiringToast";
const ipcRenderer = window.ipcRenderer;
@@ -266,7 +266,7 @@ export default class ElectronPlatform extends VectorBasePlatform {
numSeconds: 10,
},
component: GenericExpiringToast,
priority: 99,
priority: Priority.DownloadCompleted,
});
});
@@ -502,8 +502,8 @@ export default class ElectronPlatform extends VectorBasePlatform {
getSSOCallbackUrl(fragmentAfterLogin: string): URL {
const url = super.getSSOCallbackUrl(fragmentAfterLogin);
url.protocol = "riot";
url.searchParams.set("riot-desktop-ssoid", this.ssoID);
url.protocol = "element";
url.searchParams.set("element-desktop-ssoid", this.ssoID);
return url;
}

View File

@@ -163,7 +163,7 @@
<div>
<h2 id="step2_heading">Use Element on mobile</h2>
<p><strong>iOS</strong> (iPhone or iPad)</p>
<a href="https://itunes.apple.com/app/riot-im/id1083446067?mt=8" target="_blank"
<a href="https://apps.apple.com/app/vector/id1083446067" target="_blank"
class="mx_ClearDecoration">
<svg width="144px" height="48px" viewBox="0 0 120 40" version="1.1"
xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">

View File

@@ -11,16 +11,18 @@ if (!og_image_url) og_image_url = 'https://app.element.io/themes/element/img/log
module.exports = (env, argv) => {
if (process.env.CI_PACKAGE) {
// Don't run minification for CI builds (this is only set for runs on develop)
// We override this via environment variable to avoid duplicating the scripts
// in `package.json` just for a different mode.
argv.mode = "development";
}
const development = {};
if (argv.mode !== "production") {
if (argv.mode === "production") {
development['devtool'] = 'nosources-source-map';
} else {
// This makes the sourcemaps human readable for developers. We use eval-source-map
// because the plain source-map devtool ruins the alignment.
development['devtool'] = 'eval-source-map';
} else {
development['devtool'] = 'nosources-source-map';
}
// Resolve the directories for the react-sdk and js-sdk for later use. We resolve these early so we
@@ -296,12 +298,6 @@ module.exports = (env, argv) => {
},
plugins: [
new webpack.DefinePlugin({
'process.env': {
NODE_ENV: JSON.stringify(process.env.NODE_ENV),
},
}),
// This exports our CSS using the splitChunks and loaders above.
new MiniCssExtractPlugin({
filename: 'bundles/[hash]/[name].css',

718
yarn.lock

File diff suppressed because it is too large Load Diff