Compare commits

...

201 Commits

Author SHA1 Message Date
David Baker
29f3ff155a v0.17.3 2018-10-29 14:22:55 +00:00
David Baker
6c1deb41be Prepare changelog for v0.17.3 2018-10-29 14:22:55 +00:00
David Baker
4574415e97 v0.17.3 2018-10-29 14:20:59 +00:00
David Baker
f05646c5a1 released js-sdk & react-sdk 2018-10-29 14:20:12 +00:00
David Baker
e2b55315a6 v0.17.3-rc.1 2018-10-24 11:31:59 +01:00
David Baker
1f8b0f2135 Prepare changelog for v0.17.3-rc.1 2018-10-24 11:31:59 +01:00
David Baker
a9a45dc32b v0.17.3-rc.1 2018-10-24 11:30:44 +01:00
David Baker
f7138c0516 react-sdk & js-sdk rc.1 2018-10-24 11:27:01 +01:00
David Baker
d080a204a3 electron 3.0.5 2018-10-24 11:12:51 +01:00
David Baker
fd31d58128 Merge pull request #7549 from RiotTranslateBot/weblate-riot-web-riot-web
Update from Weblate.
2018-10-24 10:26:13 +01:00
Weblate
16b150039a Merge remote-tracking branch 'origin/develop' into develop 2018-10-19 15:07:56 +00:00
Bruno Windels
ca1dec8e13 Merge branch 'master' into develop 2018-10-19 17:07:29 +02:00
Bruno Windels
f81d3bc903 Merge branch 'release-v0.17.2' 2018-10-19 17:00:44 +02:00
Bruno Windels
88132067ad update version in package lock file 2018-10-19 17:00:13 +02:00
Bruno Windels
f5eff7d349 v0.17.2 2018-10-19 16:54:27 +02:00
Bruno Windels
5f35b9903d Prepare changelog for v0.17.2 2018-10-19 16:54:26 +02:00
Bruno Windels
221f75542a v0.17.2 2018-10-19 16:51:26 +02:00
David Baker
d0fcf3c952 Don't set tags on notifications
They are to suppress notifications that don't want to be shown in
addition to each other. This makes no sense for our notifications:
they're each for independent messages. Also settings tags on
notifications makes electron crash on windows when you close the
notif, as per https://github.com/vector-im/riot-web/issues/7512
2018-10-19 16:47:16 +02:00
Bruno Windels
62f664c592 update matrix-react-sdk to 0.14.1 2018-10-19 16:45:39 +02:00
Weblate
deaeb1a715 Merge remote-tracking branch 'origin/develop' into develop 2018-10-18 18:26:13 +00:00
David Baker
c1dfbd6993 Merge pull request #7518 from vector-im/dbkr/better_fix_for_windows_crashes
Don't set tags on notifications
2018-10-18 19:26:08 +01:00
David Baker
2854c0969b Don't set tags on notifications
They are to suppress notifications that don't want to be shown in
addition to each other. This makes no sense for our notifications:
they're each for independent messages. Also settings tags on
notifications makes electron crash on windows when you close the
notif, as per https://github.com/vector-im/riot-web/issues/7512
2018-10-18 19:07:59 +01:00
Weblate
1de5e61888 Merge remote-tracking branch 'origin/develop' into develop 2018-10-18 17:44:16 +00:00
David Baker
47493fa7d9 Merge branch 'master' into develop 2018-10-18 18:43:58 +01:00
David Baker
ecfafc613f Merge branch 'release-v0.17.0' 2018-10-18 18:43:29 +01:00
David Baker
a7ea51fc3e v0.17.1 2018-10-18 18:39:58 +01:00
David Baker
35147c6514 Prepare changelog for v0.17.1 2018-10-18 18:39:58 +01:00
David Baker
2518976326 v0.17.1 2018-10-18 18:38:54 +01:00
David Baker
40cb46de46 Merge pull request #7517 from vector-im/dbkr/stop_electron_crashing
Stop electron crashing
2018-10-18 18:35:38 +01:00
David Baker
bb907d49c9 Typo 2018-10-18 18:35:01 +01:00
David Baker
231ca253f2 Stop electron crashing
Workaround temporarily by not closing notifs on win32 as per
comment.

Fixes https://github.com/vector-im/riot-web/issues/7512
2018-10-18 18:31:06 +01:00
Weblate
2a80d33a89 Merge remote-tracking branch 'origin/develop' into develop 2018-10-16 10:12:26 +00:00
David Baker
2202ff1ccd update deps 2018-10-16 11:12:13 +01:00
Weblate
a138a9c6ec Merge remote-tracking branch 'origin/develop' into develop 2018-10-16 10:10:09 +00:00
David Baker
3d8d66547f Merge branch 'master' into develop 2018-10-16 11:09:55 +01:00
David Baker
17e84bf815 Merge branch 'release-v0.17.0' 2018-10-16 11:09:33 +01:00
David Baker
41540842eb v0.17.0 2018-10-16 11:00:39 +01:00
David Baker
65cc3000ee Prepare changelog for v0.17.0 2018-10-16 11:00:39 +01:00
David Baker
1fc8592ef6 v0.17.0 2018-10-16 10:59:18 +01:00
David Baker
4afb5caa4e Released js-sdk & react-sdk 2018-10-16 10:58:29 +01:00
Bruno Windels
9830ab3aad Merge pull request #7503 from vector-im/dbkr/ll_phased_rollout
Phased rollout of lazyloading
2018-10-16 11:44:49 +02:00
David Baker
005e4aa1bd Phased rollout of lazyloading 2018-10-16 10:43:15 +01:00
David Baker
de7d3ba701 Change electron build script paths
Because electron builder has decided to output the mac assets to
somewhere else today.
2018-10-16 10:26:04 +01:00
David Baker
05884ba279 Merge pull request #7501 from vector-im/dbkr/update_electron_builder_relbranch
Update to latest electron builder
2018-10-16 09:40:30 +01:00
David Baker
a0e067510c Update to latest electron builder
Tested auto update on both windows (ia32) and mac, seems to work!
2018-10-16 09:39:30 +01:00
Weblate
2784d1b31c Merge remote-tracking branch 'origin/develop' into develop 2018-10-16 08:37:33 +00:00
Tom Van Eyck
8e9d7d97f6 Translated using Weblate (Dutch)
Currently translated at 100.0% (37 of 37 strings)

Translation: Riot Web/riot-web
Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/nl/
2018-10-16 08:37:31 +00:00
David Baker
f483fd3916 Merge pull request #7498 from vector-im/dbkr/update_electron_builder
Update to latest electron builder
2018-10-16 09:37:27 +01:00
David Baker
4e65b5f73b Update to latest electron builder
Tested auto update on both windows (ia32) and mac, seems to work!
2018-10-15 18:13:47 +01:00
Travis Ralston
47ade14e07 Merge pull request #6831 from MTRNord/patch-8
Fix Tinter.setTheme to not fire using Firefox
2018-10-12 13:55:43 -06:00
David Baker
5ad9d2094a v0.17.0-rc.1 2018-10-11 16:03:53 +01:00
David Baker
848bd8f553 Prepare changelog for v0.17.0-rc.1 2018-10-11 16:03:52 +01:00
David Baker
74f2266d89 v0.17.0-rc.1 2018-10-11 16:02:48 +01:00
David Baker
03323bc294 Merge remote-tracking branch 'origin/develop' into release-v0.17.0 2018-10-11 16:02:20 +01:00
David Baker
df1eb9f5cb Merge pull request #7483 from vector-im/revert-7429-bwindels/alsocommitlockfile
Revert "also commit the lock file when bumping version as it is now committed to the repo"
2018-10-11 16:02:09 +01:00
David Baker
aaa9c82758 Revert "also commit the lock file when bumping version as it is now committed to the repo" 2018-10-11 16:01:56 +01:00
David Baker
ba51c0721e js-sdk & react-sdk rc.1 2018-10-11 15:42:30 +01:00
David Baker
845b40d815 Bump electron version to 3 2018-10-11 12:06:30 +01:00
David Baker
69adab2c9f Merge pull request #7478 from RiotTranslateBot/weblate-riot-web-riot-web
Update from Weblate.
2018-10-11 11:08:59 +01:00
David Baker
80f0964342 Translated using Weblate (English (United States))
Currently translated at 100.0% (37 of 37 strings)

