Compare commits

...

231 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
RiotRobot
c4c1b728cc v1.7.21-rc.1 2021-02-10 17:03:39 +00:00
RiotRobot
402f97b430 Prepare changelog for v1.7.21-rc.1 2021-02-10 17:03:39 +00:00
RiotRobot
f998f85c3c Upgrade matrix-react-sdk to 3.14.0-rc.1 2021-02-10 16:56:55 +00:00
RiotRobot
78d6ad8f29 Upgrade matrix-js-sdk to 9.7.0-rc.1 2021-02-10 16:55:28 +00:00
J. Ryan Stinnett
72e60efadc Merge pull request #16427 from RiotTranslateBot/weblate-element-web-element-web
Translations update from Weblate
2021-02-10 15:38:28 +00:00
jelv
e91e513224 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-02-10 15:34:57 +00:00
Andrejs
a500240d04 Translated using Weblate (Latvian)
Currently translated at 87.8% (29 of 33 strings)

Translation: Element Web/element-web
Translate-URL: https://translate.element.io/projects/element-web/element-web/lv/
2021-02-09 20:33:31 +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
Weblate
42e2ea877a Merge branch 'origin/develop' into Weblate. 2021-02-08 17:40:44 +00:00
J. Ryan Stinnett
2332cecb59 Merge pull request #16408 from vector-im/jryans/regexp-dotall
Add RegExp dotAll feature test
2021-02-08 17:40:38 +00:00
J. Ryan Stinnett
27a92a5c89 Add RegExp dotAll feature test
As mentioned in
https://github.com/vector-im/element-web/issues/16020#issuecomment-774384598,
we're depending on the `dotAll` / `s` regex feature. This adds a test so
browsers without this see an error screen.
2021-02-08 16:44:59 +00:00
Weblate
4ce13765f7 Merge branch 'origin/develop' into Weblate. 2021-02-08 15:25:26 +00:00
J. Ryan Stinnett
e562c54ddc Merge pull request #16405 from vector-im/jryans/electron-type-merge
Fix Electron type merging
2021-02-08 15:25:19 +00:00
J. Ryan Stinnett
993c2e50b5 Fix Electron type merging
This changes to an interface for Electron types so that other layers can merge
in further APIs as needed, such as the JS SDK.
2021-02-08 15:12:31 +00:00
Weblate
11cc33c8d2 Merge branch 'origin/develop' into Weblate. 2021-02-08 15:10:17 +00:00
J. Ryan Stinnett
9f4d75f2ed Merge pull request #16381 from vector-im/richvdh-readme-patch-1
README: remove Jenkins reference
2021-02-08 15:10:10 +00:00
Andrejs
52f469d7c9 Translated using Weblate (Latvian)
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/lv/
2021-02-07 23:33:30 +00:00
iaiz
29639bb0e6 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-07 23:33:30 +00:00
Richard van der Hoff
0d4958319b README: remove Jenkins reference 2021-02-05 16:16:48 +00:00
Weblate
dfd17fedfe Merge branch 'origin/develop' into Weblate. 2021-02-04 15:28:09 +00:00
Yamamoto Kenji
cfadc616b2 Translated using Weblate (Japanese)
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/ja/
2021-02-04 15:28:09 +00:00
Michael Telatynski
816ea3d904 Merge pull request #16307 from vector-im/t3chguy/spaces
Enable PostCSS Calc in webpack builds
2021-02-04 15:28:01 +00:00
Weblate
cefe8cf379 Merge branch 'origin/develop' into Weblate. 2021-02-04 12:45:06 +00:00
J. Ryan Stinnett
4acdb7c715 Merge pull request #16367 from vector-im/add-readme-security-best-practices
Add configuration security best practices to the README.
2021-02-04 12:44:59 +00:00
Weblate
105d1c8c41 Merge branch 'origin/develop' into Weblate. 2021-02-04 12:39:46 +00:00
Rintan
4f852f3d69 Translated using Weblate (Japanese)
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/ja/
2021-02-04 12:39:45 +00:00
RiotRobot
1b276c9e00 Reset matrix-react-sdk back to develop branch 2021-02-04 12:27:31 +00:00
RiotRobot
fb67a14486 Reset matrix-js-sdk back to develop branch 2021-02-04 12:25:41 +00:00
RiotRobot
ab828ac6d9 Merge branch 'master' into develop 2021-02-04 12:24:38 +00:00
Denis Kasak
b22484d203 Add configuration security best practices to the README.
Closes #13870.
2021-02-04 13:24:19 +01:00
RiotRobot
ff9df5dd1f v1.7.20 2021-02-04 12:19:46 +00:00
RiotRobot
5523d7e0f5 Prepare changelog for v1.7.20 2021-02-04 12:12:00 +00:00
RiotRobot
f2bb636373 Upgrade matrix-react-sdk to 3.13.1 2021-02-04 12:09:36 +00:00
Weblate
b617cb78e7 Merge branch 'origin/develop' into Weblate. 2021-02-03 12:30:05 +00:00
RiotRobot
c6e94c61db Reset matrix-react-sdk back to develop branch 2021-02-03 12:29:53 +00:00
RiotRobot
9a32dd7071 Reset matrix-js-sdk back to develop branch 2021-02-03 12:29:42 +00:00
RiotRobot
8d604ced78 Merge branch 'master' into develop 2021-02-03 12:28:56 +00:00
RiotRobot
56caad3ef2 v1.7.19 2021-02-03 12:24:51 +00:00
RiotRobot
0bce2de538 Prepare changelog for v1.7.19 2021-02-03 12:24:50 +00:00
RiotRobot
7c8ecaaca3 Upgrade matrix-react-sdk to 3.13.0 2021-02-03 12:21:31 +00:00
RiotRobot
db0897f78e Upgrade matrix-js-sdk to 9.6.0 2021-02-03 12:16:48 +00:00
J. Ryan Stinnett
a34361fcd7 Merge pull request #16348 from vector-im/jryans/tally-ho-release
[Release] Upgrade matrix-widget-api
2021-02-02 15:28:14 +00:00
J. Ryan Stinnett
d2c161b451 Upgrade matrix-widget-api 2021-02-02 15:22:24 +00:00
Weblate
93f1cb6ecb Merge branch 'origin/develop' into Weblate. 2021-02-02 15:14:11 +00:00
Slobodan Simić
1f71eb1b33 Translated using Weblate (Serbian)
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/sr/
2021-02-02 15:14:11 +00:00
Tim Al
92d63579af 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-02-02 15:14:11 +00:00
John
59f82eaf0a Translated using Weblate (Greek)
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/el/
2021-02-02 15:14:11 +00:00
@a2sc:matrix.org
50adc958c3 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-02 15:14:11 +00:00
J. Ryan Stinnett
173ca66f29 Merge pull request #16347 from vector-im/jryans/tally-ho
Upgrade matrix-widget-api
2021-02-02 15:14:04 +00:00
J. Ryan Stinnett
ade9babb80 Upgrade matrix-widget-api 2021-02-02 15:04:27 +00:00
Auri B. P
d4627576c8 Translated using Weblate (Catalan)
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/ca/
2021-01-31 17:35:50 +00:00
Ricardo
49d3d5dffe 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-01-31 17:35:50 +00:00
RiotRobot
341c806ac1 v1.7.19-rc.1 2021-01-29 17:34:02 +00:00
RiotRobot
2f9395e4a4 Prepare changelog for v1.7.19-rc.1 2021-01-29 17:34:02 +00:00
RiotRobot
4b25054d92 Upgrade matrix-react-sdk to 3.13.0-rc.1 2021-01-29 17:30:39 +00:00
RiotRobot
e010e27f9d Upgrade matrix-js-sdk to 9.6.0-rc.1 2021-01-29 17:30:19 +00:00
J. Ryan Stinnett
e31051e5ea Merge pull request #16314 from RiotTranslateBot/weblate-element-web-element-web
Translations update from Weblate
2021-01-29 17:13:42 +00:00
Weblate
3d47540846 Merge branch 'origin/develop' into Weblate. 2021-01-29 13:29:10 +00:00
Michael Telatynski
d5a824d6dd Merge pull request #16292 from vector-im/t3chguy/sso_fixes
Use history replaceState instead of redirect for SSO flow
2021-01-29 13:29:02 +00:00
Weblate
75f6c017c1 Merge branch 'origin/develop' into Weblate. 2021-01-29 11:18:20 +00:00
J. Ryan Stinnett
8f0537f9a3 Merge pull request #16301 from vector-im/jryans/maybe-mobile
Document the mobile guide toast option
2021-01-29 11:18:14 +00:00
Weblate
024549cef4 Merge branch 'origin/develop' into Weblate. 2021-01-29 11:02:33 +00:00
J. Ryan Stinnett
5af530c24e Lock new version of React SDK for widget API 2021-01-29 11:02:19 +00:00
Weblate
8cb5e47ee7 Merge branch 'origin/develop' into Weblate. 2021-01-29 10:12:56 +00:00
J. Ryan Stinnett
313e82ac2d Merge pull request #16303 from vector-im/travis/update-deps/wapi-12
Update widget-api to beta.12
2021-01-29 10:12:49 +00:00
Michael Telatynski
9133b80f2b Merge branch 'develop' into t3chguy/spaces 2021-01-29 09:19:40 +00:00
Michael Telatynski
97925a6ad9 Iterate SpacePanel, fix tooltips and give consistent expanded states 2021-01-29 09:16:55 +00:00
Travis Ralston
e40fa8823a Update widget-api to beta.12 2021-01-28 20:44:53 -07:00
J. Ryan Stinnett
bf5a69d3a0 Document the mobile guide toast option
Part of https://github.com/vector-im/element-web/issues/16283
2021-01-28 17:28:52 +00:00
Weblate
4517e6512e Merge branch 'origin/develop' into Weblate. 2021-01-27 14:59:39 +00:00
J. Ryan Stinnett
86310a4de0 Merge pull request #16294 from vector-im/jryans/upgrade-deps-2021-01
Upgrade deps 2021-01
2021-01-27 14:59:31 +00:00
J. Ryan Stinnett
8140a9618e Explicitly enable ES proposals already in use 2021-01-27 14:50:00 +00:00
J. Ryan Stinnett
0f3623393f Fix typing errors after upgrades 2021-01-27 14:35:02 +00:00
J. Ryan Stinnett
c34a36a9e2 Nested upgrades via yarn upgrade 2021-01-27 14:33:53 +00:00
J. Ryan Stinnett
d03edb91ea Apply somple major version upgrades 2021-01-27 14:31:17 +00:00
J. Ryan Stinnett
ab0677530b Nested upgrades via yarn upgrade 2021-01-27 14:17:53 +00:00
J. Ryan Stinnett
e7c722bb99 Pin React types to 16.x for now
This avoids type conflicts from other deps that depends on just `*`. Type deps
needs to be de-duplicated down to a single version to avoid errors (unlike code
deps).
2021-01-27 14:14:25 +00:00
J. Ryan Stinnett
48613027fc Upgrade to latest minor deps 2021-01-27 14:10:51 +00:00
Michael Telatynski
d47948fb7b Improve SSO auth flow
Use replaceState instead of a redirect to strip the loginToken
Put user into the same post-auth flows of E2ESetup
Skip UIA prompt in this post-auth flow, happy path is a server grace period
2021-01-27 12:50:14 +00:00
Weblate
a47be2236b Merge branch 'origin/develop' into Weblate. 2021-01-26 12:29:40 +00:00
@a2sc:matrix.org
49b2f37dc8 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-01-26 12:29:40 +00:00
RiotRobot
089afaad93 Reset matrix-react-sdk back to develop branch 2021-01-26 12:29:29 +00:00
RiotRobot
86b0f898ec Reset matrix-js-sdk back to develop branch 2021-01-26 12:29:16 +00:00
RiotRobot
e66d500b02 Merge branch 'master' into develop 2021-01-26 12:26:47 +00:00
Dellle
c4c51945f0 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-01-26 09:44:26 +00:00
Weblate
4ab84d3b59 Merge branch 'origin/develop' into Weblate. 2021-01-25 13:14:58 +00:00
Andrejs
851d8e4265 Translated using Weblate (Latvian)
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/lv/
2021-01-25 13:14:58 +00:00
vachan-maker
151c365fd8 Translated using Weblate (Malayalam)
Currently translated at 57.5% (19 of 33 strings)

