Compare commits

..

781 Commits

Author SHA1 Message Date
RiotRobot
46b75e8c3c v1.5.0 2019-10-18 14:57:44 +01:00
RiotRobot
fd5bb40560 Prepare changelog for v1.5.0 2019-10-18 14:57:44 +01:00
RiotRobot
6d32d0b322 v1.5.0 2019-10-18 14:55:00 +01:00
RiotRobot
e275441701 Upgrade to JS SDK v2.4.2 and React SDK v1.7.0 2019-10-18 14:54:02 +01:00
J. Ryan Stinnett
748513aa9a Merge pull request #11158 from vector-im/jryans/v1.5.0/windows-signing
Port Windows signing to release
2019-10-18 14:26:57 +01:00
J. Ryan Stinnett
77731b5674 Merge 'dbkr/windows_signing' into v1.5.0 2019-10-18 14:24:57 +01:00
David Baker
94e721acf2 Update cert name & do bash globbing correctly 2019-10-18 10:31:45 +01:00
David Baker
3545b2751d typo
Co-Authored-By: Travis Ralston <travpc@gmail.com>
2019-10-18 10:08:43 +01:00
David Baker
d6884d5b0f Make window signing work
Almost certainly won't work for cert names with spaces in them
2019-10-11 16:08:04 +01:00
David Baker
1ff06c4be4 Missing space
also don't print the signing command line as it has the token password
2019-10-11 12:21:28 +01:00
David Baker
5a7efcd738 Sign the main executable on windows
and automate the signing of the installers
2019-10-11 12:01:50 +01:00
David Baker
071223120b Warn that this might be a while 2019-10-11 10:45:42 +01:00
David Baker
0259eb6419 Go back to upstream electron-notarize
It doesn't work as a github dependency because the typescript
doesn't get built.
2019-10-10 18:34:26 +01:00
David Baker
2bab328f8d Check everything's in place for the notarising dance
...before we start the build process.
2019-10-10 15:32:17 +01:00
David Baker
a7d1d9880b Use my fork of electron-notarize
if only to test it
2019-10-10 14:56:35 +01:00
David Baker
29f186bc18 add electron-notarize 2019-10-10 11:57:39 +01:00
David Baker
7faba49f66 fix quotes 2019-10-10 11:53:49 +01:00
RiotRobot
561d0c9a4c v1.5.0-rc.1 2019-10-09 17:37:00 +01:00
RiotRobot
358d27f2ba Prepare changelog for v1.5.0-rc.1 2019-10-09 17:37:00 +01:00
RiotRobot
f89fd9c888 v1.5.0-rc.1 2019-10-09 17:35:48 +01:00
RiotRobot
b18e4f079f js-sdk & react-sdk rc.1 2019-10-09 17:00:22 +01:00
David Baker
bad97db302 remove random spaces 2019-10-09 16:40:31 +01:00
David Baker
d120c3b93e Merge pull request #11104 from RiotTranslateBot/weblate-riot-web-riot-web
Update from Weblate
2019-10-09 16:37:30 +01:00
David Baker
ff70339aad Working branch for notarisation 2019-10-09 16:29:24 +01:00
Weblate
c7d8a24f4e Merge branch 'origin/develop' into Weblate. 2019-10-09 14:48:22 +00:00
David Baker
d903214ddf Merge pull request #11103 from vector-im/dbkr/olm_session_describe
Bump Olm to 3.1.4 for olm_session_describe
2019-10-09 15:48:18 +01:00
David Baker
b6d1d0bf5d Bump Olm to 3.1.4 for olm_session_describe 2019-10-09 15:40:25 +01:00
Weblate
4113d6a2f3 Merge branch 'origin/develop' into Weblate. 2019-10-09 14:05:40 +00:00
J. Ryan Stinnett
56c0d3ec33 Merge pull request #11098 from vector-im/jryans/start-js-prod-mode
Enable Webpack production mode for start:js:prod
2019-10-09 15:05:35 +01:00
Claus Conrad
1a36160c90 Translated using Weblate (Danish)
Currently translated at 100.0% (24 of 24 strings)

Translation: Riot Web/riot-web
Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/da/
2019-10-09 11:52:02 +00:00
J. Ryan Stinnett
fce5b4dd78 Enable Webpack production mode for start:js:prod
The (rarely used) `start:js:prod` script for running production mode locally
failed to set Webpack into production mode, so things like minification would be
skipped.
2019-10-09 10:59:44 +01:00
Bruno Windels
57e597ec13 Merge pull request #9919 from vector-im/bwindels/settings-config-doc
add settingDefaults to sample config
2019-10-07 14:10:51 +00:00
Bruno Windels
259ca06f73 add example default setting 2019-10-07 14:46:50 +02:00
Travis Ralston
c0a148c018 Merge pull request #11062 from MichaelKohler/fix-readme-config-mention
Add config.json copy instruction to 'Development' as well
2019-10-06 09:55:15 -06:00
Michael Kohler
9e27cb713f Add config.json copy instruction to 'Development' as well 2019-10-06 13:04:20 +02:00
David Baker
644a46bdfd Merge pull request #11055 from vector-im/revert-11050-dbkr/yarn_upgrade_20191004
Revert "Run yarn upgrade"
2019-10-04 16:20:33 +01:00
David Baker
b99bdbcd4e Revert "Run yarn upgrade" 2019-10-04 16:19:29 +01:00
David Baker
e0c2131869 Merge pull request #11050 from vector-im/dbkr/yarn_upgrade_20191004
Run yarn upgrade
2019-10-04 15:08:26 +01:00
David Baker
9981f897a4 Merge pull request #11052 from vector-im/dbkr/persist_storage_on_desktop
Request persistent storage on Electron
2019-10-04 15:01:50 +01:00
David Baker
57672ad384 Request persistent storage on Electron
It's still not 100% clear whether storage is always persistent on
Electron, but we seem to be getting reports of it being deleted in
the wild on Electron, so let's try calling the API to request
persistent storage. It won't pop up a dialog on Electron. In the
worst case it will give us some logging so we know what the API calls
return.

We could do this on non-desktop too but it's a bit of a mess because
Firefox prompts the user but Chrome makes a decision itself based on
how much the user visits the site.
2019-10-04 12:17:01 +01:00
Bruno Windels
26cbd16b40 Merge pull request #11047 from vector-im/travis/enable-cider
Remove docs for CIDER feature
2019-10-04 10:24:57 +00:00
David Baker
64a961ec00 Run yarn upgrade 2019-10-04 11:13:03 +01:00
David Baker
af57c9e321 js-sdk & react-sdk develop 2019-10-04 11:08:08 +01:00
RiotRobot
685d913171 v1.4.2 2019-10-04 10:41:06 +01:00
RiotRobot
b41452162c Prepare changelog for v1.4.2 2019-10-04 10:41:06 +01:00
RiotRobot
ef473f930a v1.4.2 2019-10-04 10:40:15 +01:00
RiotRobot
b333058b57 released react-sdk 2019-10-04 10:39:53 +01:00
David Baker
7df140c164 electron version bump 2019-10-04 10:21:27 +01:00
David Baker
ef1fd9e428 Merge remote-tracking branch 'origin/develop' into release-v1.4.2 2019-10-04 10:17:56 +01:00
Travis Ralston
98b4681dc5 Remove docs for CIDER feature
See https://github.com/matrix-org/matrix-react-sdk/pull/3519
2019-10-03 23:21:52 -06:00
David Baker
b312b4d502 Merge pull request #11031 from vector-im/travis/mem-docs
Document troubleshooting for memory leaks and getting profiles
2019-10-03 11:04:39 +01:00
Travis Ralston
509ed81294 Document troubleshooting for memory leaks and getting profiles
People find this useful.
2019-10-02 09:06:13 -06:00
RiotRobot
1ba2731391 v1.4.2-rc.1 2019-10-02 10:33:37 +01:00
RiotRobot
e599fafdfd Prepare changelog for v1.4.2-rc.1 2019-10-02 10:33:37 +01:00
RiotRobot
caac5466ba v1.4.2-rc.1 2019-10-02 10:32:13 +01:00
David Baker
d83c942fe5 released js-sdk & react-sdk 2019-10-02 10:30:13 +01:00
Bruno Windels
c0a0466b6c Merge pull request #11017 from vector-im/bwindels/custom-themes-mvp
Custom themes MVP
2019-10-02 09:14:18 +00:00
Bruno Windels
31dc423d1d line wrap 2019-10-02 09:04:36 +02:00
Bruno Windels
beaf6b0e0d document settingsDefault now I'm using it and had to look it up again 2019-10-01 17:01:45 +02:00
Bruno Windels
4273f2cc55 add support for dark custom theme 2019-10-01 17:01:16 +02:00
Travis Ralston
6173841768 Merge pull request #11007 from vector-im/travis/permalinks
Document permalinkPrefix setting
2019-10-01 08:41:29 -06:00
J. Ryan Stinnett
f7a08e8d27 Change back to develop branch for deps 2019-10-01 13:32:36 +01:00
RiotRobot
be0b4e9072 v1.4.1 2019-10-01 11:52:23 +01:00
RiotRobot
57e4e4ee0d Prepare changelog for v1.4.1 2019-10-01 11:52:22 +01:00
RiotRobot
2bb24892df v1.4.1 2019-10-01 11:48:11 +01:00
RiotRobot
55fe24e72c Upgrade to React SDK 1.6.1 and JS SDK 2.4.1 2019-10-01 11:47:44 +01:00
J. Ryan Stinnett
1add492a11 Merge pull request #11010 from RiotTranslateBot/weblate-riot-web-riot-web
Update from Weblate
2019-10-01 11:22:16 +01:00
Sava Radoš
3de2b7fe43 Translated using Weblate (Serbian)
Currently translated at 100.0% (24 of 24 strings)

Translation: Riot Web/riot-web
Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/sr/
2019-10-01 10:21:04 +00:00
Travis Ralston
1aa48be01e Document permalinkPrefix setting
There's no sample config changes because we don't want to encourage people using this setting. It is for very limited scenarios only: unfederated servers.
2019-09-30 13:05:44 -06:00
Bruno Windels
5ead6554b3 add new theme to build 2019-09-30 11:00:14 +02:00
David Baker
ae7ccb613e Merge pull request #11001 from RiotTranslateBot/weblate-riot-web-riot-web
Update from Weblate
2019-09-30 09:17:51 +01:00
Hello World
8cbac6207d Translated using Weblate (Thai)
Currently translated at 75.0% (18 of 24 strings)

Translation: Riot Web/riot-web
Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/th/
2019-09-30 08:14:16 +00:00
Sava Radoš
6e70c5faf6 Translated using Weblate (Serbian)
Currently translated at 79.2% (19 of 24 strings)

Translation: Riot Web/riot-web
Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/sr/
2019-09-30 08:14:15 +00:00
Bruno P. Kinoshita
c555516f29 Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (24 of 24 strings)

Translation: Riot Web/riot-web
Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/pt_BR/
2019-09-30 08:14:15 +00:00
Nils J. Haugen
55491d1198 Translated using Weblate (Norwegian Nynorsk)
Currently translated at 100.0% (24 of 24 strings)

Translation: Riot Web/riot-web
Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/nn/
2019-09-30 08:14:15 +00:00
Claus Conrad
a06358779c Translated using Weblate (Danish)
Currently translated at 100.0% (24 of 24 strings)

Translation: Riot Web/riot-web
Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/da/
2019-09-30 08:14:15 +00:00
J. Ryan Stinnett
c7d3740cbb Merge pull request #10980 from vector-im/jryans/deps-2019-09-27
Upgrade deps
2019-09-27 16:02:03 +01:00
J. Ryan Stinnett
ee827c917e Upgrade deps 2019-09-27 15:18:47 +01:00
J. Ryan Stinnett
6094b8be9a Change back to develop branch for deps 2019-09-27 14:46:05 +01:00
J. Ryan Stinnett
54767b5a65 Clean Yarn cache during Electron builds 2019-09-27 12:49:13 +01:00
RiotRobot
97a2a6a168 v1.4.0 2019-09-27 12:36:45 +01:00
RiotRobot
aca687dc12 Prepare changelog for v1.4.0 2019-09-27 12:36:45 +01:00
RiotRobot
f2648927f2 v1.4.0 2019-09-27 12:32:52 +01:00
RiotRobot
d76ed50625 Upgrade to React SDK 1.6.0 and JS SDK 2.4.0 2019-09-27 12:09:11 +01:00
RiotRobot
845590ed68 v1.4.0-rc.2 2019-09-26 12:21:17 +01:00
RiotRobot
0c125c1386 Prepare changelog for v1.4.0-rc.2 2019-09-26 12:21:17 +01:00
RiotRobot
0a884ab20b v1.4.0-rc.2 2019-09-26 12:18:39 +01:00
RiotRobot
0e6b3eab11 Upgrade to React SDK 1.6.0-rc.2 2019-09-26 12:15:43 +01:00
RiotRobot
db5c17b518 Add upgrade line to changelog 2019-09-26 12:13:08 +01:00
RiotRobot
1713f49e07 v1.4.0-rc.1 2019-09-25 17:49:29 +01:00
RiotRobot
04a6b4448f Prepare changelog for v1.4.0-rc.1 2019-09-25 17:49:29 +01:00
RiotRobot
6afd7e3b72 v1.4.0-rc.1 2019-09-25 17:43:47 +01:00
RiotRobot
6db826005c Upgrade to React SDK 1.6.0-rc.1 and JS SDK 2.4.0-rc.1 2019-09-25 17:42:57 +01:00
J. Ryan Stinnett
3ee8098eb2 Upgrade to latest Electron 6.x 2019-09-25 17:07:52 +01:00
J. Ryan Stinnett
ce33ae1527 Merge pull request #10961 from RiotTranslateBot/weblate-riot-web-riot-web
Update from Weblate
2019-09-25 17:03:15 +01:00
Weblate
27ed1e94e9 Merge branch 'origin/develop' into Weblate. 2019-09-22 15:51:47 +00:00
Michael Telatynski
0c187b4459 Merge pull request #10929 from vector-im/t3chguy/don't_log_query_params
Don't log query parameters as they may contain secrets
2019-09-22 16:51:42 +01:00
Tuomas Hietala
5315519655 Translated using Weblate (Finnish)
Currently translated at 100.0% (24 of 24 strings)

Translation: Riot Web/riot-web
Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/fi/
2019-09-21 17:51:01 +00:00
Michael Telatynski
1018dc7ced Don't log query parameters as they may contain secrets
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2019-09-21 17:44:58 +01:00
RiotRobot
6bd089c350 Merge branch 'master' into develop 2019-09-19 17:54:39 +01:00
RiotRobot
ab3f1f829a v1.3.6 2019-09-19 17:51:56 +01:00
RiotRobot
6998aa94fd Prepare changelog for v1.3.6 2019-09-19 17:51:56 +01:00
Weblate
9e3bb09ef1 Merge branch 'origin/develop' into Weblate. 2019-09-19 16:51:43 +00:00
RiotRobot
5feb4f9c89 v1.3.6 2019-09-19 17:50:59 +01:00
David Baker
0e406c5440 Merge pull request #10920 from vector-im/dbkr/fix_originmigrator_electron6_2
Fix origin migrator for SSO logins
2019-09-19 17:46:57 +01:00
David Baker
42b756952e Typo
Co-Authored-By: J. Ryan Stinnett <jryans@gmail.com>
2019-09-19 17:42:43 +01:00
David Baker
6464bfe850 Remove the other listener when one fires 2019-09-19 17:41:08 +01:00
David Baker
835d7bfb9d Fix origin migrator for SSO logins
For some reason this was trying to close the same window twice
when the app was reloaded after an SSO login. Possibly also a
problem on electron < 6 - presumably a race condition.
2019-09-19 17:20:54 +01:00
Weblate
d40e57ad27 Merge branch 'origin/develop' into Weblate. 2019-09-18 20:47:24 +00:00
Travis Ralston
e008d7cbeb Merge pull request #10906 from ptman/patch-1
Document more shortcuts
2019-09-18 14:47:19 -06:00
Paul Tötterman
481bc2cb92 Update docs/shortcuts.md
Co-Authored-By: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com>
2019-09-18 13:32:24 +03:00
Paul Tötterman
2eddda1843 Update docs/shortcuts.md
Co-Authored-By: Andrew Morgan <1342360+anoadragon453@users.noreply.github.com>
2019-09-18 13:21:23 +03:00
Paul Tötterman
55c809e839 Document more shortcuts
I'm probably missing some still
2019-09-18 11:55:44 +03:00
Weblate
f50a95d723 Merge branch 'origin/develop' into Weblate. 2019-09-17 17:09:47 +00:00
Travis Ralston
e8fbd77a61 Merge pull request #10893 from vector-im/travis/bump2
Point to #develop and use the same gemini-scrollbar version as the react-sdk
2019-09-17 11:09:43 -06:00
Travis Ralston
43d85521c4 Upgrade to develop dependencies 2019-09-17 11:05:05 -06:00
Travis Ralston
e88c5a0da7 Use the same gemini-scrollbar version as the react-sdk
Might fix an issue?
2019-09-17 09:35:14 -06:00
Weblate
d9a90eed24 Merge branch 'origin/develop' into Weblate. 2019-09-17 13:05:54 +00:00
J. Ryan Stinnett
c212b525d2 Update yarn.lock 2019-09-17 14:05:41 +01:00
RiotRobot
b0934c9121 Merge branch 'master' into develop 2019-09-16 17:59:09 +01:00
Weblate
f8cfe69b5c Merge branch 'origin/develop' into Weblate. 2019-09-16 16:56:28 +00:00
RiotRobot
00130e6ac6 v1.3.5 2019-09-16 17:55:28 +01:00
RiotRobot
3983abe814 Prepare changelog for v1.3.5 2019-09-16 17:55:28 +01:00
RiotRobot
2298a61d76 v1.3.5 2019-09-16 17:52:48 +01:00
RiotRobot
9bb007f4b5 released js-sdk & react-sdk 2019-09-16 17:51:52 +01:00
Weblate
c24732f90a Merge branch 'origin/develop' into Weblate. 2019-09-16 14:08:41 +00:00
J. Ryan Stinnett
df7bd02861 Merge pull request #10874 from vector-im/jryans/react-16-lock-tweak
Tweak lock file to pull in only one React version
2019-09-16 16:08:36 +02:00
J. Ryan Stinnett
8ad667c43e Tweak lock file to pull in only one React version
Yarn deps can be a bit fiddly when targeting specific versions. This tweaks the
lock file to only pull in a single React version.

For others who may need to do something like this again, I recommend deleting
specific package entries from `yarn.lock` and re-running `yarn install`. That
should make it pick the right thing while also leaving other packages as they
were.
2019-09-16 14:37:52 +01:00
RiotRobot
8c27cd704e v1.3.5-rc.3 2019-09-13 16:25:33 +01:00
RiotRobot
9b530d4b0b Prepare changelog for v1.3.5-rc.3 2019-09-13 16:25:32 +01:00
RiotRobot
ece11993d7 v1.3.5-rc.3 2019-09-13 16:24:13 +01:00
RiotRobot
dbd5d891db js-sdk rc.1 (and updated react sdk) for report api 2019-09-13 16:23:39 +01:00
RiotRobot
4ece7ed936 v1.3.5-rc.2 2019-09-13 14:52:06 +01:00
RiotRobot
ddab3709a3 Prepare changelog for v1.3.5-rc.2 2019-09-13 14:52:05 +01:00
RiotRobot
8feb51ebce v1.3.5-rc.2 2019-09-13 14:50:00 +01:00
RiotRobot
09492b15e8 react-sdk rc.2 2019-09-13 14:48:23 +01:00
RiotRobot
c86bb03595 v1.3.5-rc.1 2019-09-12 18:45:34 +01:00
RiotRobot
5fed64117f Prepare changelog for v1.3.5-rc.1 2019-09-12 18:45:33 +01:00
RiotRobot
f07c0488fe v1.3.5-rc.1 2019-09-12 18:44:00 +01:00
RiotRobot
0d53eb5386 react-sdk rc.1 2019-09-12 18:42:53 +01:00
Weblate
1ce1c16a05 Merge branch 'origin/develop' into Weblate. 2019-09-12 15:05:05 +00:00
Bruno Windels
e1205246fc Merge pull request #10844 from vector-im/bwindels/document-disable_custom_urls
document disable_custom_urls
2019-09-12 15:05:01 +00:00
Bruno Windels
b809343cb6 line wrap 2019-09-12 17:04:24 +02:00
Bruno Windels
d6e0f33fdb document disable_custom_urls 2019-09-12 12:34:48 +00:00
RiotRobot
eaf3bdbf34 Merge branch 'master' into develop 2019-09-12 13:26:17 +01:00
Weblate
488e9d5396 Merge branch 'origin/develop' into Weblate. 2019-09-12 12:24:25 +00:00
RiotRobot
ceb1fcb6c1 v1.3.4 2019-09-12 13:21:14 +01:00
RiotRobot
2a28fa9774 Prepare changelog for v1.3.4 2019-09-12 13:21:14 +01:00
RiotRobot
6588d0e4bb v1.3.4 2019-09-12 13:17:55 +01:00
RiotRobot
5a6e889bd4 Released js-sdk & react-sdk 2019-09-12 13:16:26 +01:00
Nad Chishtie
d69642922e Remove extraneous content & styles. Style improvements. 2019-09-12 12:14:39 +01:00
Weblate
8ef132bece Merge branch 'origin/develop' into Weblate. 2019-09-12 09:23:35 +00:00
Szimszon
eafd1e52c4 Translated using Weblate (Hungarian)
Currently translated at 100.0% (24 of 24 strings)

Translation: Riot Web/riot-web
Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/hu/
2019-09-12 09:23:35 +00:00
David Baker
11d7e1e185 Merge pull request #10838 from vector-im/nadonomy/install-guide-part-deux
Install guide tweaks
2019-09-12 10:23:30 +01:00
Nad Chishtie
634141637b Remove extraneous content & styles. Style improvements. 2019-09-11 16:08:24 -07:00
RiotRobot
32e2d97941 v1.3.4-rc.1 2019-09-11 18:57:45 +01:00
RiotRobot
a40d13af76 Prepare changelog for v1.3.4-rc.1 2019-09-11 18:57:45 +01:00
RiotRobot
75aa1e02e5 v1.3.4-rc.1 2019-09-11 18:56:33 +01:00
RiotRobot
03b5b622d0 js-sdk & react-sdk rc.1 2019-09-11 18:48:59 +01:00
David Baker
a75c0eca36 Merge pull request #10831 from vector-im/dbkr/install_guide_2
Update install guide
2019-09-11 18:33:39 +01:00
David Baker
cebec03ed6 lint 2019-09-11 18:31:19 +01:00
David Baker
3c62829525 Update button href dynamically
also make button a link 'cos buttons can't have hrefs
2019-09-11 18:31:19 +01:00
Nad Chishtie
ae18186290 Update copy 2019-09-11 18:31:19 +01:00
Nad Chishtie
a3a042aff8 Add id to button 2019-09-11 18:31:19 +01:00
Nad Chishtie
cc4e595b9d Update styling & remove extraneous elements and copy in mobile install guide 2019-09-11 18:31:19 +01:00
Weblate
4bb1c39a2e Merge branch 'origin/develop' into Weblate. 2019-09-11 16:42:29 +00:00
Travis Ralston
0b6c29d274 Merge pull request #10480 from vector-im/t3chguy/react16
Switch to React 16
2019-09-11 10:42:24 -06:00
Weblate
3627a78aed Merge branch 'origin/develop' into Weblate. 2019-09-10 17:36:39 +00:00
David Baker
89e9ac8039 Merge pull request #10810 from vector-im/nadonomy/install-guide
Update install guide
2019-09-10 18:36:35 +01:00
David Baker
58171e4479 lint 2019-09-10 18:30:02 +01:00
David Baker
b8b10e79fe Update button href dynamically
also make button a link 'cos buttons can't have hrefs
2019-09-10 18:27:57 +01:00
Nad Chishtie
845fbacd11 Update copy 2019-09-09 16:51:46 -07:00
Nad Chishtie
d1fb9c604a Add id to button 2019-09-09 16:46:53 -07:00
Nad Chishtie
27afa3af74 Update styling & remove extraneous elements and copy in mobile install guide 2019-09-09 16:40:06 -07:00
Weblate
97fa01f327 Merge branch 'origin/develop' into Weblate. 2019-09-01 15:31:38 +00:00
Travis Ralston
f97b632c65 Merge pull request #6146 from rugk/patch-1
Clarify that HTTPS is not just needed for VoIP
2019-09-01 09:31:34 -06:00
rugk
658c5b42be Update README.md
Co-Authored-By: Travis Ralston <travpc@gmail.com>
2019-09-01 13:41:21 +02:00
송태섭
141651d825 Translated using Weblate (Korean)
Currently translated at 100.0% (24 of 24 strings)

Translation: Riot Web/riot-web
Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/ko/
2019-09-01 09:56:33 +00:00
송태섭
915a585dfa Translated using Weblate (Korean)
Currently translated at 100.0% (24 of 24 strings)

Translation: Riot Web/riot-web
Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/ko/
2019-08-31 03:56:30 +00:00
Weblate
c1352dd6bb Merge branch 'origin/develop' into Weblate. 2019-08-29 14:56:47 +00:00
Travis Ralston
435c14d822 Merge pull request #10692 from vector-im/dependabot/npm_and_yarn/eslint-utils-1.4.2
Bump eslint-utils from 1.4.0 to 1.4.2
2019-08-29 08:56:44 -06:00
dependabot[bot]
f0884b8e47 Bump eslint-utils from 1.4.0 to 1.4.2
Bumps [eslint-utils](https://github.com/mysticatea/eslint-utils) from 1.4.0 to 1.4.2.
- [Release notes](https://github.com/mysticatea/eslint-utils/releases)
- [Commits](https://github.com/mysticatea/eslint-utils/compare/v1.4.0...v1.4.2)

Signed-off-by: dependabot[bot] <support@github.com>
2019-08-29 14:47:34 +00:00
Michael Telatynski
33c17a6f2e Switch to React 16.9
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2019-08-28 11:07:46 +01:00
Michael Telatynski
8b1fdc6b73 Merge branches 'develop' and 't3chguy/react16' of github.com:vector-im/riot-web into t3chguy/react16 2019-08-28 11:02:53 +01:00
rugk
f7bab88079 Improve exceptions mention
In addition to fixes from review, also add link to official source with more information.
2019-08-27 22:28:15 +02:00
Weblate
b852b54352 Merge branch 'origin/develop' into Weblate. 2019-08-27 15:07:37 +00:00
송태섭
3b324000f4 Translated using Weblate (Korean)
Currently translated at 100.0% (24 of 24 strings)

Translation: Riot Web/riot-web
Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/ko/
2019-08-27 15:07:37 +00:00
Travis Ralston
bd20796509 Merge pull request #10641 from vector-im/travis/tabbed-managers
Add docs for tabbed integration managers labs flag
2019-08-27 09:07:32 -06:00
Weblate
fdd90d1797 Merge branch 'origin/develop' into Weblate. 2019-08-26 15:16:38 +00:00
Jason Robinson
9b7f44c8a0 Merge pull request #10656 from vector-im/jaywink/integrations-widget-urls
Change integrations_widgets_urls default configuration
2019-08-26 18:16:33 +03:00
Peter Vágner
dac9a318bb Translated using Weblate (Slovak)
Currently translated at 75.0% (18 of 24 strings)

Translation: Riot Web/riot-web
Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/sk/
2019-08-26 09:56:13 +00:00
송태섭
0b591efe81 Translated using Weblate (Korean)
Currently translated at 100.0% (24 of 24 strings)

Translation: Riot Web/riot-web
Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/ko/
2019-08-26 09:56:13 +00:00
Jason Robinson
2b5fcbdcbd Provide our common integrations_widget_urls defaults for sample config
Closes #10454
2019-08-26 10:03:50 +03:00
Jason Robinson
334001c829 Add and prioritize the new "_matrix/integrations/v1" widget urls
As per MSC1961, add to the whitelisted integrations_widget_urls
the new paths. This allows us to switch Scalar over to use the
new path as default.

Note, the legacy "scalar-staging.riot.im" is these days just a redirect
to scalar-staging.vector.im, so there is no addition for that. It still
needs Riot side whitelisting though for existing widgets.
2019-08-26 10:01:37 +03:00
Mine_My
97a0161e64 Translated using Weblate (Korean)
Currently translated at 70.8% (17 of 24 strings)

Translation: Riot Web/riot-web
Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/ko/
2019-08-25 09:39:59 +00:00
송태섭
357ab6156e Translated using Weblate (Korean)
Currently translated at 70.8% (17 of 24 strings)

Translation: Riot Web/riot-web
Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/ko/
2019-08-25 09:39:59 +00:00
Michael Telatynski
7eefc9d856 Merge branch 'develop' of github.com:vector-im/riot-web into t3chguy/react16 2019-08-24 11:42:03 +01:00
Travis Ralston
3e3cd068dc Enable labs flag for develop 2019-08-23 09:19:16 -06:00
Travis Ralston
7bf1680ff8 Add docs for tabbed integration managers labs flag 2019-08-23 08:47:21 -06:00
Travis Ralston
c635fe7f36 Merge pull request #10638 from vector-im/travis/doc-composer-labs
Add docs for the CIDER composer flag
2019-08-23 08:42:15 -06:00
Travis Ralston
3f70c0d66d Add docs for the CIDER composer flag 2019-08-23 08:28:47 -06:00
J. Ryan Stinnett
53f7444a8e Merge pull request #10626 from vector-im/bwindels/cider_labs
add cider composer labs flag
2019-08-23 10:26:49 +01:00
Bruno Windels
b3a660959e add cider composer labs flag 2019-08-23 10:23:09 +01:00
Travis Ralston
d2bbc57378 Merge pull request #10601 from liberodark/patch-1
Upgrade to Electron 6.0.3
2019-08-21 17:43:57 -06:00
liberodark
961369f48d Upgrade to Electron 6.0.3
Upgrade to last Electron 6.0.3
2019-08-21 13:32:42 +02:00
J. Ryan Stinnett
dad62137c6 Merge pull request #10596 from vector-im/jryans/electron-6
Upgrade to Electron 6
2019-08-20 17:41:16 +01:00
J. Ryan Stinnett
0800faf057 Upgrade to Electron 6.0.2 2019-08-20 10:36:06 +01:00
J. Ryan Stinnett
d12f94888a Use modern command name for electron-builder
`electron-builder` now recommends you invoke it via that name instead of `build`
as was previously supported.
2019-08-20 10:33:47 +01:00
J. Ryan Stinnett
a438efa4be Upgrade to Electron 6 2019-08-20 10:29:58 +01:00
David Baker
f69f852c53 Merge pull request #10591 from RiotTranslateBot/weblate-riot-web-riot-web
Update from Weblate
2019-08-19 10:13:25 +01:00
MorbidMind
72c6707bdb Translated using Weblate (Polish)
Currently translated at 100.0% (24 of 24 strings)

Translation: Riot Web/riot-web
Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/pl/
2019-08-18 13:08:15 +00:00
Weblate
01c28019ba Merge branch 'origin/develop' into Weblate. 2019-08-16 14:28:52 +00:00
RiotRobot
c65ebd5e83 Merge branch 'master' into develop 2019-08-16 15:28:33 +01:00
Weblate
d43ae7ac8e Merge branch 'origin/develop' into Weblate. 2019-08-16 14:27:57 +00:00
J. Ryan Stinnett
ce89428bb9 Merge pull request #10579 from vector-im/jryans/electron-builder-21.2.0
Upgrade electron-builder to 21.2.0
2019-08-16 15:27:53 +01:00
RiotRobot
4299cdfeac v1.3.3 2019-08-16 15:26:03 +01:00
RiotRobot
7a998e7ed7 Prepare changelog for v1.3.3 2019-08-16 15:26:02 +01:00
RiotRobot
8a58ba2374 v1.3.3 2019-08-16 15:23:11 +01:00
J. Ryan Stinnett
aa67a3ba2a Tweak comment about upstream 2019-08-16 15:21:59 +01:00
J. Ryan Stinnett
26d70b1bd4 Set SUID bit on chrome-sandbox for Debian
This tweaks Linux packages for Riot to SUID `chrome-sandbox` after install. This
is required as of Electron 5 for certain distros, such as Debian.

This change has also been provided to `electron-builder` upstream, so ideally
they'll include it in the future and this becomes redundant.

Fixes https://github.com/vector-im/riot-web/issues/10509
2019-08-16 15:21:59 +01:00
Weblate
4d9e626292 Merge branch 'origin/develop' into Weblate. 2019-08-16 13:31:15 +00:00
J. Ryan Stinnett
8824f7edee Merge pull request #10580 from vector-im/jryans/linux-electron-5-sandbox
Set SUID bit on chrome-sandbox for Debian
2019-08-16 14:31:11 +01:00
J. Ryan Stinnett
0617c1cd13 Tweak comment about upstream 2019-08-16 14:30:47 +01:00
J. Ryan Stinnett
56674ea708 Set SUID bit on chrome-sandbox for Debian
This tweaks Linux packages for Riot to SUID `chrome-sandbox` after install. This
is required as of Electron 5 for certain distros, such as Debian.

This change has also been provided to `electron-builder` upstream, so ideally
they'll include it in the future and this becomes redundant.

Fixes https://github.com/vector-im/riot-web/issues/10509
2019-08-16 13:34:12 +01:00
J. Ryan Stinnett
24e59ccedd Upgrade electron-builder to 21.2.0
This is meant to help with:

* macOS packaging for Electron 6 (https://github.com/vector-im/riot-web/issues/10473)
* Linux desktop file should not have quotes (https://github.com/vector-im/riot-web/issues/6421)

It did not help with:

* Linux sandbox for Electron 5 (https://github.com/vector-im/riot-web/issues/10509)

Fixes https://github.com/vector-im/riot-web/issues/6421
Part of https://github.com/vector-im/riot-web/issues/10473
2019-08-16 12:57:03 +01:00
Nathan Follens
0b5e79ed23 Translated using Weblate (West Flemish)
Currently translated at 100.0% (24 of 24 strings)

Translation: Riot Web/riot-web
Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/vls/
2019-08-16 10:08:06 +00:00
Weblate
f9199f259d Merge branch 'origin/develop' into Weblate. 2019-08-14 15:28:43 +00:00
Travis Ralston
9ed647d280 Remove t3chguy's debug lines 2019-08-14 09:28:35 -06:00
Weblate
cb5bc580b0 Merge branch 'origin/develop' into Weblate. 2019-08-14 14:51:59 +00:00
David Baker
3b908f4a33 Merge pull request #10551 from vector-im/t3chguy/i18n_config_default
Load config.json before loading language so default can apply
2019-08-14 15:51:54 +01:00
Michael Telatynski
46dac869d5 Load config.json before loading language so default can apply 2019-08-14 12:29:25 +01:00
Weblate
bafb0dbbfc Merge branch 'origin/develop' into Weblate. 2019-08-12 17:19:17 +00:00
Michael Telatynski
6ccecaf408 Merge pull request #10543 from vector-im/t3chguy/react16_2
Bump matrix-react-test-utils for React 16 compatibility
2019-08-12 18:19:13 +01:00
Michael Telatynski
773dd0805b Bump matrix-react-test-utils for React 16 compatibility
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2019-08-12 17:41:51 +01:00
Michael Telatynski
d347ab08e7 Merge branches 'develop' and 't3chguy/react16' of github.com:vector-im/riot-web into t3chguy/react16 2019-08-10 00:20:30 +01:00
Weblate
a5ed7b992f Merge branch 'origin/develop' into Weblate. 2019-08-09 16:02:56 +00:00
Michael Telatynski
906045b215 Merge pull request #10530 from vector-im/t3chguy/electron_help
Add --help to electron app
2019-08-09 17:02:51 +01:00
Michael Telatynski
12f087401b Add --help to electron app
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2019-08-09 12:08:56 +01:00
Weblate
12074a15a8 Merge branch 'origin/develop' into Weblate. 2019-08-08 19:30:42 +00:00
Travis Ralston
feb62793d2 Revert "Upgrade to babel@7 and support TypeScript"
This reverts commit 7b89893645.
2019-08-08 13:30:33 -06:00
Weblate
04419ba24b Merge branch 'origin/develop' into Weblate. 2019-08-08 19:30:22 +00:00
Travis Ralston
7b89893645 Upgrade to babel@7 and support TypeScript
See https://github.com/matrix-org/matrix-react-sdk/pull/3292

Like react-sdk#3292, this fixes the couple source files which mix imports and module exports (they can't be mixed anymore).
2019-08-08 13:30:11 -06:00
Michael Telatynski
6d7c4c4dd4 fix VectorCustomServerDialog props
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2019-08-06 18:30:08 +01:00
Michael Telatynski
da9f1d1fa3 discard create-react-class, no point using it here. use React.FC
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2019-08-06 18:22:11 +01:00
Michael Telatynski
76606256a2 Merge pull request #10503 from vector-im/t3chguy/electron_keep_alt_menu
Allow setting electron autoHideMenuBar and persist it
2019-08-06 18:20:24 +01:00
Weblate
aebcc4a631 Merge branch 'origin/develop' into Weblate. 2019-08-05 13:49:57 +00:00
RiotRobot
91fb5ae1bd Merge branch 'master' into develop 2019-08-05 14:49:18 +01:00
RiotRobot
0c438cc7a0 v1.3.2 2019-08-05 14:46:35 +01:00
RiotRobot
f82fce2bb7 Prepare changelog for v1.3.2 2019-08-05 14:46:35 +01:00
RiotRobot
634e556cfa v1.3.2 2019-08-05 14:45:02 +01:00
David Baker
f28e5f2ebb Released react-sdk 2019-08-05 14:42:39 +01:00
Weblate
a16afd7ff9 Merge branch 'origin/develop' into Weblate. 2019-08-05 11:14:17 +00:00
RiotRobot
c7b691e2d7 Merge branch 'master' into develop 2019-08-05 12:13:51 +01:00
RiotRobot
3b6acfd67d v1.3.1 2019-08-05 12:08:25 +01:00
RiotRobot
822b495f8a Prepare changelog for v1.3.1 2019-08-05 12:08:24 +01:00
RiotRobot
bf2a298da7 v1.3.1 2019-08-05 12:06:10 +01:00
RiotRobot
90b26a98d3 Released js-sdk & react-sdk 2019-08-05 12:04:57 +01:00
Michael Telatynski
509839e79e Allow setting electron autoHideMenuBar and persist it
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2019-08-05 11:58:16 +01:00
Alexey Murz Korepov
9f675dda2a Translated using Weblate (Russian)
Currently translated at 100.0% (24 of 24 strings)

Translation: Riot Web/riot-web
Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/ru/
2019-08-02 06:49:51 +00:00
Michael Telatynski
06e7a48aaf Switch to React 16.8
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2019-08-01 15:31:33 +01:00
J. Ryan Stinnett
e577f30cb5 Merge pull request #10475 from vector-im/jryans/upgrade-deps-2019-07-31
Upgrade dependencies
2019-07-31 18:51:23 +01:00
J. Ryan Stinnett
67e31e0e30 Upgrade dependencies 2019-07-31 17:46:02 +01:00
RiotRobot
8c32957957 v1.3.1-rc.1 2019-07-31 16:55:49 +01:00
RiotRobot
2a16cf220e Prepare changelog for v1.3.1-rc.1 2019-07-31 16:55:49 +01:00
RiotRobot
964c1922cd v1.3.1-rc.1 2019-07-31 16:54:03 +01:00
RiotRobot
61228d112e Upgrade to JS SDK 2.3.0-rc.1 and React SDK 1.5.0-rc.1 2019-07-31 16:52:52 +01:00
David Baker
5fe8443ff4 Merge pull request #10436 from RiotTranslateBot/weblate-riot-web-riot-web
Update from Weblate
2019-07-29 09:33:58 +01:00
Le Dang Trung
5599b37b59 Translated using Weblate (Vietnamese)
Currently translated at 95.8% (23 of 24 strings)

Translation: Riot Web/riot-web
Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/vi/
2019-07-29 08:29:27 +00:00
Valeh Farzaliyev
83e4dadcfe Translated using Weblate (Azerbaijani)
Currently translated at 62.5% (15 of 24 strings)

Translation: Riot Web/riot-web
Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/az/
2019-07-29 08:29:27 +00:00
Weblate
8ba05ce126 Merge branch 'origin/develop' into Weblate. 2019-07-26 14:26:41 +00:00
Travis Ralston
11c0e982b2 Merge pull request #10418 from vector-im/travis/features
Describe our existing features better in documentation
2019-07-26 08:26:36 -06:00
Brian J
cb988c505d Translated using Weblate (Swedish)
Currently translated at 100.0% (24 of 24 strings)

Translation: Riot Web/riot-web
Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/sv/
2019-07-25 22:49:21 +00:00
Valeh Farzaliyev
762f027e2e Translated using Weblate (Azerbaijani)
Currently translated at 41.7% (10 of 24 strings)

Translation: Riot Web/riot-web
Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/az/
2019-07-25 22:49:21 +00:00
Travis Ralston
83da5e6004 Update references to features 2019-07-25 14:53:53 -06:00
Travis Ralston
ec9309edcd Update feature references 2019-07-25 14:52:20 -06:00
Weblate
d1c80de9c8 Merge branch 'origin/develop' into Weblate. 2019-07-23 09:02:11 +00:00
J. Ryan Stinnett
55e2f18d1e Merge pull request #10392 from vector-im/jryans/electron-5
Upgrade to Electron 5
2019-07-23 10:02:05 +01:00
J. Ryan Stinnett
88e8fbb39a Upgrade to Electron 5
The APIs related to custom protocols went through some changes for Electron 5.x,
so adjusts Riot's usages to match.

I have scanned the Electron 5.x release notes, and I can't see anything else
that requires immediate changes. Things appear to be working well after the
upgrade.

Fixes https://github.com/vector-im/riot-web/issues/10296
Fixes https://github.com/vector-im/riot-web/issues/9562
2019-07-22 15:38:08 +01:00
Weblate
e0f9f68b46 Merge branch 'origin/develop' into Weblate. 2019-07-18 14:58:53 +00:00
RiotRobot
e71fcc33f9 Merge branch 'master' into develop 2019-07-18 15:58:43 +01:00
RiotRobot
7d07642bef v1.3.0 2019-07-18 15:56:14 +01:00
RiotRobot
096303955e Prepare changelog for v1.3.0 2019-07-18 15:56:14 +01:00
RiotRobot
1bd846454c v1.3.0 2019-07-18 15:53:39 +01:00
RiotRobot
72f3f1afee Upgrade to JS SDK 2.2.0 and React SDK 1.4.0 2019-07-18 15:53:25 +01:00
J. Ryan Stinnett
48759fd66d Merge pull request #10365 from vector-im/jryans/v1.3.0/rm-reactions-edits-flags
Remove edits and reactions feature flags from docs and config
2019-07-18 14:26:34 +01:00
J. Ryan Stinnett
06ce10b351 Remove reactions feature flag from docs and config
Part of https://github.com/vector-im/riot-web/issues/10282
2019-07-18 14:24:00 +01:00
J. Ryan Stinnett
b403828791 Remove edits feature flag from docs and config
Part of https://github.com/vector-im/riot-web/issues/10282
2019-07-18 14:23:24 +01:00
Weblate
217065aafc Merge branch 'origin/develop' into Weblate. 2019-07-18 13:16:37 +00:00
Murali Ramakrishnan
5f38d1d3e9 Translated using Weblate (Tamil)
Currently translated at 100.0% (24 of 24 strings)

Translation: Riot Web/riot-web
Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/ta/
2019-07-18 13:16:37 +00:00
J. Ryan Stinnett
f4ee5d0a4b Merge pull request #10363 from vector-im/jryans/rm-reactions-edits-flags
Remove edits and reactions feature flags from docs and config
2019-07-18 14:16:32 +01:00
J. Ryan Stinnett
8398ec5358 Remove reactions feature flag from docs and config
Part of https://github.com/vector-im/riot-web/issues/10282
2019-07-18 10:48:43 +01:00
J. Ryan Stinnett
7731f93676 Remove edits feature flag from docs and config
Part of https://github.com/vector-im/riot-web/issues/10282
2019-07-18 10:46:19 +01:00
Weblate
8123593be5 Merge branch 'origin/develop' into Weblate. 2019-07-16 11:07:02 +00:00
Edgars Voroboks
673543df1d Translated using Weblate (Latvian)
Currently translated at 100.0% (24 of 24 strings)

Translation: Riot Web/riot-web
Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/lv/
2019-07-16 11:07:02 +00:00
Tirifto
b1061c5a94 Translated using Weblate (Esperanto)
Currently translated at 100.0% (24 of 24 strings)

Translation: Riot Web/riot-web
Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/eo/
2019-07-16 11:07:02 +00:00
Bruno Windels
8a022a4be0 Merge pull request #10349 from vector-im/bwindels/cachebust-config
Cachebust config file requests
2019-07-16 11:06:57 +00:00
Bruno Windels
2cf1aabcba cachebust config file requests 2019-07-16 12:49:10 +02:00
RiotRobot
343279ee5d v1.3.0-rc.3 2019-07-15 17:34:38 +01:00
RiotRobot
8b215bf6d4 Prepare changelog for v1.3.0-rc.3 2019-07-15 17:34:37 +01:00
RiotRobot
f20d38f131 v1.3.0-rc.3 2019-07-15 17:32:06 +01:00
RiotRobot
fab0d70f21 react-sdk rc.3 2019-07-15 17:31:13 +01:00
Arnaud Castellanos Galea
edb6e26bc4 Translated using Weblate (Spanish)
Currently translated at 100.0% (24 of 24 strings)

Translation: Riot Web/riot-web
Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/es/
2019-07-14 15:51:00 +00:00
Travis Ralston
8edb74168b Merge pull request #10334 from vector-im/anoa/install_app_deps
Convert install-app-deps to subcommand
2019-07-12 14:33:15 -06:00
RiotRobot
6259fba6ad v1.3.0-rc.2 2019-07-12 17:40:07 +01:00
RiotRobot
4f7061aaa8 Prepare changelog for v1.3.0-rc.2 2019-07-12 17:40:07 +01:00
RiotRobot
88c8ea0d5a v1.3.0-rc.2 2019-07-12 17:38:06 +01:00
RiotRobot
be601d4654 Upgrade to JS SDK 2.2.0-rc.2 and React SDK 1.4.0-rc.2 2019-07-12 17:37:01 +01:00
Andrew Morgan
fde90afe58 Convert install-app-deps to subcommand 2019-07-12 17:02:12 +01:00
J. Ryan Stinnett
7dcb9c830f Merge pull request #10327 from vector-im/jryans/deployment-configs
Add riot.im configuration files
2019-07-12 16:49:00 +01:00
J. Ryan Stinnett
7ccddfb755 Clarify deployment scripts 2019-07-12 16:46:38 +01:00
Travis Ralston
a1432ef0f7 Merge pull request #10321 from vector-im/travis/rageshake-required
Require descriptions in mxSendRageshake and remove infinite loop in issue templates
2019-07-12 08:12:03 -06:00
Travis Ralston
5379a26a1a Merge pull request #10322 from vector-im/travis/remove-is-flag
Remove unused disable_identity_server config flag
2019-07-12 08:11:52 -06:00
Travis Ralston
6762727826 Merge pull request #10320 from vector-im/travis/ci-i18n
Verify i18n in CI
2019-07-12 08:11:03 -06:00
RiotRobot
a28144bbc0 v1.3.0-rc.1 2019-07-12 11:43:41 +01:00
RiotRobot
56b0c333c0 Prepare changelog for v1.3.0-rc.1 2019-07-12 11:43:40 +01:00
RiotRobot
a23386bdb4 v1.3.0-rc.1 2019-07-12 11:39:59 +01:00
RiotRobot
f771f607d6 Upgrade to React SDK 1.4.0-rc.1 and JS SDK 2.2.0-rc.1 2019-07-12 11:39:07 +01:00
J. Ryan Stinnett
c7b24f7ce9 Merge pull request #10328 from RiotTranslateBot/weblate-riot-web-riot-web
Update from Weblate
2019-07-12 10:53:48 +01:00
J. Ryan Stinnett
f1a680322b Add riot.im configuration files 2019-07-12 10:48:34 +01:00
Weblate
ad4f05a0cd Merge branch 'origin/develop' into Weblate. 2019-07-12 09:24:37 +00:00
J. Ryan Stinnett
d47d0e4097 Enable reactions and edits for desktop 2019-07-12 10:23:14 +01:00
Travis Ralston
f3e82b56e9 Remove unused disable_identity_server config flag
Fixes https://github.com/vector-im/riot-web/issues/10229
2019-07-11 15:11:59 -06:00
Travis Ralston
604e4bbfee Improve wording in debug log sending in issue templates 2019-07-11 12:59:29 -06:00
Travis Ralston
79b519be72 Require a rageshake description in mxSendRageshake 2019-07-11 12:58:35 -06:00
Travis Ralston
c22e03a222 Fetch deps 2019-07-11 12:48:22 -06:00
Travis Ralston
6b07186078 Verify i18n in CI 2019-07-11 12:45:06 -06:00
Weblate
b18acd5978 Merge branch 'origin/develop' into Weblate. 2019-07-11 12:17:04 +00:00
J. Ryan Stinnett
bba167c433 Merge pull request #10308 from vector-im/jryans/upgrade-deps-2
Upgrade dependencies
2019-07-11 13:16:59 +01:00
J. Ryan Stinnett
1199554be7 Upgrade dependencies 2019-07-11 11:49:12 +01:00
Weblate
9cc6d1439e Merge branch 'origin/develop' into Weblate. 2019-07-11 10:32:06 +00:00
RiotRobot
d3a3115298 Merge branch 'master' into develop 2019-07-11 11:31:48 +01:00
RiotRobot
da5ddb2518 v1.2.4 2019-07-11 11:29:11 +01:00
RiotRobot
9b7dcf5d88 Prepare changelog for v1.2.4 2019-07-11 11:29:11 +01:00
RiotRobot
e5ffb8de4c v1.2.4 2019-07-11 11:24:52 +01:00
J. Ryan Stinnett
ff1a5e0539 Upgrade lodash 2019-07-11 11:13:37 +01:00
J. Ryan Stinnett
6ccf88f808 Upgrade to JS SDK 2.1.1 and React SDK 1.3.1 2019-07-11 11:09:56 +01:00
Weblate
2c863aa3ec Merge branch 'origin/develop' into Weblate. 2019-07-08 10:14:50 +00:00
RiotRobot
5f1d6f333c Merge branch 'master' into develop 2019-07-08 11:14:40 +01:00
RiotRobot
6546108307 v1.2.3 2019-07-08 11:12:04 +01:00
RiotRobot
4a33c0af6e Prepare changelog for v1.2.3 2019-07-08 11:12:03 +01:00
RiotRobot
a53d7edc7f v1.2.3 2019-07-08 11:10:31 +01:00
RiotRobot
090b2dbd30 Upgrade to JS SDK 2.1.0 and React SDK 1.3.0 2019-07-08 10:58:13 +01:00
Weblate
68d501fabf Merge branch 'origin/develop' into Weblate. 2019-07-05 16:50:22 +00:00
J. Ryan Stinnett
cb92e1d4c9 Merge pull request #10260 from vector-im/jryans/upgrade-deps
Upgrade dependencies
2019-07-05 17:50:19 +01:00
J. Ryan Stinnett
7424c776e5 Upgrade dependencies 2019-07-04 15:14:44 +01:00
RiotRobot
6e502478e3 v1.2.3-rc.1 2019-07-03 17:48:55 +01:00
RiotRobot
72052b913f Prepare changelog for v1.2.3-rc.1 2019-07-03 17:48:55 +01:00
RiotRobot
1ce8f3844b v1.2.3-rc.1 2019-07-03 17:47:41 +01:00
RiotRobot
751316f388 Upgrade to JS SDK 2.1.0-rc.1 and React SDK 1.3.0-rc.1 2019-07-03 17:25:05 +01:00
Weblate
1533d50157 Merge branch 'origin/develop' into Weblate. 2019-07-03 15:28:26 +00:00
J. Ryan Stinnett
e1282081bf Merge pull request #10247 from vector-im/jryans/update-base-url
Change update URL to match new host
2019-07-03 16:28:21 +01:00
Weblate
9f4dc1936b Merge branch 'origin/develop' into Weblate. 2019-07-03 15:06:43 +00:00
J. Ryan Stinnett
ba5cae554c Upgrade electron-builder, electron-builder-squirrel-windows to latest 2019-07-03 16:06:12 +01:00
Weblate
bdbc65209c Merge branch 'origin/develop' into Weblate. 2019-07-03 14:53:35 +00:00
random
87bf899396 Translated using Weblate (Italian)
Currently translated at 100.0% (24 of 24 strings)

Translation: Riot Web/riot-web
Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/it/
2019-07-03 14:53:35 +00:00
Slavi Pantaleev
089ef6f7cd Translated using Weblate (Bulgarian)
Currently translated at 100.0% (24 of 24 strings)

Translation: Riot Web/riot-web
Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/bg/
2019-07-03 14:53:34 +00:00
J. Ryan Stinnett
ea665da391 Upgrade to Electron 4.2.6 2019-07-03 15:53:23 +01:00
J. Ryan Stinnett
c9bd1b8510 Change update URL to match new host 2019-07-03 15:47:52 +01:00
kristbaum
2e1682fbf6 Translated using Weblate (German)
Currently translated at 100.0% (24 of 24 strings)

Translation: Riot Web/riot-web
Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/de/
2019-07-02 14:50:11 +00:00
David Baker
9de26ed062 Merge pull request #10219 from RiotTranslateBot/weblate-riot-web-riot-web
Update from Weblate
2019-07-01 10:40:32 +01:00
Benjamin
8956661eb7 Translated using Weblate (Esperanto)
Currently translated at 100.0% (24 of 24 strings)

Translation: Riot Web/riot-web
Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/eo/
2019-06-30 14:29:43 +00:00
Benjamin
325a083e89 Translated using Weblate (English (United States))
Currently translated at 100.0% (24 of 24 strings)

Translation: Riot Web/riot-web
Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/en_US/
2019-06-30 14:29:43 +00:00
Jeff Huang
5918f757cd Translated using Weblate (Chinese (Traditional))
Currently translated at 100.0% (24 of 24 strings)

Translation: Riot Web/riot-web
Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/zh_Hant/
2019-06-30 14:29:43 +00:00
Weblate
75e426978c Merge branch 'origin/develop' into Weblate. 2019-06-28 17:09:38 +00:00
Nathan Follens
2ea640cee3 Translated using Weblate (West Flemish)
Currently translated at 100.0% (24 of 24 strings)

Translation: Riot Web/riot-web
Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/vls/
2019-06-28 17:09:38 +00:00
Szimszon
d52ccc0500 Translated using Weblate (Hungarian)
Currently translated at 100.0% (24 of 24 strings)

Translation: Riot Web/riot-web
Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/hu/
2019-06-28 17:09:38 +00:00
Kévin C
63e76e109f Translated using Weblate (French)
Currently translated at 100.0% (24 of 24 strings)

Translation: Riot Web/riot-web
Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/fr/
2019-06-28 17:09:38 +00:00
Nathan Follens
c8009487ab Translated using Weblate (Dutch)
Currently translated at 100.0% (24 of 24 strings)

Translation: Riot Web/riot-web
Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/nl/
2019-06-28 17:09:38 +00:00
Osoitz
271be70806 Translated using Weblate (Basque)
Currently translated at 100.0% (24 of 24 strings)

Translation: Riot Web/riot-web
Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/eu/
2019-06-28 17:09:37 +00:00
Besnik Bleta
56a65d95e3 Translated using Weblate (Albanian)
Currently translated at 100.0% (24 of 24 strings)

Translation: Riot Web/riot-web
Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/sq/
2019-06-28 17:09:37 +00:00
J. Ryan Stinnett
0e9e7612a4 Merge pull request #10195 from vector-im/jryans/config-docs
Extract configuration docs to separate file
2019-06-28 18:09:32 +01:00
J. Ryan Stinnett
b93388f504 Restore config.json section for old Riot
Riot includes a link to the config.json section of the README, so let's restore
it (at least for a while) keep that link working.
2019-06-28 13:50:54 +01:00
Weblate
cdda490fc7 Merge branch 'origin/develop' into Weblate. 2019-06-27 23:24:48 +00:00
Travis Ralston
9d14f92c01 Merge pull request #10197 from vector-im/t3chguy/preload_warning.svg
Add e2e/warning.svg to preload
2019-06-27 17:24:44 -06:00
Weblate
3a966add42 Merge branch 'origin/develop' into Weblate. 2019-06-27 23:22:56 +00:00
Tuomas Hietala
8fc125c5b5 Translated using Weblate (Finnish)
Currently translated at 100.0% (24 of 24 strings)

Translation: Riot Web/riot-web
Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/fi/
2019-06-27 23:22:56 +00:00
Travis Ralston
2e241fda2c Merge pull request #10196 from vector-im/t3chguy/fix_vector_links
Fix Electron vector: links
2019-06-27 17:22:51 -06:00
Weblate
846257957e Merge branch 'origin/develop' into Weblate. 2019-06-27 20:09:52 +00:00
Travis Ralston
975f177a23 Merge pull request #10193 from vector-im/travis/syntax-error
Display a red box of anger for config syntax errors
2019-06-27 14:09:47 -06:00
Michael Telatynski
575f013bc9 Add e2e/warning.svg to preload
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2019-06-27 20:59:11 +01:00
Michael Telatynski
320f3198ea Fix Electron vector: links
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2019-06-27 20:33:15 +01:00
Travis Ralston
e49583f8e0 Copy from toml 2019-06-27 12:09:58 -06:00
J. Ryan Stinnett
73d801cb1d Extract configuration docs to separate file
The main README is very busy with too much information in one file. This
attempts to clean up one portion by moving configuration docs to a separate
file.

Fixes https://github.com/vector-im/riot-web/issues/9965
2019-06-27 19:08:33 +01:00
Travis Ralston
67664365bd Display a red box of anger for config syntax errors
Fixes https://github.com/vector-im/riot-web/issues/9519
2019-06-27 11:47:29 -06:00
Weblate
8530adc782 Merge branch 'origin/develop' into Weblate. 2019-06-27 12:49:07 +00:00
pebles
2c45299b6a Translated using Weblate (Spanish)
Currently translated at 100.0% (21 of 21 strings)

Translation: Riot Web/riot-web
Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/es/
2019-06-27 12:49:06 +00:00
Benjamin
97f031c623 Translated using Weblate (Esperanto)
Currently translated at 100.0% (21 of 21 strings)

Translation: Riot Web/riot-web
Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/eo/
2019-06-27 12:49:06 +00:00
Michael Telatynski
2111db73a7 Merge pull request #10181 from vector-im/t3chguy/electron_config_via_plaf
Move config-getting to VectorBasePlatform
2019-06-27 13:49:00 +01:00
Michael Telatynski
01a78feb41 unexport getConfig, it was never imported externally 2019-06-27 11:17:56 +01:00
Michael Telatynski
a70f6de2e4 cleanup
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2019-06-26 21:11:27 +01:00
Michael Telatynski
dbd198ec07 delint
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2019-06-26 21:10:28 +01:00
Michael Telatynski
974797648f Move config-getting to VectorBasePlatform
in Electron get config via IPC from main process
which has access to the "local" config.json override file
and can make people happy :D

Remove bunch of duplicated code,
and move comments around to put them in the right place

Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2019-06-26 21:08:04 +01:00
あかれぎ
c84ef8bdb5 Translated using Weblate (Japanese)
Currently translated at 81.0% (17 of 21 strings)

Translation: Riot Web/riot-web
Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/ja/
2019-06-26 11:29:28 +00:00
Tirifto
0fb17c91d8 Translated using Weblate (Esperanto)
Currently translated at 100.0% (21 of 21 strings)

Translation: Riot Web/riot-web
Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/eo/
2019-06-26 11:29:28 +00:00
David Baker
fceb05e646 Merge pull request #10124 from RiotTranslateBot/weblate-riot-web-riot-web
Update from Weblate
2019-06-20 11:00:34 +01:00
Weblate
c0e81e7808 Merge branch 'origin/develop' into Weblate. 2019-06-19 15:04:21 +00:00
Tuomas Hietala
470f6a8cbc Translated using Weblate (Finnish)
Currently translated at 100.0% (21 of 21 strings)

Translation: Riot Web/riot-web
Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/fi/
2019-06-19 15:04:20 +00:00
RiotRobot
6f1ce750bf Merge branch 'master' into develop 2019-06-19 16:03:22 +01:00
RiotRobot
672cf1a46e v1.2.2 2019-06-19 16:00:42 +01:00
RiotRobot
5f7ee3f4ee Prepare changelog for v1.2.2 2019-06-19 16:00:42 +01:00
RiotRobot
80262314f3 v1.2.2 2019-06-19 15:59:10 +01:00
RiotRobot
48b6f8c954 Released js-sdk & react-sdk 2019-06-19 15:55:02 +01:00
J. Ryan Stinnett
b7a19c6d16 Merge pull request #10097 from vector-im/jryans/linux-icons
Fix default Electron window and tray icons
2019-06-18 17:35:34 +01:00
Weblate
cece9a5028 Merge branch 'origin/develop' into Weblate. 2019-06-18 16:35:30 +00:00
J. Ryan Stinnett
f3bfb08280 Update Electron's runtime PNG icon to match others
This runtime PNG icon (the default window and tray icon) was not updated to
remove the white background when we last changed the branding. This copies a 265
px PNG from elsewhere to ensure it matches.

Part of https://github.com/vector-im/riot-web/issues/9897
2019-06-18 16:59:04 +01:00
J. Ryan Stinnett
292427c275 Move default Electron icons outside asar
Electron doesn't seem to want to load icons from within `asar`s, so this changes
the default icons (used for window and tray) so that they are just regular files
on disk and updates the reference to match.

Part of https://github.com/vector-im/riot-web/issues/9897
2019-06-18 16:58:43 +01:00
RiotRobot
db77d91500 v1.2.2-rc.2 2019-06-18 16:02:21 +01:00
RiotRobot
290a99ba85 Prepare changelog for v1.2.2-rc.2 2019-06-18 16:02:21 +01:00
RiotRobot
a86f1e8a90 v1.2.2-rc.2 2019-06-18 15:58:36 +01:00
RiotRobot
589aa19246 js-sdk & react-sdk rc.2 2019-06-18 15:57:30 +01:00
J. Ryan Stinnett
f10e7ac224 Fix reference to main window when setting Electron window icon
This fixes the fallback path which sets the Electron window icon to the default
icon in case there's no data URI based icon coming content. This is true
immediately after startup, for example.

Part of https://github.com/vector-im/riot-web/issues/9897
2019-06-18 14:31:19 +01:00
BenjaminVettori
9e5712594c Translated using Weblate (German)
Currently translated at 100.0% (21 of 21 strings)

Translation: Riot Web/riot-web
Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/de/
2019-06-17 22:29:00 +00:00
Nathan Follens
c90cc096a1 Translated using Weblate (West Flemish)
Currently translated at 100.0% (21 of 21 strings)

Translation: Riot Web/riot-web
Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/vls/
2019-06-16 08:28:56 +00:00
Le Dang Trung
f1a6651f04 Translated using Weblate (Vietnamese)
Currently translated at 57.1% (12 of 21 strings)

Translation: Riot Web/riot-web
Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/vi/
2019-06-16 08:28:56 +00:00
Vitaly Lipatov
a36013f2e0 Translated using Weblate (Russian)
Currently translated at 100.0% (21 of 21 strings)

Translation: Riot Web/riot-web
Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/ru/
2019-06-16 08:28:55 +00:00
random
36cebd565a Translated using Weblate (Italian)
Currently translated at 100.0% (21 of 21 strings)

Translation: Riot Web/riot-web
Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/it/
2019-06-16 08:28:55 +00:00
Slavi Pantaleev
fefa2ee036 Translated using Weblate (Bulgarian)
Currently translated at 100.0% (21 of 21 strings)

Translation: Riot Web/riot-web
Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/bg/
2019-06-16 08:28:55 +00:00
Osoitz
446a4b16ee Translated using Weblate (Basque)
Currently translated at 100.0% (21 of 21 strings)

Translation: Riot Web/riot-web
Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/eu/
2019-06-16 08:28:55 +00:00
RiotRobot
9af5aea687 v1.2.2-rc.1 2019-06-12 12:12:17 +01:00
RiotRobot
a413621efc Prepare changelog for v1.2.2-rc.1 2019-06-12 12:12:16 +01:00
RiotRobot
b751383702 v1.2.2-rc.1 2019-06-12 12:11:12 +01:00
RiotRobot
974da9947c js-sdk & react-sdk rc.1 2019-06-12 12:10:37 +01:00
Weblate
3b557c273f Merge branch 'origin/develop' into Weblate. 2019-06-11 13:06:33 +00:00
David Baker
8458aa7978 Merge pull request #10012 from RiotTranslateBot/weblate-riot-web-riot-web
Update from Weblate
2019-06-11 14:06:29 +01:00
Weblate
d5cdfe62d5 Merge branch 'origin/develop' into Weblate. 2019-06-11 13:03:19 +00:00
David Baker
dfb7c163a0 electron 4.2.4 2019-06-11 14:03:05 +01:00
Walter
504133fa1b Translated using Weblate (Russian)
Currently translated at 100.0% (21 of 21 strings)

Translation: Riot Web/riot-web
Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/ru/
2019-06-11 12:06:04 +00:00
Tirifto
7a8f2cf8cd Translated using Weblate (Esperanto)
Currently translated at 100.0% (21 of 21 strings)

Translation: Riot Web/riot-web
Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/eo/
2019-06-11 12:06:04 +00:00
Osoitz
9554a39a77 Translated using Weblate (Basque)
Currently translated at 95.2% (20 of 21 strings)

Translation: Riot Web/riot-web
Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/eu/
2019-06-11 12:06:04 +00:00
Besnik Bleta
bea7eff017 Translated using Weblate (Albanian)
Currently translated at 100.0% (21 of 21 strings)

Translation: Riot Web/riot-web
Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/sq/
2019-06-09 11:06:01 +00:00
Weblate
3f6aef16eb Merge branch 'origin/develop' into Weblate. 2019-06-07 19:43:22 +00:00
Nathan Follens
662d21d1aa Translated using Weblate (West Flemish)
Currently translated at 100.0% (21 of 21 strings)

Translation: Riot Web/riot-web
Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/vls/
2019-06-07 19:43:22 +00:00
Szimszon
10b2156b12 Translated using Weblate (Hungarian)
Currently translated at 100.0% (21 of 21 strings)

Translation: Riot Web/riot-web
Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/hu/
2019-06-07 19:43:22 +00:00
Kévin C
96870367cf Translated using Weblate (French)
Currently translated at 100.0% (21 of 21 strings)

Translation: Riot Web/riot-web
Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/fr/
2019-06-07 19:43:22 +00:00
Nathan Follens
f414030e87 Translated using Weblate (Dutch)
Currently translated at 100.0% (21 of 21 strings)

Translation: Riot Web/riot-web
Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/nl/
2019-06-07 19:43:22 +00:00
Jeff Huang
4d6534bfe7 Translated using Weblate (Chinese (Traditional))
Currently translated at 100.0% (21 of 21 strings)

Translation: Riot Web/riot-web
Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/zh_Hant/
2019-06-07 19:43:22 +00:00
J. Ryan Stinnett
a00bceaff7 Merge pull request #9982 from vector-im/jryans/funding
Add funding details for GitHub sponsor button
2019-06-07 20:43:18 +01:00
Weblate
5ef2f185ad Merge branch 'origin/develop' into Weblate. 2019-06-07 13:43:56 +00:00
Travis Ralston
f5e5ad9670 Merge pull request #9960 from vector-im/travis/fail-fast-but-not-too-fast
Do not fail on server liveliness checks during startup
2019-06-07 07:43:51 -06:00
J. Ryan Stinnett
1d316044a7 Add funding details for GitHub sponsor button 2019-06-07 11:44:26 +01:00
Edgars Voroboks
d3dc6f42d1 Translated using Weblate (Latvian)
Currently translated at 100.0% (21 of 21 strings)

Translation: Riot Web/riot-web
Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/lv/
2019-06-06 07:19:38 +00:00
Mani Farone
9ca7d1bf56 Translated using Weblate (Bulgarian)
Currently translated at 100.0% (21 of 21 strings)

Translation: Riot Web/riot-web
Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/bg/
2019-06-06 07:19:38 +00:00
Slavi Pantaleev
f40226459b Translated using Weblate (Bulgarian)
Currently translated at 100.0% (21 of 21 strings)

Translation: Riot Web/riot-web
Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/bg/
2019-06-06 07:19:38 +00:00
Travis Ralston
490595cb35 Use new copy for big red box 2019-06-05 11:32:33 -06:00
Travis Ralston
c68a621a71 Fix tests for liveliness checks 2019-06-05 09:53:22 -06:00
Travis Ralston
8ec1c1c29a Merge pull request #9957 from vector-im/travis/no-button-guest
Hide guest functions on the welcome page if not logged in
2019-06-05 07:24:09 -06:00
Travis Ralston
42be1d633c Do not fail on server liveliness checks during startup
Also warn about deprecated config option usage.

See https://github.com/vector-im/riot-web/issues/9828
2019-06-04 23:44:33 -06:00
Travis Ralston
608efaaae3 Hide guest functions on the welcome page if not logged in
Fixes https://github.com/vector-im/riot-web/issues/9546
2019-06-04 16:04:49 -06:00
J. Ryan Stinnett
428960aff2 Merge pull request #9953 from vector-im/jryans/add-langs-2019-06
Add Albanian and West Flemish languages
2019-06-04 18:04:43 +01:00
J. Ryan Stinnett
aaceaf097c Add Albanian language 2019-06-04 17:45:59 +01:00
J. Ryan Stinnett
1c42ee1a30 Add West Flemish language 2019-06-04 17:43:28 +01:00
J. Ryan Stinnett
352e5918b6 Merge pull request #9951 from RiotTranslateBot/weblate-riot-web-riot-web
Update from Weblate
2019-06-04 17:32:18 +01:00
Nathan Follens
858229aaf8 Translated using Weblate (West Flemish)
Currently translated at 100.0% (21 of 21 strings)

Translation: Riot Web/riot-web
Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/vls/
2019-06-04 16:31:07 +00:00
Nathan Follens
7c3d3319c1 Translated using Weblate (West Flemish)
Currently translated at 100.0% (21 of 21 strings)

Translation: Riot Web/riot-web
Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/vls/
2019-06-04 14:19:36 +00:00
Marco Cafolla
30307a8ae2 Translated using Weblate (Scots)
Currently translated at 4.8% (1 of 21 strings)

Translation: Riot Web/riot-web
Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/sco/
2019-06-04 14:19:36 +00:00
Walter
a7d06eee2d Translated using Weblate (Russian)
Currently translated at 100.0% (21 of 21 strings)

Translation: Riot Web/riot-web
Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/ru/
2019-06-04 14:19:35 +00:00
random
10affe0d9c Translated using Weblate (Italian)
Currently translated at 100.0% (21 of 21 strings)

Translation: Riot Web/riot-web
Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/it/
2019-06-04 14:19:35 +00:00
Walter
6549ce57e6 Translated using Weblate (German)
Currently translated at 100.0% (21 of 21 strings)

Translation: Riot Web/riot-web
Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/de/
2019-06-04 14:19:35 +00:00
Nathan Follens
dd636c1654 Translated using Weblate (Dutch)
Currently translated at 100.0% (21 of 21 strings)

Translation: Riot Web/riot-web
Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/nl/
2019-06-04 14:19:35 +00:00
Jeff Huang
4c43f7d102 Translated using Weblate (Chinese (Traditional))
Currently translated at 100.0% (21 of 21 strings)

Translation: Riot Web/riot-web
Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/zh_Hant/
2019-06-04 14:19:35 +00:00
Besnik Bleta
6ea8c95c8c Translated using Weblate (Albanian)
Currently translated at 100.0% (21 of 21 strings)

Translation: Riot Web/riot-web
Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/sq/
2019-06-04 14:19:35 +00:00
Nathan Follens
5cf6cef49d Added translation using Weblate (West Flemish) 2019-06-03 10:22:59 +00:00
Marco Cafolla
786e9bafc8 Added translation using Weblate (Scots) 2019-06-02 00:25:01 +00:00
Weblate
51f92b1eb4 Merge branch 'origin/develop' into Weblate. 2019-06-01 18:11:30 +00:00
Szimszon
261bbea934 Translated using Weblate (Hungarian)
Currently translated at 100.0% (21 of 21 strings)

Translation: Riot Web/riot-web
Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/hu/
2019-06-01 18:11:30 +00:00
Kévin C
a4b5c233b7 Translated using Weblate (French)
Currently translated at 100.0% (21 of 21 strings)

Translation: Riot Web/riot-web
Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/fr/
2019-06-01 18:11:30 +00:00
Travis Ralston
29eeb1eaf3 Merge pull request #9927 from vector-im/travis/default-country-code
Add docs for defaultCountryCode
2019-06-01 12:11:26 -06:00
Travis Ralston
cafae31827 Add docs for defaultCountryCode 2019-05-31 21:23:58 -06:00
Weblate
a38e5bde3a Merge branch 'origin/develop' into Weblate. 2019-05-31 17:03:43 +00:00
Travis Ralston
1459bfe7be Merge pull request #9892 from vector-im/travis/check-login-for-config
Use the user's pre-existing HS when config validation fails
2019-05-31 11:03:38 -06:00
Travis Ralston
81ec75f81d Change warning message 2019-05-31 10:44:20 -06:00
Bruno Windels
f1531d2b12 add settingDefaults to sample config 2019-05-31 14:52:29 +02:00
Weblate
86515e6814 Merge branch 'origin/develop' into Weblate. 2019-05-31 11:02:14 +00:00
RiotRobot
ada47d476c Merge branch 'master' into develop 2019-05-31 12:02:00 +01:00
RiotRobot
7446799e4b v1.2.1 2019-05-31 11:59:31 +01:00
RiotRobot
947e5ab582 Prepare changelog for v1.2.1 2019-05-31 11:59:31 +01:00
RiotRobot
6b93053a80 v1.2.1 2019-05-31 11:53:34 +01:00
RiotRobot
7c03bd128b Upgrade JS SDK to 2.0.0 and React SDK to 1.2.1 2019-05-31 11:52:42 +01:00
Weblate
b62c1277e5 Merge branch 'origin/develop' into Weblate. 2019-05-31 08:57:05 +00:00
Jeff Huang
688d73b143 Translated using Weblate (Chinese (Traditional))
Currently translated at 100.0% (20 of 20 strings)

Translation: Riot Web/riot-web
Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/zh_Hant/
2019-05-31 08:57:05 +00:00
J. Ryan Stinnett
f4192e4f9d Merge pull request #9909 from vector-im/matthew/low_bandwidth
Low bandwidth mode
2019-05-31 09:56:59 +01:00
Travis Ralston
c5461b4509 Don't try and render null avatars in desktop notifications
as much fun as http://localhost:8080/null is to see
2019-05-30 20:04:16 -06:00
Travis Ralston
98f2d865b9 Add 'showLabsSettings' flag to docs+sample config 2019-05-30 20:03:42 -06:00
IevgenVovk
bba3fc01c9 Translated using Weblate (Ukrainian)
Currently translated at 100.0% (20 of 20 strings)

Translation: Riot Web/riot-web
Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/uk/
2019-05-30 20:19:28 +00:00
Walter
ed065fa43d Translated using Weblate (German)
Currently translated at 100.0% (20 of 20 strings)

Translation: Riot Web/riot-web
Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/de/
2019-05-30 20:19:28 +00:00
Travis Ralston
52c3ff02ae appease the linter 2019-05-29 12:12:12 -06:00
Travis Ralston
48a634bff4 Use the user's pre-existing HS when config validation fails
Only applies if the user appears to be logged in. If the user is not logged in, we scream loudly.

This is a temporary measure for https://github.com/vector-im/riot-web/issues/9828

Fixes https://github.com/vector-im/riot-web/issues/9835
2019-05-29 12:07:31 -06:00
Weblate
bf7d059472 Merge branch 'origin/develop' into Weblate. 2019-05-29 15:27:56 +00:00
Walter
3e5bd82434 Translated using Weblate (Russian)
Currently translated at 100.0% (20 of 20 strings)

Translation: Riot Web/riot-web
Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/ru/
2019-05-29 15:27:56 +00:00
RiotRobot
fcf8e246cf Merge branch 'master' into develop 2019-05-29 16:27:46 +01:00
RiotRobot
2af3d20a71 v1.2.0 2019-05-29 16:23:52 +01:00
RiotRobot
fde9a7a7ba Prepare changelog for v1.2.0 2019-05-29 16:23:52 +01:00
RiotRobot
d6fb0bc24f v1.2.0 2019-05-29 16:19:59 +01:00
RiotRobot
f4b1e3307d Upgrade SDKs to 1.2.0 2019-05-29 16:14:25 +01:00
Weblate
306479a77f Merge branch 'origin/develop' into Weblate. 2019-05-28 17:25:42 +00:00
Nathan Follens
bc264ceaaf Translated using Weblate (Dutch)
Currently translated at 100.0% (20 of 20 strings)

Translation: Riot Web/riot-web
Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/nl/
2019-05-28 17:25:42 +00:00
J. Ryan Stinnett
53d8341886 Merge pull request #9869 from vector-im/jryans/twemoji-windows
Fix Twemoji loading on Windows dev machines
2019-05-28 18:25:38 +01:00
J. Ryan Stinnett
95d36c1f29 Fix Twemoji loading on Windows dev machines
This corrects our path handling on Windows development machines for
paths referenced in JS and HTML files. Both images and fonts (like
Twemoji) were afflicted (with Windows-style backslash path delimiters),
but browsers seems to tolerate them in the `src` attribute of images, so
we didn't notice that variant before.
2019-05-28 14:31:42 +01:00
Weblate
ba14b27e9a Merge branch 'origin/develop' into Weblate. 2019-05-27 17:41:23 +00:00
Walter
d5dc7334a1 Translated using Weblate (Russian)
Currently translated at 100.0% (20 of 20 strings)

Translation: Riot Web/riot-web
Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/ru/
2019-05-27 17:41:22 +00:00
Travis Ralston
982416b3f7 Merge pull request #9848 from spantaleev/make-docker-image-smaller
Base Docker image on nginx:alpine, not the larger nginx:latest
2019-05-27 11:41:18 -06:00
Besnik Bleta
a11ae18577 Translated using Weblate (Albanian)
Currently translated at 100.0% (20 of 20 strings)

Translation: Riot Web/riot-web
Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/sq/
2019-05-27 12:19:23 +00:00
Slavi Pantaleev
4e63e3b0de Base Docker image on nginx:alpine, not the larger nginx:latest
`nginx:latest` is based on Debian Stretch and is listed as being 45MB,
while `nginx:alpine` is based on Alpine 3.9 and is just 7MB.

Basing the riot-web Docker image on `nginx:alpine` should
make it 38MB smaller compared to the current situation.

The nginx version seems to be "latest mainline" on both (currently 1.15.12),
judging by each Dockerfile:
- e5123eea0d/mainline/stretch/Dockerfile
- e5123eea0d/mainline/alpine/Dockerfile
2019-05-27 11:57:37 +03:00
random
7ea1193015 Translated using Weblate (Italian)
Currently translated at 100.0% (20 of 20 strings)

Translation: Riot Web/riot-web
Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/it/
2019-05-26 07:19:22 +00:00
Szimszon
5b69e7268e Translated using Weblate (Hungarian)
Currently translated at 100.0% (20 of 20 strings)

Translation: Riot Web/riot-web
Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/hu/
2019-05-26 07:19:22 +00:00
Kévin C
1e61918d1c Translated using Weblate (French)
Currently translated at 100.0% (20 of 20 strings)

Translation: Riot Web/riot-web
Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/fr/
2019-05-26 07:19:22 +00:00
Tirifto
ee67cf7d49 Translated using Weblate (Esperanto)
Currently translated at 100.0% (20 of 20 strings)

Translation: Riot Web/riot-web
Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/eo/
2019-05-26 07:19:22 +00:00
wonx
58f20b4fe5 Translated using Weblate (Catalan)
Currently translated at 90.0% (18 of 20 strings)

Translation: Riot Web/riot-web
Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/ca/
2019-05-26 07:19:22 +00:00
Mani Farone
9525989560 Translated using Weblate (Bulgarian)
Currently translated at 100.0% (20 of 20 strings)

Translation: Riot Web/riot-web
Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/bg/
2019-05-26 07:19:22 +00:00
Slavi Pantaleev
c600f328a1 Translated using Weblate (Bulgarian)
Currently translated at 100.0% (20 of 20 strings)

Translation: Riot Web/riot-web
Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/bg/
2019-05-26 07:19:22 +00:00
J. Ryan Stinnett
28ffca1f84 Ignore /electron_app/pub 2019-05-24 11:34:03 +01:00
J. Ryan Stinnett
e129db4978 Upgrade electron-builder 2019-05-24 11:29:02 +01:00
J. Ryan Stinnett
734d8a8151 Clarify Electron steps 2019-05-24 11:28:12 +01:00
Travis Ralston
afdaca0515 Merge pull request #9779 from vector-im/travis/feature/wellknown2
Validate homeserver configuration prior to loading the app
2019-05-23 10:56:19 -06:00
RiotRobot
52b2dbec85 v1.2.0-rc.1 2019-05-23 17:41:20 +01:00
RiotRobot
aa10d7aeed Prepare changelog for v1.2.0-rc.1 2019-05-23 17:41:20 +01:00
RiotRobot
7f7b3e747c v1.2.0-rc.1 2019-05-23 17:40:08 +01:00
RiotRobot
59fa374491 Upgrade SDKs to 1.2.0-rc.1 2019-05-23 17:39:03 +01:00
Travis Ralston
26d8056755 Merge branch 'develop' into travis/feature/wellknown2 2019-05-22 23:06:09 -06:00
Travis Ralston
b772bc75a9 Update copyright 2019-05-22 22:57:39 -06:00
David Baker
001b7fb799 electron 4.2.2 2019-05-22 12:51:41 +01:00
David Baker
260f819e38 Merge pull request #9802 from RiotTranslateBot/weblate-riot-web-riot-web
Update from Weblate
2019-05-22 12:45:41 +01:00
Weblate
6306bc0c90 Merge branch 'origin/develop' into Weblate. 2019-05-21 12:27:12 +00:00
J. Ryan Stinnett
913bc6da93 Update yarn.lock 2019-05-21 13:27:02 +01:00
Weblate
6ac035f0b1 Merge branch 'origin/develop' into Weblate. 2019-05-21 10:33:16 +00:00
Matthew Hodgson
fa1b2fe70f Merge pull request #9766 from vector-im/matthew/twemoji
remove emojione
2019-05-21 11:33:12 +01:00
Travis Ralston
fa9d2a81a3 Merge branch 'develop' into travis/feature/wellknown2 2019-05-20 19:48:54 -06:00
Matthew Hodgson
4cbe6c1000 remove emojione 2019-05-19 21:26:11 +01:00
Weblate
c203d3356b Merge branch 'origin/develop' into Weblate. 2019-05-19 15:09:55 +00:00
Karol Kosek
d617d8ebb3 Translated using Weblate (Polish)
Currently translated at 89.5% (17 of 19 strings)

Translation: Riot Web/riot-web
Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/pl/
2019-05-19 15:09:55 +00:00
Edgars Voroboks
43d2c3bbc8 Translated using Weblate (Latvian)
Currently translated at 100.0% (19 of 19 strings)

Translation: Riot Web/riot-web
Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/lv/
2019-05-19 15:09:55 +00:00
Matthew Hodgson
3e17e9f00d tell webpack about woff & woff2 files 2019-05-19 16:09:47 +01:00
Filip Š
b54a53d1ac Translated using Weblate (Slovenian)
Currently translated at 100.0% (19 of 19 strings)

Translation: Riot Web/riot-web
Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/sl/
2019-05-18 14:15:56 +00:00
Tuomas Hietala
bdb0f5e81c Translated using Weblate (Finnish)
Currently translated at 100.0% (19 of 19 strings)

Translation: Riot Web/riot-web
Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/fi/
2019-05-18 14:15:55 +00:00
Fendo
29398a0ab5 Translated using Weblate (Esperanto)
Currently translated at 100.0% (19 of 19 strings)

Translation: Riot Web/riot-web
Translate-URL: https://translate.riot.im/projects/riot-web/riot-web/eo/
2019-05-18 14:15:55 +00:00
Travis Ralston
7a65dc96cd Merge pull request #9726 from vector-im/travis/wk/mobileguide
Show resolved homeserver configuration on the mobile guide
2019-05-17 11:01:42 -06:00
Travis Ralston
1ac5df3cd0 Merge branch 'develop' into travis/feature/wellknown2 2019-05-16 12:58:09 -06:00
Travis Ralston
39d1293350 Merge pull request #9721 from vector-im/travis/wk/fallback_hs
Flag the validated config as the default config
2019-05-16 12:47:01 -06:00
Travis Ralston
6f8c6bf13e Merge pull request #9736 from vector-im/travis/docker-test
Make Dockerfile work for develop and other branches
2019-05-16 08:43:44 -06:00
Travis Ralston
51f56719c0 Merge pull request #9719 from vector-im/travis/wk/clarify_is_hs_url
Clarify comment on is_url and hs_url handling
2019-05-16 08:41:34 -06:00
Tom Lant
45e8c26864 Update issue templates 2019-05-16 11:24:45 +01:00
Travis Ralston
3123b429f7 Increase timeout for yarn install in Docker builds
Otherwise we run into problems where Docker Hub's limited machines timeout trying to download our dependencies
2019-05-15 16:24:25 -06:00
David Baker
05a2cb1020 Merge branch 'master' into develop 2019-05-15 14:40:16 +01:00
David Baker
5aa88abacc v1.1.2 2019-05-15 14:36:52 +01:00
David Baker
e749420196 Prepare changelog for v1.1.2 2019-05-15 14:36:51 +01:00
David Baker
8ac5957186 v1.1.2 2019-05-15 14:34:59 +01:00
David Baker
d0def4a80f react-sdk 1.1.2 2019-05-15 14:34:13 +01:00
J. Ryan Stinnett
5a6be9a665 Add message editing to sample also 2019-05-15 11:12:12 +01:00
Bruno Windels
734221cc3f Merge pull request #9728 from vector-im/bwindels/message-edit-editor
add description of new labs feature for message editing
2019-05-15 09:23:34 +00:00
Bruno Windels
f5e7dd5164 add description of new labs feature for message editing 2019-05-15 10:02:50 +01:00
Travis Ralston
22cc33eb15 Do a simple .well-known lookup for default_server_name for mobile guide 2019-05-14 17:57:04 -06:00
Travis Ralston
559416dcae Show most homeserver options on the mobile guide
This doesn't cover default_server_name because that pulls in a questionable amount of JS.

See https://github.com/vector-im/riot-web/issues/9290
2019-05-14 17:00:06 -06:00
Travis Ralston
68a7550080 Flag the validated config as the default config
For use in the rest of the app.

See https://github.com/vector-im/riot-web/issues/9290
2019-05-14 13:12:34 -06:00
Travis Ralston
7f5589c01b Clarify comment on is_url and hs_url handling
We don't actually need to do anything because the app transparently handles this.

See https://github.com/vector-im/riot-web/issues/9290
2019-05-14 12:53:13 -06:00
David Baker
da9cde6d18 Merge branch 'master' into develop 2019-05-14 14:04:34 +01:00
David Baker
5aa8326dfc v1.1.1 2019-05-14 14:01:01 +01:00
David Baker
e4ed0994ce Prepare changelog for v1.1.1 2019-05-14 14:01:01 +01:00
David Baker
875d1b209a v1.1.1 2019-05-14 13:53:31 +01:00
David Baker
8ed44e6b64 matrix-react-sdk v1.1.1 2019-05-14 13:52:05 +01:00
Travis Ralston
886828caa8 Merge pull request #9496 from vector-im/travis/guests/block-ui
Validate default homeserver config before loading the app
2019-05-10 11:20:33 -06:00
David Baker
814b5297ad Merge branch 'master' into develop 2019-05-07 16:05:58 +01:00
David Baker
2ab8db3c0c v1.1.0 2019-05-07 15:55:56 +01:00
David Baker
94979f7ff5 Prepare changelog for v1.1.0 2019-05-07 15:55:55 +01:00
David Baker
5c46bd37e8 v1.1.0 2019-05-07 15:54:38 +01:00
David Baker
c81b9bab79 Released react-sdk and js-sdk 2019-05-07 15:52:50 +01:00
J. Ryan Stinnett
818bab9fa4 Merge pull request #9632 from vector-im/travis/dockerfile-release
Add Dockerfile
2019-05-07 10:07:08 +01:00
Matthew Hodgson
ee0b7e9c82 use right android app id 2019-05-04 10:50:14 -06:00
Matthew Hodgson
03b2766ca8 use right android app id 2019-05-04 17:28:02 +01:00
Travis Ralston
fc5c93ab5f Fix unit tests for new login
Supply a server config to the component and adjust the wait logic to be less of a race. The Login component will noop onPasswordLogin if it is "busy", and it is busy when it requests the login flows.
2019-05-03 16:27:41 -06:00
Travis Ralston
eee2468a01 Merge branch 'travis/dockerfile-continued' into travis/dockerfile-release 2019-05-03 11:45:20 -06:00
Travis Ralston
a5092dc763 Fix tests to use new server config options 2019-05-03 11:06:32 -06:00
Travis Ralston
bf97fd67b4 Handle cases of no default server 2019-05-03 11:06:32 -06:00
Travis Ralston
45caa8baab Add a couple notes 2019-05-03 11:06:32 -06:00
Travis Ralston
ab6ba0e0d8 Add some clarity to the config options 2019-05-03 11:06:32 -06:00
Travis Ralston
e7bf643d8b Don't repackage the ValidatedDiscoveryConfig
It's usable as-is, and we can add things to it when we need to (ie: integrations).
2019-05-03 11:06:32 -06:00
Travis Ralston
c8caf6797d Move bulk of discovery processing to react-sdk 2019-05-03 11:06:32 -06:00
Travis Ralston
51941eae49 Add note to self 2019-05-03 11:06:32 -06:00
Travis Ralston
5445632026 Use new js-sdk properties for getting discovery errors
Requires https://github.com/matrix-org/matrix-js-sdk/pull/899
2019-05-03 11:06:32 -06:00
Travis Ralston
f08491cee8 Validate default homeserver config before loading the app
Implements the process described here: https://github.com/vector-im/riot-web/issues/9290#issuecomment-481966910

The expectation is that later layers (like the react-sdk) will make use of the `validated_discovery_config` option instead of interpreting the config themselves.

We intentionally block the UI from loading here to avoid races between discovery and the app loading.
2019-05-03 11:06:32 -06:00
David Baker
9cd4ac1df4 Merge pull request #9628 from vector-im/dbkr/thanks_you_junit_but_its_not_2005_anymore
Remove karma junit output
2019-05-03 12:43:04 +01:00
David Baker
c612633402 Merge remote-tracking branch 'origin/develop' into dbkr/thanks_you_junit_but_its_not_2005_anymore 2019-05-03 12:37:28 +01:00
David Baker
0c36849c0f Merge pull request #9626 from vector-im/dbkr/yarn_upgrade_may19
yarn upgrade
2019-05-03 12:36:26 +01:00
David Baker
1a1f2254e5 Remove karma junit output
See https://github.com/matrix-org/matrix-react-sdk/pull/2944
2019-05-03 11:40:53 +01:00
David Baker
908a72e00e yarn upgrade
ALL THE UPDATES!

(so many updates)
2019-05-03 11:13:04 +01:00
David Baker
2fe6b5074d Merge pull request #9617 from vector-im/dbkr/arghbuildkite
Respond quickly to buildkite pokes
2019-05-02 18:13:38 +01:00
David Baker
a7756fc876 Respond quickly to buildkite pokes
Otherwise it thinks they have failed, as per comment.
2019-05-02 18:05:11 +01:00
J. Ryan Stinnett
8cb7eeecd2 Merge pull request #9616 from vector-im/jryans/delay-favicon
Delay creating the `Favico` instance
2019-05-02 13:51:46 +01:00
J. Ryan Stinnett
d4de7f5df3 Delay creating the Favico instance
This avoids a canvas permission prompt from appearing on page load for users in
Firefox's resist fingerprinting mode. The prompt will still happen once you log
in and receive a notification, but at least this prevents it from happening
during the initial app experience.

Fixes https://github.com/vector-im/riot-web/issues/9605
2019-05-02 13:29:25 +01:00
J. Ryan Stinnett
989b75502c Merge pull request #9598 from jryans/primary-reactions
Add reactions feature to config sample
2019-05-01 20:26:12 +01:00
J. Ryan Stinnett
bb675fde0c Tweak redundant title 2019-05-01 19:16:21 +01:00
J. Ryan Stinnett
6df5c35b4e Move to labs doc 2019-05-01 19:16:21 +01:00
Travis Ralston
9957149115 Merge pull request #9426 from vector-im/travis/dockerfile-continued
Add Dockerfile (part 2)
2019-05-01 10:42:21 -06:00
David Baker
f98870db1f Merge pull request #9601 from vector-im/dbkr/add_scalar_staging_vector_im
Add new scalar staging url
2019-05-01 11:51:08 +01:00
David Baker
7c5e39e170 Add new scalar staging url 2019-05-01 11:45:11 +01:00
J. Ryan Stinnett
ebe2ab504b Add reactions feature description 2019-05-01 10:30:57 +01:00
David Baker
e4f997113d v1.1.0-rc.1 2019-04-30 12:49:40 +01:00
David Baker
cb155769d5 Prepare changelog for v1.1.0-rc.1 2019-04-30 12:49:39 +01:00
David Baker
49efece6c6 v1.1.0-rc.1 2019-04-30 12:48:52 +01:00
David Baker
846797be76 add new babel plugins to deps 2019-04-30 12:48:18 +01:00
David Baker
d6d4d95b20 Fix .babelrc to be the same as react-sdk
it was missing some plugins which firstly means we're using inconsistent
js between projects, but also causes builds to fail due to our unique
build system.
2019-04-30 12:42:04 +01:00
David Baker
cc8eaea5a7 js-sdk & react-sdk rc.1, electron 4.1.5 2019-04-30 12:10:06 +01:00
David Baker
269a995a01 We are now releases@riot.im 2019-04-30 11:49:49 +01:00
David Baker
77dff119db Fix variable scope in redeployer 2019-04-26 16:26:48 +01:00
David Baker
0718d438b8 Fix more typos in redeployer 2019-04-26 16:19:49 +01:00
David Baker
3a2541d3bf more logging for auto-deployer 2019-04-26 16:16:14 +01:00
David Baker
00d33599f0 Merge pull request #9577 from vector-im/dbkr/convert_redeploy_server_to_buildkite
Convert redeploy.py to buildkite
2019-04-26 16:04:04 +01:00
David Baker
f49732b036 Link to buildkite webhook docs 2019-04-26 15:41:20 +01:00
J. Ryan Stinnett
73144c3493 Typing is hard
Co-Authored-By: dbkr <dbkr@users.noreply.github.com>
2019-04-26 15:40:23 +01:00
J. Ryan Stinnett
c5e7e82b46 I can't type buildkite
Co-Authored-By: dbkr <dbkr@users.noreply.github.com>
2019-04-26 15:40:05 +01:00
David Baker
af6ad9355d Convert redeploy.py to buildkite 2019-04-26 15:26:03 +01:00
David Baker
6c4c908678 consistent capitalisation in buildkite pipelines 2019-04-26 15:09:01 +01:00
David Baker
ae62a46a97 Merge pull request #9568 from vector-im/dbkr/buildkite_cd
Add package step to buildkite pipeline
2019-04-26 14:43:43 +01:00
David Baker
bf84c64ea9 Only bother packaging the develop branch 2019-04-26 14:38:36 +01:00
David Baker
5ac8a42681 Merge remote-tracking branch 'origin/develop' into dbkr/buildkite_cd 2019-04-26 14:37:11 +01:00
David Baker
03b1914112 Merge pull request #9571 from vector-im/dbkr/package_dont_fail_if_no_local_config
Don't fail if there's no local config to remove
2019-04-26 14:36:28 +01:00
David Baker
ff21bde839 Merge branch 'dbkr/package_dont_fail_if_no_local_config' into dbkr/buildkite_cd 2019-04-26 14:28:45 +01:00
David Baker
c62da0eda6 Don't fail if there's no local config to remove
The script has a set -e so don't fail if there's nothing to rm
2019-04-26 14:13:02 +01:00
David Baker
932d3a054c Merge remote-tracking branch 'origin/develop' into dbkr/buildkite_cd 2019-04-26 13:22:39 +01:00
David Baker
a67fd48720 Merge pull request #9567 from vector-im/dbkr/bye_bye_jenkins
Change jenkins script to package script
2019-04-26 13:19:33 +01:00
David Baker
afc2b48073 combine sets 2019-04-26 12:22:32 +01:00
David Baker
093d30121d Try running packager with buildkite 2019-04-26 12:21:21 +01:00
David Baker
1b8583fa51 Change jenkins script to package script
Take the useful part of the jenkins script and put it in a script
that makes a package with the git hashes as its version.
2019-04-26 11:25:41 +01:00
J. Ryan Stinnett
ea37e777cf Add reactions feature to config sample 2019-04-26 10:56:35 +01:00
Richard van der Hoff
cc5911b4aa Remove redundant and incorrect riot-desktop install instructions (#9558) 2019-04-25 13:22:32 +01:00
J. Ryan Stinnett
28d50100d8 Merge pull request #9555 from jryans/rm-config-from-package
Remove config.json from package dir
2019-04-25 09:40:44 +01:00
Hubert Chathi
8ef464597f Merge pull request #9550 from uhoreg/olm-3.1.0
use the release version of olm 3.1.0
2019-04-24 18:19:22 -04:00
Hubert Chathi
2c64a4f3a1 update yarn.lock with olm release 2019-04-24 12:02:41 -04:00
J. Ryan Stinnett
8002d98f50 Remove config.json from package dir 2019-04-24 11:28:26 +01:00
Hubert Chathi
9519ad46a1 use the release version of olm 3.1.0 2019-04-23 18:08:07 -04:00
David Baker
597b3e16e0 Merge pull request #9517 from vector-im/dbkr/fix_deploy_script_include_default
Fix default for --include arg
2019-04-17 18:46:56 +01:00
David Baker
addca871ad Fix default for --include arg
nargs options are arrays and we assume it's an array later, so it
would iterate over each char of the string if left as the default
2019-04-17 18:31:36 +01:00
David Baker
2c0504d596 Merge pull request #9500 from axelsimon/patch-1
update installation instructions with new repo
2019-04-17 09:34:35 +01:00
axel simon
434e8cc937 Changed the Debian repo key and public key URLs 2019-04-16 21:03:53 +02:00
axel simon
6c950593b7 the repo key filename changed, reflecting this 2019-04-16 17:58:54 +02:00
David Baker
147f77f1dc Update README.md
better wording

Co-Authored-By: axelsimon <github@axelsimon.net>
2019-04-16 17:55:49 +02:00
Travis Ralston
86bbe156db Merge pull request #9498 from vector-im/travis/packages.matrix.org
Use packages.matrix.org for Olm
2019-04-16 08:28:38 -06:00
J. Ryan Stinnett
bb5dedeeb9 Update yarn.lock 2019-04-16 13:31:58 +01:00
axel simon
261974e9eb update installation instructions with new repo
change mentions of https://riot.im/packages to https://packages.riot.im
add instructions to remove old, now-untrusted riot.im signing key
update language and move from 'apt-get` to the simpler `apt`
2019-04-16 13:53:59 +02:00
Travis Ralston
cbaa7a81bf Use packages.matrix.org for Olm
Fixes https://github.com/vector-im/riot-web/issues/9497
2019-04-15 19:18:33 -06:00
David Baker
f400cea437 Merge branch 'master' into develop 2019-04-16 01:26:24 +01:00
David Baker
dcbe75ec2c v1.0.8 2019-04-16 01:22:59 +01:00
David Baker
fec98fd4a9 Prepare changelog for v1.0.8 2019-04-16 01:22:59 +01:00
David Baker
29cb8c42b0 v1.0.8 2019-04-16 01:22:02 +01:00
J. Ryan Stinnett
d187a437fe Merge pull request #9412 from vector-im/anoa/electron_platform_builds
Add separate platform electron build commands
2019-04-11 17:16:54 +01:00
Travis Ralston
a263ca8cb3 Add USE_CUSTOM_SDKS to docs 2019-04-10 15:51:06 -06:00
Travis Ralston
eeae5dbcad Add docs for the Docker image 2019-04-10 15:47:12 -06:00
Travis Ralston
1bb70930fa Support custom SDKs and use yarn 2019-04-10 15:47:02 -06:00
Travis Ralston
8e76cf2c13 Ignore a bunch of files in the docker build to reduce context size 2019-04-10 15:45:42 -06:00
Travis Ralston
9bf5828079 Merge branch 'develop' into travis/dockerfile-continued 2019-04-10 15:04:36 -06:00
J. Ryan Stinnett
b3bee52ad1 Merge pull request #9408 from pacien/custom-profiledir
Add support for custom profile directory
2019-04-10 10:45:06 +01:00
pacien
2c9b51f29d Add support for custom profile directory
A custom user data directory can now be specified using the "profile-dir"
command line argument.

Github ref: closes #6175

Signed-off-by: Pacien TRAN-GIRARD <pacien.trangirard@pacien.net>
2019-04-09 19:35:14 +02:00
Andrew Morgan
96be8ad072 Remove 32-bit builds for MacOS and Linux 2019-04-09 18:24:30 +01:00
Andrew Morgan
38b661e2cb Switch to yarn 2019-04-09 17:03:58 +01:00
Andrew Morgan
657397b177 Add separate platform electron build commands
Add commands for building separate electron builds for each platform
2019-04-09 17:01:19 +01:00
Nad Chishtie
0796f32c17 Merge pull request #9410 from vector-im/nadonomy/mobile-install-guide
Improved mobile install guide
2019-04-09 17:07:20 +02:00
Nad Chishtie
c70a2925a8 More responsive styling. 2019-04-09 17:05:41 +02:00
Nad Chishtie
17788b2027 Improved responsive styling. 2019-04-09 16:40:41 +02:00
Nad Chishtie
527dc1982e Updated branding. 2019-04-09 16:40:04 +02:00
J. Ryan Stinnett
449065b466 Merge pull request #9404 from vector-im/anoa/no_vec-elec_desktop
Remove vector-electron-desktop from README
2019-04-08 17:24:40 +01:00
Andrew Morgan
8a48d9e86b Remove vector-electron-desktop from README
The repo (https://github.com/iskrisis/vector-electron-desktop) very clearly states not to use it anymore.
2019-04-08 17:11:58 +01:00
Bruno Windels
a41a14b975 Merge branch 'master' into develop 2019-04-08 16:21:13 +02:00
Bruno Windels
f76b30af15 v1.0.7 2019-04-08 16:18:22 +02:00
Bruno Windels
44258ffa4b Prepare changelog for v1.0.7 2019-04-08 16:18:21 +02:00
Bruno Windels
659c29cf77 v1.0.7 2019-04-08 16:16:46 +02:00
Bruno Windels
b6da314692 bump js-sdk to 1.0.4 and react-sdk to 1.0.7 2019-04-08 16:15:05 +02:00
David Baker
26955d2b79 Merge pull request #9398 from RiotTranslateBot/weblate-riot-web-riot-web
Update from Weblate
2019-04-08 09:40:59 +01:00
Weblate
0a79496f0c Merge branch 'origin/develop' into Weblate. 2019-04-08 08:37:28 +00:00
Maros Dumitru
1d23f8c2f4 Translated using Weblate (Romanian)
Currently translated at 100.0% (19 of 19 strings)

Translation: Riot Web/riot-web
Translate-URL: http://translate.riot.im/projects/riot-web/riot-web/ro/
2019-04-08 08:37:25 +00:00
Tuomas Hietala
8d27ed986c Translated using Weblate (Finnish)
Currently translated at 100.0% (19 of 19 strings)

Translation: Riot Web/riot-web
Translate-URL: http://translate.riot.im/projects/riot-web/riot-web/fi/
2019-04-08 08:37:25 +00:00
Nathan Follens
9b8607fc64 Translated using Weblate (Dutch)
Currently translated at 100.0% (19 of 19 strings)

Translation: Riot Web/riot-web
Translate-URL: http://translate.riot.im/projects/riot-web/riot-web/nl/
2019-04-08 08:37:25 +00:00
Filip Š
a5993419c4 Added translation using Weblate (Slovenian) 2019-04-07 19:34:31 +00:00
Hubert Chathi
ab136c42a7 Merge pull request #9392 from uhoreg/bump_olm_3.0.0_pre3
bump olm version to 3.1.0-pre3
2019-04-05 16:45:22 -04:00
Hubert Chathi
ec08cd99aa bump olm version 2019-04-05 16:22:06 -04:00
Travis Ralston
2aeaa081fe Merge pull request #9383 from vector-im/travis/expire-mobile-page
Add expiration to mobile guide cookie
2019-04-04 12:00:10 -06:00
Travis Ralston
b72ae197e5 Use a different cookie to expire any cookies people may already have
We also check for a specific value in case people set it to `true` for some reason.
2019-04-03 18:11:25 -06:00
Travis Ralston
0d2668f2b1 Step cookie down to 4 hours 2019-04-03 18:01:09 -06:00
Travis Ralston
50b4906ea8 Merge pull request #9368 from vector-im/travis/autolaunch
Fix autolaunch setting appearing toggled off
2019-04-03 08:40:01 -06:00
Travis Ralston
f36a24fef0 Fix autolaunch setting appearing toggled off
Fixes https://github.com/vector-im/riot-web/issues/9123

The value used here is a function which returns a promise, not a flag.
2019-04-02 17:59:47 -06:00
Travis Ralston
b1c885a266 Expire mobile guide cookie after 24 hours
See https://github.com/vector-im/riot-web/issues/9360

This is to prevent it from always working. Cookies without an expiration are supposed to expire at the end of the session, however the nature of mobile browsers means that the session is unlikely to ever end.
2019-04-02 11:18:05 -06:00
Travis Ralston
958260d559 Merge pull request #9352 from vector-im/travis/save-as-2
Don't try to save files the user didn't want to save
2019-04-02 07:33:36 -06:00
Travis Ralston
8b2d33ac0a Don't try to save files the user didn't want to save
Fixes https://github.com/vector-im/riot-web/issues/9350
2019-04-01 13:24:17 -06:00
J. Ryan Stinnett
95e247ae7c Merge pull request #9325 from jryans/storage-eviction-modal
Setup crypto store for restore session tests
2019-04-01 17:31:11 +01:00
David Baker
c55223e750 Merge branch 'master' into develop 2019-04-01 13:58:50 +01:00
David Baker
164a0e0160 v1.0.6 2019-04-01 13:55:12 +01:00
David Baker
3265f84266 Prepare changelog for v1.0.6 2019-04-01 13:55:12 +01:00
David Baker
2bac72fa36 v1.0.6 2019-04-01 13:53:18 +01:00
David Baker
51f6d02cf1 Released js-sdk & react-sdk, and bump electron version 2019-04-01 13:52:11 +01:00
David Baker
9cb452ad20 Merge pull request #9333 from RiotTranslateBot/weblate-riot-web-riot-web
Update from Weblate
2019-04-01 12:03:18 +01:00
David Baker
bc70577701 Deleted translation using Weblate (English (United Kingdom)) 2019-04-01 11:00:31 +00:00
Weblate
076c7f54a8 Merge branch 'origin/develop' into Weblate. 2019-04-01 08:41:48 +00:00
random
0837affa24 Translated using Weblate (Italian)
Currently translated at 100.0% (19 of 19 strings)

Translation: Riot Web/riot-web
Translate-URL: http://translate.riot.im/projects/riot-web/riot-web/it/
2019-04-01 08:41:46 +00:00
Micheál Ó hÓgáin
c82d4f3e44 Translated using Weblate (Irish)
Currently translated at 100.0% (19 of 19 strings)

Translation: Riot Web/riot-web
Translate-URL: http://translate.riot.im/projects/riot-web/riot-web/ga/
2019-04-01 08:41:46 +00:00
Samu Voutilainen
a898aad667 Translated using Weblate (Finnish)
Currently translated at 100.0% (19 of 19 strings)

Translation: Riot Web/riot-web
Translate-URL: http://translate.riot.im/projects/riot-web/riot-web/fi/
2019-04-01 08:41:45 +00:00
Carmen Bianca Bakker
f0a997629d Translated using Weblate (Esperanto)
Currently translated at 63.1% (12 of 19 strings)

Translation: Riot Web/riot-web
Translate-URL: http://translate.riot.im/projects/riot-web/riot-web/eo/
2019-04-01 08:41:45 +00:00
Eden Tyler-Moss
8ecdb484c3 Translated using Weblate (English (United Kingdom))
Currently translated at 100.0% (19 of 19 strings)

Translation: Riot Web/riot-web
Translate-URL: http://translate.riot.im/projects/riot-web/riot-web/en_GB/
2019-04-01 08:41:45 +00:00
Nathan Follens
128abb46d2 Translated using Weblate (Dutch)
Currently translated at 100.0% (19 of 19 strings)

Translation: Riot Web/riot-web
Translate-URL: http://translate.riot.im/projects/riot-web/riot-web/nl/
2019-04-01 08:41:45 +00:00
Besnik Bleta
bfa2101da0 Translated using Weblate (Albanian)
Currently translated at 100.0% (19 of 19 strings)

Translation: Riot Web/riot-web
Translate-URL: http://translate.riot.im/projects/riot-web/riot-web/sq/
2019-04-01 08:41:45 +00:00
J. Ryan Stinnett
e2cd44d69f Merge pull request #9327 from vector-im/travis/1.0.6-fire/9326
Add "Save image as..." button to context menu on images
2019-04-01 09:29:09 +01:00
Travis Ralston
7a9cea4baa Add "Save image as..." button to context menu on images
Fixes https://github.com/vector-im/riot-web/issues/9324
Requires https://github.com/matrix-org/matrix-react-sdk/pull/2848
2019-03-29 16:21:25 -06:00
Travis Ralston
15ff53dcb6 Merge pull request #9326 from vector-im/travis/electron-save-as
Add "Save image as..." button to context menu on images
2019-03-29 15:49:39 -06:00
Travis Ralston
866f8f54ec Add "Save image as..." button to context menu on images
Fixes https://github.com/vector-im/riot-web/issues/9324
Requires https://github.com/matrix-org/matrix-react-sdk/pull/2848
2019-03-29 14:57:02 -06:00
J. Ryan Stinnett
eb1d1517ca Setup crypto store for restore session tests
The new storage consistency work expects a crypto store exist together with
local storage. This updates the loading tests to create them together.

Needed for https://github.com/vector-im/riot-web/issues/9109
2019-03-29 18:01:04 +00:00
J. Ryan Stinnett
fa10022496 Add key to footer links to appease React 2019-03-29 15:58:41 +00:00
J. Ryan Stinnett
01794ae65f Merge pull request #9297 from TheJJ/custom_login_footer_links
Configure auth footer links through Riot config
2019-03-28 13:04:11 +00:00
Jonas Jelten
5a051824c0 configure auth footer links through sdkconfig
Signed-off-by: Jonas Jelten <jelten@in.tum.de>
2019-03-28 12:32:10 +01:00
David Baker
d1a5b79bc3 v1.0.6-rc.1 2019-03-27 17:47:47 +00:00
David Baker
c9e70fb0c6 Prepare changelog for v1.0.6-rc.1 2019-03-27 17:47:46 +00:00
David Baker
f392a00138 v1.0.6-rc.1 2019-03-27 17:46:32 +00:00
David Baker
d747896354 react-sdk & js-sdk rc.1 2019-03-27 17:44:30 +00:00
J. Ryan Stinnett
a8e4949616 Update matrix-mock-request 2019-03-27 15:09:34 +00:00
J. Ryan Stinnett
e8ec6cc1b1 Merge pull request #9279 from jryans/storage-edge-cases
Use `on_logged_in` action in tests
2019-03-27 09:22:30 +00:00
J. Ryan Stinnett
fef69b54fb Use on_logged_in action in tests
This changes the way tests wait for login to complete from a timer-based system
(which can cause intermittent failures) to an action-based system. The lifecycle
code dispatches the action `on_logged_in` when login completes which we can wait
for in the tests as a much better indication that work is done.
2019-03-26 15:21:53 +00:00
Eden Tyler-Moss
f4a0ff3642 Added translation using Weblate (English (United Kingdom)) 2019-03-26 14:44:27 +00:00
J. Ryan Stinnett
5112b33af2 Remove unused test helper 2019-03-26 14:41:10 +00:00
J. Ryan Stinnett
2e24b0c53b Merge pull request #9278 from jryans/storage-edge-cases
Convert away from `Promise.defer`
2019-03-26 13:26:00 +00:00
J. Ryan Stinnett
f321aba4ac Convert away from Promise.defer
`Promise.defer` is deprecated in Bluebird and it logs loudly each time it's
called. This cleans up testing logs significantly by converting away from it.
2019-03-26 12:46:26 +00:00
J. Ryan Stinnett
7ac117f964 Merge pull request #9233 from vector-im/bwindels/updatelockafterrelease
update react-sdk version in yarn lockfile
2019-03-26 11:17:45 +00:00
Peter Vágner
9d133eea75 Translated using Weblate (Slovak)
Currently translated at 63.1% (12 of 19 strings)

Translation: Riot Web/riot-web
Translate-URL: http://translate.riot.im/projects/riot-web/riot-web/sk/
2019-03-26 10:58:31 +00:00
Ben Parsons
5566fd4f32 Merge pull request #9154 from vector-im/benp/labs-docs
"Render simple counters in room header" details
2019-03-22 14:58:37 +00:00
Ben Parsons
d098857d5a wrap text and link from README.md 2019-03-22 14:49:44 +00:00
Ben Parsons
24296ca44e Merge branch 'develop' into benp/labs-docs 2019-03-22 14:45:01 +00:00
Travis Ralston
8e5147976a Merge pull request #9238 from vector-im/travis/buildkite2
Use medium agents for the more resource intensive builds
2019-03-21 12:11:44 -06:00
Travis Ralston
8b097bcd8c Use medium agents for the more resource intensive builds 2019-03-21 11:00:06 -06:00
Bruno Windels
7fb4b32e8f update react-sdk version in yarn lockfile 2019-03-21 13:55:46 +01:00
Bruno Windels
f777c2c9bc Merge branch 'master' into develop 2019-03-21 11:40:43 +01:00
Bruno Windels
e413d69d0b Merge branch 'release-v1.0.5' 2019-03-21 11:40:30 +01:00
Bruno Windels
c8692473a4 v1.0.5 2019-03-21 11:37:35 +01:00
Bruno Windels
a84a599f16 Prepare changelog for v1.0.5 2019-03-21 11:37:35 +01:00
Bruno Windels
0dd1a7b309 v1.0.5 2019-03-21 11:34:17 +01:00
Bruno Windels
4792eb4aa4 bump matrix-react-sdk version to 1.0.5 2019-03-21 11:31:12 +01:00
David Baker
5fcf884303 Merge pull request #9223 from vector-im/dbkr/buildkite_group_logs
Add log grouping to buildkite
2019-03-20 21:47:28 +00:00
David Baker
930ac3ae18 Add log grouping to buildkite
It mostly truncates the log anyway but what are you gonna do
2019-03-20 21:33:25 +00:00
J. Ryan Stinnett
38a24bf4ce Merge pull request #9222 from jryans/git-proto
Switch to `git` protocol for CI dependencies
2019-03-20 20:53:19 +00:00
J. Ryan Stinnett
52ad757cf4 Switch to git protocol for CI dependencies
If you try to clone a repo that doesn't exist via `https`, `git` will prompt for
auth credentials and hang forever. Using `git` avoids this and fails immediately
instead, which is what we want for a missing repo.

Part of https://github.com/vector-im/riot-web/issues/9221
2019-03-20 18:06:18 +00:00
J. Ryan Stinnett
82d7457168 Merge pull request #9212 from jryans/ci-forks
Support CI for matching branches on forks
2019-03-20 09:57:03 +00:00
J. Ryan Stinnett
f5c28a19e1 Support CI for matching branches on forks
Currently, people with push access to the main Riot repos can push matching
branch names to Riot and the SDKs, and CI will test all the branches together.
This change allows contributors to access the same ability when submitting
several matching PRs from their fork of each repo.

Part of https://github.com/vector-im/riot-web/issues/9041
2019-03-19 18:17:27 +00:00
David Baker
9735c332ff Merge branch 'master' into develop 2019-03-18 16:27:39 +00:00
David Baker
2de1f375fa Update yarn.lock
which wasn't updated at release time
2019-03-18 16:27:01 +00:00
David Baker
42c2692d28 Merge branch 'master' into develop 2019-03-18 14:20:09 +00:00
David Baker
dceb2dd671 v1.0.4 2019-03-18 14:16:23 +00:00
David Baker
9001416343 Prepare changelog for v1.0.4 2019-03-18 14:16:23 +00:00
David Baker
5254cef980 v1.0.4 2019-03-18 14:11:52 +00:00
David Baker
59ebb15fe9 Released js-sdk & react-sdk 2019-03-18 14:11:09 +00:00
David Baker
e6addecd8f Merge pull request #9199 from RiotTranslateBot/weblate-riot-web-riot-web
Update from Weblate
2019-03-18 10:18:54 +00:00
Weblate
2029aa31d3 Merge branch 'origin/develop' into Weblate. 2019-03-18 09:26:44 +00:00
Micheál Ó hÓgáin
8b3f473b60 Translated using Weblate (Irish)
Currently translated at 100.0% (19 of 19 strings)

Translation: Riot Web/riot-web
Translate-URL: http://translate.riot.im/projects/riot-web/riot-web/ga/
2019-03-18 09:26:43 +00:00
Gene Wood
723d28e549 Translated using Weblate (English (United States))
Currently translated at 100.0% (19 of 19 strings)

Translation: Riot Web/riot-web
Translate-URL: http://translate.riot.im/projects/riot-web/riot-web/en_US/
2019-03-18 09:26:42 +00:00
Micheál Ó hÓgáin
fae63d04e0 Added translation using Weblate (Irish) 2019-03-17 01:41:44 +00:00
Travis Ralston
abb6bee44d Merge pull request #9177 from vector-im/travis/browser-support-docs
Declare the officially supported browsers in the README
2019-03-15 12:04:17 -06:00
J. Ryan Stinnett
faa9932c77 Merge pull request #9011 from vector-im/t3chguy/local-config
Document some desktop app things
2019-03-15 17:53:55 +00:00
J. Ryan Stinnett
95611d2c12 Update README.md grammar 2019-03-15 17:53:20 +00:00
Travis Ralston
25c767c79e Merge remote-tracking branch 'origin/develop' into travis/browser-support-docs 2019-03-15 11:44:09 -06:00
Travis Ralston
771909eddb Merge pull request #9165 from vector-im/travis/buildkite
Use Buildkite for CI
2019-03-15 11:43:43 -06:00
Travis Ralston
631fcb0ad2 Cross-promote mobile apps 2019-03-15 11:43:00 -06:00
Travis Ralston
df7b617881 Fix downstream branch fetching
We should be giving the PR the best possible chance at passing the build.
2019-03-15 10:23:43 -06:00
Tom Lant
bccdd60889 Update issue templates 2019-03-15 14:24:45 +00:00
Travis Ralston
e47728e0e4 Declare the officially supported browsers in the README
Fixes https://github.com/vector-im/riot-web/issues/8701
2019-03-14 12:59:57 -06:00
J. Ryan Stinnett
61a79a36f8 Merge pull request #9170 from Mikaela/issue-templates
Update version number in issue templates
2019-03-14 10:14:22 +00:00
Mikaela Suomalainen
49165a09c3 Update version number in issue templates
Signed-off-by: Mikaela Suomalainen <mikaela+git@mikaela.info>
2019-03-14 12:03:11 +02:00
Travis Ralston
ef6313fbb4 Use the right CI branch 2019-03-13 22:44:28 -06:00
Travis Ralston
1fb8b23d4c Set up BuildKite for Chrome 2019-03-13 22:03:37 -06:00
Travis Ralston
f6d4c6a5a3 Lint doesn't need develop deps 2019-03-13 18:40:48 -06:00
Travis Ralston
0b4c52c032 Remove Travis (CI)
We're using BuildKite now
2019-03-13 18:40:48 -06:00
Travis Ralston
b6cdaa8597 Add a basic BuildKite :pipeline: 2019-03-13 18:40:47 -06:00
Travis Ralston
1d51507134 Merge pull request #9159 from vector-im/travis/node-8-isnt-real
Remove node 8.x from the build matrix
2019-03-13 14:48:33 -06:00
Travis Ralston
789a0da176 Remove irrelevant warning 2019-03-13 14:39:10 -06:00
Travis Ralston
df164d7489 Remove node 8.x from the build matrix
We don't support Node 8 anymore. Also the build is broken.
2019-03-13 14:10:12 -06:00
Travis Ralston
6ac69c109c Merge pull request #9157 from aaronraimist/electron-help
Update Electron help menu link
2019-03-13 13:52:31 -06:00
Aaron Raimist
b40ed7cb11 Update Electron help menu link
Signed-off-by: Aaron Raimist <aaron@raim.ist>
2019-03-13 14:43:24 -05:00
Ben Parsons
ee85c04796 "Render simple counters in room header" details 2019-03-13 17:54:46 +00:00
J. Ryan Stinnett
660a160c8e Ignore package-lock.json in case of confused npm users 2019-03-13 15:49:07 +00:00
J. Ryan Stinnett
ef090846e2 Deduplicate log ignore 2019-03-13 15:46:01 +00:00
J. Ryan Stinnett
75a7e7ce82 Update webpack-dev-server 2019-03-13 15:07:50 +00:00
J. Ryan Stinnett
aae5ca0763 Ignore *.log files, such as from npm or Yarn 2019-03-13 14:44:01 +00:00
Michael Telatynski
01becf00f5 Try and improve README
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2019-03-01 08:01:26 +00:00
kaiyou
e47fae034a Add some layers to cache installed dependencies at build time 2018-12-06 10:00:20 +01:00
kaiyou
045b0b9889 Add a two-stages Dockerfile for building Riot 2018-12-04 16:51:37 +01:00
rugk
6437b490a6 Fix another typo 2018-03-21 16:18:08 +01:00
rugk
3c3fd7cf2a Remove typo 2018-03-05 21:47:28 +01:00
rugk
cfed0cbd0d Mention localhost 2018-03-05 21:37:07 +01:00
rugk
93da078669 Clarify that HTTPS is not just needed for VoIP
…but for basic security.
2018-02-15 02:17:37 +01:00
99 changed files with 5816 additions and 3284 deletions

View File

@@ -1,4 +1,21 @@
{
"presets": ["react", "es2015", "es2016"],
"plugins": ["transform-class-properties", "transform-object-rest-spread", "transform-async-to-bluebird", "transform-runtime", "add-module-exports"]
"presets": [
"react",
"es2015",
"es2016"
],
"plugins": [
[
"transform-builtin-extend",
{
"globals": ["Error"]
}
],
"transform-class-properties",
"transform-object-rest-spread",
"transform-async-to-bluebird",
"transform-runtime",
"add-module-exports",
"syntax-dynamic-import"
]
}

57
.buildkite/pipeline.yaml Normal file
View File

@@ -0,0 +1,57 @@
steps:
- label: ":eslint: Lint"
command:
- "yarn install"
- "yarn lint"
plugins:
- docker#v3.0.1:
image: "node:10"
- label: ":karma: Tests"
agents:
# We use a medium sized instance instead of the normal small ones because
# webpack loves to gorge itself on resources.
queue: "medium"
command:
# Install chrome
- "echo '--- Installing Chrome'"
- "wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add -"
- "sh -c 'echo \"deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main\" >> /etc/apt/sources.list.d/google.list'"
- "apt-get update"
- "apt-get install -y google-chrome-stable"
# Run tests
- "echo '--- Fetching Dependencies'"
- "./scripts/fetch-develop.deps.sh --depth 1"
- "yarn install"
- "echo '+++ Running Tests'"
- "yarn test"
env:
CHROME_BIN: "/usr/bin/google-chrome-stable"
plugins:
- docker#v3.0.1:
image: "node:10"
propagate-environment: true
- label: ":hammer: Package"
command:
- "echo '--- Fetching Dependencies'"
- "./scripts/fetch-develop.deps.sh --depth 1"
- "yarn install"
- "echo '+++ Packaging'"
- "./scripts/ci_package.sh"
branches: "develop"
artifact_paths: "dist/riot-*.tar.gz"
plugins:
- docker#v3.0.1:
image: "node:10"
- label: "🌐 i18n"
command:
- "echo '--- Fetching Dependencies'"
- "./scripts/fetch-develop.deps.sh --depth 1"
- "yarn install"
- "echo '+++ Testing i18n output'"
- "yarn diff-i18n"
plugins:
- docker#v3.0.1:
image: "node:10"

11
.dockerignore Normal file
View File

@@ -0,0 +1,11 @@
# Exclude a bunch of stuff which can make the build context a larger than it needs to be
.git/
test/
webapp/
lib/
node_modules/
electron_app/
karma-reports/
.idea/
.tmp/
config.json*

2
.github/FUNDING.yml vendored Normal file
View File

@@ -0,0 +1,2 @@
patreon: matrixdotorg
liberapay: matrixdotorg

View File

@@ -43,4 +43,4 @@ For the web app:
For the desktop app:
- **OS**: Windows, macOS, Ubuntu, Arch Linux, etc?
- **Version**: 0.x.y <!-- check the user settings panel if unsure -->
- **Version**: 1.x.y <!-- check the user settings panel if unsure -->

View File

@@ -2,7 +2,7 @@
name: Bug report
about: Create a report to help us improve
title: ''
labels: ''
labels: bug
assignees: ''
---
@@ -31,9 +31,10 @@ Describe here the problem that you are experiencing, or the feature you are requ
Describe how what happens differs from what you expected.
Log: sent/not sent? <!-- You can send us the app's logs via the 'Report bug'
link on the 'Settings' page. Very important for hard-to-reproduce bugs. Please
file a bug here too! -->
<!-- Please send us logs for your bug report. They're very important for bugs
which are hard to reproduce. To do this, create this issue then go to your
account settings and click 'Submit Debug Logs' from the Help & About tab -->
Logs being sent: yes/no
<!-- Include screenshots if possible: you can drag and drop images below. -->
@@ -52,4 +53,4 @@ For the web app:
For the desktop app:
- **OS**: Windows, macOS, Ubuntu, Arch Linux, etc?
- **Version**: 0.x.y <!-- check the user settings panel if unsure -->
- **Version**: 1.x.y <!-- check the user settings panel if unsure -->

View File

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

5
.gitignore vendored
View File

@@ -1,17 +1,18 @@
/build
/cert.pem
/dist
/karma-reports
/key.pem
/lib
/node_modules
/electron_app/node_modules
/electron_app/dist
/electron_app/pub
/packages/
/webapp
/.npmrc
/*.log
package-lock.json
.DS_Store
npm-debug.log
electron/dist
electron/pub
**/.idea

View File

@@ -1,31 +0,0 @@
# we need trusty for the chrome addon
dist: trusty
# we don't need sudo, so can run in a container, which makes startup much
# quicker.
#
# unfortunately we do temporarily require sudo as a workaround for
# https://github.com/travis-ci/travis-ci/issues/8836
sudo: required
language: node_js
node_js:
# make sure we work with a range of node versions.
#
# Current status of node versions: https://github.com/nodejs/LTS/
# We don't work with node 6 because it doesn't support package-lock
# files which we need to avoid the broken version of base-x
- 8
- 10
addons:
chrome: stable
before_install:
- curl -o- -L https://yarnpkg.com/install.sh | bash -s -- --version 1.13.0
- export PATH=$HOME/.yarn/bin:$PATH
install:
# clone the deps with depth 1: we know we will only ever need that one
# commit.
- scripts/fetch-develop.deps.sh --depth 1 && yarn install
script:
- CHROME_BIN='/usr/bin/google-chrome-stable' yarn test
- yarn lint

View File

@@ -1,3 +1,527 @@
Changes in [1.5.0](https://github.com/vector-im/riot-web/releases/tag/v1.5.0) (2019-10-18)
==========================================================================================
[Full Changelog](https://github.com/vector-im/riot-web/compare/v1.5.0-rc.1...v1.5.0)
* Upgrade to JS SDK v2.4.2 and React SDK v1.7.0
* Port Windows signing and macOS notarization to release
[\#11158](https://github.com/vector-im/riot-web/pull/11158)
* Sign main Windows executable
[\#11126](https://github.com/vector-im/riot-web/pull/11126)
* Notarise the macOS app
[\#11119](https://github.com/vector-im/riot-web/pull/11119)
Changes in [1.5.0-rc.1](https://github.com/vector-im/riot-web/releases/tag/v1.5.0-rc.1) (2019-10-09)
====================================================================================================
[Full Changelog](https://github.com/vector-im/riot-web/compare/v1.4.2...v1.5.0-rc.1)
* Update from Weblate
[\#11104](https://github.com/vector-im/riot-web/pull/11104)
* Bump Olm to 3.1.4 for olm_session_describe
[\#11103](https://github.com/vector-im/riot-web/pull/11103)
* Enable Webpack production mode for start:js:prod
[\#11098](https://github.com/vector-im/riot-web/pull/11098)
* add settingDefaults to sample config
[\#9919](https://github.com/vector-im/riot-web/pull/9919)
* Add config.json copy instruction to 'Development' as well
[\#11062](https://github.com/vector-im/riot-web/pull/11062)
* Revert "Run yarn upgrade"
[\#11055](https://github.com/vector-im/riot-web/pull/11055)
* Run yarn upgrade
[\#11050](https://github.com/vector-im/riot-web/pull/11050)
* Request persistent storage on Electron
[\#11052](https://github.com/vector-im/riot-web/pull/11052)
* Remove docs for CIDER feature
[\#11047](https://github.com/vector-im/riot-web/pull/11047)
Changes in [1.4.2](https://github.com/vector-im/riot-web/releases/tag/v1.4.2) (2019-10-04)
==========================================================================================
[Full Changelog](https://github.com/vector-im/riot-web/compare/v1.4.2-rc.1...v1.4.2)
* Document troubleshooting for memory leaks and getting profiles
[\#11031](https://github.com/vector-im/riot-web/pull/11031)
Changes in [1.4.2-rc.1](https://github.com/vector-im/riot-web/releases/tag/v1.4.2-rc.1) (2019-10-02)
====================================================================================================
[Full Changelog](https://github.com/vector-im/riot-web/compare/v1.4.1...v1.4.2-rc.1)
* Custom themes MVP
[\#11017](https://github.com/vector-im/riot-web/pull/11017)
* Document permalinkPrefix setting
[\#11007](https://github.com/vector-im/riot-web/pull/11007)
Changes in [1.4.1](https://github.com/vector-im/riot-web/releases/tag/v1.4.1) (2019-10-01)
==========================================================================================
[Full Changelog](https://github.com/vector-im/riot-web/compare/v1.4.0...v1.4.1)
* Upgrade to React SDK 1.6.1 to fix critical
[blank screen issue](https://github.com/vector-im/riot-web/issues/10983)
* Upgrade to JS SDK 2.4.1 to to ignore crypto events with empty content
* Update from Weblate
[\#11010](https://github.com/vector-im/riot-web/pull/11010)
* Update from Weblate
[\#11001](https://github.com/vector-im/riot-web/pull/11001)
* Upgrade deps
[\#10980](https://github.com/vector-im/riot-web/pull/10980)
Changes in [1.4.0](https://github.com/vector-im/riot-web/releases/tag/v1.4.0) (2019-09-27)
==========================================================================================
[Full Changelog](https://github.com/vector-im/riot-web/compare/v1.4.0-rc.2...v1.4.0)
* Many improvements related to privacy and user control of identity services and integration managers
* Upgrade to React SDK 1.6.0 and JS SDK 2.4.0
Changes in [1.4.0-rc.2](https://github.com/vector-im/riot-web/releases/tag/v1.4.0-rc.2) (2019-09-26)
====================================================================================================
[Full Changelog](https://github.com/vector-im/riot-web/compare/v1.4.0-rc.1...v1.4.0-rc.2)
* Upgrade to React SDK 1.6.0-rc.2
* Work around Yarn confusion with `react-gemini-scrollbar` package
Changes in [1.4.0-rc.1](https://github.com/vector-im/riot-web/releases/tag/v1.4.0-rc.1) (2019-09-25)
====================================================================================================
[Full Changelog](https://github.com/vector-im/riot-web/compare/v1.3.6...v1.4.0-rc.1)
* Upgrade to React SDK 1.6.0-rc.1 and JS SDK 2.4.0-rc.1
* Update from Weblate
[\#10961](https://github.com/vector-im/riot-web/pull/10961)
* Don't log query parameters as they may contain secrets
[\#10929](https://github.com/vector-im/riot-web/pull/10929)
* Document more shortcuts
[\#10906](https://github.com/vector-im/riot-web/pull/10906)
* Point to #develop and use the same gemini-scrollbar version as the react-sdk
[\#10893](https://github.com/vector-im/riot-web/pull/10893)
* Tweak lock file to pull in only one React version
[\#10874](https://github.com/vector-im/riot-web/pull/10874)
* document disable_custom_urls
[\#10844](https://github.com/vector-im/riot-web/pull/10844)
* Install guide tweaks
[\#10838](https://github.com/vector-im/riot-web/pull/10838)
* Switch to React 16
[\#10480](https://github.com/vector-im/riot-web/pull/10480)
* Update install guide
[\#10810](https://github.com/vector-im/riot-web/pull/10810)
* Clarify that HTTPS is not just needed for VoIP
[\#6146](https://github.com/vector-im/riot-web/pull/6146)
* Bump eslint-utils from 1.4.0 to 1.4.2
[\#10692](https://github.com/vector-im/riot-web/pull/10692)
* Add docs for tabbed integration managers labs flag
[\#10641](https://github.com/vector-im/riot-web/pull/10641)
* Change integrations_widgets_urls default configuration
[\#10656](https://github.com/vector-im/riot-web/pull/10656)
* Add docs for the CIDER composer flag
[\#10638](https://github.com/vector-im/riot-web/pull/10638)
* add cider composer labs flag
[\#10626](https://github.com/vector-im/riot-web/pull/10626)
* Upgrade to Electron 6.0.3
[\#10601](https://github.com/vector-im/riot-web/pull/10601)
* Upgrade to Electron 6
[\#10596](https://github.com/vector-im/riot-web/pull/10596)
* Update from Weblate
[\#10591](https://github.com/vector-im/riot-web/pull/10591)
* Upgrade electron-builder to 21.2.0
[\#10579](https://github.com/vector-im/riot-web/pull/10579)
* Set SUID bit on chrome-sandbox for Debian
[\#10580](https://github.com/vector-im/riot-web/pull/10580)
* Load config.json before loading language so default can apply
[\#10551](https://github.com/vector-im/riot-web/pull/10551)
* Bump matrix-react-test-utils for React 16 compatibility
[\#10543](https://github.com/vector-im/riot-web/pull/10543)
* Add --help to electron app
[\#10530](https://github.com/vector-im/riot-web/pull/10530)
* Allow setting electron autoHideMenuBar and persist it
[\#10503](https://github.com/vector-im/riot-web/pull/10503)
* Upgrade dependencies
[\#10475](https://github.com/vector-im/riot-web/pull/10475)
Changes in [1.3.6](https://github.com/vector-im/riot-web/releases/tag/v1.3.6) (2019-09-19)
==========================================================================================
[Full Changelog](https://github.com/vector-im/riot-web/compare/v1.3.5...v1.3.6)
* Fix origin migrator for SSO logins
[\#10920](https://github.com/vector-im/riot-web/pull/10920)
Changes in [1.3.5](https://github.com/vector-im/riot-web/releases/tag/v1.3.5) (2019-09-16)
==========================================================================================
[Full Changelog](https://github.com/vector-im/riot-web/compare/v1.3.5-rc.3...v1.3.5)
* Updated js-sdk and react-sdk for some more minor bugfixes
Changes in [1.3.5-rc.3](https://github.com/vector-im/riot-web/releases/tag/v1.3.5-rc.3) (2019-09-13)
====================================================================================================
[Full Changelog](https://github.com/vector-im/riot-web/compare/v1.3.5-rc.2...v1.3.5-rc.3)
* js-sdk rc.1 to include report API
Changes in [1.3.5-rc.2](https://github.com/vector-im/riot-web/releases/tag/v1.3.5-rc.2) (2019-09-13)
====================================================================================================
[Full Changelog](https://github.com/vector-im/riot-web/compare/v1.3.5-rc.1...v1.3.5-rc.2)
* Pull in more fixes from react-sdk rc.2
Changes in [1.3.5-rc.1](https://github.com/vector-im/riot-web/releases/tag/v1.3.5-rc.1) (2019-09-12)
====================================================================================================
[Full Changelog](https://github.com/vector-im/riot-web/compare/v1.3.4...v1.3.5-rc.1)
* Cosmetic fixes from react-sdk rc.1
Changes in [1.3.4](https://github.com/vector-im/riot-web/releases/tag/v1.3.4) (2019-09-12)
==========================================================================================
[Full Changelog](https://github.com/vector-im/riot-web/compare/v1.3.4-rc.1...v1.3.4)
* Updated react-sdk and tweaks to mobile install guide
Changes in [1.3.4-rc.1](https://github.com/vector-im/riot-web/releases/tag/v1.3.4-rc.1) (2019-09-11)
====================================================================================================
[Full Changelog](https://github.com/vector-im/riot-web/compare/v1.3.3...v1.3.4-rc.1)
* Update install guide
[\#10831](https://github.com/vector-im/riot-web/pull/10831)
Changes in [1.3.3](https://github.com/vector-im/riot-web/releases/tag/v1.3.3) (2019-08-16)
==========================================================================================
[Full Changelog](https://github.com/vector-im/riot-web/compare/v1.3.2...v1.3.3)
* Linux-only release to fix sandboxing with Electron 5 on Debian
[\#10580](https://github.com/vector-im/riot-web/pull/10580)
Changes in [1.3.2](https://github.com/vector-im/riot-web/releases/tag/v1.3.2) (2019-08-05)
==========================================================================================
[Full Changelog](https://github.com/vector-im/riot-web/compare/v1.3.1...v1.3.2)
* Updated react-sdk for deactivated account error message on login
Changes in [1.3.1](https://github.com/vector-im/riot-web/releases/tag/v1.3.1) (2019-08-05)
==========================================================================================
[Full Changelog](https://github.com/vector-im/riot-web/compare/v1.3.1-rc.1...v1.3.1)
* Updated js-sdk for notifications fix and react-sdk for registration fix
Changes in [1.3.1-rc.1](https://github.com/vector-im/riot-web/releases/tag/v1.3.1-rc.1) (2019-07-31)
====================================================================================================
[Full Changelog](https://github.com/vector-im/riot-web/compare/v1.3.0...v1.3.1-rc.1)
* Upgrade to JS SDK 2.3.0-rc.1 and React SDK 1.5.0-rc.1
* Update from Weblate
[\#10436](https://github.com/vector-im/riot-web/pull/10436)
* Describe our existing features better in documentation
[\#10418](https://github.com/vector-im/riot-web/pull/10418)
* Upgrade to Electron 5
[\#10392](https://github.com/vector-im/riot-web/pull/10392)
* Remove edits and reactions feature flags from docs and config
[\#10363](https://github.com/vector-im/riot-web/pull/10363)
* Cachebust config file requests
[\#10349](https://github.com/vector-im/riot-web/pull/10349)
* Convert install-app-deps to subcommand
[\#10334](https://github.com/vector-im/riot-web/pull/10334)
* Add riot.im configuration files
[\#10327](https://github.com/vector-im/riot-web/pull/10327)
* Require descriptions in mxSendRageshake and remove infinite loop in issue
templates
[\#10321](https://github.com/vector-im/riot-web/pull/10321)
* Remove unused disable_identity_server config flag
[\#10322](https://github.com/vector-im/riot-web/pull/10322)
* Verify i18n in CI
[\#10320](https://github.com/vector-im/riot-web/pull/10320)
Changes in [1.3.0](https://github.com/vector-im/riot-web/releases/tag/v1.3.0) (2019-07-18)
==========================================================================================
[Full Changelog](https://github.com/vector-im/riot-web/compare/v1.3.0-rc.3...v1.3.0)
* Upgrade to React SDK 1.4.0 and JS SDK 2.2.0
* Message editing and reactions features enabled
* Remove edits and reactions feature flags from docs and config
[\#10365](https://github.com/vector-im/riot-web/pull/10365)
Changes in [1.3.0-rc.3](https://github.com/vector-im/riot-web/releases/tag/v1.3.0-rc.3) (2019-07-15)
====================================================================================================
[Full Changelog](https://github.com/vector-im/riot-web/compare/v1.3.0-rc.2...v1.3.0-rc.3)
* Update to react-sdk rc.3 to fix a bug where a room admin could generate a room
that would cause Riot to error, and some stuck notifications.
Changes in [1.3.0-rc.2](https://github.com/vector-im/riot-web/releases/tag/v1.3.0-rc.2) (2019-07-12)
====================================================================================================
[Full Changelog](https://github.com/vector-im/riot-web/compare/v1.3.0-rc.1...v1.3.0-rc.2)
* Upgrade to React SDK 1.4.0-rc.2 and JS SDK 2.2.0-rc.2
* Fix regression from Riot 1.3.0-rc.1 when listing devices in user settings
Changes in [1.3.0-rc.1](https://github.com/vector-im/riot-web/releases/tag/v1.3.0-rc.1) (2019-07-12)
====================================================================================================
[Full Changelog](https://github.com/vector-im/riot-web/compare/v1.2.4...v1.3.0-rc.1)
* Upgrade to React SDK 1.4.0-rc.1 and JS SDK 2.2.0-rc.1
* Update from Weblate
[\#10328](https://github.com/vector-im/riot-web/pull/10328)
* Upgrade dependencies
[\#10308](https://github.com/vector-im/riot-web/pull/10308)
* Upgrade dependencies
[\#10260](https://github.com/vector-im/riot-web/pull/10260)
Changes in [1.2.4](https://github.com/vector-im/riot-web/releases/tag/v1.2.4) (2019-07-11)
==========================================================================================
[Full Changelog](https://github.com/vector-im/riot-web/compare/v1.2.3...v1.2.4)
* Upgrade to React SDK 1.3.1 and JS SDK 2.1.1
* Upgrade lodash dependencies
* JS SDK 2.1.1 includes a fix for ephemeral event processing
* React SDK 1.3.1 includes a fix for account deactivation
Changes in [1.2.3](https://github.com/vector-im/riot-web/releases/tag/v1.2.3) (2019-07-08)
==========================================================================================
[Full Changelog](https://github.com/vector-im/riot-web/compare/v1.2.3-rc.1...v1.2.3)
* Upgrade to React SDK 1.3.0 and JS SDK 2.1.0
* JS SDK 2.1.0 includes a fix for an exception whilst syncing
Changes in [1.2.3-rc.1](https://github.com/vector-im/riot-web/releases/tag/v1.2.3-rc.1) (2019-07-03)
====================================================================================================
[Full Changelog](https://github.com/vector-im/riot-web/compare/v1.2.2...v1.2.3-rc.1)
* Change update URL to match new host
[\#10247](https://github.com/vector-im/riot-web/pull/10247)
* Update from Weblate
[\#10219](https://github.com/vector-im/riot-web/pull/10219)
* Extract configuration docs to separate file
[\#10195](https://github.com/vector-im/riot-web/pull/10195)
* Add e2e/warning.svg to preload
[\#10197](https://github.com/vector-im/riot-web/pull/10197)
* Fix Electron vector: links
[\#10196](https://github.com/vector-im/riot-web/pull/10196)
* Display a red box of anger for config syntax errors
[\#10193](https://github.com/vector-im/riot-web/pull/10193)
* Move config-getting to VectorBasePlatform
[\#10181](https://github.com/vector-im/riot-web/pull/10181)
* Update from Weblate
[\#10124](https://github.com/vector-im/riot-web/pull/10124)
* Fix default Electron window and tray icons
[\#10097](https://github.com/vector-im/riot-web/pull/10097)
Changes in [1.2.2](https://github.com/vector-im/riot-web/releases/tag/v1.2.2) (2019-06-19)
==========================================================================================
[Full Changelog](https://github.com/vector-im/riot-web/compare/v1.2.2-rc.2...v1.2.2)
No changes since rc.2
Changes in [1.2.2-rc.2](https://github.com/vector-im/riot-web/releases/tag/v1.2.2-rc.2) (2019-06-18)
====================================================================================================
[Full Changelog](https://github.com/vector-im/riot-web/compare/v1.2.2-rc.1...v1.2.2-rc.2)
* Update to react-sdk and js-sdk rc.2 for registration fixes,
redaction local echo fix and removing unnecessary calls
to the integration manager.
Changes in [1.2.2-rc.1](https://github.com/vector-im/riot-web/releases/tag/v1.2.2-rc.1) (2019-06-12)
====================================================================================================
[Full Changelog](https://github.com/vector-im/riot-web/compare/v1.2.1...v1.2.2-rc.1)
* Update from Weblate
[\#10012](https://github.com/vector-im/riot-web/pull/10012)
* Add funding details for GitHub sponsor button
[\#9982](https://github.com/vector-im/riot-web/pull/9982)
* Do not fail on server liveliness checks during startup
[\#9960](https://github.com/vector-im/riot-web/pull/9960)
* Hide guest functions on the welcome page if not logged in
[\#9957](https://github.com/vector-im/riot-web/pull/9957)
* Add Albanian and West Flemish languages
[\#9953](https://github.com/vector-im/riot-web/pull/9953)
* Update from Weblate
[\#9951](https://github.com/vector-im/riot-web/pull/9951)
* Add docs for defaultCountryCode
[\#9927](https://github.com/vector-im/riot-web/pull/9927)
* Use the user's pre-existing HS when config validation fails
[\#9892](https://github.com/vector-im/riot-web/pull/9892)
* Low bandwidth mode
[\#9909](https://github.com/vector-im/riot-web/pull/9909)
* Fix Twemoji loading on Windows dev machines
[\#9869](https://github.com/vector-im/riot-web/pull/9869)
* Base Docker image on nginx:alpine, not the larger nginx:latest
[\#9848](https://github.com/vector-im/riot-web/pull/9848)
* Validate homeserver configuration prior to loading the app
[\#9779](https://github.com/vector-im/riot-web/pull/9779)
* Show resolved homeserver configuration on the mobile guide
[\#9726](https://github.com/vector-im/riot-web/pull/9726)
* Flag the validated config as the default config
[\#9721](https://github.com/vector-im/riot-web/pull/9721)
* Clarify comment on is_url and hs_url handling
[\#9719](https://github.com/vector-im/riot-web/pull/9719)
* Validate default homeserver config before loading the app
[\#9496](https://github.com/vector-im/riot-web/pull/9496)
Changes in [1.2.1](https://github.com/vector-im/riot-web/releases/tag/v1.2.1) (2019-05-31)
==========================================================================================
[Full Changelog](https://github.com/vector-im/riot-web/compare/v1.2.0...v1.2.1)
* Upgrade JS SDK to 2.0.0 and React SDK to 1.2.1 to fix key backup and native emoji height
Changes in [1.2.0](https://github.com/vector-im/riot-web/releases/tag/v1.2.0) (2019-05-29)
==========================================================================================
[Full Changelog](https://github.com/vector-im/riot-web/compare/v1.2.0-rc.1...v1.2.0)
* Upgrade to JS SDK v1.2.0 and React SDK v1.2.0 to fix some regressions
Changes in [1.2.0-rc.1](https://github.com/vector-im/riot-web/releases/tag/v1.2.0-rc.1) (2019-05-23)
====================================================================================================
[Full Changelog](https://github.com/vector-im/riot-web/compare/v1.1.2...v1.2.0-rc.1)
* Update from Weblate
[\#9802](https://github.com/vector-im/riot-web/pull/9802)
* remove emojione
[\#9766](https://github.com/vector-im/riot-web/pull/9766)
* Make Dockerfile work for develop and other branches
[\#9736](https://github.com/vector-im/riot-web/pull/9736)
* add description of new labs feature for message editing
[\#9728](https://github.com/vector-im/riot-web/pull/9728)
* Remove karma junit output
[\#9628](https://github.com/vector-im/riot-web/pull/9628)
* yarn upgrade
[\#9626](https://github.com/vector-im/riot-web/pull/9626)
* Respond quickly to buildkite pokes
[\#9617](https://github.com/vector-im/riot-web/pull/9617)
* Delay creating the `Favico` instance
[\#9616](https://github.com/vector-im/riot-web/pull/9616)
* Add reactions feature to config sample
[\#9598](https://github.com/vector-im/riot-web/pull/9598)
Changes in [1.1.2](https://github.com/vector-im/riot-web/releases/tag/v1.1.2) (2019-05-15)
==========================================================================================
[Full Changelog](https://github.com/vector-im/riot-web/compare/v1.1.1...v1.1.2)
* react-sdk v1.1.2 to fix single sign-on and GIF autoplaying
Changes in [1.1.1](https://github.com/vector-im/riot-web/releases/tag/v1.1.1) (2019-05-14)
==========================================================================================
[Full Changelog](https://github.com/vector-im/riot-web/compare/v1.1.0...v1.1.1)
* react-sdk v1.1.1 to fix regressions with registration
Changes in [1.1.0](https://github.com/vector-im/riot-web/releases/tag/v1.1.0) (2019-05-07)
==========================================================================================
[Full Changelog](https://github.com/vector-im/riot-web/compare/v1.1.0-rc.1...v1.1.0)
* Add Dockerfile
[\#9632](https://github.com/vector-im/riot-web/pull/9632)
* Add Dockerfile (part 2)
[\#9426](https://github.com/vector-im/riot-web/pull/9426)
* Add new scalar staging url
[\#9601](https://github.com/vector-im/riot-web/pull/9601)
Changes in [1.1.0-rc.1](https://github.com/vector-im/riot-web/releases/tag/v1.1.0-rc.1) (2019-04-30)
====================================================================================================
[Full Changelog](https://github.com/vector-im/riot-web/compare/v1.0.8...v1.1.0-rc.1)
* Convert redeploy.py to buildkite
[\#9577](https://github.com/vector-im/riot-web/pull/9577)
* Add package step to buildkite pipeline
[\#9568](https://github.com/vector-im/riot-web/pull/9568)
* Don't fail if there's no local config to remove
[\#9571](https://github.com/vector-im/riot-web/pull/9571)
* Change jenkins script to package script
[\#9567](https://github.com/vector-im/riot-web/pull/9567)
* Remove config.json from package dir
[\#9555](https://github.com/vector-im/riot-web/pull/9555)
* use the release version of olm 3.1.0
[\#9550](https://github.com/vector-im/riot-web/pull/9550)
* Fix default for --include arg
[\#9517](https://github.com/vector-im/riot-web/pull/9517)
* update installation instructions with new repo
[\#9500](https://github.com/vector-im/riot-web/pull/9500)
* Use packages.matrix.org for Olm
[\#9498](https://github.com/vector-im/riot-web/pull/9498)
* Add separate platform electron build commands
[\#9412](https://github.com/vector-im/riot-web/pull/9412)
* Add support for custom profile directory
[\#9408](https://github.com/vector-im/riot-web/pull/9408)
* Improved mobile install guide
[\#9410](https://github.com/vector-im/riot-web/pull/9410)
* Remove vector-electron-desktop from README
[\#9404](https://github.com/vector-im/riot-web/pull/9404)
* Update from Weblate
[\#9398](https://github.com/vector-im/riot-web/pull/9398)
* bump olm version to 3.1.0-pre3
[\#9392](https://github.com/vector-im/riot-web/pull/9392)
* Add expiration to mobile guide cookie
[\#9383](https://github.com/vector-im/riot-web/pull/9383)
* Fix autolaunch setting appearing toggled off
[\#9368](https://github.com/vector-im/riot-web/pull/9368)
* Don't try to save files the user didn't want to save
[\#9352](https://github.com/vector-im/riot-web/pull/9352)
* Setup crypto store for restore session tests
[\#9325](https://github.com/vector-im/riot-web/pull/9325)
* Update from Weblate
[\#9333](https://github.com/vector-im/riot-web/pull/9333)
* Add "Save image as..." button to context menu on images
[\#9326](https://github.com/vector-im/riot-web/pull/9326)
* Configure auth footer links through Riot config
[\#9297](https://github.com/vector-im/riot-web/pull/9297)
Changes in [1.0.8](https://github.com/vector-im/riot-web/releases/tag/v1.0.8) (2019-04-16)
==========================================================================================
[Full Changelog](https://github.com/vector-im/riot-web/compare/v1.0.7...v1.0.8)
* No changes in this release. This is the same code as v1.0.7 from our new clean-room
packaging and signing infrastructure.
Changes in [1.0.7](https://github.com/vector-im/riot-web/releases/tag/v1.0.7) (2019-04-08)
==========================================================================================
[Full Changelog](https://github.com/vector-im/riot-web/compare/v1.0.6...v1.0.7)
* Hotfix: bump js-sdk to 1.0.4, see https://github.com/matrix-org/matrix-js-sdk/releases/tag/v1.0.4
Changes in [1.0.6](https://github.com/vector-im/riot-web/releases/tag/v1.0.6) (2019-04-01)
==========================================================================================
[Full Changelog](https://github.com/vector-im/riot-web/compare/v1.0.6-rc.1...v1.0.6)
* Add "Save image as..." button to context menu on images
[\#9327](https://github.com/vector-im/riot-web/pull/9327)
Changes in [1.0.6-rc.1](https://github.com/vector-im/riot-web/releases/tag/v1.0.6-rc.1) (2019-03-27)
====================================================================================================
[Full Changelog](https://github.com/vector-im/riot-web/compare/v1.0.5...v1.0.6-rc.1)
* Use `on_logged_in` action in tests
[\#9279](https://github.com/vector-im/riot-web/pull/9279)
* Convert away from `Promise.defer`
[\#9278](https://github.com/vector-im/riot-web/pull/9278)
* update react-sdk version in yarn lockfile
[\#9233](https://github.com/vector-im/riot-web/pull/9233)
* "Render simple counters in room header" details
[\#9154](https://github.com/vector-im/riot-web/pull/9154)
* Use medium agents for the more resource intensive builds
[\#9238](https://github.com/vector-im/riot-web/pull/9238)
* Add log grouping to buildkite
[\#9223](https://github.com/vector-im/riot-web/pull/9223)
* Switch to `git` protocol for CI dependencies
[\#9222](https://github.com/vector-im/riot-web/pull/9222)
* Support CI for matching branches on forks
[\#9212](https://github.com/vector-im/riot-web/pull/9212)
* Update from Weblate
[\#9199](https://github.com/vector-im/riot-web/pull/9199)
* Declare the officially supported browsers in the README
[\#9177](https://github.com/vector-im/riot-web/pull/9177)
* Document some desktop app things
[\#9011](https://github.com/vector-im/riot-web/pull/9011)
* Use Buildkite for CI
[\#9165](https://github.com/vector-im/riot-web/pull/9165)
* Update version number in issue templates
[\#9170](https://github.com/vector-im/riot-web/pull/9170)
* Remove node 8.x from the build matrix
[\#9159](https://github.com/vector-im/riot-web/pull/9159)
* Update Electron help menu link
[\#9157](https://github.com/vector-im/riot-web/pull/9157)
Changes in [1.0.5](https://github.com/vector-im/riot-web/releases/tag/v1.0.5) (2019-03-21)
==========================================================================================
[Full Changelog](https://github.com/vector-im/riot-web/compare/v1.0.4...v1.0.5)
* Hotfix for [\#9205](https://github.com/vector-im/riot-web/issues/9205) disabling jump prevention for typing notifications, while we're reworking this functionally to enable it again soon.
Changes in [1.0.4](https://github.com/vector-im/riot-web/releases/tag/v1.0.4) (2019-03-18)
==========================================================================================
[Full Changelog](https://github.com/vector-im/riot-web/compare/v1.0.4-rc.1...v1.0.4)
* No changes since rc.1
Changes in [1.0.4-rc.1](https://github.com/vector-im/riot-web/releases/tag/v1.0.4-rc.1) (2019-03-13)
====================================================================================================
[Full Changelog](https://github.com/vector-im/riot-web/compare/v1.0.3...v1.0.4-rc.1)

31
Dockerfile Normal file
View File

@@ -0,0 +1,31 @@
# Builder
FROM node:10-alpine as builder
# Support custom branches of the react-sdk and js-sdk. This also helps us build
# images of riot-web develop.
ARG USE_CUSTOM_SDKS=false
ARG REACT_SDK_REPO="https://github.com/matrix-org/matrix-react-sdk.git"
ARG REACT_SDK_BRANCH="master"
ARG JS_SDK_REPO="https://github.com/matrix-org/matrix-js-sdk.git"
ARG JS_SDK_BRANCH="master"
RUN apk add --no-cache git dos2unix
WORKDIR /src
COPY . /src
RUN dos2unix /src/scripts/docker-link-repos.sh && sh /src/scripts/docker-link-repos.sh
RUN yarn --network-timeout=100000 install
RUN yarn build
# Copy the config now so that we don't create another layer in the app image
RUN cp /src/config.sample.json /src/webapp/config.json
# App
FROM nginx:alpine
COPY --from=builder /src/webapp /app
RUN rm -rf /usr/share/nginx/html \
&& ln -s /app /usr/share/nginx/html

196
README.md
View File

@@ -3,6 +3,10 @@ Riot
Riot (formerly known as Vector) is a Matrix web client built using the [Matrix React SDK](https://github.com/matrix-org/matrix-react-sdk).
Riot is officially supported on the web in modern versions of Chrome, Firefox, and Safari. Other browsers may work, however
official support is not provided. For accessing Riot on an Android or iOS device, check out [riot-android](https://github.com/vector-im/riot-android)
and [riot-ios](https://github.com/vector-im/riot-ios) - riot-web does not support mobile devices.
Getting Started
===============
@@ -17,24 +21,21 @@ released version of Riot:
1. Untar the tarball on your web server
1. Move (or symlink) the `riot-x.x.x` directory to an appropriate name
1. If desired, copy `config.sample.json` to `config.json` and edit it
as desired. See below for details.
as desired. See the [configuration docs](docs/config.md) for details.
1. Enter the URL into your browser and log into Riot!
Releases are signed by PGP, and can be checked against the public key
at https://riot.im/packages/keys/riot.asc .
Releases are signed using gpg and the OpenPGP standard, and can be checked against the public key located
at https://packages.riot.im/riot-release-key.asc.
Note that Chrome does not allow microphone or webcam access for sites served
over http (except localhost), so for working VoIP you will need to serve Riot
over https.
Note that for the security of your chats will need to serve Riot
over HTTPS. Major browsers also do not allow you to use VoIP/video
chats over HTTP, as WebRTC is only usable over HTTPS.
There are some exceptions like when using localhost, which is
considered a [secure context](https://developer.mozilla.org/docs/Web/Security/Secure_Contexts)
and thus allowed.
### Desktop Installation for Debian Stretch
1. Add the repository to your sources.list using either of the following two options:
- Directly to sources.list: `echo "deb https://riot.im/packages/debian/ stretch main" | sudo tee -a /etc/apt/sources.list`
- As a separate entry in sources.list.d: `echo "deb https://riot.im/packages/debian/ stretch main" | sudo tee /etc/apt/sources.list.d/riot.list`
2. Add the gpg signing key for the riot repository: `curl -s https://riot.im/packages/debian/repo-key.asc | sudo apt-key add -`
3. Update your package lists: `sudo apt-get update`
4. Install Riot: `sudo apt-get install riot-web`
To install Riot as a desktop application, see [Running as a desktop
app](#running-as-a-desktop-app) below.
Important Security Note
=======================
@@ -54,9 +55,9 @@ on the client, Riot needs a way to supply the decrypted content from a separate
origin to the one Riot is hosted on. This currently done with a 'cross origin
renderer' which is a small piece of javascript hosted on a different domain.
To avoid all Riot installs needing one of these to be set up, riot.im hosts
one on usercontent.riot.im which is used by default. See 'config.json' if you'd
like to host your own. https://github.com/vector-im/riot-web/issues/6173 tracks
progress on replacing this with something better.
one on usercontent.riot.im which is used by default.
https://github.com/vector-im/riot-web/issues/6173 tracks progress on replacing
this with something better.
Building From Source
====================
@@ -93,7 +94,7 @@ guide](https://yarnpkg.com/docs/install/) if you do not have it already.
develop branch. (Note that we don't reference the develop versions in git directly
due to https://github.com/npm/npm/issues/3055.)
1. Configure the app by copying `config.sample.json` to `config.json` and
modifying it (see below for details).
modifying it. See the [configuration docs](docs/config.md) for details.
1. `yarn dist` to build a tarball to deploy. Untaring this file will give
a version-specific directory containing all the files that need to go on your
web server.
@@ -103,106 +104,24 @@ which will build all the necessary files into the `webapp` directory. The versio
will not appear in Settings without using the dist script. You can then mount the
`webapp` directory on your webserver to actually serve up the app, which is entirely static content.
config.json
===========
You can configure the app by copying `config.sample.json` to
`config.json` and customising it:
For a good example, see https://riot.im/develop/config.json.
1. `default_server_name` sets the default server name to use for authentication.
This will trigger Riot to ask
`https://<server_name>/.well-known/matrix/client` for the homeserver and
identity server URLs to use. This is the recommended approach for setting a
default server. However, it is also possible to use the following to directly
configure each of the URLs:
* `default_hs_url` sets the default homeserver URL.
* `default_is_url` sets the default identity server URL (this is the server used
for verifying third party identifiers like email addresses). If this is blank,
registering with an email address, adding an email address to your account,
or inviting users via email address will not work. Matrix identity servers are
very simple web services which map third party identifiers (currently only email
addresses) to matrix IDs: see http://matrix.org/docs/spec/identity_service/unstable.html
for more details. Currently the only public matrix identity servers are https://matrix.org
and https://vector.im. In the future, identity servers will be decentralised.
* Riot will report an error if you accidentally configure both `default_server_name` _and_ `default_hs_url` since it's unclear which should take priority.
1. `features`: Lookup of optional features that may be `enable`d, `disable`d, or exposed to the user
in the `labs` section of settings. The available optional experimental features vary from
release to release.
1. `brand`: String to pass to your homeserver when configuring email notifications, to let the
homeserver know what email template to use when talking to you.
1. `branding`: Configures various branding and logo details, such as:
1. `welcomeBackgroundUrl`: An image to use as a wallpaper outside the app
during authentication flows
1. `authHeaderLogoUrl`: An logo image that is shown in the header during
authentication flows
1. `integrations_ui_url`: URL to the web interface for the integrations server. The integrations
server is not Riot and normally not your homeserver either. The integration server settings
may be left blank to disable integrations.
1. `integrations_rest_url`: URL to the REST interface for the integrations server.
1. `integrations_widgets_urls`: list of URLs to the REST interface for the widget integrations server.
1. `bug_report_endpoint_url`: endpoint to send bug reports to (must be running a
https://github.com/matrix-org/rageshake server). Bug reports are sent when a user clicks
"Send Logs" within the application. Bug reports can be disabled by leaving the
`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.
1. `default_theme`: name of theme to use by default (e.g. 'light')
1. `update_base_url` (electron app only): HTTPS URL to a web server to download
updates from. This should be the path to the directory containing `macos`
and `win32` (for update packages, not installer packages).
1. `cross_origin_renderer_url`: URL to a static HTML page hosting code to help display
encrypted file attachments. This MUST be hosted on a completely separate domain to
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`: 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. `welcomeUserId`: the user ID of a bot to invite whenever users register that can give them a tour
1. `embeddedPages`: Configures the pages displayed in portions of Riot that
embed static files, such as:
1. `welcomeUrl`: Initial content shown on the outside of the app when not
logged in. Defaults to `welcome.html` supplied with Riot.
1. `homeUrl`: Content shown on the inside of the app when a specific room is
not selected. By default, no home page is configured. If one is set, a
button to access it will be shown in the top left menu.
Note that `index.html` also has an og:image meta tag that is set to an image
hosted on riot.im. This is the image used if links to your copy of Riot
appear in some websites like Facebook, and indeed Riot itself. This has to be
static in the HTML and an absolute URL (and HTTP rather than HTTPS), so it's
not possible for this to be an option in config.json. If you'd like to change
it, you can build Riot as above, but run
`RIOT_OG_IMAGE_URL="http://example.com/logo.png" yarn build`.
Alternatively, you can edit the `og:image` meta tag in `index.html` directly
each time you download a new version of Riot.
Running as a Desktop app
========================
Riot can also be run as a desktop app, wrapped in electron. You can download a
pre-built version from https://riot.im/desktop.html or, if you prefer,
build it yourself. Requires Electron >=1.6.0
Riot can also be run as a desktop app, wrapped in Electron. You can download a
pre-built version from https://riot.im/download/desktop/ or, if you prefer,
build it yourself.
To run as a desktop app:
To build it yourself, follow the instructions below.
1. Follow the instructions in 'Building From Source' above, but run
`yarn build` instead of `yarn dist` (since we don't need the tarball).
2. Install electron and run it:
2. Install Electron and run it:
```bash
yarn electron
```
To build packages, use electron-builder. This is configured to output:
To build packages, use `electron-builder`. This is configured to output:
* `dmg` + `zip` for macOS
* `exe` + `nupkg` for Windows
* `deb` for Linux
@@ -214,25 +133,22 @@ for dependencies required for building packages for various platforms.
The only platform that can build packages for all three platforms is macOS:
```bash
brew install wine --without-x11
brew install mono
brew install gnu-tar
yarn install
yarn build:electron
```
For other packages, use electron-builder manually. For example, to build a package
for 64 bit Linux:
For other packages, use `electron-builder` manually. For example, to build a
package for 64 bit Linux:
1. Follow the instructions in 'Building From Source' above
2. `node_modules/.bin/build -l --x64`
All electron packages go into `electron_app/dist/`
All Electron packages go into `electron_app/dist/`
Many thanks to @aviraldg for the initial work on the electron integration.
Many thanks to @aviraldg for the initial work on the Electron integration.
Other options for running as a desktop app:
* https://github.com/krisak/vector-electron-desktop
* @asdf:matrix.org points out that you can use nativefier and it just works(tm)
```bash
@@ -240,6 +156,57 @@ yarn global add nativefier
nativefier https://riot.im/app/
```
The [configuration docs](docs/config.md#desktop-app-configuration) show how to
override the desktop app's default settings if desired.
Running from Docker
===================
The Docker image can be used to serve riot-web as a web server. The easiest way to use
it is to use the prebuilt image:
```bash
docker run -p 80:80 vectorim/riot-web
```
To supply your own custom `config.json`, map a volume to `/app/config.json`. For example,
if your custom config was located at `/etc/riot-web/config.json` then your Docker command
would be:
```bash
docker run -p 80:80 -v /etc/riot-web/config.json:/app/config.json vectorim/riot-web
```
To build the image yourself:
```bash
git clone https://github.com/vector-im/riot-web.git riot-web
cd riot-web
git checkout master
docker build -t vectorim/riot-web .
```
If you're building a custom branch, or want to use the develop branch, check out the appropriate
riot-web branch and then run:
```bash
docker build -t vectorim/riot-web:develop \
--build-arg USE_CUSTOM_SDKS=true \
--build-arg REACT_SDK_REPO="https://github.com/matrix-org/matrix-react-sdk.git" \
--build-arg REACT_SDK_BRANCH="develop" \
--build-arg JS_SDK_REPO="https://github.com/matrix-org/matrix-js-sdk.git" \
--build-arg JS_SDK_BRANCH="develop" \
.
```
config.json
===========
Riot supports a variety of settings to configure default servers, behaviour, themes, etc.
See the [configuration docs](docs/config.md) for more details.
Labs Features
=============
Some features of Riot may be enabled by flags in the `Labs` section of the settings.
Some of these features are described in [labs.md](https://github.com/vector-im/riot-web/blob/develop/docs/labs.md).
Development
===========
@@ -323,6 +290,9 @@ bundle.css.map 116 kB 0 [emitted] main
and rebuilds source files when they change. This development server also
disables caching, so do NOT use it in production.
Configure the app by copying `config.sample.json` to `config.json` and
modifying it. See the [configuration docs](docs/config.md) for details.
Open http://127.0.0.1:8080/ in your browser to see your newly built Riot.
___

View File

@@ -1,6 +1,13 @@
{
"default_hs_url": "https://matrix.org",
"default_is_url": "https://vector.im",
"default_server_config": {
"m.homeserver": {
"base_url": "https://matrix.org",
"server_name": "matrix.org"
},
"m.identity_server": {
"base_url": "https://vector.im"
}
},
"disable_custom_urls": false,
"disable_guests": false,
"disable_login_language_selector": false,
@@ -8,11 +15,22 @@
"brand": "Riot",
"integrations_ui_url": "https://scalar.vector.im/",
"integrations_rest_url": "https://scalar.vector.im/api",
"integrations_widgets_urls": [
"https://scalar.vector.im/_matrix/integrations/v1",
"https://scalar.vector.im/api",
"https://scalar-staging.vector.im/_matrix/integrations/v1",
"https://scalar-staging.vector.im/api",
"https://scalar-staging.riot.im/scalar/api"
],
"integrations_jitsi_widget_url": "https://scalar.vector.im/api/widgets/jitsi.html",
"bug_report_endpoint_url": "https://riot.im/bugreports/submit",
"defaultCountryCode": "GB",
"showLabsSettings": false,
"features": {
"feature_groups": "labs",
"feature_pinning": "labs"
"feature_pinning": "labs",
"feature_custom_status": "labs",
"feature_custom_tags": "labs",
"feature_state_counters": "labs"
},
"default_federate": true,
"default_theme": "light",
@@ -30,5 +48,8 @@
},
"enable_presence_by_hs_url": {
"https://matrix.org": false
},
"settingDefaults": {
"breadcrumbs": true
}
}

119
docs/config.md Normal file
View File

@@ -0,0 +1,119 @@
Configuration
=============
You can configure the app by copying `config.sample.json` to
`config.json` and customising it:
For a good example, see https://riot.im/develop/config.json.
1. `default_server_config` sets the default homeserver and identity server URL for
Riot to use. The object is the same as returned by [https://<server_name>/.well-known/matrix/client](https://matrix.org/docs/spec/client_server/latest.html#get-well-known-matrix-client),
with added support for a `server_name` under the `m.homeserver` section to display
a custom homeserver name. Alternatively, the config can contain a `default_server_name`
instead which is where Riot will go to get that same object, although this option is
deprecated - see the `.well-known` link above for more information on using this option.
Note that the `default_server_name` is used to get a complete server configuration
whereas the `server_name` in the `default_server_config` is for display purposes only.
* *Note*: The URLs can also be individually specified as `default_hs_url` and
`default_is_url`, however these are deprecated. They are maintained for backwards
compatibility with older configurations. `default_is_url` is respected only
if `default_hs_url` is used.
* The identity server is used for verifying third party identifiers like emails
and phone numbers. It is not used to store your password or account information.
If not provided, the identity server defaults to vector.im. Currently the only
two public identity servers are https://matrix.org and https://vector.im, however
in future identity servers will be decentralised. In the future it will be possible
to disable the identity server functionality.
* Riot will fail to load if a mix of `default_server_config`, `default_server_name`, or
`default_hs_url` is specified. When multiple sources are specified, it is unclear
which should take priority and therefore the application cannot continue.
1. `features`: Lookup of optional features that may be `enable`d, `disable`d, or exposed to the user
in the `labs` section of settings. The available optional experimental features vary from
release to release. The available features are described in [labs.md](labs.md).
1. `showLabsSettings`: Shows the "labs" tab of user settings even when no `features` are enabled
or present. Useful for getting at settings which may be otherwise hidden.
1. `brand`: String to pass to your homeserver when configuring email notifications, to let the
homeserver know what email template to use when talking to you.
1. `branding`: Configures various branding and logo details, such as:
1. `welcomeBackgroundUrl`: An image to use as a wallpaper outside the app
during authentication flows
1. `authHeaderLogoUrl`: An logo image that is shown in the header during
authentication flows
1. `authFooterLinks`: a list of links to show in the authentication page footer:
`[{"text": "Link text", "url": "https://link.target"}, {"text": "Other link", ...}]`
1. `integrations_ui_url`: URL to the web interface for the integrations server. The integrations
server is not Riot and normally not your homeserver either. The integration server settings
may be left blank to disable integrations.
1. `integrations_rest_url`: URL to the REST interface for the integrations server.
1. `integrations_widgets_urls`: list of URLs to the REST interface for the widget integrations server.
1. `bug_report_endpoint_url`: endpoint to send bug reports to (must be running a
https://github.com/matrix-org/rageshake server). Bug reports are sent when a user clicks
"Send Logs" within the application. Bug reports can be disabled by leaving the
`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.
1. `default_theme`: name of theme to use by default (e.g. 'light')
1. `update_base_url` (electron app only): HTTPS URL to a web server to download
updates from. This should be the path to the directory containing `macos`
and `win32` (for update packages, not installer packages).
1. `cross_origin_renderer_url`: URL to a static HTML page hosting code to help display
encrypted file attachments. This MUST be hosted on a completely separate domain to
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`: 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. `welcomeUserId`: the user ID of a bot to invite whenever users register that can give them a tour
1. `embeddedPages`: Configures the pages displayed in portions of Riot that
embed static files, such as:
1. `welcomeUrl`: Initial content shown on the outside of the app when not
logged in. Defaults to `welcome.html` supplied with Riot.
1. `homeUrl`: Content shown on the inside of the app when a specific room is
not selected. By default, no home page is configured. If one is set, a
button to access it will be shown in the top left menu.
1. `defaultCountryCode`: The ISO 3166 alpha2 country code to use when showing
country selectors, like the phone number input on the registration page.
Defaults to `GB` if the given code is unknown or not provided.
1. `settingDefaults`: Defaults for settings that support the `config` level,
as an object mapping setting name to value (note that the "theme" setting
is special cased to the `default_theme` in the config file).
1. `disable_custom_urls`: disallow the user to change the
default homeserver when signing up or logging in.
1. `permalinkPrefix`: Used to change the URL that Riot generates permalinks with.
By default, this is "https://matrix.to" to generate matrix.to (spec) permalinks.
Set this to your Riot instance URL if you run an unfederated server (eg:
"https://riot.example.org").
Note that `index.html` also has an og:image meta tag that is set to an image
hosted on riot.im. This is the image used if links to your copy of Riot
appear in some websites like Facebook, and indeed Riot itself. This has to be
static in the HTML and an absolute URL (and HTTP rather than HTTPS), so it's
not possible for this to be an option in config.json. If you'd like to change
it, you can build Riot, but run
`RIOT_OG_IMAGE_URL="http://example.com/logo.png" yarn build`.
Alternatively, you can edit the `og:image` meta tag in `index.html` directly
each time you download a new version of Riot.
Desktop app configuration
=========================
To run multiple instances of the desktop app for different accounts, you can
launch the executable with the `--profile` argument followed by a unique
identifier, e.g `riot-web --profile Work` for it to run a separate profile and
not interfere with the default one.
Alternatively, a custom location for the profile data can be specified using the
`--profile-dir` flag followed by the desired path.
+ `%APPDATA%\$NAME\config.json` on Windows
+ `$XDG_CONFIG_HOME\$NAME\config.json` or `~/.config/$NAME/config.json` on Linux
+ `~Library/Application Support/$NAME/config.json` on macOS
In the paths above, `$NAME` is typically `Riot`, unless you use `--profile
$PROFILE` in which case it becomes `Riot-$PROFILE`.

51
docs/labs.md Normal file
View File

@@ -0,0 +1,51 @@
# Labs features
Some notes on the features you can enable by going to `Settings->Labs`. Not exhaustive, chat in
[#riot-web:matrix.org](https://matrix.to/#/#riot-web:matrix.org) for more information.
**Be warned! Labs features are not finalised, they may be fragile, they may change, they may be
dropped. Ask in the room if you are unclear about any details here.**
## Message pinning (`feature_pinning`)
Allows you to pin messages in the room. To pin a message, use the 3 dots to the right of the message
and select "Pin".
## Custom status (`feature_custom_status`)
An experimental approach for supporting custom status messages across DMs. To set a status, click on
your avatar next to the message composer.
## Custom tags (`feature_custom_tags`)
An experimental approach for dealing with custom tags. Custom tags will appear in the bottom portion
of the community filter panel.
Setting custom tags is not supported by Riot.
## Render simple counters in room header (`feature_state_counters`)
Allows rendering of labelled counters above the message list.
Once enabled, send a custom state event to a room to set values:
1. In a room, type `/devtools` to bring up the devtools interface
2. Click "Send Custom Event"
3. Toggle from "Event" to "State Event"
4. Set the event type to: `re.jki.counter` and give it a unique key
5. Specify the content in the following format:
```
{
"link": "",
"severity": "normal",
"title": "my counter",
"value": 0
}
```
That's it. Now should see your new counter under the header.
## Multiple integration managers (`feature_many_integration_managers`)
Exposes a way to access all the integration managers known to Riot. This is an implementation of [MSC1957](https://github.com/matrix-org/matrix-doc/pull/1957).

View File

@@ -0,0 +1,53 @@
## Memory leaks
Riot usually emits slow behaviour just before it is about to crash. Getting a
memory snapshot (below) just before that happens is ideal in figuring out what
is going wrong.
Common symptoms are clicking on a room and it feels like the tab froze and scrolling
becoming jumpy/staggered.
If you receive a white screen (electron) or the chrome crash page, it is likely
run out of memory and it is too late for a memory profile. Please do report when
this happens though so we can try and narrow down what might have gone wrong.
## Memory profiles/snapshots
When investigating memory leaks/problems it's usually important to compare snapshots
from different points in the Riot session lifecycle. Most importantly, a snapshot
to establish the baseline or "normal" memory usage is useful. Taking a snapshot
roughly 30-60 minutes after starting Riot is a good time to establish "normal"
memory usage for the app - anything after that is at risk of hiding the memory leak
and anything newer is still in the warmup stages of the app.
**Memory profiles can contain sensitive information.** If you are submitting a memory
profile to us for debugging purposes, please pick the appropriate Riot developer and
send them over an encrypted private message. *Do not share your memory profile in
public channels or with people you do not trust.*
### Taking a memory profile (Firefox)
1. Press CTRL+SHIFT+I (I as in eye).
2. Click the Memory tab.
3. Press the camera icon in the top left of the pane.
4. Wait a bit (coffee is a good option).
5. When the save button appears on the left side of the panel, click it to save the
profile locally.
6. Compress the file (gzip or regular zip) to make the file smaller.
7. Send the compressed file to whoever asked for it (if you trust them).
While the profile is in progress, the tab might be frozen or unresponsive.
### Taking a memory profile (Chrome/Desktop)
1. Press CTRL+SHIFT+I (I as in eye).
2. Click the Memory tab.
3. Select "Heap Snapshot" and the riot.im VM instance (not the indexeddb one).
4. Click "Take Snapshot".
5. Wait a bit (coffee is a good option).
6. When the save button appears on the left side of the panel, click it to save the
profile locally.
7. Compress the file (gzip or regular zip) to make the file smaller.
8. Send the compressed file to whoever asked for it (if you trust them).
While the profile is in progress, the tab might be frozen or unresponsive.

View File

@@ -6,6 +6,8 @@ The modifier is <kbd>Ctrl</kbd> on Windows & Linux and <kbd>⌘</kbd> on Mac.
- <kbd>Ctrl</kbd>/<kbd>⌘</kbd>+<kbd>d</kbd> - toggle mic mute
- <kbd>Ctrl</kbd>/<kbd>⌘</kbd>+<kbd>e</kbd> - toggle video on/off
- <kbd>Ctrl</kbd>/<kbd>⌘</kbd>+<kbd>k</kbd> - jump to named room
- <kbd>↑</kbd>/<kbd>↓</kbd> - navigate within room list
- <kbd>↑</kbd>/<kbd>↓</kbd> - navigate old messages to edit when the composer is in focus
- <kbd>↑</kbd>/<kbd>↓</kbd> - next/prev room when focus in room list
- <kbd>Alt</kbd>+<kbd>↑</kbd>/<kbd>↓</kbd> - resend previous messages when the composer is in focus
- <kbd>PageUp</kbd>/<kbd>PageDown</kbd> - scroll timeline up/down
- <kbd>Ctrl</kbd>/<kbd>⌘</kbd>+<kbd>Home</kbd>/<kbd>End</kbd> - jump to timeline start/end

View File

@@ -0,0 +1,14 @@
#!/bin/bash
# Link to the binary
ln -sf '/opt/${productFilename}/${executable}' '/usr/bin/${executable}'
# SUID chrome-sandbox for Electron 5+
# Remove this entire file (after-install.tpl) and remove the reference in
# package.json once this change has been upstreamed so we go back to the copy
# from upstream.
# https://github.com/electron-userland/electron-builder/pull/4163
chmod 4755 '/opt/${productFilename}/chrome-sandbox' || true
update-mime-database /usr/share/mime || true
update-desktop-database /usr/share/applications || true

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.6 KiB

After

Width:  |  Height:  |  Size: 13 KiB

View File

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

View File

@@ -1,4 +1,6 @@
This directory contains the config file for the official riot.im distribution
of Riot Desktop. You probably do not want to build with this config unless
you're building the official riot.im distribution, or you'll find your builds
will replace themselves with the riot.im build.
of Riot Desktop.
You probably do not want to build with this config unless you're building the
official riot.im distribution, or you'll find your builds will replace
themselves with the riot.im build.

View File

@@ -1,13 +1,16 @@
{
"update_base_url": "https://riot.im/download/desktop/update/",
"update_base_url": "https://packages.riot.im/desktop/update/",
"default_hs_url": "https://matrix.org",
"default_is_url": "https://vector.im",
"brand": "Riot",
"integrations_ui_url": "https://scalar.vector.im/",
"integrations_rest_url": "https://scalar.vector.im/api",
"integrations_widgets_urls": [
"https://scalar-staging.riot.im/scalar/api",
"https://scalar.vector.im/api"
"https://scalar.vector.im/_matrix/integrations/v1",
"https://scalar.vector.im/api",
"https://scalar-staging.vector.im/_matrix/integrations/v1",
"https://scalar-staging.vector.im/api",
"https://scalar-staging.riot.im/scalar/api"
],
"hosting_signup_link": "https://modular.im/?utm_source=riot-web&utm_medium=web",
"bug_report_endpoint_url": "https://riot.im/bugreports/submit",

View File

@@ -0,0 +1 @@
export OSSLSIGNCODE_SIGNARGS='-pkcs11module /Library/Frameworks/eToken.framework/Versions/Current/libeToken.dylib -pkcs11engine /usr/local/lib/engines/engine_pkcs11.so -certs electron_app/riot.im/New_Vector_Ltd.pem -key 0a3271cbc1ec0fd8afb37f6bbe0cd65ba08d3b4d -t http://timestamp.comodoca.com -h sha256 -verbose'

View File

@@ -1,8 +1,8 @@
/*
Copyright 2016 Aviral Dasgupta
Copyright 2016 OpenMarket Ltd
Copyright 2017 Michael Telatynski <7t3chguy@gmail.com>
Copyright 2018 New Vector Ltd
Copyright 2018, 2019 New Vector Ltd
Copyright 2017, 2019 Michael Telatynski <7t3chguy@gmail.com>
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
@@ -23,7 +23,10 @@ limitations under the License.
const checkSquirrelHooks = require('./squirrelhooks');
if (checkSquirrelHooks()) return;
const argv = require('minimist')(process.argv);
const argv = require('minimist')(process.argv, {
alias: {help: "h"},
});
const {app, ipcMain, powerSaveBlocker, BrowserWindow, Menu, autoUpdater, protocol} = require('electron');
const AutoLaunch = require('auto-launch');
const path = require('path');
@@ -37,12 +40,27 @@ const { migrateFromOldOrigin } = require('./originMigrator');
const windowStateKeeper = require('electron-window-state');
const Store = require('electron-store');
if (argv["help"]) {
console.log("Options:");
console.log(" --profile-dir {path}: Path to where to store the profile.");
console.log(" --profile {name}: Name of alternate profile to use, allows for running multiple accounts.");
console.log(" --devtools: Install and use react-devtools and react-perf.");
console.log(" --no-update: Disable automatic updating.");
console.log(" --hidden: Start the application hidden in the system tray.");
console.log(" --help: Displays this help message.");
console.log("And more such as --proxy, see:" +
"https://github.com/electron/electron/blob/master/docs/api/chrome-command-line-switches.md");
app.exit();
}
// boolean flag set whilst we are doing one-time origin migration
// We only serve the origin migration script while we're actually
// migrating to mitigate any risk of it being used maliciously.
let migratingOrigin = false;
if (argv['profile']) {
if (argv['profile-dir']) {
app.setPath('userData', argv['profile-dir']);
} else if (argv['profile']) {
app.setPath('userData', `${app.getPath('userData')}-${argv['profile']}`);
}
@@ -139,7 +157,7 @@ ipcMain.on('ipcCall', async function(ev, payload) {
ret = autoUpdater.getFeedURL();
break;
case 'getAutoLaunchEnabled':
ret = launcher.isEnabled;
ret = await launcher.isEnabled();
break;
case 'setAutoLaunchEnabled':
if (args[0]) {
@@ -154,6 +172,14 @@ ipcMain.on('ipcCall', async function(ev, payload) {
case 'setMinimizeToTrayEnabled':
store.set('minimizeToTray', global.minimizeToTray = args[0]);
break;
case 'getAutoHideMenuBarEnabled':
ret = global.mainWindow.isMenuBarAutoHide();
break;
case 'setAutoHideMenuBarEnabled':
store.set('autoHideMenuBar', args[0]);
global.mainWindow.setAutoHideMenuBar(args[0]);
global.mainWindow.setMenuBarVisibility(!args[0]);
break;
case 'getAppVersion':
ret = app.getVersion();
break;
@@ -171,6 +197,9 @@ ipcMain.on('ipcCall', async function(ev, payload) {
await migrateFromOldOrigin();
migratingOrigin = false;
break;
case 'getConfig':
ret = vectorConfig;
break;
default:
mainWindow.webContents.send('ipcReply', {
id: payload.id,
@@ -206,7 +235,14 @@ const launcher = new AutoLaunch({
// work.
// Also mark it as secure (ie. accessing resources from this
// protocol and HTTPS won't trigger mixed content warnings).
protocol.registerStandardSchemes(['vector'], {secure: true});
protocol.registerSchemesAsPrivileged([{
scheme: 'vector',
privileges: {
standard: true,
secure: true,
supportFetchAPI: true,
},
}]);
app.on('ready', () => {
if (argv['devtools']) {
@@ -293,7 +329,10 @@ app.on('ready', () => {
console.log('No update_base_url is defined: auto update is disabled');
}
const iconPath = `${__dirname}/../img/riot.${process.platform === 'win32' ? 'ico' : 'png'}`;
// It's important to call `path.join` so we don't end up with the packaged
// asar in the final path.
const iconFile = `riot.${process.platform === 'win32' ? 'ico' : 'png'}`;
const iconPath = path.join(__dirname, "..", "..", "img", iconFile);
// Load the previous window state with fallback to defaults
const mainWindowState = windowStateKeeper({
@@ -305,7 +344,7 @@ app.on('ready', () => {
mainWindow = global.mainWindow = new BrowserWindow({
icon: iconPath,
show: false,
autoHideMenuBar: true,
autoHideMenuBar: store.get('autoHideMenuBar', true),
x: mainWindowState.x,
y: mainWindowState.y,

View File

@@ -33,7 +33,11 @@ async function migrateFromOldOrigin() {
webgl: false,
},
});
ipcMain.on('origin_migration_complete', (e, success, sentSummary, storedSummary) => {
const onOriginMigrationComplete = (e, success, sentSummary, storedSummary) => {
// we use once but we'll only get one of these events,
// so remove the listener for the other one
ipcMain.removeListener('origin_migration_nodata', onOriginMigrationNoData);
if (success) {
console.log("Origin migration completed successfully!");
} else {
@@ -43,12 +47,18 @@ async function migrateFromOldOrigin() {
console.error("Data stored", storedSummary);
migrateWindow.close();
resolve();
});
ipcMain.on('origin_migration_nodata', (e) => {
};
const onOriginMigrationNoData = (e, success, sentSummary, storedSummary) => {
ipcMain.removeListener('origin_migration_complete', onOriginMigrationComplete);
console.log("No session to migrate from old origin");
migrateWindow.close();
resolve();
});
};
ipcMain.once('origin_migration_complete', onOriginMigrationComplete);
ipcMain.once('origin_migration_nodata', onOriginMigrationNoData);
// Normalise the path because in the distribution, __dirname will be inside the
// electron asar.
const sourcePagePath = path.normalize(__dirname + '/../../origin_migrator/source.html');

View File

@@ -1,5 +1,5 @@
/*
Copyright 2018 New Vector Ltd
Copyright 2018, 2019 New Vector Ltd
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
@@ -14,16 +14,7 @@ See the License for the specific language governing permissions and
limitations under the License.
*/
const { ipcRenderer, webFrame } = require('electron');
const { ipcRenderer } = require('electron');
// expose ipcRenderer to the renderer process
window.ipcRenderer = ipcRenderer;
// Allow the fetch API to load resources from this
// protocol: this is necessary to load olm.wasm.
// (Also mark it a secure although we've already
// done this in the main process).
webFrame.registerURLSchemeAsPrivileged('vector', {
secure: true,
supportFetchAPI: true,
});

View File

@@ -65,7 +65,7 @@ exports.create = function(config) {
global.mainWindow.webContents.on('page-favicon-updated', async function(ev, favicons) {
if (!favicons || favicons.length <= 0 || !favicons[0].startsWith('data:')) {
if (lastFavicon !== null) {
win.setIcon(defaultIcon);
global.mainWindow.setIcon(defaultIcon);
trayIcon.setImage(defaultIcon);
lastFavicon = null;
}

View File

@@ -57,8 +57,8 @@ const template = [
role: 'help',
submenu: [
{
label: 'riot.im',
click() { shell.openExternal('https://riot.im/'); },
label: 'Riot Help',
click() { shell.openExternal('https://about.riot.im/help'); },
},
],
},

View File

@@ -1,5 +1,7 @@
const {clipboard, nativeImage, Menu, MenuItem, shell} = require('electron');
const {clipboard, nativeImage, Menu, MenuItem, shell, dialog} = require('electron');
const url = require('url');
const fs = require('fs');
const request = require('request');
const MAILTO_PREFIX = "mailto:";
@@ -34,7 +36,11 @@ function onWindowOrNavigate(ev, target) {
}
function onLinkContextMenu(ev, params) {
const url = params.linkURL || params.srcURL;
let url = params.linkURL || params.srcURL;
if (url.startsWith('vector://vector/webapp')) {
url = "https://riot.im/app/" + url.substring(23);
}
const popupMenu = new Menu();
// No point trying to open blob: URLs in an external browser: it ain't gonna work.
@@ -47,6 +53,7 @@ function onLinkContextMenu(ev, params) {
}));
}
let addSaveAs = false;
if (params.mediaType && params.mediaType === 'image' && !url.startsWith('file://')) {
popupMenu.append(new MenuItem({
label: 'Copy image',
@@ -58,6 +65,10 @@ function onLinkContextMenu(ev, params) {
}
},
}));
// We want the link to be ordered below the copy stuff, but don't want to duplicate
// the `if` statement, so use a flag.
addSaveAs = true;
}
// No point offering to copy a blob: URL either
@@ -79,6 +90,36 @@ function onLinkContextMenu(ev, params) {
}));
}
}
if (addSaveAs) {
popupMenu.append(new MenuItem({
label: 'Save image as...',
click() {
const targetFileName = params.titleText || "image.png";
const filePath = dialog.showSaveDialog({
defaultPath: targetFileName,
});
if (!filePath) return; // user cancelled dialog
try {
if (url.startsWith("data:")) {
fs.writeFileSync(filePath, nativeImage.createFromDataURL(url));
} else {
request.get(url).pipe(fs.createWriteStream(filePath));
}
} catch (err) {
console.error(err);
dialog.showMessageBox({
type: "error",
title: "Failed to save image",
message: "The image failed to save",
});
}
},
}));
}
// popup() requires an options object even for no options
popupMenu.popup({});
ev.preventDefault();

View File

@@ -100,7 +100,7 @@ module.exports = function (config) {
// test results reporter to use
// available reporters: https://npmjs.org/browse/keyword/karma-reporter
reporters: ['logcapture', 'spec', 'junit', 'summary'],
reporters: ['logcapture', 'spec', 'summary'],
specReporter: {
suppressErrorSummary: false, // do print error summary
@@ -138,10 +138,10 @@ module.exports = function (config) {
],
customLaunchers: {
'ChromeHeadless': {
'VectorChromeHeadless': {
base: 'Chrome',
flags: [
// '--no-sandbox',
'--no-sandbox',
// See https://chromium.googlesource.com/chromium/src/+/lkgr/headless/README.md
'--headless',
'--disable-gpu',
@@ -159,10 +159,6 @@ module.exports = function (config) {
// how many browser should be started simultaneous
concurrency: Infinity,
junitReporter: {
outputDir: 'karma-reports',
},
webpack: webpack_config,
webpackMiddleware: {

View File

@@ -2,7 +2,7 @@
"name": "riot-web",
"productName": "Riot",
"main": "electron_app/src/electron-main.js",
"version": "1.0.4-rc.1",
"version": "1.5.0",
"description": "A feature-rich client for Matrix.org",
"author": "New Vector Ltd.",
"repository": {
@@ -30,22 +30,26 @@
"reskindex:watch": "reskindex -h src/header -w",
"i18n": "matrix-gen-i18n",
"prunei18n": "matrix-prune-i18n",
"diff-i18n": "cp src/i18n/strings/en_EN.json src/i18n/strings/en_EN_orig.json && yarn i18n && node scripts/compare-file.js src/i18n/strings/en_EN_orig.json src/i18n/strings/en_EN.json",
"build:res": "node scripts/copy-res.js",
"build:modernizr": "modernizr -c .modernizr.json -d src/vector/modernizr.js",
"build:compile": "yarn reskindex && babel --source-maps -d lib src",
"build:bundle": "cross-env NODE_ENV=production webpack -p --progress --bail --mode production",
"build:bundle:dev": "webpack --progress --bail --mode development",
"build:electron": "yarn clean && yarn build && yarn install:electron && build -wml --ia32 --x64",
"build:electron": "yarn clean && yarn build && yarn install:electron && electron-builder -wml --ia32 --x64",
"build:electron:linux": "yarn build && electron-builder -l --x64",
"build:electron:macos": "yarn build && electron-builder -m --x64",
"build:electron:windows": "yarn build && electron-builder -w --ia32 --x64",
"build:react-sdk": "node scripts/yarn-sub.js matrix-react-sdk build",
"build:js-sdk": "node scripts/yarn-sub.js matrix-js-sdk start:init",
"build": "yarn build:js-sdk && yarn build:react-sdk && yarn reskindex && yarn build:res && yarn build:bundle",
"build:dev": "yarn build:js-sdk && yarn build:react-sdk && yarn reskindex && yarn build:res && yarn build:bundle:dev",
"dist": "scripts/package.sh",
"install:electron": "install-app-deps",
"install:electron": "electron-builder install-app-deps",
"electron": "yarn install:electron && electron .",
"start:res": "node scripts/copy-res.js -w",
"start:js": "webpack-dev-server --host=0.0.0.0 --output-filename=bundles/_dev_/[name].js --output-chunk-filename=bundles/_dev_/[name].js -w --progress --mode development",
"start:js:prod": "cross-env NODE_ENV=production webpack-dev-server -w --progress",
"start:js:prod": "cross-env NODE_ENV=production webpack-dev-server -w --progress --mode production",
"start:js-sdk": "node scripts/yarn-sub.js matrix-js-sdk start:watch",
"start:js-sdk:prod": "cross-env NODE_ENV=production node scripts/yarn-sub.js matrix-js-sdk start:watch",
"start:react-sdk": "node scripts/yarn-sub.js matrix-react-sdk start:all",
@@ -56,7 +60,7 @@
"lintall": "eslint src/ test/",
"clean": "rimraf lib webapp electron_app/dist",
"prepare": "yarn clean && yarn build:compile",
"test": "karma start --single-run=true --autoWatch=false --browsers ChromeHeadless",
"test": "karma start --single-run=true --autoWatch=false --browsers VectorChromeHeadless",
"test-multi": "karma start"
},
"dependencies": {
@@ -67,16 +71,16 @@
"draft-js": "^0.11.0-alpha",
"extract-text-webpack-plugin": "^4.0.0-beta.0",
"favico.js": "^0.3.10",
"gemini-scrollbar": "github:matrix-org/gemini-scrollbar#b302279",
"gemini-scrollbar": "github:matrix-org/gemini-scrollbar#91e1e566",
"gfm.css": "^1.1.2",
"highlight.js": "^9.13.1",
"matrix-js-sdk": "1.0.2-rc.1",
"matrix-react-sdk": "1.0.4-rc.1",
"matrix-js-sdk": "2.4.2",
"matrix-react-sdk": "1.7.0",
"modernizr": "^3.6.0",
"olm": "https://matrix.org/packages/npm/olm/olm-3.1.0-pre1.tgz",
"prop-types": "^15.6.2",
"react": "^15.6.0",
"react-dom": "^15.6.0",
"olm": "https://packages.matrix.org/npm/olm/olm-3.1.4.tgz",
"prop-types": "^15.7.2",
"react": "^16.9.0",
"react-dom": "^16.9.0",
"sanitize-html": "^1.19.1",
"ua-parser-js": "^0.7.19",
"url": "^0.11.0"
@@ -88,7 +92,9 @@
"babel-eslint": "^8.1.1",
"babel-loader": "^7.1.5",
"babel-plugin-add-module-exports": "^0.2.1",
"babel-plugin-syntax-dynamic-import": "^6.18.0",
"babel-plugin-transform-async-to-bluebird": "^1.1.1",
"babel-plugin-transform-builtin-extend": "^1.1.2",
"babel-plugin-transform-class-properties": "^6.24.1",
"babel-plugin-transform-object-rest-spread": "^6.26.0",
"babel-plugin-transform-runtime": "^6.23.0",
@@ -102,10 +108,10 @@
"cpx": "^1.3.2",
"cross-env": "^4.0.0",
"css-loader": "^2.1.0",
"electron-builder": "^20.38.5",
"electron-builder-squirrel-windows": "^20.38.5",
"electron-builder": "^21.2.0",
"electron-builder-squirrel-windows": "^21.2.0",
"electron-devtools-installer": "^2.2.4",
"emojione": "^2.2.7",
"electron-notarize": "^0.1.1",
"eslint": "^5.8.0",
"eslint-config-google": "^0.7.1",
"eslint-plugin-babel": "^4.1.2",
@@ -117,9 +123,8 @@
"html-webpack-plugin": "^3.2.0",
"json-loader": "^0.5.3",
"karma": "^3.1.2",
"karma-chrome-launcher": "^0.2.3",
"karma-chrome-launcher": "^2.2.0",
"karma-cli": "^1.0.1",
"karma-junit-reporter": "^2.0.0",
"karma-logcapture-reporter": "0.0.1",
"karma-mocha": "^1.3.0",
"karma-sourcemap-loader": "^0.3.7",
@@ -127,8 +132,8 @@
"karma-summary-reporter": "^1.5.1",
"karma-webpack": "4.0.0-beta.0",
"loader-utils": "^1.2.3",
"matrix-mock-request": "^1.2.2",
"matrix-react-test-utils": "^0.2.0",
"matrix-mock-request": "^1.2.3",
"matrix-react-test-utils": "^0.2.2",
"minimist": "^1.2.0",
"mkdirp": "^0.5.1",
"mocha": "^5.2.0",
@@ -140,23 +145,25 @@
"postcss-scss": "^1.0.6",
"postcss-simple-vars": "^4.1.0",
"postcss-strip-inline-comments": "^0.1.5",
"react-addons-perf": "^15.4.0",
"react-addons-test-utils": "^15.6.0",
"rimraf": "^2.4.3",
"shell-escape": "^0.2.0",
"source-map-loader": "^0.2.4",
"webpack": "^4.23.1",
"webpack-cli": "^3.1.2",
"webpack-dev-server": "^3.1.10"
"webpack-dev-server": "^3.1.11"
},
"build": {
"appId": "im.riot.app",
"electronVersion": "4.0.8",
"electronVersion": "6.0.11",
"files": [
"node_modules/**",
"src/**",
"img/**"
"src/**"
],
"extraResources": [
{
"from": "electron_app/img",
"to": "img"
},
"webapp/**/*",
"origin_migrator/**/*"
],
@@ -168,6 +175,9 @@
"StartupWMClass": "riot"
}
},
"deb": {
"afterInstall": "electron_app/build/linux/after-install.tpl"
},
"mac": {
"category": "public.app-category.social-networking"
},
@@ -180,6 +190,7 @@
"buildResources": "electron_app/build",
"output": "electron_app/dist",
"app": "electron_app"
}
},
"afterSign": "scripts/electron_afterSign.js"
}
}

View File

@@ -1 +1 @@
signing_id: packages@riot.im
signing_id: releases@riot.im

View File

@@ -149,6 +149,15 @@ h1::after {
background-image: url('welcome/images/icon-room-directory.svg');
}
/*
.mx_WelcomePage_loggedIn is applied by EmbeddedPage from the Welcome component
If it is set on the page, we should show the buttons. Otherwise, we have to assume
we don't have an account and should hide them. No account == no guest account either.
*/
.mx_WelcomePage:not(.mx_WelcomePage_loggedIn) .mx_WelcomePage_guestFunctions {
display: none;
}
</style>
<div class="mx_Parent">
@@ -169,9 +178,9 @@ h1::after {
<!-- The comments below are meant to be used by Ansible as a quick way
to strip out the marked content when desired.
See https://github.com/vector-im/riot-web/issues/8622.
TODO: Convert to config option if possible. -->
TODO: Strip out these comments and rely on the guest flag -->
<!-- BEGIN Ansible: Remove these lines when guest access is disabled -->
<div class="mx_ButtonRow">
<div class="mx_ButtonRow mx_WelcomePage_guestFunctions">
<div>
<div class="mx_ButtonWrapperText">_t("Need help?")</div>
<a href="#/user/@riot-bot:matrix.org?action=chat" class="mx_ButtonParent mx_SecondaryButton mx_Button_iconHelp">

11
riot.im/README Normal file
View File

@@ -0,0 +1,11 @@
This directory contains the config files and deployment scripts for the official
riot.im distribution of Riot Web at https://riot.im.
You probably do not want to build with this config unless you're building the
official riot.im distribution, but these files may be useful if you want to
inspect the configuration used there.
Riot Desktop uses a separate config (see electron_app/riot.im/config.json).
Deployment scripts (such as app/deploy.py) are meant to be run on the web server
hosting the Riot installation.

50
riot.im/app/config.json Normal file
View File

@@ -0,0 +1,50 @@
{
"default_hs_url": "https://matrix.org",
"default_is_url": "https://vector.im",
"brand": "Riot",
"integrations_ui_url": "https://scalar.vector.im/",
"integrations_rest_url": "https://scalar.vector.im/api",
"integrations_widgets_urls": [
"https://scalar.vector.im/_matrix/integrations/v1",
"https://scalar.vector.im/api",
"https://scalar-staging.vector.im/_matrix/integrations/v1",
"https://scalar-staging.vector.im/api",
"https://scalar-staging.riot.im/scalar/api"
],
"hosting_signup_link": "https://modular.im/?utm_source=riot-web&utm_medium=web",
"bug_report_endpoint_url": "https://riot.im/bugreports/submit",
"welcomeUserId": "@riot-bot:matrix.org",
"piwik": {
"url": "https://piwik.riot.im/",
"siteId": 1,
"policyUrl": "https://matrix.org/docs/guides/riot_im_cookie_policy"
},
"phasedRollOut": {
"feature_lazyloading": {
"offset": 1539684000000,
"period": 604800000
}
},
"features": {
"feature_lazyloading": "enable",
"feature_room_breadcrumbs": "labs"
},
"roomDirectory": {
"servers": [
"matrix.org"
]
},
"enable_presence_by_hs_url": {
"https://matrix.org": false
},
"terms_and_conditions_links": [
{
"url": "https://riot.im/privacy",
"text": "Privacy Policy"
},
{
"url": "https://matrix.org/docs/guides/riot_im_cookie_policy",
"text": "Cookie Policy"
}
]
}

191
riot.im/app/deploy.py Executable file
View File

@@ -0,0 +1,191 @@
#!/usr/bin/env python
#
# download and unpack a riot-web tarball.
#
# Allows `bundles` to be extracted to a common directory, and a link to
# config.json to be added.
from __future__ import print_function
import argparse
import os
import os.path
import subprocess
import sys
import tarfile
import shutil
import glob
try:
# python3
from urllib.request import urlretrieve
except ImportError:
# python2
from urllib import urlretrieve
class DeployException(Exception):
pass
def create_relative_symlink(linkname, target):
relpath = os.path.relpath(target, os.path.dirname(linkname))
print ("Symlink %s -> %s" % (linkname, relpath))
os.symlink(relpath, linkname)
def move_bundles(source, dest):
"""Move the contents of the 'bundles' directory to a common dir
We check that we will not be overwriting anything before we proceed.
Args:
source (str): path to 'bundles' within the extracted tarball
dest (str): target common directory
"""
if not os.path.isdir(dest):
os.mkdir(dest)
# build a map from source to destination, checking for non-existence as we go.
renames = {}
for f in os.listdir(source):
dst = os.path.join(dest, f)
if os.path.exists(dst):
print (
"Skipping bundle. The bundle includes '%s' which we have previously deployed."
% f
)
else:
renames[os.path.join(source, f)] = dst
for (src, dst) in renames.iteritems():
print ("Move %s -> %s" % (src, dst))
os.rename(src, dst)
class Deployer:
def __init__(self):
self.packages_path = "."
self.bundles_path = None
self.should_clean = False
# filename -> symlink path e.g 'config.localhost.json' => '../localhost/config.json'
self.symlink_paths = {}
self.verify_signature = True
def deploy(self, tarball, extract_path):
"""Download a tarball if necessary, and unpack it
Returns:
(str) the path to the unpacked deployment
"""
print("Deploying %s to %s" % (tarball, extract_path))
name_str = os.path.basename(tarball).replace(".tar.gz", "")
extracted_dir = os.path.join(extract_path, name_str)
if os.path.exists(extracted_dir):
raise DeployException('Cannot unpack %s: %s already exists' % (
tarball, extracted_dir))
downloaded = False
if tarball.startswith("http://") or tarball.startswith("https://"):
tarball = self.download_and_verify(tarball)
print("Downloaded file: %s" % tarball)
downloaded = True
try:
with tarfile.open(tarball) as tar:
tar.extractall(extract_path)
finally:
if self.should_clean and downloaded:
os.remove(tarball)
print ("Extracted into: %s" % extracted_dir)
if self.symlink_paths:
for link_path, file_path in self.symlink_paths.iteritems():
create_relative_symlink(
target=file_path,
linkname=os.path.join(extracted_dir, link_path)
)
if self.bundles_path:
extracted_bundles = os.path.join(extracted_dir, 'bundles')
move_bundles(source=extracted_bundles, dest=self.bundles_path)
# replace the extracted_bundles dir (which may not be empty if some
# bundles were skipped) with a symlink to the common dir.
shutil.rmtree(extracted_bundles)
create_relative_symlink(
target=self.bundles_path,
linkname=extracted_bundles,
)
return extracted_dir
def download_and_verify(self, url):
tarball = self.download_file(url)
if self.verify_signature:
sigfile = self.download_file(url + ".asc")
subprocess.check_call(["gpg", "--verify", sigfile, tarball])
return tarball
def download_file(self, url):
if not os.path.isdir(self.packages_path):
os.mkdir(self.packages_path)
local_filename = os.path.join(self.packages_path,
url.split('/')[-1])
sys.stdout.write("Downloading %s -> %s..." % (url, local_filename))
sys.stdout.flush()
urlretrieve(url, local_filename)
print ("Done")
return local_filename
if __name__ == "__main__":
parser = argparse.ArgumentParser("Deploy a Riot build on a web server.")
parser.add_argument(
"-p", "--packages-dir", default="./packages", help=(
"The directory to download the tarball into. (Default: '%(default)s')"
)
)
parser.add_argument(
"-e", "--extract-path", default="./deploys", help=(
"The location to extract .tar.gz files to. (Default: '%(default)s')"
)
)
parser.add_argument(
"-b", "--bundles-dir", nargs='?', default="./bundles", help=(
"A directory to move the contents of the 'bundles' directory to. A \
symlink to the bundles directory will also be written inside the \
extracted tarball. Example: './bundles'. \
(Default: '%(default)s')"
)
)
parser.add_argument(
"-c", "--clean", action="store_true", default=False, help=(
"Remove .tar.gz files after they have been downloaded and extracted. \
(Default: %(default)s)"
)
)
parser.add_argument(
"--include", nargs='*', default=['./config*.json'], help=(
"Symlink these files into the root of the deployed tarball. \
Useful for config files and home pages. Supports glob syntax. \
(Default: '%(default)s')"
)
)
parser.add_argument(
"tarball", help=(
"filename of tarball, or URL to download."
),
)
args = parser.parse_args()
deployer = Deployer()
deployer.packages_path = args.packages_dir
deployer.bundles_path = args.bundles_dir
deployer.should_clean = args.clean
for include in args.include:
deployer.symlink_paths.update({ os.path.basename(pth): pth for pth in glob.iglob(include) })
deployer.deploy(args.tarball, args.extract_path)

View File

@@ -0,0 +1,57 @@
{
"default_hs_url": "https://matrix.org",
"default_is_url": "https://vector.im",
"brand": "Riot",
"integrations_ui_url": "https://scalar-staging.vector.im/",
"integrations_rest_url": "https://scalar-staging.vector.im/api",
"integrations_widgets_urls": [
"https://scalar.vector.im/_matrix/integrations/v1",
"https://scalar.vector.im/api",
"https://scalar-staging.vector.im/_matrix/integrations/v1",
"https://scalar-staging.vector.im/api",
"https://scalar-staging.riot.im/scalar/api"
],
"hosting_signup_link": "https://modular.im/?utm_source=riot-web&utm_medium=web",
"bug_report_endpoint_url": "https://riot.im/bugreports/submit",
"features": {
"feature_rich_quoting": "labs",
"feature_pinning": "labs",
"feature_presence_management": "labs",
"feature_sticker_messages": "labs",
"feature_jitsi": "labs",
"feature_tag_panel": "enable",
"feature_keybackup": "labs",
"feature_custom_status": "labs",
"feature_custom_tags": "labs",
"feature_lazyloading": "enable",
"feature_tabbed_settings": "labs",
"feature_sas": "labs",
"feature_room_breadcrumbs": "labs",
"feature_state_counters": "labs",
"feature_many_integration_managers": "labs"
},
"welcomeUserId": "@riot-bot:matrix.org",
"piwik": {
"url": "https://piwik.riot.im/",
"siteId": 1,
"policyUrl": "https://matrix.org/docs/guides/riot_im_cookie_policy"
},
"roomDirectory": {
"servers": [
"matrix.org"
]
},
"enable_presence_by_hs_url": {
"https://matrix.org": false
},
"terms_and_conditions_links": [
{
"url": "https://riot.im/privacy",
"text": "Privacy Policy"
},
{
"url": "https://matrix.org/docs/guides/riot_im_cookie_policy",
"text": "Cookie Policy"
}
]
}

View File

@@ -1,24 +1,10 @@
#!/bin/bash
set -e
# Runs package.sh setting the version to git hashes of the riot-web,
# react-sdk & js-sdk checkouts, for the case where these dependencies
# are git checkouts.
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"
nvm use 10
set -x
# check out corresponding branches of dependencies.
# clone the deps with depth 1: we know we will only ever need that one commit.
`dirname $0`/fetch-develop.deps.sh --depth 1
yarn install
# run the mocha tests
yarn test
# run eslint
yarn lintall -- -f checkstyle -o eslint.xml || true
set -ex
rm dist/riot-*.tar.gz || true # rm previous artifacts without failing if it doesn't exist

10
scripts/compare-file.js Normal file
View File

@@ -0,0 +1,10 @@
const fs = require("fs");
if (process.argv.length < 4) throw new Error("Missing source and target file arguments");
const sourceFile = fs.readFileSync(process.argv[2], 'utf8');
const targetFile = fs.readFileSync(process.argv[3], 'utf8');
if (sourceFile !== targetFile) {
throw new Error("Files do not match");
}

View File

@@ -38,11 +38,13 @@ const INCLUDE_LANGS = [
{'value': 'pt_BR', 'label': 'Português do Brasil'},
{'value': 'ru', 'label': 'Русский'},
{'value': 'sk', 'label': 'Slovenčina'},
{'value': 'sq', 'label': 'Shqip'},
{'value': 'sr', 'label': 'српски'},
{'value': 'sv', 'label': 'Svenska'},
{'value': 'te', 'label': 'తెలుగు'},
{'value': 'th', 'label': 'ไทย'},
{'value': 'tr', 'label': 'Türk'},
{'value': 'vls', 'label': 'West-Vlaams'},
{'value': 'zh_Hans', 'label': '简体中文'}, // simplified chinese
{'value': 'zh_Hant', 'label': '繁體中文'}, // traditional chinese
];
@@ -57,8 +59,6 @@ const COPY_LIST = [
["res/themes/**", "webapp/themes"],
["res/vector-icons/**", "webapp/vector-icons"],
["node_modules/matrix-react-sdk/res/media/**", "webapp/media"],
["node_modules/emojione/assets/svg/*", "webapp/emojione/svg/"],
["node_modules/emojione/assets/png/*", "webapp/emojione/png/"],
["node_modules/olm/olm_legacy.js", "webapp", { directwatch: 1 }],
["./config.json", "webapp", { directwatch: 1 }],
];

View File

@@ -166,7 +166,7 @@ if __name__ == "__main__":
)
)
parser.add_argument(
"--include", nargs='*', default='./config*.json', help=(
"--include", nargs='*', default=['./config*.json'], help=(
"Symlink these files into the root of the deployed tarball. \
Useful for config files and home pages. Supports glob syntax. \
(Default: '%(default)s')"

View File

@@ -0,0 +1,30 @@
#!/bin/sh
set -ex
if [ $USE_CUSTOM_SDKS == false ]
then
echo "skipping react-sdk and js-sdk installs: USE_CUSTOM_SDKS is false"
exit 0
fi
echo "Linking js-sdk"
git clone $JS_SDK_REPO js-sdk
cd js-sdk
git checkout $JS_SDK_BRANCH
yarn link
yarn --network-timeout=100000 install
cd ../
echo "Linking react-sdk"
git clone $REACT_SDK_REPO react-sdk
cd react-sdk
git checkout $REACT_SDK_BRANCH
yarn link
yarn link matrix-js-sdk
yarn --network-timeout=100000 install
cd ../
echo "Setting up riot-web with react-sdk and js-sdk packages"
yarn link matrix-js-sdk
yarn link matrix-react-sdk

View File

@@ -1,26 +1,30 @@
#!/bin/bash
set -e
usage() {
echo "Usage: $0 -v <version> -c <config file> [-n]"
echo "Usage: $0 -v <version> -d <config directory> [-n]"
echo
echo "version: commit-ish to check out and build"
echo "config file: a path to a json config file to"
echo "ship with the build. In addition, update_base_url:"
echo "from this file is used to set up auto-update."
echo "config directory: a path to a directory containing"
echo "config.json, a json config file to ship with the build"
echo "and env.sh, a file to source environment variables"
echo "from."
echo "-n: build with no config file."
echo
echo "Values may also be passed as environment variables"
echo "The update_base_url value from config.json is used to set up auto-update."
echo
echo "Environment variables:"
echo " OSSLSIGNCODE_SIGNARGS: Arguments to pass to osslsigncode when signing"
echo " NOTARIZE_APPLE_ID: Apple ID to use for notarisation. The password for"
echo " this account must be set in NOTARIZE_CREDS in the keychain."
}
conffile=
confdir=
version=
skipcfg=0
while getopts "c:v:n" opt; do
while getopts "d:v:n" opt; do
case $opt in
c)
conffile=$OPTARG
d)
confdir=$OPTARG
;;
v)
version=$OPTARG
@@ -42,6 +46,8 @@ if [ -z "$version" ]; then
exit
fi
conffile="$confdir/config.json"
if [ -z "$conffile" ] && [ "$skipcfg" = 0 ]; then
echo "No config file given. Use -c to supply a config file or"
echo "-n to build with no config file (and no auto update)."
@@ -67,6 +73,31 @@ if [ ! -f package.json ]; then
exit
fi
[ -f "$confdir/env.sh" ] && . "$confdir/env.sh"
if [ -z "$NOTARIZE_APPLE_ID" ]; then
echo "NOTARIZE_APPLE_ID is not set"
exit
fi
osslsigncode -h 2> /dev/null
if [ $? -ne 255 ]; then # osslsigncode exits with 255 after printing usage...
echo "osslsigncode not found"
exit
fi
# Test that altool can get its credentials for notarising the mac app
xcrun altool -u "$NOTARIZE_APPLE_ID" -p '@keychain:NOTARIZE_CREDS' --list-apps || exit
# Get the token password: we'll need it later, but get it now so we fail early if it's not there
token_password=`security find-generic-password -s riot_signing_token -w`
if [ $? -ne 0 ]; then
echo "riot_signing_token not found in keychain"
exit
fi
set -e
echo "Building $version using Update base URL $update_base_url"
projdir=`pwd`
@@ -85,6 +116,11 @@ if [ -n "$conffile" ]; then
pushd "$builddir"
fi
# We use Git branch / commit dependencies for some packages, and Yarn seems
# to have a hard time getting that right. See also
# https://github.com/yarnpkg/yarn/issues/4734. As a workaround, we clean the
# global cache here to ensure we get the right thing.
yarn cache clean
yarn install
yarn build:electron
@@ -102,14 +138,12 @@ mkdir -p "$projdir/electron_app/dist/unsigned/"
mkdir -p "$pubdir/install/macos"
cp $distdir/*.dmg "$pubdir/install/macos/"
# Windows installers go to the dist dir because they need signing
# Windows installers need signing, this comes later
mkdir -p "$pubdir/install/win32/ia32/"
mkdir -p "$projdir/electron_app/dist/unsigned/ia32/"
cp $distdir/squirrel-windows-ia32/*.exe "$projdir/electron_app/dist/unsigned/ia32/"
mkdir -p "$pubdir/install/win32/x64/"
mkdir -p "$projdir/electron_app/dist/unsigned/x64/"
cp $distdir/squirrel-windows/*.exe "$projdir/electron_app/dist/unsigned/x64/"
# Packages for auto-update
mkdir -p "$pubdir/update/macos"
@@ -131,9 +165,21 @@ cp $distdir/squirrel-windows/RELEASES "$pubdir/update/win32/x64/"
# longer appears to work).
cp $distdir/*_amd64.deb "$projdir/electron_app/dist/"
# Now we sign the windows installer executables (as opposed to the main binary which
# is signed in the electron afteSign hook)
echo "Signing Windows installers..."
exe32=( "$distdir"/squirrel-windows-ia32/*.exe )
basename32=`basename "$exe32"`
osslsigncode sign $OSSLSIGNCODE_SIGNARGS -pass "$token_password" -in "$exe32" -out "$projdir/electron_app/pub/install/win32/ia32/$basename32"
exe64=( "$distdir"/squirrel-windows/*.exe )
basename64=`basename "$exe64"`
osslsigncode sign $OSSLSIGNCODE_SIGNARGS -pass "$token_password" -in "$exe64" -out "$projdir/electron_app/pub/install/win32/x64/$basename64"
echo "Installers signed"
rm -rf "$builddir"
echo "Unsigned Windows installers have been placed in electron_app/dist/unsigned/ - sign them,"
echo "or just copy them to "$pubdir/install/win32/\<arch\>/""
echo "Once you've done this, $pubdir can be hosted on your web server."
echo "$pubdir can now be hosted on your web server."
echo "deb archives are in electron_app/dist/ - these should be added into your debian repository"

View File

@@ -0,0 +1,76 @@
const { notarize } = require('electron-notarize');
const { exec, execFile } = require('child_process');
const fs = require('fs');
const shellescape = require('shell-escape');
exports.default = async function(context) {
const { electronPlatformName, appOutDir } = context;
if (electronPlatformName === 'darwin') {
const appName = context.packager.appInfo.productFilename;
// We get the password from keychain. The keychain stores
// user IDs too, but apparently altool can't get the user ID
// from the keychain, so we need to get it from the environment.
const userId = process.env.NOTARIZE_APPLE_ID;
if (userId === undefined) {
throw new Exception("User ID not found. Set NOTARIZE_APPLE_ID.");
}
console.log("Notarising macOS app. This may be some time.");
return await notarize({
appBundleId: 'im.riot.app',
appPath: `${appOutDir}/${appName}.app`,
appleId: userId,
appleIdPassword: '@keychain:NOTARIZE_CREDS',
});
} else if (electronPlatformName === 'win32') {
// This signs the actual Riot executable
const appName = context.packager.appInfo.productFilename;
// get the token passphrase from the keychain
const tokenPassphrase = await new Promise((resolve, reject) => {
execFile(
'security',
['find-generic-password', '-s', 'riot_signing_token', '-w'],
{},
(err, stdout) => {
if (err) {
reject(err);
} else {
resolve(stdout.trim());
}
},
);
});
return new Promise((resolve, reject) => {
let cmdLine = 'osslsigncode sign ';
if (process.env.OSSLSIGNCODE_SIGNARGS) {
cmdLine += process.env.OSSLSIGNCODE_SIGNARGS + ' ';
}
const tmpFile = 'tmp_' + Math.random().toString(36).substring(2, 15) + '.exe';
cmdLine += shellescape([
'-pass', tokenPassphrase,
'-in', `${appOutDir}/${appName}.exe`,
'-out', `${appOutDir}/${tmpFile}`,
]);
const signproc = exec(cmdLine, {}, (error, stdout) => {
console.log(stdout);
});
signproc.on('exit', (code) => {
if (code !== 0) {
reject("osslsigncode failed with code " + code);
return;
}
fs.rename(`${appOutDir}/${tmpFile}`, `${appOutDir}/${appName}.exe`, (err) => {
if (err) {
reject(err);
} else {
resolve();
}
});
});
});
}
};

View File

@@ -6,7 +6,7 @@
# the branch the current checkout is on, use that branch. Otherwise,
# use develop.
set -e
set -ex
GIT_CLONE_ARGS=("$@")
[ -z "$defbranch" ] && defbranch="develop"
@@ -25,7 +25,7 @@ function clone() {
if [ -n "$branch" ]
then
echo "Trying to use $org/$repo#$branch"
git clone https://github.com/$org/$repo.git $repo --branch $branch \
git clone git://github.com/$org/$repo.git $repo --branch $branch \
"${GIT_CLONE_ARGS[@]}"
return $?
fi
@@ -33,27 +33,39 @@ function clone() {
}
function dodep() {
org=$1
repo=$2
rm -rf $repo
deforg=$1
defrepo=$2
rm -rf $defrepo
# Try the PR author's branch in case it exists on the deps as well.
# Try the target branch of the push or PR.
# Use the default branch as the last resort.
if [[ "$TRAVIS" == true ]]; then
clone $org $repo $TRAVIS_PULL_REQUEST_BRANCH ||
clone $org $repo $TRAVIS_BRANCH ||
clone $org $repo $defbranch ||
if [[ "$BUILDKITE" == true ]]; then
# If BUILDKITE_BRANCH is set, it will contain either:
# * "branch" when the author's branch and target branch are in the same repo
# * "author:branch" when the author's branch is in their fork
# We can split on `:` into an array to check.
BUILDKITE_BRANCH_ARRAY=(${BUILDKITE_BRANCH//:/ })
if [[ "${#BUILDKITE_BRANCH_ARRAY[@]}" == "2" ]]; then
prAuthor=${BUILDKITE_BRANCH_ARRAY[0]}
prBranch=${BUILDKITE_BRANCH_ARRAY[1]}
else
prAuthor=$deforg
prBranch=$BUILDKITE_BRANCH
fi
clone $prAuthor $defrepo $prBranch ||
clone $deforg $defrepo $BUILDKITE_PULL_REQUEST_BASE_BRANCH ||
clone $deforg $defrepo $defbranch ||
return $?
else
clone $org $repo $ghprbSourceBranch ||
clone $org $repo $GIT_BRANCH ||
clone $org $repo `git rev-parse --abbrev-ref HEAD` ||
clone $org $repo $defbranch ||
clone $deforg $defrepo $ghprbSourceBranch ||
clone $deforg $defrepo $GIT_BRANCH ||
clone $deforg $defrepo `git rev-parse --abbrev-ref HEAD` ||
clone $deforg $defrepo $defbranch ||
return $?
fi
echo "$repo set to branch "`git -C "$repo" rev-parse --abbrev-ref HEAD`
echo "$defrepo set to branch "`git -C "$defrepo" rev-parse --abbrev-ref HEAD`
}
##############################

View File

@@ -23,6 +23,9 @@ cp config.sample.json webapp/
mkdir -p dist
cp -r webapp riot-$version
# Just in case you have a local config, remove it before packaging
rm riot-$version/config.json || true
# if $version looks like semver with leading v, strip it before writing to file
if [[ ${version} =~ ^v[[:digit:]]+\.[[:digit:]]+\.[[:digit:]]+(-.+)?$ ]]; then
echo ${version:1} > riot-$version/version

View File

@@ -2,7 +2,8 @@
#
# auto-deploy script for https://riot.im/develop
#
# Listens for HTTP hits. When it gets one, downloads the artifact from jenkins
# Listens for buildkite webhook pokes (https://buildkite.com/docs/apis/webhooks)
# When it gets one, downloads the artifact from buildkite
# and deploys it as the new version.
#
# Requires the following python packages:
@@ -16,6 +17,10 @@ import time
import traceback
from urlparse import urljoin
import glob
import re
import shutil
import threading
from Queue import Queue
from flask import Flask, jsonify, request, abort
@@ -23,10 +28,13 @@ from deploy import Deployer, DeployException
app = Flask(__name__)
arg_jenkins_url = None
deployer = None
arg_extract_path = None
arg_symlink = None
arg_webhook_token = None
arg_api_token = None
workQueue = Queue()
def create_symlink(source, linkname):
try:
@@ -39,81 +47,117 @@ def create_symlink(source, linkname):
else:
raise e
def req_headers():
return {
"Authorization": "Bearer %s" % (arg_api_token,),
}
# Buildkite considers a poke to have failed if it has to wait more than 10s for
# data (any data, not just the initial response) and it normally takes longer than
# that to download an artifact from buildkite. Apparently there is no way in flask
# to finish the response and then keep doing stuff, so instead this has to involve
# threading. Sigh.
def worker_thread():
while True:
toDeploy = workQueue.get()
deploy_buildkite_artifact(*toDeploy)
@app.route("/", methods=["POST"])
def on_receive_jenkins_poke():
# {
# "name": "VectorWebDevelop",
# "build": {
# "number": 8
# }
# }
def on_receive_buildkite_poke():
got_webhook_token = request.headers.get('X-Buildkite-Token')
if got_webhook_token != arg_webbook_token:
print("Denying request with incorrect webhook token: %s" % (got_webhook_token,))
abort(400, "Incorrect webhook token")
return
required_api_prefix = None
if arg_buildkite_org is not None:
required_api_prefix = 'https://api.buildkite.com/v2/organizations/%s' % (arg_buildkite_org,)
incoming_json = request.get_json()
if not incoming_json:
abort(400, "No JSON provided!")
return
print("Incoming JSON: %s" % (incoming_json,))
job_name = incoming_json.get("name")
if not isinstance(job_name, basestring):
abort(400, "Bad job name: %s" % (job_name,))
event = incoming_json.get("event")
if event is None:
abort(400, "No 'event' specified")
return
build_num = incoming_json.get("build", {}).get("number", 0)
if not build_num or build_num <= 0 or not isinstance(build_num, int):
abort(400, "Missing or bad build number")
if event == 'ping':
print("Got ping request - responding")
return jsonify({'response': 'pong!'})
if event != 'build.finished':
print("Rejecting '%s' event")
abort(400, "Unrecognised event")
return
return fetch_jenkins_build(job_name, build_num)
def fetch_jenkins_build(job_name, build_num):
artifact_url = urljoin(
arg_jenkins_url, "job/%s/%s/api/json" % (job_name, build_num)
)
artifact_response = requests.get(artifact_url).json()
# {
# "actions": [],
# "artifacts": [
# {
# "displayPath": "vector-043f6991a4ed-react-20f77d1224ef-js-0a7efe3e8bd5.tar.gz",
# "fileName": "vector-043f6991a4ed-react-20f77d1224ef-js-0a7efe3e8bd5.tar.gz",
# "relativePath": "vector-043f6991a4ed-react-20f77d1224ef-js-0a7efe3e8bd5.tar.gz"
# }
# ],
# "building": false,
# "description": null,
# "displayName": "#11",
# "duration": 137976,
# "estimatedDuration": 132008,
# "executor": null,
# "fullDisplayName": "VectorWebDevelop #11",
# "id": "11",
# "keepLog": false,
# "number": 11,
# "queueId": 12254,
# "result": "SUCCESS",
# "timestamp": 1454432640079,
# "url": "http://matrix.org/jenkins/job/VectorWebDevelop/11/",
# "builtOn": "",
# "changeSet": {},
# "culprits": []
# }
if artifact_response.get("result") != "SUCCESS":
abort(404, "Not deploying. Build was not marked as SUCCESS.")
build_obj = incoming_json.get("build")
if build_obj is None:
abort(400, "No 'build' object")
return
if len(artifact_response.get("artifacts", [])) != 1:
abort(404, "Not deploying. Build has an unexpected number of artifacts.")
build_url = build_obj.get('url')
if build_url is None:
abort(400, "build has no url")
return
tar_gz_path = artifact_response["artifacts"][0]["relativePath"]
if not tar_gz_path.endswith(".tar.gz"):
abort(404, "Not deploying. Artifact is not a .tar.gz file")
if required_api_prefix is not None and not build_url.startswith(required_api_prefix):
print("Denying poke for build url with incorrect prefix: %s" % (build_url,))
abort(400, "Invalid build url")
return
tar_gz_url = urljoin(
arg_jenkins_url, "job/%s/%s/artifact/%s" % (job_name, build_num, tar_gz_path)
)
build_num = build_obj.get('number')
if build_num is None:
abort(400, "build has no number")
return
pipeline_obj = incoming_json.get("pipeline")
if pipeline_obj is None:
abort(400, "No 'pipeline' object")
return
pipeline_name = pipeline_obj.get('name')
if pipeline_name is None:
abort(400, "pipeline has no name")
return
artifacts_url = build_url + "/artifacts"
artifacts_resp = requests.get(artifacts_url, headers=req_headers())
artifacts_resp.raise_for_status()
artifacts_array = artifacts_resp.json()
artifact_to_deploy = None
for artifact in artifacts_array:
if re.match(r"dist/.*.tar.gz", artifact['path']):
artifact_to_deploy = artifact
if artifact_to_deploy is None:
print("No suitable artifacts found")
return jsonify({})
# double paranoia check: make sure the artifact is on the right org too
if required_api_prefix is not None and not artifact_to_deploy['url'].startswith(required_api_prefix):
print("Denying poke for build url with incorrect prefix: %s" % (artifact_to_deploy['url'],))
abort(400, "Refusing to deploy artifact from URL %s", artifact_to_deploy['url'])
return
# there's no point building up a queue of things to deploy, so if there are any pending jobs,
# remove them
while not workQueue.empty():
try:
workQueue.get(False)
except:
pass
workQueue.put([artifact_to_deploy, pipeline_name, build_num])
return jsonify({})
def deploy_buildkite_artifact(artifact, pipeline_name, build_num):
artifact_response = requests.get(artifact['url'], headers=req_headers())
artifact_response.raise_for_status()
artifact_obj = artifact_response.json()
# we extract into a directory based on the build number. This avoids the
# problem of multiple builds building the same git version and thus having
@@ -122,18 +166,16 @@ def fetch_jenkins_build(job_name, build_num):
# a good deploy with a bad one
# (b) we'll be overwriting the live deployment, which means people might
# see half-written files.
build_dir = os.path.join(arg_extract_path, "%s-#%s" % (job_name, build_num))
build_dir = os.path.join(arg_extract_path, "%s-#%s" % (pipeline_name, build_num))
try:
extracted_dir = deploy_tarball(tar_gz_url, build_dir)
extracted_dir = deploy_tarball(artifact_obj, build_dir)
except DeployException as e:
traceback.print_exc()
abort(400, e.message)
create_symlink(source=extracted_dir, linkname=arg_symlink)
return jsonify({})
def deploy_tarball(tar_gz_url, build_dir):
def deploy_tarball(artifact, build_dir):
"""Download a tarball from jenkins and unpack it
Returns:
@@ -145,20 +187,25 @@ def deploy_tarball(tar_gz_url, build_dir):
)
os.mkdir(build_dir)
print("Fetching artifact %s -> %s..." % (artifact['download_url'], artifact['filename']))
# Download the tarball here as buildkite needs auth to do this
# we don't pgp-sign buildkite artifacts, relying on HTTPS and buildkite
# not being evil. If that's not good enough for you, don't use riot.im/develop.
resp = requests.get(artifact['download_url'], stream=True, headers=req_headers())
resp.raise_for_status()
with open(artifact['filename'], 'wb') as ofp:
shutil.copyfileobj(resp.raw, ofp)
print("...download complete. Deploying...")
# we rely on the fact that flask only serves one request at a time to
# ensure that we do not overwrite a tarball from a concurrent request.
return deployer.deploy(tar_gz_url, build_dir)
return deployer.deploy(artifact['filename'], build_dir)
if __name__ == "__main__":
parser = argparse.ArgumentParser("Runs a Vector redeployment server.")
parser.add_argument(
"-j", "--jenkins", dest="jenkins", default="https://matrix.org/jenkins/", help=(
"The base URL of the Jenkins web server. This will be hit to get the\
built artifacts (the .gz file) for redeploying."
)
)
parser.add_argument(
"-p", "--port", dest="port", default=4000, type=int, help=(
"The port to listen on for requests from Jenkins."
@@ -204,13 +251,33 @@ if __name__ == "__main__":
),
)
parser.add_argument(
"--webhook-token", dest="webhook_token", help=(
"Only accept pokes with this buildkite token."
), required=True,
)
parser.add_argument(
"--api-token", dest="api_token", help=(
"API access token for buildkite. Require read_artifacts scope."
), required=True,
)
# We require a matching webhook token, but because we take everything else
# about what to deploy from the poke body, we can be a little more paranoid
# and only accept builds / artifacts from a specific buildkite org
parser.add_argument(
"--org", dest="buildkite_org", help=(
"Lock down to this buildkite org"
)
)
args = parser.parse_args()
if args.jenkins.endswith("/"): # important for urljoin
arg_jenkins_url = args.jenkins
else:
arg_jenkins_url = args.jenkins + "/"
arg_extract_path = args.extract
arg_symlink = args.symlink
arg_webbook_token = args.webhook_token
arg_api_token = args.api_token
arg_buildkite_org = args.buildkite_org
if not os.path.isdir(arg_extract_path):
os.mkdir(arg_extract_path)
@@ -222,25 +289,20 @@ if __name__ == "__main__":
for include in args.include:
deployer.symlink_paths.update({ os.path.basename(pth): pth for pth in glob.iglob(include) })
# we don't pgp-sign jenkins artifacts; instead we rely on HTTPS access to
# the jenkins server (and the jenkins server not being compromised and/or
# github not serving it compromised source). If that's not good enough for
# you, don't use riot.im/develop.
deployer.verify_signature = False
if args.tarball_uri is not None:
build_dir = os.path.join(arg_extract_path, "test-%i" % (time.time()))
deploy_tarball(args.tarball_uri, build_dir)
else:
print(
"Listening on port %s. Extracting to %s%s. Symlinking to %s. Jenkins URL: %s. Include files: %s" %
"Listening on port %s. Extracting to %s%s. Symlinking to %s. Include files: %s" %
(args.port,
arg_extract_path,
" (clean after)" if deployer.should_clean else "",
arg_symlink,
arg_jenkins_url,
deployer.symlink_paths,
)
)
app.run(host="0.0.0.0", port=args.port, debug=True)
fred = threading.Thread(target=worker_thread)
fred.daemon = True
fred.start()
app.run(port=args.port, debug=False)

View File

@@ -15,25 +15,39 @@ See the License for the specific language governing permissions and
limitations under the License.
*/
'use strict';
import React from 'react';
import SdkConfig from 'matrix-react-sdk/lib/SdkConfig';
const React = require('react');
import { _t } from 'matrix-react-sdk/lib/languageHandler';
module.exports = React.createClass({
displayName: 'VectorAuthFooter',
statics: {
replaces: 'AuthFooter',
},
module.exports = () => {
const brandingConfig = SdkConfig.get().branding;
let links = [
{"text": "blog", "url": "https://medium.com/@RiotChat"},
{"text": "twitter", "url": "https://twitter.com/@RiotChat"},
{"text": "github", "url": "https://github.com/vector-im/riot-web"},
];
render: function() {
return (
<div className="mx_AuthFooter">
<a href="https://medium.com/@RiotChat" target="_blank" rel="noopener">blog</a>
<a href="https://twitter.com/@RiotChat" target="_blank" rel="noopener">twitter</a>
<a href="https://github.com/vector-im/riot-web" target="_blank" rel="noopener">github</a>
<a href="https://matrix.org" target="_blank" rel="noopener">{ _t('powered by Matrix') }</a>
</div>
if (brandingConfig && brandingConfig.authFooterLinks) {
links = brandingConfig.authFooterLinks;
}
const authFooterLinks = [];
for (const linkEntry of links) {
authFooterLinks.push(
<a href={linkEntry.url} key={linkEntry.text} target="_blank" rel="noopener">
{linkEntry.text}
</a>,
);
},
});
}
return (
<div className="mx_AuthFooter">
{authFooterLinks}
<a href="https://matrix.org" target="_blank" rel="noopener">{ _t('powered by Matrix') }</a>
</div>
);
};
module.exports.statics = {
replaces: 'AuthFooter',
};

View File

@@ -15,44 +15,40 @@ See the License for the specific language governing permissions and
limitations under the License.
*/
const React = require("react");
import React from "react";
import { _t } from 'matrix-react-sdk/lib/languageHandler';
/**
* This is identical to `CustomServerDialog` except for replacing "this app"
* with "Riot".
*/
module.exports = React.createClass({
displayName: 'VectorCustomServerDialog',
statics: {
replaces: 'CustomServerDialog',
},
render: function() {
return (
<div className="mx_ErrorDialog">
<div className="mx_Dialog_title">
{ _t('Custom Server Options') }
</div>
<div className="mx_Dialog_content">
<p>{_t(
"You can use the custom server options to sign into other " +
"Matrix servers by specifying a different homeserver URL. This " +
"allows you to use Riot with an existing Matrix account on a " +
"different homeserver.",
)}</p>
<p>{_t(
"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.",
)}</p>
</div>
<div className="mx_Dialog_buttons">
<button onClick={this.props.onFinished} autoFocus={true}>
{ _t('Dismiss') }
</button>
</div>
module.exports = ({onFinished}) => {
return (
<div className="mx_ErrorDialog">
<div className="mx_Dialog_title">
{ _t('Custom Server Options') }
</div>
);
},
});
<div className="mx_Dialog_content">
<p>{_t(
"You can use the custom server options to sign into other " +
"Matrix servers by specifying a different homeserver URL. This " +
"allows you to use Riot with an existing Matrix account on a " +
"different homeserver.",
)}</p>
<p>{_t(
"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.",
)}</p>
</div>
<div className="mx_Dialog_buttons">
<button onClick={onFinished} autoFocus={true}>
{ _t('Dismiss') }
</button>
</div>
</div>
);
};
module.exports.statics = {
replaces: 'CustomServerDialog',
};

View File

@@ -2,5 +2,17 @@
"Riot is not supported on mobile web. Install the app?": "Riot mobil qurğular üçün veb-saytın versiyasını dəstəkləmir. Proqramı qurmaq?",
"Riot Desktop on %(platformName)s": "%(platformName)s-da Riot Desktop",
"Unknown device": "Naməlum qurğu",
"You need to be using HTTPS to place a screen-sharing call.": "İş stolunun birgə istifadəsi üçün HTTPS-dan istifadə tələb olunur."
"You need to be using HTTPS to place a screen-sharing call.": "İş stolunun birgə istifadəsi üçün HTTPS-dan istifadə tələb olunur.",
"Your Riot configuration contains invalid JSON. Please correct the problem and reload the page.": "Riot konfiqurasiyanızda yanlış JSON var. Lütfən, xətanı düzəldin və səhifəni yeniləyin",
"Invalid JSON": "Yanlış JSON",
"Sign In": "Daxil ol",
"Create Account": "Hesab Aç",
"Need help?": "Kömək lazımdır?",
"Chat with Riot Bot": "Riot Bot-la söhbət edin",
"Explore rooms": "Otaqları kəşf edin",
"Your Riot is misconfigured": "Riot yanlış quraşdırılıb",
"Unexpected error preparing the app. See console for details.": "Proqramı başladarkən gözlənilməz xəta. Ətraflı məlumat üçün konsola baxın.",
"Invalid configuration: can only specify one of default_server_config, default_server_name, or default_hs_url.": "Yanlış konfiqurasiya: default_server_config, default_server_name, və ya default_hs_url-dən yalnız birini təyin etməlisiniz.",
"Invalid configuration: no default server specified.": "Yanlış konfiqurasiya: ilkin server təyin edilməyib.",
"%(appName)s via %(browserName)s on %(osName)s": "%(osName)s-da %(browserName)s ilə %(appName)s"
}

View File

@@ -9,7 +9,7 @@
"Dismiss": "Затвори",
"powered by Matrix": "базирано на Matrix",
"Welcome to Riot.im": "Добре дошли в Riot.im",
"Decentralised, encrypted chat &amp; collaboration powered by [matrix]": "Децентрализиран, шифрован чат и колаборация базирани на [matrix]",
"Decentralised, encrypted chat &amp; collaboration powered by [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",
@@ -37,10 +37,18 @@
"Dev chat for the Dendrite dev team": "Чат за разработващия екип на Dendrite",
"Co-ordination for Riot translators": "Координация за преводачи на Riot",
"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 homeserver URL. This allows you to use Riot with an existing Matrix account on a different homeserver.": "Може да използвате настройките за собствен сървър за да влезете в друг Matrix сървър, чрез указване на адреса му. Това Ви позволява да използвате Riot със съществуващ Matrix акаунт принадлежащ към друг сървър.",
"Sign In": "Вход",
"You can use the custom server options to sign into other Matrix servers by specifying a different homeserver URL. This allows you to use Riot with an existing Matrix account on a different homeserver.": "Може да използвате настройките за собствен сървър за да влезете в друг Matrix сървър, чрез указване на адреса му. Това ви позволява да използвате Riot със съществуващ Matrix акаунт, принадлежащ към друг сървър.",
"Sign In": "Вписване",
"Create Account": "Създай акаунт",
"Need help?": "Нужда от помощ?",
"Explore rooms": "Открий стаи",
"Room Directory": "Директория със стаи"
"Room Directory": "Директория със стаи",
"Unexpected error preparing the app. See console for details.": "Неочаквана грешка при подготвянето на приложението. Вижте конзолата за подробности.",
"Invalid configuration: can only specify one of default_server_config, default_server_name, or default_hs_url.": "Невалидна конфигурация: може да е указано само едно от: default_server_config, default_server_name, или default_hs_url.",
"Invalid configuration: no default server specified.": "Невалидна конфигурация: не е указан сървър по подразбиране.",
"This installation of Riot seems to have an invalid server configuration. If you are the administrator, please correct the error below": "Тази инсталация на Riot изглежда няма валидна конфигурация за сървър. Ако сте администраторът, моля поправете грешката по-долу",
"Your Riot is misconfigured": "Riot не е конфигуриран правилно",
"Your Riot configuration contains invalid JSON. Please correct the problem and reload the page.": "Riot конфигурацията ви съдържа невалиден JSON. Коригирайте проблема и презаредете страницата.",
"The message from the parser is: %(message)s": "Грешката от парсъра е: %(message)s",
"Invalid JSON": "Невалиден JSON"
}

View File

@@ -42,5 +42,6 @@
"Room Directory": "Directori de sales",
"You can use the custom server options to sign into other Matrix servers by specifying a different homeserver URL. This allows you to use Riot with an existing Matrix account on a different homeserver.": "Podeu emprar les opcions personalitzades del servidor per iniciar la sessió en altres servidors de Matrix especificant un URL de servidor personal diferent. Això us permet emprar el Riot amb un compte de Matrix existent en un servidor personal diferent.",
"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.": "També podeu establir un servidor d'identitat personalitzat, però no podreu convidar usuaris o ser convidats vosaltres mateixos per adreça de correu electrònic.",
"Sign In": "Inicia la sessió"
"Sign In": "Inicia la sessió",
"Invalid configuration: no default server specified.": "Configuració no vàlida: no s'ha especificat cap servidor per defecte."
}

View File

@@ -34,5 +34,19 @@
"Support for those using, running and writing other bridges": "Hjælp til dem der bruger, driver og skriver andre bridges",
"Contributing code to Matrix and Riot": "Biddrag med kode til Matrix og Riot",
"Dev chat for the Riot/Web dev team": "Udviklerchat til Riot/Web udviklerholdet",
"Dev chat for the Dendrite dev team": "Udviklerchat til Dendrite udviklerholdet"
"Dev chat for the Dendrite dev team": "Udviklerchat til Dendrite udviklerholdet",
"Your Riot configuration contains invalid JSON. Please correct the problem and reload the page.": "Din Riot konfiguration indeholder ugyldig JSON. Venligst korrigér problemet og opdatér siden.",
"The message from the parser is: %(message)s": "Beskeden fra parseren er: %(message)s",
"Invalid JSON": "Ugyldig JSON",
"Your Riot is misconfigured": "Din Riot er konfigureret forkert",
"Unexpected error preparing the app. See console for details.": "Uventet fejl ved forberedelse af appen. Se konsollen for detaljer.",
"Invalid configuration: can only specify one of default_server_config, default_server_name, or default_hs_url.": "Ugyldig konfiguration: kan kun angive en af default_server_config, default_server_name eller default_hs_url.",
"Invalid configuration: no default server specified.": "Ugyldig konfiguration: ingen standardserver angivet.",
"You can use the custom server options to sign into other Matrix servers by specifying a different homeserver URL. This allows you to use Riot with an existing Matrix account on a different homeserver.": "Du kan bruge de brugertilpassede serverindstillinger til at logge på andre Matrix servere ved at angive en anden homeserver URL. Dette giver dig mulighed for at bruge Riot med en eksisterende Matrix konto på en anden homeserver.",
"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.": "Du kan også indstille en brugertilpasset identitetsserver, men så vil du ikke kunne invitere brugere pr. e-mail eller selv kunne inviteres pr. e-mail.",
"Sign In": "Log på",
"Create Account": "Opret konto",
"Need help?": "Brug for hjælp?",
"Explore rooms": "Udforsk rum",
"Room Directory": "Rumliste"
}

View File

@@ -37,10 +37,18 @@
"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.": "Die benutzerdefinierten Server-Einstellungen kannst du verwenden, um dich auf anderen Matrix-Servern anzumelden, indem du eine abweichende Heimserver-URL eingibst.<br/>Somit ist es möglich, Riot mit einem bereits bestehendem Matrix-Benutzerkonto auf einem anderen Heimserver zu verwenden.<br/><br/>Außerdem kannst du einen benutzerdefinierten Identitätsserver eingeben. Allerdings kannst du in diesem Fall Benutzer nicht mehr per E-Mail-Adresse einladen und auch selbst nicht mehr per E-Mail-Adresse eingeladen werden.",
"Co-ordination for Riot translators": "Koordination für Riot-Übersetzer",
"You can use the custom server options to sign into other Matrix servers by specifying a different homeserver URL. This allows you to use Riot with an existing Matrix account on a different homeserver.": "Du kannst die erweiterte Serveroption nutzen um dich an einem anderen Matrixserver anzumelden, indem du eine andere Heimserver-URL angibst. Dies erlaubt dir, Riot mit einem existierenden Matrix-Konto auf einem anderen Heimserver zu nutzen.",
"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.": "Du kannst auch einen anderen Identitätsserver einstellen, allerdings kannst du dann andere Benutzer nicht mehr per E-Mail-Adresse einladen, ebenso wirst du selbst nicht mehr per E-Mail-Adresse eingeladen werden können.",
"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.": "Sie können auch einen benutzerdefinierten Identitätsserver festlegen, aber Sie können keine Benutzer per E-Mail-Adresse einladen oder selbst per E-Mail-Adresse eingeladen werden.",
"Sign In": "Anmelden",
"Create Account": "Konto erstellen",
"Need help?": "Brauchst du Hilfe?",
"Explore rooms": "Räume erkunden",
"Room Directory": "Raumverzeichnis"
"Room Directory": "Raumverzeichnis",
"Unexpected error preparing the app. See console for details.": "Unerwarteter Fehler bei der Vorbereitung der App. Siehe Konsole für Details.",
"Invalid configuration: can only specify one of default_server_config, default_server_name, or default_hs_url.": "Ungültige Konfiguration: Es kann nur eine der Optionen default_server_config, default_server_name oder default_hs_url angegeben werden.",
"Invalid configuration: no default server specified.": "Ungültige Konfiguration: Es wurde kein Standardserver angegeben.",
"This installation of Riot seems to have an invalid server configuration. If you are the administrator, please correct the error below": "Diese Installation von Riot scheint eine ungültige Serverkonfiguration zu haben. Wenn Sie der Administrator sind, korrigieren Sie bitte den folgenden Fehler",
"Your Riot is misconfigured": "Dein Riot ist falsch konfiguriert",
"Your Riot configuration contains invalid JSON. Please correct the problem and reload the page.": "Deine Riot Konfiguration enthält ungültiges JSON. Bitte korrigiere das Problem und lade die Seite neu.",
"The message from the parser is: %(message)s": "Die Nachricht des Parsers ist: %(message)s",
"Invalid JSON": "Ungültiges JSON"
}

View File

@@ -1,4 +1,11 @@
{
"Your Riot configuration contains invalid JSON. Please correct the problem and reload the page.": "Your Riot configuration contains invalid JSON. Please correct the problem and reload the page.",
"The message from the parser is: %(message)s": "The message from the parser is: %(message)s",
"Invalid JSON": "Invalid JSON",
"Your Riot is misconfigured": "Your Riot is misconfigured",
"Unexpected error preparing the app. See console for details.": "Unexpected error preparing the app. See console for details.",
"Invalid configuration: can only specify one of default_server_config, default_server_name, or default_hs_url.": "Invalid configuration: can only specify one of default_server_config, default_server_name, or default_hs_url.",
"Invalid configuration: no default server specified.": "Invalid configuration: no default server specified.",
"Riot Desktop on %(platformName)s": "Riot Desktop on %(platformName)s",
"Unknown device": "Unknown device",
"%(appName)s via %(browserName)s on %(osName)s": "%(appName)s via %(browserName)s on %(osName)s",
@@ -15,7 +22,5 @@
"Need help?": "Need help?",
"Chat with Riot Bot": "Chat with Riot Bot",
"Explore rooms": "Explore rooms",
"Room Directory": "Room Directory",
"Search the room directory": "Search the room directory",
"Get started with some tips from Riot Bot!": "Get started with some tips from Riot Bot!"
"Room Directory": "Room Directory"
}

View File

@@ -35,5 +35,19 @@
"Riot/Web &amp; Desktop chat": "Riot/Web &amp; Desktop 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"
"Co-ordination for Riot translators": "Co-ordination for Riot translators",
"You can use the custom server options to sign into other Matrix servers by specifying a different homeserver URL. This allows you to use Riot with an existing Matrix account on a different homeserver.": "You can use the custom server options to sign into other Matrix servers by specifying a different homeserver URL. This allows you to use Riot with an existing Matrix account on a different homeserver.",
"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 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.",
"Sign In": "Sign In",
"Create Account": "Create Account",
"Need help?": "Need help?",
"Explore rooms": "Explore rooms",
"Room Directory": "Room Directory",
"Your Riot configuration contains invalid JSON. Please correct the problem and reload the page.": "Your Riot configuration contains invalid JSON. Please correct the problem and reload the page.",
"The message from the parser is: %(message)s": "The message from the parser is: %(message)s",
"Invalid JSON": "Invalid JSON",
"Your Riot is misconfigured": "Your Riot is misconfigured",
"Unexpected error preparing the app. See console for details.": "Unexpected error preparing the app. See console for details.",
"Invalid configuration: can only specify one of default_server_config, default_server_name, or default_hs_url.": "Invalid configuration: can only specify one of default_server_config, default_server_name, or default_hs_url.",
"Invalid configuration: no default server specified.": "Invalid configuration: no default server specified."
}

View File

@@ -1,14 +1,14 @@
{
"Dismiss": "Rezigni",
"powered by Matrix": "funkciigata de Matrix",
"powered by Matrix": "povigita per Matrix",
"Custom Server Options": "Propraj servilaj elektoj",
"Riot Desktop on %(platformName)s": "Riot Labortablo sur %(platformName)s",
"Riot is not supported on mobile web. Install the app?": "Riot ne estas subtenata sur poŝkomputila reto. Ĉu instali la aplikaĵon?",
"Unknown device": "Nekonata aparato",
"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 babilejo-listo",
"Welcome to Riot.im": "Bonvenon al Riot.im",
"Decentralised, encrypted chat &amp; collaboration powered by [matrix]": "Malcentra, ĉifrita babilado &amp; kunlaboro povigita per [matrix]",
"Search the room directory": "Serĉi en la ĉambra dosierujo",
"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",
@@ -35,5 +35,19 @@
"Lots of rooms already exist in Matrix, linked to existing networks (Slack, IRC, Gitter etc) or independent. Check out the directory!": "Multaj ĉambroj jam ekzistas en Matrix; kaj sendependaj, kaj ligitaj kun jamaj retoj (Slock, IRC, Gitter, ktp.). Rigardu la ĉambrujon!",
"%(appName)s via %(browserName)s on %(osName)s": "%(appName)s per %(browserName)s je %(osName)s",
"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.": "Vi povas uzi proprajn servilajn elektojn por saluti aliajn servilojn de Matrix, per specifo de alia hejmservila URL.<br/>Tio permesas al vi uzi klienton Riot kun jama konto de Matrix en alia hejmservilo.<br/><br/>Vi ankaŭ povas agordi propran identigan servilon, sed vi ne povos inviti uzantojn per retpoŝtadreso, aŭ esti invitata per retpoŝtadreso mem.",
"Co-ordination for Riot translators": "Kunordigo por tradukantoj de Riot"
"Co-ordination for Riot translators": "Kunordigo por tradukantoj de Riot",
"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.": "Vi povas ankaŭ agordi propran identigan servilon, sed vi ne eblos inviti uzantojn per retpoŝtadresoj, nek tiel invitiĝi.",
"Sign In": "Saluti",
"Create Account": "Krei konton",
"Need help?": "Ĉu vi bezonas helpon?",
"Explore rooms": "Esplori ĉambrojn",
"Room Directory": "Ĉambra dosierujo",
"You can use the custom server options to sign into other Matrix servers by specifying a different homeserver URL. This allows you to use Riot with an existing Matrix account on a different homeserver.": "Vi povas uzi proprajn servilajn elekteblojn por saluti al aliaj serviloj de Matrix per doni alian hejmeservilan URL-on. Tio povigos vin uzi Riot kun jama konto de Matrix en alia hejmservilo.",
"Unexpected error preparing the app. See console for details.": "Neatendita eraro okazis dum la preparado de la aplikaĵo. Rigardu la konzolon por detaloj.",
"Invalid configuration: can only specify one of default_server_config, default_server_name, or default_hs_url.": "Nevalida agordo: vi povas specifi nur unu elekteblon el «default_server_config», «default_server_name», aŭ «default_hs_url».",
"Invalid configuration: no default server specified.": "Nevalida agordo: neniu implicita servilo estas specifita.",
"Your Riot is misconfigured": "Via kliento Riot estas misagordita",
"Your Riot configuration contains invalid JSON. Please correct the problem and reload the page.": "Viaj Riot-agordoj enhavas nevalidan JSON-on. Bonvolu korekti la problemon kaj reŝarĝi la paĝon.",
"The message from the parser is: %(message)s": "La mesaĝo el la analizilo estas: %(message)s",
"Invalid JSON": "Nevalida JSON"
}

View File

@@ -8,7 +8,7 @@
"Riot is not supported on mobile web. Install the app?": "Riot no está soportado en navegadores Web móviles. ¿Quieres instalar la aplicación?",
"You need to be using HTTPS to place a screen-sharing call.": "Debes usar HTTPS para hacer una llamada con pantalla compartida.",
"Welcome to Riot.im": "Bienvenido a Riot.im",
"Decentralised, encrypted chat &amp; collaboration powered by [matrix]": "Conversaciones cifradas y descentralizadas &amp; colaboración con el poder de [matrix]",
"Decentralised, encrypted chat &amp; collaboration powered by [matrix]": "Conversaciones cifradas y descentralizadas y colaboración con el poder de [matrix]",
"Search the room directory": "Buscar en el directorio de salas",
"Chat with Riot Bot": "Hablar con Riot Bot",
"Get started with some tips from Riot Bot!": "¡Comenzar con algunos consejos de Riot Bot!",
@@ -42,5 +42,12 @@
"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.": "También puedes definir un servidor de identidad personalizado, pero no podrás invitar a usuarios o ser inivitado usando direcciones de correo.",
"Explore rooms": "Explorar salas",
"Room Directory": "Directorio de salas",
"You can use the custom server options to sign into other Matrix servers by specifying a different homeserver URL. This allows you to use Riot with an existing Matrix account on a different homeserver.": "Puedes usar la opción de servidor personalizado para iniciar sesión en otros servidores Matrix, especificando la dirección URL del servidor. Esto te permite usar una cuenta Matrix en un servidor diferente."
"You can use the custom server options to sign into other Matrix servers by specifying a different homeserver URL. This allows you to use Riot with an existing Matrix account on a different homeserver.": "Puedes usar la opción de servidor personalizado para iniciar sesión en otros servidores Matrix, especificando la dirección URL del servidor. Esto te permite usar una cuenta Matrix en un servidor diferente.",
"Unexpected error preparing the app. See console for details.": "Error inesperado preparando la aplicación. Vea la consola para más detalles.",
"Your Riot is misconfigured": "Riot tiene un error de configuración",
"Invalid configuration: can only specify one of default_server_config, default_server_name, or default_hs_url.": "Configuración errónea: sólo puede especificar uno de default_server_config, default_server_name, o default_hs_url.",
"Invalid configuration: no default server specified.": "Configuración errónea: no se ha especificado servidor.",
"Your Riot configuration contains invalid JSON. Please correct the problem and reload the page.": "Tu configuración de Riot contiene JSON inválido. Por favor corrige el error y recarga la página.",
"The message from the parser is: %(message)s": "El mensaje del parser es: %(message)s",
"Invalid JSON": "JSON inválido"
}

View File

@@ -42,5 +42,12 @@
"Create Account": "Sortu kontua",
"Need help?": "Laguntza behar?",
"Explore rooms": "Arakatu gelak",
"Room Directory": "Gelen direktorioa"
"Room Directory": "Gelen direktorioa",
"Unexpected error preparing the app. See console for details.": "Ustekabeko errorea aplikazioa prestatzean. Ikusi xehetasunak kontsolan.",
"Your Riot is misconfigured": "Zure Riot gaizki konfiguratuta dago",
"Invalid configuration: no default server specified.": "Konfigurazio baliogabea: Ez da lehenetsitako zerbitzaririk zehaztu.",
"Invalid configuration: can only specify one of default_server_config, default_server_name, or default_hs_url.": "Konfigurazio baliogabea: default_server_config, default_server_name, edo default_hs_url bat bakarra zehaztu daiteke.",
"Your Riot configuration contains invalid JSON. Please correct the problem and reload the page.": "Zure Riot konfigurazioak baliogabeko JSON kodea du. Zuzendu arazoa eta kargatu orria berriro.",
"The message from the parser is: %(message)s": "Prozesatzailearen mezua hau da: %(message)s",
"Invalid JSON": "JSON baliogabea"
}

View File

@@ -1,13 +1,13 @@
{
"Dismiss": "Hylkää",
"Unknown device": "Tuntematon laite",
"Welcome to Riot.im": "Tervetuloa Riot.im -palveluun",
"Search the room directory": "Hae hakemistosta",
"Welcome to Riot.im": "Tervetuloa Riot.im-palveluun",
"Search the room directory": "Hae luettelosta",
"Custom Server Options": "Palvelinasetukset",
"Riot Desktop on %(platformName)s": "Riot Desktop %(platformName)s",
"You need to be using HTTPS to place a screen-sharing call.": "Sinun täytyy käyttää HTTPS -yhteyttä, jotta voit jakaa ruudun.",
"Riot Desktop on %(platformName)s": "Riot Desktop, %(platformName)s",
"You need to be using HTTPS to place a screen-sharing call.": "Sinun täytyy käyttää HTTPS-yhteyttä, jotta voit jakaa ruudun puhelussa.",
"Chat with Riot Bot": "Keskustele Riot-botin kanssa",
"Get started with some tips from Riot Bot!": "Aloita Riot Botin vinkkien avulla!",
"Get started with some tips from Riot Bot!": "Aloita Riot-botin vinkkien avulla!",
"General discussion about Matrix and Riot": "Matrix- ja Riot keskustelut",
"Discussion of all things Matrix!": "Keskustelu kaikesta Matrixiin liittyvästä!",
"Riot/Web &amp; Desktop chat": "Riot/Web & Työpöytä-keskustelu",
@@ -28,18 +28,25 @@
"Dev chat for the Riot/Web dev team": "Kehittäjäkeskustelu Riot/Web kehitystiimille",
"Dev chat for the Dendrite dev team": "Kehittäjäkeskustelu Dendrite kehitystiimille",
"Lots of rooms already exist in Matrix, linked to existing networks (Slack, IRC, Gitter etc) or independent. Check out the directory!": "Matrixissa on olemassa monia huoneita, jotka on linkitetty olemassa oleviin verkkoihin (Slack, IRC, Gitter yms.). Tutustu hakemistoon!",
"powered by Matrix": "Matrix",
"powered by Matrix": "moottorina Matrix",
"Riot is not supported on mobile web. Install the app?": "Riot ei tue laitettasi. Asenna mobiilisovellus?",
"Design and implementation of E2E in Matrix": "Matrix päästä-päähän salauksen suunnittelu ja implementointi",
"Contributing code to Matrix and Riot": "Osallistu kehitystyöhön",
"%(appName)s via %(browserName)s on %(osName)s": "%(appName)s %(browserName)s %(osName)s",
"Decentralised, encrypted chat &amp; collaboration powered by [matrix]": "Salattua ja vikasietoista viestintää Matrix -teknologialla",
"%(appName)s via %(browserName)s on %(osName)s": "%(appName)s, %(browserName)s, %(osName)s",
"Decentralised, encrypted chat &amp; collaboration powered by [matrix]": "Hajautettua ja salattua viestintää Matrix-teknologialla",
"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.": "Voit käyttää edistyksellisiä asetuksia kirjautuaksesi muille Matrix palvelimille, määrittelemällä kotipalvelimen URL-osoitteen.<br/>Tämän avulla voit käyttää Riot:ia olemassa olevalla toisen Matrix palvelimen käyttäjätilillä.<br/><br/>Voit myös asettaa valinnaisen identiteettipalvelimen, mutta et voi kutsua käyttäjiä sähköpostiosoitteella tai tulla kutsutuksi.",
"You can use the custom server options to sign into other Matrix servers by specifying a different homeserver URL. This allows you to use Riot with an existing Matrix account on a different homeserver.": "Voit käyttää mukautettuja palvelinasetuksia kirjautuaksesi muihin Matrix-palvelimiin. Tämä mahdollistaa Riotin käyttämisen toisella palvelimella olevalla Matrix-tunnuksella.",
"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.": "Voit myös määrittää toisen identiteettipalvelimen, mutta et voi kutsua muita käyttäjiä sähköpostin perusteella, eivätkä se voi kutsua sinua.",
"Sign In": "Kirjaudu sisään",
"Create Account": "Luo tunnus",
"You can use the custom server options to sign into other Matrix servers by specifying a different homeserver URL. This allows you to use Riot with an existing Matrix account on a different homeserver.": "Voit käyttää mukautettuja palvelinasetuksia kirjautuaksesi muihin Matrix-palvelimiin. Tämä mahdollistaa Riotin käyttämisen toisella kotipalvelimella olevalla Matrix-tilillä.",
"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.": "Voit myös määrittää toisen identiteettipalvelimen, mutta et voi kutsua muita käyttäjiä sähköpostin perusteella tai saada itse kutsua sähköpostin perusteella.",
"Sign In": "Kirjaudu",
"Create Account": "Luo tili",
"Need help?": "Tarvitsetko apua?",
"Explore rooms": "Etsi huoneita",
"Room Directory": "Huonehakemisto"
"Explore rooms": "Selaa huoneita",
"Room Directory": "Huoneluettelo",
"Unexpected error preparing the app. See console for details.": "Odottamaton virhe sovellusta valmisteltaessa. Katso konsolista lisätietoja.",
"Your Riot is misconfigured": "Riotin asetukset ovat pielessä",
"Invalid configuration: can only specify one of default_server_config, default_server_name, or default_hs_url.": "Virheellinen asetus. Vain yhden seuraavista voi määrittää: default_server_config, default_server_name, tai default_hs_url.",
"Invalid configuration: no default server specified.": "Virheellinen asetus: oletuspalvelinta ei ole määritetty.",
"Your Riot configuration contains invalid JSON. Please correct the problem and reload the page.": "Riot-asetuksissasi on virheellistä JSONia. Korjaa ongelma ja lataa sivu uudelleen.",
"The message from the parser is: %(message)s": "Viesti jäsentimeltä: %(message)s",
"Invalid JSON": "Virheellinen JSON"
}

View File

@@ -42,5 +42,13 @@
"Create Account": "Créer un compte",
"Need help?": "Besoin d'aide ?",
"Explore rooms": "Explorer les salons",
"Room Directory": "Répertoire de salons"
"Room Directory": "Répertoire de salons",
"Unexpected error preparing the app. See console for details.": "Une erreur inattendue est survenue pendant la préparation de lapplication. Consultez la console pour avoir des détails.",
"Invalid configuration: can only specify one of default_server_config, default_server_name, or default_hs_url.": "Configuration invalide : il ne faut spécifier quun des trois champs entre default_server_config, default_server_name et default_hs_url.",
"Invalid configuration: no default server specified.": "Configuration invalide : aucun serveur par défaut spécifié.",
"This installation of Riot seems to have an invalid server configuration. If you are the administrator, please correct the error below": "Cette installation de Riot semble avoir une configuration de serveur non valide. Si vous êtes ladministrateur, corrigez lerreur ci-dessous",
"Your Riot is misconfigured": "Votre Riot est mal configuré",
"Your Riot configuration contains invalid JSON. Please correct the problem and reload the page.": "Votre configuration de Riot contient du JSON non valide. Corrigez ce problème et rechargez la page.",
"The message from the parser is: %(message)s": "Le message de lanalyseur est : %(message)s",
"Invalid JSON": "JSON non valide"
}

21
src/i18n/strings/ga.json Normal file
View File

@@ -0,0 +1,21 @@
{
"Riot Desktop on %(platformName)s": "Leagan gnáthríomhaire Riot ar %(platformName)s",
"Unknown device": "Gléas nár aithníodh",
"%(appName)s via %(browserName)s on %(osName)s": "%(appName)s trí %(browserName)s ar %(osName)s",
"You need to be using HTTPS to place a screen-sharing call.": "Ní mór HTTPS a úsáid chun glaoch comhroinnt scáileáin a chur.",
"powered by Matrix": "cumhachtaithe ag Matrix",
"Custom Server Options": "Socruithe do fhreastalaí saincheaptha",
"You can use the custom server options to sign into other Matrix servers by specifying a different homeserver URL. This allows you to use Riot with an existing Matrix account on a different homeserver.": "Is féidir na socruithe do fhreastalaí saincheaptha a úsáid chun síniú isteach le freastalaithe Matrix eile ach URL freastalaí ar leith a shainiú. Cuirfidh sé seo ar do chumas Riot a úsáid le cuntas Matrix atá ar taifead ag an bhfreastalaí eile sin.",
"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.": "Freisin is féidir freastalaí aitheantais saincheaptha a úsáid, ach sa chás sin ní bheidh tú in ann cuireadh a thabhairt do dhaoine trí sheoladh ríomhphoist a sholáthar, ná glacadh le cuireadh trí ríomhphoist ach an oiread.",
"Dismiss": "Cuir uait",
"Welcome to Riot.im": "Fáilte romhat chuig Riot.im",
"Decentralised, encrypted chat &amp; collaboration powered by [matrix]": "Meán comhrá agus comhoibriú, díláraithe agus criptithe, cumhachtaithe ag [matrix]",
"Sign In": "Sínigh Isteach",
"Create Account": "Déan cuntas a chruthú",
"Need help?": "An bhfuil cabhair uait?",
"Chat with Riot Bot": "Labhair le Riot Bot",
"Explore rooms": "Breathnaigh thart ar na seomraí",
"Room Directory": "Eolaire na Seomraí",
"Search the room directory": "Cuardaigh eolaire na seomraí",
"Get started with some tips from Riot Bot!": "Tosaigh le roinnt nod ó Riot Bot!"
}

View File

@@ -41,6 +41,14 @@
"Sign In": "Bejelentkezés",
"Create Account": "Fiók készítés",
"Need help?": "Segíthetünk?",
"Explore rooms": "Szobák felfedezése",
"Room Directory": "Szoba lista"
"Explore rooms": "Szobák felderítése",
"Room Directory": "Szoba lista",
"Unexpected error preparing the app. See console for details.": "Váratlan hiba történt az alkalmazás előkészítésénél. A részletekért nézd meg a konzolt.",
"Invalid configuration: can only specify one of default_server_config, default_server_name, or default_hs_url.": "Érvénytelen konfiguráció: csak egyet lehet megadni a default_server_config, default_server_name és default_hs_url közül.",
"Invalid configuration: no default server specified.": "Érvénytelen konfiguráció: nincs megadva alapértelmezett szerver.",
"This installation of Riot seems to have an invalid server configuration. If you are the administrator, please correct the error below": "A telepített Riotnak úgy tűnik hibás a szerver beállítása. Ha te vagy az adminisztrátor, kérlek javítsd az alábbi hibát",
"Your Riot is misconfigured": "A Riotod hibásan van beállítva",
"Your Riot configuration contains invalid JSON. Please correct the problem and reload the page.": "A Riot beállításod érvénytelen JSON szöveget tartalmaz. Kérlek javítsd és töltsd újra az oldalt.",
"The message from the parser is: %(message)s": "A feldolgozó algoritmus üzenete: %(message)s",
"Invalid JSON": "Érvénytelen JSON"
}

View File

@@ -6,7 +6,7 @@
"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 effettuare una chiamata con la condivisione dello schermo.",
"Welcome to Riot.im": "Benvenuto/a su Riot.im",
"Welcome to Riot.im": "Benvenuti su Riot.im",
"Search the room directory": "Cerca nella lista delle stanze",
"Chat with Riot Bot": "Chatta con Riot Bot",
"Get started with some tips from Riot Bot!": "Inizia con alcuni consigli di Riot Bot!",
@@ -35,5 +35,20 @@
"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 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"
"Co-ordination for Riot translators": "Coordinazione per i traduttori di Riot",
"You can use the custom server options to sign into other Matrix servers by specifying a different homeserver URL. This allows you to use Riot with an existing Matrix account on a different homeserver.": "Puoi usare le opzioni di server personalizzato per accedere ad altri server Matrix specificando un URL homeserver diverso. Ciò ti permette di usare Riot con un account Matrix esistente su un homeserver differente.",
"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 anche impostare un server di identità personalizzato, ma non sarai in grado di invitare utenti via email o di essere invitato via email.",
"Sign In": "Accedi",
"Create Account": "Crea account",
"Need help?": "Serve aiuto?",
"Explore rooms": "Esplora stanze",
"Room Directory": "Elenco stanze",
"Unexpected error preparing the app. See console for details.": "Errore inaspettato preparando l'app. Vedi la console per i dettagli.",
"Invalid configuration: can only specify one of default_server_config, default_server_name, or default_hs_url.": "Configurazione non valida: specificare solo uno di default_server_config, default_server_name, o default_hs_url.",
"Invalid configuration: no default server specified.": "Configurazione non valida: nessun server predefinito specificato.",
"This installation of Riot seems to have an invalid server configuration. If you are the administrator, please correct the error below": "Questa installazione di Riot sembra avere una configurazione server non valida. Se sei l'amministratore, correggi l'errore sottostante",
"Your Riot is misconfigured": "Il tuo Riot è configurato male",
"Your Riot configuration contains invalid JSON. Please correct the problem and reload the page.": "La tua configurazione di Riot contiene un JSON non valido. Correggi il problema e ricarica la pagina.",
"The message from the parser is: %(message)s": "Il messaggio dal parser è: %(message)s",
"Invalid JSON": "JSON non valido"
}

View File

@@ -7,7 +7,7 @@
"Custom Server Options": "カスタムサーバのオプション",
"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/>カスタムアイデンティティサーバを立てることもできますが、メールアドレスでユーザを招待する、または自身が招待されることはできません。",
"Dismiss": "やめる",
"powered by Matrix": "Matrixによって動作しています",
"powered by Matrix": "Matrix の支援により活動しています",
"Riot Desktop on %(platformName)s": "%(platformName)s向けデスクトップ版Riot",
"You need to be using HTTPS to place a screen-sharing call.": "画面共有通話を行うにはHTTPS通信を使う必要があります。",
"Decentralised, encrypted chat &amp; collaboration powered by [matrix]": "分散型の、暗号化された会話とコラボレーション。[matrix]で動作しています",
@@ -35,5 +35,13 @@
"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開発者チームのための開発者チャット",
"Co-ordination for Riot translators": "Riot 翻訳者による共同作業"
"Co-ordination for Riot translators": "Riot 翻訳者による共同作業",
"Unexpected error preparing the app. See console for details.": "アプリケーションの準備中に予期しないエラーが発生しました。詳細はコンソールを参照してください。",
"Your Riot is misconfigured": "あなたの Riot は間違って設定されています。",
"Invalid configuration: no default server specified.": "不正な設定です:デフォルトのサーバーが設定されていません。",
"Sign In": "サインイン",
"Create Account": "アカウントを作成する",
"Need help?": "助けが必要ですか?",
"Explore rooms": "部屋を探索する",
"Room Directory": "部屋のディレクトリー"
}

View File

@@ -1,13 +1,13 @@
{
"Custom Server Options": "사용자 지정 서버 설정",
"Dismiss": "없애기",
"powered by Matrix": "Matrix의 지원을 받고 있습니다",
"Riot Desktop on %(platformName)s": "%(platformName)s PC용 Riot",
"Custom Server Options": "맞춤 서버 설정",
"Dismiss": "버리기",
"powered by Matrix": "Matrix의 지원을 받",
"Riot Desktop on %(platformName)s": "%(platformName)s 용 Riot 데스크톱",
"Riot is not supported on mobile web. Install the app?": "”Riot은 모바일 사이트를 지원하지 않습니다. 앱을 설치하시겠어요?",
"Unknown device": "알 수 없는 장치",
"Welcome to Riot.im": "Riot에 오신 환영해요",
"Chat with Riot Bot": "Riot 봇과 대화하기",
"%(appName)s via %(browserName)s on %(osName)s": "%(osName)s %(browserName)s을 통한 %(appName)s",
"Unknown device": "알 수 없는 기기",
"Welcome to Riot.im": "Riot.im에 오신 것을 환영합니다",
"Chat with Riot Bot": "Riot 봇과 대화",
"%(appName)s via %(browserName)s on %(osName)s": "%(osName)s %(browserName)s에서 연 %(appName)s",
"You need to be using HTTPS to place a screen-sharing call.": "화면 공유 전화를 걸려면 HTTPS를 사용해야 합니다.",
"Decentralised, encrypted chat &amp; collaboration powered by [matrix]": "분산되고, 암호화된 대화 &amp; [matrix]의 지원으로 협력",
"Search the room directory": "방 목록 찾기",
@@ -35,5 +35,19 @@
"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에 있습니다. 목록을 확인해보세요!",
"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/>사용자정의 아이덴티티 서버도 설정할 수 있지만 이메일 주소로 이용자를 초대하거나 자신이 이메일 주소로 초대받을 수 없습니다."
"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/>사용자정의 아이덴티티 서버도 설정할 수 있지만 이메일 주소로 이용자를 초대하거나 자신이 이메일 주소로 초대받을 수 없습니다.",
"Your Riot configuration contains invalid JSON. Please correct the problem and reload the page.": "Riot 설정이 올바르지 않은 JSON을 포함하고 있습니다. 문제를 해결한 후, 페이지를 새로고침하세요.",
"The message from the parser is: %(message)s": "파서에서 온 메시지: %(message)s",
"Invalid JSON": "잘못된 JSON",
"Your Riot is misconfigured": "Riot이 잘못 설정됨",
"Unexpected error preparing the app. See console for details.": "앱을 준비하는 동안 예기치 않은 오류가 발생했습니다. 자세한 내용은 콘솔을 확인하세요.",
"Invalid configuration: can only specify one of default_server_config, default_server_name, or default_hs_url.": "잘못된 설정: default_server_config 와 defalut_server_name, default_hs_url 중 하나만 지정할 수 있습니다.",
"Invalid configuration: no default server specified.": "잘못된 설정: 기본 서버가 지정되지 않았습니다.",
"You can use the custom server options to sign into other Matrix servers by specifying a different homeserver URL. This allows you to use Riot with an existing Matrix account on a different homeserver.": "다른 홈서버 URL을 지정함으로써 맞춤 서버 옵션을 사용, 다른 Matrix 서버에 로그인할 수 있습니다. 이를 통해 다른 홈서버의 기존 Matrix 계정으로 Riot을 사용할 수 있습니다.",
"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.": "또한 맞춤 ID 서버를 설정할 수도 있지만, 이메일 주소로 사용자를 초대하거나, 이메일로 직접 초대할 수 없습니다.",
"Sign In": "로그인",
"Create Account": "계정 만들기",
"Need help?": "도움이 필요합니까?",
"Explore rooms": "방 검색",
"Room Directory": "방 목록"
}

View File

@@ -34,5 +34,20 @@
"Dev chat for the Riot/Web dev team": "Riot/Web izstrādātāju komandas čats",
"Dev chat for the Dendrite dev team": "Dendrite izstrādatāju komandas čats",
"Lots of rooms already exist in Matrix, linked to existing networks (Slack, IRC, Gitter etc) or independent. Check out the directory!": "Matrix-ā pastāv daudzas neatkarīgas un/vai eksistējošiem tīmekļa resursiem (Slack, IRC, Gitter u.tml.) piesaistītas istabas. Ieskaties katalogā!",
"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.": "Tu vari lietot \"custom\" servera opcijas, lai ielogotos citos Matrix serveros, norādot citu Bāzes servera URL.<br> Tas atļaus tev lietot Riot ar esošo Matrix kontu uz cita Bāzes servera.<br/><br/>Tu arī vari uzstādīt atsevišķu Identitāšu serveri, taču tad Tev nebūs iespēju uzaicināt lietotājus, izmantojot epasta adresi, vai pašam tikt uzaicinātam, izmantojot epasta adresi."
"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.": "Tu vari lietot \"custom\" servera opcijas, lai ielogotos citos Matrix serveros, norādot citu Bāzes servera URL.<br> Tas atļaus tev lietot Riot ar esošo Matrix kontu uz cita Bāzes servera.<br/><br/>Tu arī vari uzstādīt atsevišķu Identitāšu serveri, taču tad Tev nebūs iespēju uzaicināt lietotājus, izmantojot epasta adresi, vai pašam tikt uzaicinātam, izmantojot epasta adresi.",
"You can use the custom server options to sign into other Matrix servers by specifying a different homeserver URL. This allows you to use Riot with an existing Matrix account on a different homeserver.": "Varat izmantot pielāgotās servera opcijas, lai pierakstītos citos Matrix serveros, norādot citu mājas servera URL. Tas ļauj jums izmantot Riot ar esošu Matrix kontu citā mājas serverī.",
"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.": "Varat arī iestatīt pielāgotu identitātes serveri, bet jūs nevarēsiet uzaicināt lietotājus izmantojot e-pasta adresi, kā arī tikt uzaicināts pēc e-pasta adreses.",
"Sign In": "Ienākt",
"Create Account": "Izveidot kontu",
"Need help?": "Nepieciešama palīdzība?",
"Explore rooms": "Atklāt istabas",
"Room Directory": "Istabu Katalogs",
"Unexpected error preparing the app. See console for details.": "Negaidīta kļūda, sagatavojot lietotni. Sīkāku informāciju skatiet konsolē.",
"This installation of Riot seems to have an invalid server configuration. If you are the administrator, please correct the error below": "Šai Riot instalācijai ir nekorekta servera konfigurācija. Ja esat administrators, lūdzu, izlabojiet tālāk norādīto kļūdu",
"Invalid configuration: can only specify one of default_server_config, default_server_name, or default_hs_url.": "Nederīga konfigurācija: var norādīt tikai vienu no default_server_config, default_server_name, vai default_hs_url.",
"Invalid configuration: no default server specified.": "Nekorekta konfigurācija: nav norādīts noklusējuma serveris.",
"Your Riot configuration contains invalid JSON. Please correct the problem and reload the page.": "Jūsu Riot konfigurācijā ir nederīgs JSON. Lūdzu, izlabojiet problēmu un ielādējiet lapu atkārtoti.",
"The message from the parser is: %(message)s": "Ziņojums no parsētāja ir: %(message)s",
"Invalid JSON": "Nederīgs JSON",
"Your Riot is misconfigured": "Jūsu Riot ir nepareizi konfigurēts"
}

View File

@@ -7,9 +7,9 @@
"Unknown device": "Onbekend apparaat",
"You need to be using HTTPS to place a screen-sharing call.": "U moet HTTPS gebruiken om een oproep met schermdelen te kunnen starten.",
"Welcome to Riot.im": "Welkom bij Riot.im",
"Decentralised, encrypted chat &amp; collaboration powered by [matrix]": "Gedecentaliseerd en versleuteld chatten &amp; samenwerken mogelijk gemaakt door [matrix]",
"Search the room directory": "De kamerlijst doorzoeken",
"Chat with Riot Bot": "Met Riot Bot chatten",
"Decentralised, encrypted chat &amp; collaboration powered by [matrix]": "Gedecentraliseerd en versleuteld chatten &amp; samenwerken mogelijk gemaakt door [matrix]",
"Search the room directory": "De gesprekscatalogus doorzoeken",
"Chat with Riot Bot": "Chatten met Riot-robot",
"Get started with some tips from Riot Bot!": "Begin met enkele tips van Riot Bot!",
"General discussion about Matrix and Riot": "Algemene discussie over Matrix en Riot",
"Discussion of all things Matrix!": "Discussie over alles wat met Matrix te maken heeft!",
@@ -35,5 +35,20 @@
"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 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"
"Co-ordination for Riot translators": "Coördinatie voor Riot vertalers",
"You can use the custom server options to sign into other Matrix servers by specifying a different homeserver URL. This allows you to use Riot with an existing Matrix account on a different homeserver.": "U kunt de aangepaste serverinstellingen gebruiken om u aan te melden bij andere Matrix-servers, door een andere thuisserver-URL in te voeren. Dit laat u toe Riot te gebruiken met een bestaande Matrix-account bij een andere thuisserver.",
"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.": "U kunt ook een aangepaste identiteitsserver instellen, maar u zult geen gebruikers kunnen uitnodigen via e-mail, of zelf via e-mail uitgenodigd worden.",
"Sign In": "Aanmelden",
"Create Account": "Account aanmaken",
"Need help?": "Hulp nodig?",
"Explore rooms": "Gesprekken ontdekken",
"Room Directory": "Gesprekscatalogus",
"Unexpected error preparing the app. See console for details.": "Er is een onverwachte fout opgetreden bij het voorbereiden van de app. Bekijk de console voor details.",
"Invalid configuration: can only specify one of default_server_config, default_server_name, or default_hs_url.": "Ongeldige configuratie: kan slechts één van default_server_config, default_server_name, of default_hs_url opgeven.",
"Invalid configuration: no default server specified.": "Ongeldige configuratie: geen standaardserver opgegeven.",
"This installation of Riot seems to have an invalid server configuration. If you are the administrator, please correct the error below": "De serverconfiguratie van deze Riot-instantie lijkt ongeldig. Als u de beheerder bent, gelieve dan de fout hieronder te corrigeren",
"Your Riot is misconfigured": "Uw Riot is verkeerd geconfigureerd",
"Your Riot configuration contains invalid JSON. Please correct the problem and reload the page.": "Uw Riot-configuratie bevat ongeldige JSON. Corrigeer het probleem en herlaad de pagina.",
"The message from the parser is: %(message)s": "Het bericht van de verwerker is: %(message)s",
"Invalid JSON": "Ongeldige JSON"
}

View File

@@ -34,13 +34,20 @@
"Dev chat for the Riot/Web dev team": "Utviklar-prat for Riot/Web-utviklargruppa",
"Dev chat for the Dendrite dev team": "Utviklar-prat for Dendrite-utviklargruppa",
"Co-ordination for Riot translators": "Samordning for Riot-omsetjare",
"Custom Server Options": "Eigentenar-innstillingar",
"Custom Server Options": "Tilpassa tenar-innstillingar",
"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.": "Du kan bruka eigentenarinnstillingar til å logga inn på andre Matrixtenarar ved å oppgje ein annan Heimtenar-URL. <br/>Dette gjer at du kan bruka Riot med ein Matrixbrukar som allereie finst på ein annan heimtenar.<br/><br/>Du kan òg setja ein eigen identitetstenar men du kjem i so fall ikkje til å kunna byda brukare inn med epost, eller å sjølv verta boden inn med epost.",
"You can use the custom server options to sign into other Matrix servers by specifying a different homeserver URL. This allows you to use Riot with an existing Matrix account on a different homeserver.": "Du kan nytta dei eigendefinerte tenarinstillingane for å logga inn på andre Matrix-tenarar ved å uppgje ein annan heimtenar-URL. Dette lèt deg bruka Riot med ein Matrix-konto som allereie finst på ein annan heimtenar.",
"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.": "Du kan òg velja ein eigendefinert identitetstenar, men då kjem du ikkje til å innvitere brukarar gjennom e-post, eller verta invitert med e-post sjølv.",
"Sign In": "Logg inn",
"Create Account": "Lag brukar",
"Need help?": "Treng du hjelp?",
"Explore rooms": "Vert kjend med romma",
"Room Directory": "Romutval"
"Explore rooms": "Utforsk romma",
"Room Directory": "Romkatalog",
"Your Riot configuration contains invalid JSON. Please correct the problem and reload the page.": "Riot-konfigurasjonen din har invalid JSON-kode. Korriger dette og last inn sida på nytt.",
"The message from the parser is: %(message)s": "Meldingen frå kodetolkaren er: %(message)s",
"Invalid JSON": "Ugyldig JSON",
"Your Riot is misconfigured": "Riot-klienten din er feilkonfiguert",
"Unexpected error preparing the app. See console for details.": "Uforventa feil under lasting av programmet. Sjå konsollet for detaljar.",
"Invalid configuration: can only specify one of default_server_config, default_server_name, or default_hs_url.": "Ugyldig konfigurasjon berre muleg å berre spesifiere ein av default_server_config, default_server_name eller default_hs_url.",
"Invalid configuration: no default server specified.": "Ugyldig konfigurasjon: \"default server\" er uspesifisert."
}

View File

@@ -39,5 +39,15 @@
"Create Account": "Stwórz konto",
"Sign In": "Zaloguj",
"Need help?": "Potrzebujesz pomocy?",
"Room Directory": "Katalog pokojów"
"Room Directory": "Katalog pokojów",
"Explore rooms": "Przeglądaj pokoje",
"Your Riot configuration contains invalid JSON. Please correct the problem and reload the page.": "Konfiguracja Twojego Riot zawiera błędny plik JSON. Popraw swoją konfigurację i odśwież stronę.",
"The message from the parser is: %(message)s": "Wiadomość od parsera to: %(message)s",
"Invalid JSON": "Błędny JSON",
"Your Riot is misconfigured": "Twój Riot jest źle skonfigurowany",
"Unexpected error preparing the app. See console for details.": "Niespodziewany błąd podczas przygotowywania aplikacji. Otwórz konsolę po szczegóły.",
"Invalid configuration: can only specify one of default_server_config, default_server_name, or default_hs_url.": "Błędna konfiguracja. Można sprecyzować tylko jedno z: default_server_config, default_server_name, lub default_hs_url.",
"Invalid configuration: no default server specified.": "Błędna konfiguracja: nie wybrano domyślnego serwera.",
"You can use the custom server options to sign into other Matrix servers by specifying a different homeserver URL. This allows you to use Riot with an existing Matrix account on a different homeserver.": "Możesz użyć Niestandardowych Opcji Serwera by zalogować się do innych serwerów Matrix poprzez podanie URL innego serwera głównego. Dzięki temu możesz używać Riot z istniejącym kontem z innego serwera głównego.",
"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.": "Możesz również ustawić niestandardowy serwer tożsamości, lecz nie będziesz móc zapraszać użytkowników i otrzymywać zaproszeń poprzez podanie adresu email."
}

View File

@@ -42,5 +42,12 @@
"Create Account": "Criar Conta",
"Need help?": "Precisa de ajuda?",
"Explore rooms": "Explore as salas",
"Room Directory": "Diretório de salas"
"Room Directory": "Diretório de salas",
"Your Riot configuration contains invalid JSON. Please correct the problem and reload the page.": "Sua configuração do Riot contém JSON inválido. Por favor corrija o erro e atualize a página.",
"The message from the parser is: %(message)s": "A mensagem do parser é: %(message)s",
"Invalid JSON": "JSON inválido",
"Your Riot is misconfigured": "Riot possui um erro de configuração",
"Unexpected error preparing the app. See console for details.": "Erro inesperado preparando o aplicativo. Veja o console para mais detalhes.",
"Invalid configuration: can only specify one of default_server_config, default_server_name, or default_hs_url.": "Configuração inválida: somente se pode especificar um valor entre default_server_config, default_server_name, ou default_hs_url.",
"Invalid configuration: no default server specified.": "Configuração inválida: servidor padrão não especificado."
}

View File

@@ -35,5 +35,12 @@
"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."
"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.",
"You can use the custom server options to sign into other Matrix servers by specifying a different homeserver URL. This allows you to use Riot with an existing Matrix account on a different homeserver.": "Puteți utiliza opțiunile personalizate ale serverului pentru a vă conecta la alte servere Matrix specificând o adresă URL diferită pentru homeserver. Acest lucru vă permite să utilizați Riot cu un cont Matrix existent pe un alt server de domiciliu.",
"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.": "De asemenea, puteți seta un server de identitate personalizat, dar nu veți putea să invitați utilizatorii pe adresa de e-mail sau să vă invitați personal pe adresa de e-mail.",
"Sign In": "Autentificare",
"Create Account": "Înregistare",
"Need help?": "Ai nevoie de ajutor?",
"Explore rooms": "Explorează camerele",
"Room Directory": "Lista de camere"
}

View File

@@ -1,5 +1,5 @@
{
"Custom Server Options": "Выбор другого сервера",
"Custom Server Options": "Параметры другого сервера",
"Dismiss": "Отклонить",
"powered by Matrix": "основано на Matrix",
"%(appName)s via %(browserName)s on %(osName)s": "%(appName)s с %(browserName)s на %(osName)s",
@@ -38,9 +38,17 @@
"Co-ordination for Riot translators": "Координационный чат для переводчиков Riot",
"You can use the custom server options to sign into other Matrix servers by specifying a different homeserver URL. This allows you to use Riot with an existing Matrix account on a different homeserver.": "Вы можете изменить параметры для входа на другие Matrix серверы, указав другой URL.\nЭто позволит использовать Riot с учетной записью Matrix, существующей на другом сервере.",
"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.": "Также можно изменить сервер идентификации, но без возможности приглашать (или быть приглашённым) по адресу электронной почты.",
"Sign In": "Вход",
"Sign In": "Войти в систему",
"Create Account": "Создать аккаунт",
"Need help?": "Помочь?",
"Room Directory": "Каталог комнат",
"Explore rooms": "Исследовать комнаты"
"Explore rooms": "Исследовать комнаты",
"Unexpected error preparing the app. See console for details.": "Неожиданная ошибка при подготовке приложения. Подробности см. в консоли.",
"Invalid configuration: can only specify one of default_server_config, default_server_name, or default_hs_url.": "Неверная конфигурация: может указывать только один из следующих параметров: default_server_config, default_server_name или default_hs_url.",
"Invalid configuration: no default server specified.": "Неверная конфигурация: сервер по умолчанию не указан.",
"This installation of Riot seems to have an invalid server configuration. If you are the administrator, please correct the error below": "Эта установка Riot, кажется, имеет неверную конфигурацию сервера. Если вы являетесь администратором, пожалуйста, исправьте ошибку ниже",
"Your Riot is misconfigured": "Ваш Riot неправильно настроен",
"Your Riot configuration contains invalid JSON. Please correct the problem and reload the page.": "Ваша конфигурация Riot содержит нерабочий JSON. Пожалуйста исправьте проблему и перезагрузите страницу.",
"The message from the parser is: %(message)s": "Сообщение из парсера: %(message)s",
"Invalid JSON": "Нерабочий JSON"
}

View File

@@ -0,0 +1,3 @@
{
"Unexpected error preparing the app. See console for details.": "Unexpectit error came up gittin the app set up. See the console? Mair details ur thare."
}

View File

@@ -35,5 +35,13 @@
"Contributing code to Matrix and Riot": "Prispievanie kódu projektom Matrix a Riot",
"Dev chat for the Riot/Web dev team": "Diskusia pre tím vývojárov Riot/Web",
"Dev chat for the Dendrite dev team": "Diskusia pre tím vývojárov Dendrite",
"Co-ordination for Riot translators": "Koordinácia prekladov Riot"
"Co-ordination for Riot translators": "Koordinácia prekladov Riot",
"You can use the custom server options to sign into other Matrix servers by specifying a different homeserver URL. This allows you to use Riot with an existing Matrix account on a different homeserver.": "Môžete použiť vlastné možnosti servera na prihlásenie sa k ďalším serverom Matrix zadaním URL adresy domovského servera. Toto vám umožní použiť Riot na prihlásenie sa k existujúcemu Matrix účtu na inom domovskom servery.",
"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.": "Môžete tiež nastaviť vlastnú URL adresu servera totožností, potom ale nebudete môcť pozývať používateľov zadaním ich emailovej adresy a telefónneho čísla a ani ostatní nebudú môcť pozvať vás zadaním vašej emailovej adresy a telefónneho čísla.",
"Sign In": "Prihlásiť sa",
"Create Account": "Vytvoriť účet",
"Need help?": "Potrebujete pomoc?",
"Explore rooms": "Preskúmať miestnosti",
"Room Directory": "Adresár miestností",
"Your Riot is misconfigured": "Váš Riot nie je nastavený správne"
}

21
src/i18n/strings/sl.json Normal file
View File

@@ -0,0 +1,21 @@
{
"Riot Desktop on %(platformName)s": "Namizni Riot za %(platformName)s",
"Unknown device": "Neznana naprava",
"%(appName)s via %(browserName)s on %(osName)s": "%(appName)s s %(browserName)s na %(osName)s",
"You need to be using HTTPS to place a screen-sharing call.": "Za klic s skupno rabo zaslona potrebujete HTTPS.",
"powered by Matrix": "poganja Matrix",
"Custom Server Options": "Možnosti strežnika po meri",
"You can use the custom server options to sign into other Matrix servers by specifying a different homeserver URL. This allows you to use Riot with an existing Matrix account on a different homeserver.": "Možnosti strežnika po meri lahko uporabite za prijavo v druge Matrix strežnike, s tem da podate drug URL domačega strežnika. To vam omogoča, da uporabljate Riot z obstoječim Matrix računom na drugem strežniku.",
"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.": "Nastavite lahko tudi strežnik za identiteto po meri, vendar ne boste mogli povabiti uporabnikov prek e-pošte, prav tako pa vas ne bodo mogli povabiti drugi.",
"Dismiss": "Opusti",
"Welcome to Riot.im": "Dobrodošli v Riot.im",
"Decentralised, encrypted chat &amp; collaboration powered by [matrix]": "Decentralizirano šifrirano sporočanje &amp; sodelovanje s pomočjo [matrix]",
"Sign In": "Prijava",
"Create Account": "Registracija",
"Need help?": "Potrebujete pomoč?",
"Chat with Riot Bot": "Klepetajte z Riot Botom",
"Explore rooms": "Raziščite sobe",
"Room Directory": "Imenik sob",
"Search the room directory": "Preiščite imenik sob",
"Get started with some tips from Riot Bot!": "Začnite z nekaterimi nasveti Riot Bota!"
}

View File

@@ -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]": "Fjalosje &amp; bashkëpunim i decentralizuar, i fshehtëzuar, bazuar në [matrix]",
"Decentralised, encrypted chat &amp; collaboration powered by [matrix]": "Fjalosje &amp; bashkëpunim decentralizuar, 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",
@@ -42,5 +42,13 @@
"Create Account": "Krijoni Llogari",
"Need help?": "Ju duhet ndihmë?",
"Explore rooms": "Eksploroni dhoma",
"Room Directory": "Listë Dhomash"
"Room Directory": "Listë Dhomash",
"Unexpected error preparing the app. See console for details.": "Gabim i papritur gjatë përgatitjes së aplikacionit. Për hollësi, shihni konsolën.",
"Invalid configuration: can only specify one of default_server_config, default_server_name, or default_hs_url.": "Formësim i pavlefshëm: mund të caktohet vetëm një prej default_server_config, default_server_name, ose default_hs_url.",
"Invalid configuration: no default server specified.": "Formësim i pavlefshëm: sështë caktuar shërbyes parazgjedhje.",
"This installation of Riot seems to have an invalid server configuration. If you are the administrator, please correct the error below": "Ky instalim i Riot-it duket se ka një formësim të pavlefshëm për shërbyesin. Nëse jeni një përgjegjës, ju lutemi, ndreqni gabimin më poshtë",
"Your Riot is misconfigured": "Riot-i juaj është i keqformësuar",
"Your Riot configuration contains invalid JSON. Please correct the problem and reload the page.": "Formësimi juaj i Riot-it përmban JSON. Ju lutemi, ndreqeni problemin dhe ringarkoni faqen.",
"The message from the parser is: %(message)s": "Mesazhi prej procesit është: %(message)s",
"Invalid JSON": "JSON i pavlefshëm"
}

View File

@@ -42,5 +42,12 @@
"Explore rooms": "Истражи собе",
"Room Directory": "Фасцикла са собама",
"You can use the custom server options to sign into other Matrix servers by specifying a different homeserver URL. This allows you to use Riot with an existing Matrix account on a different homeserver.": "Можете користити опције прилагођеног сервера да бисте се пријавили на друге Матрикс сервере тако што ћете навести другачију адресу кућног сервера. Ово вам омогућава да користите Riot са постојећим Матрикс налогом на другом кућном серверу.",
"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 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.": "Такође, можете подесити прилагођени сервер идентитета али у том случају нећете моћи да позивате кориснике преко мејла адресе или да сами будете позвани преко мејл адресе.",
"Your Riot is misconfigured": "Ваш Riot није добро подешен",
"Invalid configuration: no default server specified.": "Погрешно подешавање: подразумевани сервер није наведен.",
"Your Riot configuration contains invalid JSON. Please correct the problem and reload the page.": "Ваша Riot конфигурација садржи погрешан JSON. Молим исправите проблем и поново учитајте страну.",
"The message from the parser is: %(message)s": "Порука из парсера: %(message)s",
"Invalid JSON": "Погрешан JSON",
"Unexpected error preparing the app. See console for details.": "Неочекивана грешка приликом припреме апликације. Погледајте конзолу за више детаља.",
"Invalid configuration: can only specify one of default_server_config, default_server_name, or default_hs_url.": "Погрешно подешавање: можете навести само један вредност од default_server_config, default_server_name, or default_hs_url."
}

View File

@@ -42,5 +42,12 @@
"Create Account": "Skapa konto",
"Need help?": "Behöver du hjälp?",
"Explore rooms": "Utforska rum",
"Room Directory": "Rumslista"
"Room Directory": "Rumslista",
"Your Riot configuration contains invalid JSON. Please correct the problem and reload the page.": "Dina Riot-inställningar innhåller ogiltig JSON. Vänligen uppdatera inställningarna och ladda om sidan.",
"The message from the parser is: %(message)s": "Medelandet från parsern är: %(message)s",
"Invalid JSON": "Ogiltig JSON",
"Your Riot is misconfigured": "Riot är felkonfigurerat",
"Unexpected error preparing the app. See console for details.": "Oväntat fel vid appstart. Se konsollen för mer information.",
"Invalid configuration: can only specify one of default_server_config, default_server_name, or default_hs_url.": "Ogilitiga inställningar: enbart möjligt att specificera en default_config, default_server, eller default_hs_url.",
"Invalid configuration: no default server specified.": "Ogilitiga inställningar: ingen standardserver specificerad."
}

View File

@@ -13,5 +13,20 @@
"Matrix technical discussions": "Matrix தொழில்நுட்ப விவாதங்கள்",
"Running Matrix services": "இருப்பிலிருக்கும் Matrix சேவைகள்",
"Building services on Matrix": "Matrix- ல் சேவைகளைக் கட்டமைக்க",
"Contributing code to Matrix and Riot": "Matrix மற்றும் Riot -ற்க்கு நிரல் பங்களிக்க"
"Contributing code to Matrix and Riot": "Matrix மற்றும் Riot -ற்க்கு நிரல் பங்களிக்க",
"Your Riot configuration contains invalid JSON. Please correct the problem and reload the page.": "உங்கள் Riot உள்ளமைவில் தவறான JSON உள்ளது. சிக்கலை சரிசெய்து பக்கத்தை மீண்டும் ஏற்றவும்.",
"The message from the parser is: %(message)s": "பாகுபடுத்தி அனுப்பிய செய்தி: %(message)s",
"Invalid JSON": "தவறான JSON",
"Your Riot is misconfigured": "உங்கள் Riot தவறாக உள்ளமைக்கப்பட்டுள்ளது",
"Unexpected error preparing the app. See console for details.": "பயன்பாட்டைத் தயாரிப்பதில் எதிர்பாராத பிழை. விவரங்களுக்கு console ஐப் பார்க்கவும்.",
"Invalid configuration: can only specify one of default_server_config, default_server_name, or default_hs_url.": "தவறான உள்ளமைவு: default_server_config, default_server_name அல்லது default_hs_url இல் ஒன்றை மட்டுமே குறிப்பிட முடியும்.",
"Invalid configuration: no default server specified.": "தவறான உள்ளமைவு: இயல்புநிலை சேவையகம் குறிப்பிடப்படவில்லை.",
"You can use the custom server options to sign into other Matrix servers by specifying a different homeserver URL. This allows you to use Riot with an existing Matrix account on a different homeserver.": "வேறுபட்ட ஹோம்சர்வர் URL ஐக் குறிப்பிடுவதன் மூலம் பிற Matrix சேவையகங்களில் உள்நுழைய தனிப்பயன் சேவையக விருப்பங்களைப் பயன்படுத்தலாம். இது வேறு வீட்டு சேவையகத்தில் ஏற்கனவே உள்ள Matrix கணக்கைக் கொண்ட Riot ஐப் பயன்படுத்த உங்களை அனுமதிக்கிறது.",
"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.": "நீங்கள் தனிப்பயன் அடையாள சேவையகத்தையும் அமைக்கலாம், ஆனால் நீங்கள் மின்னஞ்சல் முகவரி மூலம் பயனர்களை அழைக்க முடியாது, அல்லது மின்னஞ்சல் முகவரியால் உங்களை அழைக்க முடியாது.",
"Decentralised, encrypted chat &amp; collaboration powered by [matrix]": "[matrix] ஆல் இயக்கப்படும் பரவலாக்கப்பட்ட, மறைகுறியாக்கப்பட்ட அரட்டை &amp; ஒத்துழைப்பு",
"Sign In": "உள்நுழைக",
"Create Account": "உங்கள் கணக்கை துவங்குங்கள்",
"Need help?": "உதவி தேவை?",
"Explore rooms": "அறைகளை ஆராயுங்கள்",
"Room Directory": "அறை அடைவு"
}

View File

@@ -4,7 +4,7 @@
"Dismiss": "ไม่สนใจ",
"Unknown device": "อุปกรณ์ที่ไม่รู้จัก",
"You need to be using HTTPS to place a screen-sharing call.": "คุณต้องใช้ HTTPS เพื่อเริ่มติดต่อแบบแบ่งปันหน้าจอ",
"Riot Desktop on %(platformName)s": "Riot เดสก์ทอปบน %(platformName)s",
"Riot Desktop on %(platformName)s": "Riot Desktop บน %(platformName)s",
"Riot is not supported on mobile web. Install the app?": "Riot ไม่รองรับเว็บบนอุปกรณ์พกพา ติดตั้งแอป?",
"Custom Server Options": "กำหนดเซิร์ฟเวอร์เอง",
"Welcome to Riot.im": "ยินดีต้อนรับสู่ Riot.im",
@@ -33,5 +33,13 @@
"Design and implementation of E2E in Matrix": "การออกแบบและใช้งาน E2E ใน Matrix",
"Discussion of the Identity Service API": "พูดคุยเกี่ยวกับ Identity Service API",
"Decentralised, encrypted chat &amp; collaboration powered by [matrix]": "ระบบแชทและประสานงาน ไร้ศูนย์กลางและเข้ารหัสได้ โดยใช้เทคโนโลยีจาก [matrix]",
"General discussion about Matrix and Riot": "พูดคุยเรื่องทั่วไป ทั้ง Matrix และ Riot"
"General discussion about Matrix and Riot": "พูดคุยเรื่องทั่วไป ทั้ง Matrix และ Riot",
"Your Riot configuration contains invalid JSON. Please correct the problem and reload the page.": "การตั้งค่า Riot ของคุณมี JSON ที่ไม่ถูกต้อง โปรดแก้ปัญหาและโหลดเพจอีกครั้ง",
"The message from the parser is: %(message)s": "ข้อความจากparserคือ:%(message)s",
"Invalid JSON": "JSON ไม่ถูกต้อง",
"Your Riot is misconfigured": "Riotของคุณตั้งค่าไม่ถูกต้อง",
"Sign In": "เข้าสู่ระบบ",
"Create Account": "สร้างบัญชี",
"Need help?": "ต้องการความช่วยเหลือ?",
"Explore rooms": "สำรวจห้อง"
}

View File

@@ -37,10 +37,13 @@
"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-адресу домашнього сервера. <br/>Це дозволяє використовувати Riot з обліковим записом Matrix який існує на другому домашньому сервері.<br/><br/>Окрім цього, можливо встановити ідентифікаційний сервер користувача, але ви не зможете запросити других користувачів та бути запрошенному використовуючи адресу електронної пошти.",
"Co-ordination for Riot translators": "Координаційний чат для перекладачів Riot",
"You can use the custom server options to sign into other Matrix servers by specifying a different homeserver URL. This allows you to use Riot with an existing Matrix account on a different homeserver.": "Ви можете використати власні параметри сервера для входу в інші Matrix сервери, вказавши інший URL. Це дозволить використовувати Riot з наявним обліковим записом Matrix на іншому сервері.",
"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 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.": "Ви також можете встановити власний сервер ідентифікації, але Ви не зможете запрошувати користувачів (або бути запрошеним самому) за адресою електронної пошти.",
"Need help?": "Допомогти?",
"Sign In": "Вхід",
"Create Account": "Створити аккаунт",
"Explore rooms": "Дослідити кімнати",
"Room Directory": "Каталог кімнат"
"Room Directory": "Каталог кімнат",
"Unexpected error preparing the app. See console for details.": "Неочікувана помилка при підготовці програми. Дивіться деталі у виводі консолі.",
"Invalid configuration: can only specify one of default_server_config, default_server_name, or default_hs_url.": "Невірна конфігурація: можна вказати лише default_server_config, default_server_name або default_hs_url.",
"Invalid configuration: no default server specified.": "Невірна конфігурація: не вказано сервер за замовчуванням."
}

View File

@@ -16,5 +16,19 @@
"Get started with some tips from Riot Bot!": "Bắt đầu với các hướng dẫn từ Riot Bot!",
"General discussion about Matrix and Riot": "Thảo luận chung về Matrix và Riot",
"Discussion of all things Matrix!": "Thào luận về mọi vấn đề liên quan đến Matrix!",
"Riot/Web &amp; Desktop chat": "Riot/Web &amp; Desktop chat"
"Riot/Web &amp; Desktop chat": "Riot/Web &amp; Desktop chat",
"Unexpected error preparing the app. See console for details.": "Lỗi xảy ra trong lúc chuẩn bị app. Xem console log để biết chi tiết.",
"Your Riot is misconfigured": "Hệ thống Riot của bạn bị thiết lập sai",
"Your Riot configuration contains invalid JSON. Please correct the problem and reload the page.": "Thiết lập Riot của bạn chứa JSON không hợp lệ. Bạn hãy sửa lỗi và tải lại trang.",
"The message from the parser is: %(message)s": "Nội dung tin là: %(message)s",
"Invalid JSON": "JSON không hợp lệ",
"Invalid configuration: can only specify one of default_server_config, default_server_name, or default_hs_url.": "Thiết lập không hợp lệ: chỉ có thể điền một trong số default_server_config, default_server_name, hoặc default_hs_url.",
"Invalid configuration: no default server specified.": "Cấu hình không hợp lệ: máy chủ mặc định không được thiết lập.",
"You can use the custom server options to sign into other Matrix servers by specifying a different homeserver URL. This allows you to use Riot with an existing Matrix account on a different homeserver.": "Bạn có thể sử dụng lựa chọn máy chủ khác để đăng nhập vào máy chủ Matrix bằng cách nhập đường dẫn máy chủ riêng. Cách này giúp bạn sử dụng Riot với máy chủ riêng của bạn.",
"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.": "Bạn có thể sử dụng máy chủ định danh riêng, nhưng bạn sẽ không thể mời người dùng bằng email, hoặc được mời bằng email của bạn.",
"Sign In": "Đăng nhập",
"Create Account": "Tạo tài khoản",
"Need help?": "Cần hỗ trợ?",
"Explore rooms": "Khám phá phòng chat",
"Room Directory": "Danh mục phòng"
}

27
src/i18n/strings/vls.json Normal file
View File

@@ -0,0 +1,27 @@
{
"Unexpected error preparing the app. See console for details.": "t Is een onverwachte foute ipgetreedn by t voorbereidn van den app. Bekykt de console vo details.",
"This installation of Riot seems to have an invalid server configuration. If you are the administrator, please correct the error below": "De serverconfiguroatie van deze Riot-instantie lykt oungeldig. A je gy den beheerder zyt, gelieve ton de foute hierounder te corrigeern",
"Invalid configuration: can only specify one of default_server_config, default_server_name, or default_hs_url.": "Oungeldige configuroasje: ku moar één van default_server_config, default_server_name, of default_hs_url ingeevn.",
"Invalid configuration: no default server specified.": "Oungeldige configuroasje: geen standoardserver ingegeevn.",
"Riot Desktop on %(platformName)s": "Riot Desktop ip %(platformName)s",
"Unknown device": "Ounbekend toestel",
"%(appName)s via %(browserName)s on %(osName)s": "%(appName)s via %(browserName)s ip %(osName)s",
"You need to be using HTTPS to place a screen-sharing call.": "Je moet HTTPS gebruukn vo een iproep me schermdeeln te kunn startn.",
"powered by Matrix": "meuglik gemakt deur Matrix",
"Custom Server Options": "Angepaste serverinstelliengn",
"You can use the custom server options to sign into other Matrix servers by specifying a different homeserver URL. This allows you to use Riot with an existing Matrix account on a different homeserver.": "Je kut dangepaste serverinstelliengn gebruukn vo jen eigen an te meldn by andere Matrix-servers, deur een andere thuusserver-URL in te geevn. Da lat je toe van Riot te gebruukn met e bestoande Matrix-account by een andere thuusserver.",
"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 kut ook een angepasten identiteitsserver instelln, ma je goa geen gebruukers kunn uutnodign via e-mail, of zelve via e-mail uutgenodigd wirden.",
"Dismiss": "Afwyzn",
"Welcome to Riot.im": "Welgekommn by Riot.im",
"Decentralised, encrypted chat &amp; collaboration powered by [matrix]": "Gedecentraliseerd en versleuteld chattn &amp; soamenwerkn meuglik gemakt deur [matrix]",
"Sign In": "Anmeldn",
"Create Account": "Account anmoakn",
"Need help?": "Hulp nodig?",
"Chat with Riot Bot": "Chattn me Riot-robot",
"Explore rooms": "Gesprekkn ountdekkn",
"Room Directory": "Gesprekscataloog",
"Your Riot is misconfigured": "Je Riot is verkeerd geconfigureerd gewist",
"Your Riot configuration contains invalid JSON. Please correct the problem and reload the page.": "Je Riot-configuroasje bevat oungeldigen JSON. Corrigeer t probleem en herload t blad.",
"The message from the parser is: %(message)s": "t Bericht van de verwerker is: %(message)s",
"Invalid JSON": "Oungeldigen JSON"
}

View File

@@ -42,5 +42,13 @@
"Create Account": "建立帳號",
"Need help?": "需要協助?",
"Explore rooms": "探索聊天室",
"Room Directory": "聊天室目錄"
"Room Directory": "聊天室目錄",
"Unexpected error preparing the app. See console for details.": "準備應用程式時發生未預期的錯誤。請見主控台以取得更多資訊。",
"Invalid configuration: can only specify one of default_server_config, default_server_name, or default_hs_url.": "無效的設定:只能指定 default_server_config、default_server_name 或 default_hs_url 其中之一。",
"Invalid configuration: no default server specified.": "無效設定:未指定預設的伺服器。",
"This installation of Riot seems to have an invalid server configuration. If you are the administrator, please correct the error below": "這個 Riot 安裝似乎有無效的伺服器設定。如果您是管理員,請在下方更正錯誤",
"Your Riot is misconfigured": "您的 Riot 沒有設定好",
"Your Riot configuration contains invalid JSON. Please correct the problem and reload the page.": "您的 Riot 包含無效的 JSON。請修正問題並重新整理頁面。",
"The message from the parser is: %(message)s": "從解析器而來的訊息為:%(message)s",
"Invalid JSON": "無效的 JSON"
}

View File

@@ -17,6 +17,8 @@ limitations under the License.
import Promise from 'bluebird';
import request from 'browser-request';
// Load the config file. First try to load up a domain-specific config of the
// form "config.$domain.json" and if that fails, fall back to config.json.
export async function getVectorConfig(relativeLocation) {
if (relativeLocation === undefined) relativeLocation = '';
if (relativeLocation !== '' && !relativeLocation.endsWith('/')) relativeLocation += '/';
@@ -35,30 +37,34 @@ export async function getVectorConfig(relativeLocation) {
function getConfig(configJsonFilename) {
return new Promise(function(resolve, reject) {
request(
{ method: "GET", url: configJsonFilename },
{ method: "GET", url: configJsonFilename, qs: { cachebuster: Date.now() } },
(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({});
try {
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;
}
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));
// 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));
} catch (e) {
reject({err: e});
}
},
);
});

View File

@@ -41,6 +41,7 @@
</script>
<script src="<%= htmlWebpackPlugin.files.chunks['bundle'].entry %>"></script>
<img src="<%= require('matrix-react-sdk/res/img/warning.svg') %>" width="24" height="23" style="visibility: hidden; position: absolute; top: 0px; left: 0px;"/>
<img src="<%= require('matrix-react-sdk/res/img/e2e/warning.svg') %>" width="24" height="23" style="visibility: hidden; position: absolute; top: 0px; left: 0px;"/>
<audio id="messageAudio">
<source src="media/message.ogg" type="audio/ogg" />
<source src="media/message.mp3" type="audio/mpeg" />

View File

@@ -1,7 +1,8 @@
/*
Copyright 2015, 2016 OpenMarket Ltd
Copyright 2017 Vector Creations Ltd
Copyright 2018 New Vector Ltd
Copyright 2018, 2019 New Vector Ltd
Copyright 2019 Michael Telatynski <7t3chguy@gmail.com>
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
@@ -32,9 +33,6 @@ 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');
}
import './modernizr';
import ReactDOM from 'react-dom';
@@ -43,8 +41,11 @@ import PlatformPeg from 'matrix-react-sdk/lib/PlatformPeg';
sdk.loadSkin(require('../component-index'));
import VectorConferenceHandler from 'matrix-react-sdk/lib/VectorConferenceHandler';
import Promise from 'bluebird';
import request from 'browser-request';
import * as languageHandler from 'matrix-react-sdk/lib/languageHandler';
import {_t, _td, newTranslatableError} from 'matrix-react-sdk/lib/languageHandler';
import AutoDiscoveryUtils from 'matrix-react-sdk/lib/utils/AutoDiscoveryUtils';
import {AutoDiscovery} from "matrix-js-sdk/lib/autodiscovery";
import * as Lifecycle from "matrix-react-sdk/lib/Lifecycle";
import url from 'url';
@@ -62,8 +63,6 @@ import Olm from 'olm';
import CallHandler from 'matrix-react-sdk/lib/CallHandler';
import {getVectorConfig} from './getconfig';
let lastLocationHashSet = null;
// Disable warnings for now: we use deprecated bluebird functions
@@ -115,7 +114,7 @@ function routeUrl(location) {
}
function onHashChange(ev) {
if (decodeURIComponent(window.location.hash) == lastLocationHashSet) {
if (decodeURIComponent(window.location.hash) === lastLocationHashSet) {
// we just set this: no need to route it!
return;
}
@@ -155,7 +154,7 @@ function makeRegistrationUrl(params) {
const keys = Object.keys(params);
for (let i = 0; i < keys.length; ++i) {
if (i == 0) {
if (i === 0) {
url += '?';
} else {
url += '&';
@@ -166,38 +165,6 @@ function makeRegistrationUrl(params) {
return url;
}
export 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));
},
);
});
}
function onTokenLoginCompleted() {
// if we did a token login, we're now left with the token, hs and is
// url as query params in the url; a little nasty but let's redirect to
@@ -225,11 +192,6 @@ async function loadApp() {
await loadOlm();
await loadLanguage();
const fragparts = parseQsFromFragment(window.location);
const params = parseQs(window.location);
// set the platform for react sdk
if (window.ipcRenderer) {
console.log("Using Electron platform");
@@ -248,20 +210,33 @@ async function loadApp() {
PlatformPeg.set(new WebPlatform());
}
// Load the config file. First try to load up a domain-specific config of the
// form "config.$domain.json" and if that fails, fall back to config.json.
const platform = PlatformPeg.get();
let configJson;
let configError;
let configSyntaxError = false;
try {
configJson = await getVectorConfig();
configJson = await platform.getConfig();
} catch (e) {
configError = e;
if (e && e.err && e.err instanceof SyntaxError) {
console.error("SyntaxError loading config:", e);
configSyntaxError = true;
configJson = {}; // to prevent errors between here and loading CSS for the error box
}
}
// XXX: We call this twice, once here and once in MatrixChat as a prop. We call it here to ensure
// granular settings are loaded correctly and to avoid duplicating the override logic for the theme.
SdkConfig.put(configJson);
// Load language after loading config.json so that settingsDefaults.language can be applied
await loadLanguage();
const fragparts = parseQsFromFragment(window.location);
const params = parseQs(window.location);
// don't try to redirect to the native apps if we're
// verifying a 3pid (but after we've loaded the config)
// or if the user is following a deep link
@@ -272,7 +247,7 @@ async function loadApp() {
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'))) {
if (document.cookie.indexOf("riot_mobile_redirect_to_guide=false") === -1) {
window.location = "mobile_guide/";
return;
}
@@ -325,6 +300,33 @@ async function loadApp() {
}
}
// Now that we've loaded the theme (CSS), display the config syntax error if needed.
if (configSyntaxError) {
const errorMessage = (
<div>
<p>
{_t(
"Your Riot configuration contains invalid JSON. Please correct the problem " +
"and reload the page.",
)}
</p>
<p>
{_t(
"The message from the parser is: %(message)s",
{message: configError.err.message || _t("Invalid JSON")},
)}
</p>
</div>
);
const GenericErrorPage = sdk.getComponent("structures.GenericErrorPage");
window.matrixChat = ReactDOM.render(
<GenericErrorPage message={errorMessage} title={_t("Your Riot is misconfigured")} />,
document.getElementById('matrixchat'),
);
return;
}
const validBrowser = checkBrowserFeatures([
"displaytable", "flexbox", "es5object", "es5function", "localstorage",
"objectfit", "indexeddb", "webworkers",
@@ -332,31 +334,47 @@ async function loadApp() {
const acceptInvalidBrowser = window.localStorage && window.localStorage.getItem('mx_accepts_unsupported_browser');
console.log("Vector starting at "+window.location);
const urlWithoutQuery = window.location.protocol + '//' + window.location.host + window.location.pathname;
console.log("Vector starting at " + urlWithoutQuery);
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 || acceptInvalidBrowser) {
const platform = PlatformPeg.get();
platform.startUpdater();
const MatrixChat = sdk.getComponent('structures.MatrixChat');
window.matrixChat = ReactDOM.render(
<MatrixChat
onNewScreen={onNewScreen}
makeRegistrationUrl={makeRegistrationUrl}
ConferenceHandler={VectorConferenceHandler}
config={configJson}
realQueryParams={params}
startingFragmentQueryParams={fragparts.params}
enableGuest={!configJson.disable_guests}
onTokenLoginCompleted={onTokenLoginCompleted}
initialScreenAfterLogin={getScreenFromLocation(window.location)}
defaultDeviceDisplayName={platform.getDefaultDeviceDisplayName()}
/>,
document.getElementById('matrixchat'),
);
// Don't bother loading the app until the config is verified
verifyServerConfig().then((newConfig) => {
const MatrixChat = sdk.getComponent('structures.MatrixChat');
window.matrixChat = ReactDOM.render(
<MatrixChat
onNewScreen={onNewScreen}
makeRegistrationUrl={makeRegistrationUrl}
ConferenceHandler={VectorConferenceHandler}
config={newConfig}
realQueryParams={params}
startingFragmentQueryParams={fragparts.params}
enableGuest={!configJson.disable_guests}
onTokenLoginCompleted={onTokenLoginCompleted}
initialScreenAfterLogin={getScreenFromLocation(window.location)}
defaultDeviceDisplayName={platform.getDefaultDeviceDisplayName()}
/>,
document.getElementById('matrixchat'),
);
}).catch(err => {
console.error(err);
let errorMessage = err.translatedMessage
|| _t("Unexpected error preparing the app. See console for details.");
errorMessage = <span>{errorMessage}</span>;
// Like the compatibility page, AWOOOOOGA at the user
const GenericErrorPage = sdk.getComponent("structures.GenericErrorPage");
window.matrixChat = ReactDOM.render(
<GenericErrorPage message={errorMessage} title={_t("Your Riot is misconfigured")} />,
document.getElementById('matrixchat'),
);
});
} else {
console.error("Browser is missing required features.");
// take to a different landing page to AWOOOOOGA at the user
@@ -390,7 +408,7 @@ function loadOlm() {
}).then(() => {
console.log("Using WebAssembly Olm");
}).catch((e) => {
console.log("Failed to load Olm: trying legacy version");
console.log("Failed to load Olm: trying legacy version", e);
return new Promise((resolve, reject) => {
const s = document.createElement('script');
s.src = 'olm_legacy.js'; // XXX: This should be cache-busted too
@@ -428,4 +446,99 @@ async function loadLanguage() {
}
}
async function verifyServerConfig() {
let validatedConfig;
try {
console.log("Verifying homeserver configuration");
// Note: the query string may include is_url and hs_url - we only respect these in the
// context of email validation. Because we don't respect them otherwise, we do not need
// to parse or consider them here.
// Note: Although we throw all 3 possible configuration options through a .well-known-style
// verification, we do not care if the servers are online at this point. We do moderately
// care if they are syntactically correct though, so we shove them through the .well-known
// validators for that purpose.
const config = SdkConfig.get();
let wkConfig = config['default_server_config']; // overwritten later under some conditions
const serverName = config['default_server_name'];
const hsUrl = config['default_hs_url'];
const isUrl = config['default_is_url'];
const incompatibleOptions = [wkConfig, serverName, hsUrl].filter(i => !!i);
if (incompatibleOptions.length > 1) {
// noinspection ExceptionCaughtLocallyJS
throw newTranslatableError(_td(
"Invalid configuration: can only specify one of default_server_config, default_server_name, " +
"or default_hs_url.",
));
}
if (incompatibleOptions.length < 1) {
// noinspection ExceptionCaughtLocallyJS
throw newTranslatableError(_td("Invalid configuration: no default server specified."));
}
if (hsUrl) {
console.log("Config uses a default_hs_url - constructing a default_server_config using this information");
console.warn(
"DEPRECATED CONFIG OPTION: In the future, default_hs_url will not be accepted. Please use " +
"default_server_config instead.",
);
wkConfig = {
"m.homeserver": {
"base_url": hsUrl,
},
};
if (isUrl) {
wkConfig["m.identity_server"] = {
"base_url": isUrl,
};
}
}
let discoveryResult = null;
if (wkConfig) {
console.log("Config uses a default_server_config - validating object");
discoveryResult = await AutoDiscovery.fromDiscoveryConfig(wkConfig);
}
if (serverName) {
console.log("Config uses a default_server_name - doing .well-known lookup");
console.warn(
"DEPRECATED CONFIG OPTION: In the future, default_server_name will not be accepted. Please " +
"use default_server_config instead.",
);
discoveryResult = await AutoDiscovery.findClientConfig(serverName);
}
validatedConfig = AutoDiscoveryUtils.buildValidatedConfigFromDiscovery(serverName, discoveryResult, true);
} catch (e) {
const {hsUrl, isUrl, userId} = Lifecycle.getLocalStorageSessionVars();
if (hsUrl && userId) {
console.error(e);
console.warn("A session was found - suppressing config error and using the session's homeserver");
console.log("Using pre-existing hsUrl and isUrl: ", {hsUrl, isUrl});
validatedConfig = await AutoDiscoveryUtils.validateServerConfigWithStaticUrls(hsUrl, isUrl, true);
} else {
// the user is not logged in, so scream
throw e;
}
}
validatedConfig.isDefault = true;
// Just in case we ever have to debug this
console.log("Using homeserver config:", validatedConfig);
// Add the newly built config to the actual config for use by the app
console.log("Updating SdkConfig with validated discovery information");
SdkConfig.add({"validated_server_config": validatedConfig});
return SdkConfig.get();
}
loadApp();

File diff suppressed because one or more lines are too long

View File

@@ -1,23 +1,110 @@
import {getVectorConfig} from '../getconfig';
function onBackToRiotClick() {
document.cookie = 'mobile_redirect_to_guide=false;path=/';
// Cookie should expire in 4 hours
document.cookie = 'riot_mobile_redirect_to_guide=false;path=/;max-age=14400';
window.location.href = '../';
}
// NEVER pass user-controlled content to this function! Hardcoded strings only please.
function renderConfigError(message) {
const contactMsg = "If this is unexpected, please contact your system administrator " +
"or technical support representative.";
message = `<h2>Error loading Riot</h2><p>${message}</p><p>${contactMsg}</p>`;
const toHide = document.getElementsByClassName("mx_HomePage_container");
const errorContainers = document.getElementsByClassName("mx_HomePage_errorContainer");
for (const e of toHide) {
// We have to clear the content because .style.display='none'; doesn't work
// due to an !important in the CSS.
e.innerHTML = '';
}
for (const e of errorContainers) {
e.style.display = 'block';
e.innerHTML = message;
}
}
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'];
let config = await getVectorConfig('..');
// We manually parse the config similar to how validateServerConfig works because
// calling that function pulls in roughly 4mb of JS we don't use.
const wkConfig = config['default_server_config']; // overwritten later under some conditions
const serverName = config['default_server_name'];
const defaultHsUrl = config['default_hs_url'];
const defaultIsUrl = config['default_is_url'];
const incompatibleOptions = [wkConfig, serverName, defaultHsUrl].filter(i => !!i);
if (incompatibleOptions.length > 1) {
return renderConfigError(
"Invalid configuration: can only specify one of default_server_config, default_server_name, " +
"or default_hs_url.",
);
}
if (incompatibleOptions.length < 1) {
return renderConfigError("Invalid configuration: no default server specified.");
}
let hsUrl = '';
let isUrl = '';
if (wkConfig && wkConfig['m.homeserver']) {
hsUrl = wkConfig['m.homeserver']['base_url'];
if (wkConfig['m.identity_server']) {
isUrl = wkConfig['m.identity_server']['base_url'];
}
}
if (serverName) {
// We also do our own minimal .well-known validation to avoid pulling in the js-sdk
try {
const result = await fetch(`https://${serverName}/.well-known/matrix/client`);
const wkConfig = await result.json();
if (wkConfig && wkConfig['m.homeserver']) {
hsUrl = wkConfig['m.homeserver']['base_url'];
if (wkConfig['m.identity_server']) {
isUrl = wkConfig['m.identity_server']['base_url'];
}
}
} catch (e) {
console.error(e);
return renderConfigError("Unable to fetch homeserver configuration");
}
}
if (defaultHsUrl) {
hsUrl = defaultHsUrl;
isUrl = defaultIsUrl;
}
if (!hsUrl) {
return renderConfigError("Unable to locate homeserver");
}
if (hsUrl && !hsUrl.endsWith('/')) hsUrl += '/';
if (hsUrl && hsUrl !== 'https://matrix.org/') {
if (isUrl && !isUrl.endsWith('/')) isUrl += '/';
if (hsUrl !== 'https://matrix.org/') {
document.getElementById('configure_riot_button').href =
"https://riot.im/config/config?hs_url=" + encodeURIComponent(hsUrl) +
"&is_url=" + encodeURIComponent(isUrl);
document.getElementById('step1_heading').innerHTML= '1: Install the app';
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';
document.getElementById('hs_url').innerText = hsUrl;
if (isUrl && isUrl !== "https://vector.im/") {
document.getElementById('default_is').style.display = 'none';
document.getElementById('custom_is').style.display = 'block';
document.getElementById('is_url').style.display = 'block';
document.getElementById('is_url').innerText = isUrl;
}
}
}

View File

@@ -4,6 +4,7 @@
Copyright 2016 Aviral Dasgupta
Copyright 2016 OpenMarket Ltd
Copyright 2018 New Vector Ltd
Copyright 2019 Michael Telatynski <7t3chguy@gmail.com>
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
@@ -99,6 +100,20 @@ export default class ElectronPlatform extends VectorBasePlatform {
this.startUpdateCheck = this.startUpdateCheck.bind(this);
this.stopUpdateCheck = this.stopUpdateCheck.bind(this);
this._tryPersistStorage();
}
async _tryPersistStorage() {
if (navigator.storage && navigator.storage.persist) {
const granted = await navigator.storage.persist();
const persisted = await navigator.storage.persisted();
console.log("Storage persist request granted: " + granted + " persisted: " + persisted);
}
}
async getConfig(): Promise<{}> {
return this._ipcCall('getConfig');
}
async onUpdateDownloaded(ev, updateInfo) {
@@ -141,14 +156,12 @@ export default class ElectronPlatform extends VectorBasePlatform {
}
// Notifications in Electron use the HTML5 notification API
const notification = new global.Notification(
title,
{
body: msg,
icon: avatarUrl,
silent: true, // we play our own sounds
},
);
const notifBody = {
body: msg,
silent: true, // we play our own sounds
};
if (avatarUrl) notifBody['icon'] = avatarUrl;
const notification = new global.Notification(title, notifBody);
notification.onclick = () => {
dis.dispatch({
@@ -171,7 +184,7 @@ export default class ElectronPlatform extends VectorBasePlatform {
}
async getAppVersion(): Promise<string> {
return await this._ipcCall('getAppVersion');
return this._ipcCall('getAppVersion');
}
supportsAutoLaunch(): boolean {
@@ -179,11 +192,23 @@ export default class ElectronPlatform extends VectorBasePlatform {
}
async getAutoLaunchEnabled(): boolean {
return await this._ipcCall('getAutoLaunchEnabled');
return this._ipcCall('getAutoLaunchEnabled');
}
async setAutoLaunchEnabled(enabled: boolean): void {
return await this._ipcCall('setAutoLaunchEnabled', enabled);
return this._ipcCall('setAutoLaunchEnabled', enabled);
}
supportsAutoHideMenuBar(): boolean {
return true;
}
async getAutoHideMenuBarEnabled(): boolean {
return this._ipcCall('getAutoHideMenuBarEnabled');
}
async setAutoHideMenuBarEnabled(enabled: boolean): void {
return this._ipcCall('setAutoHideMenuBarEnabled', enabled);
}
supportsMinimizeToTray(): boolean {
@@ -191,11 +216,11 @@ export default class ElectronPlatform extends VectorBasePlatform {
}
async getMinimizeToTrayEnabled(): boolean {
return await this._ipcCall('getMinimizeToTrayEnabled');
return this._ipcCall('getMinimizeToTrayEnabled');
}
async setMinimizeToTrayEnabled(enabled: boolean): void {
return await this._ipcCall('setMinimizeToTrayEnabled', enabled);
return this._ipcCall('setMinimizeToTrayEnabled', enabled);
}
async canSelfUpdate(): boolean {

View File

@@ -4,6 +4,7 @@
Copyright 2016 Aviral Dasgupta
Copyright 2016 OpenMarket Ltd
Copyright 2018 New Vector Ltd
Copyright 2019 Michael Telatynski <7t3chguy@gmail.com>
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
@@ -21,6 +22,7 @@ limitations under the License.
import BasePlatform from 'matrix-react-sdk/lib/BasePlatform';
import { _t } from 'matrix-react-sdk/lib/languageHandler';
import dis from 'matrix-react-sdk/lib/dispatcher';
import {getVectorConfig} from "../getconfig";
import Favico from 'favico.js';
@@ -39,22 +41,37 @@ export default class VectorBasePlatform extends BasePlatform {
constructor() {
super();
// The 'animations' are really low framerate and look terrible.
// Also it re-starts the animation every time you set the badge,
// and we set the state each time, even if the value hasn't changed,
// so we'd need to fix that if enabling the animation.
this.favicon = new Favico({animation: 'none'});
this.showUpdateCheck = false;
this._updateFavicon();
this.startUpdateCheck = this.startUpdateCheck.bind(this);
this.stopUpdateCheck = this.stopUpdateCheck.bind(this);
}
async getConfig(): Promise<{}> {
return getVectorConfig();
}
getHumanReadableName(): string {
return 'Vector Base Platform'; // no translation required: only used for analytics
}
/**
* Delay creating the `Favico` instance until first use (on the first notification) as
* it uses canvas, which can trigger a permission prompt in Firefox's resist
* fingerprinting mode.
* See https://github.com/vector-im/riot-web/issues/9605.
*/
get favicon() {
if (this._favicon) {
return this._favicon;
}
// The 'animations' are really low framerate and look terrible.
// Also it re-starts the animation every time you set the badge,
// and we set the state each time, even if the value hasn't changed,
// so we'd need to fix that if enabling the animation.
this._favicon = new Favico({ animation: 'none' });
return this._favicon;
}
_updateFavicon() {
try {
// This needs to be in in a try block as it will throw

View File

@@ -76,15 +76,13 @@ export default class WebPlatform extends VectorBasePlatform {
}
displayNotification(title: string, msg: string, avatarUrl: string, room: Object) {
const notification = new global.Notification(
title,
{
body: msg,
icon: avatarUrl,
tag: "vector",
silent: true, // we play our own sounds
},
);
const notifBody = {
body: msg,
tag: "vector",
silent: true, // we play our own sounds
};
if (avatarUrl) notifBody['icon'] = avatarUrl;
const notification = new global.Notification(title, notifBody);
notification.onclick = function() {
dis.dispatch({

View File

@@ -50,6 +50,10 @@ initRageshake();
global.mxSendRageshake = function(text, withLogs) {
if (withLogs === undefined) withLogs = true;
if (!text || !text.trim()) {
console.error("Cannot send a rageshake without a message - please tell us what went wrong");
return;
}
require(['matrix-react-sdk/lib/rageshake/submit-rageshake'], (s) => {
s(SdkConfig.get().bug_report_endpoint_url, {
userText: text,

View File

@@ -34,9 +34,11 @@ const RoomView = sdk.getComponent('structures.RoomView');
const React = require('react');
const ReactDOM = require('react-dom');
const ReactTestUtils = require('react-addons-test-utils');
const ReactTestUtils = require('react-dom/test-utils');
const expect = require('expect');
import Promise from 'bluebird';
import {makeType} from "matrix-react-sdk/lib/utils/TypeUtils";
import {ValidatedServerConfig} from "matrix-react-sdk/lib/utils/AutoDiscoveryUtils";
const test_utils = require('../test-utils');
const MockHttpBackend = require('matrix-mock-request');
@@ -96,8 +98,19 @@ describe('joining a room', function() {
PlatformPeg.set(new WebPlatform());
const config = {
validated_server_config: makeType(ValidatedServerConfig, {
hsUrl: HS_URL,
hsName: "TEST_ENVIRONMENT",
hsNameIsDifferent: false, // yes, we lie
isUrl: IS_URL,
}),
};
const mc = (
<MatrixChat config={{}}
<MatrixChat
config={config}
serverConfig={config.validated_server_config}
makeRegistrationUrl={()=>{throw new Error("unimplemented");}}
initialScreenAfterLogin={{
screen: 'directory',

View File

@@ -23,7 +23,7 @@ import 'skin-sdk';
import React from 'react';
import ReactDOM from 'react-dom';
import ReactTestUtils from 'react-addons-test-utils';
import ReactTestUtils from 'react-dom/test-utils';
import expect from 'expect';
import Promise from 'bluebird';
import MatrixReactTestUtils from 'matrix-react-test-utils';
@@ -39,6 +39,8 @@ import dis from 'matrix-react-sdk/lib/dispatcher';
import * as test_utils from '../test-utils';
import MockHttpBackend from 'matrix-mock-request';
import {parseQs, parseQsFromFragment} from '../../src/vector/url_utils';
import {makeType} from "matrix-react-sdk/lib/utils/TypeUtils";
import {ValidatedServerConfig} from "matrix-react-sdk/lib/utils/AutoDiscoveryUtils";
const DEFAULT_HS_URL='http://my_server';
const DEFAULT_IS_URL='http://my_is';
@@ -123,9 +125,6 @@ describe('loading:', function() {
toString: function() { return this.search + this.hash; },
};
const tokenLoginCompleteDefer = Promise.defer();
tokenLoginCompletePromise = tokenLoginCompleteDefer.promise;
function onNewScreen(screen) {
console.log(Date.now() + " newscreen "+screen);
const hash = '#/' + screen;
@@ -149,6 +148,12 @@ describe('loading:', function() {
const config = Object.assign({
default_hs_url: DEFAULT_HS_URL,
default_is_url: DEFAULT_IS_URL,
validated_server_config: makeType(ValidatedServerConfig, {
hsUrl: DEFAULT_HS_URL,
hsName: "TEST_ENVIRONMENT",
hsNameIsDifferent: false, // yes, we lie
isUrl: DEFAULT_IS_URL,
}),
embeddedPages: {
homeUrl: 'data:text/html;charset=utf-8;base64,PGh0bWw+PC9odG1sPg==',
},
@@ -157,18 +162,22 @@ describe('loading:', function() {
PlatformPeg.set(new WebPlatform());
const params = parseQs(windowLocation);
matrixChat = ReactDOM.render(
<MatrixChat
onNewScreen={onNewScreen}
config={config}
realQueryParams={params}
startingFragmentQueryParams={fragParts.params}
enableGuest={true}
onTokenLoginCompleted={() => tokenLoginCompleteDefer.resolve()}
initialScreenAfterLogin={getScreenFromLocation(windowLocation)}
makeRegistrationUrl={() => {throw new Error('Not implemented');}}
/>, parentDiv,
);
tokenLoginCompletePromise = new Promise(resolve => {
matrixChat = ReactDOM.render(
<MatrixChat
onNewScreen={onNewScreen}
config={config}
serverConfig={config.validated_server_config}
realQueryParams={params}
startingFragmentQueryParams={fragParts.params}
enableGuest={true}
onTokenLoginCompleted={resolve}
initialScreenAfterLogin={getScreenFromLocation(windowLocation)}
makeRegistrationUrl={() => {throw new Error('Not implemented');}}
/>, parentDiv,
);
});
}
// set an expectation that we will get a call to /sync, then flush
@@ -230,6 +239,10 @@ describe('loading:', function() {
uriFragment: "#/room/!room:id",
});
// Pass the liveliness checks
httpBackend.when("GET", "/versions").respond(200, {versions: ["r0.4.0"]});
httpBackend.when("GET", "/api/v1").respond(200, {});
Promise.delay(1).then(() => {
// at this point, we're trying to do a guest registration;
// we expect a spinner
@@ -267,6 +280,10 @@ describe('loading:', function() {
uriFragment: "#/login",
});
// Pass the liveliness checks
httpBackend.when("GET", "/versions").respond(200, {versions: ["r0.4.0"]});
httpBackend.when("GET", "/api/v1").respond(200, {});
return awaitLoginComponent(matrixChat).then(() => {
// we expect a single <Login> component
ReactTestUtils.findRenderedComponentWithType(
@@ -275,8 +292,13 @@ describe('loading:', function() {
// the only outstanding request should be a GET /login
// (in particular there should be no /register request for
// guest registration).
const allowedRequests = [
"/_matrix/client/r0/login",
"/versions",
"/api/v1",
];
for (const req of httpBackend.requests) {
if (req.method === 'GET' && req.path.endsWith('/_matrix/client/r0/login')) {
if (req.method === 'GET' && allowedRequests.find(p => req.path.endsWith(p))) {
continue;
}
@@ -293,12 +315,19 @@ describe('loading:', function() {
});
describe("MatrixClient rehydrated from stored credentials:", function() {
beforeEach(function() {
beforeEach(async function() {
localStorage.setItem("mx_hs_url", "http://localhost" );
localStorage.setItem("mx_is_url", "http://localhost" );
localStorage.setItem("mx_access_token", "access_token");
localStorage.setItem("mx_user_id", "@me:localhost");
localStorage.setItem("mx_last_room_id", "!last_room:id");
// Create a crypto store as well to satisfy storage consistency checks
const cryptoStore = new jssdk.IndexedDBCryptoStore(
indexedDB,
"matrix-js-sdk:crypto",
);
await cryptoStore._connect();
});
it('shows the last known room by default', function() {
@@ -307,8 +336,8 @@ describe('loading:', function() {
loadApp();
return awaitSyncingSpinner(matrixChat).then(() => {
// we got a sync spinner - let the sync complete
return awaitLoggedIn(matrixChat).then(() => {
// we are logged in - let the sync complete
return expectAndAwaitSync();
}).then(() => {
// once the sync completes, we should have a room view
@@ -327,8 +356,8 @@ describe('loading:', function() {
loadApp();
return awaitSyncingSpinner(matrixChat).then(() => {
// we got a sync spinner - let the sync complete
return awaitLoggedIn(matrixChat).then(() => {
// we are logged in - let the sync complete
return expectAndAwaitSync();
}).then(() => {
// once the sync completes, we should have a home page
@@ -347,8 +376,8 @@ describe('loading:', function() {
uriFragment: "#/room/!room:id",
});
return awaitSyncingSpinner(matrixChat).then(() => {
// we got a sync spinner - let the sync complete
return awaitLoggedIn(matrixChat).then(() => {
// we are logged in - let the sync complete
return expectAndAwaitSync();
}).then(() => {
// once the sync completes, we should have a room view
@@ -370,6 +399,10 @@ describe('loading:', function() {
});
it('shows a login view', function() {
// Pass the liveliness checks
httpBackend.when("GET", "/versions").respond(200, {versions: ["r0.4.0"]});
httpBackend.when("GET", "/api/v1").respond(200, {});
// we expect a single <Login> component
ReactTestUtils.findRenderedComponentWithType(
matrixChat, sdk.getComponent('structures.auth.Login'),
@@ -378,8 +411,13 @@ describe('loading:', function() {
// the only outstanding request should be a GET /login
// (in particular there should be no /register request for
// guest registration, nor /sync, etc).
const allowedRequests = [
"/_matrix/client/r0/login",
"/versions",
"/api/v1",
];
for (const req of httpBackend.requests) {
if (req.method === 'GET' && req.path.endsWith('/_matrix/client/r0/login')) {
if (req.method === 'GET' && allowedRequests.find(p => req.path.endsWith(p))) {
continue;
}
@@ -388,6 +426,10 @@ describe('loading:', function() {
});
it('shows the homepage after login', function() {
// Pass the liveliness checks
httpBackend.when("GET", "/versions").respond(200, {versions: ["r0.4.0"]});
httpBackend.when("GET", "/api/v1").respond(200, {});
return completeLogin(matrixChat).then(() => {
// we should see a home page, even though we previously had
// a stored mx_last_room_id
@@ -417,9 +459,9 @@ describe('loading:', function() {
return httpBackend.flush();
}).then(() => {
return awaitSyncingSpinner(matrixChat);
return awaitLoggedIn(matrixChat);
}).then(() => {
// we got a sync spinner - let the sync complete
// we are logged in - let the sync complete
return expectAndAwaitSync({isGuest: true});
}).then(() => {
// once the sync completes, we should have a welcome page
@@ -448,7 +490,7 @@ describe('loading:', function() {
return httpBackend.flush();
}).then(() => {
return awaitSyncingSpinner(matrixChat);
return awaitLoggedIn(matrixChat);
}).then(() => {
return expectAndAwaitSync({isGuest: true});
}).then((req) => {
@@ -482,7 +524,7 @@ describe('loading:', function() {
return httpBackend.flush();
}).then(() => {
return awaitSyncingSpinner(matrixChat);
return awaitLoggedIn(matrixChat);
}).then(() => {
return expectAndAwaitSync({isGuest: true});
}).then(() => {
@@ -507,7 +549,7 @@ describe('loading:', function() {
});
return httpBackend.flush().then(() => {
return awaitSyncingSpinner(matrixChat);
return awaitLoggedIn(matrixChat);
}).then(() => {
// we got a sync spinner - let the sync complete
return expectAndAwaitSync();
@@ -609,11 +651,21 @@ describe('loading:', function() {
// check that we have a Login component, send a 'user:pass' login,
// and await the HTTP requests.
function completeLogin(matrixChat) {
async function completeLogin(matrixChat) {
// we expect a single <Login> component
const login = ReactTestUtils.findRenderedComponentWithType(
matrixChat, sdk.getComponent('structures.auth.Login'));
// When we switch to the login component, it'll hit the login endpoint
// for proof of life and to get flows. We'll only give it one option.
httpBackend.when('GET', '/login')
.respond(200, {"flows": [{"type": "m.login.password"}]});
httpBackend.flush(); // We already would have tried the GET /login request
// Give the component some time to finish processing the login flows before
// continuing.
await Promise.delay(100);
httpBackend.when('POST', '/login').check(function(req) {
expect(req.data.type).toEqual('m.login.password');
expect(req.data.identifier.type).toEqual('m.id.user');
@@ -654,44 +706,22 @@ function assertAtLoadingSpinner(matrixChat) {
expect(domComponent.children.length).toEqual(1);
}
// we've got login creds, and are waiting for the sync to finish.
// the page includes a logout link.
function awaitSyncingSpinner(matrixChat, retryLimit, retryCount) {
if (retryLimit === undefined) {
retryLimit = 10;
function awaitLoggedIn(matrixChat) {
if (matrixChat.state.view === VIEWS.LOGGED_IN) {
return Promise.resolve();
}
if (retryCount === undefined) {
retryCount = 0;
}
if (matrixChat.state.view === VIEWS.LOADING ||
matrixChat.state.view === VIEWS.LOGGING_IN) {
console.log(Date.now() + " Awaiting sync spinner: still loading.");
if (retryCount >= retryLimit) {
throw new Error("MatrixChat still not loaded after " +
retryCount + " tries");
}
// loading can take quite a long time, because we delete the
// indexedDB store.
return Promise.delay(5).then(() => {
return awaitSyncingSpinner(matrixChat, retryLimit, retryCount + 1);
});
}
console.log(Date.now() + " Awaiting sync spinner: load complete.");
return Promise.resolve();
}
function assertAtSyncingSpinner(matrixChat) {
const domComponent = ReactDOM.findDOMNode(matrixChat);
expect(domComponent.className).toEqual("mx_MatrixChat_splash");
ReactTestUtils.findRenderedComponentWithType(
matrixChat, sdk.getComponent('elements.Spinner'));
const logoutLink = ReactTestUtils.findRenderedDOMComponentWithTag(
matrixChat, 'a');
expect(logoutLink.text).toEqual("Logout");
return new Promise(resolve => {
const onAction = ({ action }) => {
if (action !== "on_logged_in") {
return;
}
console.log(Date.now() + ": Received on_logged_in action");
dis.unregister(dispatcherRef);
resolve();
};
const dispatcherRef = dis.register(onAction);
console.log(Date.now() + ": Waiting for on_logged_in action");
});
}
function awaitRoomView(matrixChat, retryLimit, retryCount) {

View File

@@ -18,6 +18,8 @@ module.exports = {
// CSS themes
"theme-light": "./node_modules/matrix-react-sdk/res/themes/light/css/light.scss",
"theme-dark": "./node_modules/matrix-react-sdk/res/themes/dark/css/dark.scss",
"theme-light-custom": "./node_modules/matrix-react-sdk/res/themes/light-custom/css/light-custom.scss",
"theme-dark-custom": "./node_modules/matrix-react-sdk/res/themes/dark-custom/css/dark-custom.scss",
},
module: {
rules: [
@@ -71,12 +73,12 @@ module.exports = {
},
},
{
test: /\.(gif|png|svg|ttf|xml|ico)$/,
test: /\.(gif|png|svg|ttf|woff|woff2|xml|ico)$/,
// Use a content-based hash in the name so that we can set a long cache
// lifetime for assets while still delivering changes quickly.
oneOf: [
{
// Images referenced in CSS files
// Assets referenced in CSS files
issuer: /\.(scss|css)$/,
loader: 'file-loader',
options: {
@@ -92,11 +94,15 @@ module.exports = {
},
},
{
// Images referenced in HTML and JS files
// Assets referenced in HTML and JS files
loader: 'file-loader',
options: {
name: '[name].[hash:7].[ext]',
outputPath: getImgOutputPath,
publicPath: function(url, resourcePath) {
const outputPath = getImgOutputPath(url, resourcePath);
return toPublicPath(outputPath);
},
},
},
],
@@ -148,7 +154,6 @@ module.exports = {
// using `npm link` / `yarn link`.
"react": path.resolve('./node_modules/react'),
"react-dom": path.resolve('./node_modules/react-dom'),
"react-addons-perf": path.resolve('./node_modules/react-addons-perf'),
// same goes for js-sdk
"matrix-js-sdk": path.resolve('./node_modules/matrix-js-sdk'),

5254
yarn.lock

File diff suppressed because it is too large Load Diff