Translation: Riot Web/riot-web
Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/en_US/
2018-10-11 09:58:31 +00:00
Weblate
56372b6a5f Merge remote-tracking branch 'origin/develop' into develop 2018-10-11 09:29:42 +00:00
Matthew Hodgson
af4d3da7a8 link to Here Be Dragons 2018-10-11 10:29:28 +01:00
Weblate
ae1971f5d2 Merge remote-tracking branch 'origin/develop' into develop 2018-10-10 16:35:17 +00:00
Matthew Hodgson
5c184e501d dep on dev sdks 2018-10-10 17:35:06 +01:00
Weblate
3488f04dd4 Merge remote-tracking branch 'origin/develop' into develop 2018-10-09 03:18:28 +00:00
Travis Ralston
92db2b85f3 Merge pull request #7444 from aaronraimist/promise-defer
Fix riot-web Promise.defer warnings (#7409)
2018-10-08 21:18:22 -06:00
Bruno Windels
060a7807f0 v0.16.6 2018-10-08 17:21:35 +02:00
Bruno Windels
52954982a3 Prepare changelog for v0.16.6 2018-10-08 17:21:35 +02:00
Bruno Windels
dec60a9c85 v0.16.6 2018-10-08 17:19:54 +02:00
Bruno Windels
39b5e4b1e3 update matrix-react-sdk to 0.13.6 2018-10-08 17:16:22 +02:00
Aaron Raimist
d836ad8dbc Undo turning warnings back on (#7409)
I guess that turns on warnings for everything, not just riot-web

Signed-off-by: Aaron Raimist <aaron@raim.ist>
2018-10-05 11:05:25 -05:00
Aaron Raimist
d035efb14e Fix lint warnings and turn warnings back on (#7409)
Signed-off-by: Aaron Raimist <aaron@raim.ist>
2018-10-05 10:41:45 -05:00
Aaron Raimist
401c85ad5b Fix Promise.defer warnings in WebPlatform.js (#7409)
Signed-off-by: Aaron Raimist <aaron@raim.ist>
2018-10-05 10:23:06 -05:00
Aaron Raimist
54c46df0dc Fix Promise.defer warnings in index.js (#7409)
Signed-off-by: Aaron Raimist <aaron@raim.ist>
2018-10-05 10:23:06 -05:00
Aaron Raimist
a5fb33de02 Fix Promise.defer warnings in getconfig.js (#7409)
Signed-off-by: Aaron Raimist <aaron@raim.ist>
2018-10-05 10:23:05 -05:00
Weblate
4c2dace4ca Merge remote-tracking branch 'origin/develop' into develop 2018-10-05 14:59:05 +00:00
Travis Ralston
b09aa2cff3 Merge pull request #7459 from vector-im/travis/https-clone
Use HTTPS cloning for riot-web too
2018-10-05 08:58:58 -06:00
Weblate
f31ccaacef Merge remote-tracking branch 'origin/develop' into develop 2018-10-05 13:00:28 +00:00
Bruno Windels
d4576dcf9f Merge pull request #7463 from vector-im/dbkr/disable_auto_reload
Disable webpack-dev-server auto reload
2018-10-05 15:00:23 +02:00
David Baker
4e6f48df03 Disable webpack-dev-server auto reload
As per comment
2018-10-05 13:56:37 +01:00
Weblate
218da8a18a Merge remote-tracking branch 'origin/develop' into develop 2018-10-05 12:25:31 +00:00
David Baker
e28180f3d5 Merge pull request #7462 from vector-im/dbkr/gone_away_is_the_bluebird
Silence bluebird warnings
2018-10-05 13:25:26 +01:00
David Baker
bccccb2758 Silence bluebird warnings 2018-10-05 12:15:29 +01:00
Besnik Bleta
46587450cb Translated using Weblate (Albanian)
Currently translated at 100.0% (37 of 37 strings)

Translation: Riot Web/riot-web
Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/sq/
2018-10-05 10:10:27 +00:00
Besnik Bleta
f17712fab3 Translated using Weblate (Albanian)
Currently translated at 100.0% (37 of 37 strings)

Translation: Riot Web/riot-web
Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/sq/
2018-10-05 10:06:27 +00:00
Weblate
24f292f360 Merge remote-tracking branch 'origin/develop' into develop 2018-10-04 17:33:39 +00:00
David Baker
4f5b61b798 Translated using Weblate (English (United States))
Currently translated at 100.0% (37 of 37 strings)

Translation: Riot Web/riot-web
Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/en_US/
2018-10-04 17:33:38 +00:00
Travis Ralston
a9e98e6711 Merge pull request #7443 from MTRNord/patch-9
Fix reskindex on matrix-react-side not being called if using build script
2018-10-04 11:33:34 -06:00
Travis Ralston
3286acd306 Use HTTPS cloning for riot-web too 2018-10-04 11:23:42 -06:00
Weblate
085dcfe7bc Merge remote-tracking branch 'origin/develop' into develop 2018-10-04 11:45:20 +00:00
toriko
b6d5f350e4 Translated using Weblate (Japanese)
Currently translated at 100.0% (37 of 37 strings)

Translation: Riot Web/riot-web
Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/ja/
2018-10-04 11:45:19 +00:00
Bruno Windels
4d3df8b86b Merge pull request #7454 from vector-im/dbkr/double_closing_tags
Fix double-closed tags
2018-10-04 13:45:14 +02:00
David Baker
a356264801 Fix double-closed tags 2018-10-04 10:49:28 +01:00
Weblate
d32dbb6d10 Merge remote-tracking branch 'origin/develop' into develop 2018-10-03 04:53:45 +00:00
IMIN
70319e4939 Translated using Weblate (Korean)
Currently translated at 100.0% (37 of 37 strings)

Translation: Riot Web/riot-web
Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/ko/
2018-10-03 04:53:44 +00:00
Travis Ralston
92b2980b41 Merge pull request #7435 from aaronraimist/patch-1
Document how to turn off Piwik and bug reports (#6738)
2018-10-02 22:53:40 -06:00
Aaron Raimist
eabcc9261d Add text saying that bug reports aren't automatic
Signed-off-by: Aaron Raimist <aaron@raim.ist>
2018-10-02 22:58:49 -05:00
Marcel
ad5be455bb Fix reskindex on matrix-react-side not being called if using build script 2018-10-03 02:00:35 +02:00
IMIN
20ce990763 Translated using Weblate (Korean)
Currently translated at 100.0% (37 of 37 strings)

Translation: Riot Web/riot-web
Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/ko/
2018-10-02 17:45:43 +00:00
Weblate
33d248d1e4 Merge remote-tracking branch 'origin/develop' into develop 2018-10-02 11:13:09 +00:00
David Baker
f69869ac1e Merge pull request #7429 from vector-im/bwindels/alsocommitlockfile
also commit the lock file when bumping version as it is now committed to the repo
2018-10-02 12:13:04 +01:00
Aaron Raimist
d256194255 Document how to turn off Piwik and bug reports (#6738) 2018-10-01 20:21:13 -05:00
Bruno Windels
4de63e612d also commit the lock file when bumping version as it is now committed to the repo 2018-10-01 17:18:31 +02:00
Weblate
7f50acd886 Merge remote-tracking branch 'origin/develop' into develop 2018-10-01 15:04:22 +00:00
giqtaqisi
18f8ea8519 Translated using Weblate (Lojban)
Currently translated at 100.0% (37 of 37 strings)

Translation: Riot Web/riot-web
Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/jbo/
2018-10-01 15:04:21 +00:00
Bruno Windels
0a4e3379f9 Merge branch 'master' into develop 2018-10-01 17:03:54 +02:00
Bruno Windels
e355753900 also update package-lock file 2018-10-01 17:01:07 +02:00
Bruno Windels
712d020dfa v0.16.5 2018-10-01 16:51:39 +02:00
Bruno Windels
5fc53f19f4 Prepare changelog for v0.16.5 2018-10-01 16:51:39 +02:00
Bruno Windels
957fde964b v0.16.5 2018-10-01 16:48:52 +02:00
Bruno Windels
b9688acdf5 bump both SDKs to latest version 2018-10-01 16:16:25 +02:00
David Baker
2a8c7b260a Don't show mobile guide if deep linking
Other part of https://github.com/vector-im/riot-web/issues/7378
2018-10-01 15:14:40 +02:00
David Baker
a2c7ef5424 Don't show custom server bit on matrix.org
On mobile guide

Part of https://github.com/vector-im/riot-web/issues/7378
2018-10-01 15:14:18 +02:00
giqtaqisi
a1a417329c Translated using Weblate (Lojban)
Currently translated at 100.0% (37 of 37 strings)

Translation: Riot Web/riot-web
Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/jbo/
2018-10-01 13:12:29 +00:00
Weblate
1f81ed306d Merge remote-tracking branch 'origin/develop' into develop 2018-10-01 08:41:20 +00:00
giqtaqisi
2d78bc95ec Translated using Weblate (Lojban)
Currently translated at 62.1% (23 of 37 strings)

Translation: Riot Web/riot-web
Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/jbo/
2018-10-01 08:41:19 +00:00
Silvano
4f720e9c3b Translated using Weblate (Italian)
Currently translated at 100.0% (37 of 37 strings)

Translation: Riot Web/riot-web
Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/it/
2018-10-01 08:41:19 +00:00
Ryu SASAOKA
0374c91ee7 Translated using Weblate (English (United States))
Currently translated at 100.0% (37 of 37 strings)

Translation: Riot Web/riot-web
Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/en_US/
2018-10-01 08:41:19 +00:00
David Baker
894ad32e83 Merge pull request #7393 from vector-im/dbkr/update_deps_2
Update a bunch of deps
2018-10-01 09:41:14 +01:00
giqtaqisi
f3ee639dcc Added translation using Weblate (Lojban) 2018-09-30 14:30:15 +00:00
toriko
74a2b5a958 Translated using Weblate (Japanese)
Currently translated at 100.0% (37 of 37 strings)

Translation: Riot Web/riot-web
Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/ja/
2018-09-30 09:58:26 +00:00
Bruno Windels
4e4906605b Merge pull request #7415 from vector-im/dbkr/mobile_guide_deep_link
Don't show mobile guide if deep linking
2018-09-28 13:34:11 +01:00
David Baker
894e31fe73 Don't show mobile guide if deep linking
Other part of https://github.com/vector-im/riot-web/issues/7378
2018-09-28 11:23:46 +01:00
David Baker
67a762aeaf Actually update package.json 2018-09-28 11:02:14 +01:00
David Baker
28f1140588 Merge remote-tracking branch 'origin/develop' into dbkr/update_deps_2
Updates a bunch more deps now we've updated webpack
2018-09-28 10:58:22 +01:00
David Baker
ac81080185 Merge pull request #7408 from vector-im/dbkr/unnecessary_custom_server
Don't show custom server bit on matrix.org
2018-09-28 10:32:06 +01:00
David Baker
bc8323f96b Don't show custom server bit on matrix.org
On mobile guide

Part of https://github.com/vector-im/riot-web/issues/7378
2018-09-27 18:19:33 +01:00
Matthew Hodgson
a38661c0f0 Merge pull request #7387 from vector-im/matthew/webpack4
Webpack4
2018-09-27 16:21:43 +01:00
Bruno Windels
57cdd26d4d v0.16.5-rc.1 2018-09-27 14:50:38 +01:00
Bruno Windels
582b67c42e v0.16.5-rc.1 2018-09-27 14:48:40 +01:00
Bruno Windels
44791a65b8 Revert "v0.16.5-rc.1"
This reverts commit 81dfe506ac.
2018-09-27 14:46:42 +01:00
Bruno Windels
f3214b7891 Prepare changelog for v0.16.5-rc.1 2018-09-27 14:43:05 +01:00
Bruno Windels
81dfe506ac v0.16.5-rc.1 2018-09-27 14:42:14 +01:00
Bruno Windels
2356524d1c bump matrix-js-sdk and matrix-react-sdk 2018-09-27 13:55:06 +01:00
Bruno Windels
a371bede4d Merge pull request #7395 from RiotTranslateBot/weblate-riot-web-riot-web
Update from Weblate.
2018-09-26 18:15:03 +01:00
David Baker
2166213400 Update a bunch of deps
To try & get deps without vulns in them.

Exceptions are:
 * electron builder: which is nontrivial to update
 * webpack-dev-server: probably needs newer webpack
 * moderizr: no new version released yet
2018-09-26 12:37:40 +01:00
Matthew Hodgson
c4f6158f46 pin karma-webpack to 4.0.0-beta.0 to fix perf regression
so karma-webpack 3.0.5 is 4x slower than 4.0.0-beta.0 for webpacking for unknown reasons.
However, 4.0.0-rc.1 and 4.0.0-rc.2 fail with a different error. So: pinned for now
2018-09-26 03:12:08 +01:00
Matthew Hodgson
7e33ea351d upgrade karma & babel to latest 2018-09-26 02:27:22 +01:00
Matthew Hodgson
9e916cdd5c make sure karma runs tests in dev mode to speed up build 2018-09-26 01:39:05 +01:00
Matthew Hodgson
b7843a5d46 find versions of webpack, webpack-cli, and karma-webpack which work together atm 2018-09-26 01:18:53 +01:00
Matthew Hodgson
41e03333a7 Merge branch 'develop' into matthew/webpack4 2018-09-26 00:17:49 +01:00
Matthew Hodgson
c57c653535 Merge branch 'develop' into matthew/webpack4 2018-09-26 00:15:56 +01:00
Weblate
8793ad9f4f Merge remote-tracking branch 'origin/develop' into develop 2018-09-25 22:54:39 +00:00
Silvano
07b56426ad Translated using Weblate (Italian)
Currently translated at 100.0% (37 of 37 strings)

Translation: Riot Web/riot-web
Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/it/
2018-09-25 22:54:39 +00:00
Adolfo Jayme-Barrientos
43f9f2a0f2 Translated using Weblate (Catalan)
Currently translated at 97.2% (36 of 37 strings)

Translation: Riot Web/riot-web
Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/ca/
2018-09-25 22:54:38 +00:00
ali almi
d01824f711 Translated using Weblate (Arabic)
Currently translated at 81.0% (30 of 37 strings)

Translation: Riot Web/riot-web
Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/ar/
2018-09-25 22:54:38 +00:00
Matthew Hodgson
841c8fd41d Merge pull request #7355 from vector-im/travis/build-process
Reduce the number of terminals required to build riot-web to 1
2018-09-25 23:54:34 +01:00
Travis Ralston
4041f3db5c Send standard output/input from npm-sub.js to the parent proc 2018-09-25 15:54:38 -06:00
Travis Ralston
91304e70a1 Swap out the complicated canary stuff for serial execution
Fixes https://github.com/vector-im/riot-web/issues/7386
2018-09-25 15:49:14 -06:00
Travis Ralston
27c23058dc Alter build process to rely on canaries only
With the react-sdk and js-sdk having their `npm start`s split out (as per https://github.com/matrix-org/matrix-react-sdk/pull/2175 and https://github.com/matrix-org/matrix-js-sdk/pull/742) we can trigger an initial build ourselves and start the watcher afterwards. This canary approach has a very slight speed increase over serially running all the commands as the watcher can be started as early as possible.

This all can be improved and potentially eliminated with a bit more planning, however: https://github.com/vector-im/riot-web/issues/7386
2018-09-25 11:20:58 -06:00
Travis Ralston
8d7cec2a94 Add some comments to describe the build process 2018-09-24 17:57:18 -06:00
Travis Ralston
2b037ee146 Prevent races by blocking on SDK builds
If we don't block on SDK builds, then the riot-web build fails due to half-built dependencies. This needs to be done at two levels: the js-sdk because it is used by both the react-sdk and riot-web, and at the react-sdk because riot-web needs it. This means our build process is synchronous for js -> react -> riot, at least for the initial build. 

This does increase the startup time, particularly because the file watch timer is at 5 seconds. The timer is used to detect a storm of file changes in the underlying SDKs and give the build process some room to compile larger files if needed. 

The file watcher is accompanied by a "canary signal file" to prevent the build-blocking script from unblocking too early. Both the js and react SDKs build when `npm install` is run, so we ensure that we only listen for the `npm start` build for each SDK.

This is all done at the riot level instead of at the individual SDK levels (where we could use a canary file to signal up the stack) because:
* babel (used by the js-sdk) doesn't really provide an "end up build" signal
* webpack is a bit of a nightmare to get it to behave at times
* this blocking approach is really only applicable to riot-web, although may be useful to some other projects.

Hopefully that all makes sense.
2018-09-24 17:12:42 -06:00
Travis Ralston
c6da122e41 Fix npm link in the build script 2018-09-17 17:57:27 -06:00
Travis Ralston
67e9606d55 Reduce the number of terminals required to build riot-web to 1
A step towards a real solution for https://github.com/vector-im/riot-web/issues/7305

This approach makes use of `npm link` to remove the use of symlinks in the build process. The build process has also been altered to invoke the build process of each underlying SDK (react, js). This means that one can now `npm link` and `npm start` and have a working environment. 

At the same time, parallelshell was dropped due to lack of maintenance from the maintainer.
2018-09-17 17:50:03 -06:00
Ionut Zaharia
1b8f1f5610 Translated using Weblate (Romanian)
Currently translated at 100.0% (37 of 37 strings)

Translation: Riot Web/riot-web
Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/ro/
2018-09-11 21:09:43 +00:00
Weblate
4c6bb8846b Merge remote-tracking branch 'origin/develop' into develop 2018-09-10 10:48:57 +00:00
Victor Grousset
11a1915e61 Translated using Weblate (Esperanto)
Currently translated at 97.2% (36 of 37 strings)

Translation: Riot Web/riot-web
Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/eo/
2018-09-10 10:48:55 +00:00
David Baker
e58ac74aa2 Merge branch 'master' into develop 2018-09-10 11:48:19 +01:00
David Baker
2b18aa7d79 Merge branch 'release-v0.16.4' 2018-09-10 11:47:09 +01:00
David Baker
0f9c8235e1 v0.16.4 2018-09-10 11:43:23 +01:00
David Baker
8b0ae88987 Prepare changelog for v0.16.4 2018-09-10 11:43:23 +01:00
David Baker
d8aaae6d42 v0.16.4 2018-09-10 11:42:20 +01:00
David Baker
ce4c71ccfb Released js-sdk & react-sdk 2018-09-10 11:41:45 +01:00
Matthew Hodgson
5ef141913b remove ancient layering warning 2018-09-09 18:35:31 +01:00
Matthew Hodgson
d27db5a1c7 downgraded parallelshell due to https://github.com/darkguy2008/parallelshell/issues/57
thanks @ZerataX! :)
2018-09-09 10:48:03 +01:00
Matthew Hodgson
c2bd6e6da1 point deps at #develop to unbreak npm i 2018-09-09 10:25:33 +01:00
David Baker
d6406b48fd v0.16.4-rc.1 2018-09-07 14:42:52 +01:00
David Baker
d5b42d99f2 Prepare changelog for v0.16.4-rc.1 2018-09-07 14:42:51 +01:00
David Baker
42bac1620e v0.16.4-rc.1 2018-09-07 14:39:20 +01:00
David Baker
09130582ad js-sdk & react-sdk rc.1 2018-09-07 14:38:16 +01:00
David Baker
73239f5535 Merge pull request #7296 from RiotTranslateBot/weblate-riot-web-riot-web
Update from Weblate.
2018-09-07 14:07:30 +01:00
Weblate
22abe5a815 Merge remote-tracking branch 'origin/develop' into develop 2018-09-05 14:48:11 +00:00
David Baker
736450e184 Merge pull request #7288 from vector-im/bwindels/fixmobileguideloadedonriot
Fix config not loading & mobileguide script being loaded in riot
2018-09-05 15:48:04 +01:00
Bruno Windels
d10fda36af fix config not loading correctly anymore 2018-09-05 16:38:00 +02:00
Bruno Windels
8639b2858b dont load the mobileguide script in riot 2018-09-05 16:07:44 +02:00
Weblate
f47a9f93a5 Merge remote-tracking branch 'origin/develop' into develop 2018-09-05 10:31:06 +00:00
David Baker
52bbd8c764 Merge pull request #7272 from vector-im/dbkr/mobileguide
Instructions for installing mobile apps
2018-09-05 11:31:00 +01:00
Weblate
8ef2eec504 Merge remote-tracking branch 'origin/develop' into develop 2018-09-05 10:21:41 +00:00
Bruno Windels
1c5f16c332 Merge pull request #7265 from vector-im/dbkr/make_index_js_less_of_a_dogs_dinner
Tidy up index.js
2018-09-05 12:21:35 +02:00
Matthew Hodgson
588369d297 downgraded parallelshell due to https://github.com/darkguy2008/parallelshell/issues/57
thanks @ZerataX! :)
2018-09-04 20:32:06 +01:00
David Baker
e23195fd86 Conditionally show custom server bit 2018-09-04 10:08:52 +01:00
Matthew Hodgson
1b0cafd956 Merge pull request #7274 from gusttt/patch-1
Small typo in release notes v0.16.3
2018-09-04 09:50:39 +01:00
gusttt
81a624146b Small typo in release notes v0.16.3
Fixes  #7273
2018-09-04 08:16:29 +02:00
David Baker
9c8ef4240c Instructions for installing mobile apps
Replace the native js dialog with a page telling you how to
download the apps and how to set your HS URL.
2018-09-03 20:38:30 +01:00
Weblate
b59edf2690 Merge remote-tracking branch 'origin/develop' into develop 2018-09-03 13:39:35 +00:00
Andri
daa3e1351b Translated using Weblate (English (United States))
Currently translated at 100.0% (37 of 37 strings)

Translation: Riot Web/riot-web
Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/en_US/
2018-09-03 13:39:34 +00:00
David Baker
57999b460b Didn't mean to commit that file 2018-09-03 13:05:58 +01:00
David Baker
e2bad5bdc8 Tidy up index.js
Non-functional changes (before I start messing with it).

Switch to import, move code out of the top level, switch to one
consistent way of declaring functions, keep imports at the top.
2018-09-03 13:01:52 +01:00
Andri
2209059e84 Translated using Weblate (English (United States))
Currently translated at 100.0% (37 of 37 strings)

Translation: Riot Web/riot-web
Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/en_US/
2018-08-30 14:55:19 +00:00
Andrey Silversburg
b335da75db Translated using Weblate (Indonesian)
Currently translated at 100.0% (37 of 37 strings)

Translation: Riot Web/riot-web
Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/id/
2018-08-30 14:49:14 +00:00
Weblate
fbe6595b19 Merge remote-tracking branch 'origin/develop' into develop 2018-08-30 10:43:42 +00:00
Weblate
b30fd9d3bf Merge remote-tracking branch 'origin/develop' into develop 2018-08-30 10:38:37 +00:00
Marcel
5b32ecb719 [Tinter.setTheme fix] add missing comment and move old to correct position 2018-07-24 13:38:49 +02:00
Marcel
58de839621 Fix Tinter.setTheme to not fire using Firefox
This if checks if we got a Firefox using a variable that is undefined everywhere except in Firefox. In Firefox because of how it renders the DOM ensure that css is always loaded before it loads/runs the js code. Therefor onload 1. never triggers and 2. we can just call setTheme.
2018-05-31 22:32:29 +02:00
MTRNord
9063a96629 Specify the path to the postcss config and remove the include arrays as they caused multiple issues on linux 2018-05-11 19:48:33 +02:00
MTRNord
6e922166e7 Fix css paths that got changed from matrix-react-sdk to riot-web 2018-05-11 19:24:18 +02:00
MTRNord
f94abb5611 Fix naming inside the comment 2018-05-11 19:15:48 +02:00
David Baker
8f4953c182 Merge branch 'develop' into webpack4 2018-05-11 16:27:50 +01:00
David Baker
d6a226e6bd Put webpack-dev-server in development mode
https://github.com/webpack/webpack-dev-server/issues/1327
2018-05-04 18:37:29 +01:00
MTRNord
d69084f31e Fix builld:dev build by using raw-loader instead css-raw-loader 2018-04-27 12:02:00 +02:00
MTRNord
02a185f2fe Update Webpack to version 4 2018-04-27 11:32:59 +02:00
31 changed files with 12782 additions and 4764 deletions

1
.gitignore vendored
View File

@@ -19,3 +19,4 @@ electron/pub
/config.json.*
/config.local*.json
/src/component-index.js
/.tmp

View File

@@ -1,10 +1,135 @@
Changes in [0.17.3](https://github.com/vector-im/riot-web/releases/tag/v0.17.3) (2018-10-29)
============================================================================================
[Full Changelog](https://github.com/vector-im/riot-web/compare/v0.17.3-rc.1...v0.17.3)
* Fix for autocompleting text emoji from react-sdk v0.14.2
Changes in [0.17.3-rc.1](https://github.com/vector-im/riot-web/releases/tag/v0.17.3-rc.1) (2018-10-24)
======================================================================================================
[Full Changelog](https://github.com/vector-im/riot-web/compare/v0.17.2...v0.17.3-rc.1)
* Update from Weblate.
[\#7549](https://github.com/vector-im/riot-web/pull/7549)
* Don't set tags on notifications
[\#7518](https://github.com/vector-im/riot-web/pull/7518)
* Update to latest electron builder
[\#7498](https://github.com/vector-im/riot-web/pull/7498)
* Fix Tinter.setTheme to not fire using Firefox
[\#6831](https://github.com/vector-im/riot-web/pull/6831)
Changes in [0.17.2](https://github.com/vector-im/riot-web/releases/tag/v0.17.2) (2018-10-19)
============================================================================================
[Full Changelog](https://github.com/vector-im/riot-web/compare/v0.17.1...v0.17.2)
* Update react-sdk version to "Apply the user's tint once the MatrixClientPeg is moderately ready"
* Electron: don't set tags on notifications
[\#7518](https://github.com/vector-im/riot-web/pull/7518)
Changes in [0.17.1](https://github.com/vector-im/riot-web/releases/tag/v0.17.1) (2018-10-18)
============================================================================================
[Full Changelog](https://github.com/vector-im/riot-web/compare/v0.17.0...v0.17.1)
* Stop electron crashing
[\#7517](https://github.com/vector-im/riot-web/pull/7517)
Changes in [0.17.0](https://github.com/vector-im/riot-web/releases/tag/v0.17.0) (2018-10-16)
============================================================================================
[Full Changelog](https://github.com/vector-im/riot-web/compare/v0.17.0-rc.1...v0.17.0)
* Phased rollout of lazyloading
[\#7503](https://github.com/vector-im/riot-web/pull/7503)
* Update to latest electron builder
[\#7501](https://github.com/vector-im/riot-web/pull/7501)
Changes in [0.17.0-rc.1](https://github.com/vector-im/riot-web/releases/tag/v0.17.0-rc.1) (2018-10-11)
======================================================================================================
[Full Changelog](https://github.com/vector-im/riot-web/compare/v0.16.5...v0.17.0-rc.1)
* Revert "also commit the lock file when bumping version as it is now
committed to the repo"
[\#7483](https://github.com/vector-im/riot-web/pull/7483)
* Update from Weblate.
[\#7478](https://github.com/vector-im/riot-web/pull/7478)
* Fix riot-web Promise.defer warnings (#7409)
[\#7444](https://github.com/vector-im/riot-web/pull/7444)
* Use HTTPS cloning for riot-web too
[\#7459](https://github.com/vector-im/riot-web/pull/7459)
* Disable webpack-dev-server auto reload
[\#7463](https://github.com/vector-im/riot-web/pull/7463)
* Silence bluebird warnings
[\#7462](https://github.com/vector-im/riot-web/pull/7462)
* Fix reskindex on matrix-react-side not being called if using build script
[\#7443](https://github.com/vector-im/riot-web/pull/7443)
* Fix double-closed tags
[\#7454](https://github.com/vector-im/riot-web/pull/7454)
* Document how to turn off Piwik and bug reports (#6738)
[\#7435](https://github.com/vector-im/riot-web/pull/7435)
* also commit the lock file when bumping version as it is now committed to the
repo
[\#7429](https://github.com/vector-im/riot-web/pull/7429)
* Update a bunch of deps
[\#7393](https://github.com/vector-im/riot-web/pull/7393)
* Don't show mobile guide if deep linking
[\#7415](https://github.com/vector-im/riot-web/pull/7415)
* Don't show custom server bit on matrix.org
[\#7408](https://github.com/vector-im/riot-web/pull/7408)
* Update Webpack to version 4
[\#6620](https://github.com/vector-im/riot-web/pull/6620)
* Webpack4
[\#7387](https://github.com/vector-im/riot-web/pull/7387)
Changes in [0.16.6](https://github.com/vector-im/riot-web/releases/tag/v0.16.6) (2018-10-08)
============================================================================================
[Full Changelog](https://github.com/vector-im/riot-web/compare/v0.16.5...v0.16.6)
* Update to matrix-react-sdk v0.13.6
Changes in [0.16.5](https://github.com/vector-im/riot-web/releases/tag/v0.16.5) (2018-10-01)
============================================================================================
[Full Changelog](https://github.com/vector-im/riot-web/compare/v0.16.5-rc.1...v0.16.5)
* Don't show mobile guide if deep linking
[\#7415](https://github.com/vector-im/riot-web/pull/7415)
* Don't show custom server bit on matrix.org
[\#7408](https://github.com/vector-im/riot-web/pull/7408)
Changes in [0.16.5-rc.1](https://github.com/vector-im/riot-web/releases/tag/v0.16.5-rc.1) (2018-09-27)
======================================================================================================
[Full Changelog](https://github.com/vector-im/riot-web/compare/v0.16.4...v0.16.5-rc.1)
* Update from Weblate.
[\#7395](https://github.com/vector-im/riot-web/pull/7395)
* Reduce the number of terminals required to build riot-web to 1
[\#7355](https://github.com/vector-im/riot-web/pull/7355)
* Small typo in release notes v0.16.3
[\#7274](https://github.com/vector-im/riot-web/pull/7274)
Changes in [0.16.4](https://github.com/vector-im/riot-web/releases/tag/v0.16.4) (2018-09-10)
============================================================================================
[Full Changelog](https://github.com/vector-im/riot-web/compare/v0.16.4-rc.1...v0.16.4)
* No changes since rc.1
Changes in [0.16.4-rc.1](https://github.com/vector-im/riot-web/releases/tag/v0.16.4-rc.1) (2018-09-07)
======================================================================================================
[Full Changelog](https://github.com/vector-im/riot-web/compare/v0.16.3...v0.16.4-rc.1)
* Update from Weblate.
[\#7296](https://github.com/vector-im/riot-web/pull/7296)
* Fix config not loading & mobileguide script being loaded in riot
[\#7288](https://github.com/vector-im/riot-web/pull/7288)
* Instructions for installing mobile apps
[\#7272](https://github.com/vector-im/riot-web/pull/7272)
* Tidy up index.js
[\#7265](https://github.com/vector-im/riot-web/pull/7265)
Changes in [0.16.3](https://github.com/vector-im/riot-web/releases/tag/v0.16.3) (2018-09-03)
============================================================================================
[Full Changelog](https://github.com/vector-im/riot-web/compare/v0.16.3-rc.2...v0.16.3)
* SECURITY FIX: This version (and release candidates) pull in an upstream security
fix from electron to fix CVE-2018-15685. Electron users should update as soon as
possible. Riot-web run outsiude of Electron is unaffected.
possible. Riot-web run outside of Electron is unaffected.
Changes in [0.16.3-rc.2](https://github.com/vector-im/riot-web/releases/tag/v0.16.3-rc.2) (2018-08-31)
======================================================================================================
@@ -205,7 +330,7 @@ Changes in [0.15.0-rc.2](https://github.com/vector-im/riot-web/releases/tag/v0.1
======================================================================================================
[Full Changelog](https://github.com/vector-im/riot-web/compare/v0.15.0-rc.1...v0.15.0-rc.2)
* Update to matrix-react-sdk 0.12.4-rc.2
* Update to matrix-react-sdk 0.12.4-rc.2
Changes in [0.15.0-rc.1](https://github.com/vector-im/riot-web/releases/tag/v0.15.0-rc.1) (2018-05-09)
======================================================================================================
@@ -309,7 +434,7 @@ Changes in [0.14.0-rc.6](https://github.com/vector-im/riot-web/releases/tag/v0.1
======================================================================================================
[Full Changelog](https://github.com/vector-im/riot-web/compare/v0.14.0-rc.5...v0.14.0-rc.6)
* Bump react-sdk to [rc.6](https://github.com/matrix-org/matrix-react-sdk/releases/tag/v0.12.0-rc.6)
* Bump react-sdk to [rc.6](https://github.com/matrix-org/matrix-react-sdk/releases/tag/v0.12.0-rc.6)
Changes in [0.14.0-rc.5](https://github.com/vector-im/riot-web/releases/tag/v0.14.0-rc.5) (2018-04-09)
======================================================================================================

View File

@@ -64,12 +64,13 @@ Building From Source
Riot is a modular webapp built with modern ES6 and requires a npm build system
to build.
1. Install or update `node.js` so that your `node` is at least v6.3.0 (and `npm`
is at least v3.10.x).
1. Install or update `node.js` so that your `node` is at least v8.12.0 (and `npm`
is at least v5.x).
1. Clone the repo: `git clone https://github.com/vector-im/riot-web.git`.
1. Switch to the riot-web directory: `cd riot-web`.
1. If you're using the `develop` branch, install the develop versions of the
dependencies, as the released ones will be too old:
1. If you're using the `develop` branch then it is recommended to set up a proper
development environment ("Setting up a dev environment" below) however one can
install the develop versions of the dependencies instead:
```
scripts/fetch-develop.deps.sh
```
@@ -89,13 +90,9 @@ to build.
npm install
npm run build
```
However, we recommend setting up a proper development environment (see "Setting
up a dev environment" below) if you want to run your own copy of the
`develop` branch, as it makes it much easier to keep these dependencies
up-to-date. Or just use https://riot.im/develop - the continuous integration
release of the develop branch.
(Note that we don't reference the develop versions in git directly due to
https://github.com/npm/npm/issues/3055.)
Or just use https://riot.im/develop - the continuous integration release of the
develop branch. (Note that we don't reference the develop versions in git directly
due to https://github.com/npm/npm/issues/3055.)
1. Install the prerequisites: `npm install`.
1. Configure the app by copying `config.sample.json` to `config.json` and
modifying it (see below for details).
@@ -137,7 +134,9 @@ For a good example, see https://riot.im/develop/config.json
1. `integrations_rest_url`: URL to the REST interface for the integrations server.
1. `integrations_widgets_urls`: list of URLs to the REST interface for the widget integrations server.
1. `bug_report_endpoint_url`: endpoint to send bug reports to (must be running a
https://github.com/matrix-org/rageshake server)
https://github.com/matrix-org/rageshake server). Bug reports are sent when a user clicks
"Send Logs" within the application. Bug reports can be disabled by leaving the
`bug_report_endpoint_url` out of your config file.
1. `roomDirectory`: config for the public room directory. This section is optional.
1. `roomDirectory.servers`: List of other homeservers' directories to include in the drop
down list. Optional.
@@ -150,11 +149,13 @@ For a good example, see https://riot.im/develop/config.json
anything else since it is used to isolate the privileges of file attachments to this
domain. Default: `https://usercontent.riot.im/v1.html`. This needs to contain v1.html from
https://github.com/matrix-org/usercontent/blob/master/v1.html
1. `piwik`: an object containing the following properties:
1. `url`: The URL of the Piwik instance to use for collecting Analytics
1. `whitelistedHSUrls`: a list of HS URLs to not redact from the Analytics
1. `whitelistedISUrls`: a list of IS URLs to not redact from the Analytics
1. `siteId`: The Piwik Site ID to use when sending Analytics to the Piwik server configured above
1. `piwik`: Analytics can be disabled by setting `piwik: false` or by leaving the piwik config
option out of your config file. If you want to enable analytics, set `piwik` to be an object
containing the following properties:
1. `url`: The URL of the Piwik instance to use for collecting analytics
1. `whitelistedHSUrls`: a list of HS URLs to not redact from the analytics
1. `whitelistedISUrls`: a list of IS URLs to not redact from the analytics
1. `siteId`: The Piwik Site ID to use when sending analytics to the Piwik server configured above
1. `teamServerConfig`, `teamTokenMap`, `referralBaseUrl`: an obsolete precursor to communities
with referral tracking; please ignore it.
1. `welcomeUserId`: the user ID of a bot to invite whenever users register that can give them a tour
@@ -233,25 +234,17 @@ Before attempting to develop on Riot you **must** read the developer guide
for `matrix-react-sdk` at https://github.com/matrix-org/matrix-react-sdk, which
also defines the design, architecture and style for Riot too.
You should also familiarise yourself with the "Here be Dragons" guide to the
tame & not-so-tame dragons (gotchas) which exist in the codebase:
https://docs.google.com/document/d/12jYzvkidrp1h7liEuLIe6BMdU0NUjndUYI971O06ooM
The idea of Riot is to be a relatively lightweight "skin" of customisations on
top of the underlying `matrix-react-sdk`. `matrix-react-sdk` provides both the
higher and lower level React components useful for building Matrix communication
apps using React.
After creating a new component you must run `npm run reskindex` to regenerate
the `component-index.js` for the app (used in future for skinning)
**However, as of July 2016 this layering abstraction is broken due to rapid
development on Riot forcing `matrix-react-sdk` to move fast at the expense of
maintaining a clear abstraction between the two.** Hacking on Riot inevitably
means hacking equally on `matrix-react-sdk`, and there are bits of
`matrix-react-sdk` behaviour incorrectly residing in the `riot-web` project
(e.g. matrix-react-sdk specific CSS), and a bunch of Riot specific behaviour
in the `matrix-react-sdk` (grep for `vector` / `riot`). This separation problem will be
solved asap once development on Riot (and thus matrix-react-sdk) has
stabilised. Until then, the two projects should basically be considered as a
single unit. In particular, `matrix-react-sdk` issues are currently filed
against `riot-web` in github.
the `component-index.js` for the app (used in future for skinning).
Please note that Riot is intended to run correctly without access to the public
internet. So please don't depend on resources (JS libs, CSS, images, fonts)
@@ -268,30 +261,29 @@ having to manually rebuild each time.
First clone and build `matrix-js-sdk`:
1. `git clone git@github.com:matrix-org/matrix-js-sdk.git`
1. `git clone https://github.com/matrix-org/matrix-js-sdk.git`
1. `pushd matrix-js-sdk`
1. `git checkout develop`
1. `npm install`
1. `npm install source-map-loader` # because webpack is made of fail (https://github.com/webpack/webpack/issues/1472)
1. `npm install source-map-loader` # because webpack is made of fail (https://github.com/webpack/webpack/issues/1472)
1. `popd`
Then similarly with `matrix-react-sdk`:
1. `git clone git@github.com:matrix-org/matrix-react-sdk.git`
1. `git clone https://github.com/matrix-org/matrix-react-sdk.git`
1. `pushd matrix-react-sdk`
1. `git checkout develop`
1. `npm install`
1. `rm -r node_modules/matrix-js-sdk; ln -s ../../matrix-js-sdk node_modules/`
1. `npm link ../matrix-js-sdk`
1. `popd`
Finally, build and start Riot itself:
1. `git clone git@github.com:vector-im/riot-web.git`
1. `git clone https://github.com/vector-im/riot-web.git`
1. `cd riot-web`
1. `git checkout develop`
1. `npm install`
1. `rm -r node_modules/matrix-js-sdk; ln -s ../../matrix-js-sdk node_modules/`
1. `rm -r node_modules/matrix-react-sdk; ln -s ../../matrix-react-sdk node_modules/`
1. `npm link ../matrix-js-sdk`
1. `npm link ../matrix-react-sdk`
1. `npm start`
1. Wait a few seconds for the initial build to finish; you should see something like:
```
@@ -310,10 +302,8 @@ Finally, build and start Riot itself:
disables caching, so do NOT use it in production.
1. Open http://127.0.0.1:8080/ in your browser to see your newly built Riot.
When you make changes to `matrix-react-sdk` or `matrix-js-sdk`, you will need
to run `npm run build` in the relevant directory. You can do this automatically
by instead running `npm start` in the directory, to start a development builder
which will watch for changes to the files and rebuild automatically.
When you make changes to `matrix-react-sdk` or `matrix-js-sdk` they should be
automatically picked up by webpack and built.
If you add or remove any components from the Riot skin, you will need to rebuild
the skin's index by running, `npm run reskindex`.

View File

@@ -2,7 +2,7 @@
"name": "riot-web",
"productName": "Riot",
"main": "src/electron-main.js",
"version": "0.16.3",
"version": "0.17.3",
"description": "A feature-rich client for Matrix.org",
"author": "Vector Creations Ltd.",
"dependencies": {

View File

@@ -21,6 +21,15 @@
"siteId": 1,
"policyUrl": "https://matrix.org/docs/guides/riot_im_cookie_policy"
},
"phasedRollOut": {
"feature_lazyloading": {
"offset": 1539684000000,
"period": 604800000
}
},
"features": {
"feature_lazyloading": "enable"
},
"enable_presence_by_hs_url": {
"https://matrix.org": false
}

View File

@@ -32,9 +32,12 @@ const olm_entry = webpack_config.entry['olm'];
// 'preprocessors' config below)
delete webpack_config['entry'];
// make sure we're flagged as development to avoid wasting time optimising
webpack_config.mode = 'development';
// add ./test as a search path for js
webpack_config.module.loaders.unshift({
test: /\.js$/, loader: "babel",
webpack_config.module.rules.unshift({
test: /\.js$/, use: "babel-loader",
include: [path.resolve('./src'), path.resolve('./test')],
});
@@ -46,8 +49,9 @@ webpack_config.module.noParse.push(/sinon\/pkg\/sinon\.js$/);
// ?
webpack_config.resolve.alias['sinon'] = 'sinon/pkg/sinon.js';
webpack_config.resolve.root = [
webpack_config.resolve.modules = [
path.resolve('./test'),
"node_modules"
];
webpack_config.devtool = 'inline-source-map';

16183
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -2,7 +2,7 @@
"name": "riot-web",
"productName": "Riot",
"main": "electron_app/src/electron-main.js",
"version": "0.16.3",
"version": "0.17.3",
"description": "A feature-rich client for Matrix.org",
"author": "New Vector Ltd.",
"repository": {
@@ -33,19 +33,25 @@
"build:res": "node scripts/copy-res.js",
"build:modernizr": "modernizr -c .modernizr.json -d src/vector/modernizr.js",
"build:compile": "npm run reskindex && babel --source-maps -d lib src",
"build:bundle": "cross-env NODE_ENV=production webpack -p --progress --bail",
"build:bundle:dev": "webpack --optimize-occurence-order --progress --bail",
"build:bundle": "cross-env NODE_ENV=production webpack-cli -p --progress --bail --mode production",
"build:bundle:dev": "webpack-cli --progress --bail --mode development",
"build:electron": "npm run clean && npm run build && npm run install:electron && build -wml --ia32 --x64",
"build": "npm run reskindex && npm run build:res && npm run build:bundle",
"build:dev": "npm run reskindex && npm run build:res && npm run build:bundle:dev",
"build:react-sdk": "node scripts/npm-sub.js matrix-react-sdk run build",
"build:js-sdk": "node scripts/npm-sub.js matrix-js-sdk run start:init",
"build": "npm run build:js-sdk && npm run build:react-sdk && npm run reskindex && npm run build:res && npm run build:bundle",
"build:dev": "npm run build:js-sdk && npm run build:react-sdk && npm run reskindex && npm run build:res && npm run build:bundle:dev",
"dist": "scripts/package.sh",
"install:electron": "install-app-deps",
"electron": "npm run install:electron && electron .",
"start:res": "node scripts/copy-res.js -w",
"start:js": "webpack-dev-server --output-filename=bundles/_dev_/[name].js --output-chunk-file=bundles/_dev_/[name].js -w --progress",
"start:js": "webpack-dev-server --output-filename=bundles/_dev_/[name].js --output-chunk-filename=bundles/_dev_/[name].js -w --progress --mode development",
"start:js:prod": "cross-env NODE_ENV=production webpack-dev-server -w --progress",
"start": "parallelshell \"npm run reskindex:watch\" \"npm run start:res\" \"npm run start:js\"",
"start:prod": "parallelshell \"npm run reskindex:watch\" \"npm run start:res\" \"npm run start:js:prod\"",
"start:js-sdk": "node scripts/npm-sub.js matrix-js-sdk run start:watch",
"start:js-sdk:prod": "cross-env NODE_ENV=production node scripts/npm-sub.js matrix-js-sdk run start:watch",
"start:react-sdk": "node scripts/npm-sub.js matrix-react-sdk run start:all",
"start:react-sdk:prod": "cross-env NODE_ENV=production node scripts/npm-sub.js matrix-react-sdk run start:all",
"start": "npm run build:js-sdk && npm run build:react-sdk && concurrently --kill-others-on-fail --prefix \"{time} [{name}]\" -n js-sdk,react-sdk,reskindex,res,riot-js \"npm run start:js-sdk\" \"npm run start:react-sdk\" \"npm run reskindex:watch\" \"npm run start:res\" \"npm run start:js\"",
"start:prod": "npm run build:js-sdk && npm run build:react-sdk && concurrently --kill-others-on-fail --prefix \"{time} [{name}]\" -n js-sdk,react-sdk,reskindex,res,riot-js \"npm run start:js-sdk:prod\" \"npm run start:react-sdk:prod\" \"npm run reskindex:watch\" \"npm run start:res\" \"npm run start:js:prod\"",
"lint": "eslint src/",
"lintall": "eslint src/ test/",
"clean": "rimraf lib webapp electron_app/dist",
@@ -54,101 +60,97 @@
"test-multi": "karma start"
},
"dependencies": {
"babel-polyfill": "^6.5.0",
"babel-runtime": "^6.11.6",
"bluebird": "^3.5.0",
"babel-polyfill": "^6.26.0",
"babel-runtime": "^6.26.0",
"bluebird": "^3.5.2",
"browser-request": "^0.3.3",
"draft-js": "^0.11.0-alpha",
"extract-text-webpack-plugin": "^0.9.1",
"extract-text-webpack-plugin": "^4.0.0-beta.0",
"favico.js": "^0.3.10",
"gemini-scrollbar": "matrix-org/gemini-scrollbar#b302279",
"gfm.css": "^1.1.1",
"highlight.js": "^9.0.0",
"matrix-js-sdk": "0.10.9",
"matrix-react-sdk": "0.13.3",
"modernizr": "^3.1.0",
"prop-types": "^15.5.10",
"gemini-scrollbar": "github:matrix-org/gemini-scrollbar#b302279",
"gfm.css": "^1.1.2",
"highlight.js": "^9.13.0",
"matrix-js-sdk": "0.12.1",
"matrix-react-sdk": "0.14.2",
"modernizr": "^3.6.0",
"prop-types": "^15.6.2",
"react": "^15.6.0",
"react-dom": "^15.6.0",
"sanitize-html": "^1.18.4",
"ua-parser-js": "^0.7.10",
"sanitize-html": "^1.19.1",
"ua-parser-js": "^0.7.18",
"url": "^0.11.0"
},
"devDependencies": {
"autoprefixer": "^6.6.0",
"babel-cli": "^6.5.2",
"babel-core": "^6.14.0",
"babel-eslint": "^6.1.0",
"babel-loader": "^6.2.5",
"babel-cli": "^6.26.0",
"babel-core": "^6.26.3",
"babel-eslint": "^6.1.2",
"babel-loader": "^7.1.5",
"babel-plugin-add-module-exports": "^0.2.1",
"babel-plugin-transform-async-to-bluebird": "^1.1.1",
"babel-plugin-transform-class-properties": "^6.16.0",
"babel-plugin-transform-object-rest-spread": "^6.16.0",
"babel-plugin-transform-runtime": "^6.15.0",
"babel-preset-es2015": "^6.16.0",
"babel-preset-es2016": "^6.16.0",
"babel-preset-es2017": "^6.16.0",
"babel-preset-react": "^6.16.0",
"babel-preset-stage-2": "^6.17.0",
"babel-plugin-transform-class-properties": "^6.24.1",
"babel-plugin-transform-object-rest-spread": "^6.26.0",
"babel-plugin-transform-runtime": "^6.23.0",
"babel-preset-es2015": "^6.24.1",
"babel-preset-es2016": "^6.24.1",
"babel-preset-es2017": "^6.24.1",
"babel-preset-react": "^6.24.1",
"babel-preset-stage-2": "^6.24.1",
"chokidar": "^1.6.1",
"concurrently": "^4.0.1",
"cpx": "^1.3.2",
"cross-env": "^4.0.0",
"css-raw-loader": "^0.1.1",
"electron-builder": "^11.2.4",
"electron-builder-squirrel-windows": "^11.2.1",
"electron-devtools-installer": "^2.2.0",
"electron-builder": "^20.28.4",
"electron-builder-squirrel-windows": "^11.6.1",
"electron-devtools-installer": "^2.2.4",
"emojione": "^2.2.7",
"eslint": "^3.14.0",
"eslint": "^5.7.0",
"eslint-config-google": "^0.7.1",
"eslint-plugin-babel": "^4.1.1",
"eslint-plugin-flowtype": "^2.30.0",
"eslint-plugin-react": "^7.4.0",
"eslint-plugin-babel": "^4.1.2",
"eslint-plugin-flowtype": "^2.50.3",
"eslint-plugin-react": "^7.11.1",
"expect": "^1.16.0",
"fs-extra": "^0.30.0",
"html-webpack-plugin": "^2.24.0",
"html-webpack-plugin": "^3.2.0",
"json-loader": "^0.5.3",
"karma": "^1.7.0",
"karma": "^3.0.0",
"karma-chrome-launcher": "^0.2.3",
"karma-cli": "^0.1.2",
"karma-junit-reporter": "^0.4.1",
"karma-cli": "^1.0.1",
"karma-junit-reporter": "^2.0.0",
"karma-logcapture-reporter": "0.0.1",
"karma-mocha": "^0.2.2",
"karma-mocha": "^1.3.0",
"karma-sourcemap-loader": "^0.3.7",
"karma-spec-reporter": "0.0.31",
"karma-summary-reporter": "^1.3.3",
"karma-webpack": "^1.7.0",
"karma-summary-reporter": "^1.5.1",
"karma-webpack": "4.0.0-beta.0",
"matrix-mock-request": "^1.2.0",
"matrix-react-test-utils": "^0.2.0",
"minimist": "^1.2.0",
"mkdirp": "^0.5.1",
"mocha": "^2.4.5",
"parallelshell": "^3.0.2",
"mocha": "^5.2.0",
"postcss-extend": "^1.0.5",
"postcss-import": "^9.0.0",
"postcss-loader": "^1.2.2",
"postcss-mixins": "^5.4.1",
"postcss-nested": "^1.0.0",
"postcss-scss": "^0.4.0",
"postcss-simple-vars": "^3.0.0",
"postcss-import": "^11.1.0",
"postcss-loader": "^2.1.6",
"postcss-mixins": "^6.2.0",
"postcss-nested": "^3.0.0",
"postcss-scss": "^1.0.6",
"postcss-simple-vars": "^4.1.0",
"postcss-strip-inline-comments": "^0.1.5",
"raw-loader": "^0.5.1",
"react-addons-perf": "^15.4.0",
"react-addons-test-utils": "^15.6.0",
"rimraf": "^2.4.3",
"source-map-loader": "^0.2.3",
"webpack": "^1.12.14",
"webpack-dev-server": "^1.16.2"
"source-map-loader": "^0.2.4",
"webpack": "^4.20.2",
"webpack-cli": "^3.1.2",
"webpack-dev-server": "^3.1.9"
},
"optionalDependencies": {
"olm": "https://matrix.org/packages/npm/olm/olm-2.2.1.tgz"
},
"build": {
"appId": "im.riot.app",
"category": "Network",
"electronVersion": "2.0.8",
"//asar=false": "https://github.com/electron-userland/electron-builder/issues/675",
"asar": false,
"dereference": true,
"//files": "We bundle everything, so we only need to include webapp/",
"electronVersion": "3.0.5",
"files": [
"node_modules/**",
"src/**",
@@ -165,8 +167,13 @@
"StartupWMClass": "riot"
}
},
"mac": {
"category": "public.app-category.social-networking"
},
"win": {
"target": "squirrel"
"target": {
"target": "squirrel"
}
},
"directories": {
"buildResources": "electron_app/build",

View File

@@ -100,7 +100,7 @@ mkdir -p "$projdir/electron_app/dist/unsigned/"
# Install packages: what the user downloads the first time,
# (DMGs for mac, exe installer for windows)
mkdir -p "$pubdir/install/macos"
cp $distdir/mac/*.dmg "$pubdir/install/macos/"
cp $distdir/*.dmg "$pubdir/install/macos/"
# Windows installers go to the dist dir because they need signing
mkdir -p "$pubdir/install/win32/ia32/"
@@ -111,7 +111,7 @@ cp $distdir/win/*.exe "$projdir/electron_app/dist/unsigned/"
# Packages for auto-update
mkdir -p "$pubdir/update/macos"
cp $distdir/mac/*.zip "$pubdir/update/macos/"
cp $distdir/*-mac.zip "$pubdir/update/macos/"
echo "$vername" > "$pubdir/update/macos/latest"
mkdir -p "$pubdir/update/win32/ia32/"

View File

@@ -52,13 +52,7 @@ function dodep() {
echo "$repo set to branch "`git -C "$repo" rev-parse --abbrev-ref HEAD`
mkdir -p node_modules
rm -r "node_modules/$repo" 2>/dev/null || true
ln -sv "../$repo" node_modules/
(
cd $repo
npm install
)
npm link "./$repo" # This does an npm install for us
}
##############################
@@ -77,14 +71,15 @@ echo 'Setting up matrix-react-sdk'
dodep matrix-org matrix-react-sdk
# replace the version of js-sdk that got pulled into react-sdk with a symlink
# replace the version of js-sdk that got pulled into react-sdk with a link
# to our version. Make sure to do this *after* doing 'npm i' in react-sdk,
# otherwise npm helpfully moves another-json from matrix-js-sdk/node_modules
# into matrix-react-sdk/node_modules.
#
# (note this matches the instructions in the README.)
rm -r node_modules/matrix-react-sdk/node_modules/matrix-js-sdk
ln -s ../../matrix-js-sdk node_modules/matrix-react-sdk/node_modules/
cd matrix-react-sdk
npm link ../matrix-js-sdk
cd ../
echo -en 'travis_fold:end:matrix-react-sdk\r'

22
scripts/npm-sub.js Normal file
View File

@@ -0,0 +1,22 @@
const path = require('path');
const child_process = require('child_process');
const moduleName = process.argv[2];
if (!moduleName) {
console.error("Expected module name");
process.exit(1);
}
const argString = process.argv.length > 3 ? process.argv.slice(3).join(" ") : "";
if (!argString) {
console.error("Expected an npm argument string to use");
process.exit(1);
}
const modulePath = path.dirname(require.resolve(`${moduleName}/package.json`));
child_process.execSync("npm " + argString, {
env: process.env,
cwd: modulePath,
stdio: ['inherit', 'inherit', 'inherit'],
});

View File

@@ -4,5 +4,29 @@
"Riot is not supported on mobile web. Install the app?": "رايوت غير مدعوم في وضعية الويب على الهاتف. هل تريد تثبيت التطبيق ؟",
"Riot Desktop on %(platformName)s": "الواجهة المكتبية لرايوت على %(platformName)s",
"Unknown device": "جهاز مجهول",
"%(appName)s via %(browserName)s on %(osName)s": "%(appName)s عبر %(browserName)s على %(osName)s"
"%(appName)s via %(browserName)s on %(osName)s": "%(appName)s عبر %(browserName)s على %(osName)s",
"You need to be using HTTPS to place a screen-sharing call.": "تحتاج الى استخدام الاتصال الآمن ( HTTPS) للسماح بمشاركة الشاشة",
"Co-ordination for Riot translators": "التنسيق لمترجمين Riot",
"powered by Matrix": "مشغل بواسطة Matrix",
"Welcome to Riot.im": "مرحبا بك في Riot.im",
"Dev chat for the Dendrite dev team": "Dev chat for the Dendrite dev team",
"Implementing VoIP services with Matrix": "تنفيذ خدمات VoIP مع Matrix",
"Discussion of the Identity Service API": "مناقشة واجهة برمجة التطبيقات لخدمة الهوية",
"Support for those using, running and writing other bridges": "دعم لأولئك الذين يستخدمون الجسور الأخرى ويديرونها وكتابتهم",
"Implementing VR services with Matrix": "تنفيذ خدمات الواقع الافتراضي مع Matrix",
"Search the room directory": "ابحث في دليل الغرفة",
"Lots of rooms already exist in Matrix, linked to existing networks (Slack, IRC, Gitter etc) or independent. Check out the directory!": "توجد بالفعل الكثير من الغرف في Matrix ، مرتبطة بالشبكات القائمة (Slack، IRC، Gitter الخ) أو مستقلة. تحقق من الدليل!",
"Chat with Riot Bot": "الدردشة مع Riot Bot",
"Get started with some tips from Riot Bot!": "ابدأ ببعض النصائح من Riot Bot!",
"General discussion about Matrix and Riot": "مناقشة عامة حول Matrix و Riot",
"Discussion of all things Matrix!": "مناقشة كل شيء Matrix!",
"Riot/Web &amp; Desktop chat": "Riot/Web &amp; دردشة سطح المكتب",
"Riot/iOS &amp; matrix-ios-sdk chat": "Riot/iOS &amp; matrix-ios-sdk chat",
"You can use the custom server options to sign into other Matrix servers by specifying a different Home server URL.<br/>This allows you to use Riot with an existing Matrix account on a different home server.<br/><br/>You can also set a custom identity server but you won't be able to invite users by email address, or be invited by email address yourself.": "تستطيع استخدام الخدما.يمكنك استخدام خيارات الخادم المخصص لتسجيل الدخول إلى خوادم Matrix الأخرى عن طريق تحديد عنوان URL لخادم Home آخر.<br/>هذا يسمح لك باستخدام Riot مع حساب Matrix موجود على خادم منزل مختلف.<br/><br/>يمكنك أيضًا تعيين خادم هوية مخصص ولكنك لن تتمكن من دعوة المستخدمين عن طريق عنوان البريد الإلكتروني ، أو دعوتك عبر عنوان البريد الإلكتروني بنفسك.",
"Decentralised, encrypted chat &amp; collaboration powered by [matrix]": "[matrix] تعاون مدعوم مواسطة &amp; دردشة لا مركزية ومشفرة",
"Matrix technical discussions": "مناقشات تقنية Matrix",
"Running Matrix services": "تشغيل خدمات Matrix",
"Community-run support for Synapse": "الدعم المجتمعي لـ Synapse",
"Admin support for Dendrite": "الدعم الاداري لـDendrite",
"Announcements about Synapse releases": "إعلانات حول إصدارات Synaps"
}

View File

@@ -3,14 +3,14 @@
"Custom Server Options": "Opcions de servidor personalitzat",
"Dismiss": "Omet",
"Unknown device": "Dispositiu desconegut",
"Welcome to Riot.im": "Benvingut a Riot.im",
"Welcome to Riot.im": "Us donem la benvinguda a Riot.im",
"Chat with Riot Bot": "Conversa amb el Bot de Riot",
"Riot is not supported on mobile web. Install the app?": "Riot no és compatible amb la web per a mòbils. Voleu instal·lar l'aplicació per a mòbils?",
"Riot Desktop on %(platformName)s": "Riot d'escriptori per a %(platformName)s",
"You need to be using HTTPS to place a screen-sharing call.": "Heu d'utilitzar HTTPS per poder fer una trucada amb pantalla compartida.",
"You can use the custom server options to sign into other Matrix servers by specifying a different Home server URL.<br/>This allows you to use Riot with an existing Matrix account on a different home server.<br/><br/>You can also set a custom identity server but you won't be able to invite users by email address, or be invited by email address yourself.": "Podeu utilitzar opcions de servidor personalitzades per iniciar sessió en altres servidors Matrix especificant una URL diferent a la del servidor principal. <br/> Això us permet utilitzar Riot amb un compte de Matrix existent en un servidor d'origen diferent. <br/> <br/> També podeu establir un servidor d'identitat personalitzat, però no podreu convidar o ser convidat per correu electrònic.",
"powered by Matrix": "amb tecnologia de Matrix",
"Decentralised, encrypted chat &amp; collaboration powered by [matrix]": "Xat descentralitzat, encriptat &amp; col·laboració amb tecnologia de [matrix]",
"Decentralised, encrypted chat &amp; collaboration powered by [matrix]": "Xat descentralitzat, encriptat i col·laboratiu amb tecnologia de [matrix]",
"Search the room directory": "Cerqueu el directori de sales",
"Lots of rooms already exist in Matrix, linked to existing networks (Slack, IRC, Gitter etc) or independent. Check out the directory!": "Ja existeixen moltes sales a Matrix vinculades a xarxes existents (Slack, IRC, Gitter, etc.) o independents. Feu un cop d'ull al directori!",
"Get started with some tips from Riot Bot!": "Comenceu amb alguns consells de Riot Bot!",

View File

@@ -33,5 +33,7 @@
"Lots of rooms already exist in Matrix, linked to existing networks (Slack, IRC, Gitter etc) or independent. Check out the directory!": "Lots of rooms already exist in Matrix, linked to existing networks (Slack, IRC, Gitter etc) or independent. Check out the directory!",
"Riot/Android &amp; matrix-android-sdk chat": "Riot/Android &amp; matrix-android-sdk chat",
"Riot/Web &amp; Desktop chat": "Riot/Web &amp; Desktop chat",
"Riot/iOS &amp; matrix-ios-sdk chat": "Riot/iOS &amp; matrix-ios-sdk chat"
"Riot/iOS &amp; matrix-ios-sdk chat": "Riot/iOS &amp; matrix-ios-sdk chat",
"You can use the custom server options to sign into other Matrix servers by specifying a different Home server URL.<br/>This allows you to use Riot with an existing Matrix account on a different home server.<br/><br/>You can also set a custom identity server but you won't be able to invite users by email address, or be invited by email address yourself.": "You can use the custom server options to sign into other Matrix servers by specifying a different Home server URL.<br/>This allows you to use Riot with an existing Matrix account on a different home server.<br/><br/>You can also set a custom identity server but you won't be able to invite users by email address, or be invited by email address yourself.",
"Co-ordination for Riot translators": "Co-ordination for Riot translators"
}

View File

@@ -8,7 +8,7 @@
"You need to be using HTTPS to place a screen-sharing call.": "Vi devas uzi HTTPS por ekranvidadi.",
"Welcome to Riot.im": "Bonvenu al Riot.im",
"Decentralised, encrypted chat &amp; collaboration powered by [matrix]": "Malcentra, ĉifrita babilado &amp; kunlaboro povigita de [matrix]",
"Search the room directory": "Serĉi en la ĉambrujo",
"Search the room directory": "Serĉi en la babilejo-listo",
"Chat with Riot Bot": "Babilu kun la roboto Riot Bot",
"Get started with some tips from Riot Bot!": "Komencu kun kelkaj sugestoj de la roboto Riot Bot!",
"General discussion about Matrix and Riot": "Ĝenerala diskutado pri Matrix kaj Riot",

View File

@@ -34,5 +34,6 @@
"Dev chat for the Riot/Web dev team": "Obrolan Developer untuk tim developer Riot/Web",
"Dev chat for the Dendrite dev team": "Obrolan Developer untuk tim developer Dendrite",
"Lots of rooms already exist in Matrix, linked to existing networks (Slack, IRC, Gitter etc) or independent. Check out the directory!": "Banyak ruang sudah tersedia di Matrix, terhubung ke jaringan yang sudah ada (Slack, IRC, Gitter dls) atau independen. Cek direktori!",
"You can use the custom server options to sign into other Matrix servers by specifying a different Home server URL.<br/>This allows you to use Riot with an existing Matrix account on a different home server.<br/><br/>You can also set a custom identity server but you won't be able to invite users by email address, or be invited by email address yourself.": "Anda dapat menggunakan opsi lain untuk mendaftar pada server Matrix yang berbeda dengan memasukkan URL server yang sesuai. <br/>Hal ini memungkinkan anda untuk menggunakan Riot dengan akun matrix yang telah tersedia pada Home server yang berbeda.<br/><br/>Anda juga dapat melakukan pengubahan identitas server akan tetapi akan berakibat tidak dapat mengundang pengguna melalui email, atau diundang melalui email."
"You can use the custom server options to sign into other Matrix servers by specifying a different Home server URL.<br/>This allows you to use Riot with an existing Matrix account on a different home server.<br/><br/>You can also set a custom identity server but you won't be able to invite users by email address, or be invited by email address yourself.": "Anda dapat menggunakan opsi lain untuk mendaftar pada server Matrix yang berbeda dengan memasukkan URL server yang sesuai. <br/>Hal ini memungkinkan anda untuk menggunakan Riot dengan akun matrix yang telah tersedia pada Home server yang berbeda.<br/><br/>Anda juga dapat melakukan pengubahan identitas server akan tetapi akan berakibat tidak dapat mengundang pengguna melalui email, atau diundang melalui email.",
"Co-ordination for Riot translators": "Koordinasi dengan penerjemah Riot"
}

View File

@@ -1,11 +1,11 @@
{
"Custom Server Options": "Opzioni Server Personalizzate",
"Custom Server Options": "Opzioni server personalizzate",
"Dismiss": "Chiudi",
"powered by Matrix": "offerto da Matrix",
"Riot Desktop on %(platformName)s": "Riot Desktop su %(platformName)s",
"Riot is not supported on mobile web. Install the app?": "Riot non è supportato sul web mobile. Vuoi installare l'applicazione?",
"Riot is not supported on mobile web. Install the app?": "Riot non è supportato sul web mobile. Installare l'applicazione?",
"Unknown device": "Dispositivo sconosciuto",
"You need to be using HTTPS to place a screen-sharing call.": "Devi usare HTTPS per instaurare una chiamata con condivisione schermo.",
"You need to be using HTTPS to place a screen-sharing call.": "Devi usare HTTPS per effettuare una chiamata con la condivisione dello schermo.",
"Welcome to Riot.im": "Benvenuto/a su Riot.im",
"Search the room directory": "Cerca nella lista delle stanze",
"Chat with Riot Bot": "Chatta con Riot Bot",
@@ -22,18 +22,18 @@
"Support for those using and running matrix-appservice-irc": "Supporto per chi usa e amministra matrix-appservice-irc",
"Building services on Matrix": "Costruzione servizi su Matrix",
"Support for those using the Matrix spec": "Supporto per chi utilizza le specifiche Matrix",
"Design and implementation of E2E in Matrix": "Design e implementazione di E2E in Matrix",
"Design and implementation of E2E in Matrix": "Progetto e implementazione di E2E in Matrix",
"Implementing VR services with Matrix": "Implementazione servizi VR con Matrix",
"Implementing VoIP services with Matrix": "Implementazione servizi VoIP con Matrix",
"Discussion of the Identity Service API": "Discussione sull'Identity Service API",
"Support for those using, running and writing other bridges": "Supporto per chi usa, amministra e scrive altri bridge",
"Contributing code to Matrix and Riot": "Contributi al codice di Matrix e Riot",
"%(appName)s via %(browserName)s on %(osName)s": "%(appName)s via %(browserName)s su %(osName)s",
"Decentralised, encrypted chat &amp; collaboration powered by [matrix]": "Chat criptate e collaborazioni decentralizzate offerte da [matrix]",
"Discussion of all things Matrix!": "Discussione su tutto quanto riguardi Matrix!",
"Discussion of the Identity Service API": "Discussione API del servizio identità",
"Support for those using, running and writing other bridges": "Supporto per chi usa, amministra e scrive altri ponti (bridge)",
"Contributing code to Matrix and Riot": "Contributi di codice per Matrix e Riot",
"%(appName)s via %(browserName)s on %(osName)s": "%(appName)s tramite %(browserName)s su %(osName)s",
"Decentralised, encrypted chat &amp; collaboration powered by [matrix]": "Chat criptate e decentralizzate &amp; collaborazione offerta da [matrix]",
"Discussion of all things Matrix!": "Discussione su tutto riguardo Matrix!",
"Dev chat for the Riot/Web dev team": "Chat per gli sviluppatori di Riot/Web",
"Dev chat for the Dendrite dev team": "Chat per gli sviluppatori di Dendrite",
"Lots of rooms already exist in Matrix, linked to existing networks (Slack, IRC, Gitter etc) or independent. Check out the directory!": "Esistono già molte stanze in Matrix, collegate a reti già esistenti (Slack, IRC, Gitter ecc) o indipendenti. Dai un'occhiata all'elenco!",
"You can use the custom server options to sign into other Matrix servers by specifying a different Home server URL.<br/>This allows you to use Riot with an existing Matrix account on a different home server.<br/><br/>You can also set a custom identity server but you won't be able to invite users by email address, or be invited by email address yourself.": "Puoi usare le opzioni server personalizzate per accedere ad altri server Matrix specificando l'indirizzo dell'home server.<br/> Questo permette di usare Matrix con un account esistente su un home server diverso.<br/><br/>È anche possibile impostare un diverso identity server, ma in quel caso non sarà possibile invitare utenti attraverso l'indirizzo e-mail o essere invitati attraverso l'indirizzo e-mail.",
"Lots of rooms already exist in Matrix, linked to existing networks (Slack, IRC, Gitter etc) or independent. Check out the directory!": "Esistono già molte stanze in Matrix, collegate a reti esistenti (Slack, IRC, Gitter, ecc.) o indipendenti. Controlla l'elenco!",
"You can use the custom server options to sign into other Matrix servers by specifying a different Home server URL.<br/>This allows you to use Riot with an existing Matrix account on a different home server.<br/><br/>You can also set a custom identity server but you won't be able to invite users by email address, or be invited by email address yourself.": "Puoi usare le opzioni server personalizzate per accedere ad altri server Matrix specificando l'indirizzo del server home.<br/> Questo permette di usare Riot con un account Matrix esistente su un server home diverso.<br/><br/>È anche possibile impostare un diverso server identità, ma in tal caso non sarà possibile invitare utenti attraverso l'indirizzo e-mail o essere invitati attraverso l'indirizzo e-mail.",
"Co-ordination for Riot translators": "Coordinazione per i traduttori di Riot"
}

View File

@@ -15,7 +15,7 @@
"Chat with Riot Bot": "Riot Botと会話",
"Get started with some tips from Riot Bot!": "Riot Botにヒントをもらって始めましょう",
"General discussion about Matrix and Riot": "MatrixとRiotの概略",
"Discussion of all things Matrix!": "Matrixなんでも討論",
"Discussion of all things Matrix!": "Matrixなんでも議論!",
"Riot/Web &amp; Desktop chat": "Riot/Web &amp; デスクトップ版チャット",
"Riot/iOS &amp; matrix-ios-sdk chat": "Riot/iOS &amp; matrix-ios-sdk チャット",
"Riot/Android &amp; matrix-android-sdk chat": "Riot/Android &amp; matrix-android-sdk チャット",
@@ -27,12 +27,13 @@
"Support for those using and running matrix-appservice-irc": "matrix-appservice-ircを利用並びに運営している方へのサポート",
"Building services on Matrix": "Matrixでのサービスの開発",
"Support for those using the Matrix spec": "Matrixスペックを利用する方へのサポート",
"Design and implementation of E2E in Matrix": "Matrixのデザインとエンドツーエンドの実装",
"Design and implementation of E2E in Matrix": "Matrixのデザインとエンドツーエンドの実装",
"Implementing VR services with Matrix": "MatrixでのVRサービスの実装",
"Implementing VoIP services with Matrix": "MatrixでのIP電話サービスの実装",
"Discussion of the Identity Service API": "Identity Service APIの議論",
"Support for those using, running and writing other bridges": "他のブリッジを利用、運営、作成している方へのサポート",
"Contributing code to Matrix and Riot": "MatrixとRiotにコードを提供する",
"Dev chat for the Riot/Web dev team": "Riot/Web開発者チームのための開発者チャット",
"Dev chat for the Dendrite dev team": "Dendrite開発者チームのための開発者チャット"
"Dev chat for the Dendrite dev team": "Dendrite開発者チームのための開発者チャット",
"Co-ordination for Riot translators": "Riot 翻訳者による共同作業"
}

39
src/i18n/strings/jbo.json Normal file
View File

@@ -0,0 +1,39 @@
{
"Riot is not supported on mobile web. Install the app?": ".i lo samfonxa na kakne lo nu pilno la kibro nu zunti .i .au pei kibycpa le samtci",
"Riot Desktop on %(platformName)s": "la skami nu zunti ci'e la'o gy. %(platformName)s .gy.",
"Unknown device": "lo na'e te djuno se pilno",
"%(appName)s via %(browserName)s on %(osName)s": "la'o gy. %(appName)s .gy. xe be'i la'o gy. %(browserName)s .gy. ci'e la'o gy. %(osName)s .gy.",
"You need to be using HTTPS to place a screen-sharing call.": ".i la .hytytypysys. sarcu lo nu co'a vidni jorne",
"Custom Server Options": "lo macnu se cuxna be fi lo'i samse'u",
"You can use the custom server options to sign into other Matrix servers by specifying a different Home server URL.<br/>This allows you to use Riot with an existing Matrix account on a different home server.<br/><br/>You can also set a custom identity server but you won't be able to invite users by email address, or be invited by email address yourself.": ".i zukte lo nu macnu cuxna lo samse'u kei goi ko'a lo nu pilno lo drata samse'u pe la nacmeimei<br/>.i ko'a se cumki lo nu do pilno lo pilno poi zvati lo drata samse'u pe la nacmeimei<br/><br/>.i ji'a cumki fa lo nu do pilno lo drata ke prenu datni samse'u kei goi ko'a .i ku'i ko'a to'e rinka la'a lo nu do zvacpe ja se zvacpe",
"Dismiss": "mipri",
"powered by Matrix": ".i la nacmeimei cu cumgau",
"Welcome to Riot.im": ".i fi'i lo pilno be la nu zunti",
"Decentralised, encrypted chat &amp; collaboration powered by [matrix]": ".i la nacmeimei cu cumgau lo mifra je na'e se midju nu tavla je ke kansa gunka",
"Search the room directory": "sisku fi lo'i kumfa pe'a",
"Lots of rooms already exist in Matrix, linked to existing networks (Slack, IRC, Gitter etc) or independent. Check out the directory!": ".i ci'e la nacmeimei cu kumfa pe'a fa so'i da noi jorne jo nai no'e jorne lo drata ciste no'u mu'a la .slak. jo'u lo te irci jo'u la .gityr. .i",
"Chat with Riot Bot": "tavla la nu zunti kei sampre",
"Get started with some tips from Riot Bot!": ".i .e'u la nu zunti kei sampre cu sidju ko",
"General discussion about Matrix and Riot": "lo nu casnu be la nacmeimei .e la nu zunti",
"Discussion of all things Matrix!": "lo nu casnu be ro me la nacmeimei",
"Riot/Web &amp; Desktop chat": "lo nu casnu be la kibro nu zunti .e la skami nu zunti",
"Running Matrix services": "lo nu ralte lo samtcise'u pe la nacmeimei",
"Community-run support for Synapse": "lo nu lo cecmu cu sidju fi tu'a la .sinaps.",
"Discussion of the Identity Service API": "lo nu casnu lo prenu datni favgau cimde",
"Contributing code to Matrix and Riot": "lo nu dunda lo samselpla la nacmeimei .a la nu zunti",
"Co-ordination for Riot translators": "lo nu lo fanva pe la nu zunti cu kansa gunka",
"Riot/iOS &amp; matrix-ios-sdk chat": "lo nu casnu la plisyfonkemsamcmu nu zunti .e la'o gy. matrix-ios-sdk .gy.",
"Riot/Android &amp; matrix-android-sdk chat": "lo nu casnu la guglyfonkemsamcmu nu zunti .e la'o gy. matrix-android-sdk .gy.",
"Matrix technical discussions": "lo nu casnu lo zbaske be la nacmeimei",
"Announcements about Synapse releases": "lo notci be lo farvi tcini pe la nirna",
"Support for those using and running matrix-appservice-irc": "lo nu sidju lo pilno ja admine be la'o gy. matrix-appservice-irc .gy.",
"Building services on Matrix": "lo nu finti lo te selfu ji'u la nacmeimei",
"Support for those using the Matrix spec": "lo nu sidju lo pilno be lo sarcu pe la nacmeimei",
"Design and implementation of E2E in Matrix": "lo nu finti lo mulno mifra te platu .a lo samtcise'u be my. ji'u la nacmeimei",
"Support for those using, running and writing other bridges": "lo nu sidju lo pilno ja admine ja finti be lo drata te jorne",
"Dev chat for the Riot/Web dev team": "lo nu lo favgau be la kibro nu zunti cu casnu",
"Dev chat for the Dendrite dev team": "lo nu lo favgau be la nirndendriti cu casnu",
"Implementing VoIP services with Matrix": "lo nu finti lo samtcise'u be fi la .voip. ji'u la nacmeimei",
"Implementing VR services with Matrix": "lo nu finti lo samtcise'u be fi lo na'e fatci munje ji'u la nacmeimei",
"Admin support for Dendrite": "lo nu sidju lo admine be la nirndendriti"
}

View File

@@ -33,5 +33,7 @@
"Contributing code to Matrix and Riot": "Matrix와 Riot에 코드 기여하기",
"Dev chat for the Riot/Web dev team": "Riot/웹 개발 팀을 위한 개발자 대화",
"Dev chat for the Dendrite dev team": "덴드라이트 개발 팀을 위한 개발자 대화",
"Lots of rooms already exist in Matrix, linked to existing networks (Slack, IRC, Gitter etc) or independent. Check out the directory!": "기존 네트워크(Slack, IRC, Gitter 등)에 연결되있거나 독립된 많은 방이 이미 Matrix에 있습니다. 목록을 확인해보세요!"
"Lots of rooms already exist in Matrix, linked to existing networks (Slack, IRC, Gitter etc) or independent. Check out the directory!": "기존 네트워크(Slack, IRC, Gitter 등)에 연결되있거나 독립된 많은 방이 이미 Matrix에 있습니다. 목록을 확인해보세요!",
"Co-ordination for Riot translators": "Riot 번역자 조합",
"You can use the custom server options to sign into other Matrix servers by specifying a different Home server URL.<br/>This allows you to use Riot with an existing Matrix account on a different home server.<br/><br/>You can also set a custom identity server but you won't be able to invite users by email address, or be invited by email address yourself.": "사용자정의 서버 설정에서 다른 홈서버 URL를 지정해 다른 Matrix 서버에 접속할 수 있습니다. <br/>이렇게하면 다른 홈서버에서 기존의 Matrix 계정으로 Riot을 이용할 수 있습니다.<br/><br/>사용자정의 아이덴티티 서버도 설정할 수 있지만 이메일 주소로 이용자를 초대하거나 자신이 이메일 주소로 초대받을 수 없습니다."
}

View File

@@ -34,6 +34,6 @@
"Support for those using, running and writing other bridges": "Ondersteuning voor het gebruiken, draaien en ontwikkelen aan andere bruggen",
"Dev chat for the Riot/Web dev team": "Dev-chat voor het Riot/Web ontwikkelteam",
"Dev chat for the Dendrite dev team": "Dev-chat voor het Dendrite-ontwikkelteam",
"You can use the custom server options to sign into other Matrix servers by specifying a different Home server URL.<br/>This allows you to use Riot with an existing Matrix account on a different home server.<br/><br/>You can also set a custom identity server but you won't be able to invite users by email address, or be invited by email address yourself.": "Je kan de custom server opties gebruiken om op andere Matrix server in te loggen door een andere Home server URL op te geven.<br/> Dit laat je toe om Riot te gebruiken met een bestaande Matrix account op een andere home server.<br/><br/>Je kan ook een custom identiteits-server opzetten maar dan kan je geen gebruikers uitnodigen via hun email adres, of zelf uitgenodigd worden via je email adres.",
"You can use the custom server options to sign into other Matrix servers by specifying a different Home server URL.<br/>This allows you to use Riot with an existing Matrix account on a different home server.<br/><br/>You can also set a custom identity server but you won't be able to invite users by email address, or be invited by email address yourself.": "Je kan de custom serveropties gebruiken om op andere Matrix-servers in te loggen door een andere thuisserver-URL op te geven.<br/> Dit laat je toe om Riot te gebruiken met een bestaand Matrix-account op een andere thuisserver.<br/><br/>Je kan ook een aangepaste-identiteitsserver opzetten maar dan kan je geen gebruikers uitnodigen via hun e-mailadres, of zelf uitgenodigd worden via je e-mailadres.",
"Co-ordination for Riot translators": "Coördinatie voor Riot vertalers"
}

View File

@@ -1,5 +1,39 @@
{
"Riot is not supported on mobile web. Install the app?": "Riot nu functionează pe mobil. Instalezi aplicaţia?",
"Riot Desktop on %(platformName)s": "Riot Desktop pe %(platformName)s",
"Unknown device": "Device necunoscut"
"Unknown device": "Device necunoscut",
"Custom Server Options": "Opțiuni Server Personalizate",
"Dismiss": "Închide",
"powered by Matrix": "propulsat de Matrix",
"Welcome to Riot.im": "Bun venit pe Riot.im",
"Decentralised, encrypted chat &amp; collaboration powered by [matrix]": "Chat decentralizat, criptat &amp; colaborare propulsata de [matrix]",
"Search the room directory": "Caută în lista de camere",
"Lots of rooms already exist in Matrix, linked to existing networks (Slack, IRC, Gitter etc) or independent. Check out the directory!": "Multe camere există deja in Matrix, conectate la rețele existente (Slack, IRC, Gitter etc) sau independente. Aruncă o privite in lista de camere!",
"Chat with Riot Bot": "Discută cu Riot Bot",
"Get started with some tips from Riot Bot!": "Începe cu câteva ponturi din partea Riot Bot!",
"General discussion about Matrix and Riot": "Discuție generală despre Matrix și Riot",
"Discussion of all things Matrix!": "Discuții despre toate subiectele Matrix!",
"Riot/Web &amp; Desktop chat": "Riot/Web &amp; Chat pentru desktop",
"Riot/iOS &amp; matrix-ios-sdk chat": "Riot/iOS &amp; chat pentru matrix-ios-sdk",
"Riot/Android &amp; matrix-android-sdk chat": "Riot/Android &amp; chat pentru matrix-android-sdk",
"Matrix technical discussions": "Discuții tehnice Matrix",
"Running Matrix services": "Rularea serviciilor Matrix",
"Community-run support for Synapse": "Suport cu ajutorul comunității pentru Synapse",
"Admin support for Dendrite": "Suport Administrare pentru Dendrite",
"Announcements about Synapse releases": "Anunțuri despre lansări Synapse",
"Support for those using and running matrix-appservice-irc": "Suport pentru cei care utilizează și rulează matrix-appservice-irc",
"Building services on Matrix": "Construirea serviciilor cu Matrix",
"Support for those using the Matrix spec": "Suport pentru cei ce utilizează specificațiile Matrix",
"Design and implementation of E2E in Matrix": "Designul și planificarea E2E în Matrix",
"Implementing VR services with Matrix": "Implementarea serviciilor VR cu Matrix",
"Implementing VoIP services with Matrix": "Implementarea serviciilor VoIP cu Matrix",
"Discussion of the Identity Service API": "Discuții despre API-ul Serviciul de Identitate",
"Support for those using, running and writing other bridges": "Suport pentru cei ce folosesc, rulează și programeaza alți conectori",
"Contributing code to Matrix and Riot": "Contribuirea codului pentru Matrix și Riot",
"Dev chat for the Riot/Web dev team": "Chat pentru echipa de dezvoltare Riot/Web",
"Dev chat for the Dendrite dev team": "Chat pentru echipa de dezvoltare Dendrite",
"Co-ordination for Riot translators": "Coordonare pentru translatorii Riot",
"%(appName)s via %(browserName)s on %(osName)s": "%(appName)s via %(browserName)s pe %(osName)s",
"You need to be using HTTPS to place a screen-sharing call.": "Trebuie să folosești HTTPS pentru a plasa un apel de tip screen-sharing.",
"You can use the custom server options to sign into other Matrix servers by specifying a different Home server URL.<br/>This allows you to use Riot with an existing Matrix account on a different home server.<br/><br/>You can also set a custom identity server but you won't be able to invite users by email address, or be invited by email address yourself.": "Poți folosi opțiunile server personalizate pentru a te conecta la alte servere Matrix prin specificarea unui URL de tip Home server diferit.<br/>Acestă opțiune îți permite să utilizezi Riot cu un cont existent pe un home server diferit.<br/><br/>Poți folosi și un server de identitate personalizat, dar nu vei putea invita alți utilizatori prin adresa de email sau să fii tu însuți invitat prim email."
}

View File

@@ -1,5 +1,5 @@
{
"Riot is not supported on mobile web. Install the app?": "Riot-i nuk mbulohet nën web për celularët. Të instalohet aplikacioni?",
"Riot is not supported on mobile web. Install the app?": "Riot-i nuk mbulohet në web për celularë. Të instalohet aplikacioni?",
"Riot Desktop on %(platformName)s": "Riot Desktop në %(platformName)s",
"Unknown device": "Pajisje e panjohur",
"%(appName)s via %(browserName)s on %(osName)s": "%(appName)s përmes %(browserName)s nën %(osName)s",
@@ -9,7 +9,7 @@
"Dismiss": "Mos e merr parasysh",
"powered by Matrix": "bazuar në Matrix",
"Welcome to Riot.im": "Mirë se vini te Riot.im",
"Decentralised, encrypted chat &amp; collaboration powered by [matrix]": "Decentralised, encrypted Fjalosje &amp; bashkëpunim i decentralizuar, i fshehtëzuar, bazuar në [matrix]",
"Decentralised, encrypted chat &amp; collaboration powered by [matrix]": "Fjalosje &amp; bashkëpunim i decentralizuar, i fshehtëzuar, bazuar në [matrix]",
"Search the room directory": "Kërkoni te drejtoria e dhomave",
"Lots of rooms already exist in Matrix, linked to existing networks (Slack, IRC, Gitter etc) or independent. Check out the directory!": "Ka tashmë plot dhoma në Matrix, të lidhura me rrjete ekzistues (Slack, IRC, Gitter, etj) ose të pavarur. Hidhini një sy listës!",
"Chat with Riot Bot": "Fjalosuni me Robotin Riot",
@@ -27,12 +27,13 @@
"Support for those using and running matrix-appservice-irc": "Asistencë për ata që përdorin dhe xhirojnë matrix-appservice-irc",
"Building services on Matrix": "Ndërtim shërbimesh mbi Matrix",
"Support for those using the Matrix spec": "Asistencë për ata që përdorin specifikimet Matrix",
"Design and implementation of E2E in Matrix": "Konceptimi dhe sendërtimi i E2E në Matrix",
"Design and implementation of E2E in Matrix": "Konceptimi dhe sendërtimi i E2E-s në Matrix",
"Implementing VR services with Matrix": "Sendërtim shërbimesh VR me Matrix-in",
"Implementing VoIP services with Matrix": "Sendërtim shërbimesh VoIP me Matrix-in",
"Discussion of the Identity Service API": "Diskutime mbi Identity Service API",
"Discussion of the Identity Service API": "Diskutime mbi API-n Identity Service",
"Support for those using, running and writing other bridges": "Asistencë për ata që përdorin, xhirojnë ose programojnë ura të tjera",
"Contributing code to Matrix and Riot": "Kontribut me kod te Matrix dhe te Riot",
"Dev chat for the Riot/Web dev team": "Fjalosje mbi zhvillimin, për ekipin e zhvilluesve të Riot/Web-i",
"Dev chat for the Dendrite dev team": "Fjalosje zhvillimi, për ekipin e zhvilluesve të Dendrite-it"
"Dev chat for the Dendrite dev team": "Fjalosje mbi zhvillimi, për ekipin e zhvilluesve të Dendrite-it",
"Co-ordination for Riot translators": "Bashkërendim për përkthyes të Riot-it"
}

65
src/vector/getconfig.js Normal file
View File

@@ -0,0 +1,65 @@
/*
Copyright 2018 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 Promise from 'bluebird';
import request from 'browser-request';
export async function getVectorConfig(relativeLocation) {
if (relativeLocation === undefined) relativeLocation = '';
if (relativeLocation !== '' && !relativeLocation.endsWith('/')) relativeLocation += '/';
try {
const configJson = await getConfig(`${relativeLocation}config.${document.domain}.json`);
// 404s succeed with an empty json config, so check that there are keys
if (Object.keys(configJson).length === 0) {
throw new Error(); // throw to enter the catch
}
return configJson;
} catch (e) {
return await getConfig(relativeLocation + "config.json");
}
}
function getConfig(configJsonFilename) {
return new Promise(function(resolve, reject) {
request(
{ method: "GET", url: configJsonFilename },
(err, response, body) => {
if (err || response.status < 200 || response.status >= 300) {
// Lack of a config isn't an error, we should
// just use the defaults.
// Also treat a blank config as no config, assuming
// the status code is 0, because we don't get 404s
// from file: URIs so this is the only way we can
// not fail if the file doesn't exist when loading
// from a file:// URI.
if (response) {
if (response.status == 404 || (response.status == 0 && body == '')) {
resolve({});
}
}
reject({err: err, response: response});
return;
}
// We parse the JSON ourselves rather than use the JSON
// parameter, since this throws a parse error on empty
// which breaks if there's no config.json and we're
// loading from the filesystem (see above).
resolve(JSON.parse(body));
},
);
});
}

View File

@@ -37,6 +37,14 @@
<section id="matrixchat" style="height: 100%;"></section>
<noscript>Sorry, Riot requires JavaScript to be enabled.</noscript> <!-- TODO: Translate this? -->
<% for (var i=0; i < htmlWebpackPlugin.files.js.length; i++) {
if (_.endsWith(htmlWebpackPlugin.files.js[i], 'olm.js')) {
var array = htmlWebpackPlugin.files.js;
htmlWebpackPlugin.files.js.unshift(htmlWebpackPlugin.files.js[i]);
htmlWebpackPlugin.files.js.splice(i, 1);
}
}
for (var i=0; i < htmlWebpackPlugin.files.js.length; i++) {
// Not a particularly graceful way of not putting the indexeddb worker script
// into the main page
if (_.endsWith(htmlWebpackPlugin.files.js[i], 'indexeddb-worker.js')) {
@@ -73,6 +81,6 @@
</audio>
<audio id="remoteAudio"></audio>
<!-- let CSS themes pass constants to the app -->
<div id="mx_theme_accentColor"></div><div id="mx_theme_secondaryAccentColor"/></div><div id="mx_theme_tertiaryAccentColor"/></div>
<div id="mx_theme_accentColor"></div><div id="mx_theme_secondaryAccentColor"></div><div id="mx_theme_tertiaryAccentColor"></div>
</body>
</html>

View File

@@ -1,6 +1,7 @@
/*
Copyright 2015, 2016 OpenMarket Ltd
Copyright 2017 Vector Creations Ltd
Copyright 2018 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.
@@ -15,8 +16,6 @@ See the License for the specific language governing permissions and
limitations under the License.
*/
'use strict';
// Require common CSS here; this will make webpack process it into bundle.css.
// Our own CSS (which is themed) is imported via separate webpack entry points
// in webpack.config.js
@@ -25,36 +24,22 @@ require('gfm.css/gfm.css');
require('highlight.js/styles/github.css');
require('draft-js/dist/Draft.css');
const rageshake = require("matrix-react-sdk/lib/rageshake/rageshake");
rageshake.init().then(() => {
console.log("Initialised rageshake: See https://bugs.chromium.org/p/chromium/issues/detail?id=583193 to fix line numbers on Chrome.");
rageshake.cleanup();
}, (err) => {
console.error("Failed to initialise rageshake: " + err);
});
window.addEventListener('beforeunload', (e) => {
console.log('riot-web closing');
// try to flush the logs to indexeddb
rageshake.flush();
});
// add React and ReactPerf to the global namespace, to make them easier to
// access via the console
global.React = require("react");
import React from 'react';
// add React and ReactPerf to the global namespace, to make them easier to
// access via the console
global.React = React;
if (process.env.NODE_ENV !== 'production') {
global.Perf = require("react-addons-perf");
global.Perf = require('react-addons-perf');
}
var RunModernizrTests = require("./modernizr"); // this side-effects a global
var ReactDOM = require("react-dom");
var sdk = require("matrix-react-sdk");
const PlatformPeg = require("matrix-react-sdk/lib/PlatformPeg");
import RunModernizrTests from './modernizr'; // this side-effects a global
import ReactDOM from 'react-dom';
import sdk from 'matrix-react-sdk';
import PlatformPeg from 'matrix-react-sdk/lib/PlatformPeg';
sdk.loadSkin(require('../component-index'));
var VectorConferenceHandler = require('matrix-react-sdk/lib/VectorConferenceHandler');
import VectorConferenceHandler from 'matrix-react-sdk/lib/VectorConferenceHandler';
import Promise from 'bluebird';
var request = require('browser-request');
import request from 'browser-request';
import * as languageHandler from 'matrix-react-sdk/lib/languageHandler';
// Also import _t directly so we can call it just `_t` as this is what gen-i18n.js expects
import { _t } from 'matrix-react-sdk/lib/languageHandler';
@@ -69,12 +54,33 @@ import SettingsStore, {SettingLevel} from "matrix-react-sdk/lib/settings/Setting
import Tinter from 'matrix-react-sdk/lib/Tinter';
import SdkConfig from "matrix-react-sdk/lib/SdkConfig";
var lastLocationHashSet = null;
import rageshake from "matrix-react-sdk/lib/rageshake/rageshake";
var CallHandler = require("matrix-react-sdk/lib/CallHandler");
CallHandler.setConferenceHandler(VectorConferenceHandler);
import CallHandler from 'matrix-react-sdk/lib/CallHandler';
MatrixClientPeg.setIndexedDbWorkerScript(window.vector_indexeddb_worker_script);
import {getVectorConfig} from './getconfig';
let lastLocationHashSet = null;
// Disable warnings for now: we use deprecated bluebird functions
// and need to migrate, but they spam the console with warnings.
Promise.config({warnings: false});
function initRageshake() {
rageshake.init().then(() => {
console.log("Initialised rageshake: See https://bugs.chromium.org/p/chromium/issues/detail?id=583193 to fix line numbers on Chrome.");
window.addEventListener('beforeunload', (e) => {
console.log('riot-web closing');
// try to flush the logs to indexeddb
rageshake.flush();
});
rageshake.cleanup();
}, (err) => {
console.error("Failed to initialise rageshake: " + err);
});
}
function checkBrowserFeatures(featureList) {
if (!window.Modernizr) {
@@ -100,11 +106,6 @@ function checkBrowserFeatures(featureList) {
return featureComplete;
}
var validBrowser = checkBrowserFeatures([
"displaytable", "flexbox", "es5object", "es5function", "localstorage",
"objectfit", "indexeddb", "webworkers",
]);
// Parse the given window.location and return parameters that can be used when calling
// MatrixChat.showScreen(screen, params)
function getScreenFromLocation(location) {
@@ -135,7 +136,7 @@ function onHashChange(ev) {
// This will be called whenever the SDK changes screens,
// so a web page can update the URL bar appropriately.
var onNewScreen = function(screen) {
function onNewScreen(screen) {
console.log("newscreen "+screen);
var hash = '#/' + screen;
lastLocationHashSet = hash;
@@ -151,7 +152,7 @@ var onNewScreen = function(screen) {
// If we're in electron, we should never pass through a file:// URL otherwise
// the identity server will try to 302 the browser to it, which breaks horribly.
// so in that instance, hardcode to use riot.im/app for now instead.
var makeRegistrationUrl = function(params) {
function makeRegistrationUrl(params) {
let url;
if (window.location.protocol === "file:") {
url = 'https://riot.im/app/#/register';
@@ -177,40 +178,36 @@ var makeRegistrationUrl = function(params) {
return url;
}
window.addEventListener('hashchange', onHashChange);
function getConfig(configJsonFilename) {
let deferred = Promise.defer();
request(
{ method: "GET", url: configJsonFilename },
(err, response, body) => {
if (err || response.status < 200 || response.status >= 300) {
// Lack of a config isn't an error, we should
// just use the defaults.
// Also treat a blank config as no config, assuming
// the status code is 0, because we don't get 404s
// from file: URIs so this is the only way we can
// not fail if the file doesn't exist when loading
// from a file:// URI.
if (response) {
if (response.status == 404 || (response.status == 0 && body == '')) {
deferred.resolve({});
return new Promise(function(resolve, reject) {
request(
{ method: "GET", url: configJsonFilename },
(err, response, body) => {
if (err || response.status < 200 || response.status >= 300) {
// Lack of a config isn't an error, we should
// just use the defaults.
// Also treat a blank config as no config, assuming
// the status code is 0, because we don't get 404s
// from file: URIs so this is the only way we can
// not fail if the file doesn't exist when loading
// from a file:// URI.
if (response) {
if (response.status == 404 || (response.status == 0 && body == '')) {
resolve({});
}
}
reject({err: err, response: response});
return;
}
deferred.reject({err: err, response: response});
return;
}
// We parse the JSON ourselves rather than use the JSON
// parameter, since this throws a parse error on empty
// which breaks if there's no config.json and we're
// loading from the filesystem (see above).
deferred.resolve(JSON.parse(body));
}
);
return deferred.promise;
// We parse the JSON ourselves rather than use the JSON
// parameter, since this throws a parse error on empty
// which breaks if there's no config.json and we're
// loading from the filesystem (see above).
resolve(JSON.parse(body));
},
);
});
}
function onTokenLoginCompleted() {
@@ -226,6 +223,12 @@ function onTokenLoginCompleted() {
}
async function loadApp() {
initRageshake();
MatrixClientPeg.setIndexedDbWorkerScript(window.vector_indexeddb_worker_script);
CallHandler.setConferenceHandler(VectorConferenceHandler);
window.addEventListener('hashchange', onHashChange);
await loadLanguage();
const fragparts = parseQsFromFragment(window.location);
@@ -239,15 +242,7 @@ async function loadApp() {
let configJson;
let configError;
try {
try {
configJson = await getConfig(`config.${document.domain}.json`);
// 404s succeed with an empty json config, so check that there are keys
if (Object.keys(configJson).length === 0) {
throw new Error(); // throw to enter the catch
}
} catch (e) {
configJson = await getConfig("config.json");
}
configJson = await getVectorConfig();
} catch (e) {
configError = e;
}
@@ -258,34 +253,18 @@ async function loadApp() {
// don't try to redirect to the native apps if we're
// verifying a 3pid (but after we've loaded the config)
const preventRedirect = Boolean(fragparts.params.client_secret);
// or if the user is following a deep link
// (https://github.com/vector-im/riot-web/issues/7378)
const preventRedirect = fragparts.params.client_secret || fragparts.location.length > 0;
if (!preventRedirect) {
if (/iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream) {
// FIXME: ugly status hardcoding
if (SettingsStore.getValue("theme") === 'status') {
window.location = "https://status.im/join-riot.html";
const isIos = /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream;
const isAndroid = /Android/.test(navigator.userAgent);
if (isIos || isAndroid) {
if (!document.cookie.split(';').some((c) => c.startsWith('mobile_redirect_to_guide'))) {
window.location = "mobile_guide/";
return;
}
else {
if (confirm(_t("Riot is not supported on mobile web. Install the app?"))) {
window.location = "https://itunes.apple.com/us/app/vector.im/id1083446067";
return;
}
}
}
else if (/Android/.test(navigator.userAgent)) {
// FIXME: ugly status hardcoding
if (SettingsStore.getValue("theme") === 'status') {
window.location = "https://status.im/join-riot.html";
return;
}
else {
if (confirm(_t("Riot is not supported on mobile web. Install the app?"))) {
window.location = "https://play.google.com/store/apps/details?id=im.vector.alpha";
return;
}
}
}
}
@@ -310,12 +289,23 @@ async function loadApp() {
// in case the Tinter.tint() in MatrixChat fires before the
// CSS has actually loaded (which in practice happens)...
// FIXME: we should probably block loading the app or even
// showing a spinner until the theme is loaded, to avoid
// flashes of unstyled content.
a.onload = () => {
// This if fixes Tinter.setTheme to not fire on Firefox
// in case it is the first time loading Riot.
// `InstallTrigger` is a Object which only exists on Firefox
// (it is used for their Plugins) and can be used as a
// feature check.
// Firefox loads css always before js. This is why we dont use
// onload or it's EventListener as thoose will never trigger.
if (typeof InstallTrigger !== 'undefined') {
Tinter.setTheme(theme);
};
} else {
// FIXME: we should probably block loading the app or even
// showing a spinner until the theme is loaded, to avoid
// flashes of unstyled content.
a.onload = () => {
Tinter.setTheme(theme);
};
}
} else {
// Firefox requires this to not be done via `setAttribute`
// or via HTML.
@@ -325,17 +315,19 @@ async function loadApp() {
}
}
if (window.localStorage && window.localStorage.getItem('mx_accepts_unsupported_browser')) {
console.log('User has previously accepted risks in using an unsupported browser');
validBrowser = true;
}
const validBrowser = checkBrowserFeatures([
"displaytable", "flexbox", "es5object", "es5function", "localstorage",
"objectfit", "indexeddb", "webworkers",
]);
const acceptInvalidBrowser = window.localStorage && window.localStorage.getItem('mx_accepts_unsupported_browser');
console.log("Vector starting at "+window.location);
if (configError) {
window.matrixChat = ReactDOM.render(<div className="error">
Unable to load config file: please refresh the page to try again.
</div>, document.getElementById('matrixchat'));
} else if (validBrowser) {
} else if (validBrowser || acceptInvalidBrowser) {
const platform = PlatformPeg.get();
platform.startUpdater();
@@ -362,7 +354,6 @@ async function loadApp() {
window.matrixChat = ReactDOM.render(
<CompatibilityPage onAccept={function() {
if (window.localStorage) window.localStorage.setItem('mx_accepts_unsupported_browser', true);
validBrowser = true;
console.log("User accepts the compatibility risks.");
loadApp();
}} />,

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,24 @@
import {getVectorConfig} from '../getconfig';
function onBackToRiotClick() {
document.cookie = 'mobile_redirect_to_guide=false;path=/';
window.location.href = '../';
}
async function initPage() {
document.getElementById('back_to_riot_button').onclick = onBackToRiotClick;
const config = await getVectorConfig('..');
let hsUrl;
if (config && config['default_hs_url']) {
hsUrl = config['default_hs_url'];
}
if (hsUrl && !hsUrl.endsWith('/')) hsUrl += '/';
if (hsUrl && hsUrl !== 'https://matrix.org/') {
document.getElementById('step2_container').style.display = 'block';
document.getElementById('hs_url').innerHTML = hsUrl;
document.getElementById('step_login_header').innerHTML= 'Step 3: Register or Log in';
}
}
initPage();

View File

@@ -143,7 +143,6 @@ export default class ElectronPlatform extends VectorBasePlatform {
{
body: msg,
icon: avatarUrl,
tag: 'vector',
silent: true, // we play our own sounds
},
);

View File

@@ -68,11 +68,11 @@ export default class WebPlatform extends VectorBasePlatform {
// annoyingly, the latest spec says this returns a
// promise, but this is only supported in Chrome 46
// and Firefox 47, so adapt the callback API.
const defer = Promise.defer();
global.Notification.requestPermission((result) => {
defer.resolve(result);
return new Promise(function(resolve, reject) {
global.Notification.requestPermission((result) => {
resolve(result);
});
});
return defer.promise;
}
displayNotification(title: string, msg: string, avatarUrl: string, room: Object) {
@@ -103,31 +103,31 @@ export default class WebPlatform extends VectorBasePlatform {
}
_getVersion(): Promise<string> {
const deferred = Promise.defer();
// We add a cachebuster to the request to make sure that we know about
// the most recent version on the origin server. That might not
// actually be the version we'd get on a reload (particularly in the
// presence of intermediate caching proxies), but still: we're trying
// to tell the user that there is a new version.
request(
{
method: "GET",
url: "version",
qs: { cachebuster: Date.now() },
},
(err, response, body) => {
if (err || response.status < 200 || response.status >= 300) {
if (err === null) err = { status: response.status };
deferred.reject(err);
return;
}
const ver = body.trim();
deferred.resolve(ver);
},
);
return deferred.promise;
return new Promise(function(resolve, reject) {
request(
{
method: "GET",
url: "version",
qs: { cachebuster: Date.now() },
},
(err, response, body) => {
if (err || response.status < 200 || response.status >= 300) {
if (err === null) err = { status: response.status };
reject(err);
return;
}
const ver = body.trim();
resolve(ver);
},
);
});
}
getAppVersion(): Promise<string> {

View File

@@ -13,6 +13,8 @@ module.exports = {
"bundle": ["babel-polyfill", "./src/vector/index.js"],
"indexeddb-worker": "./src/vector/indexeddb-worker.js",
"mobileguide": "./src/vector/mobile_guide/index.js",
// We ship olm.js as a separate lump of javascript. This makes it get
// loaded via a separate <script/> tag in index.html (which loads it
// into the browser global `Olm`, where js-sdk expects to find it).
@@ -28,29 +30,40 @@ module.exports = {
"theme-status": "./res/themes/status/css/status.scss",
},
module: {
preLoaders: [
{ test: /\.js$/, loader: "source-map-loader" },
],
loaders: [
{ test: /\.json$/, loader: "json" },
{ test: /\.js$/, loader: "babel", include: path.resolve('./src') },
rules: [
{ enforce: 'pre', test: /\.js$/, use: "source-map-loader", exclude: /node_modules/, },
{ test: /\.js$/, use: "babel-loader", include: path.resolve(__dirname, 'src') },
{
test: /\.scss$/,
// 1. postcss-loader turns the SCSS into normal CSS.
// 2. css-raw-loader turns the CSS into a javascript module
// 2. raw-loader turns the CSS into a javascript module
// whose default export is a string containing the CSS.
// (css-raw-loader is similar to css-loader, but the latter
// (raw-loader is similar to css-loader, but the latter
// would also drag in the imgs and fonts that our CSS refers to
// as webpack inputs.)
// 3. ExtractTextPlugin turns that string into a separate asset.
loader: ExtractTextPlugin.extract("css-raw-loader!postcss-loader?config=postcss.config.js"),
use: ExtractTextPlugin.extract({
use: [
"raw-loader",
{
loader: 'postcss-loader',
options: {
config: {
path: './postcss.config.js'
}
}
}
],
}),
},
{
// this works similarly to the scss case, without postcss.
test: /\.css$/,
loader: ExtractTextPlugin.extract("css-raw-loader"),
use: ExtractTextPlugin.extract({
use: "raw-loader"
}),
},
],
noParse: [
// for cross platform compatibility use [\\\/] as the path separator
@@ -128,10 +141,16 @@ module.exports = {
// bottom of <head> or the bottom of <body>, and I'm a bit scared
// about moving them.
inject: false,
excludeChunks: ['mobileguide'],
vars: {
og_image_url: og_image_url,
},
}),
new HtmlWebpackPlugin({
template: './src/vector/mobile_guide/index.html',
filename: 'mobile_guide/index.html',
chunks: ['mobileguide'],
}),
],
devtool: 'source-map',
@@ -144,6 +163,12 @@ module.exports = {
// don't fill the console up with a mahoosive list of modules
chunks: false,
},
// hot mdule replacement doesn't work (I think we'd need react-hot-reload?)
// so webpack-dev-server reloads the page on every update which is quite
// tedious in Riot since that can take a while.
hot: false,
inline: false,
},
};