Translation: Element Web/element-web
Translate-URL: https://translate.element.io/projects/element-web/element-web/ml/
2021-01-25 13:14:58 +00:00
J. Ryan Stinnett
f728189445 Merge pull request #16275 from vector-im/jryans/node-14-buster
Move to newer base image for Docker builds
2021-01-25 13:14:51 +00:00
J. Ryan Stinnett
b2a93c3b64 Move to newer base image for Docker builds
This updates to Node 14 (current LTS) as well as moving from Debian Stretch to
Buster for the base OS. The Debian upgrade brings along a newer Python 3.8,
which is actively supported.
2021-01-25 12:58:39 +00:00
Weblate
adac68ed13 Merge branch 'origin/develop' into Weblate. 2021-01-22 14:12:02 +00:00
David Baker
342d0474fd Merge pull request #16236 from vector-im/dbkr/voip_user_mapper
Docs for the VoIP translate pattern option
2021-01-22 14:11:54 +00:00
David Baker
f8b9958010 Docs for the voip translate pattern option 2021-01-21 19:23:57 +00:00
Weblate
2a0a9c5f9e Merge branch 'origin/develop' into Weblate. 2021-01-20 21:41:31 +00:00
Travis Ralston
18c5d9a3a9 Merge pull request #16227 from vector-im/travis/docs-1
Fix Riot->Element in permalinkPrefix docs
2021-01-20 14:41:25 -07:00
Travis Ralston
40f2ba8205 Fix Riot->Element in permalinkPrefix docs 2021-01-20 14:39:01 -07:00
Weblate
ec3b2c99e2 Merge branch 'origin/develop' into Weblate. 2021-01-20 18:53:16 +00:00
Travis Ralston
065fb13a56 Merge pull request #16215 from vector-im/travis/jwt-server-name
Supply server_name for optional federation-capable Jitsi auth
2021-01-20 11:53:07 -07:00
Travis Ralston
5cb323feed Supply server_name for optional federation-capable Jitsi auth
See https://github.com/matrix-org/prosody-mod-auth-matrix-user-verification/pull/3
2021-01-19 10:23:23 -07:00
Weblate
12e2200b11 Merge branch 'origin/develop' into Weblate. 2021-01-19 15:20:44 +00:00
J. Ryan Stinnett
0aa6fbe3e2 Merge pull request #16212 from vector-im/jryans/widget-api-deathmatch
Fix Widget API version confusion
2021-01-19 15:20:38 +00:00
J. Ryan Stinnett
51361acb1a Fix Widget API version confusion 2021-01-19 15:14:04 +00:00
Weblate
c0bfc4eeb3 Merge branch 'origin/develop' into Weblate. 2021-01-19 11:25:01 +00:00
XoseM
953b4675e0 Translated using Weblate (Galician)
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/gl/
2021-01-19 11:25:01 +00:00
J. Ryan Stinnett
a72ab0da04 Merge pull request #16210 from vector-im/jryans/add-langs-2021-01
Add Hebrew language
2021-01-19 11:24:55 +00:00
J. Ryan Stinnett
cdc97a220a Add Hebrew language 2021-01-19 11:16:56 +00:00
Weblate
668abba95a Merge branch 'origin/develop' into Weblate. 2021-01-18 16:09:25 +00:00
Travis Ralston
042ce153ae Merge pull request #16177 from vector-im/travis/widget-api-update
Update widget-api to beta 11
2021-01-18 09:09:19 -07:00
Weblate
2ff3f2d577 Merge branch 'origin/develop' into Weblate. 2021-01-18 15:25:22 +00:00
RiotRobot
c5217b6d6d Reset matrix-react-sdk back to develop branch 2021-01-18 15:25:13 +00:00
RiotRobot
fff8ac231e Reset matrix-js-sdk back to develop branch 2021-01-18 15:25:01 +00:00
Weblate
0f126d88ec Merge branch 'origin/develop' into Weblate. 2021-01-18 15:24:59 +00:00
RiotRobot
b0fc8572ad Merge branch 'master' into develop 2021-01-18 15:24:48 +00:00
Weblate
a9abad3cfd Merge branch 'origin/develop' into Weblate. 2021-01-18 12:10:28 +00:00
J. Ryan Stinnett
4c574d63db Merge pull request #16192 from vector-im/jryans/docker-build-develop
Fix develop Docker builds
2021-01-18 12:10:23 +00:00
J. Ryan Stinnett
8c98921842 Fix develop Docker builds
An extra step is needed for develop Docker builds after recent build process
changes. This was regressed by
https://github.com/vector-im/element-web/pull/15999.

