Compare commits
331 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
17027cb515 | ||
|
|
3cd7e1c18c | ||
|
|
6f85fc9e8c | ||
|
|
0401e86216 | ||
|
|
fbd5ffc198 | ||
|
|
7a7ea8c7f6 | ||
|
|
fb64a0a46c | ||
|
|
dd4f5131c7 | ||
|
|
f48ca740fc | ||
|
|
6d553d1ecd | ||
|
|
3ba3c1b881 | ||
|
|
a98c052664 | ||
|
|
37119efec9 | ||
|
|
0c18f944cc | ||
|
|
35d1222cba | ||
|
|
5b8c5c0601 | ||
|
|
ce1bc98ae6 | ||
|
|
f7bb2c02fb | ||
|
|
eab6ffe7db | ||
|
|
cb5ef44d3f | ||
|
|
9820e59559 | ||
|
|
88339fc782 | ||
|
|
d6125d0d0c | ||
|
|
cc840df352 | ||
|
|
ddf733a7cc | ||
|
|
4b0fa940bb | ||
|
|
1498872214 | ||
|
|
2c0559dbea | ||
|
|
7062015e25 | ||
|
|
5ffdc79bc7 | ||
|
|
6ada5e4397 | ||
|
|
19e183c801 | ||
|
|
5117c04883 | ||
|
|
575751323c | ||
|
|
716c5c828b | ||
|
|
7bfda36ae5 | ||
|
|
636f6db51c | ||
|
|
dcbe51c855 | ||
|
|
7e6d07ea88 | ||
|
|
4c92e0aa2c | ||
|
|
8440abcee5 | ||
|
|
5b1c615498 | ||
|
|
a3a8da1746 | ||
|
|
7373e9cdd7 | ||
|
|
24e4162e76 | ||
|
|
c219be1dc2 | ||
|
|
4e619b1693 | ||
|
|
f7f2e6c936 | ||
|
|
14f59801d7 | ||
|
|
279a661176 | ||
|
|
36c07a1c3a | ||
|
|
46b75e8c3c | ||
|
|
fd5bb40560 | ||
|
|
6d32d0b322 | ||
|
|
e275441701 | ||
|
|
748513aa9a | ||
|
|
77731b5674 | ||
|
|
9963c690f2 | ||
|
|
8e81685a9f | ||
|
|
94e721acf2 | ||
|
|
3545b2751d | ||
|
|
83eae467f0 | ||
|
|
605c4ac038 | ||
|
|
5e783124e8 | ||
|
|
36243fb4d3 | ||
|
|
d6884d5b0f | ||
|
|
27e6401c97 | ||
|
|
21ea6c6283 | ||
|
|
cb60089d44 | ||
|
|
fe99264553 | ||
|
|
38fe2c2a33 | ||
|
|
dd9898e687 | ||
|
|
1ff06c4be4 | ||
|
|
5a7efcd738 | ||
|
|
071223120b | ||
|
|
0259eb6419 | ||
|
|
9d91e6366d | ||
|
|
d1a5376dae | ||
|
|
f283e68073 | ||
|
|
83ed26e5b9 | ||
|
|
0d213fc6db | ||
|
|
a0599e84d9 | ||
|
|
82286d45ed | ||
|
|
2bab328f8d | ||
|
|
a7d1d9880b | ||
|
|
76ce250421 | ||
|
|
0533e559ae | ||
|
|
19e0848698 | ||
|
|
a49e1a70db | ||
|
|
29f186bc18 | ||
|
|
7faba49f66 | ||
|
|
561d0c9a4c | ||
|
|
358d27f2ba | ||
|
|
f89fd9c888 | ||
|
|
3faf1912af | ||
|
|
b18e4f079f | ||
|
|
bad97db302 | ||
|
|
d120c3b93e | ||
|
|
ff70339aad | ||
|
|
c7d8a24f4e | ||
|
|
d903214ddf | ||
|
|
b6d1d0bf5d | ||
|
|
4113d6a2f3 | ||
|
|
56c0d3ec33 | ||
|
|
1a36160c90 | ||
|
|
fce5b4dd78 | ||
|
|
2e5b0fb72d | ||
|
|
57e597ec13 | ||
|
|
259ca06f73 | ||
|
|
c0a148c018 | ||
|
|
9e27cb713f | ||
|
|
644a46bdfd | ||
|
|
b99bdbcd4e | ||
|
|
e0c2131869 | ||
|
|
9981f897a4 | ||
|
|
57672ad384 | ||
|
|
26cbd16b40 | ||
|
|
64a961ec00 | ||
|
|
af57c9e321 | ||
|
|
685d913171 | ||
|
|
b41452162c | ||
|
|
ef473f930a | ||
|
|
b333058b57 | ||
|
|
7df140c164 | ||
|
|
ef1fd9e428 | ||
|
|
98b4681dc5 | ||
|
|
b312b4d502 | ||
|
|
509ed81294 | ||
|
|
1ba2731391 | ||
|
|
e599fafdfd | ||
|
|
caac5466ba | ||
|
|
d83c942fe5 | ||
|
|
c0a0466b6c | ||
|
|
31dc423d1d | ||
|
|
beaf6b0e0d | ||
|
|
4273f2cc55 | ||
|
|
6173841768 | ||
|
|
f7a08e8d27 | ||
|
|
be0b4e9072 | ||
|
|
57e4e4ee0d | ||
|
|
2bb24892df | ||
|
|
55fe24e72c | ||
|
|
1add492a11 | ||
|
|
3de2b7fe43 | ||
|
|
1aa48be01e | ||
|
|
5ead6554b3 | ||
|
|
ae7ccb613e | ||
|
|
8cbac6207d | ||
|
|
6e70c5faf6 | ||
|
|
c555516f29 | ||
|
|
55491d1198 | ||
|
|
a06358779c | ||
|
|
c7d3740cbb | ||
|
|
ee827c917e | ||
|
|
6094b8be9a | ||
|
|
54767b5a65 | ||
|
|
97a2a6a168 | ||
|
|
aca687dc12 | ||
|
|
f2648927f2 | ||
|
|
d76ed50625 | ||
|
|
845590ed68 | ||
|
|
0c125c1386 | ||
|
|
0a884ab20b | ||
|
|
0e6b3eab11 | ||
|
|
db5c17b518 | ||
|
|
1713f49e07 | ||
|
|
04a6b4448f | ||
|
|
6afd7e3b72 | ||
|
|
6db826005c | ||
|
|
3ee8098eb2 | ||
|
|
ce33ae1527 | ||
|
|
27ed1e94e9 | ||
|
|
0c187b4459 | ||
|
|
5315519655 | ||
|
|
1018dc7ced | ||
|
|
6bd089c350 | ||
|
|
ab3f1f829a | ||
|
|
6998aa94fd | ||
|
|
9e3bb09ef1 | ||
|
|
5feb4f9c89 | ||
|
|
0e406c5440 | ||
|
|
42b756952e | ||
|
|
6464bfe850 | ||
|
|
835d7bfb9d | ||
|
|
d40e57ad27 | ||
|
|
e008d7cbeb | ||
|
|
481bc2cb92 | ||
|
|
2eddda1843 | ||
|
|
55c809e839 | ||
|
|
f50a95d723 | ||
|
|
e8fbd77a61 | ||
|
|
43d85521c4 | ||
|
|
e88c5a0da7 | ||
|
|
d9a90eed24 | ||
|
|
c212b525d2 | ||
|
|
b0934c9121 | ||
|
|
f8cfe69b5c | ||
|
|
00130e6ac6 | ||
|
|
3983abe814 | ||
|
|
2298a61d76 | ||
|
|
9bb007f4b5 | ||
|
|
c24732f90a | ||
|
|
df7bd02861 | ||
|
|
8ad667c43e | ||
|
|
8c27cd704e | ||
|
|
9b530d4b0b | ||
|
|
ece11993d7 | ||
|
|
dbd5d891db | ||
|
|
4ece7ed936 | ||
|
|
ddab3709a3 | ||
|
|
8feb51ebce | ||
|
|
09492b15e8 | ||
|
|
c86bb03595 | ||
|
|
5fed64117f | ||
|
|
f07c0488fe | ||
|
|
0d53eb5386 | ||
|
|
1ce1c16a05 | ||
|
|
e1205246fc | ||
|
|
b809343cb6 | ||
|
|
d6e0f33fdb | ||
|
|
eaf3bdbf34 | ||
|
|
488e9d5396 | ||
|
|
ceb1fcb6c1 | ||
|
|
2a28fa9774 | ||
|
|
6588d0e4bb | ||
|
|
5a6e889bd4 | ||
|
|
d69642922e | ||
|
|
8ef132bece | ||
|
|
eafd1e52c4 | ||
|
|
11d7e1e185 | ||
|
|
634141637b | ||
|
|
32e2d97941 | ||
|
|
a40d13af76 | ||
|
|
75aa1e02e5 | ||
|
|
03b5b622d0 | ||
|
|
a75c0eca36 | ||
|
|
cebec03ed6 | ||
|
|
3c62829525 | ||
|
|
ae18186290 | ||
|
|
a3a042aff8 | ||
|
|
cc4e595b9d | ||
|
|
4bb1c39a2e | ||
|
|
0b6c29d274 | ||
|
|
3627a78aed | ||
|
|
89e9ac8039 | ||
|
|
58171e4479 | ||
|
|
b8b10e79fe | ||
|
|
845fbacd11 | ||
|
|
d1fb9c604a | ||
|
|
27afa3af74 | ||
|
|
97fa01f327 | ||
|
|
f97b632c65 | ||
|
|
658c5b42be | ||
|
|
141651d825 | ||
|
|
915a585dfa | ||
|
|
c1352dd6bb | ||
|
|
435c14d822 | ||
|
|
f0884b8e47 | ||
|
|
33c17a6f2e | ||
|
|
8b1fdc6b73 | ||
|
|
f7bab88079 | ||
|
|
b852b54352 | ||
|
|
3b324000f4 | ||
|
|
bd20796509 | ||
|
|
fdd90d1797 | ||
|
|
9b7f44c8a0 | ||
|
|
dac9a318bb | ||
|
|
0b591efe81 | ||
|
|
2b5fcbdcbd | ||
|
|
334001c829 | ||
|
|
97a0161e64 | ||
|
|
357ab6156e | ||
|
|
7eefc9d856 | ||
|
|
3e3cd068dc | ||
|
|
7bf1680ff8 | ||
|
|
c635fe7f36 | ||
|
|
3f70c0d66d | ||
|
|
53f7444a8e | ||
|
|
b3a660959e | ||
|
|
d2bbc57378 | ||
|
|
961369f48d | ||
|
|
dad62137c6 | ||
|
|
0800faf057 | ||
|
|
d12f94888a | ||
|
|
a438efa4be | ||
|
|
f69f852c53 | ||
|
|
72c6707bdb | ||
|
|
01c28019ba | ||
|
|
c65ebd5e83 | ||
|
|
d43ae7ac8e | ||
|
|
ce89428bb9 | ||
|
|
4d9e626292 | ||
|
|
8824f7edee | ||
|
|
0617c1cd13 | ||
|
|
56674ea708 | ||
|
|
24e59ccedd | ||
|
|
0b5e79ed23 | ||
|
|
f9199f259d | ||
|
|
9ed647d280 | ||
|
|
cb5bc580b0 | ||
|
|
3b908f4a33 | ||
|
|
46dac869d5 | ||
|
|
bafb0dbbfc | ||
|
|
6ccecaf408 | ||
|
|
773dd0805b | ||
|
|
d347ab08e7 | ||
|
|
a5ed7b992f | ||
|
|
906045b215 | ||
|
|
12f087401b | ||
|
|
12074a15a8 | ||
|
|
feb62793d2 | ||
|
|
04419ba24b | ||
|
|
7b89893645 | ||
|
|
6d7c4c4dd4 | ||
|
|
da9f1d1fa3 | ||
|
|
76606256a2 | ||
|
|
aebcc4a631 | ||
|
|
91fb5ae1bd | ||
|
|
a16afd7ff9 | ||
|
|
c7b691e2d7 | ||
|
|
509839e79e | ||
|
|
9f675dda2a | ||
|
|
06e7a48aaf | ||
|
|
e577f30cb5 | ||
|
|
67e31e0e30 | ||
|
|
f1531d2b12 | ||
|
|
6437b490a6 | ||
|
|
3c3fd7cf2a | ||
|
|
cfed0cbd0d | ||
|
|
b9eab9fe29 | ||
|
|
93da078669 |
232
CHANGELOG.md
232
CHANGELOG.md
@@ -1,3 +1,235 @@
|
||||
Changes in [1.5.2](https://github.com/vector-im/riot-web/releases/tag/v1.5.2) (2019-11-04)
|
||||
==========================================================================================
|
||||
[Full Changelog](https://github.com/vector-im/riot-web/compare/v1.5.1...v1.5.2)
|
||||
|
||||
* Fix close window behaviour on Macos
|
||||
[\#11311](https://github.com/vector-im/riot-web/pull/11311)
|
||||
|
||||
Changes in [1.5.1](https://github.com/vector-im/riot-web/releases/tag/v1.5.1) (2019-11-04)
|
||||
==========================================================================================
|
||||
[Full Changelog](https://github.com/vector-im/riot-web/compare/v1.5.1-rc.2...v1.5.1)
|
||||
|
||||
* No changes since rc.2
|
||||
|
||||
Changes in [1.5.1-rc.2](https://github.com/vector-im/riot-web/releases/tag/v1.5.1-rc.2) (2019-11-01)
|
||||
====================================================================================================
|
||||
[Full Changelog](https://github.com/vector-im/riot-web/compare/v1.5.1-rc.1...v1.5.1-rc.2)
|
||||
|
||||
* Updated react-sdk with fix for bug that caused room filtering to
|
||||
omit results.
|
||||
|
||||
Changes in [1.5.1-rc.1](https://github.com/vector-im/riot-web/releases/tag/v1.5.1-rc.1) (2019-10-30)
|
||||
====================================================================================================
|
||||
[Full Changelog](https://github.com/vector-im/riot-web/compare/v1.5.0...v1.5.1-rc.1)
|
||||
|
||||
* Add ability to hide tray icon on non-Mac (which has no tray icon)
|
||||
[\#11258](https://github.com/vector-im/riot-web/pull/11258)
|
||||
* Fix bug preventing display from sleeping after a call
|
||||
[\#11264](https://github.com/vector-im/riot-web/pull/11264)
|
||||
* Remove mention of CI scripts from docs
|
||||
[\#11257](https://github.com/vector-im/riot-web/pull/11257)
|
||||
* Fix skinning replaces being broken since being rewritten as React FC's
|
||||
[\#11254](https://github.com/vector-im/riot-web/pull/11254)
|
||||
* Update config docs about identity servers
|
||||
[\#11249](https://github.com/vector-im/riot-web/pull/11249)
|
||||
* Remove unneeded help about identity servers
|
||||
[\#11248](https://github.com/vector-im/riot-web/pull/11248)
|
||||
* Update from Weblate
|
||||
[\#11243](https://github.com/vector-im/riot-web/pull/11243)
|
||||
* Update sample config for new matrix.org CS API URL
|
||||
[\#11207](https://github.com/vector-im/riot-web/pull/11207)
|
||||
* clarify where the e2e tests are located
|
||||
[\#11115](https://github.com/vector-im/riot-web/pull/11115)
|
||||
* Update from Weblate
|
||||
[\#11171](https://github.com/vector-im/riot-web/pull/11171)
|
||||
* Prevent referrers from being sent
|
||||
[\#6155](https://github.com/vector-im/riot-web/pull/6155)
|
||||
* Add darkModeSupport to allow dark themed title bar.
|
||||
[\#11140](https://github.com/vector-im/riot-web/pull/11140)
|
||||
* Fix the label of Turkish language
|
||||
[\#11124](https://github.com/vector-im/riot-web/pull/11124)
|
||||
* Update default HS config to match well-known
|
||||
[\#11112](https://github.com/vector-im/riot-web/pull/11112)
|
||||
|
||||
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)
|
||||
|
||||
47
README.md
47
README.md
@@ -27,9 +27,12 @@ released version of Riot:
|
||||
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.
|
||||
|
||||
To install Riot as a desktop application, see [Running as a desktop
|
||||
app](#running-as-a-desktop-app) below.
|
||||
@@ -70,26 +73,11 @@ guide](https://yarnpkg.com/docs/install/) if you do not have it already.
|
||||
1. Clone the repo: `git clone https://github.com/vector-im/riot-web.git`.
|
||||
1. Switch to the riot-web directory: `cd riot-web`.
|
||||
1. Install the prerequisites: `yarn install`.
|
||||
1. If you're using the `develop` branch then it is recommended to set up a proper
|
||||
development environment ("Setting up a dev environment" below) however one can
|
||||
install the develop versions of the dependencies instead:
|
||||
```bash
|
||||
scripts/fetch-develop.deps.sh
|
||||
```
|
||||
Whenever you git pull on `riot-web` you will also probably need to force an update
|
||||
to these dependencies - the simplest way is to re-run the script, but you can also
|
||||
manually update and rebuild them:
|
||||
```bash
|
||||
cd matrix-js-sdk
|
||||
git pull
|
||||
yarn install # re-run to pull in any new dependencies
|
||||
cd ../matrix-react-sdk
|
||||
git pull
|
||||
yarn install
|
||||
```
|
||||
Or just use https://riot.im/develop - the continuous integration release of the
|
||||
develop branch. (Note that we don't reference the develop versions in git directly
|
||||
due to https://github.com/npm/npm/issues/3055.)
|
||||
* If you're using the `develop` branch, then it is recommended to set up a
|
||||
proper development environment (see [Setting up a dev
|
||||
environment](#setting-up-a-dev-environment) below). Alternatively, you
|
||||
can use https://riot.im/develop - the continuous integration release of
|
||||
the develop branch.
|
||||
1. Configure the app by copying `config.sample.json` to `config.json` and
|
||||
modifying it. See the [configuration docs](docs/config.md) for details.
|
||||
1. `yarn dist` to build a tarball to deploy. Untaring this file will give
|
||||
@@ -159,13 +147,13 @@ 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
|
||||
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,
|
||||
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
|
||||
@@ -287,6 +275,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.
|
||||
|
||||
___
|
||||
@@ -320,6 +311,10 @@ changes), in an instance of Chrome on your desktop, with `yarn
|
||||
test-multi`. This also gives you the option of running the tests in 'debug'
|
||||
mode, which is useful for stepping through the tests in the developer tools.
|
||||
|
||||
### End-to-End tests
|
||||
|
||||
See [matrix-react-sdk](https://github.com/matrix-org/matrix-react-sdk/#end-to-end-tests) how to run the end-to-end tests.
|
||||
|
||||
Translations
|
||||
============
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"default_server_config": {
|
||||
"m.homeserver": {
|
||||
"base_url": "https://matrix.org",
|
||||
"base_url": "https://matrix-client.matrix.org",
|
||||
"server_name": "matrix.org"
|
||||
},
|
||||
"m.identity_server": {
|
||||
@@ -15,6 +15,13 @@
|
||||
"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",
|
||||
@@ -41,5 +48,8 @@
|
||||
},
|
||||
"enable_presence_by_hs_url": {
|
||||
"https://matrix.org": false
|
||||
},
|
||||
"settingDefaults": {
|
||||
"breadcrumbs": true
|
||||
}
|
||||
}
|
||||
|
||||
@@ -18,15 +18,10 @@ For a good example, see https://riot.im/develop/config.json.
|
||||
`default_is_url`, however these are deprecated. They are maintained for backwards
|
||||
compatibility with older configurations. `default_is_url` is respected only
|
||||
if `default_hs_url` is used.
|
||||
* 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.
|
||||
* As of Riot 1.4.0, identity servers are optional. See [Identity servers](#identity-servers) below.
|
||||
1. `features`: Lookup of optional features that may be `enable`d, `disable`d, or exposed to the user
|
||||
in the `labs` section of settings. The available optional experimental features vary from
|
||||
release to release. The available features are described in [labs.md](labs.md).
|
||||
@@ -80,6 +75,15 @@ For a good example, see https://riot.im/develop/config.json.
|
||||
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
|
||||
@@ -91,6 +95,34 @@ it, you can build Riot, but run
|
||||
Alternatively, you can edit the `og:image` meta tag in `index.html` directly
|
||||
each time you download a new version of Riot.
|
||||
|
||||
Identity servers
|
||||
================
|
||||
|
||||
The identity server is used for inviting other users to a room via third party
|
||||
identifiers like emails and phone numbers. It is not used to store your password
|
||||
or account information.
|
||||
|
||||
As of Riot 1.4.0, all identity server functions are optional and you are
|
||||
prompted to agree to terms before data is sent to the identity server.
|
||||
|
||||
Riot will check multiple sources when looking for an identity server to use in
|
||||
the following order of preference:
|
||||
|
||||
1. The identity server set in the user's account data
|
||||
* For a new user, no value is present in their account data. It is only set
|
||||
if the user visits Settings and manually changes their identity server.
|
||||
2. The identity server provided by the `.well-known` lookup that occurred at
|
||||
login
|
||||
3. The identity server provided by the Riot config file
|
||||
|
||||
If none of these sources have an identity server set, then Riot will prompt the
|
||||
user to set an identity server first when attempting to use features that
|
||||
require one.
|
||||
|
||||
Currently the only two public identity servers are https://vector.im and
|
||||
https://matrix.org, however in the future identity servers will be
|
||||
decentralised.
|
||||
|
||||
Desktop app configuration
|
||||
=========================
|
||||
|
||||
|
||||
@@ -45,3 +45,7 @@ Once enabled, send a custom state event to a room to set values:
|
||||
```
|
||||
|
||||
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).
|
||||
|
||||
53
docs/memory-profiles-and-leaks.md
Normal file
53
docs/memory-profiles-and-leaks.md
Normal 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.
|
||||
@@ -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
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
"name": "riot-web",
|
||||
"productName": "Riot",
|
||||
"main": "src/electron-main.js",
|
||||
"version": "1.3.3",
|
||||
"version": "1.5.2",
|
||||
"description": "A feature-rich client for Matrix.org",
|
||||
"author": "New Vector Ltd.",
|
||||
"dependencies": {
|
||||
|
||||
@@ -1,14 +1,15 @@
|
||||
{
|
||||
"update_base_url": "https://packages.riot.im/desktop/update/",
|
||||
"default_hs_url": "https://matrix.org",
|
||||
"default_is_url": "https://vector.im",
|
||||
"default_server_name": "matrix.org",
|
||||
"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",
|
||||
"https://scalar.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",
|
||||
|
||||
1
electron_app/riot.im/env.sh
Normal file
1
electron_app/riot.im/env.sh
Normal 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'
|
||||
@@ -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,6 +40,19 @@ 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.
|
||||
@@ -70,8 +86,14 @@ const store = new Store({ name: "electron-config" });
|
||||
|
||||
let mainWindow = null;
|
||||
global.appQuitting = false;
|
||||
global.minimizeToTray = store.get('minimizeToTray', true);
|
||||
|
||||
// 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);
|
||||
const trayConfig = {
|
||||
icon_path: iconPath,
|
||||
brand: vectorConfig.brand || 'Riot',
|
||||
};
|
||||
|
||||
// handle uncaught errors otherwise it displays
|
||||
// stack traces in popup dialogs, which is terrible (which
|
||||
@@ -102,16 +124,17 @@ ipcMain.on('loudNotification', function() {
|
||||
}
|
||||
});
|
||||
|
||||
let powerSaveBlockerId;
|
||||
let powerSaveBlockerId = null;
|
||||
ipcMain.on('app_onAction', function(ev, payload) {
|
||||
switch (payload.action) {
|
||||
case 'call_state':
|
||||
if (powerSaveBlockerId && powerSaveBlocker.isStarted(powerSaveBlockerId)) {
|
||||
if (powerSaveBlockerId !== null && powerSaveBlocker.isStarted(powerSaveBlockerId)) {
|
||||
if (payload.state === 'ended') {
|
||||
powerSaveBlocker.stop(powerSaveBlockerId);
|
||||
powerSaveBlockerId = null;
|
||||
}
|
||||
} else {
|
||||
if (payload.state === 'connected') {
|
||||
if (powerSaveBlockerId === null && payload.state === 'connected') {
|
||||
powerSaveBlockerId = powerSaveBlocker.start('prevent-display-sleep');
|
||||
}
|
||||
}
|
||||
@@ -151,10 +174,24 @@ ipcMain.on('ipcCall', async function(ev, payload) {
|
||||
}
|
||||
break;
|
||||
case 'getMinimizeToTrayEnabled':
|
||||
ret = global.minimizeToTray;
|
||||
ret = tray.hasTray();
|
||||
break;
|
||||
case 'setMinimizeToTrayEnabled':
|
||||
store.set('minimizeToTray', global.minimizeToTray = args[0]);
|
||||
if (args[0]) {
|
||||
// Create trayIcon icon
|
||||
tray.create(trayConfig);
|
||||
} else {
|
||||
tray.destroy();
|
||||
}
|
||||
store.set('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();
|
||||
@@ -305,11 +342,6 @@ app.on('ready', () => {
|
||||
console.log('No update_base_url is defined: auto update is disabled');
|
||||
}
|
||||
|
||||
// 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({
|
||||
defaultWidth: 1024,
|
||||
@@ -320,7 +352,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,
|
||||
@@ -342,15 +374,8 @@ app.on('ready', () => {
|
||||
mainWindow.loadURL('vector://vector/webapp/');
|
||||
Menu.setApplicationMenu(vectorMenu);
|
||||
|
||||
// explicitly hide because setApplicationMenu on Linux otherwise shows...
|
||||
// https://github.com/electron/electron/issues/9621
|
||||
mainWindow.hide();
|
||||
|
||||
// Create trayIcon icon
|
||||
tray.create({
|
||||
icon_path: iconPath,
|
||||
brand: vectorConfig.brand || 'Riot',
|
||||
});
|
||||
if (store.get('minimizeToTray', true)) tray.create(trayConfig);
|
||||
|
||||
mainWindow.once('ready-to-show', () => {
|
||||
mainWindowState.manage(mainWindow);
|
||||
@@ -367,7 +392,8 @@ app.on('ready', () => {
|
||||
mainWindow = global.mainWindow = null;
|
||||
});
|
||||
mainWindow.on('close', (e) => {
|
||||
if (global.minimizeToTray && !global.appQuitting && (tray.hasTray() || process.platform === 'darwin')) {
|
||||
// If we are not quitting and have a tray icon then minimize to tray
|
||||
if (!global.appQuitting && (tray.hasTray() || process.platform === 'darwin')) {
|
||||
// On Mac, closing the window just hides it
|
||||
// (this is generally how single-window Mac apps
|
||||
// behave, eg. Mail.app)
|
||||
|
||||
@@ -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');
|
||||
|
||||
@@ -26,6 +26,13 @@ exports.hasTray = function hasTray() {
|
||||
return (trayIcon !== null);
|
||||
};
|
||||
|
||||
exports.destroy = function() {
|
||||
if (trayIcon) {
|
||||
trayIcon.destroy();
|
||||
trayIcon = null;
|
||||
}
|
||||
};
|
||||
|
||||
exports.create = function(config) {
|
||||
// no trays on darwin
|
||||
if (process.platform === 'darwin' || trayIcon) return;
|
||||
|
||||
44
package.json
44
package.json
@@ -2,7 +2,7 @@
|
||||
"name": "riot-web",
|
||||
"productName": "Riot",
|
||||
"main": "electron_app/src/electron-main.js",
|
||||
"version": "1.3.3",
|
||||
"version": "1.5.2",
|
||||
"description": "A feature-rich client for Matrix.org",
|
||||
"author": "New Vector Ltd.",
|
||||
"repository": {
|
||||
@@ -36,10 +36,10 @@
|
||||
"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:linux": "yarn build && build -l --x64",
|
||||
"build:electron:macos": "yarn build && build -m --x64",
|
||||
"build:electron:windows": "yarn build && build -w --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",
|
||||
@@ -49,7 +49,7 @@
|
||||
"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",
|
||||
@@ -71,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": "2.3.0",
|
||||
"matrix-react-sdk": "1.5.1",
|
||||
"matrix-js-sdk": "2.4.3",
|
||||
"matrix-react-sdk": "1.7.1",
|
||||
"modernizr": "^3.6.0",
|
||||
"olm": "https://packages.matrix.org/npm/olm/olm-3.1.0.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"
|
||||
@@ -108,9 +108,10 @@
|
||||
"cpx": "^1.3.2",
|
||||
"cross-env": "^4.0.0",
|
||||
"css-loader": "^2.1.0",
|
||||
"electron-builder": "^20.44.4",
|
||||
"electron-builder-squirrel-windows": "^21.0.6",
|
||||
"electron-builder": "^21.2.0",
|
||||
"electron-builder-squirrel-windows": "^21.2.0",
|
||||
"electron-devtools-installer": "^2.2.4",
|
||||
"electron-notarize": "^0.1.1",
|
||||
"eslint": "^5.8.0",
|
||||
"eslint-config-google": "^0.7.1",
|
||||
"eslint-plugin-babel": "^4.1.2",
|
||||
@@ -132,7 +133,7 @@
|
||||
"karma-webpack": "4.0.0-beta.0",
|
||||
"loader-utils": "^1.2.3",
|
||||
"matrix-mock-request": "^1.2.3",
|
||||
"matrix-react-test-utils": "^0.2.0",
|
||||
"matrix-react-test-utils": "^0.2.2",
|
||||
"minimist": "^1.2.0",
|
||||
"mkdirp": "^0.5.1",
|
||||
"mocha": "^5.2.0",
|
||||
@@ -144,9 +145,8 @@
|
||||
"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",
|
||||
@@ -154,7 +154,7 @@
|
||||
},
|
||||
"build": {
|
||||
"appId": "im.riot.app",
|
||||
"electronVersion": "5.0.7",
|
||||
"electronVersion": "6.1.2",
|
||||
"files": [
|
||||
"node_modules/**",
|
||||
"src/**"
|
||||
@@ -179,7 +179,8 @@
|
||||
"afterInstall": "electron_app/build/linux/after-install.tpl"
|
||||
},
|
||||
"mac": {
|
||||
"category": "public.app-category.social-networking"
|
||||
"category": "public.app-category.social-networking",
|
||||
"darkModeSupport": true
|
||||
},
|
||||
"win": {
|
||||
"target": {
|
||||
@@ -190,6 +191,7 @@
|
||||
"buildResources": "electron_app/build",
|
||||
"output": "electron_app/dist",
|
||||
"app": "electron_app"
|
||||
}
|
||||
},
|
||||
"afterSign": "scripts/electron_afterSign.js"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,12 +1,13 @@
|
||||
{
|
||||
"default_hs_url": "https://matrix.org",
|
||||
"default_is_url": "https://vector.im",
|
||||
"default_server_name": "matrix.org",
|
||||
"brand": "Riot",
|
||||
"integrations_ui_url": "https://scalar.vector.im/",
|
||||
"integrations_rest_url": "https://scalar.vector.im/api",
|
||||
"integrations_widgets_urls": [
|
||||
"https://scalar-staging.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",
|
||||
|
||||
@@ -1,13 +1,14 @@
|
||||
{
|
||||
"default_hs_url": "https://matrix.org",
|
||||
"default_is_url": "https://vector.im",
|
||||
"default_server_name": "matrix.org",
|
||||
"brand": "Riot",
|
||||
"integrations_ui_url": "https://scalar-staging.vector.im/",
|
||||
"integrations_rest_url": "https://scalar-staging.vector.im/api",
|
||||
"integrations_widgets_urls": [
|
||||
"https://scalar-staging.riot.im/scalar/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.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",
|
||||
@@ -25,7 +26,8 @@
|
||||
"feature_tabbed_settings": "labs",
|
||||
"feature_sas": "labs",
|
||||
"feature_room_breadcrumbs": "labs",
|
||||
"feature_state_counters": "labs"
|
||||
"feature_state_counters": "labs",
|
||||
"feature_many_integration_managers": "labs"
|
||||
},
|
||||
"welcomeUserId": "@riot-bot:matrix.org",
|
||||
"piwik": {
|
||||
|
||||
@@ -43,7 +43,7 @@ const INCLUDE_LANGS = [
|
||||
{'value': 'sv', 'label': 'Svenska'},
|
||||
{'value': 'te', 'label': 'తెలుగు'},
|
||||
{'value': 'th', 'label': 'ไทย'},
|
||||
{'value': 'tr', 'label': 'Türk'},
|
||||
{'value': 'tr', 'label': 'Türkçe'},
|
||||
{'value': 'vls', 'label': 'West-Vlaams'},
|
||||
{'value': 'zh_Hans', 'label': '简体中文'}, // simplified chinese
|
||||
{'value': 'zh_Hant', 'label': '繁體中文'}, // traditional chinese
|
||||
|
||||
@@ -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"
|
||||
|
||||
76
scripts/electron_afterSign.js
Normal file
76
scripts/electron_afterSign.js
Normal 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();
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
}
|
||||
};
|
||||
@@ -15,45 +15,37 @@ See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
'use strict';
|
||||
|
||||
const React = require('react');
|
||||
import React from 'react';
|
||||
import SdkConfig from 'matrix-react-sdk/lib/SdkConfig';
|
||||
|
||||
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() {
|
||||
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"},
|
||||
];
|
||||
if (brandingConfig && brandingConfig.authFooterLinks) {
|
||||
links = brandingConfig.authFooterLinks;
|
||||
}
|
||||
|
||||
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>
|
||||
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.replaces = 'AuthFooter';
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
Copyright 2015, 2016 OpenMarket Ltd
|
||||
Copyright 2017 New Vector Ltd
|
||||
Copyright 2017, 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.
|
||||
@@ -15,44 +15,33 @@ 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>
|
||||
</div>
|
||||
<div className="mx_Dialog_buttons">
|
||||
<button onClick={onFinished} autoFocus={true}>
|
||||
{ _t('Dismiss') }
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
};
|
||||
module.exports.replaces = 'CustomServerDialog';
|
||||
|
||||
@@ -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"
|
||||
}
|
||||
|
||||
@@ -13,7 +13,6 @@
|
||||
"powered by Matrix": "powered by Matrix",
|
||||
"Custom Server Options": "Custom Server Options",
|
||||
"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.",
|
||||
"Dismiss": "Dismiss",
|
||||
"Welcome to Riot.im": "Welcome to Riot.im",
|
||||
"Decentralised, encrypted chat & collaboration powered by [matrix]": "Decentralised, encrypted chat & collaboration powered by [matrix]",
|
||||
|
||||
@@ -40,7 +40,7 @@
|
||||
"Sign In": "Kirjaudu",
|
||||
"Create Account": "Luo tili",
|
||||
"Need help?": "Tarvitsetko apua?",
|
||||
"Explore rooms": "Etsi huoneita",
|
||||
"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ä",
|
||||
|
||||
@@ -41,7 +41,7 @@
|
||||
"Sign In": "Bejelentkezés",
|
||||
"Create Account": "Fiók készítés",
|
||||
"Need help?": "Segíthetünk?",
|
||||
"Explore rooms": "Szobák felfedezése",
|
||||
"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.",
|
||||
|
||||
@@ -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 & collaboration powered by [matrix]": "분산되고, 암호화된 대화 & [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": "방 목록"
|
||||
}
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
"Unknown device": "Nežinomas įrenginys",
|
||||
"powered by Matrix": "veikia su Matrix",
|
||||
"Welcome to Riot.im": "Sveiki atvykę į Riot.im",
|
||||
"Chat with Riot Bot": "Kalbėtis su Riot robotu",
|
||||
"Chat with Riot Bot": "Kalbėtis su Riot botu",
|
||||
"General discussion about Matrix and Riot": "Bendros diskusijos apie Matrix ir Riot",
|
||||
"Matrix technical discussions": "Matrix techninės diskusijos",
|
||||
"Riot is not supported on mobile web. Install the app?": "Riot nėra palaikoma naršant svetainėje mobiliaisiais įrenginiais. Įdiegti programėlę?",
|
||||
@@ -35,5 +35,10 @@
|
||||
"Contributing code to Matrix and Riot": "Matrix ir Riot kodo plėtojimas",
|
||||
"Dev chat for the Riot/Web dev team": "Kūrėjų pokalbiai, skirti Riot/Web kūrėjų komandai",
|
||||
"Dev chat for the Dendrite dev team": "Kūrėjų pokalbiai, skirti Dendrite kūrėjų komandai",
|
||||
"Co-ordination for Riot translators": "Koordinavimas Riot vertėjams"
|
||||
"Co-ordination for Riot translators": "Koordinavimas Riot vertėjams",
|
||||
"Sign In": "Prisijungti",
|
||||
"Create Account": "Sukurti paskyrą",
|
||||
"Need help?": "Reikia pagalbos?",
|
||||
"Explore rooms": "Peržiūrėti kambarius",
|
||||
"Room Directory": "Kambarių katalogas"
|
||||
}
|
||||
|
||||
@@ -1,15 +1,15 @@
|
||||
{
|
||||
"Custom Server Options": "Aangepaste serverinstellingen",
|
||||
"Dismiss": "Afwijzen",
|
||||
"powered by Matrix": "mogelijk gemaakt door Matrix",
|
||||
"powered by Matrix": "draait op Matrix",
|
||||
"Riot Desktop on %(platformName)s": "Riot Desktop op %(platformName)s",
|
||||
"Riot is not supported on mobile web. Install the app?": "Riot wordt niet ondersteund op het mobiele web. Wil je de app installeren?",
|
||||
"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.",
|
||||
"You need to be using HTTPS to place a screen-sharing call.": "Oproepen met schermdelen vergen HTTPS.",
|
||||
"Welcome to Riot.im": "Welkom bij Riot.im",
|
||||
"Decentralised, encrypted chat & collaboration powered by [matrix]": "Gedecentraliseerd en versleuteld chatten & samenwerken mogelijk gemaakt door [matrix]",
|
||||
"Decentralised, encrypted chat & collaboration powered by [matrix]": "Gedecentraliseerd en versleuteld chatten & samenwerken dankzij [matrix]",
|
||||
"Search the room directory": "De gesprekscatalogus doorzoeken",
|
||||
"Chat with Riot Bot": "Chatten met Riot-robot",
|
||||
"Chat with Riot Bot": "Met Riot-robot chatten",
|
||||
"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!",
|
||||
@@ -36,19 +36,19 @@
|
||||
"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",
|
||||
"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.",
|
||||
"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.": "Met aangepaste serverinstellingen kunt u zich door een andere thuisserver-URL in te voeren aanmelden bij andere Matrix-servers. Zo kunt u Riot met een bestaand Matrix-account op een andere thuisserver gebruiken.",
|
||||
"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 kunt dan geen anderen uitnodigen of zelf uitgenodigd worden op e-mailadres.",
|
||||
"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.",
|
||||
"Unexpected error preparing the app. See console for details.": "Er is een onverwachte fout opgetreden bij het voorbereiden van de app. Zie de console voor details.",
|
||||
"Invalid configuration: can only specify one of default_server_config, default_server_name, or default_hs_url.": "Configuratiefout: kan slechts één van default_server_config, default_server_name, of default_hs_url opgeven.",
|
||||
"Invalid configuration: no default server specified.": "Configuratiefout: 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 is misconfigured": "Uw Riot is onjuist 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",
|
||||
"The message from the parser is: %(message)s": "De ontleder meldt: %(message)s",
|
||||
"Invalid JSON": "Ongeldige JSON"
|
||||
}
|
||||
|
||||
@@ -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 ugyldig 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.": "Uventa feil under lasting av programmet. Sjå konsollen 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 ikkje spesifisert."
|
||||
}
|
||||
|
||||
@@ -40,5 +40,14 @@
|
||||
"Sign In": "Zaloguj",
|
||||
"Need help?": "Potrzebujesz pomocy?",
|
||||
"Room Directory": "Katalog pokojów",
|
||||
"Explore rooms": "Przeglądaj pokoje"
|
||||
"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."
|
||||
}
|
||||
|
||||
@@ -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."
|
||||
}
|
||||
|
||||
@@ -42,10 +42,13 @@
|
||||
"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 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"
|
||||
}
|
||||
|
||||
@@ -42,5 +42,11 @@
|
||||
"Create Account": "Vytvoriť účet",
|
||||
"Need help?": "Potrebujete pomoc?",
|
||||
"Explore rooms": "Preskúmať miestnosti",
|
||||
"Room Directory": "Adresár miestností"
|
||||
"Room Directory": "Adresár miestností",
|
||||
"Your Riot is misconfigured": "Váš Riot nie je nastavený správne",
|
||||
"Your Riot configuration contains invalid JSON. Please correct the problem and reload the page.": "Tvoja RIOT konfigurácia obsahuje neplatný JSON. Prosím, oprav daný problém a načítaj stránku znova.",
|
||||
"The message from the parser is: %(message)s": "Správa z parsera je: %(message)s",
|
||||
"Invalid JSON": "Neplatný JSON",
|
||||
"Unexpected error preparing the app. See console for details.": "Neočakávaná chyba počas pripravovania aplikácie. Pre podrobnosti pozri konzolu.",
|
||||
"Invalid configuration: no default server specified.": "Neplatné nastavenie: nebol určený východiskový server."
|
||||
}
|
||||
|
||||
@@ -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."
|
||||
}
|
||||
|
||||
26
src/i18n/strings/sr_Latn.json
Normal file
26
src/i18n/strings/sr_Latn.json
Normal file
@@ -0,0 +1,26 @@
|
||||
{
|
||||
"Your Riot configuration contains invalid JSON. Please correct the problem and reload the page.": "Vaša Riot konfiguracija sadrži pogrešan JSON. Molim ispravite problem i ponovo učitajte stranu.",
|
||||
"The message from the parser is: %(message)s": "Poruka iz parsera je: %(message)s",
|
||||
"Invalid JSON": "Pogrešan JSON",
|
||||
"Your Riot is misconfigured": "Vaš Riot nije dobro podešen",
|
||||
"Unexpected error preparing the app. See console for details.": "Neočekivana greška prilikom pripreme aplikacije. Pogledajte konzolu za više detalja.",
|
||||
"Invalid configuration: can only specify one of default_server_config, default_server_name, or default_hs_url.": "Pogrešno podešavanje: možete navesti samo jednu vrednost od default_server_config, default_server_name, or default_hs_url.",
|
||||
"Invalid configuration: no default server specified.": "Pogrešno podešavanje: podrazumevani server nije naveden.",
|
||||
"Riot Desktop on %(platformName)s": "Riot Desktop na %(platformName)s",
|
||||
"Unknown device": "Nepoznat uređaj",
|
||||
"%(appName)s via %(browserName)s on %(osName)s": "%(appName)s preko %(browserName)s na %(osName)s",
|
||||
"You need to be using HTTPS to place a screen-sharing call.": "Treba da koristite HTTPS da bi ste započeli poziv sa deljenjem ekrana.",
|
||||
"powered by Matrix": "pokreće Matriks",
|
||||
"Custom Server Options": "Prilagođene opcije servera",
|
||||
"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žete koristiti prilagođene opcije servera kako bi ste se prijavili na druge Matriks servere tako što ćete navesti različiti URL kućnog servera. Ovo vam omogućava da koristite Riot sa postojećim Matriks nalogom na drugom kućnom serveru.",
|
||||
"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.": "Takođe, možete podesiti prilagođeni server identiteta, ali tada nećete moći da pozivate korisnike preko adrese elektronske pošte ili da i sami budete pozvani preko adrese elektronske pošte.",
|
||||
"Dismiss": "Odbaci",
|
||||
"Welcome to Riot.im": "Dobrodošli u Riot.im",
|
||||
"Decentralised, encrypted chat & collaboration powered by [matrix]": "Decentralizovano, šifrovano ćaskanje & i saradnja koju pokreće [matrix]",
|
||||
"Sign In": "Prijavite se",
|
||||
"Create Account": "Napravite nalog",
|
||||
"Need help?": "Potrebna pomoć?",
|
||||
"Chat with Riot Bot": "Ćaskajte sa Riot botom",
|
||||
"Explore rooms": "Istražite sobe",
|
||||
"Room Directory": "Spisak soba"
|
||||
}
|
||||
@@ -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 & 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": "สำรวจห้อง"
|
||||
}
|
||||
|
||||
@@ -1,15 +1,15 @@
|
||||
{
|
||||
"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 configuroatie: ku moar één van default_server_config, default_server_name, of default_hs_url ipgeevn.",
|
||||
"Invalid configuration: no default server specified.": "Oungeldige configuroatie: geen standoardserver ipgegeevn.",
|
||||
"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 d’angepaste serverinstelliengn gebruukn vo jen eigen an te melden by andere Matrix-servers, deur een andere thuusserver-URL in te geevn. Dit lat je toe van Riot te gebruukn met e bestoande Matrix-account by een andere thuusserver.",
|
||||
"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 d’angepaste 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",
|
||||
@@ -21,7 +21,7 @@
|
||||
"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-configuroatie bevat oungeldigen JSON. Corrigeer ’t probleem en herload ’t blad.",
|
||||
"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"
|
||||
}
|
||||
|
||||
@@ -13,6 +13,7 @@
|
||||
<link rel="apple-touch-icon" sizes="152x152" href="<%= require('../../res/vector-icons/apple-touch-icon-152x152.png') %>">
|
||||
<link rel="apple-touch-icon" sizes="180x180" href="<%= require('../../res/vector-icons/apple-touch-icon-180x180.png') %>">
|
||||
<link rel="manifest" href="manifest.json">
|
||||
<meta name="referrer" content="no-referrer">
|
||||
<link rel="shortcut icon" href="<%= require('../../res/vector-icons/favicon.ico') %>">
|
||||
<meta name="apple-mobile-web-app-title" content="Riot">
|
||||
<meta name="application-name" content="Riot">
|
||||
|
||||
@@ -33,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';
|
||||
@@ -195,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");
|
||||
@@ -239,6 +231,12 @@ async function loadApp() {
|
||||
// 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
|
||||
@@ -336,7 +334,8 @@ 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.
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -92,9 +92,12 @@ async function initPage() {
|
||||
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').innerText = hsUrl;
|
||||
document.getElementById('step_login_header').innerHTML= 'Step 3: Register or Log in';
|
||||
|
||||
if (isUrl && isUrl !== "https://vector.im/") {
|
||||
document.getElementById('default_is').style.display = 'none';
|
||||
|
||||
@@ -100,6 +100,16 @@ 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<{}> {
|
||||
@@ -174,7 +184,7 @@ export default class ElectronPlatform extends VectorBasePlatform {
|
||||
}
|
||||
|
||||
async getAppVersion(): Promise<string> {
|
||||
return await this._ipcCall('getAppVersion');
|
||||
return this._ipcCall('getAppVersion');
|
||||
}
|
||||
|
||||
supportsAutoLaunch(): boolean {
|
||||
@@ -182,23 +192,36 @@ 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);
|
||||
}
|
||||
|
||||
supportsMinimizeToTray(): boolean {
|
||||
supportsAutoHideMenuBar(): boolean {
|
||||
return true;
|
||||
}
|
||||
|
||||
async getAutoHideMenuBarEnabled(): boolean {
|
||||
return this._ipcCall('getAutoHideMenuBarEnabled');
|
||||
}
|
||||
|
||||
async setAutoHideMenuBarEnabled(enabled: boolean): void {
|
||||
return this._ipcCall('setAutoHideMenuBarEnabled', enabled);
|
||||
}
|
||||
|
||||
supportsMinimizeToTray(): boolean {
|
||||
// Things other than Mac support tray icons
|
||||
return !navigator.platform.toUpperCase().includes('MAC');
|
||||
}
|
||||
|
||||
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 {
|
||||
|
||||
@@ -34,7 +34,7 @@ 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";
|
||||
|
||||
@@ -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';
|
||||
|
||||
@@ -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: [
|
||||
@@ -152,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'),
|
||||
|
||||
Reference in New Issue
Block a user