Compare commits

...

108 Commits

Author SHA1 Message Date
Travis Ralston
6fd28421b3 Appease random package in wrapper 2021-03-15 16:59:11 -06:00
Travis Ralston
e13cb66e32 Merge branch 'develop' into travis/inline-widgets 2021-03-15 16:37:40 -06:00
RiotRobot
ba28c6d57a Reset matrix-react-sdk back to develop branch 2021-03-15 15:02:17 +00:00
RiotRobot
36789fbd65 Reset matrix-js-sdk back to develop branch 2021-03-15 15:02:04 +00:00
RiotRobot
1c7828e7c2 v1.7.23 2021-03-15 14:58:22 +00:00
RiotRobot
597c18932b Prepare changelog for v1.7.23 2021-03-15 14:58:22 +00:00
RiotRobot
84b21576bd Upgrade matrix-react-sdk to 3.16.0 2021-03-15 14:55:18 +00:00
RiotRobot
0c14e45d65 Upgrade matrix-js-sdk to 9.9.0 2021-03-15 14:53:21 +00:00
RiotRobot
9789f411d0 v1.7.23-rc.1 2021-03-10 18:15:12 +00:00
RiotRobot
127683e98a Prepare changelog for v1.7.23-rc.1 2021-03-10 18:15:11 +00:00
RiotRobot
b7e9da9e40 Upgrade matrix-react-sdk to 3.16.0-rc.2 2021-03-10 18:12:25 +00:00
RiotRobot
8aba3cf437 Upgrade matrix-react-sdk to 3.16.0-rc.1 2021-03-10 17:34:05 +00:00
RiotRobot
bb10b7ad48 Upgrade matrix-js-sdk to 9.9.0-rc.1 2021-03-10 17:33:39 +00:00
J. Ryan Stinnett
101e0592fe Merge pull request #16655 from RiotTranslateBot/weblate-element-web-element-web
Translations update from Weblate
2021-03-10 15:57:17 +00:00
Weblate
c10e8984e7 Merge branch 'origin/develop' into Weblate. 2021-03-10 15:56:11 +00:00
Travis Ralston
52e54b408f Merge pull request #16652 from vector-im/travis/customisations-docs
Improve docs for customisations
2021-03-10 07:24:13 -07:00
J. Ryan Stinnett
779a4912d5 Merge pull request #16612 from vector-im/jryans/triage-2021
Update triage guide to match the new label scheme
2021-03-10 14:06:37 +00:00
J. Ryan Stinnett
cc81cc714c Add other conceptual themes 2021-03-10 14:05:34 +00:00
Travis Ralston
e2ce4239bd Improve docs for customisations
The new regex considers Windows as an OS, and the added array helps reduce merge conflicts for the future.
2021-03-09 14:17:51 -07:00
Travis Ralston
b8b13a6316 Merge pull request #16650 from vector-im/travis/use-strict-no
Remove a couple useless 'use strict' calls
2021-03-09 12:44:51 -07:00
Travis Ralston
1c7cf8645e Remove a couple useless 'use strict' calls 2021-03-09 12:06:59 -07:00
J. Ryan Stinnett
d9627cbe67 Merge pull request #16648 from vector-im/jryans/rm-conf-doc
Remove old conferencing doc
2021-03-09 13:35:03 +00:00
J. Ryan Stinnett
134618f4cd Remove old conferencing doc
This old document from 2015 has no connection to the current state of
conferencing, so best to remove it to avoid confusion.
2021-03-09 13:23:18 +00:00
Travis Ralston
c191eb5462 Merge pull request #16644 from vector-im/dependabot/npm_and_yarn/elliptic-6.5.4
Bump elliptic from 6.5.3 to 6.5.4
2021-03-08 18:46:58 -07:00
dependabot[bot]
dccbb79340 Bump elliptic from 6.5.3 to 6.5.4
Bumps [elliptic](https://github.com/indutny/elliptic) from 6.5.3 to 6.5.4.
- [Release notes](https://github.com/indutny/elliptic/releases)
- [Commits](https://github.com/indutny/elliptic/compare/v6.5.3...v6.5.4)

Signed-off-by: dependabot[bot] <support@github.com>
2021-03-09 01:28:16 +00:00
gilcanetasdias
a67b2329ba Translated using Weblate (Portuguese)
Currently translated at 84.8% (28 of 33 strings)

Translation: Element Web/element-web
Translate-URL: https://translate.element.io/projects/element-web/element-web/pt/
2021-03-08 17:34:08 +00:00
Helder Ferreira
4b092d49c6 Translated using Weblate (Portuguese)
Currently translated at 84.8% (28 of 33 strings)

Translation: Element Web/element-web
Translate-URL: https://translate.element.io/projects/element-web/element-web/pt/
2021-03-08 17:34:08 +00:00
David Baker
49d103aab6 Merge pull request #16604 from vector-im/dbkr/audiostream
Add option for audio live streaming
2021-03-08 11:50:51 +00:00
J. Ryan Stinnett
6afd289bcb Tweak area label copy 2021-03-05 16:51:25 +00:00
J. Ryan Stinnett
4fc499b9e3 Fold UX template into main bug template 2021-03-05 16:49:46 +00:00
J. Ryan Stinnett
0469805eb1 Update triage guide to match the new label scheme
Element Web issue labels have been changed to match a new scheme that has been
piloted by the [Synapse
team](https://github.com/matrix-org/synapse/issues/9460). The new triage
guidance here is largely borrowed from the Synapse guide, but with some
Element-specifics to reflect how we use priority, add code areas, etc.
2021-03-05 16:36:51 +00:00
Travis Ralston
df2654f94a Merge pull request #16605 from vector-im/travis/fix-rr
Update velocity-animate dependency
2021-03-05 08:41:01 -07:00
J. Ryan Stinnett
3da0957859 Merge pull request #16611 from vector-im/jryans/edge
Add Edge to the supported tier
2021-03-05 13:31:02 +00:00
J. Ryan Stinnett
5056e14060 Add Edge to the supported tier
Fixes https://github.com/vector-im/element-web/issues/9175
2021-03-05 13:18:15 +00:00
HelaBasa
655c7a9b29 Translated using Weblate (Sinhala)
Currently translated at 18.1% (6 of 33 strings)

Translation: Element Web/element-web
Translate-URL: https://translate.element.io/projects/element-web/element-web/si/
2021-03-04 21:34:07 +00:00
Roel ter Maat
bd60faec1f Translated using Weblate (Dutch)
Currently translated at 100.0% (33 of 33 strings)

Translation: Element Web/element-web
Translate-URL: https://translate.element.io/projects/element-web/element-web/nl/
2021-03-04 21:34:07 +00:00
iaiz
6b40714d80 Translated using Weblate (Spanish)
Currently translated at 100.0% (33 of 33 strings)

Translation: Element Web/element-web
Translate-URL: https://translate.element.io/projects/element-web/element-web/es/
2021-03-04 21:34:07 +00:00
Vicent
f4e98baf16 Translated using Weblate (German)
Currently translated at 100.0% (33 of 33 strings)

Translation: Element Web/element-web
Translate-URL: https://translate.element.io/projects/element-web/element-web/de/
2021-03-04 21:34:07 +00:00
Travis Ralston
53e8f5d3ff Update velocity-animate dependency 2021-03-04 11:25:28 -07:00
David Baker
b910fcd38a Add option for audio live streaming
Starts jitsi streaming to a specially configured URL so that the
jitsi server can start an audio-only stream, in combination with an
API to manage audio streams by room ID.
2021-03-04 18:00:55 +00:00
J. Ryan Stinnett
4f0fccfe96 Merge pull request #15851 from SimonBrandner/feature-multi-language-spell-check
Add multi language spell check
2021-03-02 14:38:29 +00:00
Šimon Brandner
86d7652d93 Merge branch 'feature-multi-language-spell-check' of https://github.com/SimonBrandner/element-web into feature-multi-language-spell-check 2021-03-02 14:58:58 +01:00
Šimon Brandner
c745991a9a Remove duplicate supportsMultiLanguageSpellCheck()
Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>
2021-03-02 14:58:40 +01:00
Šimon Brandner
0f7a42258c Add a comment
Co-authored-by: J. Ryan Stinnett <jryans@gmail.com>
2021-03-02 14:53:04 +01:00
RiotRobot
c7bb6b2272 Reset matrix-react-sdk back to develop branch 2021-03-01 13:21:51 +00:00
RiotRobot
b0bc4b2816 Reset matrix-js-sdk back to develop branch 2021-03-01 13:21:39 +00:00
RiotRobot
3586142d69 Merge branch 'master' into develop 2021-03-01 13:21:26 +00:00
RiotRobot
06798f3030 v1.7.22 2021-03-01 13:18:19 +00:00
RiotRobot
594c07b2d9 Prepare changelog for v1.7.22 2021-03-01 13:18:18 +00:00
RiotRobot
f94f97d83a Upgrade matrix-react-sdk to 3.15.0 2021-03-01 13:13:14 +00:00
RiotRobot
799f60c0ee Upgrade matrix-js-sdk to 9.8.0 2021-03-01 13:12:50 +00:00
linsui
06af1f056f Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (33 of 33 strings)

Translation: Element Web/element-web
Translate-URL: https://translate.element.io/projects/element-web/element-web/zh_Hans/
2021-02-28 11:34:06 +00:00
Ricardo
621e09ebbc Translated using Weblate (Spanish)
Currently translated at 100.0% (33 of 33 strings)

Translation: Element Web/element-web
Translate-URL: https://translate.element.io/projects/element-web/element-web/es/
2021-02-28 11:34:06 +00:00
Lizzy
8a0ed198e6 Translated using Weblate (Spanish)
Currently translated at 100.0% (33 of 33 strings)

Translation: Element Web/element-web
Translate-URL: https://translate.element.io/projects/element-web/element-web/es/
2021-02-27 11:12:43 +00:00
Ricardo
322cdb1bec Translated using Weblate (Spanish)
Currently translated at 100.0% (33 of 33 strings)

Translation: Element Web/element-web
Translate-URL: https://translate.element.io/projects/element-web/element-web/es/
2021-02-27 11:12:43 +00:00
Will Hunt
8fadfb0a57 Translated using Weblate (Spanish)
Currently translated at 100.0% (33 of 33 strings)

Translation: Element Web/element-web
Translate-URL: https://translate.element.io/projects/element-web/element-web/es/
2021-02-27 11:12:43 +00:00
Trendyne
5417d70340 Translated using Weblate (Icelandic)
Currently translated at 100.0% (33 of 33 strings)

Translation: Element Web/element-web
Translate-URL: https://translate.element.io/projects/element-web/element-web/is/
2021-02-26 14:34:05 +00:00
Thibault Martin
a9850008cf Translated using Weblate (French)
Currently translated at 100.0% (33 of 33 strings)

Translation: Element Web/element-web
Translate-URL: https://translate.element.io/projects/element-web/element-web/fr/
2021-02-26 14:34:05 +00:00
Michael Telatynski
83f28d465b Merge pull request #16538 from vector-im/t3chguy/spaces2
Document feature_spaces
2021-02-25 16:22:43 +00:00
Michael Telatynski
f0a8f166c9 Update docs/labs.md
Co-authored-by: J. Ryan Stinnett <jryans@gmail.com>
2021-02-25 15:38:28 +00:00
Michael Telatynski
f941169da3 Document feature_spaces 2021-02-25 12:21:30 +00:00
RiotRobot
4f13b707bb v1.7.22-rc.1 2021-02-24 17:39:09 +00:00
RiotRobot
aff0c9823e Prepare changelog for v1.7.22-rc.1 2021-02-24 17:39:08 +00:00
RiotRobot
c3c1a5da8d Upgrade matrix-react-sdk to 3.15.0-rc.1 2021-02-24 17:36:33 +00:00
RiotRobot
d35d6f253b Upgrade matrix-js-sdk to 9.8.0-rc.1 2021-02-24 17:35:58 +00:00
J. Ryan Stinnett
29fb984062 Merge pull request #16529 from RiotTranslateBot/weblate-element-web-element-web
Translations update from Weblate
2021-02-24 17:13:56 +00:00
Weblate
6c3530d249 Merge branch 'origin/develop' into Weblate. 2021-02-24 17:11:42 +00:00
Thibault Martin
d63f5a2282 Translated using Weblate (French)
Currently translated at 100.0% (33 of 33 strings)

Translation: Element Web/element-web
Translate-URL: https://translate.element.io/projects/element-web/element-web/fr/
2021-02-24 17:11:40 +00:00
J. Ryan Stinnett
2b7dbb4fce Merge pull request #16515 from vector-im/jaywink/host-signup-config-element-home
Add hostSignup config for element.io clients
2021-02-23 10:07:46 +00:00
Jason Robinson
aaecbab4b9 Add hostSignup config for element.io clients
The hostSignup dialog will be configured to a host setup wizard at EMS for the Element Home product.
2021-02-23 11:56:22 +02:00
libexus
220ee62d38 Translated using Weblate (German)
Currently translated at 100.0% (33 of 33 strings)

Translation: Element Web/element-web
Translate-URL: https://translate.element.io/projects/element-web/element-web/de/
2021-02-20 16:34:03 +00:00
Šimon Brandner
8cf2ab436d Use getSpellCheckLanguages() instead of a setting
Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>
2021-02-18 20:12:51 +01:00
Šimon Brandner
4961037dbe Remove setting languages on startup
Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>
2021-02-18 19:16:33 +01:00
Šimon Brandner
5f15ee4ea5 Mark macOS as false
Signed-off-by: Šimon Brandner <simon.bra.ag@gmail.com>
2021-02-18 19:05:40 +01:00
Šimon Brandner
9953bc3b22 Merge branch 'develop' into feature-multi-language-spell-check 2021-02-18 18:16:37 +01:00
David Baker
29fd47d611 Merge pull request #16442 from vector-im/dbkr/virtual_rooms_v2
VoIP virtual rooms, mkII
2021-02-18 13:18:22 +00:00
RiotRobot
e18bf6be86 Reset matrix-react-sdk back to develop branch 2021-02-16 11:21:21 +00:00
RiotRobot
7562fd3703 Reset matrix-js-sdk back to develop branch 2021-02-16 11:21:08 +00:00
RiotRobot
57f0d5191d Merge branch 'master' into develop 2021-02-16 11:20:55 +00:00
RiotRobot
dd0e2e52f8 v1.7.21 2021-02-16 11:18:00 +00:00
RiotRobot
2e00314dc0 Prepare changelog for v1.7.21 2021-02-16 11:18:00 +00:00
RiotRobot
afb469ce42 Upgrade matrix-react-sdk to 3.14.0 2021-02-16 11:14:40 +00:00
RiotRobot
31ec953a92 Upgrade matrix-js-sdk to 9.7.0 2021-02-16 11:11:43 +00:00
Travis Ralston
94a5cd3f83 Merge pull request #16456 from vector-im/travis/sensible-jitsi-names
Jitsi widget: Read room name from query parameters
2021-02-15 10:30:12 -07:00
Travis Ralston
c67951f254 Jitsi widget: Read room name from query parameters
This is an aesthetic change to the Jitsi widget and has no bearing on the widget's functionality.

Paired with https://github.com/matrix-org/matrix-react-sdk/pull/5649
2021-02-15 08:54:56 -07:00
vachan-maker
aface37853 Translated using Weblate (Malayalam)
Currently translated at 60.6% (20 of 33 strings)

Translation: Element Web/element-web
Translate-URL: https://translate.element.io/projects/element-web/element-web/ml/
2021-02-14 08:39:59 +00:00
David Baker
46af8ba17a VoIP virtual rooms, mkII
or: remove the virtual room mapping config option

as per https://github.com/matrix-org/matrix-react-sdk/pull/5639
2021-02-12 20:59:17 +00:00
Men770
beb922cbfa Translated using Weblate (Hebrew)
Currently translated at 100.0% (33 of 33 strings)

Translation: Element Web/element-web
Translate-URL: https://translate.element.io/projects/element-web/element-web/he/
2021-02-12 09:33:32 +00:00
Michael Telatynski
19a07bc4a2 Merge pull request #16415 from bekliev/fix/sso-redirect
fix / sso: make sure to delete only loginToken after redirect
2021-02-11 16:57:28 +00:00
Michael Telatynski
438eef0acd Update src/vector/app.tsx 2021-02-11 16:27:55 +00:00
Michael Telatynski
e15d1c1501 Update src/vector/platform/WebPlatform.ts 2021-02-11 16:27:30 +00:00
Ibragim/Parviz Bekliev
92a5787528 Migrating from Node's deprecated url API to browser's URL
Related to https://github.com/vector-im/element-web/pull/16292

Signed-off-by: Bekliev Parviz <nightkon95@gmail.com>
2021-02-11 18:59:59 +03:00
J. Ryan Stinnett
af2da9d371 Merge pull request #16433 from vector-im/jryans/disable-countly
Disable Countly
2021-02-11 15:26:50 +00:00
J. Ryan Stinnett
68c36ebb49 Disable Countly
The Countly experiment has ended, so this removes the configuration to enable
it.
2021-02-11 15:16:24 +00:00
Ibragim/Parviz Bekliev
3e57378631 fix / sso: after complete login via token make sure to delete only loginToken query-param from the window.location api.
Related to https://github.com/vector-im/element-web/pull/16292

Signed-off-by: Bekliev Parviz <nightkon95@gmail.com>
2021-02-09 16:40:52 +03:00
Šimon Brandner
24cc106d90 Merge branch 'develop' into feature-multi-language-spell-check 2020-12-03 12:04:46 +01:00
Šimon Brandner
ccc3038793 Don't exclude default 2020-12-03 08:27:18 +01:00
Šimon Brandner
6844c8f92e Hide spell-check settings if not using Electron 2020-12-02 20:15:00 +01:00
Šimon Brandner
1c9d25986a Cleanup 2020-12-01 20:19:14 +01:00
Šimon Brandner
a8a422105b Added getAvailableSpellCheckLanguages() method 2020-11-29 20:52:19 +01:00
Šimon Brandner
3419140bee Fix spelling 2020-11-28 19:38:39 +01:00
Šimon Brandner
13a5192995 Added a call to loadSpellCheckLanguages() method 2020-11-28 19:36:39 +01:00
Šimon Brandner
7ae86af7df Added loadSpellCheckLanguages() method 2020-11-28 19:36:18 +01:00
Travis Ralston
b06de25898 Update lockfiles 2020-03-16 19:29:31 -06:00
Travis Ralston
62a152b68a Update webpack 2020-03-16 19:24:58 -06:00
Travis Ralston
fe831dc8dd Merge branch 'develop' into travis/inline-widgets 2020-03-16 19:23:49 -06:00
Travis Ralston
7ff2b598af Wrapper for inline widget HTML 2019-06-14 19:49:06 -06:00
Travis Ralston
1b8fe9e782 Docs for inline widgets feature 2019-06-14 15:40:58 -06:00
35 changed files with 533 additions and 277 deletions

View File

@@ -1,3 +1,5 @@
<!-- A picture's worth a thousand words: PLEASE INCLUDE A SCREENSHOT :P -->
<!-- Please report security issues by email to security@matrix.org -->
<!-- This is a bug report template. By following the instructions below and
@@ -36,7 +38,7 @@ file a bug here too! -->
For the web app:
- **Browser**: Chrome, Safari, Firefox? which version?
- **Browser**: Chrome, Firefox, Safari, Edge? which version?
- **OS**: Windows, macOS, Ubuntu, Arch Linux, etc?
- **URL**: develop.element.io / app.element.io / somewhere else? If a private server, what version of Element Web?

View File

@@ -2,11 +2,13 @@
name: Bug report
about: Create a report to help us improve
title: ''
labels: bug
labels: T-Defect
assignees: ''
---
<!-- A picture's worth a thousand words: PLEASE INCLUDE A SCREENSHOT :P -->
<!-- Please report security issues by email to security@matrix.org -->
<!-- This is a bug report template. By following the instructions below and
@@ -46,7 +48,7 @@ Logs being sent: yes/no
For the web app:
- **Browser**: Chrome, Safari, Firefox? which version?
- **Browser**: Chrome, Firefox, Safari, Edge? which version?
- **OS**: Windows, macOS, Ubuntu, Arch Linux, etc?
- **URL**: develop.element.io / app.element.io / somewhere else? If a private server, what version of Element Web?

View File

@@ -2,7 +2,7 @@
name: Suggestion or Feature request
about: Suggest an idea for this project
title: ''
labels: suggestion
labels: T-Enhancement
assignees: ''
---

View File

@@ -1,58 +0,0 @@
---
name: User Interface or Usability Bug report
about: Please include screenshots in UI/UX bug reports
title: ''
labels: bug, ui/ux
assignees: ''
---
<!-- A picture's worth a thousand words: PLEASE INCLUDE A SCREENSHOT :P -->
<!-- Please report security issues by email to security@matrix.org -->
<!-- This is a bug report template. By following the instructions below and
filling out the sections with your information, you will help the us to get all
the necessary data to fix your issue.
You can also preview your report before submitting it. You may remove sections
that aren't relevant to your particular case.
Text between <!-- and --> marks will be invisible in the report.
-->
### Description
Describe here the problem that you are experiencing, or the feature you are requesting.
### Steps to reproduce
- For bugs, list the steps
- that reproduce the bug
- using hyphens as bullet points
Describe how what happens differs from what you expected.
<!-- Please send us logs for your bug report. They're very important for bugs
which are hard to reproduce. To do this, create this issue then go to your
account settings and click 'Submit Debug Logs' from the Help & About tab -->
Logs being sent: yes/no
<!-- Include screenshots if possible: you can drag and drop images below. -->
### Version information
<!-- IMPORTANT: please answer the following questions, to help us narrow down the problem -->
- **Platform**: web (in-browser) or desktop?
For the web app:
- **Browser**: Chrome, Safari, Firefox? which version?
- **OS**: Windows, macOS, Ubuntu, Arch Linux, etc?
- **URL**: develop.element.io / app.element.io / somewhere else? If a private server, what version of Element Web?
For the desktop app:
- **OS**: Windows, macOS, Ubuntu, Arch Linux, etc?
- **Version**: 1.x.y <!-- check the user settings panel if unsure -->

View File

@@ -1,3 +1,78 @@
Changes in [1.7.23](https://github.com/vector-im/element-web/releases/tag/v1.7.23) (2021-03-15)
===============================================================================================
[Full Changelog](https://github.com/vector-im/element-web/compare/v1.7.23-rc.1...v1.7.23)
* Upgrade to React SDK 3.16.0 and JS SDK 9.9.0
Changes in [1.7.23-rc.1](https://github.com/vector-im/element-web/releases/tag/v1.7.23-rc.1) (2021-03-10)
=========================================================================================================
[Full Changelog](https://github.com/vector-im/element-web/compare/v1.7.22...v1.7.23-rc.1)
* Upgrade to React SDK 3.16.0-rc.2 and JS SDK 9.9.0-rc.1
* Translations update from Weblate
[\#16655](https://github.com/vector-im/element-web/pull/16655)
* Improve docs for customisations
[\#16652](https://github.com/vector-im/element-web/pull/16652)
* Update triage guide to match the new label scheme
[\#16612](https://github.com/vector-im/element-web/pull/16612)
* Remove a couple useless 'use strict' calls
[\#16650](https://github.com/vector-im/element-web/pull/16650)
* Remove old conferencing doc
[\#16648](https://github.com/vector-im/element-web/pull/16648)
* Bump elliptic from 6.5.3 to 6.5.4
[\#16644](https://github.com/vector-im/element-web/pull/16644)
* Add option for audio live streaming
[\#16604](https://github.com/vector-im/element-web/pull/16604)
* Update velocity-animate dependency
[\#16605](https://github.com/vector-im/element-web/pull/16605)
* Add Edge to the supported tier
[\#16611](https://github.com/vector-im/element-web/pull/16611)
* Add multi language spell check
[\#15851](https://github.com/vector-im/element-web/pull/15851)
* Document feature_spaces
[\#16538](https://github.com/vector-im/element-web/pull/16538)
Changes in [1.7.22](https://github.com/vector-im/element-web/releases/tag/v1.7.22) (2021-03-01)
===============================================================================================
[Full Changelog](https://github.com/vector-im/element-web/compare/v1.7.22-rc.1...v1.7.22)
## Security notice
Element Web 1.7.22 fixes (by upgrading to matrix-react-sdk 3.15.0) a low
severity issue (CVE-2021-21320) where the user content sandbox can be abused to
trick users into opening unexpected documents. The content is opened with a
`blob` origin that cannot access Matrix user data, so messages and secrets are
not at risk. Thanks to @keerok for responsibly disclosing this via Matrix's
Security Disclosure Policy.
## All changes
* Upgrade to React SDK 3.15.0 and JS SDK 9.8.0
Changes in [1.7.22-rc.1](https://github.com/vector-im/element-web/releases/tag/v1.7.22-rc.1) (2021-02-24)
=========================================================================================================
[Full Changelog](https://github.com/vector-im/element-web/compare/v1.7.21...v1.7.22-rc.1)
* Upgrade to React SDK 3.15.0-rc.1 and JS SDK 9.8.0-rc.1
* Translations update from Weblate
[\#16529](https://github.com/vector-im/element-web/pull/16529)
* Add hostSignup config for element.io clients
[\#16515](https://github.com/vector-im/element-web/pull/16515)
* VoIP virtual rooms, mkII
[\#16442](https://github.com/vector-im/element-web/pull/16442)
* Jitsi widget: Read room name from query parameters
[\#16456](https://github.com/vector-im/element-web/pull/16456)
* fix / sso: make sure to delete only loginToken after redirect
[\#16415](https://github.com/vector-im/element-web/pull/16415)
* Disable Countly
[\#16433](https://github.com/vector-im/element-web/pull/16433)
Changes in [1.7.21](https://github.com/vector-im/element-web/releases/tag/v1.7.21) (2021-02-16)
===============================================================================================
[Full Changelog](https://github.com/vector-im/element-web/compare/v1.7.21-rc.1...v1.7.21)
* Upgrade to React SDK 3.14.0 and JS SDK 9.7.0
Changes in [1.7.21-rc.1](https://github.com/vector-im/element-web/releases/tag/v1.7.21-rc.1) (2021-02-10)
=========================================================================================================
[Full Changelog](https://github.com/vector-im/element-web/compare/v1.7.20...v1.7.21-rc.1)

101
README.md
View File

@@ -11,7 +11,7 @@ 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
* Last 2 major versions of Chrome, Firefox, Safari, and Edge 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
@@ -388,51 +388,76 @@ For a developer guide, see the [translating dev doc](docs/translating-dev.md).
Triaging issues
===============
Issues will be triaged by the core team using the below set of tags.
We strive to completely cover all applicable issues with these core labels:
Tags are meant to be used in combination - e.g.:
* P1 critical bug == really urgent stuff that should be next in the bugfixing todo list
* "release blocker" == stuff which is blocking us from cutting the next release.
* P1 feature type:voip == what VoIP features should we be working on next?
1. __Type__ — Every issue is assigned a type:
- __[T-Defect](https://github.com/vector-im/element-web/labels/T-Defect):__
Bugs, crashes, hangs, vulnerabilities, or other reported problems
- __[T-Enhancement](https://github.com/vector-im/element-web/labels/T-Enhancement):__
New features, changes in functionality, performance boosts, user-facing
improvements
- __[T-Task](https://github.com/vector-im/element-web/labels/T-Task):__
Refactoring, enabling or disabling functionality, other engineering tasks
- __[T-Other](https://github.com/vector-im/element-web/labels/T-Other):__
Questions, user support, anything else
priority: **compulsory**
2. __Severity__ — All issues labeled `T-Defect` are also assigned a severity:
* __[S-Critical](https://github.com/vector-im/element-web/labels/S-Critical):__
Prevents work, causes data loss, affects many users, and/or has no
workaround
* __[S-Major](https://github.com/vector-im/element-web/labels/S-Major):__
Severely degrades major functionality or product features, with no
satisfactory workaround
* __[S-Minor](https://github.com/vector-im/element-web/labels/S-Minor):__
Impairs non-critical functionality, or suitable workarounds exist
* __[S-Tolerable](https://github.com/vector-im/element-web/labels/S-Tolerable):__
Purely cosmetic or low / no impact to users
* P1: top priority - i.e. pool of stuff which we should be working on next
* P2: still need to fix, but lower than P1
* P3: non-urgent
* P4: interesting idea - bluesky some day
* P5: recorded for posterity/to avoid duplicates. No intention to resolves right now.
3. __Priority__ — All issues which are not `T-Other` are assigned a priority:
* __[P1](https://github.com/vector-im/element-web/labels/P1):__ Next
* __[P2](https://github.com/vector-im/element-web/labels/P2):__ Later
* __[P3](https://github.com/vector-im/element-web/labels/P3):__ Eventually
* __[P4](https://github.com/vector-im/element-web/labels/P4):__ Interesting —
Not yet scheduled, will accept patches
* __[P5](https://github.com/vector-im/element-web/labels/P5):__ Dubious —
Will not schedule, would consider patches
bug or feature: **compulsory**
4. __Area__ — Most issues are assigned one or several "areas" using one of the
many `A-` prefixed labels, e.g. `A-Composer` or `A-Spaces`. Each area label
maps to a group of features or portion of the UI surface in the app.
* bug
* feature
### Other common labels
bug severity: **compulsory, if bug**
We have a handful of other labels which are added on an as-needed basis, and not expected to be exhaustive:
* critical - whole app doesn't work
* major - entire feature doesn't work
* minor - partially broken feature (but still usable)
* cosmetic - feature works functionally but UI/UX is broken
* __Exceptions__ — Special flags for issues and pull requests:
* __[X-Needs-Info](https://github.com/vector-im/element-web/labels/X-Needs-Info):__
This issue is blocked pending further information from the reporter
* __[X-Regression](https://github.com/vector-im/element-web/labels/X-Regression):__
Denotes things breaking which previously worked
* __[X-Release-Blocker](https://github.com/vector-im/element-web/labels/X-Release-Blocker):__
Issues which must be resolved before making a release
types
* type:* - refers to a particular part of the app; used to filter bugs
on a given topic - e.g. VOIP, signup, timeline, etc.
* __[Easy](https://github.com/vector-im/element-web/labels/Easy)__ / __[Help
Wanted](https://github.com/vector-im/element-web/labels/Help%20Wanted)__ —
Well-defined issues which are suitable for folks new to the codebase
additional categories (self-explanatory):
* __[A11y](https://github.com/vector-im/element-web/labels/A11y)__ /
__[Meta](https://github.com/vector-im/element-web/labels/Meta)__ /
__[I18n](https://github.com/vector-im/element-web/labels/I18n)__ /
__[Privacy](https://github.com/vector-im/element-web/labels/Privacy)__ /
__[Security](https://github.com/vector-im/element-web/labels/Security)__ —
Issues which fall under these conceptual themes (which apply to many software
projects and are not specific to Element)
* release blocker
* ui/ux (think of this as cosmetic)
* network (specific to network conditions)
* platform specific
* accessibility
* maintenance
* performance
* i18n
* blocked - whether this issue currently can't be progressed due to outside factors
* __[Sponsored](https://github.com/vector-im/element-web/labels/Sponsored)__ —
Used internally by Element to denote issues with external funding
community engagement
* easy
* hacktoberfest
* bounty? - proposal to be included in a bounty programme
* bounty - included in Status Open Bounty
### Ad hoc labels (`Z-`)
We have reserved the `Z-` prefix for ad hoc labels.
Any member of the core team is welcome to create labels beginning with `Z-` for
any purpose, such as tracking personal areas of interest or providing a common
way to label cross-repo initiatives. The prefix avoids interference with the
project's main labels.

View File

@@ -3,7 +3,10 @@ module.exports = {
"presets": [
["@babel/preset-env", {
"targets": [
"last 2 Chrome versions", "last 2 Firefox versions", "last 2 Safari versions"
"last 2 Chrome versions",
"last 2 Firefox versions",
"last 2 Safari versions",
"last 2 Edge versions",
],
}],
"@babel/preset-typescript",

View File

@@ -1,52 +0,0 @@
# VoIP Conferencing
This is a draft proposal for a naive voice/video conferencing implementation for
Matrix clients. There are many possible conferencing architectures possible for
Matrix (Multipoint Conferencing Unit (MCU); Stream Forwarding Unit (SFU); Peer-
to-Peer mesh (P2P), etc; events shared in the group room; events shared 1:1;
possibly even out-of-band signalling).
This is a starting point for a naive MCU implementation which could provide one
possible Matrix-wide solution in future, which retains backwards compatibility
with standard 1:1 calling.
* A client chooses to initiate a conference for a given room by starting a
voice or video call with a 'conference focus' user. This is a virtual user
(typically Application Service) which implements a conferencing bridge. It
isn't defined how the client discovers or selects this user.
* The conference focus user MUST join the room in which the client has
initiated the conference - this may require the client to invite the
conference focus user to the room, depending on the room's `join_rules`. The
conference focus user needs to be in the room to let the bridge eject users
from the conference who have left the room in which it was initiated, and aid
discovery of the conference by other users in the room. The bridge
identifies the room to join based on the user ID by which it was invited.
The format of this identifier is implementation dependent for now.
* If a client leaves the group chat room, they MUST be ejected from the
conference. If a client leaves the 1:1 room with the conference focus user,
they SHOULD be ejected from the conference.
* For now, rooms can contain multiple conference focus users - it's left to
user or client implementation to select which to converge on. In future this
could be mediated using a state event (e.g. `im.vector.call.mcu`), but we
can't do that right now as by default normal users can't set arbitrary state
events on a room.
* To participate in the conference, other clients initiates a standard 1:1
voice or video call to the conference focus user.
* For best UX, clients SHOULD show the ongoing voice/video call in the UI
context of the group room rather than 1:1 with the focus user. If a client
recognises a conference user present in the room, it MAY chose to highlight
this in the UI (e.g. with a "conference ongoing" notification, to aid
discovery). Clients MAY hide the 1:1 room with the focus user (although in
future this room could be used for floor control or other direct
communication with the conference focus)
* When all users have left the conference, the 'conference focus' user SHOULD
leave the room.
* If a conference focus user joins a room but does not receive a 1:1 voice or
video call, it SHOULD time out after a period of time and leave the room.

View File

@@ -110,21 +110,12 @@ For a good example, see https://develop.element.io/config.json.
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.
1. `voip_mxid_translate_pattern`: Used to route VoIP calls to different Matrix IDs.
Any VoIP calls placed will instead be placed to the translated Matrix ID from the
pattern string but still appear to be with the original Matrix ID. Correspondingly,
incoming VoIP calls will be made to appear as if they came from a different Matrix ID.
The value is a template string with substitution `$(mxid)` which is the complete
URL-encoded native Matrix ID, using '=' instead of '%'. For example, a value of
`@_myappservice_$(mxid):example.org` would cause any VoIP call to `@bob:foo.example`
to be redirected to `@_myappservice_=40bob=3Afoo.example:example.org` and calls
from the latter to appear as if they were from the former.
This option is experimental and may be removed at any time without notice. It's
also strongly advised not to set this option unless you're absolutly certain you
know what you're doing.
1. `mobileGuideToast`: Whether to show a toast a startup which nudges users on
iOS and Android towards the native mobile apps. The toast redirects to the
mobile guide if they accept. Defaults to false.
1. `audioStreamUrl`: If supplied, show an option on Jitsi widgets to stream
audio using Jitsi's live streaming feature. This option is experimental and
may be removed at any time without notice.
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

View File

@@ -17,11 +17,11 @@ the React SDK, you can still override it from the Element Web layer:
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`:
default by adding this to the `additionalPlugins` array in `webpack.config.js`:
```js
new webpack.NormalModuleReplacementPlugin(
/src\/customisations\/Security.ts/,
/src[\/\\]customisations[\/\\]Security\.ts/,
path.resolve(__dirname, 'src/customisations/YourNameSecurity.ts'),
),
```

View File

@@ -7,6 +7,14 @@ to `Settings->Labs`. This list is non-exhaustive and subject to change, chat in
**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.**
## Matrix Spaces [MSC1772](https://github.com/matrix-org/matrix-doc/pull/1772) support (`feature_spaces`)
Enables showing, using, creating, and managing spaces. Create Spaces from the all new Space Panel (to left of Room List).
Incompatible with (will disable) `feature_custom_tags`, `feature_communities_v2_prototypes` and stable Communities/Groups support.
Still in heavy development.
## Render LaTeX maths in messages (`feature_latex_maths`)
Enables rendering of LaTeX maths in messages using [KaTeX](https://katex.org/). LaTeX between single dollar-signs is interpreted as inline maths and double dollar-signs as display maths (i.e. centred on its own line).
@@ -69,6 +77,13 @@ Ban lists are rooms within Matrix, proposed as [MSC2313](https://github.com/matr
[Mjolnir](https://github.com/matrix-org/mjolnir) is a set of moderation tools which support
ban lists.
## Inline widgets
`feature_inline_widgets` allows rendering and sending of inline widgets. Inline
widgets are typically polls or rich embedded content in rooms.
[#riot-web:matrix.org]: https://matrix.to/#/#riot-web:matrix.org
## Verifications in DMs (`feature_dm_verification`)
An implementation of [MSC2241](https://github.com/matrix-org/matrix-doc/pull/2241). When enabled, verification might not work with devices which don't support MSC2241.

View File

@@ -37,5 +37,15 @@
"url": "https://element.io/cookie-policy",
"text": "Cookie Policy"
}
]
],
"hostSignup": {
"brand": "Element Home",
"cookiePolicyUrl": "https://element.io/cookie-policy",
"domains": [
"matrix.org"
],
"privacyPolicyUrl": "https://element.io/privacy",
"termsOfServiceUrl": "https://element.io/terms-of-service",
"url": "https://ems.element.io/element-home/in-app-loader"
}
}

View File

@@ -18,10 +18,6 @@
"siteId": 1,
"policyUrl": "https://element.io/cookie-policy"
},
"countly": {
"url": "https://try.count.ly",
"appKey": "8abf1ee15646bc884556b82e5053857904264b66"
},
"roomDirectory": {
"servers": [
"matrix.org",
@@ -41,5 +37,15 @@
"url": "https://element.io/cookie-policy",
"text": "Cookie Policy"
}
]
],
"hostSignup": {
"brand": "Element Home",
"cookiePolicyUrl": "https://element.io/cookie-policy",
"domains": [
"matrix.org"
],
"privacyPolicyUrl": "https://element.io/privacy",
"termsOfServiceUrl": "https://element.io/terms-of-service",
"url": "https://ems.element.io/element-home/in-app-loader"
}
}

View File

@@ -1,6 +1,6 @@
{
"name": "element-web",
"version": "1.7.21-rc.1",
"version": "1.7.23",
"description": "A feature-rich client for Matrix.org",
"author": "New Vector Ltd.",
"repository": {
@@ -58,16 +58,16 @@
"highlight.js": "^10.5.0",
"jsrsasign": "^10.1.5",
"katex": "^0.12.0",
"matrix-js-sdk": "9.7.0-rc.1",
"matrix-react-sdk": "3.14.0-rc.1",
"matrix-js-sdk": "github:matrix-org/matrix-js-sdk#develop",
"matrix-react-sdk": "github:matrix-org/matrix-react-sdk#develop",
"matrix-widget-api": "^0.1.0-beta.13",
"olm": "https://packages.matrix.org/npm/olm/olm-3.2.1.tgz",
"prop-types": "^15.7.2",
"random-string": "^0.2.0",
"react": "^16.14.0",
"react-dom": "^16.14.0",
"sanitize-html": "github:apostrophecms/sanitize-html#3c7f93f2058f696f5359e3e58d464161647226db",
"ua-parser-js": "^0.7.23",
"url": "^0.11.0"
"ua-parser-js": "^0.7.23"
},
"devDependencies": {
"@babel/core": "^7.12.10",

View File

@@ -16,8 +16,6 @@ See the License for the specific language governing permissions and
limitations under the License.
*/
'use strict';
import EmbeddedPage from 'matrix-react-sdk/src/components/structures/EmbeddedPage';
import sanitizeHtml from 'sanitize-html';
import { _t } from 'matrix-react-sdk/src/languageHandler';

View File

@@ -15,8 +15,6 @@ See the License for the specific language governing permissions and
limitations under the License.
*/
'use strict';
import React from 'react';
import PropTypes from 'prop-types';
import SdkConfig from 'matrix-react-sdk/src/SdkConfig';

View File

@@ -8,12 +8,12 @@
"Sign In": "Anmelden",
"Create Account": "Account erstellen",
"Explore rooms": "Räume erkunden",
"Unexpected error preparing the app. See console for details.": "Unerwarteter Fehler bei der Vorbereitung der App. Siehe Konsole für Details.",
"Unexpected error preparing the app. See console for details.": "Unerwarteter Fehler bei der Vorbereitung der App. Siehe in die Konsole für mehr Details.",
"Invalid configuration: can only specify one of default_server_config, default_server_name, or default_hs_url.": "Ungültige Konfiguration: Es kann nur eine der Optionen default_server_config, default_server_name oder default_hs_url angegeben werden.",
"Invalid configuration: no default server specified.": "Ungültige Konfiguration: Es wurde kein Standardserver angegeben.",
"The message from the parser is: %(message)s": "Die Nachricht des Parsers ist: %(message)s",
"Invalid JSON": "Ungültiges JSON",
"Go to your browser to complete Sign In": "Gehe zu deinem Browser, um die Anmeldung abzuschließen",
"Go to your browser to complete Sign In": "Gehe in deinen Browser, um die Anmeldung abzuschließen",
"Open user settings": "Öffne Nutzer-Einstellungen",
"Unable to load config file: please refresh the page to try again.": "Konfigurationsdatei kann nicht geladen werden: Bitte aktualisiere die Seite, um es erneut zu versuchen.",
"Missing indexeddb worker script!": "Fehlendes indexeddb Worker-Skript!",
@@ -24,9 +24,9 @@
"%(brand)s Desktop (%(platformName)s)": "%(brand)s Desktop (%(platformName)s)",
"%(appName)s (%(browserName)s, %(osName)s)": "%(appName)s (%(browserName)s, %(osName)s)",
"Please install <chromeLink>Chrome</chromeLink>, <firefoxLink>Firefox</firefoxLink>, or <safariLink>Safari</safariLink> for the best experience.": "Bitte installiere <chromeLink>Chrome</chromeLink>, <firefoxLink>Firefox</firefoxLink>, oder <safariLink>Safari</safariLink> für das beste Erlebnis.",
"You can continue using your current browser, but some or all features may not work and the look and feel of the application may be incorrect.": "Du kannst mit deinem aktuellen Browser weiterhin verwenden, aber es kann sein, dass einige oder alle Funktionen nicht funktionieren und das Aussehen und die Bedienung der Anwendung nicht korrekt ist.",
"You can continue using your current browser, but some or all features may not work and the look and feel of the application may be incorrect.": "Du kannst deinen aktuellen Browser weiterhin verwenden, es kann aber sein, dass einige oder alle Funktionen nicht verfügbar stehen oder dass das Aussehen und die Bedienung der Anwendung nicht korrekt ist.",
"I understand the risks and wish to continue": "Ich verstehe die Risiken und möchte fortfahren",
"Your Element is misconfigured": "Dein Element ist fehlkonfiguriert",
"Your Element is misconfigured": "Dein Element ist falsch konfiguriert",
"Your Element configuration contains invalid JSON. Please correct the problem and reload the page.": "Deine Element Konfiguration enthält ungültiges JSON. Bitte korrigiere das Problem und lade die Seite neu.",
"Download Completed": "Download fertiggestellt",
"Open": "Öffnen",

View File

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

View File

@@ -9,7 +9,7 @@
"Create Account": "Créer un compte",
"Explore rooms": "Explorer les salons",
"Unexpected error preparing the app. See console for details.": "Une erreur inattendue est survenue pendant la préparation de lapplication. Consultez la console pour avoir des détails.",
"Invalid configuration: can only specify one of default_server_config, default_server_name, or default_hs_url.": "Configuration invalide : il ne faut spécifier quun des trois champs entre default_server_config, default_server_name et default_hs_url.",
"Invalid configuration: can only specify one of default_server_config, default_server_name, or default_hs_url.": "Configuration invalide : il ne faut spécifier quun des trois champs parmis default_server_config, default_server_name et default_hs_url.",
"Invalid configuration: no default server specified.": "Configuration invalide : aucun serveur par défaut spécifié.",
"The message from the parser is: %(message)s": "Le message de lanalyseur est : %(message)s",
"Invalid JSON": "JSON non valide",
@@ -21,7 +21,7 @@
"%(appName)s (%(browserName)s, %(osName)s)": "%(appName)s (%(browserName)s, %(osName)s)",
"Unsupported browser": "Navigateur non pris en charge",
"Please install <chromeLink>Chrome</chromeLink>, <firefoxLink>Firefox</firefoxLink>, or <safariLink>Safari</safariLink> for the best experience.": "Veuillez installer <chromeLink>Chrome</chromeLink>, <firefoxLink>Firefox</firefoxLink> ou <safariLink>Safari</safariLink> pour une expérience optimale.",
"You can continue using your current browser, but some or all features may not work and the look and feel of the application may be incorrect.": "Vous pouvez continuer à utiliser votre navigateur actuel, mais vous risquez de trouver que certaines fonctionnalités et/ou l'apparence de l'application sont incorrectes.",
"You can continue using your current browser, but some or all features may not work and the look and feel of the application may be incorrect.": "Vous pouvez continuer à utiliser votre navigateur actuel, mais vous risquez de trouver que certaines fonctionnalités et/ou lapparence de lapplication sont incorrectes.",
"I understand the risks and wish to continue": "Je comprends les risques et souhaite continuer",
"Go to element.io": "Aller vers element.io",
"Failed to start": "Échec au démarrage",
@@ -31,6 +31,6 @@
"Your Element is misconfigured": "Votre Element est mal configuré",
"Your Element configuration contains invalid JSON. Please correct the problem and reload the page.": "La configuration de votre Element contient du JSON invalide. Veuillez corriger le problème et recharger la page.",
"Your browser can't run %(brand)s": "Votre navigateur ne peut pas exécuter %(brand)s",
"%(brand)s uses advanced browser features which aren't supported by your current browser.": "%(brand)s nécessite des fonctionnalités avancées que votre navigateur actuel ne supporte pas.",
"%(brand)s uses advanced browser features which aren't supported by your current browser.": "%(brand)s nécessite des fonctionnalités avancées que votre navigateur actuel ne prend pas en charge.",
"Powered by Matrix": "Propulsé par Matrix"
}

View File

@@ -1,5 +1,5 @@
{
"Dismiss": "שחרר",
"Dismiss": "התעלם",
"powered by Matrix": "מופעל ע\"י Matrix",
"Unknown device": "מכשיר לא ידוע",
"You need to be using HTTPS to place a screen-sharing call.": "עליך להשתמש ב HTTPS בכדי לבצע שיחת ווידאו משותפת.",
@@ -8,13 +8,13 @@
"Invalid JSON": "JSON לא חוקי",
"Invalid configuration: can only specify one of default_server_config, default_server_name, or default_hs_url.": "תצורה שגויה: ניתן לציין רק אחד מהבאים, default_server_config, default_server_name, או default_hs_url.",
"Invalid configuration: no default server specified.": "תצורה שגויה: לא צוין שרת ברירת מחדל.",
"Open user settings": "פתיחת הגדרות משתמש",
"Open user settings": "פתח הגדרות משתמש",
"Go to your browser to complete Sign In": "עבור לדפדפן להמשך ההתחברות",
"Explore rooms": "שיטוט בחדרים",
"Create Account": "יצירת חשבון",
"Sign In": "כניסה",
"Previous/next recently visited room or community": "הבא\\קודם חדרים וקהילות שביקרתם לאחרונה",
"Open": "פתיחה",
"Open": "פתח",
"Download Completed": "ההורדה הושלמה",
"Unexpected error preparing the app. See console for details.": "שגיאה לא צפויה במהלך הכנת האפליקציה. ראו קונסול לפרטים נוספים.",
"Unable to load config file: please refresh the page to try again.": "לא יכול לקרוא את קובץ ההגדרות: אנא אתחלו את הדף לנסות שנית.",
@@ -32,5 +32,5 @@
"%(appName)s (%(browserName)s, %(osName)s)": "%(appName)s (%(browserName)s, %(osName)s)",
"%(brand)s Desktop (%(platformName)s)": "%(brand)s שולחן עבודה %(platformName)s",
"The message from the parser is: %(message)s": "ההודעה מהניתוח היא: %(message)s",
"Missing indexeddb worker script!": "חסר סקריפט עובד indexeddb!"
"Missing indexeddb worker script!": "סקריפט indexeddb worker חסר!"
}

View File

@@ -2,7 +2,7 @@
"powered by Matrix": "keyrt með Matrix",
"Welcome to Element": "Velkomin í Element",
"Unknown device": "Óþekkt tæki",
"Dismiss": "Hafna",
"Dismiss": "Hunsa",
"You need to be using HTTPS to place a screen-sharing call.": "Þú verður að nota HTTPS til að hringja samtal með deilingu á skjá.",
"Decentralised, encrypted chat &amp; collaboration powered by [matrix]": "Dulritað dreifvinnsluspjall &amp; samstarfstól keyrt með [matrix]",
"Open": "Opna",
@@ -18,5 +18,19 @@
"%(appName)s (%(browserName)s, %(osName)s)": "%(appName)s (%(browserName)s, %(osName)s)",
"Please install <chromeLink>Chrome</chromeLink>, <firefoxLink>Firefox</firefoxLink>, or <safariLink>Safari</safariLink> for the best experience.": "vinsamlegast setja upp <chromeLink>Chrome</chromeLink>, <firefoxLink>Firefox</firefoxLink>, eða <safariLink>Safari</safariLink> fyrir besta reynsluna.",
"I understand the risks and wish to continue": "Ég skil áhættuna og óska að halda áfram",
"Go to element.io": "farðu í element.io"
"Go to element.io": "farðu í element.io",
"Unexpected error preparing the app. See console for details.": "Óvænt villa við undirbúning appsins. Sjá nánar í textaskrá vafra.",
"Failed to start": "Mistókst að ræsa",
"You can continue using your current browser, but some or all features may not work and the look and feel of the application may be incorrect.": "Þú getur haldið áfram að nota núverandi vafra, en sumar eða allir eiginleikar virka ekki og útlit og tilfinning forritsins geta verið röng.",
"%(brand)s uses advanced browser features which aren't supported by your current browser.": "%(brand)s notar háþróaða vafraeiginleika sem eru ekki studdir af núverandi vafra þínum.",
"Powered by Matrix": "Keyrt af Matrix",
"Go to your browser to complete Sign In": "Farðu í vafrann þinn til að ljúka innskráningu",
"%(brand)s Desktop (%(platformName)s)": "%(brand)s Borðtölva (%(platformName)s)",
"Previous/next recently visited room or community": "Fyrra/næsta nýlega heimsótt herbergi eða samfélag",
"Open user settings": "Opna notandastillingar",
"Unable to load config file: please refresh the page to try again.": "Ekki er hægt að hlaða stillingaskrána: endurnýjaðu síðuna til að reyna aftur.",
"Your Element configuration contains invalid JSON. Please correct the problem and reload the page.": "Element stillingar þínar innihalda ógilda JSON. Vinsamlegast leiðréttu vandamálið og endurhladdu síðuna.",
"Your Element is misconfigured": "Element þitt er rangt stillt",
"Invalid configuration: no default server specified.": "Ógild stilling: enginn sjálfgefinn þjónn tilgreindur.",
"Invalid configuration: can only specify one of default_server_config, default_server_name, or default_hs_url.": "Ógild stilling: getur aðeins tilgreint einn af default_server_config, default_server_name eða default_hs_url."
}

View File

@@ -5,11 +5,11 @@
"You need to be using HTTPS to place a screen-sharing call.": "സ്ക്രീന്‍ ഷെയറിങ്ങ് കോള്‍ നടത്തണമെങ്കില്‍ https ഉപയോഗിക്കണം.",
"Decentralised, encrypted chat &amp; collaboration powered by [matrix]": "വികേന്ദ്രീകൃത , എന്‍ക്രിപ്റ്റഡ് ചാറ്റ് &amp; മാട്രിക്സ് നല്‍കുന്ന കൊളാബൊറേഷന്‍",
"%(appName)s (%(browserName)s, %(osName)s)": "%(appName)s%(browserName)s%(osName)s",
"Please install <chromeLink>Chrome</chromeLink>, <firefoxLink>Firefox</firefoxLink>, or <safariLink>Safari</safariLink> for the best experience.": "ദയവായി <chromeLink>Chrome</chromeLink>, <firefoxLink>Firefox</firefoxLink>, അല്ലെങ്കിൽ <safariLink>Safari</safariLink> ഇൻസ്റ്റാൾ ചെയ്യുക",
"Please install <chromeLink>Chrome</chromeLink>, <firefoxLink>Firefox</firefoxLink>, or <safariLink>Safari</safariLink> for the best experience.": "ദയവായി <chromeLink>Chrome</chromeLink>, <firefoxLink>Firefox</firefoxLink>, അല്ലെങ്കിൽ <safariLink>Safari</safariLink> ഇൻസ്റ്റാൾ ചെയ്യുക.",
"Your Element is misconfigured": "നിങ്ങളുടെ Element തെറ്റായിട്ടാണ് കോൺഫിഗർ ചെയ്തിരിക്കുന്നത്",
"Invalid configuration: no default server specified.": "അസാധുവായ കോൺഫിഗറേഷൻ: സ്ഥിര സെർവരൊന്നും വ്യക്തമാക്കിയില്ല.",
"Invalid configuration: can only specify one of default_server_config, default_server_name, or default_hs_url.": "അസാധുവായ കോൺഫിഗറേഷൻ: can only specify one of default_server_config, default_server_name, or default_hs_url.",
"Missing indexeddb worker script!": "Missing indexeddb worker script!",
"Invalid configuration: no default server specified.": "അസാധുവായ കോൺഫിഗറേഷൻ: സ്ഥിര സെർവർ ഒന്നും വ്യക്തമാക്കിയില്ല.",
"Invalid configuration: can only specify one of default_server_config, default_server_name, or default_hs_url.": "അസാധുവായ കോൺഫിഗറേഷൻ: default_server_config, default_server_name, or default_hs_url-ൽ ഒരെണ്ണം മാത്രമേ വ്യക്തമാക്കാൻ കഴിയൂ.",
"Missing indexeddb worker script!": "indexeddb worker സ്ക്രിപ്റ്റ് കണ്ടെത്താനായില്ല!",
"Open user settings": "യൂസർ ക്രമീകരങ്ങൾ തുറക്കുക",
"Download Completed": "ഡൗൺലോഡ് പൂർത്തിയായി",
"Unsupported browser": "പിന്തുണയ്‌ക്കാത്ത ബ്രൗസർ",

View File

@@ -22,15 +22,15 @@
"%(appName)s (%(browserName)s, %(osName)s)": "%(appName)s (%(browserName)s, %(osName)s)",
"Unsupported browser": "Niet-ondersteunde browser",
"Please install <chromeLink>Chrome</chromeLink>, <firefoxLink>Firefox</firefoxLink>, or <safariLink>Safari</safariLink> for the best experience.": "Installeer <chromeLink>Chrome</chromeLink>, <firefoxLink>Firefox</firefoxLink>, of <safariLink>Safari</safariLink> voor de beste gebruikservaring.",
"You can continue using your current browser, but some or all features may not work and the look and feel of the application may be incorrect.": "U kunt uw huidige browser blijven gebruiken, maar sommige of alle functies zouden niet kunnen werken en de uitstraling van het programma kan verkeerd zijn.",
"You can continue using your current browser, but some or all features may not work and the look and feel of the application may be incorrect.": "Je kunt je huidige browser blijven gebruiken, maar sommige of alle functies zouden niet kunnen werken en de uitstraling van het programma kan verkeerd zijn.",
"I understand the risks and wish to continue": "Ik begrijp de risico's en wil verder gaan",
"Go to element.io": "Ga naar element.io",
"Failed to start": "Opstarten mislukt",
"Open": "Openen",
"Your Element configuration contains invalid JSON. Please correct the problem and reload the page.": "Uw Element configuratie bevat ongeldige JSON. Gelieve het probleem te corrigeren daarna de pagina te herladen.",
"Your Element configuration contains invalid JSON. Please correct the problem and reload the page.": "Je Element configuratie bevat ongeldige JSON. Gelieve het probleem te corrigeren daarna de pagina te herladen.",
"Download Completed": "Download voltooid",
"Your Element is misconfigured": "Uw Element is verkeerd geconfigureerd",
"Your browser can't run %(brand)s": "Uw browser kan %(brand)s niet draaien",
"%(brand)s uses advanced browser features which aren't supported by your current browser.": "%(brand)s gebruikt geavanceerde functies die niet ondersteund worden in uw huidige browser.",
"Your Element is misconfigured": "Je Element is verkeerd geconfigureerd",
"Your browser can't run %(brand)s": "Je browser kan %(brand)s niet draaien",
"%(brand)s uses advanced browser features which aren't supported by your current browser.": "%(brand)s gebruikt geavanceerde functies die niet ondersteund worden in je huidige browser.",
"Powered by Matrix": "Gebruikt Matrix technologie"
}

View File

@@ -18,5 +18,14 @@
"Download Completed": "Transferência concluída",
"Unable to load config file: please refresh the page to try again.": "Não foi possível carregar o ficheiro de configuração: atualize a página para tentar novamente.",
"Your Element configuration contains invalid JSON. Please correct the problem and reload the page.": "A configuração do Element contém um JSON inválido. Corrija o problema e recarregue a página.",
"Your Element is misconfigured": "O Element está configurado incorretamente"
"Your Element is misconfigured": "O Element está configurado incorretamente",
"Powered by Matrix": "Desenvolvido por Matrix",
"%(appName)s (%(browserName)s, %(osName)s)": "%(appName)s (2%(browserName)s, 3%(osName)s)",
"Go to element.io": "Visite element.io",
"I understand the risks and wish to continue": "Compreendo os riscos e pretendo continuar",
"You can continue using your current browser, but some or all features may not work and the look and feel of the application may be incorrect.": "Podes continuar a utilizar teu browser atual, mas algumas funcionalidades podem não funcionar ou aparecerem de forma incorrecta.",
"Please install <chromeLink>Chrome</chromeLink>, <firefoxLink>Firefox</firefoxLink>, or <safariLink>Safari</safariLink> for the best experience.": "Por favor, instala <chromeLink>Chrome</chromeLink>, <firefoxLink>Firefox</firefoxLink>, ou <safariLink>Safari</safariLink> para uma melhor experiência.",
"Unsupported browser": "Browser não suportado",
"Previous/next recently visited room or community": "Anterior/seguinte comunidade ou sala recentemente visitado",
"Open user settings": "Abrir definições do utilizador"
}

View File

@@ -2,5 +2,7 @@
"Unknown device": "නොදන්නා උපාංගයකි",
"%(appName)s (%(browserName)s, %(osName)s)": "%(appName)s (%(browserName)s, %(osName)s)",
"Welcome to Element": "ඉලමන්ට් වෙත සාදරයෙන් පිළිගනිමු",
"Open": "විවෘත කරන්න"
"Open": "විවෘත කරන්න",
"Powered by Matrix": "මැට්‍රික්ස් මඟින් බලගන්වා ඇත",
"Sign In": "පිවිසෙන්න"
}

View File

@@ -6,7 +6,7 @@
"Welcome to Element": "欢迎来到 Element",
"Decentralised, encrypted chat &amp; collaboration powered by [matrix]": "去中心化、加密聊天&amp;与协作,由 [matrix] 驱动",
"Sign In": "登入",
"Create Account": "创建帐号",
"Create Account": "创建账户",
"Explore rooms": "探索聊天室",
"The message from the parser is: %(message)s": "语法分析器的信息:%(message)s",
"Invalid JSON": "无效的 JSON",

View File

@@ -23,7 +23,6 @@ import React from 'react';
// this incidentally means we can forget our React imports in JSX files without penalty.
window.React = React;
import url from 'url';
import * as sdk from 'matrix-react-sdk';
import PlatformPeg from 'matrix-react-sdk/src/PlatformPeg';
import {_td, newTranslatableError} from 'matrix-react-sdk/src/languageHandler';
@@ -120,11 +119,12 @@ function onTokenLoginCompleted() {
// if we did a token login, we're now left with the token, hs and is
// url as query params in the url; a little nasty but let's redirect to
// clear them.
const parsedUrl = url.parse(window.location.href);
parsedUrl.search = "";
const formatted = url.format(parsedUrl);
console.log(`Redirecting to ${formatted} to drop loginToken from queryparams`);
window.history.replaceState(null, "", formatted);
const url = new URL(window.location.href);
url.searchParams.delete("loginToken");
console.log(`Redirecting to ${url.href} to drop loginToken from queryparams`);
window.history.replaceState(null, "", url.href);
}
export async function loadApp(fragParams: {}) {

View File

@@ -0,0 +1,105 @@
/*
Copyright 2019 New Vector Ltd.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
import randomString from "random-string";
// Dev note: This is largely inspired by Dimension. Used with permission.
// https://github.com/turt2live/matrix-dimension/blob/4f92d560266635e5a3c824606215b84e8c0b19f5/web/app/shared/services/scalar/scalar-widget.api.ts#L1
export default class WidgetApi {
_origin;
_widgetId;
_capabilities;
_inFlightRequests = {}; // { reqId => replyFn(payload) }
constructor(origin, widgetId, capabilities) {
this._origin = new URL(origin).origin;
this._widgetId = widgetId;
this._capabilities = capabilities;
const toWidgetActions = {
"capabilities": this._onCapabilitiesRequest.bind(this),
};
window.addEventListener("message", event => {
if (event.origin !== this._origin) return; // ignore due to invalid origin
if (!event.data) return;
if (event.data.widgetId !== this._widgetId) return;
const payload = event.data;
if (payload.api === "toWidget" && payload.action) {
console.log("[Inline Widget] Got toWidget: " + JSON.stringify(payload));
const handler = toWidgetActions[payload.action];
if (handler) handler(payload);
}
if (payload.api === "fromWidget" && this._inFlightRequests[payload.requestId]) {
console.log("[Inline Widget] Got fromWidget reply: " + JSON.stringify(payload));
const handler = this._inFlightRequests[payload.requestId];
delete this._inFlightRequests[payload.requestId];
handler(payload);
}
});
}
sendText(text) {
this.sendEvent("m.room.message", {msgtype: "m.text", body: text});
}
sendNotice(text) {
this.sendEvent("m.room.message", {msgtype: "m.notice", body: text});
}
sendEvent(eventType, content) {
this._callAction("send_event", {
type: eventType,
content: content,
});
}
_callAction(action, payload) {
if (!window.parent) {
return;
}
const request = {
api: "fromWidget",
widgetId: this._widgetId,
action: action,
requestId: randomString({length: 16}),
data: payload,
};
this._inFlightRequests[request.requestId] = () => {};
console.log("[Inline Widget] Sending fromWidget: ", request);
window.parent.postMessage(request, this._origin);
}
_replyPayload(incPayload, payload) {
if (!window.parent) {
return;
}
let request = JSON.parse(JSON.stringify(incPayload));
request["response"] = payload;
window.parent.postMessage(request, this._origin);
}
_onCapabilitiesRequest(payload) {
this._replyPayload(payload, {capabilities: this._capabilities});
}
}

View File

@@ -0,0 +1,5 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<body>
<div id="widgetHtml"></div>
</body>

View File

@@ -0,0 +1,71 @@
/*
Copyright 2019 New Vector Ltd.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
import queryString from "querystring";
import WidgetApi from "./WidgetApi";
let widgetApi;
try {
const qs = queryString.parse(window.location.search.substring(1));
if (!qs["widgetId"]) {
// noinspection ExceptionCaughtLocallyJS
throw new Error("Missing widgetId in query string");
}
if (!qs["parentUrl"]) {
// noinspection ExceptionCaughtLocallyJS
throw new Error("Missing parentUrl in query string");
}
const widgetOpts = JSON.parse(atob(window.location.hash
.substring(1)
.replace(/-/g, '+')
.replace(/_/g, '/')));
// This widget wrapper is always on the same origin as the client itself
widgetApi = new WidgetApi(qs["parentUrl"], qs["widgetId"], widgetOpts["capabilities"]);
document.getElementById("widgetHtml").innerHTML = widgetOpts['html'];
bindButtons();
} catch (e) {
console.error("[Inline Widget Wrapper] Error loading widget from URL: ", e);
document.getElementById("widgetHtml").innerText = "Failed to load widget";
}
function bindButtons() {
const buttons = document.getElementsByTagName("button");
if (!buttons) return;
for (const button of buttons) {
button.addEventListener("click", onClick);
}
}
function onClick(event) {
if (!event.target) return;
const action = event.target.getAttribute("data-mx-action");
if (!action) return; // TODO: Submit form or something?
const value = event.target.getAttribute("data-mx-value");
if (!value) return; // ignore - no value
if (action === "m.send_text") {
widgetApi.sendText(value);
} else if (action === "m.send_notice") {
widgetApi.sendNotice(value);
} else if (action === "m.send_hidden") {
widgetApi.sendEvent("m.room.hidden", {body: value});
} // else ignore
}
// TODO: Binding of forms, etc

View File

@@ -45,6 +45,7 @@ let userId: string;
let jitsiAuth: string;
let roomId: string;
let openIdToken: IOpenIDCredentials;
let roomName: string;
let widgetApi: WidgetApi;
let meetApi: any; // JitsiMeetExternalAPI
@@ -104,6 +105,7 @@ let meetApi: any; // JitsiMeetExternalAPI
userId = qsParam('userId');
jitsiAuth = qsParam('auth', true);
roomId = qsParam('roomId', true);
roomName = qsParam('roomName', true);
if (widgetApi) {
await readyPromise;
@@ -124,6 +126,22 @@ let meetApi: any; // JitsiMeetExternalAPI
widgetApi.transport.reply(ev.detail, {}); // ack
},
);
widgetApi.on(`action:${ElementWidgetActions.StartLiveStream}`,
(ev: CustomEvent<IWidgetApiRequest>) => {
if (meetApi) {
meetApi.executeCommand('startRecording', {
mode: 'stream',
// this looks like it should be rtmpStreamKey but we may be on too old
// a version of jitsi meet
//rtmpStreamKey: ev.detail.data.rtmpStreamKey,
youtubeStreamKey: ev.detail.data.rtmpStreamKey,
});
widgetApi.transport.reply(ev.detail, {}); // ack
} else {
widgetApi.transport.reply(ev.detail, {error: {message: "Conference not joined"}});
}
},
);
}
enableJoinButton(); // always enable the button
@@ -226,6 +244,7 @@ function joinConference() { // event handler bound in HTML
if (displayName) meetApi.executeCommand("displayName", displayName);
if (avatarUrl) meetApi.executeCommand("avatarUrl", avatarUrl);
if (userId) meetApi.executeCommand("email", userId);
if (roomName) meetApi.executeCommand("subject", roomName);
meetApi.on("readyToClose", () => {
switchVisibleContainers();

View File

@@ -323,6 +323,16 @@ export default class ElectronPlatform extends VectorBasePlatform {
return 'Electron Platform'; // no translation required: only used for analytics
}
/**
* Return true if platform supports multi-language
* spell-checking, otherwise false.
*/
supportsMultiLanguageSpellCheck(): boolean {
// Electron uses OS spell checking on macOS, so no need for in-app options
if (isMac) return false;
return true;
}
setNotificationCount(count: number) {
if (this.notificationCount === count) return;
super.setNotificationCount(count);
@@ -488,13 +498,21 @@ export default class ElectronPlatform extends VectorBasePlatform {
return this.eventIndexManager;
}
setLanguage(preferredLangs: string[]) {
this._ipcCall('setLanguage', preferredLangs).catch(error => {
console.log("Failed to send setLanguage IPC to Electron");
setSpellCheckLanguages(preferredLangs: string[]) {
this._ipcCall('setSpellCheckLanguages', preferredLangs).catch(error => {
console.log("Failed to send setSpellCheckLanguages IPC to Electron");
console.error(error);
});
}
async getSpellCheckLanguages(): Promise<string[]> {
return this._ipcCall('getSpellCheckLanguages');
}
async getAvailableSpellCheckLanguages(): Promise<string[]> {
return this._ipcCall('getAvailableSpellCheckLanguages');
}
getSSOCallbackUrl(fragmentAfterLogin: string): URL {
const url = super.getSSOCallbackUrl(fragmentAfterLogin);
url.protocol = "element";

View File

@@ -26,7 +26,6 @@ import {hideToast as hideUpdateToast, showToast as showUpdateToast} from "matrix
import {Action} from "matrix-react-sdk/src/dispatcher/actions";
import { CheckUpdatesPayload } from 'matrix-react-sdk/src/dispatcher/payloads/CheckUpdatesPayload';
import url from 'url';
import UAParser from 'ua-parser-js';
const POKE_RATE_MS = 10 * 60 * 1000; // 10 min
@@ -184,17 +183,13 @@ export default class WebPlatform extends VectorBasePlatform {
getDefaultDeviceDisplayName(): string {
// strip query-string and fragment from uri
const u = url.parse(window.location.href);
u.protocol = "";
u.search = "";
u.hash = "";
// Remove trailing slash if present
u.pathname = u.pathname.replace(/\/$/, "");
const url = new URL(window.location.href);
let appName = u.format();
// Remove leading slashes if present
appName = appName.replace(/^\/\//, "");
// `appName` is now in the format `develop.element.io`.
// `appName` in the format `develop.element.io/abc/xyz`
const appName = [
url.host,
url.pathname.replace(/\/$/, ""), // Remove trailing slash if present
].join("");
const ua = new UAParser();
const browserName = ua.getBrowser().name || "unknown browser";

View File

@@ -8,6 +8,10 @@ const webpack = require("webpack");
let og_image_url = process.env.RIOT_OG_IMAGE_URL;
if (!og_image_url) og_image_url = 'https://app.element.io/themes/element/img/logos/opengraph.png';
const additionalPlugins = [
// This is where you can put your customisation replacements.
];
module.exports = (env, argv) => {
if (process.env.CI_PACKAGE) {
// Don't run minification for CI builds (this is only set for runs on develop)
@@ -40,6 +44,7 @@ module.exports = (env, argv) => {
"mobileguide": "./src/vector/mobile_guide/index.js",
"jitsi": "./src/vector/jitsi/index.ts",
"usercontent": "./node_modules/matrix-react-sdk/src/usercontent/index.js",
"inline-widget-wrapper": "./src/vector/inline_widget_wrapper/index.js",
// CSS themes
"theme-legacy": "./node_modules/matrix-react-sdk/res/themes/legacy-light/css/legacy-light.scss",
@@ -313,7 +318,7 @@ module.exports = (env, argv) => {
// HtmlWebpackPlugin will screw up our formatting like the names
// of the themes and which chunks we actually care about.
inject: false,
excludeChunks: ['mobileguide', 'usercontent', 'jitsi'],
excludeChunks: ['mobileguide', 'usercontent', 'inline-widget-wrapper', 'jitsi'],
minify: argv.mode === 'production',
vars: {
og_image_url: og_image_url,
@@ -350,6 +355,13 @@ module.exports = (env, argv) => {
chunks: [],
}),
// This is an inline widget wrapper, similar to usercontent
new HtmlWebpackPlugin({
template: './src/vector/inline_widget_wrapper/index.html',
filename: 'inline_widget_wrapper/index.html',
chunks: ['inline-widget-wrapper'],
}),
// This is the usercontent sandbox's entry point (separate for iframing)
new HtmlWebpackPlugin({
template: './node_modules/matrix-react-sdk/src/usercontent/index.html',
@@ -357,6 +369,8 @@ module.exports = (env, argv) => {
minify: argv.mode === 'production',
chunks: ['usercontent'],
}),
...additionalPlugins,
],
output: {

View File

@@ -2307,10 +2307,10 @@ blueimp-canvas-to-blob@^3.28.0:
resolved "https://registry.yarnpkg.com/blueimp-canvas-to-blob/-/blueimp-canvas-to-blob-3.28.0.tgz#c8ab4dc6bb08774a7f273798cdf94b0776adf6c8"
integrity sha512-5q+YHzgGsuHQ01iouGgJaPJXod2AzTxJXmVv90PpGrRxU7G7IqgPqWXz+PBmt3520jKKi6irWbNV87DicEa7wg==
bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.4.0:
version "4.11.9"
resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.9.tgz#26d556829458f9d1e81fc48952493d0ba3507828"
integrity sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==
bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.11.9:
version "4.12.0"
resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88"
integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==
bn.js@^5.0.0, bn.js@^5.1.1:
version "5.1.3"
@@ -2390,7 +2390,7 @@ braces@^3.0.1, braces@~3.0.2:
dependencies:
fill-range "^7.0.1"
brorand@^1.0.1:
brorand@^1.0.1, brorand@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f"
integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=
@@ -3049,11 +3049,6 @@ commander@^2.19.0, commander@^2.20.0:
resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33"
integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==
commander@^6.1.0:
version "6.2.1"
resolved "https://registry.yarnpkg.com/commander/-/commander-6.2.1.tgz#0792eb682dfbc325999bb2b84fddddba110ac73c"
integrity sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==
commander@~2.19.0:
version "2.19.0"
resolved "https://registry.yarnpkg.com/commander/-/commander-2.19.0.tgz#f6198aa84e5b83c46054b94ddedbfed5ee9ff12a"
@@ -4001,17 +3996,17 @@ electron-to-chromium@^1.3.634:
integrity sha512-T7mYop3aDpRHIQaUYcmzmh6j9MAe560n6ukqjJMbVC6bVTau7dSpvB18bcsBPPtOSe10cKxhJFtlbEzLa0LL1g==
elliptic@^6.5.3:
version "6.5.3"
resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.3.tgz#cb59eb2efdaf73a0bd78ccd7015a62ad6e0f93d6"
integrity sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw==
version "6.5.4"
resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.4.tgz#da37cebd31e79a1367e941b592ed1fbebd58abbb"
integrity sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==
dependencies:
bn.js "^4.4.0"
brorand "^1.0.1"
bn.js "^4.11.9"
brorand "^1.1.0"
hash.js "^1.0.0"
hmac-drbg "^1.0.0"
inherits "^2.0.1"
minimalistic-assert "^1.0.0"
minimalistic-crypto-utils "^1.0.0"
hmac-drbg "^1.0.1"
inherits "^2.0.4"
minimalistic-assert "^1.0.1"
minimalistic-crypto-utils "^1.0.1"
emittery@^0.7.1:
version "0.7.2"
@@ -5596,7 +5591,7 @@ highlight.js@^10.5.0:
resolved "https://registry.yarnpkg.com/highlight.js/-/highlight.js-10.5.0.tgz#3f09fede6a865757378f2d9ebdcbc15ba268f98f"
integrity sha512-xTmvd9HiIHR6L53TMC7TKolEj65zG1XU+Onr8oi86mYa+nLcIbxTTWkpW7CsEwv/vK7u1zb8alZIMLDqqN6KTw==
hmac-drbg@^1.0.0:
hmac-drbg@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1"
integrity sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=
@@ -7511,10 +7506,9 @@ mathml-tag-names@^2.1.3:
resolved "https://registry.yarnpkg.com/mathml-tag-names/-/mathml-tag-names-2.1.3.tgz#4ddadd67308e780cf16a47685878ee27b736a0a3"
integrity sha512-APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg==
matrix-js-sdk@9.7.0-rc.1:
version "9.7.0-rc.1"
resolved "https://registry.yarnpkg.com/matrix-js-sdk/-/matrix-js-sdk-9.7.0-rc.1.tgz#30cabda3f2b416d09c95afc4fe138bba44534c76"
integrity sha512-y6D2bXYKQqGrtf1PLHjjHf6wW67DIhdrwQ77nKOhEd/rfaEqcMf99wqSvF/nzFexbG1Y7PG4IdM4YTdOQ9UD+g==
"matrix-js-sdk@github:matrix-org/matrix-js-sdk#develop":
version "9.9.0"
resolved "https://codeload.github.com/matrix-org/matrix-js-sdk/tar.gz/cd38fb9b4c349eb31feac14e806e710bf6431b72"
dependencies:
"@babel/runtime" "^7.12.5"
another-json "^0.2.0"
@@ -7534,10 +7528,9 @@ matrix-mock-request@^1.2.3:
bluebird "^3.5.0"
expect "^1.20.2"
matrix-react-sdk@3.14.0-rc.1:
version "3.14.0-rc.1"
resolved "https://registry.yarnpkg.com/matrix-react-sdk/-/matrix-react-sdk-3.14.0-rc.1.tgz#a6a6891ca6ca32b581e3921b6293e49800141e2f"
integrity sha512-19tASw75pUDaUHAxCimEKquaOvG/eRcvc38wPTIWnfcx5Nm4a4gioOy6spu5moV9hd/2JDRJHRrU5dbsvVW8Gg==
"matrix-react-sdk@github:matrix-org/matrix-react-sdk#develop":
version "3.16.0"
resolved "https://codeload.github.com/matrix-org/matrix-react-sdk/tar.gz/3154dd6cd441b7710a525e75512e1665adf60746"
dependencies:
"@babel/runtime" "^7.12.5"
await-lock "^2.1.0"
@@ -7565,13 +7558,12 @@ matrix-react-sdk@3.14.0-rc.1:
katex "^0.12.0"
linkifyjs "^2.1.9"
lodash "^4.17.20"
matrix-js-sdk "9.7.0-rc.1"
matrix-js-sdk "github:matrix-org/matrix-js-sdk#develop"
matrix-widget-api "^0.1.0-beta.13"
minimist "^1.2.5"
pako "^2.0.3"
parse5 "^6.0.1"
png-chunks-extract "^1.0.0"
project-name-generator "^2.1.9"
prop-types "^15.7.2"
qrcode "^1.4.4"
qs "^6.9.6"
@@ -7587,7 +7579,7 @@ matrix-react-sdk@3.14.0-rc.1:
tar-js "^0.3.0"
text-encoding-utf-8 "^1.0.2"
url "^0.11.0"
velocity-animate "^1.5.2"
velocity-animate "^2.0.6"
what-input "^5.2.10"
zxcvbn "^4.4.2"
@@ -7834,7 +7826,7 @@ minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1:
resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7"
integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==
minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1:
minimalistic-crypto-utils@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a"
integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=
@@ -9702,14 +9694,6 @@ progress@^2.0.0:
resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8"
integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==
project-name-generator@^2.1.9:
version "2.1.9"
resolved "https://registry.yarnpkg.com/project-name-generator/-/project-name-generator-2.1.9.tgz#959177f1feb2355d74fa98745d72a65a5f75b674"
integrity sha512-QmLHqz2C4VHmAyDEAFlVfnuWAHr4vwZhK2bbm4IrwuHNzNKOdG9b4U+NmQbsm1uOoV4kGWv7+FVLsu7Bb/ieYQ==
dependencies:
commander "^6.1.0"
lodash "^4.17.20"
promise-inflight@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3"
@@ -9882,6 +9866,11 @@ raf@^3.1.0:
dependencies:
performance-now "^2.1.0"
random-string@^0.2.0:
version "0.2.0"
resolved "https://registry.yarnpkg.com/random-string/-/random-string-0.2.0.tgz#a46e4375352beda9a0d7b0d19ed6d321ecd1d82d"
integrity sha1-pG5DdTUr7amg17DRntbTIezR2C0=
randomatic@^3.0.0:
version "3.1.1"
resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-3.1.1.tgz#b776efc59375984e36c537b2f51a1f0aff0da1ed"
@@ -12111,10 +12100,10 @@ vary@~1.1.2:
resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc"
integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=
velocity-animate@^1.5.2:
version "1.5.2"
resolved "https://registry.yarnpkg.com/velocity-animate/-/velocity-animate-1.5.2.tgz#5a351d75fca2a92756f5c3867548b873f6c32105"
integrity sha512-m6EXlCAMetKztO1ppBhGU1/1MR3IiEevO6ESq6rcrSQ3Q77xYSW13jkfXW88o4xMrkXJhy/U7j4wFR/twMB0Eg==
velocity-animate@^2.0.6:
version "2.0.6"
resolved "https://registry.yarnpkg.com/velocity-animate/-/velocity-animate-2.0.6.tgz#1811ca14df7fbbef05740256f6cec0fd1b76575f"
integrity sha512-tU+/UtSo3GkIjEfk2KM4e24DvpgX0+FzfLr7XqNwm9BCvZUtbCHPq/AFutx/Mkp2bXlUS9EcX8yxu8XmzAv2Kw==
vendors@^1.0.0:
version "1.0.4"