Fixes https://github.com/vector-im/element-web/issues/16119
2021-01-18 12:01:58 +00:00
Slobodan Simić
92e55ac1c1 Translated using Weblate (Serbian)
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/sr/
2021-01-17 21:35:45 +00:00
Travis Ralston
8bdbb5c989 Update widget-api to beta 11
Consistency with https://github.com/matrix-org/matrix-react-sdk/pull/5527
2021-01-16 23:35:15 -07:00
J. Ryan Stinnett
2040ea2b82 Merge pull request #16157 from vector-im/jryans/sw-web-only
Skip the service worker for Electron
2021-01-15 12:42:14 +00:00
J. Ryan Stinnett
0bbcda09af Move into constructor 2021-01-15 12:35:42 +00:00
J. Ryan Stinnett
e077d9ca5f Move service worker into platform 2021-01-15 12:25:21 +00:00
J. Ryan Stinnett
87e67d8168 Skip the service worker for Electron
At the moment, there's no point in installing the empty service worker on
Electron.

Fixes https://github.com/vector-im/element-web/issues/16008
2021-01-15 11:05:27 +00:00
J. Ryan Stinnett
0e14dc06fb Merge pull request #16137 from vector-im/jryans/context-isolation
Use isolated IPC API
2021-01-13 16:50:33 +00:00
J. Ryan Stinnett
58eca1aa7d Use isolated IPC API
This adjusts to match changes on the desktop side where we now use Electron's
context isolation feature to expose only the IPC channels and methods we
actually expect to use.
2021-01-13 15:39:18 +00: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
47 changed files with 3608 additions and 3880 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,148 @@
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)
* Upgrade to React SDK 3.14.0-rc.1 and JS SDK 9.7.0-rc.1
* Translations update from Weblate
[\#16427](https://github.com/vector-im/element-web/pull/16427)
* Add RegExp dotAll feature test
[\#16408](https://github.com/vector-im/element-web/pull/16408)
* Fix Electron type merging
[\#16405](https://github.com/vector-im/element-web/pull/16405)
* README: remove Jenkins reference
[\#16381](https://github.com/vector-im/element-web/pull/16381)
* Enable PostCSS Calc in webpack builds
[\#16307](https://github.com/vector-im/element-web/pull/16307)
* Add configuration security best practices to the README.
[\#16367](https://github.com/vector-im/element-web/pull/16367)
* Upgrade matrix-widget-api
[\#16347](https://github.com/vector-im/element-web/pull/16347)
Changes in [1.7.20](https://github.com/vector-im/element-web/releases/tag/v1.7.20) (2021-02-04)
===============================================================================================
[Full Changelog](https://github.com/vector-im/element-web/compare/v1.7.19...v1.7.20)
* Upgrade to React SDK 3.13.1
Changes in [1.7.19](https://github.com/vector-im/element-web/releases/tag/v1.7.19) (2021-02-03)
===============================================================================================
[Full Changelog](https://github.com/vector-im/element-web/compare/v1.7.19-rc.1...v1.7.19)
* Upgrade to React SDK 3.13.0 and JS SDK 9.6.0
* [Release] Upgrade matrix-widget-api
[\#16348](https://github.com/vector-im/element-web/pull/16348)
Changes in [1.7.19-rc.1](https://github.com/vector-im/element-web/releases/tag/v1.7.19-rc.1) (2021-01-29)
=========================================================================================================
[Full Changelog](https://github.com/vector-im/element-web/compare/v1.7.18...v1.7.19-rc.1)
* Upgrade to React SDK 3.13.0-rc.1 and JS SDK 9.6.0-rc.1
* Translations update from Weblate
[\#16314](https://github.com/vector-im/element-web/pull/16314)
* Use history replaceState instead of redirect for SSO flow
[\#16292](https://github.com/vector-im/element-web/pull/16292)
* Document the mobile guide toast option
[\#16301](https://github.com/vector-im/element-web/pull/16301)
* Update widget-api to beta.12
[\#16303](https://github.com/vector-im/element-web/pull/16303)
* Upgrade deps 2021-01
[\#16294](https://github.com/vector-im/element-web/pull/16294)
* Move to newer base image for Docker builds
[\#16275](https://github.com/vector-im/element-web/pull/16275)
* Docs for the VoIP translate pattern option
[\#16236](https://github.com/vector-im/element-web/pull/16236)
* Fix Riot->Element in permalinkPrefix docs
[\#16227](https://github.com/vector-im/element-web/pull/16227)
* Supply server_name for optional federation-capable Jitsi auth
[\#16215](https://github.com/vector-im/element-web/pull/16215)
* Fix Widget API version confusion
[\#16212](https://github.com/vector-im/element-web/pull/16212)
* Add Hebrew language
[\#16210](https://github.com/vector-im/element-web/pull/16210)
* Update widget-api to beta 11
[\#16177](https://github.com/vector-im/element-web/pull/16177)
* Fix develop Docker builds
[\#16192](https://github.com/vector-im/element-web/pull/16192)
* Skip the service worker for Electron
[\#16157](https://github.com/vector-im/element-web/pull/16157)
* Use isolated IPC API
[\#16137](https://github.com/vector-im/element-web/pull/16137)
Changes in [1.7.18](https://github.com/vector-im/element-web/releases/tag/v1.7.18) (2021-01-26)
===============================================================================================
[Full Changelog](https://github.com/vector-im/element-web/compare/v1.7.17...v1.7.18)

View File

@@ -1,5 +1,5 @@
# Builder
FROM node:12 as builder
FROM node:14-buster as builder
# Support custom branches of the react-sdk and js-sdk. This also helps us build
# images of element-web develop.

152
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
@@ -31,7 +31,7 @@ Getting Started
===============
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
The `develop` branch is continuously deployed to https://develop.element.io
for those who like living dangerously.
To host your own copy of Element, the quickest bet is to use a pre-built
@@ -58,8 +58,11 @@ and thus allowed.
To install Element as a desktop application, see [Running as a desktop
app](#running-as-a-desktop-app) below.
Important Security Note
=======================
Important Security Notes
========================
Separate domains
----------------
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)
@@ -71,6 +74,45 @@ We have put some coarse mitigations into place to try to protect against this
situation, but it's still not good practice to do it in the first place. See
https://github.com/vector-im/element-web/issues/1977 for more details.
Configuration best practices
----------------------------
Unless you have special requirements, you will want to add the following to
your web server configuration when hosting Element Web:
- The `X-Frame-Options: SAMEORIGIN` header, to prevent Element Web from being
framed and protect from [clickjacking][owasp-clickjacking].
- The `frame-ancestors 'none'` directive to your `Content-Security-Policy`
header, as the modern replacement for `X-Frame-Options` (though both should be
included since not all browsers support it yet, see
[this][owasp-clickjacking-csp]).
- The `X-Content-Type-Options: nosniff` header, to [disable MIME
sniffing][mime-sniffing].
- The `X-XSS-Protection: 1; mode=block;` header, for basic XSS protection in
legacy browsers.
[mime-sniffing]:
<https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types#mime_sniffing>
[owasp-clickjacking-csp]:
<https://cheatsheetseries.owasp.org/cheatsheets/Clickjacking_Defense_Cheat_Sheet.html#content-security-policy-frame-ancestors-examples>
[owasp-clickjacking]:
<https://cheatsheetseries.owasp.org/cheatsheets/Clickjacking_Defense_Cheat_Sheet.html>
If you are using nginx, this would look something like the following:
```
add_header X-Frame-Options SAMEORIGIN;
add_header X-Content-Type-Options nosniff;
add_header X-XSS-Protection "1; mode=block";
add_header Content-Security-Policy "frame-ancestors 'none'";
```
Note: In case you are already setting a `Content-Security-Policy` header
elsewhere, you should modify it to include the `frame-ancestors` directive
instead of adding that last line.
Building From Source
====================
@@ -99,7 +141,8 @@ guide](https://classic.yarnpkg.com/en/docs/install) if you do not have it alread
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 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.
`webapp` directory on your web server to actually serve up the app, which is
entirely static content.
Running as a Desktop app
========================
@@ -345,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,12 +3,15 @@ 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",
"@babel/preset-flow",
"@babel/preset-react"
"@babel/preset-react",
],
"plugins": [
["@babel/plugin-proposal-decorators", {legacy: true}],
@@ -16,8 +19,10 @@ module.exports = {
"@babel/plugin-proposal-numeric-separator",
"@babel/plugin-proposal-class-properties",
"@babel/plugin-proposal-object-rest-spread",
"@babel/plugin-proposal-optional-chaining",
"@babel/plugin-proposal-nullish-coalescing-operator",
"@babel/plugin-transform-flow-comments",
"@babel/plugin-syntax-dynamic-import",
"@babel/plugin-transform-runtime"
]
"@babel/plugin-transform-runtime",
],
};

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

@@ -82,8 +82,8 @@ For a good example, see https://develop.element.io/config.json.
default homeserver when signing up or logging in.
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").
Set this to your Element instance URL if you run an unfederated server (eg:
"https://element.example.org").
1. `jitsi`: Used to change the default conference options. Learn more about the
Jitsi options at [jitsi.md](./jitsi.md).
1. `preferredDomain`: The domain name of the preferred Jitsi instance. Defaults
@@ -110,6 +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. `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.18",
"version": "1.7.23",
"description": "A feature-rich client for Matrix.org",
"author": "New Vector Ltd.",
"repository": {
@@ -55,94 +55,100 @@
"dependencies": {
"browser-request": "^0.3.3",
"gfm.css": "^1.1.2",
"highlight.js": "^10.4.1",
"jsrsasign": "^9.1.5",
"highlight.js": "^10.5.0",
"jsrsasign": "^10.1.5",
"katex": "^0.12.0",
"matrix-js-sdk": "9.5.1",
"matrix-react-sdk": "3.12.1",
"matrix-widget-api": "^0.1.0-beta.10",
"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",
"react": "^16.9.0",
"react-dom": "^16.9.0",
"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.19",
"url": "^0.11.0"
"ua-parser-js": "^0.7.23"
},
"devDependencies": {
"@babel/core": "^7.7.5",
"@babel/plugin-proposal-class-properties": "^7.7.4",
"@babel/plugin-proposal-decorators": "^7.7.4",
"@babel/plugin-proposal-export-default-from": "^7.7.4",
"@babel/plugin-proposal-numeric-separator": "^7.7.4",
"@babel/plugin-proposal-object-rest-spread": "^7.7.4",
"@babel/plugin-syntax-dynamic-import": "^7.7.4",
"@babel/plugin-transform-flow-comments": "^7.7.4",
"@babel/plugin-transform-runtime": "^7.7.6",
"@babel/preset-env": "^7.7.6",
"@babel/preset-flow": "^7.7.4",
"@babel/preset-react": "^7.7.4",
"@babel/preset-typescript": "^7.7.4",
"@babel/register": "^7.7.4",
"@babel/runtime": "^7.7.6",
"@babel/core": "^7.12.10",
"@babel/plugin-proposal-class-properties": "^7.12.1",
"@babel/plugin-proposal-decorators": "^7.12.12",
"@babel/plugin-proposal-export-default-from": "^7.12.1",
"@babel/plugin-proposal-nullish-coalescing-operator": "^7.12.1",
"@babel/plugin-proposal-numeric-separator": "^7.12.7",
"@babel/plugin-proposal-object-rest-spread": "^7.12.1",
"@babel/plugin-proposal-optional-chaining": "^7.12.7",
"@babel/plugin-syntax-dynamic-import": "^7.8.3",
"@babel/plugin-transform-flow-comments": "^7.12.1",
"@babel/plugin-transform-runtime": "^7.12.10",
"@babel/preset-env": "^7.12.11",
"@babel/preset-flow": "^7.12.1",
"@babel/preset-react": "^7.12.10",
"@babel/preset-typescript": "^7.12.7",
"@babel/register": "^7.12.10",
"@babel/runtime": "^7.12.5",
"@types/flux": "^3.1.9",
"@types/modernizr": "^3.5.3",
"@types/node": "^12.12.41",
"@types/react": "16.9",
"@types/react-dom": "^16.9.4",
"@types/sanitize-html": "^1.23.3",
"autoprefixer": "^9.7.3",
"babel-eslint": "^10.0.3",
"babel-jest": "^24.9.0",
"babel-loader": "^8.0.6",
"@types/node": "^14.14.22",
"@types/react": "^16.9",
"@types/react-dom": "^16.9.10",
"@types/sanitize-html": "^1.27.1",
"autoprefixer": "^9.8.6",
"babel-eslint": "^10.1.0",
"babel-jest": "^26.6.3",
"babel-loader": "^8.2.2",
"canvas": "^2.6.1",
"chokidar": "^3.3.1",
"concurrently": "^4.0.1",
"cpx": "^1.3.2",
"css-loader": "^3.3.2",
"eslint": "7.3.1",
"eslint-config-matrix-org": "^0.1.2",
"eslint-plugin-babel": "^4.1.2",
"eslint-plugin-flowtype": "^2.50.3",
"eslint-plugin-react": "^7.11.1",
"eslint-plugin-react-hooks": "^2.2.0",
"chokidar": "^3.5.1",
"concurrently": "^5.3.0",
"cpx": "^1.5.0",
"css-loader": "^3.6.0",
"eslint": "7.18.0",
"eslint-config-matrix-org": "^0.2.0",
"eslint-plugin-babel": "^5.3.1",
"eslint-plugin-flowtype": "^5.2.0",
"eslint-plugin-react": "^7.22.0",
"eslint-plugin-react-hooks": "^4.2.0",
"extract-text-webpack-plugin": "^4.0.0-beta.0",
"fake-indexeddb": "^3.0.0",
"file-loader": "^5.0.2",
"fake-indexeddb": "^3.1.2",
"file-loader": "^5.1.0",
"fs-extra": "^0.30.0",
"html-webpack-plugin": "^3.2.0",
"jest": "^26.5.2",
"jest": "^26.6.3",
"jest-environment-jsdom-sixteen": "^1.0.3",
"json-loader": "^0.5.3",
"loader-utils": "^1.2.3",
"json-loader": "^0.5.7",
"loader-utils": "^1.4.0",
"matrix-mock-request": "^1.2.3",
"matrix-react-test-utils": "^0.2.2",
"mini-css-extract-plugin": "^0.8.0",
"minimist": "^1.2.0",
"mkdirp": "^0.5.1",
"modernizr": "^3.6.0",
"node-fetch": "^2.6.0",
"optimize-css-assets-webpack-plugin": "^5.0.3",
"mini-css-extract-plugin": "^0.12.0",
"minimist": "^1.2.5",
"mkdirp": "^1.0.4",
"modernizr": "^3.11.4",
"node-fetch": "^2.6.1",
"optimize-css-assets-webpack-plugin": "^5.0.4",
"postcss-calc": "^7.0.5",
"postcss-easings": "^2.0.0",
"postcss-extend": "^1.0.5",
"postcss-hexrgba": "^2.0.0",
"postcss-hexrgba": "^2.0.1",
"postcss-import": "^12.0.1",
"postcss-loader": "^3.0.0",
"postcss-mixins": "^6.2.3",
"postcss-nested": "^4.2.1",
"postcss-nested": "^4.2.3",
"postcss-preset-env": "^6.7.0",
"postcss-scss": "^2.0.0",
"postcss-scss": "^2.1.1",
"postcss-simple-vars": "^5.0.2",
"postcss-strip-inline-comments": "^0.1.5",
"rimraf": "^2.4.3",
"rimraf": "^3.0.2",
"shell-escape": "^0.2.0",
"simple-proxy-agent": "^1.1.0",
"stylelint": "^12.0.1",
"terser-webpack-plugin": "^2.3.0",
"typescript": "^3.7.3",
"webpack": "^4.41.2",
"webpack-cli": "^3.3.10",
"webpack-dev-server": "^3.9.0"
"stylelint": "^13.9.0",
"terser-webpack-plugin": "^2.3.8",
"typescript": "^4.1.3",
"webpack": "^4.46.0",
"webpack-cli": "^3.3.12",
"webpack-dev-server": "^3.11.2"
},
"resolutions": {
"**/@types/react": "^16.14"
},
"jest": {
"testEnvironment": "jest-environment-jsdom-sixteen",

View File

@@ -26,6 +26,7 @@ const INCLUDE_LANGS = [
{'value': 'fi', 'label': 'Suomi'},
{'value': 'fr', 'label': 'Français'},
{'value': 'gl', 'label': 'Galego'},
{'value': 'he', 'label': 'עברית'},
{'value': 'hi', 'label': 'हिन्दी'},
{'value': 'hu', 'label': 'Magyar'},
{'value': 'is', 'label': 'íslenska'},

View File

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

View File

@@ -1,5 +1,5 @@
/*
Copyright 2020 New Vector Ltd
Copyright 2020, 2021 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.
@@ -17,21 +17,42 @@ limitations under the License.
import "matrix-react-sdk/src/@types/global"; // load matrix-react-sdk's type extensions first
import type {Renderer} from "react-dom";
type ElectronChannel =
"app_onAction" |
"before-quit" |
"check_updates" |
"install_update" |
"ipcCall" |
"ipcReply" |
"loudNotification" |
"preferences" |
"seshat" |
"seshatReply" |
"setBadgeCount" |
"update-downloaded" |
"userDownloadCompleted" |
"userDownloadOpen";
declare global {
interface Window {
mxSendRageshake: (text: string, withLogs?: boolean) => void;
matrixChat: ReturnType<Renderer>;
// electron-only
ipcRenderer: any;
electron?: Electron;
// opera-only
opera: any;
opera?: any;
// https://developer.mozilla.org/en-US/docs/Web/API/InstallTrigger
InstallTrigger: any;
}
interface Electron {
on(channel: ElectronChannel, listener: (event: Event, ...args: any[]) => void): void;
send(channel: ElectronChannel, ...args: any[]): void;
}
interface Navigator {
// PWA badging extensions https://w3c.github.io/badging/
setAppBadge?(count: number): Promise<void>;

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

@@ -2,22 +2,22 @@
"Dismiss": "Omet",
"Unknown device": "Dispositiu desconegut",
"Welcome to Element": "Benvingut/da a Element",
"You need to be using HTTPS to place a screen-sharing call.": "Necessites utilitzar HTTPS per poder fer una trucada amb pantalla compartida.",
"You need to be using HTTPS to place a screen-sharing call.": "Has d'utilitzar HTTPS per poder fer una trucada amb pantalla compartida.",
"powered by Matrix": "amb tecnologia de Matrix",
"Decentralised, encrypted chat &amp; collaboration powered by [matrix]": "Xat descentralitzat, encriptat &amp; col·laboratiu amb tecnologia de [matrix]",
"Decentralised, encrypted chat &amp; collaboration powered by [matrix]": "Xat descentralitzat, xifrat i col·laboratiu amb tecnologia de [matrix]",
"Create Account": "Crea un compte",
"Explore rooms": "Explora sales",
"Sign In": "Inicia la sessió",
"Sign In": "Inicia sessió",
"Invalid configuration: no default server specified.": "Configuració invàlida: no s'ha especificat cap servidor predeterminat.",
"Invalid JSON": "JSON invàlid",
"Go to your browser to complete Sign In": "Ves al teu navegador per completar l'inici de sessió",
"Invalid configuration: can only specify one of default_server_config, default_server_name, or default_hs_url.": "Configuració invàlida: només pots especificar una sol de default_server_config, default_server_name, o default_hs_url.",
"Go to your browser to complete Sign In": "Vés al navegador per completar l'inici de sessió",
"Invalid configuration: can only specify one of default_server_config, default_server_name, or default_hs_url.": "Configuració invàlida: només pots especificar una únic default_server_config, default_server_name, o default_hs_url.",
"Your Element is misconfigured": "Element està mal configurat",
"Your Element configuration contains invalid JSON. Please correct the problem and reload the page.": "La configuració d'Element conté un JSON invàlid. Arregla el problema i actualitza la pàgina.",
"Your Element configuration contains invalid JSON. Please correct the problem and reload the page.": "La configuració d'Element conté un JSON invàlid. Soluciona el problema i actualitza la pàgina.",
"The message from the parser is: %(message)s": "El missatge de l'analitzador és: %(message)s",
"Unable to load config file: please refresh the page to try again.": "No s'ha pogut carregar el fitxer de configuració: actualitza la pàgina per tornar-ho a provar.",
"Unexpected error preparing the app. See console for details.": "Error inesperat preparant l'app. Consulta la consola pels a més detalls.",
"Download Completed": "Descàrrega completada",
"Unexpected error preparing the app. See console for details.": "Error inesperat durant la preparació de l'aplicació. Consulta la consola pels a més detalls.",
"Download Completed": "Baixada completada",
"Open": "Obre",
"Open user settings": "Obre la configuració d'usuari",
"Previous/next recently visited room or community": "Anterior/següent sala o comunitat visitada recentment",

View File

@@ -7,13 +7,13 @@
"Decentralised, encrypted chat &amp; collaboration powered by [matrix]": "Dezentrale, verschlüsselte Chat- &amp; Kollaborationslösung mittels [matrix]",
"Sign In": "Anmelden",
"Create Account": "Account erstellen",
"Explore rooms": "Erkunde Räume",
"Unexpected error preparing the app. See console for details.": "Unerwarteter Fehler bei der Vorbereitung der App. Siehe Konsole für Details.",
"Explore rooms": "Räume erkunden",
"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 diesem Browser weitermachen, aber einiges könnte nicht funktionieren und die Darstellung könnte fehlerhaft sein.",
"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 @@
"You need to be using HTTPS to place a screen-sharing call.": "Απαιτείται η χρήση HTTPS για την πραγματοποίηση κλήσης διαμοιρασμού επιφάνειας εργασίας.",
"powered by Matrix": "λειτουργεί με το Matrix",
"Welcome to Element": "Καλώς ήλθατε στο Element",
"Decentralised, encrypted chat &amp; collaboration powered by [matrix]": "Αποκεντρωμένη, κρυπτογραφημένη συνομιλία και συνεργασία χρησιμοποιώντας το [matrix]",
"Decentralised, encrypted chat &amp; collaboration powered by [matrix]": "Αποκεντρωμένη, κρυπτογραφημένη συνεργασία συνομιλίας χρησιμοποιώντας το [matrix]",
"Sign In": "Σύνδεση",
"Create Account": "Δημιουργία Λογαριασμού",
"The message from the parser is: %(message)s": "Το μήνυμα από τον αναλυτή είναι: %(message)s",

View File

@@ -3,34 +3,34 @@
"Dismiss": "Omitir",
"powered by Matrix": "con el poder de Matrix",
"You need to be using HTTPS to place a screen-sharing call.": "Debes usar HTTPS para hacer una llamada con pantalla compartida.",
"Welcome to Element": "Bienvenido a Element",
"Decentralised, encrypted chat &amp; collaboration powered by [matrix]": "Conversaciones cifradas y descentralizadas &amp; colaboración impulsada por [matrix]",
"Welcome to Element": "Te damos la bienvenida a Element",
"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",
"Unexpected error preparing the app. See console for details.": "Error inesperado preparando la aplicación. Vea la consola para más detalles.",
"Unexpected error preparing the app. See console for details.": "Error inesperado preparando la aplicación. Ver la consola para más detalles.",
"Invalid configuration: can only specify one of default_server_config, default_server_name, or default_hs_url.": "Configuración errónea: sólo puede especificar uno de default_server_config, default_server_name, o default_hs_url.",
"Invalid configuration: no default server specified.": "Configuración errónea: no se ha especificado servidor.",
"The message from the parser is: %(message)s": "El mensaje del parser es: %(message)s",
"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!",
"Unable to load config file: please refresh the page to try again.": "No se ha podido cargar el archivo de configuración. Recarga la página para intentar nuevamente.",
"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 Escritorio (%(platformName)s)",
"%(brand)s Desktop (%(platformName)s)": "%(brand)s de escritorio (%(platformName)s)",
"%(appName)s (%(browserName)s, %(osName)s)": "%(appName)s (%(browserName)s, %(osName)s)",
"Unsupported browser": "Navegador no soportado",
"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": "Tu elemento está mal configurado",
"Your Element configuration contains invalid JSON. Please correct the problem and reload the page.": "Su configuración de Element contiene JSON inválido. Por favor corríjalo e inténtelo de nuevo.",
"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 es incompatible 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": "Desarrollado por Matrix"
"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

@@ -12,7 +12,7 @@
"Invalid JSON": "JSON non válido",
"Unexpected error preparing the app. See console for details.": "Fallo non agardado ao preparar a app. Detalles na consola.",
"Invalid configuration: can only specify one of default_server_config, default_server_name, or default_hs_url.": "Configuración non válida: só se pode indicar un de default_server_config, default_server_name, ou default_hs_url.",
"Invalid configuration: no default server specified.": "Configuración non válida: non se indicou servidor por omisión.",
"Invalid configuration: no default server specified.": "Configuración non válida: non se indicou servidor por defecto.",
"Missing indexeddb worker script!": "Falta o script indexeddb!",
"Unable to load config file: please refresh the page to try again.": "Non se cargou o ficheiro de configuración: actualiza a páxina para reintentalo.",
"Open user settings": "Abrir axustes da usuaria",

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

@@ -8,8 +8,8 @@
"Unexpected error preparing the app. See console for details.": "アプリケーションの準備中に予期しないエラーが発生しました。詳細はコンソールを参照してください。",
"Invalid configuration: no default server specified.": "不正な設定です:デフォルトのサーバーが設定されていません。",
"Sign In": "サインイン",
"Create Account": "アカウント作成",
"Explore rooms": "部屋を探索する",
"Create Account": "アカウント作成",
"Explore rooms": "部屋を探",
"The message from the parser is: %(message)s": "パーザーのメッセージ: %(message)s",
"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のいずれか一つのみが指定できます。",
@@ -31,5 +31,6 @@
"Your Element configuration contains invalid JSON. Please correct the problem and reload the page.": "Elementの設定ファイルに不正なJSONが含まれています。問題を修正してからページを再読込してください。",
"Your browser can't run %(brand)s": "このブラウザでは%(brand)sが動きません",
"%(brand)s uses advanced browser features which aren't supported by your current browser.": "%(brand)sはブラウザの高度な機能を使う必要がありますが、このブラウザではその機能がサポートされていないようです。",
"Powered by Matrix": "Powered by Matrix"
"Powered by Matrix": "Powered by Matrix",
"Previous/next recently visited room or community": "最近利用したルームまたはコミュニティ"
}

View File

@@ -1,25 +1,36 @@
{
"Dismiss": "Atteikt",
"Dismiss": "Aizvērt",
"powered by Matrix": "Tiek darbināta ar Matrix",
"Unknown device": "Nezināma ierīce",
"You need to be using HTTPS to place a screen-sharing call.": "Lai izmantotu ekrāna kopīgošanas zvanu, nepieciešams izmantot HTTPS savienojumu.",
"Welcome to Element": "Esiet gaidīti Element",
"You need to be using HTTPS to place a screen-sharing call.": "Lai veiktu ekrāna kopīgošanas zvanu, nepieciešams izmantot HTTPS savienojumu.",
"Welcome to Element": "Esiet laipni gaidīti Element",
"Decentralised, encrypted chat &amp; collaboration powered by [matrix]": "Decentralizēta, šifrēta čata &amp; kopdarbošanās sistēma uz [matrix] bāzes",
"Sign In": "Ienākt",
"Sign In": "Pierakstīties",
"Create Account": "Izveidot kontu",
"Explore rooms": "Atklāt istabas",
"Explore rooms": "Pārlūkot istabas",
"Unexpected error preparing the app. See console for details.": "Negaidīta kļūda, sagatavojot lietotni. Sīkāku informāciju skatiet konsolē.",
"Invalid configuration: can only specify one of default_server_config, default_server_name, or default_hs_url.": "Nederīga konfigurācija: var norādīt tikai vienu no default_server_config, default_server_name, vai default_hs_url.",
"Invalid configuration: no default server specified.": "Nekorekta konfigurācija: nav norādīts noklusējuma serveris.",
"Invalid configuration: can only specify one of default_server_config, default_server_name, or default_hs_url.": "Kļūdaina konfigurācija: var norādīt tikai vienu no parametriem default_server_config, default_server_name, vai default_hs_url.",
"Invalid configuration: no default server specified.": "Kļūdaina konfigurācija: nav norādīts noklusējuma serveris.",
"The message from the parser is: %(message)s": "Ziņojums no parsētāja ir: %(message)s",
"Invalid JSON": "Nederīgs JSON",
"Unable to load config file: please refresh the page to try again.": "Neizdevās ielādēt config datni: lūdzu pārlādē lapu lai mēģinātu vēlreiz.",
"Open user settings": "Atver lietotāja iestatījumus",
"Go to your browser to complete Sign In": "Aizej uz savu pārlūku lai pabeigtu Piekļuvi",
"Invalid JSON": "Kļūdains JSON",
"Unable to load config file: please refresh the page to try again.": "Neizdevās ielādēt konfigurācijas datni. Lūdzu, pārlādējiet lapu, lai mēģinātu vēlreiz.",
"Open user settings": "Atvērt lietotāja iestatījumus",
"Go to your browser to complete Sign In": "Pārejiet uz pārlūku, lai pabeigtu pierakstīšanos",
"Unsupported browser": "Neatbalstīts pārlūks",
"Please install <chromeLink>Chrome</chromeLink>, <firefoxLink>Firefox</firefoxLink>, or <safariLink>Safari</safariLink> for the best experience.": "Lūdzu instalē <chromeLink>Chrome</chromeLink>, <firefoxLink>Firefox</firefoxLink>, vai <safariLink>Safari</safariLink> priekš labākās pieredzes.",
"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.": "Tu vari turpināt izmantot savu pašreizējo pārlūku, bet dažas vai visas funkcijas nestrādās, un lietotnes izskats var būt nepareizs.",
"Please install <chromeLink>Chrome</chromeLink>, <firefoxLink>Firefox</firefoxLink>, or <safariLink>Safari</safariLink> for the best experience.": "Labākajai izmantošanas pieredzei, lūdzu, instalējiet <chromeLink>Chrome</chromeLink>, <firefoxLink>Firefox</firefoxLink> vai <safariLink>Safari</safariLink> pārlūku.",
"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.": "Jūs varat turpināt lietot savu pašreizējo pārlūku, bet dažas vai visas funkcijas nestrādās, un lietotnes izskats var būt nepareizs.",
"I understand the risks and wish to continue": "Es pieņemu riskus un vēlos turpināt",
"Go to element.io": "Ej uz element.io",
"Failed to start": "Neizdevās palaist"
"Failed to start": "Neizdevās palaist",
"Powered by Matrix": "Darbojas uz Matrix",
"Previous/next recently visited room or community": "Iepriekšējā/nākošā nesen apmeklētā istaba vai kopiena",
"%(brand)s uses advanced browser features which aren't supported by your current browser.": "%(brand)s izmanto pārlūku papildus funkcijas, kas netiek atbalstītas šajā pārlūkā.",
"Your browser can't run %(brand)s": "Jūsu pārlūks nevar palaist %(brand)s",
"Missing indexeddb worker script!": "Trūkst indexeddb worker skripta!",
"Open": "Atvērt",
"Download Completed": "Lejupielāde pabeigta",
"Your Element configuration contains invalid JSON. Please correct the problem and reload the page.": "Jūsu Element konfigurācija satur kļūdainu JSON. Lūdzu, salabojiet problēmu un pārlādējiet lapu.",
"Your Element is misconfigured": "Jūsu Element ir nokonfigurēts kļūdaini",
"%(appName)s (%(browserName)s, %(osName)s)": "%(appName)s (%(browserName)s, %(osName)s)",
"%(brand)s Desktop (%(platformName)s)": "%(brand)s Desktop (%(platformName)s)"
}

View File

@@ -3,5 +3,21 @@
"powered by Matrix": "മാട്രിക്സില്‍ പ്രവര്‍ത്തിക്കുന്നു",
"Unknown device": "അപരിചിത ഡിവൈസ്",
"You need to be using HTTPS to place a screen-sharing call.": "സ്ക്രീന്‍ ഷെയറിങ്ങ് കോള്‍ നടത്തണമെങ്കില്‍ https ഉപയോഗിക്കണം.",
"Decentralised, encrypted chat &amp; collaboration powered by [matrix]": "വികേന്ദ്രീകൃത , എന്‍ക്രിപ്റ്റഡ് ചാറ്റ് &amp; മാട്രിക്സ് നല്‍കുന്ന കൊളാബൊറേഷന്‍"
"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> ഇൻസ്റ്റാൾ ചെയ്യുക.",
"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.": "അസാധുവായ കോൺഫിഗറേഷൻ: default_server_config, default_server_name, or default_hs_url-ൽ ഒരെണ്ണം മാത്രമേ വ്യക്തമാക്കാൻ കഴിയൂ.",
"Missing indexeddb worker script!": "indexeddb worker സ്ക്രിപ്റ്റ് കണ്ടെത്താനായില്ല!",
"Open user settings": "യൂസർ ക്രമീകരങ്ങൾ തുറക്കുക",
"Download Completed": "ഡൗൺലോഡ് പൂർത്തിയായി",
"Unsupported browser": "പിന്തുണയ്‌ക്കാത്ത ബ്രൗസർ",
"I understand the risks and wish to continue": "ഞാൻ അപകടസാധ്യതകൾ മനസിലാക്കുകയും തുടരാൻ ആഗ്രഹിക്കുകയും ചെയ്യുന്നു",
"Go to element.io": "element.io-ലേക്ക് പോവുക",
"Failed to start": "ആരംഭിക്കാൻ പരാജയപെട്ടു",
"Welcome to Element": "Element-ലേക്ക് സ്വാഗതം",
"Sign In": "പ്രവേശിക്കുക",
"Create Account": "അക്കൗണ്ട് സൃഷ്ടിക്കുക",
"Explore rooms": "മുറികൾ കണ്ടെത്തുക"
}

View File

@@ -7,7 +7,7 @@
"Decentralised, encrypted chat &amp; collaboration powered by [matrix]": "Gedecentraliseerd en versleuteld chatten &amp; samenwerken dankzij [matrix]",
"Sign In": "Aanmelden",
"Create Account": "Account aanmaken",
"Explore rooms": "Kamers verkennen",
"Explore rooms": "Gesprekken ontdekken",
"Unexpected error preparing the app. See console for details.": "Er is een onverwachte fout opgetreden bij het voorbereiden van de app. Zie de console voor details.",
"Invalid configuration: can only specify one of default_server_config, default_server_name, or default_hs_url.": "Configuratiefout: kan slechts één van default_server_config, default_server_name, of default_hs_url opgeven.",
"Invalid configuration: no default server specified.": "Configuratie ongeldig: geen standaardserver opgegeven.",
@@ -22,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": "Open",
"Your Element configuration contains invalid JSON. Please correct the problem and reload the page.": "Uw Element configuratie bevat ongeldige JSON. Gelieve het probleem te corrigeren daarna de pagina te herladen.",
"Open": "Openen",
"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

@@ -3,23 +3,23 @@
"You need to be using HTTPS to place a screen-sharing call.": "Морате користити HTTPS да бисте започели позив са дељењем екрана.",
"Dismiss": "Одбаци",
"powered by Matrix": "покреће Матрикс",
"Welcome to Element": "Добродошли у Element",
"Welcome to Element": "Добродошли у Елемент",
"Decentralised, encrypted chat &amp; collaboration powered by [matrix]": "Децентрализовано, шифровано ћаскање и сарадња коју покреће [matrix]",
"Sign In": "Пријава",
"Sign In": "Пријави се",
"Create Account": "Направи налог",
"Explore rooms": "Истражи собе",
"Invalid configuration: no default server specified.": "Погрешно подешавање: подразумевани сервер није наведен.",
"The message from the parser is: %(message)s": "Порука из парсера: %(message)s",
"Invalid JSON": "Погрешан JSON",
"Unexpected error preparing the app. See console for details.": "Неочекивана грешка приликом припреме апликације. Погледајте конзолу за више детаља.",
"Invalid configuration: can only specify one of default_server_config, default_server_name, or default_hs_url.": "Погрешно подешавање: можете навести само једну вредност од default_server_config, default_server_name, or default_hs_url.",
"Invalid configuration: can only specify one of default_server_config, default_server_name, or default_hs_url.": "Погрешно подешавање: можете навести само једну вредност од default_server_config, default_server_name, или default_hs_url.",
"Missing indexeddb worker script!": "Недостаје скрипта indexeddb радника!",
"Your Element is misconfigured": "Ваша Елемент апликација је лоше подешена",
"Your Element configuration contains invalid JSON. Please correct the problem and reload the page.": "Подешавање ваше Елемент апликације садржи неисправни JSON. Поправите проблем па поново учитајте ову страницу.",
"Your Element configuration contains invalid JSON. Please correct the problem and reload the page.": "Подешавање ваше Елемент апликације садржи неисправни JSON. Поправите проблем па поново учитајте ову страницу.",
"Unable to load config file: please refresh the page to try again.": "Не могу да учитам датотеку подешавања: освежите страницу и покушајте поново.",
"Download Completed": "Преузимање завршено",
"Open": "Отвори",
"Open user settings": "Отвори корисничка подешавања",
"Open user settings": "Отвори корисничке поставке",
"Previous/next recently visited room or community": "Претходно/следеће недавно посећене собе или заједнице",
"%(brand)s Desktop (%(platformName)s)": "%(brand)s радна површ (%(platformName)s)",
"Go to your browser to complete Sign In": "Отворите ваш прегледач за довршавање пријаве",
@@ -29,7 +29,8 @@
"%(brand)s uses advanced browser features which aren't supported by your current browser.": "%(brand)s користи напредне могућности које нису подржане у вашем тренутном прегледачу.",
"Please install <chromeLink>Chrome</chromeLink>, <firefoxLink>Firefox</firefoxLink>, or <safariLink>Safari</safariLink> for the best experience.": "Инсталирајте <chromeLink>Хром</chromeLink>, <firefoxLink>Фајерфокс</firefoxLink>, или <safariLink>Сафари</safariLink> за најбољи доживљај.",
"You can continue using your current browser, but some or all features may not work and the look and feel of the application may be incorrect.": "Можете наставити користећи тренутни прегледач али неке могућности можда неће радити и изглед и доживљај апликације може бити лош.",
"I understand the risks and wish to continue": "Разумем могуће последице и желим наставити",
"I understand the risks and wish to continue": "Разумем ризике и желим да наставим",
"Go to element.io": "Иди на element.io",
"Failed to start": "Неуспех при покретању"
"Failed to start": "Неуспех при покретању",
"Powered by Matrix": "Оснажен од стране Матрикса"
}

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.location.href = 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

@@ -29,11 +29,6 @@ require('katex/dist/katex.css');
import {parseQsFromFragment} from "./url_utils";
import './modernizr';
// load service worker if available on this platform
if ('serviceWorker' in navigator) {
navigator.serviceWorker.register('sw.js');
}
async function settled(...promises: Array<Promise<any>>) {
for (const prom of promises) {
try {
@@ -50,14 +45,20 @@ function checkBrowserFeatures() {
return false;
}
// custom checks atop Modernizr because it doesn't have ES2018/ES2019 checks in it for some features we depend on,
// Modernizr requires rules to be lowercase with no punctuation:
// ES2018: http://www.ecma-international.org/ecma-262/9.0/#sec-promise.prototype.finally
// Custom checks atop Modernizr because it doesn't have ES2018/ES2019 checks
// in it for some features we depend on.
// Modernizr requires rules to be lowercase with no punctuation.
// ES2018: http://262.ecma-international.org/9.0/#sec-promise.prototype.finally
window.Modernizr.addTest("promiseprototypefinally", () =>
window.Promise && window.Promise.prototype && typeof window.Promise.prototype.finally === "function");
// ES2019: http://www.ecma-international.org/ecma-262/10.0/#sec-object.fromentries
typeof window.Promise?.prototype?.finally === "function");
// ES2018: https://262.ecma-international.org/9.0/#sec-get-regexp.prototype.dotAll
window.Modernizr.addTest("regexpdotall", () => (
window.RegExp?.prototype &&
!!Object.getOwnPropertyDescriptor(window.RegExp.prototype, "dotAll")?.get
));
// ES2019: http://262.ecma-international.org/10.0/#sec-object.fromentries
window.Modernizr.addTest("objectfromentries", () =>
window.Object && typeof window.Object.fromEntries === "function");
typeof window.Object?.fromEntries === "function");
const featureList = Object.keys(window.Modernizr);
@@ -155,7 +156,7 @@ async function start() {
// error handling begins here
// ##########################
if (!acceptBrowser) {
await new Promise(resolve => {
await new Promise<void>(resolve => {
console.error("Browser is missing required features.");
// take to a different landing page to AWOOOOOGA at the user
showIncompatibleBrowser(() => {

View File

@@ -1,8 +1,8 @@
/*
Copyright 2015, 2016 OpenMarket Ltd
Copyright 2017 Vector Creations Ltd
Copyright 2018, 2019, 2020 New Vector Ltd
Copyright 2019 Michael Telatynski <7t3chguy@gmail.com>
Copyright 2018 - 2021 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.
@@ -39,7 +39,7 @@ import { initRageshake } from "./rageshakesetup";
export const rageshakePromise = initRageshake();
export function preparePlatform() {
if (window.ipcRenderer) {
if (window.electron) {
console.log("Using Electron platform");
PlatformPeg.set(new ElectronPlatform());
} else if (window.matchMedia('(display-mode: standalone)').matches) {

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
@@ -164,6 +182,7 @@ function createJWTToken() {
matrix: {
token: openIdToken.access_token,
room_id: roomId,
server_name: openIdToken.matrix_server_name,
},
user: {
avatar: avatarUrl,
@@ -225,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

@@ -1,9 +1,8 @@
/*
Copyright 2016 Aviral Dasgupta
Copyright 2016 OpenMarket Ltd
Copyright 2018 New Vector Ltd
Copyright 2019 Michael Telatynski <7t3chguy@gmail.com>
Copyright 2020 The Matrix.org Foundation C.I.C.
Copyright 2018 - 2021 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.
@@ -49,7 +48,7 @@ import {CheckUpdatesPayload} from "matrix-react-sdk/src/dispatcher/payloads/Chec
import ToastStore from "matrix-react-sdk/src/stores/ToastStore";
import GenericExpiringToast from "matrix-react-sdk/src/components/views/toasts/GenericExpiringToast";
const ipcRenderer = window.ipcRenderer;
const electron = window.electron;
const isMac = navigator.platform.toUpperCase().includes('MAC');
function platformFriendlyName(): string {
@@ -74,7 +73,7 @@ function platformFriendlyName(): string {
function _onAction(payload: ActionPayload) {
// Whitelist payload actions, no point sending most across
if (['call_state'].includes(payload.action)) {
ipcRenderer.send('app_onAction', payload);
electron.send('app_onAction', payload);
}
}
@@ -104,7 +103,7 @@ class SeshatIndexManager extends BaseEventIndexManager {
constructor() {
super();
ipcRenderer.on('seshatReply', this._onIpcReply);
electron.on('seshatReply', this._onIpcReply);
}
async _ipcCall(name: string, ...args: any[]): Promise<any> {
@@ -112,7 +111,7 @@ class SeshatIndexManager extends BaseEventIndexManager {
const ipcCallId = ++this.nextIpcCallId;
return new Promise((resolve, reject) => {
this.pendingIpcCalls[ipcCallId] = {resolve, reject};
window.ipcRenderer.send('seshat', {id: ipcCallId, name, args});
window.electron.send('seshat', {id: ipcCallId, name, args});
});
}
@@ -230,7 +229,7 @@ export default class ElectronPlatform extends VectorBasePlatform {
false if there is not
or the error if one is encountered
*/
ipcRenderer.on('check_updates', (event, status) => {
electron.on('check_updates', (event, status) => {
dis.dispatch<CheckUpdatesPayload>({
action: Action.CheckUpdates,
...getUpdateCheckStatus(status),
@@ -238,21 +237,21 @@ export default class ElectronPlatform extends VectorBasePlatform {
});
// try to flush the rageshake logs to indexeddb before quit.
ipcRenderer.on('before-quit', function() {
electron.on('before-quit', function() {
console.log('element-desktop closing');
rageshake.flush();
});
ipcRenderer.on('ipcReply', this._onIpcReply);
ipcRenderer.on('update-downloaded', this.onUpdateDownloaded);
electron.on('ipcReply', this._onIpcReply);
electron.on('update-downloaded', this.onUpdateDownloaded);
ipcRenderer.on('preferences', () => {
electron.on('preferences', () => {
dis.fire(Action.ViewUserSettings);
});
ipcRenderer.on('userDownloadCompleted', (ev, {path, name}) => {
electron.on('userDownloadCompleted', (ev, {path, name}) => {
const onAccept = () => {
ipcRenderer.send('userDownloadOpen', {path});
electron.send('userDownloadOpen', {path});
};
ToastStore.sharedInstance().addOrReplaceToast({
@@ -324,11 +323,21 @@ 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);
ipcRenderer.send('setBadgeCount', count);
electron.send('setBadgeCount', count);
}
supportsNotifications(): boolean {
@@ -371,7 +380,7 @@ export default class ElectronPlatform extends VectorBasePlatform {
}
loudNotification(ev: Event, room: Object) {
ipcRenderer.send('loudNotification');
electron.send('loudNotification');
}
async getAppVersion(): Promise<string> {
@@ -423,14 +432,14 @@ export default class ElectronPlatform extends VectorBasePlatform {
startUpdateCheck() {
super.startUpdateCheck();
ipcRenderer.send('check_updates');
electron.send('check_updates');
}
installUpdate() {
// IPC to the main process to install the update, since quitAndInstall
// doesn't fire the before-quit event so the main process needs to know
// it should exit.
ipcRenderer.send('install_update');
electron.send('install_update');
}
getDefaultDeviceDisplayName(): string {
@@ -460,7 +469,7 @@ export default class ElectronPlatform extends VectorBasePlatform {
const ipcCallId = ++this.nextIpcCallId;
return new Promise((resolve, reject) => {
this.pendingIpcCalls[ipcCallId] = {resolve, reject};
window.ipcRenderer.send('ipcCall', {id: ipcCallId, name, args});
window.electron.send('ipcCall', {id: ipcCallId, name, args});
// Maybe add a timeout to these? Probably not necessary.
});
}
@@ -489,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
@@ -34,6 +33,14 @@ const POKE_RATE_MS = 10 * 60 * 1000; // 10 min
export default class WebPlatform extends VectorBasePlatform {
private runningVersion: string = null;
constructor() {
super();
// Register service worker if available on this platform
if ('serviceWorker' in navigator) {
navigator.serviceWorker.register('sw.js');
}
}
getHumanReadableName(): string {
return 'Web Platform'; // no translation required: only used for analytics
}
@@ -176,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",
@@ -227,6 +232,7 @@ module.exports = (env, argv) => {
require("postcss-easings")(),
require("postcss-strip-inline-comments")(),
require("postcss-hexrgba")(),
require("postcss-calc")({warnWhenCannotResolve: true}),
// It's important that this plugin is last otherwise we end
// up with broken CSS.
@@ -312,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,
@@ -349,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',
@@ -356,6 +369,8 @@ module.exports = (env, argv) => {
minify: argv.mode === 'production',
chunks: ['usercontent'],
}),
...additionalPlugins,
],
output: {

6291
yarn.lock

File diff suppressed because it is too large Load Diff