Compare commits
900 Commits
v0.10.1
...
release-v0
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
9f5f4ee8d1 | ||
|
|
f79f8e1d3e | ||
|
|
7412828f05 | ||
|
|
beb694f68c | ||
|
|
064181731c | ||
|
|
35cd9ca12e | ||
|
|
e5dd37d2d6 | ||
|
|
c07c060b7d | ||
|
|
cc8518101b | ||
|
|
d684a33ae9 | ||
|
|
6068647840 | ||
|
|
61b4fdb53a | ||
|
|
e65ae80fce | ||
|
|
90cb9b04f4 | ||
|
|
6cc62a183f | ||
|
|
7857eea58f | ||
|
|
d5038b35f6 | ||
|
|
2ff23f3b62 | ||
|
|
eb0c0e63ea | ||
|
|
07ca70fd44 | ||
|
|
ce1e9c3050 | ||
|
|
504209b5a6 | ||
|
|
7911df46a0 | ||
|
|
d610788866 | ||
|
|
711a8cee8a | ||
|
|
7a3c52af7e | ||
|
|
e633d43c38 | ||
|
|
3eeabe8d91 | ||
|
|
eb036bd8f1 | ||
|
|
72cbdb2e39 | ||
|
|
752934350f | ||
|
|
5bfb5d4c3c | ||
|
|
a72fc80ef6 | ||
|
|
44c6f3fafc | ||
|
|
68dd47aa7b | ||
|
|
a13c0b12cb | ||
|
|
535e33509b | ||
|
|
4c6836bc3f | ||
|
|
9c5ceb6775 | ||
|
|
d20c1fe029 | ||
|
|
aae7515339 | ||
|
|
7269e7b84a | ||
|
|
81d123f652 | ||
|
|
b8c0e844ea | ||
|
|
6cab2ed6b9 | ||
|
|
72d250d8c4 | ||
|
|
57f82c3c9e | ||
|
|
918d0eb4fd | ||
|
|
1e4d621ee7 | ||
|
|
370268bba8 | ||
|
|
8906aeb766 | ||
|
|
906ed3c78f | ||
|
|
ee2fb17945 | ||
|
|
06ef674597 | ||
|
|
df33d40285 | ||
|
|
b3108e4dff | ||
|
|
0b2120e423 | ||
|
|
a3525f411d | ||
|
|
f7c38992cc | ||
|
|
3e96892a91 | ||
|
|
274fc34868 | ||
|
|
6cb979fc6f | ||
|
|
10ee9f4de4 | ||
|
|
c31f66aed5 | ||
|
|
7b024751d1 | ||
|
|
9c3c1b7608 | ||
|
|
a8ddf528a8 | ||
|
|
9f3c33758c | ||
|
|
ed9a4a3933 | ||
|
|
bf38fead18 | ||
|
|
b75402e772 | ||
|
|
a98c734eb5 | ||
|
|
fb69ac33a0 | ||
|
|
8b1650c382 | ||
|
|
4b5febadb7 | ||
|
|
8ca2af0fe7 | ||
|
|
03228d945d | ||
|
|
3e845bc37c | ||
|
|
531f1e52eb | ||
|
|
f5e5bb8720 | ||
|
|
a6d5158830 | ||
|
|
dfa1ce8d77 | ||
|
|
3ba4823fd7 | ||
|
|
b9ff6c873c | ||
|
|
6653ccf9a1 | ||
|
|
4b8764c070 | ||
|
|
2f99a4883f | ||
|
|
73e5cc9721 | ||
|
|
b12741464e | ||
|
|
af85f18eae | ||
|
|
2551a945b8 | ||
|
|
6bab8295d7 | ||
|
|
5b6dbfb701 | ||
|
|
8b26d5b7fb | ||
|
|
384727a553 | ||
|
|
397523f4ac | ||
|
|
ca388b8c7c | ||
|
|
ca5fdff72f | ||
|
|
317ff8c6af | ||
|
|
50f5abf535 | ||
|
|
c1fe3533c4 | ||
|
|
93a3c896a4 | ||
|
|
0bee03e86f | ||
|
|
de5db26214 | ||
|
|
a5771c48ba | ||
|
|
5b3fb36ac7 | ||
|
|
c8a39e361d | ||
|
|
068a2b869e | ||
|
|
e7c3563358 | ||
|
|
ff2554c8a6 | ||
|
|
35c239aae8 | ||
|
|
c2e1b6c613 | ||
|
|
ec6efd2488 | ||
|
|
1a09fc60f0 | ||
|
|
bcedc206e1 | ||
|
|
77582e0a17 | ||
|
|
be0cb667c8 | ||
|
|
dbeeacf11c | ||
|
|
d0344fef8b | ||
|
|
7dbb4bba09 | ||
|
|
bc2f639aae | ||
|
|
8445eb0959 | ||
|
|
de04cba41f | ||
|
|
e923847dac | ||
|
|
efa156b53a | ||
|
|
d2f02e8e99 | ||
|
|
5ba3453dcc | ||
|
|
9d8215e49f | ||
|
|
2cc153c796 | ||
|
|
55084d3aca | ||
|
|
878ff9826a | ||
|
|
7e00a86048 | ||
|
|
e133160a68 | ||
|
|
62579ed6b0 | ||
|
|
98e3746a1e | ||
|
|
01eef7eb41 | ||
|
|
ccf5d6fc90 | ||
|
|
055224693a | ||
|
|
9864ce5bb2 | ||
|
|
238afde00a | ||
|
|
4b67900225 | ||
|
|
fb10357dd5 | ||
|
|
f7d282fc8e | ||
|
|
11ae3dd46c | ||
|
|
3544c2b0c8 | ||
|
|
edfa3c1980 | ||
|
|
620f39c6a2 | ||
|
|
0c253e2437 | ||
|
|
53ae42ed68 | ||
|
|
871c9e6d3e | ||
|
|
ccc30fb52e | ||
|
|
745b803d28 | ||
|
|
bd693768cc | ||
|
|
6e1c40ea0f | ||
|
|
b45108d80d | ||
|
|
ec68c54644 | ||
|
|
4e5e5dd6b3 | ||
|
|
e7ba618bbe | ||
|
|
fc470cd20d | ||
|
|
cd418a5525 | ||
|
|
65b9086f18 | ||
|
|
0e71ea7a5a | ||
|
|
faa9fa8db9 | ||
|
|
f272961fbd | ||
|
|
ac0d29dc06 | ||
|
|
cb4f57eb4a | ||
|
|
a1b4b9992e | ||
|
|
18a6ee5a52 | ||
|
|
de0fd588b6 | ||
|
|
54f44af494 | ||
|
|
38899c6011 | ||
|
|
dd77147313 | ||
|
|
1690f875ca | ||
|
|
66ddf25977 | ||
|
|
c24b04d19b | ||
|
|
0c31c62a62 | ||
|
|
8c9afc2dfd | ||
|
|
bd06a1c393 | ||
|
|
40a47f8c7a | ||
|
|
8516c9d5b5 | ||
|
|
caa5751d50 | ||
|
|
01d954e4ab | ||
|
|
f6f461c571 | ||
|
|
e1e7492f17 | ||
|
|
ea85a3c3d9 | ||
|
|
c0830b48d0 | ||
|
|
e60bf48134 | ||
|
|
ea7d923d76 | ||
|
|
5e259ec176 | ||
|
|
3ec4b25793 | ||
|
|
c5b72f0192 | ||
|
|
b9b0e98ccf | ||
|
|
32ef273f9d | ||
|
|
76f6a19733 | ||
|
|
348ec52b14 | ||
|
|
76181f4771 | ||
|
|
9072ff93b9 | ||
|
|
a303e1e1b8 | ||
|
|
acbcde85ce | ||
|
|
ba1166d0d0 | ||
|
|
7238c4dfac | ||
|
|
d901515059 | ||
|
|
f5c4d903e6 | ||
|
|
e15c8e473f | ||
|
|
69eb1a49d4 | ||
|
|
1d2d086a58 | ||
|
|
4c5b5ca0ba | ||
|
|
d5b550f89a | ||
|
|
b29b4a959b | ||
|
|
10decf95f6 | ||
|
|
b2403d59b7 | ||
|
|
0f8a2554dc | ||
|
|
668199e219 | ||
|
|
498feeed21 | ||
|
|
4040c1d931 | ||
|
|
e774e807c6 | ||
|
|
f80629db44 | ||
|
|
248944a300 | ||
|
|
188a58e5c7 | ||
|
|
3e1a909b1d | ||
|
|
41cd238e02 | ||
|
|
4fe4e10abb | ||
|
|
659ac2e8c7 | ||
|
|
71396e062d | ||
|
|
2ba1a84b0c | ||
|
|
b5ef34b0a0 | ||
|
|
898725082a | ||
|
|
a00781b733 | ||
|
|
a619001533 | ||
|
|
2c65bd097b | ||
|
|
0bbce1c140 | ||
|
|
b3abf7c592 | ||
|
|
a201f74115 | ||
|
|
bc60fa81af | ||
|
|
c465f40179 | ||
|
|
d25b441add | ||
|
|
d755903fdb | ||
|
|
8ac26dd19f | ||
|
|
4d34809279 | ||
|
|
b375c71a28 | ||
|
|
cefc3e6da9 | ||
|
|
bc88585026 | ||
|
|
7a1494fc46 | ||
|
|
ab95905472 | ||
|
|
61e5fd759a | ||
|
|
c1b8879b6b | ||
|
|
f033234abe | ||
|
|
f133409207 | ||
|
|
a1681f8576 | ||
|
|
d7d61ab01d | ||
|
|
3175387c73 | ||
|
|
d98d493420 | ||
|
|
c2c6c14ec5 | ||
|
|
e77b1ea87b | ||
|
|
3930720127 | ||
|
|
ae2f1ff382 | ||
|
|
5ce3d5dc36 | ||
|
|
5f5a802b44 | ||
|
|
052f9effc1 | ||
|
|
b4602fd2b1 | ||
|
|
43bdc04637 | ||
|
|
700672b6ec | ||
|
|
e36899c30f | ||
|
|
e04f34a202 | ||
|
|
d34164ec49 | ||
|
|
fc5ce7fb61 | ||
|
|
a8d5f7d5eb | ||
|
|
efa0184034 | ||
|
|
0796b304cc | ||
|
|
3d167d8a27 | ||
|
|
d4435daf31 | ||
|
|
07e8d4ef69 | ||
|
|
e8c8a0a2c8 | ||
|
|
8daa0fced8 | ||
|
|
65a160f24a | ||
|
|
04fd29c8b7 | ||
|
|
43a70c2bfb | ||
|
|
a14bc9a9b1 | ||
|
|
ba0073ca71 | ||
|
|
e128434acd | ||
|
|
9f05236503 | ||
|
|
60703bdcfc | ||
|
|
2ccd36d09e | ||
|
|
cfe9e762ad | ||
|
|
9969d6095d | ||
|
|
38b1ca9b90 | ||
|
|
b4b33ae06f | ||
|
|
1e569e67b1 | ||
|
|
8b6ed9f993 | ||
|
|
48889b51b0 | ||
|
|
c6492b3d8a | ||
|
|
92ff1f2671 | ||
|
|
5312c9ad4c | ||
|
|
77a52b02cb | ||
|
|
bd1196716a | ||
|
|
185a5b51ff | ||
|
|
d5e1bfab48 | ||
|
|
8178f12ae8 | ||
|
|
97c4cd49b0 | ||
|
|
b7cc469f7b | ||
|
|
c565d31e53 | ||
|
|
cb17cb0535 | ||
|
|
e0b9b4320a | ||
|
|
5e5096c69d | ||
|
|
c45f976d34 | ||
|
|
39ff11fe82 | ||
|
|
3a055634f2 | ||
|
|
802e2e6bba | ||
|
|
ca1b5ed611 | ||
|
|
5475f8ffbd | ||
|
|
657e195455 | ||
|
|
7894ac6651 | ||
|
|
5d4b98d4f6 | ||
|
|
6fcf504a4b | ||
|
|
042e7acca5 | ||
|
|
17bd323376 | ||
|
|
796b51113f | ||
|
|
7a1a0e613c | ||
|
|
233a7dbf68 | ||
|
|
af3374e210 | ||
|
|
515f8de2c5 | ||
|
|
2ea69624af | ||
|
|
ed6ea13773 | ||
|
|
7aff42ca9d | ||
|
|
c320c64f27 | ||
|
|
b55fa94db9 | ||
|
|
a5bc9a953c | ||
|
|
34f52e8315 | ||
|
|
15dcc507d8 | ||
|
|
962f081fcd | ||
|
|
991789da72 | ||
|
|
d5c37ad8bc | ||
|
|
4ee5431e07 | ||
|
|
176f7f1515 | ||
|
|
105c54a1f1 | ||
|
|
f36c1ca207 | ||
|
|
83353e9419 | ||
|
|
f6627937fa | ||
|
|
a122e72a2b | ||
|
|
fcde56f614 | ||
|
|
59692d0190 | ||
|
|
15634a8435 | ||
|
|
d05d7a09c4 | ||
|
|
b4b4b8d350 | ||
|
|
ffcc495f98 | ||
|
|
63a5f22e58 | ||
|
|
6e8246206a | ||
|
|
c4e8b5586f | ||
|
|
7bb2e83ff4 | ||
|
|
7b7e240af6 | ||
|
|
2a72c2e19b | ||
|
|
9ca37c6cb8 | ||
|
|
a9b8626ad3 | ||
|
|
c614bc2356 | ||
|
|
f7f5255378 | ||
|
|
23a0e9a96c | ||
|
|
8b89a1770d | ||
|
|
bfe43d841f | ||
|
|
423a047687 | ||
|
|
cc56ef3abd | ||
|
|
fbcdc5adad | ||
|
|
b75180d959 | ||
|
|
fab50bc1f1 | ||
|
|
cfe7fbb23e | ||
|
|
8477ed2967 | ||
|
|
a1132ca7aa | ||
|
|
6e52ab6182 | ||
|
|
e33e0effa3 | ||
|
|
0788826a71 | ||
|
|
c79c0bd333 | ||
|
|
e4c3a63375 | ||
|
|
a9c8429d2e | ||
|
|
9af8cfd1dc | ||
|
|
93502b3c2a | ||
|
|
46ff43e9ba | ||
|
|
954d56e151 | ||
|
|
f040a72765 | ||
|
|
8b65b96adf | ||
|
|
cf5cf02529 | ||
|
|
26ea8a7494 | ||
|
|
27d83ba440 | ||
|
|
c380e7566a | ||
|
|
81518069ed | ||
|
|
a06eb5dfe1 | ||
|
|
7d3f75ef87 | ||
|
|
54ef2dd39b | ||
|
|
b51101038f | ||
|
|
79ad89c673 | ||
|
|
e7dd6fa714 | ||
|
|
a46a0c0949 | ||
|
|
a13b766bad | ||
|
|
969c7c93d6 | ||
|
|
aade0d557d | ||
|
|
d1c97d8f9a | ||
|
|
ae8ad6969a | ||
|
|
6d62bf0e25 | ||
|
|
26a27a6de4 | ||
|
|
51cfad5b9f | ||
|
|
ca3399df77 | ||
|
|
c4a3211cfc | ||
|
|
d9f662c06e | ||
|
|
abf21675d5 | ||
|
|
8a17e3543a | ||
|
|
c70ad2fa65 | ||
|
|
8f8b28425d | ||
|
|
6b5bfe24e6 | ||
|
|
ae23664a41 | ||
|
|
bbbb82351f | ||
|
|
67a9b6502b | ||
|
|
fe1b0b5cd8 | ||
|
|
8dade0d84e | ||
|
|
499b1c2e70 | ||
|
|
047b255e14 | ||
|
|
3926e4dd98 | ||
|
|
639b17c663 | ||
|
|
ea8a49f1b7 | ||
|
|
eda3f20b26 | ||
|
|
6ef32f182a | ||
|
|
6bae293bdf | ||
|
|
d5d29c1c92 | ||
|
|
556ff24c5f | ||
|
|
f5d9af9b0b | ||
|
|
3ff0ed52b2 | ||
|
|
4ae6e9fdfd | ||
|
|
b9fc46fa41 | ||
|
|
133f3d24f5 | ||
|
|
241ebe50d2 | ||
|
|
7fda26f268 | ||
|
|
0729d50e47 | ||
|
|
f6cbb708b0 | ||
|
|
8b7692cf3b | ||
|
|
7523251098 | ||
|
|
5b5e6d83d9 | ||
|
|
448e33bb65 | ||
|
|
88950f29c5 | ||
|
|
3e279746d5 | ||
|
|
f420a18696 | ||
|
|
db70272902 | ||
|
|
78068bfaa0 | ||
|
|
578fa1c160 | ||
|
|
c9715e02d9 | ||
|
|
9f7cf463b9 | ||
|
|
9eca0d2fde | ||
|
|
45bb74d8f6 | ||
|
|
07103431a9 | ||
|
|
3588ce7bc5 | ||
|
|
6e64dd32c8 | ||
|
|
e3a63c3a6d | ||
|
|
79816c5726 | ||
|
|
c55d292840 | ||
|
|
0da4834360 | ||
|
|
adbe5c71b7 | ||
|
|
a9dfd4da2d | ||
|
|
557d4ae4c1 | ||
|
|
563d1dc3f1 | ||
|
|
5a8a41ad50 | ||
|
|
60be24c665 | ||
|
|
4a968cd34f | ||
|
|
0608c67767 | ||
|
|
bd1b06c9b4 | ||
|
|
98f8be45b7 | ||
|
|
641f20a4f6 | ||
|
|
7cbfa228ee | ||
|
|
1c82b7b0c3 | ||
|
|
b7368fa933 | ||
|
|
ecf163d4e7 | ||
|
|
1a72d3134c | ||
|
|
612cad5d9e | ||
|
|
9b1b5b3a4b | ||
|
|
6b1ffaff7a | ||
|
|
ffa24eac84 | ||
|
|
82eb69324d | ||
|
|
eaf61526fb | ||
|
|
47906d23f0 | ||
|
|
2fa05f8d61 | ||
|
|
6bee3f22da | ||
|
|
396ecf6570 | ||
|
|
f9ef5e8498 | ||
|
|
cf9cd503e5 | ||
|
|
0e00f708f1 | ||
|
|
a4abccdcef | ||
|
|
6ace710a65 | ||
|
|
23b99f83ce | ||
|
|
8bc2b4a122 | ||
|
|
2b3ec55850 | ||
|
|
9a203aab67 | ||
|
|
5cc1f62839 | ||
|
|
ad57dd3169 | ||
|
|
0635a344ae | ||
|
|
12dab61a67 | ||
|
|
7ae1a70a8d | ||
|
|
4afec6fb7f | ||
|
|
886475af7e | ||
|
|
4d89e997b3 | ||
|
|
93a6e03f70 | ||
|
|
851f4d4a87 | ||
|
|
f2fa326c0c | ||
|
|
d9b63a482c | ||
|
|
c585d80e3e | ||
|
|
9c8be72574 | ||
|
|
e6551e4590 | ||
|
|
7cdb73d74b | ||
|
|
3d0da059dc | ||
|
|
274536bf13 | ||
|
|
6df1574b8b | ||
|
|
8cf6712426 | ||
|
|
37a219006d | ||
|
|
97611cfd27 | ||
|
|
1a12528634 | ||
|
|
f4f7c605a5 | ||
|
|
490a696567 | ||
|
|
491d83b17f | ||
|
|
55fad1910a | ||
|
|
00c2235381 | ||
|
|
aff2a50cdd | ||
|
|
5bc676a042 | ||
|
|
05c667b34b | ||
|
|
2c186aafae | ||
|
|
319cdd56e3 | ||
|
|
2477fddc07 | ||
|
|
3bf7de8d47 | ||
|
|
5da8839ceb | ||
|
|
f5b2a92e84 | ||
|
|
1fcd462660 | ||
|
|
104cb7b999 | ||
|
|
5b43431bf0 | ||
|
|
e045b35c86 | ||
|
|
cb905e9be7 | ||
|
|
28753c451d | ||
|
|
584e4c04da | ||
|
|
854aed746a | ||
|
|
a7a7ffd84b | ||
|
|
a28af8bcc6 | ||
|
|
43f56483aa | ||
|
|
f3d29b305e | ||
|
|
ca736cfce8 | ||
|
|
269a82c65f | ||
|
|
680a345ce7 | ||
|
|
3b6c0e0f67 | ||
|
|
9de3c71a9b | ||
|
|
2c8c26a16f | ||
|
|
8f3c0d6233 | ||
|
|
4f5f32d75c | ||
|
|
59d67a483b | ||
|
|
6709f922be | ||
|
|
98e694646c | ||
|
|
6f2eee1f03 | ||
|
|
9649f279a3 | ||
|
|
181ef8ab7e | ||
|
|
4ca009b9f7 | ||
|
|
fef525c2e5 | ||
|
|
5ff59b0c23 | ||
|
|
27d5704978 | ||
|
|
165b3dbdd3 | ||
|
|
59da904353 | ||
|
|
c01df23040 | ||
|
|
d22e99345f | ||
|
|
4edd21ba8a | ||
|
|
90cff5d7bf | ||
|
|
9325eef650 | ||
|
|
f9795232e0 | ||
|
|
c3ef2f86d6 | ||
|
|
11c04abaeb | ||
|
|
5d93c675e1 | ||
|
|
452e35caa1 | ||
|
|
d7fb0093e4 | ||
|
|
58a323b391 | ||
|
|
cd8dc5f178 | ||
|
|
ea9aae3902 | ||
|
|
23c6ccc536 | ||
|
|
fa9ae945ed | ||
|
|
9d42a81709 | ||
|
|
46d0e8da96 | ||
|
|
4f55f810af | ||
|
|
138555759d | ||
|
|
fbe5dfce4d | ||
|
|
a24acaee54 | ||
|
|
7e272f95ff | ||
|
|
5a9d8b0624 | ||
|
|
7af2a6c3a6 | ||
|
|
c8416b0321 | ||
|
|
27b8568fc0 | ||
|
|
dfd9f7c27b | ||
|
|
aa07266f12 | ||
|
|
e2f2d34698 | ||
|
|
152e3c6258 | ||
|
|
13231620f1 | ||
|
|
f2f8c19f2f | ||
|
|
5812dd8f3f | ||
|
|
03dec86211 | ||
|
|
5e530a2065 | ||
|
|
278bd61ad9 | ||
|
|
8967403bca | ||
|
|
0b83baeaf4 | ||
|
|
1ce1d36e99 | ||
|
|
1bb7c54ab4 | ||
|
|
91295c68ad | ||
|
|
c43b30f2fd | ||
|
|
ac25cf56fb | ||
|
|
2be54f58fe | ||
|
|
bbb9dd9228 | ||
|
|
3cb8fa096b | ||
|
|
a3240b934f | ||
|
|
5fa8ee315a | ||
|
|
051db65188 | ||
|
|
6d1ef0fe0a | ||
|
|
bddb6b7f8f | ||
|
|
030f2eaeb5 | ||
|
|
b8e0cbaf5a | ||
|
|
319a3312b1 | ||
|
|
76e058cfa1 | ||
|
|
23f4ddb4fd | ||
|
|
2ed6c01a65 | ||
|
|
02c4516fa7 | ||
|
|
8c541a2702 | ||
|
|
b6d2ba2019 | ||
|
|
53e2ce33b8 | ||
|
|
9493f4a872 | ||
|
|
2bfaf2f802 | ||
|
|
a32ce4fbf6 | ||
|
|
89533706a8 | ||
|
|
deb7ed660c | ||
|
|
6f7d44588e | ||
|
|
5d66a539b7 | ||
|
|
a520f0bfed | ||
|
|
6d5e980c6c | ||
|
|
6d72e0633b | ||
|
|
eabfce8aa9 | ||
|
|
bd583f86b0 | ||
|
|
e5b6d0a43c | ||
|
|
c4fd139586 | ||
|
|
4c8ff0955d | ||
|
|
6592526109 | ||
|
|
09977651bb | ||
|
|
c34bc2d946 | ||
|
|
491fc49985 | ||
|
|
23a1efa6ed | ||
|
|
37a3748080 | ||
|
|
dcfe49e48e | ||
|
|
ff33521ed9 | ||
|
|
296a5a903b | ||
|
|
08d0ef82dc | ||
|
|
585c36b0a3 | ||
|
|
6f10213efd | ||
|
|
f874134a31 | ||
|
|
92ebb6576f | ||
|
|
cb5cb56854 | ||
|
|
71a0ced8a8 | ||
|
|
5eb0c95b5d | ||
|
|
a62a9b9cd1 | ||
|
|
379a5582ea | ||
|
|
3a86e659af | ||
|
|
19c6a8f7b8 | ||
|
|
c51270aca4 | ||
|
|
a7641ca04d | ||
|
|
dd7489002f | ||
|
|
00ca069873 | ||
|
|
89e14c1b49 | ||
|
|
1d3fc7be9b | ||
|
|
f335656c7d | ||
|
|
f086629fed | ||
|
|
d108f34390 | ||
|
|
fecbbcda9e | ||
|
|
7237224fc9 | ||
|
|
556aa2e38e | ||
|
|
b98497f386 | ||
|
|
daf92c59b1 | ||
|
|
87cc154bcc | ||
|
|
b032accdfa | ||
|
|
387c334d41 | ||
|
|
1581f3f332 | ||
|
|
6fed0239f1 | ||
|
|
47cde99a58 | ||
|
|
3041ec0770 | ||
|
|
4f6b237fbc | ||
|
|
f24382919b | ||
|
|
be209eb988 | ||
|
|
fd2486f996 | ||
|
|
04b64bb3c3 | ||
|
|
2d85d931c1 | ||
|
|
0e6576d91a | ||
|
|
eefa723a87 | ||
|
|
6c769175b4 | ||
|
|
94592ca2d5 | ||
|
|
919ca5d67c | ||
|
|
3b12a2c431 | ||
|
|
47d704e5a4 | ||
|
|
b9739f043e | ||
|
|
c5fa3a7df6 | ||
|
|
48e3ab2a66 | ||
|
|
56699c2e2a | ||
|
|
f2b89acfec | ||
|
|
de334cccfd | ||
|
|
caeb675672 | ||
|
|
7b4be59e0e | ||
|
|
d8f7262eac | ||
|
|
6a25d7a30a | ||
|
|
db4be25c41 | ||
|
|
114a76ff83 | ||
|
|
5b10cfcdce | ||
|
|
f32977c0e8 | ||
|
|
da69d03b1d | ||
|
|
cabbd16dd3 | ||
|
|
0cbd5de1d3 | ||
|
|
873656232f | ||
|
|
c7a5bedb1c | ||
|
|
8398e19cea | ||
|
|
f26b3fe9b2 | ||
|
|
96e3c43570 | ||
|
|
8e2609d23e | ||
|
|
e216b4da1b | ||
|
|
8e161748ef | ||
|
|
c44d4a57ac | ||
|
|
4518776561 | ||
|
|
e6889716aa | ||
|
|
4a60dc5a20 | ||
|
|
a2081f7d2a | ||
|
|
a7c0c805d4 | ||
|
|
87996b3a8a | ||
|
|
a2400baf59 | ||
|
|
41df1e676d | ||
|
|
0e6c25122b | ||
|
|
b2d011f0cb | ||
|
|
fc7e20ab62 | ||
|
|
5a94cecc62 | ||
|
|
272d36995b | ||
|
|
53bc78429d | ||
|
|
a158549a4c | ||
|
|
80d912bb2c | ||
|
|
37625faeb7 | ||
|
|
090a7c5761 | ||
|
|
9302c60b47 | ||
|
|
9a6e0440f9 | ||
|
|
9c94f2ac14 | ||
|
|
b0486e333d | ||
|
|
784e52f249 | ||
|
|
012c02ff7d | ||
|
|
fe4738996a | ||
|
|
76880e0de7 | ||
|
|
d235e2276f | ||
|
|
c117ceb0b6 | ||
|
|
f815097ee9 | ||
|
|
79d6ced201 | ||
|
|
080cbea080 | ||
|
|
968e21a67d | ||
|
|
26bb962a3c | ||
|
|
88e159e462 | ||
|
|
951b63898b | ||
|
|
3d51156b7e | ||
|
|
d648dc867e | ||
|
|
a62ed0eb03 | ||
|
|
383f6b619b | ||
|
|
13c780c7c5 | ||
|
|
dbbb916be8 | ||
|
|
8fee4941c3 | ||
|
|
8e288e14bf | ||
|
|
15d0bd9271 | ||
|
|
8a6b940520 | ||
|
|
5ad7099b6c | ||
|
|
6518b9ac86 | ||
|
|
3843762123 | ||
|
|
82e1959f22 | ||
|
|
d06934c5f6 | ||
|
|
fd42698cf0 | ||
|
|
4cec4f066d | ||
|
|
7098ca9df0 | ||
|
|
e30fcdba4c | ||
|
|
ce01bcac2d | ||
|
|
88e843d992 | ||
|
|
feaff9d99d | ||
|
|
0ef800073b | ||
|
|
e8d5021b48 | ||
|
|
5e67bcdac7 | ||
|
|
0919b7ce3a | ||
|
|
95d9b85a93 | ||
|
|
2f990bf410 | ||
|
|
c610d21e68 | ||
|
|
58433423f4 | ||
|
|
e60b7c6dba | ||
|
|
3b398cba6c | ||
|
|
869d41e4b1 | ||
|
|
7b9ae0157a | ||
|
|
1bc30021c8 | ||
|
|
9053e9846d | ||
|
|
8cd4bf5342 | ||
|
|
f24c6de245 | ||
|
|
1e5a742602 | ||
|
|
4225813523 | ||
|
|
25a0af6ddb | ||
|
|
7c13e2d0ab | ||
|
|
0d7aefb7c1 | ||
|
|
e7fc602b3d | ||
|
|
ed6709ec6c | ||
|
|
93f148fca3 | ||
|
|
5981887705 | ||
|
|
a4c1aee5ea | ||
|
|
f5ba6fa952 | ||
|
|
3ebd90565c | ||
|
|
b95ad701af | ||
|
|
efc68c078e | ||
|
|
0e6012ad45 | ||
|
|
31138ca573 | ||
|
|
2adecce3f2 | ||
|
|
85782f736c | ||
|
|
ec71903b6e | ||
|
|
5fb60406b0 | ||
|
|
cb3fa16cd0 | ||
|
|
884322f82c | ||
|
|
13262d9a8b | ||
|
|
c9bfd6cc9a | ||
|
|
8f5f4cb9c8 | ||
|
|
4f0fee2cd1 | ||
|
|
7b7ae356eb | ||
|
|
a2378db837 | ||
|
|
188ea3a4b1 | ||
|
|
29e58be7f4 | ||
|
|
a8f0ed60cf | ||
|
|
623f995934 | ||
|
|
4805bcf364 | ||
|
|
a21c77f4dd | ||
|
|
17e80d7757 | ||
|
|
113533ad61 | ||
|
|
e16e52915b | ||
|
|
1e1a43c78f | ||
|
|
64a67583e0 | ||
|
|
d264426ece | ||
|
|
e358ef5bf7 | ||
|
|
6cc7fa3a36 | ||
|
|
37b51b8a2a | ||
|
|
ac9075a82a | ||
|
|
1f4f86b5f8 | ||
|
|
1af86405bd | ||
|
|
823fbafe85 | ||
|
|
3ea3630c3b | ||
|
|
8083f2d934 | ||
|
|
f085d2db39 | ||
|
|
a92d96347b | ||
|
|
7034300dd5 | ||
|
|
75eca60d76 | ||
|
|
aa604612a7 | ||
|
|
8f083a5fdd | ||
|
|
aa357ff6de | ||
|
|
b25e6eb2a9 | ||
|
|
1db3ba676d | ||
|
|
790fc7ca4a | ||
|
|
6c1b6f0476 | ||
|
|
3779b74dae | ||
|
|
41e7706bc6 | ||
|
|
2fde2d58b6 | ||
|
|
85aa390c8f | ||
|
|
9d28c8f577 | ||
|
|
284aeeb43e | ||
|
|
bf716add99 | ||
|
|
fce1164b58 | ||
|
|
9b1ffe6fda | ||
|
|
a5ea19b900 | ||
|
|
e3342e36c0 | ||
|
|
67ecd94b4a | ||
|
|
d81f894a50 | ||
|
|
af305ea540 | ||
|
|
365a46777c | ||
|
|
36ec156d2e | ||
|
|
e253f86c63 | ||
|
|
43bd88777c | ||
|
|
efb6316ba0 | ||
|
|
998739a7dc | ||
|
|
299dc7fe84 | ||
|
|
b057e8a92f | ||
|
|
9fc57786f1 | ||
|
|
24584bee4a | ||
|
|
5d712d27d3 | ||
|
|
8afc9f9a09 | ||
|
|
7a63cfd717 | ||
|
|
7ea6157b67 | ||
|
|
553c53e7e8 | ||
|
|
219bfffea2 | ||
|
|
c6ff45261d | ||
|
|
11d88aa6a2 | ||
|
|
36ec39ffc0 | ||
|
|
48856c31f8 | ||
|
|
e367fb5a98 | ||
|
|
e6f6b8cebd | ||
|
|
79d32868a6 | ||
|
|
5814a3fdc8 | ||
|
|
0e787a09c3 | ||
|
|
67297bf827 | ||
|
|
f60be2d658 | ||
|
|
607ba57f48 | ||
|
|
ee33490553 | ||
|
|
d2ea162b3f | ||
|
|
2eccdf56b9 | ||
|
|
ab24994e37 | ||
|
|
98f62d0300 | ||
|
|
2e49014ffe | ||
|
|
1b78737f12 | ||
|
|
5766a6e93d | ||
|
|
c783f701dd | ||
|
|
f14c2a0a71 | ||
|
|
425719c72e | ||
|
|
d7b2f0d3be |
2
.babelrc
@@ -1,4 +1,4 @@
|
||||
{
|
||||
"presets": ["react", "es2015", "es2016"],
|
||||
"plugins": ["transform-class-properties", "transform-object-rest-spread", "transform-async-to-generator", "transform-runtime", "add-module-exports"]
|
||||
"plugins": ["transform-class-properties", "transform-object-rest-spread", "transform-async-to-bluebird", "transform-runtime", "add-module-exports"]
|
||||
}
|
||||
|
||||
2
.gitignore
vendored
@@ -14,6 +14,6 @@
|
||||
npm-debug.log
|
||||
electron/dist
|
||||
electron/pub
|
||||
/.idea
|
||||
**/.idea
|
||||
/config.json
|
||||
/src/component-index.js
|
||||
|
||||
14
.travis.yml
@@ -1,3 +1,10 @@
|
||||
# we need trusty for the chrome addon
|
||||
dist: trusty
|
||||
|
||||
# we don't need sudo, so can run in a container, which makes startup much
|
||||
# quicker.
|
||||
sudo: false
|
||||
|
||||
language: node_js
|
||||
node_js:
|
||||
# make sure we work with a range of node versions.
|
||||
@@ -5,8 +12,9 @@ node_js:
|
||||
# - 4.x is still in LTS (until April 2018), but some of our deps (notably
|
||||
# extract-zip) don't work with it
|
||||
# - 5.x has been EOLed for nearly a year.
|
||||
# - 6.x is the current 'LTS' version
|
||||
# - 7.x is the current 'current' version (until October 2017)
|
||||
# - 6.x is the active 'LTS' version
|
||||
# - 7.x is no longer supported
|
||||
# - 8.x is the current 'current' version (until October 2017)
|
||||
#
|
||||
# see: https://github.com/nodejs/LTS/
|
||||
#
|
||||
@@ -16,6 +24,8 @@ node_js:
|
||||
- 6.3
|
||||
- 6
|
||||
- 7
|
||||
addons:
|
||||
chrome: stable
|
||||
install:
|
||||
# clone the deps with depth 1: we know we will only ever need that one
|
||||
# commit.
|
||||
|
||||
350
CHANGELOG.md
@@ -1,3 +1,353 @@
|
||||
Changes in [0.12.0-rc.2](https://github.com/vector-im/riot-web/releases/tag/v0.12.0-rc.2) (2017-08-22)
|
||||
======================================================================================================
|
||||
[Full Changelog](https://github.com/vector-im/riot-web/compare/v0.12.0-rc.1...v0.12.0-rc.2)
|
||||
|
||||
* Update to react-sdk v0.10.0-rc.2
|
||||
|
||||
|
||||
Changes in [0.12.0-rc.1](https://github.com/vector-im/riot-web/releases/tag/v0.12.0-rc.1) (2017-08-16)
|
||||
======================================================================================================
|
||||
[Full Changelog](https://github.com/vector-im/riot-web/compare/v0.11.4...v0.12.0-rc.1)
|
||||
|
||||
* Update from Weblate.
|
||||
[\#4797](https://github.com/vector-im/riot-web/pull/4797)
|
||||
* move focus-via-up/down cursors to LeftPanel
|
||||
[\#4777](https://github.com/vector-im/riot-web/pull/4777)
|
||||
* Remove userId property on RightPanel
|
||||
[\#4775](https://github.com/vector-im/riot-web/pull/4775)
|
||||
* Make member device info buttons fluid and stackable with flexbox
|
||||
[\#4776](https://github.com/vector-im/riot-web/pull/4776)
|
||||
* un-i18n Modal Analytics
|
||||
[\#4688](https://github.com/vector-im/riot-web/pull/4688)
|
||||
* Quote using innerText
|
||||
[\#4773](https://github.com/vector-im/riot-web/pull/4773)
|
||||
* Karma tweaks for riot-web
|
||||
[\#4765](https://github.com/vector-im/riot-web/pull/4765)
|
||||
* Fix typo with scripts/fetch-develop-deps.sh in Building From Source
|
||||
[\#4764](https://github.com/vector-im/riot-web/pull/4764)
|
||||
* Adjust CSS for optional avatars in pills
|
||||
[\#4757](https://github.com/vector-im/riot-web/pull/4757)
|
||||
* Fix crypto on develop
|
||||
[\#4754](https://github.com/vector-im/riot-web/pull/4754)
|
||||
* Fix signing key url in readme
|
||||
[\#4464](https://github.com/vector-im/riot-web/pull/4464)
|
||||
* update gitignore to allow .idea directory to exist in subdirs
|
||||
[\#4749](https://github.com/vector-im/riot-web/pull/4749)
|
||||
* tweak compact theme
|
||||
[\#4665](https://github.com/vector-im/riot-web/pull/4665)
|
||||
* Update draft-js from 0.10.1 to 0.11.0-alpha
|
||||
[\#4740](https://github.com/vector-im/riot-web/pull/4740)
|
||||
* electron support for mouse forward/back buttons in Windows
|
||||
[\#4739](https://github.com/vector-im/riot-web/pull/4739)
|
||||
* Update draft-js from 0.8.1 to 0.10.1
|
||||
[\#4730](https://github.com/vector-im/riot-web/pull/4730)
|
||||
* Make pills, emoji translucent when sending
|
||||
[\#4693](https://github.com/vector-im/riot-web/pull/4693)
|
||||
* Widget permissions styling and icon
|
||||
[\#4690](https://github.com/vector-im/riot-web/pull/4690)
|
||||
* CSS required for composer autoscroll
|
||||
[\#4682](https://github.com/vector-im/riot-web/pull/4682)
|
||||
* CSS for group edit UI
|
||||
[\#4608](https://github.com/vector-im/riot-web/pull/4608)
|
||||
* Fix a couple of minor errors in the room list
|
||||
[\#4671](https://github.com/vector-im/riot-web/pull/4671)
|
||||
* Styling for beta testing icon.
|
||||
[\#4584](https://github.com/vector-im/riot-web/pull/4584)
|
||||
* Increase the timeout for clearing indexeddbs
|
||||
[\#4650](https://github.com/vector-im/riot-web/pull/4650)
|
||||
* Make some adjustments to mx_UserPill and mx_RoomPill
|
||||
[\#4597](https://github.com/vector-im/riot-web/pull/4597)
|
||||
* Apply CSS to <pre> tags to distinguish them from each other
|
||||
[\#4639](https://github.com/vector-im/riot-web/pull/4639)
|
||||
* Use `catch` instead of `fail` to handle room tag error
|
||||
[\#4643](https://github.com/vector-im/riot-web/pull/4643)
|
||||
* CSS for decorated matrix.to links in the composer
|
||||
[\#4583](https://github.com/vector-im/riot-web/pull/4583)
|
||||
* Deflake the joining test
|
||||
[\#4579](https://github.com/vector-im/riot-web/pull/4579)
|
||||
* Bump react to 15.6 to fix build problems
|
||||
[\#4577](https://github.com/vector-im/riot-web/pull/4577)
|
||||
* Improve AppTile menu bar button styling.
|
||||
[\#4567](https://github.com/vector-im/riot-web/pull/4567)
|
||||
* Transform `async` functions to bluebird promises
|
||||
[\#4572](https://github.com/vector-im/riot-web/pull/4572)
|
||||
* use flushAllExpected in joining test
|
||||
[\#4570](https://github.com/vector-im/riot-web/pull/4570)
|
||||
* Switch riot-web to bluebird
|
||||
[\#4565](https://github.com/vector-im/riot-web/pull/4565)
|
||||
* loading tests: wait for login component
|
||||
[\#4564](https://github.com/vector-im/riot-web/pull/4564)
|
||||
* Remove CSS for the MessageComposerInputOld
|
||||
[\#4568](https://github.com/vector-im/riot-web/pull/4568)
|
||||
* Implement the focus_room_filter action
|
||||
[\#4560](https://github.com/vector-im/riot-web/pull/4560)
|
||||
* CSS for Rooms in Group View
|
||||
[\#4530](https://github.com/vector-im/riot-web/pull/4530)
|
||||
* more HomePage tweaks
|
||||
[\#4557](https://github.com/vector-im/riot-web/pull/4557)
|
||||
* Give HomePage an unmounted guard
|
||||
[\#4556](https://github.com/vector-im/riot-web/pull/4556)
|
||||
* Take RTE out of labs
|
||||
[\#4500](https://github.com/vector-im/riot-web/pull/4500)
|
||||
* CSS for Groups page
|
||||
[\#4468](https://github.com/vector-im/riot-web/pull/4468)
|
||||
* CSS for GroupView
|
||||
[\#4442](https://github.com/vector-im/riot-web/pull/4442)
|
||||
* remove unused class
|
||||
[\#4525](https://github.com/vector-im/riot-web/pull/4525)
|
||||
* Fix long words causing MessageComposer to widen
|
||||
[\#4466](https://github.com/vector-im/riot-web/pull/4466)
|
||||
* Add visual bell animation for RTE
|
||||
[\#4516](https://github.com/vector-im/riot-web/pull/4516)
|
||||
* Truncate auto-complete pills properly
|
||||
[\#4502](https://github.com/vector-im/riot-web/pull/4502)
|
||||
* Use chrome headless instead of phantomjs
|
||||
[\#4512](https://github.com/vector-im/riot-web/pull/4512)
|
||||
* Use external mock-request
|
||||
[\#4489](https://github.com/vector-im/riot-web/pull/4489)
|
||||
* fix Quote not closing contextual menu
|
||||
[\#4443](https://github.com/vector-im/riot-web/pull/4443)
|
||||
* Apply white-space: pre-wrap to mx_MEmoteBody
|
||||
[\#4470](https://github.com/vector-im/riot-web/pull/4470)
|
||||
* Add some style improvements to autocompletions
|
||||
[\#4456](https://github.com/vector-im/riot-web/pull/4456)
|
||||
* Styling for apps / widgets
|
||||
[\#4447](https://github.com/vector-im/riot-web/pull/4447)
|
||||
* Attempt to flush the rageshake logs on close
|
||||
[\#4400](https://github.com/vector-im/riot-web/pull/4400)
|
||||
* Update from Weblate.
|
||||
[\#4401](https://github.com/vector-im/riot-web/pull/4401)
|
||||
* improve update polling electron and provide a manual check for updates
|
||||
button
|
||||
[\#4176](https://github.com/vector-im/riot-web/pull/4176)
|
||||
* Fix load failure in firefox when indexedDB is disabled
|
||||
[\#4395](https://github.com/vector-im/riot-web/pull/4395)
|
||||
* Change missed 'Redact' to 'Remove' in ImageView.
|
||||
[\#4362](https://github.com/vector-im/riot-web/pull/4362)
|
||||
* explicit convert to nativeImage to stabilise trayIcon on Windows [Electron]
|
||||
[\#4355](https://github.com/vector-im/riot-web/pull/4355)
|
||||
* Use _tJsx for PasswordNagBar (because it has <u>)
|
||||
[\#4373](https://github.com/vector-im/riot-web/pull/4373)
|
||||
* Clean up some log outputs from the integ tests
|
||||
[\#4376](https://github.com/vector-im/riot-web/pull/4376)
|
||||
* CSS for redeisng of password warning
|
||||
[\#4367](https://github.com/vector-im/riot-web/pull/4367)
|
||||
* Give _t to PasswordNagBar, add CSS for UserSettings password warning
|
||||
[\#4366](https://github.com/vector-im/riot-web/pull/4366)
|
||||
* Update from Weblate.
|
||||
[\#4361](https://github.com/vector-im/riot-web/pull/4361)
|
||||
* Update from Weblate.
|
||||
[\#4360](https://github.com/vector-im/riot-web/pull/4360)
|
||||
* Test 'return-to-app' functionality
|
||||
[\#4352](https://github.com/vector-im/riot-web/pull/4352)
|
||||
* Update from Weblate.
|
||||
[\#4354](https://github.com/vector-im/riot-web/pull/4354)
|
||||
* onLoadCompleted is now onTokenLoginCompleted
|
||||
[\#4335](https://github.com/vector-im/riot-web/pull/4335)
|
||||
* Tweak tests to match updates to matrixchat
|
||||
[\#4325](https://github.com/vector-im/riot-web/pull/4325)
|
||||
* Update from Weblate.
|
||||
[\#4346](https://github.com/vector-im/riot-web/pull/4346)
|
||||
* change dispatcher forward_event signature
|
||||
[\#4337](https://github.com/vector-im/riot-web/pull/4337)
|
||||
* Add border on hover for code blocks
|
||||
[\#4259](https://github.com/vector-im/riot-web/pull/4259)
|
||||
|
||||
Changes in [0.11.4](https://github.com/vector-im/riot-web/releases/tag/v0.11.4) (2017-06-22)
|
||||
============================================================================================
|
||||
[Full Changelog](https://github.com/vector-im/riot-web/compare/v0.11.3...v0.11.4)
|
||||
|
||||
* Update matrix-js-sdk and react-sdk to fix a regression where the
|
||||
background indexedb worker was disabled, failures to open indexeddb
|
||||
causing the app to fail to start, a race when starting that could break
|
||||
switching to rooms, and the inability to invite users with mixed case
|
||||
usernames.
|
||||
|
||||
Changes in [0.11.3](https://github.com/vector-im/riot-web/releases/tag/v0.11.3) (2017-06-20)
|
||||
============================================================================================
|
||||
[Full Changelog](https://github.com/vector-im/riot-web/compare/v0.11.2...v0.11.3)
|
||||
|
||||
* Update to matrix-react-sdk 0.9.6 to fix infinite spinner bugs
|
||||
and some parts of the app that had missed translation.
|
||||
|
||||
Changes in [0.11.2](https://github.com/vector-im/riot-web/releases/tag/v0.11.2) (2017-06-19)
|
||||
============================================================================================
|
||||
[Full Changelog](https://github.com/vector-im/riot-web/compare/v0.11.2-rc.2...v0.11.2)
|
||||
|
||||
* Add more languages and translations
|
||||
* Add a 'register' button
|
||||
|
||||
Changes in [0.11.2-rc.2](https://github.com/vector-im/riot-web/releases/tag/v0.11.2-rc.2) (2017-06-16)
|
||||
======================================================================================================
|
||||
[Full Changelog](https://github.com/vector-im/riot-web/compare/v0.11.2-rc.1...v0.11.2-rc.2)
|
||||
|
||||
* Update react-sdk to pull in fixes for URL previews, CAS
|
||||
login, h2 in markdown and CAPTCHA forms.
|
||||
* Enable Korean translation
|
||||
* Update from Weblate.
|
||||
[\#4323](https://github.com/vector-im/riot-web/pull/4323)
|
||||
* Fix h2 in markdown being weird
|
||||
[\#4332](https://github.com/vector-im/riot-web/pull/4332)
|
||||
|
||||
Changes in [0.11.2-rc.1](https://github.com/vector-im/riot-web/releases/tag/v0.11.2-rc.1) (2017-06-15)
|
||||
======================================================================================================
|
||||
[Full Changelog](https://github.com/vector-im/riot-web/compare/v0.11.1...v0.11.2-rc.1)
|
||||
|
||||
* Attempts to deflakify the joining test
|
||||
[\#4313](https://github.com/vector-im/riot-web/pull/4313)
|
||||
* Add a test for the login flow when there is a teamserver
|
||||
[\#4315](https://github.com/vector-im/riot-web/pull/4315)
|
||||
* Remove onload simulator from loading test
|
||||
[\#4314](https://github.com/vector-im/riot-web/pull/4314)
|
||||
* Update from Weblate.
|
||||
[\#4305](https://github.com/vector-im/riot-web/pull/4305)
|
||||
* Test that we handle stored mx_last_room_id correctly
|
||||
[\#4292](https://github.com/vector-im/riot-web/pull/4292)
|
||||
* Ask for email address after setting password for the first time
|
||||
[\#4301](https://github.com/vector-im/riot-web/pull/4301)
|
||||
* i18n for setting email after password flow
|
||||
[\#4299](https://github.com/vector-im/riot-web/pull/4299)
|
||||
* Update from Weblate.
|
||||
[\#4290](https://github.com/vector-im/riot-web/pull/4290)
|
||||
* Don't show the tooltips when filtering rooms
|
||||
[\#4282](https://github.com/vector-im/riot-web/pull/4282)
|
||||
* Update from Weblate.
|
||||
[\#4272](https://github.com/vector-im/riot-web/pull/4272)
|
||||
* Add missing VOIP Dropdown width
|
||||
[\#4266](https://github.com/vector-im/riot-web/pull/4266)
|
||||
* Update import and directory path in the Translations dev guide
|
||||
[\#4261](https://github.com/vector-im/riot-web/pull/4261)
|
||||
* Use Thai string for Thai in Language-Chooser
|
||||
[\#4260](https://github.com/vector-im/riot-web/pull/4260)
|
||||
|
||||
Changes in [0.11.1](https://github.com/vector-im/riot-web/releases/tag/v0.11.1) (2017-06-14)
|
||||
============================================================================================
|
||||
[Full Changelog](https://github.com/vector-im/riot-web/compare/v0.11.0...v0.11.1)
|
||||
|
||||
* Update to react-sdk 0.9.4 to prompt to set an
|
||||
email address when setting a password and make
|
||||
DM guessing smarter.
|
||||
|
||||
Changes in [0.11.0](https://github.com/vector-im/riot-web/releases/tag/v0.11.0) (2017-06-12)
|
||||
============================================================================================
|
||||
[Full Changelog](https://github.com/vector-im/riot-web/compare/v0.11.0-rc.2...v0.11.0)
|
||||
|
||||
* More translations & minor fixes
|
||||
|
||||
Changes in [0.11.0-rc.2](https://github.com/vector-im/riot-web/releases/tag/v0.11.0-rc.2) (2017-06-09)
|
||||
======================================================================================================
|
||||
[Full Changelog](https://github.com/vector-im/riot-web/compare/v0.11.0-rc.1...v0.11.0-rc.2)
|
||||
|
||||
* Update to matrix-react-sdk rc.2 which fixes the flux
|
||||
dependency version and an issue with the conference
|
||||
call bar translation.
|
||||
|
||||
|
||||
Changes in [0.11.0-rc.1](https://github.com/vector-im/riot-web/releases/tag/v0.11.0-rc.1) (2017-06-09)
|
||||
======================================================================================================
|
||||
[Full Changelog](https://github.com/vector-im/riot-web/compare/v0.10.2...v0.11.0-rc.1)
|
||||
|
||||
* Update from Weblate.
|
||||
[\#4258](https://github.com/vector-im/riot-web/pull/4258)
|
||||
* Update from Weblate.
|
||||
[\#4254](https://github.com/vector-im/riot-web/pull/4254)
|
||||
* Update from Weblate.
|
||||
[\#4253](https://github.com/vector-im/riot-web/pull/4253)
|
||||
* Expect to see HTTP /join/#some:alias when we the view knows it
|
||||
[\#4252](https://github.com/vector-im/riot-web/pull/4252)
|
||||
* Update from Weblate.
|
||||
[\#4250](https://github.com/vector-im/riot-web/pull/4250)
|
||||
* add explicit import to utf8 polyfill and rip out unused imports
|
||||
[\#4169](https://github.com/vector-im/riot-web/pull/4169)
|
||||
* Added styling for copy to clipboard button
|
||||
[\#4204](https://github.com/vector-im/riot-web/pull/4204)
|
||||
* Update from Weblate.
|
||||
[\#4231](https://github.com/vector-im/riot-web/pull/4231)
|
||||
* Update from Weblate.
|
||||
[\#4218](https://github.com/vector-im/riot-web/pull/4218)
|
||||
* Update CSS for ChatInviteDialog
|
||||
[\#4226](https://github.com/vector-im/riot-web/pull/4226)
|
||||
* change electron -> electron_app which was previously missed
|
||||
[\#4212](https://github.com/vector-im/riot-web/pull/4212)
|
||||
* New guest access
|
||||
[\#4039](https://github.com/vector-im/riot-web/pull/4039)
|
||||
* Align message timestamp centrally about the avatar mid-point
|
||||
[\#4219](https://github.com/vector-im/riot-web/pull/4219)
|
||||
* Remove '/' from homepage URL
|
||||
[\#4221](https://github.com/vector-im/riot-web/pull/4221)
|
||||
* Chop off 'origin/'
|
||||
[\#4220](https://github.com/vector-im/riot-web/pull/4220)
|
||||
* Update from Weblate.
|
||||
[\#4214](https://github.com/vector-im/riot-web/pull/4214)
|
||||
* adjust alignment of message menu button in compact layout
|
||||
[\#4211](https://github.com/vector-im/riot-web/pull/4211)
|
||||
* Update from Weblate.
|
||||
[\#4207](https://github.com/vector-im/riot-web/pull/4207)
|
||||
* Fix Tests in ILAG
|
||||
[\#4209](https://github.com/vector-im/riot-web/pull/4209)
|
||||
* Update from Weblate.
|
||||
[\#4197](https://github.com/vector-im/riot-web/pull/4197)
|
||||
* Fix tests for new-guest-access
|
||||
[\#4201](https://github.com/vector-im/riot-web/pull/4201)
|
||||
* i18n for SetPasswordDialog
|
||||
[\#4198](https://github.com/vector-im/riot-web/pull/4198)
|
||||
* Update from Weblate.
|
||||
[\#4193](https://github.com/vector-im/riot-web/pull/4193)
|
||||
* to make the windows volume mixer not explode as it can't resize icons.
|
||||
[\#4183](https://github.com/vector-im/riot-web/pull/4183)
|
||||
* provide react devtools in electron dev runs
|
||||
[\#4186](https://github.com/vector-im/riot-web/pull/4186)
|
||||
* Fix DeprecationWarning
|
||||
[\#4184](https://github.com/vector-im/riot-web/pull/4184)
|
||||
* room link should be a matrix.to one
|
||||
[\#4178](https://github.com/vector-im/riot-web/pull/4178)
|
||||
* Update home.html
|
||||
[\#4163](https://github.com/vector-im/riot-web/pull/4163)
|
||||
* Add missing translation for room directory
|
||||
[\#4160](https://github.com/vector-im/riot-web/pull/4160)
|
||||
* i18n welcome
|
||||
[\#4129](https://github.com/vector-im/riot-web/pull/4129)
|
||||
* Tom welcome page
|
||||
[\#4038](https://github.com/vector-im/riot-web/pull/4038)
|
||||
* Fix some tests that expect Directory (they should expect HomePage)
|
||||
[\#4076](https://github.com/vector-im/riot-web/pull/4076)
|
||||
* Add "Login" button to RHS when user is a guest
|
||||
[\#4037](https://github.com/vector-im/riot-web/pull/4037)
|
||||
* Rejig the PaswordNagBar
|
||||
[\#4026](https://github.com/vector-im/riot-web/pull/4026)
|
||||
* Allow team server config to be missing
|
||||
[\#4024](https://github.com/vector-im/riot-web/pull/4024)
|
||||
* Remove GuestWarningBar
|
||||
[\#4020](https://github.com/vector-im/riot-web/pull/4020)
|
||||
* Make left panel better for new users (mk III)
|
||||
[\#4023](https://github.com/vector-im/riot-web/pull/4023)
|
||||
* Implement default welcome page and allow custom URL /w config
|
||||
[\#4015](https://github.com/vector-im/riot-web/pull/4015)
|
||||
* Add warm-fuzzy for successful password entry
|
||||
[\#3989](https://github.com/vector-im/riot-web/pull/3989)
|
||||
* autoFocus new password input in SetPasswordDialog
|
||||
[\#3982](https://github.com/vector-im/riot-web/pull/3982)
|
||||
* Implement dialog to set password
|
||||
[\#3921](https://github.com/vector-im/riot-web/pull/3921)
|
||||
* Replace NeedToRegister with SetMxId dialog
|
||||
[\#3924](https://github.com/vector-im/riot-web/pull/3924)
|
||||
* Add welcomeUserId to sample config
|
||||
[\#3906](https://github.com/vector-im/riot-web/pull/3906)
|
||||
* CSS for mxIdDialog redesign
|
||||
[\#3885](https://github.com/vector-im/riot-web/pull/3885)
|
||||
* Implement PasswordNagBar
|
||||
[\#3817](https://github.com/vector-im/riot-web/pull/3817)
|
||||
* CSS for new SetMxIdDialog
|
||||
[\#3762](https://github.com/vector-im/riot-web/pull/3762)
|
||||
|
||||
Changes in [0.10.2](https://github.com/vector-im/riot-web/releases/tag/v0.10.2) (2017-06-06)
|
||||
============================================================================================
|
||||
[Full Changelog](https://github.com/vector-im/riot-web/compare/v0.10.1...v0.10.2)
|
||||
|
||||
* Hotfix for bugs where navigating straight to a URL like /#/login and
|
||||
and /#/forgot_password
|
||||
|
||||
|
||||
Changes in [0.10.1](https://github.com/vector-im/riot-web/releases/tag/v0.10.1) (2017-06-02)
|
||||
============================================================================================
|
||||
[Full Changelog](https://github.com/vector-im/riot-web/compare/v0.10.0...v0.10.1)
|
||||
|
||||
38
README.md
@@ -22,7 +22,7 @@ released version of Riot:
|
||||
1. Enter the URL into your browser and log into Riot!
|
||||
|
||||
Releases are signed by PGP, and can be checked against the public key
|
||||
at https://riot.im/packages/keys/riot-master.asc
|
||||
at https://riot.im/packages/keys/riot.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
|
||||
@@ -62,7 +62,7 @@ to build.
|
||||
1. If you're using the `develop` branch, install the develop versions of the
|
||||
dependencies, as the released ones will be too old:
|
||||
```
|
||||
scripts/fetch-develop-deps.sh
|
||||
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
|
||||
@@ -81,7 +81,7 @@ to build.
|
||||
npm run build
|
||||
```
|
||||
However, we recommend setting up a proper development environment (see "Setting
|
||||
up a development environment" below) if you want to run your own copy of the
|
||||
up a dev environment" below) if you want to run your own copy of the
|
||||
`develop` branch, as it makes it much easier to keep these dependencies
|
||||
up-to-date. Or just use https://riot.im/develop - the continuous integration
|
||||
release of the develop branch.
|
||||
@@ -134,7 +134,7 @@ Running as a Desktop app
|
||||
|
||||
Riot can also be run as a desktop app, wrapped in electron. You can download a
|
||||
pre-built version from https://riot.im/desktop.html or, if you prefer,
|
||||
built it yourself.
|
||||
build it yourself. Requires Electron >=1.6.0
|
||||
|
||||
To run as a desktop app:
|
||||
|
||||
@@ -253,7 +253,6 @@ Finally, build and start Riot itself:
|
||||
1. `rm -r node_modules/matrix-react-sdk; ln -s ../../matrix-react-sdk node_modules/`
|
||||
1. `npm start`
|
||||
1. Wait a few seconds for the initial build to finish; you should see something like:
|
||||
|
||||
```
|
||||
Hash: b0af76309dd56d7275c8
|
||||
Version: webpack 1.12.14
|
||||
@@ -282,18 +281,33 @@ If any of these steps error with, `file table overflow`, you are probably on a m
|
||||
which has a very low limit on max open files. Run `ulimit -Sn 1024` and try again.
|
||||
You'll need to do this in each new terminal you open before building Riot.
|
||||
|
||||
How to add a new translation?
|
||||
=============================
|
||||
Running the tests
|
||||
-----------------
|
||||
|
||||
[<img src="https://translate.nordgedanken.de/widgets/riot-web/-/multi-auto.svg" alt="translationsstatus" width="340">](https://translate.nordgedanken.de/engage/riot-web/?utm_source=widget)
|
||||
There are a number of application-level tests in the `tests` directory; these
|
||||
are designed to run in a browser instance under the control of
|
||||
[karma](https://karma-runner.github.io). To run them:
|
||||
|
||||
* Make sure you have Chrome installed (a recent version, like 59)
|
||||
* Make sure you have `matrix-js-sdk` and `matrix-react-sdk` installed and
|
||||
built, as above
|
||||
* `npm run test`
|
||||
|
||||
Head to the [translating doc](docs/translating.md)
|
||||
The above will run the tests under Chrome in a `headless` mode.
|
||||
|
||||
Adding Strings to the translations (Developer Guide)
|
||||
====================================================
|
||||
You can also tell karma to run the tests in a loop (every time the source
|
||||
changes), in an instance of Chrome on your desktop, with `npm run
|
||||
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.
|
||||
|
||||
Head to the [translating dev doc](docs/translating-dev.md)
|
||||
Translations
|
||||
============
|
||||
|
||||
To add a new translation, head to the [translating doc](docs/translating.md).
|
||||
|
||||
For a developer guide, see the [translating dev doc](docs/translating-dev.md).
|
||||
|
||||
[<img src="https://translate.riot.im/widgets/riot-web/-/multi-auto.svg" alt="translationsstatus" width="340">](https://translate.riot.im/engage/riot-web/?utm_source=widget)
|
||||
|
||||
Triaging issues
|
||||
===============
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
"matrix.org"
|
||||
]
|
||||
},
|
||||
"welcomeUserId": "@riot-bot:matrix.org",
|
||||
"piwik": {
|
||||
"url": "https://piwik.riot.im/",
|
||||
"siteId": 1
|
||||
|
||||
@@ -8,9 +8,9 @@
|
||||
|
||||
## Adding new strings
|
||||
|
||||
1. Check if the import ``import _t from 'counterpart-riot'`` is present. If not add it to the other import statements.
|
||||
1. Check if the import ``import { _t } from 'matrix-react-sdk/lib/languageHandler';`` is present. If not add it to the other import statements.
|
||||
2. Add ``_t()`` to your string. (Don't forget curly braces when you assign an expression to JSX attributes in the render method)
|
||||
3. Add the String to the ``en_EN.json`` file in ``src/i18n`` or if you are working in matrix-react-sdk you can find the json file in ``src/i18n/strings``
|
||||
3. Add the String to the ``en_EN.json`` file in ``src/i18n/strings`` (respect which repository you are on).
|
||||
|
||||
## Adding variables inside a string.
|
||||
|
||||
|
||||
@@ -8,25 +8,25 @@
|
||||
|
||||
## Step 0: Join #riotweb-translations:matrix.org
|
||||
|
||||
1. Come and join https://riot.im/develop/#/room/#riotweb-translations:matrix.org
|
||||
1. Come and join https://matrix.to/#/#riotweb-translations:matrix.org
|
||||
2. Read scrollback and/or ask if anyone else is working on your language, and co-ordinate if needed. In general little-or-no coordination is needed though :)
|
||||
|
||||
## Step 1: Preparing your Weblate Profile
|
||||
|
||||
1. Head to https://translate.nordgedanken.de and register either via Github or email
|
||||
1. Head to https://translate.riot.im and register either via Github or email
|
||||
2. After registering check if you got an email to verify your account and click the link (if there is none head to step 1.4)
|
||||
3. Log into weblate
|
||||
4. Head to https://translate.nordgedanken.de/accounts/profile/ and select the languages you know and maybe another language you know too.
|
||||
6. Head to https://translate.nordgedanken.de/accounts/profile/#subscriptions and select Riot Web as Project
|
||||
4. Head to https://translate.riot.im/accounts/profile/ and select the languages you know and maybe another language you know too.
|
||||
6. Head to https://translate.riot.im/accounts/profile/#subscriptions and select Riot Web as Project
|
||||
|
||||
## How to check if your language already is being translated
|
||||
|
||||
Go to https://translate.nordgedanken.de/projects/riot-web/ and visit the 2 sub-projects.
|
||||
Go to https://translate.riot.im/projects/riot-web/ and visit the 2 sub-projects.
|
||||
If your language is listed go to Step 2a and if not go to Step 2b
|
||||
|
||||
## Step 2a: Helping on existing languages.
|
||||
|
||||
1. Head to one of the projects listed https://translate.nordgedanken.de/projects/riot-web/
|
||||
1. Head to one of the projects listed https://translate.riot.im/projects/riot-web/
|
||||
2. Click on the ``translate`` button on the right side of your language
|
||||
3. Fill in the translations in the writeable field. You will see the original English string and the string of your second language above.
|
||||
|
||||
@@ -34,7 +34,7 @@ Head to the explanations under Steb 2b
|
||||
|
||||
## Step 2b: Adding a new language
|
||||
|
||||
1. Go to one of the projects listed https://translate.nordgedanken.de/projects/riot-web/
|
||||
1. Go to one of the projects listed https://translate.riot.im/projects/riot-web/
|
||||
2. Click the ``Start new language`` button at the bottom
|
||||
3. Select a language
|
||||
4. Start translating like in 2a.3
|
||||
|
||||
@@ -2,12 +2,13 @@
|
||||
"name": "riot-web",
|
||||
"productName": "Riot",
|
||||
"main": "src/electron-main.js",
|
||||
"version": "0.10.1",
|
||||
"version": "0.12.0-rc.2",
|
||||
"description": "A feature-rich client for Matrix.org",
|
||||
"author": "Vector Creations Ltd.",
|
||||
"dependencies": {
|
||||
"electron-window-state": "^4.1.0",
|
||||
"auto-launch": "^5.0.1",
|
||||
"minimist": "^1.2.0"
|
||||
"electron-window-state": "^4.1.0",
|
||||
"minimist": "^1.2.0",
|
||||
"png-to-ico": "^1.0.2"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
/*
|
||||
Copyright 2016 Aviral Dasgupta
|
||||
Copyright 2016 OpenMarket Ltd
|
||||
Copyright 2017 Michael Telatynski <7t3chguy@gmail.com>
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
@@ -28,6 +29,7 @@ const AutoLaunch = require('auto-launch');
|
||||
const tray = require('./tray');
|
||||
const vectorMenu = require('./vectormenu');
|
||||
const webContentsHandler = require('./webcontents-handler');
|
||||
const updater = require('./updater');
|
||||
|
||||
const windowStateKeeper = require('electron-window-state');
|
||||
|
||||
@@ -45,69 +47,9 @@ try {
|
||||
// Continue with the defaults (ie. an empty config)
|
||||
}
|
||||
|
||||
const UPDATE_POLL_INTERVAL_MS = 60 * 60 * 1000;
|
||||
const INITIAL_UPDATE_DELAY_MS = 30 * 1000;
|
||||
|
||||
let mainWindow = null;
|
||||
let appQuitting = false;
|
||||
global.appQuitting = false;
|
||||
|
||||
function installUpdate() {
|
||||
// for some reason, quitAndInstall does not fire the
|
||||
// before-quit event, so we need to set the flag here.
|
||||
appQuitting = true;
|
||||
electron.autoUpdater.quitAndInstall();
|
||||
}
|
||||
|
||||
function pollForUpdates() {
|
||||
try {
|
||||
electron.autoUpdater.checkForUpdates();
|
||||
} catch (e) {
|
||||
console.log('Couldn\'t check for update', e);
|
||||
}
|
||||
}
|
||||
|
||||
function startAutoUpdate(updateBaseUrl) {
|
||||
if (updateBaseUrl.slice(-1) !== '/') {
|
||||
updateBaseUrl = updateBaseUrl + '/';
|
||||
}
|
||||
try {
|
||||
// For reasons best known to Squirrel, the way it checks for updates
|
||||
// is completely different between macOS and windows. On macOS, it
|
||||
// hits a URL that either gives it a 200 with some json or
|
||||
// 204 No Content. On windows it takes a base path and looks for
|
||||
// files under that path.
|
||||
if (process.platform === 'darwin') {
|
||||
// include the current version in the URL we hit. Electron doesn't add
|
||||
// it anywhere (apart from the User-Agent) so it's up to us. We could
|
||||
// (and previously did) just use the User-Agent, but this doesn't
|
||||
// rely on NSURLConnection setting the User-Agent to what we expect,
|
||||
// and also acts as a convenient cache-buster to ensure that when the
|
||||
// app updates it always gets a fresh value to avoid update-looping.
|
||||
electron.autoUpdater.setFeedURL(
|
||||
`${updateBaseUrl}macos/?localVersion=${encodeURIComponent(electron.app.getVersion())}`);
|
||||
|
||||
} else if (process.platform === 'win32') {
|
||||
electron.autoUpdater.setFeedURL(`${updateBaseUrl}win32/${process.arch}/`);
|
||||
} else {
|
||||
// Squirrel / electron only supports auto-update on these two platforms.
|
||||
// I'm not even going to try to guess which feed style they'd use if they
|
||||
// implemented it on Linux, or if it would be different again.
|
||||
console.log('Auto update not supported on this platform');
|
||||
}
|
||||
// We check for updates ourselves rather than using 'updater' because we need to
|
||||
// do it in the main process (and we don't really need to check every 10 minutes:
|
||||
// every hour should be just fine for a desktop app)
|
||||
// However, we still let the main window listen for the update events.
|
||||
// We also wait a short time before checking for updates the first time because
|
||||
// of squirrel on windows and it taking a small amount of time to release a
|
||||
// lock file.
|
||||
setTimeout(pollForUpdates, INITIAL_UPDATE_DELAY_MS);
|
||||
setInterval(pollForUpdates, UPDATE_POLL_INTERVAL_MS);
|
||||
} catch (err) {
|
||||
// will fail if running in debug mode
|
||||
console.log('Couldn\'t enable update checking', err);
|
||||
}
|
||||
}
|
||||
|
||||
// handle uncaught errors otherwise it displays
|
||||
// stack traces in popup dialogs, which is terrible (which
|
||||
@@ -119,8 +61,6 @@ process.on('uncaughtException', function(error) {
|
||||
console.log('Unhandled exception', error);
|
||||
});
|
||||
|
||||
electron.ipcMain.on('install_update', installUpdate);
|
||||
|
||||
let focusHandlerAttached = false;
|
||||
electron.ipcMain.on('setBadgeCount', function(ev, count) {
|
||||
electron.app.setBadgeCount(count);
|
||||
@@ -216,9 +156,23 @@ electron.ipcMain.on('settings_set', function(ev, key, value) {
|
||||
});
|
||||
|
||||
electron.app.on('ready', () => {
|
||||
|
||||
if (argv.devtools) {
|
||||
try {
|
||||
const { default: installExtension, REACT_DEVELOPER_TOOLS, REACT_PERF } = require('electron-devtools-installer');
|
||||
installExtension(REACT_DEVELOPER_TOOLS)
|
||||
.then((name) => console.log(`Added Extension: ${name}`))
|
||||
.catch((err) => console.log('An error occurred: ', err));
|
||||
installExtension(REACT_PERF)
|
||||
.then((name) => console.log(`Added Extension: ${name}`))
|
||||
.catch((err) => console.log('An error occurred: ', err));
|
||||
} catch(e) {console.log(e);}
|
||||
}
|
||||
|
||||
|
||||
if (vectorConfig.update_base_url) {
|
||||
console.log(`Starting auto update with base URL: ${vectorConfig.update_base_url}`);
|
||||
startAutoUpdate(vectorConfig.update_base_url);
|
||||
updater.start(vectorConfig.update_base_url);
|
||||
} else {
|
||||
console.log('No update_base_url is defined: auto update is disabled');
|
||||
}
|
||||
@@ -231,7 +185,7 @@ electron.app.on('ready', () => {
|
||||
defaultHeight: 768,
|
||||
});
|
||||
|
||||
mainWindow = new electron.BrowserWindow({
|
||||
mainWindow = global.mainWindow = new electron.BrowserWindow({
|
||||
icon: iconPath,
|
||||
show: false,
|
||||
autoHideMenuBar: true,
|
||||
@@ -249,7 +203,7 @@ electron.app.on('ready', () => {
|
||||
mainWindow.hide();
|
||||
|
||||
// Create trayIcon icon
|
||||
tray.create(mainWindow, {
|
||||
tray.create({
|
||||
icon_path: iconPath,
|
||||
brand: vectorConfig.brand || 'Riot',
|
||||
});
|
||||
@@ -261,10 +215,10 @@ electron.app.on('ready', () => {
|
||||
}
|
||||
|
||||
mainWindow.on('closed', () => {
|
||||
mainWindow = null;
|
||||
mainWindow = global.mainWindow = null;
|
||||
});
|
||||
mainWindow.on('close', (e) => {
|
||||
if (!appQuitting && (tray.hasTray() || process.platform === 'darwin')) {
|
||||
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)
|
||||
@@ -274,6 +228,17 @@ electron.app.on('ready', () => {
|
||||
}
|
||||
});
|
||||
|
||||
if (process.platform === 'win32') {
|
||||
// Handle forward/backward mouse buttons in Windows
|
||||
mainWindow.on('app-command', (e, cmd) => {
|
||||
if (cmd === 'browser-backward' && mainWindow.webContents.canGoBack()) {
|
||||
mainWindow.webContents.goBack();
|
||||
} else if (cmd === 'browser-forward' && mainWindow.webContents.canGoForward()) {
|
||||
mainWindow.webContents.goForward();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
webContentsHandler(mainWindow.webContents);
|
||||
mainWindowState.manage(mainWindow);
|
||||
});
|
||||
@@ -287,7 +252,10 @@ electron.app.on('activate', () => {
|
||||
});
|
||||
|
||||
electron.app.on('before-quit', () => {
|
||||
appQuitting = true;
|
||||
global.appQuitting = true;
|
||||
if (mainWindow) {
|
||||
mainWindow.webContents.send('before-quit');
|
||||
}
|
||||
});
|
||||
|
||||
// Set the App User Model ID to match what the squirrel
|
||||
|
||||
@@ -16,6 +16,9 @@ limitations under the License.
|
||||
*/
|
||||
|
||||
const {app, Tray, Menu, nativeImage} = require('electron');
|
||||
const pngToIco = require('png-to-ico');
|
||||
const path = require('path');
|
||||
const fs = require('fs');
|
||||
|
||||
let trayIcon = null;
|
||||
|
||||
@@ -23,17 +26,17 @@ exports.hasTray = function hasTray() {
|
||||
return (trayIcon !== null);
|
||||
};
|
||||
|
||||
exports.create = function(win, config) {
|
||||
exports.create = function(config) {
|
||||
// no trays on darwin
|
||||
if (process.platform === 'darwin' || trayIcon) return;
|
||||
|
||||
const toggleWin = function() {
|
||||
if (win.isVisible() && !win.isMinimized()) {
|
||||
win.hide();
|
||||
if (global.mainWindow.isVisible() && !global.mainWindow.isMinimized()) {
|
||||
global.mainWindow.hide();
|
||||
} else {
|
||||
if (win.isMinimized()) win.restore();
|
||||
if (!win.isVisible()) win.show();
|
||||
win.focus();
|
||||
if (global.mainWindow.isMinimized()) global.mainWindow.restore();
|
||||
if (!global.mainWindow.isVisible()) global.mainWindow.show();
|
||||
global.mainWindow.focus();
|
||||
}
|
||||
};
|
||||
|
||||
@@ -51,32 +54,46 @@ exports.create = function(win, config) {
|
||||
},
|
||||
]);
|
||||
|
||||
trayIcon = new Tray(config.icon_path);
|
||||
const defaultIcon = nativeImage.createFromPath(config.icon_path);
|
||||
|
||||
trayIcon = new Tray(defaultIcon);
|
||||
trayIcon.setToolTip(config.brand);
|
||||
trayIcon.setContextMenu(contextMenu);
|
||||
trayIcon.on('click', toggleWin);
|
||||
|
||||
let lastFavicon = null;
|
||||
win.webContents.on('page-favicon-updated', function(ev, favicons) {
|
||||
let newFavicon = config.icon_path;
|
||||
if (favicons && favicons.length > 0 && favicons[0].startsWith('data:')) {
|
||||
newFavicon = favicons[0];
|
||||
global.mainWindow.webContents.on('page-favicon-updated', async function(ev, favicons) {
|
||||
if (!favicons || favicons.length <= 0 || !favicons[0].startsWith('data:')) {
|
||||
if (lastFavicon !== null) {
|
||||
win.setIcon(defaultIcon);
|
||||
trayIcon.setImage(defaultIcon);
|
||||
lastFavicon = null;
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
// No need to change, shortcut
|
||||
if (newFavicon === lastFavicon) return;
|
||||
lastFavicon = newFavicon;
|
||||
if (favicons[0] === lastFavicon) return;
|
||||
lastFavicon = favicons[0];
|
||||
|
||||
// if its not default we have to construct into nativeImage
|
||||
if (newFavicon !== config.icon_path) {
|
||||
newFavicon = nativeImage.createFromDataURL(favicons[0]);
|
||||
let newFavicon = nativeImage.createFromDataURL(favicons[0]);
|
||||
|
||||
// Windows likes ico's too much.
|
||||
if (process.platform === 'win32') {
|
||||
try {
|
||||
const icoPath = path.join(app.getPath('temp'), 'win32_riot_icon.ico');
|
||||
fs.writeFileSync(icoPath, await pngToIco(newFavicon.toPNG()));
|
||||
newFavicon = nativeImage.createFromPath(icoPath);
|
||||
} catch (e) {
|
||||
console.error("Failed to make win32 ico", e);
|
||||
}
|
||||
}
|
||||
|
||||
trayIcon.setImage(newFavicon);
|
||||
win.setIcon(newFavicon);
|
||||
global.mainWindow.setIcon(newFavicon);
|
||||
});
|
||||
|
||||
win.webContents.on('page-title-updated', function(ev, title) {
|
||||
global.mainWindow.webContents.on('page-title-updated', function(ev, title) {
|
||||
trayIcon.setToolTip(title);
|
||||
});
|
||||
};
|
||||
|
||||
84
electron_app/src/updater.js
Normal file
@@ -0,0 +1,84 @@
|
||||
const { app, autoUpdater, ipcMain } = require('electron');
|
||||
|
||||
const UPDATE_POLL_INTERVAL_MS = 60 * 60 * 1000;
|
||||
const INITIAL_UPDATE_DELAY_MS = 30 * 1000;
|
||||
|
||||
function installUpdate() {
|
||||
// for some reason, quitAndInstall does not fire the
|
||||
// before-quit event, so we need to set the flag here.
|
||||
global.appQuitting = true;
|
||||
autoUpdater.quitAndInstall();
|
||||
}
|
||||
|
||||
function pollForUpdates() {
|
||||
try {
|
||||
autoUpdater.checkForUpdates();
|
||||
} catch (e) {
|
||||
console.log('Couldn\'t check for update', e);
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = {};
|
||||
module.exports.start = function startAutoUpdate(updateBaseUrl) {
|
||||
if (updateBaseUrl.slice(-1) !== '/') {
|
||||
updateBaseUrl = updateBaseUrl + '/';
|
||||
}
|
||||
try {
|
||||
let url;
|
||||
// For reasons best known to Squirrel, the way it checks for updates
|
||||
// is completely different between macOS and windows. On macOS, it
|
||||
// hits a URL that either gives it a 200 with some json or
|
||||
// 204 No Content. On windows it takes a base path and looks for
|
||||
// files under that path.
|
||||
if (process.platform === 'darwin') {
|
||||
// include the current version in the URL we hit. Electron doesn't add
|
||||
// it anywhere (apart from the User-Agent) so it's up to us. We could
|
||||
// (and previously did) just use the User-Agent, but this doesn't
|
||||
// rely on NSURLConnection setting the User-Agent to what we expect,
|
||||
// and also acts as a convenient cache-buster to ensure that when the
|
||||
// app updates it always gets a fresh value to avoid update-looping.
|
||||
url = `${updateBaseUrl}macos/?localVersion=${encodeURIComponent(app.getVersion())}`;
|
||||
|
||||
} else if (process.platform === 'win32') {
|
||||
url = `${updateBaseUrl}win32/${process.arch}/`;
|
||||
} else {
|
||||
// Squirrel / electron only supports auto-update on these two platforms.
|
||||
// I'm not even going to try to guess which feed style they'd use if they
|
||||
// implemented it on Linux, or if it would be different again.
|
||||
console.log('Auto update not supported on this platform');
|
||||
}
|
||||
|
||||
if (url) {
|
||||
autoUpdater.setFeedURL(url);
|
||||
// We check for updates ourselves rather than using 'updater' because we need to
|
||||
// do it in the main process (and we don't really need to check every 10 minutes:
|
||||
// every hour should be just fine for a desktop app)
|
||||
// However, we still let the main window listen for the update events.
|
||||
// We also wait a short time before checking for updates the first time because
|
||||
// of squirrel on windows and it taking a small amount of time to release a
|
||||
// lock file.
|
||||
setTimeout(pollForUpdates, INITIAL_UPDATE_DELAY_MS);
|
||||
setInterval(pollForUpdates, UPDATE_POLL_INTERVAL_MS);
|
||||
}
|
||||
} catch (err) {
|
||||
// will fail if running in debug mode
|
||||
console.log('Couldn\'t enable update checking', err);
|
||||
}
|
||||
}
|
||||
|
||||
ipcMain.on('install_update', installUpdate);
|
||||
ipcMain.on('check_updates', pollForUpdates);
|
||||
|
||||
function ipcChannelSendUpdateStatus(status) {
|
||||
if (global.mainWindow) {
|
||||
global.mainWindow.webContents.send('check_updates', status);
|
||||
}
|
||||
}
|
||||
|
||||
autoUpdater.on('update-available', function() {
|
||||
ipcChannelSendUpdateStatus(true);
|
||||
}).on('update-not-available', function() {
|
||||
ipcChannelSendUpdateStatus(false);
|
||||
}).on('error', function(error) {
|
||||
ipcChannelSendUpdateStatus(error.message);
|
||||
});
|
||||
@@ -84,13 +84,23 @@ module.exports = function (config) {
|
||||
// available preprocessors:
|
||||
// https://npmjs.org/browse/keyword/karma-preprocessor
|
||||
preprocessors: {
|
||||
'{src,test}/**/*.js': ['webpack'],
|
||||
'{src,test}/**/*.js': ['webpack', 'sourcemap'],
|
||||
},
|
||||
|
||||
// test results reporter to use
|
||||
// possible values: 'dots', 'progress'
|
||||
// available reporters: https://npmjs.org/browse/keyword/karma-reporter
|
||||
reporters: ['progress', 'junit'],
|
||||
reporters: ['logcapture', 'spec', 'junit', 'summary'],
|
||||
|
||||
specReporter: {
|
||||
suppressErrorSummary: false, // do print error summary
|
||||
suppressFailed: false, // do print information about failed tests
|
||||
suppressPassed: false, // do print information about passed tests
|
||||
showSpecTiming: true, // print the time elapsed for each spec
|
||||
},
|
||||
|
||||
client: {
|
||||
captureLogs: true,
|
||||
},
|
||||
|
||||
// web server port
|
||||
port: 9876,
|
||||
@@ -113,8 +123,23 @@ module.exports = function (config) {
|
||||
browsers: [
|
||||
'Chrome',
|
||||
//'PhantomJS',
|
||||
//'ChromeHeadless'
|
||||
],
|
||||
|
||||
customLaunchers: {
|
||||
'ChromeHeadless': {
|
||||
base: 'Chrome',
|
||||
flags: [
|
||||
// '--no-sandbox',
|
||||
// See https://chromium.googlesource.com/chromium/src/+/lkgr/headless/README.md
|
||||
'--headless',
|
||||
'--disable-gpu',
|
||||
// Without a remote debugging port, Google Chrome exits immediately.
|
||||
'--remote-debugging-port=9222',
|
||||
],
|
||||
}
|
||||
},
|
||||
|
||||
// Continuous Integration mode
|
||||
// if true, Karma captures browsers, runs the tests and exits
|
||||
// singleRun: false,
|
||||
|
||||
45
package.json
@@ -2,7 +2,7 @@
|
||||
"name": "riot-web",
|
||||
"productName": "Riot",
|
||||
"main": "electron_app/src/electron-main.js",
|
||||
"version": "0.10.1",
|
||||
"version": "0.12.0-rc.2",
|
||||
"description": "A feature-rich client for Matrix.org",
|
||||
"author": "Vector Creations Ltd.",
|
||||
"repository": {
|
||||
@@ -31,8 +31,8 @@
|
||||
"build:res": "node scripts/copy-res.js",
|
||||
"build:modernizr": "modernizr -c .modernizr.json -d src/vector/modernizr.js",
|
||||
"build:compile": "npm run reskindex && babel --source-maps -d lib src",
|
||||
"build:bundle": "cross-env NODE_ENV=production webpack -p --progress",
|
||||
"build:bundle:dev": "webpack --optimize-occurence-order --progress",
|
||||
"build:bundle": "cross-env NODE_ENV=production webpack -p --progress --bail",
|
||||
"build:bundle:dev": "webpack --optimize-occurence-order --progress --bail",
|
||||
"build:electron": "npm run clean && npm run build && npm run install:electron && build -wml --ia32 --x64",
|
||||
"build": "npm run reskindex && npm run build:res && npm run build:bundle",
|
||||
"build:dev": "npm run reskindex && npm run build:res && npm run build:bundle:dev",
|
||||
@@ -46,38 +46,40 @@
|
||||
"start:prod": "parallelshell \"npm run reskindex:watch\" \"npm run start:res\" \"npm run start:js:prod\"",
|
||||
"lint": "eslint src/",
|
||||
"lintall": "eslint src/ test/",
|
||||
"clean": "rimraf lib webapp electron/dist",
|
||||
"clean": "rimraf lib webapp electron_app/dist",
|
||||
"prepublish": "npm run build:compile",
|
||||
"test": "karma start --single-run=true --autoWatch=false --browsers PhantomJS --colors=false",
|
||||
"test": "karma start --single-run=true --autoWatch=false --browsers ChromeHeadless",
|
||||
"test-multi": "karma start"
|
||||
},
|
||||
"dependencies": {
|
||||
"babel-polyfill": "^6.5.0",
|
||||
"babel-runtime": "^6.11.6",
|
||||
"bluebird": "^3.5.0",
|
||||
"browser-request": "^0.3.3",
|
||||
"classnames": "^2.1.2",
|
||||
"draft-js": "^0.8.1",
|
||||
"draft-js": "^0.11.0-alpha",
|
||||
"extract-text-webpack-plugin": "^0.9.1",
|
||||
"favico.js": "^0.3.10",
|
||||
"filesize": "3.5.6",
|
||||
"flux": "~2.0.3",
|
||||
"flux": "2.1.1",
|
||||
"gemini-scrollbar": "matrix-org/gemini-scrollbar#b302279",
|
||||
"gfm.css": "^1.1.1",
|
||||
"highlight.js": "^9.0.0",
|
||||
"linkifyjs": "^2.1.3",
|
||||
"matrix-js-sdk": "0.7.10",
|
||||
"matrix-react-sdk": "0.9.1",
|
||||
"matrix-js-sdk": "0.8.0",
|
||||
"matrix-react-sdk": "0.10.0-rc.2",
|
||||
"modernizr": "^3.1.0",
|
||||
"pako": "^1.0.5",
|
||||
"q": "^1.4.1",
|
||||
"react": "^15.4.0",
|
||||
"react": "^15.6.0",
|
||||
"react-dnd": "^2.1.4",
|
||||
"react-dnd-html5-backend": "^2.1.2",
|
||||
"react-dom": "^15.4.0",
|
||||
"react-dom": "^15.6.0",
|
||||
"react-gemini-scrollbar": "matrix-org/react-gemini-scrollbar#5e97aef",
|
||||
"sanitize-html": "^1.11.1",
|
||||
"text-encoding-utf-8": "^1.0.1",
|
||||
"ua-parser-js": "^0.7.10",
|
||||
"url": "^0.11.0"
|
||||
"url": "^0.11.0",
|
||||
"velocity-vector": "vector-im/velocity#059e3b2"
|
||||
},
|
||||
"devDependencies": {
|
||||
"autoprefixer": "^6.6.0",
|
||||
@@ -86,7 +88,7 @@
|
||||
"babel-eslint": "^6.1.0",
|
||||
"babel-loader": "^6.2.5",
|
||||
"babel-plugin-add-module-exports": "^0.2.1",
|
||||
"babel-plugin-transform-async-to-generator": "^6.16.0",
|
||||
"babel-plugin-transform-async-to-bluebird": "^1.1.1",
|
||||
"babel-plugin-transform-class-properties": "^6.16.0",
|
||||
"babel-plugin-transform-object-rest-spread": "^6.16.0",
|
||||
"babel-plugin-transform-runtime": "^6.15.0",
|
||||
@@ -101,6 +103,7 @@
|
||||
"css-raw-loader": "^0.1.1",
|
||||
"electron-builder": "^11.2.4",
|
||||
"electron-builder-squirrel-windows": "^11.2.1",
|
||||
"electron-devtools-installer": "^2.2.0",
|
||||
"emojione": "^2.2.7",
|
||||
"eslint": "^3.14.0",
|
||||
"eslint-config-google": "^0.7.1",
|
||||
@@ -111,18 +114,22 @@
|
||||
"fs-extra": "^0.30.0",
|
||||
"html-webpack-plugin": "^2.24.0",
|
||||
"json-loader": "^0.5.3",
|
||||
"karma": "^0.13.22",
|
||||
"karma": "^1.7.0",
|
||||
"karma-chrome-launcher": "^0.2.3",
|
||||
"karma-cli": "^0.1.2",
|
||||
"karma-junit-reporter": "^0.4.1",
|
||||
"karma-logcapture-reporter": "0.0.1",
|
||||
"karma-mocha": "^0.2.2",
|
||||
"karma-phantomjs-launcher": "^1.0.0",
|
||||
"karma-sourcemap-loader": "^0.3.7",
|
||||
"karma-spec-reporter": "0.0.31",
|
||||
"karma-summary-reporter": "^1.3.3",
|
||||
"karma-webpack": "^1.7.0",
|
||||
"matrix-mock-request": "^1.2.0",
|
||||
"matrix-react-test-utils": "^0.2.0",
|
||||
"minimist": "^1.2.0",
|
||||
"mkdirp": "^0.5.1",
|
||||
"mocha": "^2.4.5",
|
||||
"parallelshell": "^1.2.0",
|
||||
"phantomjs-prebuilt": "^2.1.7",
|
||||
"postcss-extend": "^1.0.5",
|
||||
"postcss-import": "^9.0.0",
|
||||
"postcss-loader": "^1.2.2",
|
||||
@@ -132,7 +139,7 @@
|
||||
"postcss-simple-vars": "^3.0.0",
|
||||
"postcss-strip-inline-comments": "^0.1.5",
|
||||
"react-addons-perf": "^15.4.0",
|
||||
"react-addons-test-utils": "^15.4.0",
|
||||
"react-addons-test-utils": "^15.6.0",
|
||||
"rimraf": "^2.4.3",
|
||||
"source-map-loader": "^0.1.5",
|
||||
"webpack": "^1.12.14",
|
||||
@@ -162,7 +169,7 @@
|
||||
"category": "Network;InstantMessaging;Chat",
|
||||
"maintainer": "support@riot.im",
|
||||
"desktop": {
|
||||
"StartupWMClass": "riot-web"
|
||||
"StartupWMClass": "riot"
|
||||
}
|
||||
},
|
||||
"win": {
|
||||
|
||||
@@ -11,7 +11,7 @@ cd `dirname $0`
|
||||
|
||||
for i in matrix-js-sdk matrix-react-sdk
|
||||
do
|
||||
depver=`cat package.json | jq -r .dependencies.\"$i\"`
|
||||
depver=`cat package.json | jq -r .dependencies[\"$i\"]`
|
||||
latestver=`npm show $i version`
|
||||
if [ "$depver" != "$latestver" ]
|
||||
then
|
||||
|
||||
BIN
res/flags/AD.png
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 2.5 KiB |
BIN
res/flags/AE.png
|
Before Width: | Height: | Size: 841 B After Width: | Height: | Size: 1015 B |
BIN
res/flags/AF.png
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 2.5 KiB |
BIN
res/flags/AG.png
|
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 4.1 KiB |
BIN
res/flags/AI.png
|
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 4.7 KiB |
BIN
res/flags/AL.png
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 3.0 KiB |
BIN
res/flags/AM.png
|
Before Width: | Height: | Size: 744 B After Width: | Height: | Size: 654 B |
BIN
res/flags/AO.png
|
Before Width: | Height: | Size: 1.0 KiB After Width: | Height: | Size: 2.4 KiB |
BIN
res/flags/AQ.png
|
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 3.8 KiB |
BIN
res/flags/AR.png
|
Before Width: | Height: | Size: 955 B After Width: | Height: | Size: 1.6 KiB |
BIN
res/flags/AS.png
|
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 3.9 KiB |
BIN
res/flags/AT.png
|
Before Width: | Height: | Size: 701 B After Width: | Height: | Size: 655 B |
BIN
res/flags/AU.png
|
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 5.1 KiB |
BIN
res/flags/AW.png
|
Before Width: | Height: | Size: 938 B After Width: | Height: | Size: 1.6 KiB |
BIN
res/flags/AX.png
|
Before Width: | Height: | Size: 900 B After Width: | Height: | Size: 1.8 KiB |
BIN
res/flags/AZ.png
|
Before Width: | Height: | Size: 978 B After Width: | Height: | Size: 1.7 KiB |
BIN
res/flags/BA.png
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 3.0 KiB |
BIN
res/flags/BB.png
|
Before Width: | Height: | Size: 1.0 KiB After Width: | Height: | Size: 2.0 KiB |
BIN
res/flags/BD.png
|
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 2.8 KiB |
BIN
res/flags/BE.png
|
Before Width: | Height: | Size: 689 B After Width: | Height: | Size: 558 B |
BIN
res/flags/BF.png
|
Before Width: | Height: | Size: 954 B After Width: | Height: | Size: 1.6 KiB |
BIN
res/flags/BG.png
|
Before Width: | Height: | Size: 737 B After Width: | Height: | Size: 659 B |
BIN
res/flags/BH.png
|
Before Width: | Height: | Size: 842 B After Width: | Height: | Size: 1.3 KiB |
BIN
res/flags/BI.png
|
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 5.5 KiB |
BIN
res/flags/BJ.png
|
Before Width: | Height: | Size: 777 B After Width: | Height: | Size: 811 B |
BIN
res/flags/BL.png
|
Before Width: | Height: | Size: 692 B After Width: | Height: | Size: 566 B |
BIN
res/flags/BM.png
|
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 5.2 KiB |
BIN
res/flags/BN.png
|
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 5.2 KiB |
BIN
res/flags/BO.png
|
Before Width: | Height: | Size: 733 B After Width: | Height: | Size: 668 B |
BIN
res/flags/BQ.png
|
Before Width: | Height: | Size: 726 B After Width: | Height: | Size: 672 B |
BIN
res/flags/BR.png
|
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 4.7 KiB |
BIN
res/flags/BS.png
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 2.2 KiB |
BIN
res/flags/BT.png
|
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 4.8 KiB |
BIN
res/flags/BV.png
|
Before Width: | Height: | Size: 866 B After Width: | Height: | Size: 1.7 KiB |
BIN
res/flags/BW.png
|
Before Width: | Height: | Size: 697 B After Width: | Height: | Size: 669 B |
BIN
res/flags/BY.png
|
Before Width: | Height: | Size: 950 B After Width: | Height: | Size: 2.0 KiB |
BIN
res/flags/BZ.png
|
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 5.2 KiB |
BIN
res/flags/CA.png
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 2.2 KiB |
BIN
res/flags/CC.png
|
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 3.6 KiB |
BIN
res/flags/CD.png
|
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 3.6 KiB |
BIN
res/flags/CF.png
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 2.6 KiB |
BIN
res/flags/CG.png
|
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 1.3 KiB |
BIN
res/flags/CH.png
|
Before Width: | Height: | Size: 800 B After Width: | Height: | Size: 1.5 KiB |
BIN
res/flags/CI.png
|
Before Width: | Height: | Size: 692 B After Width: | Height: | Size: 568 B |
BIN
res/flags/CK.png
|
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 5.9 KiB |
BIN
res/flags/CL.png
|
Before Width: | Height: | Size: 964 B After Width: | Height: | Size: 1.6 KiB |
BIN
res/flags/CM.png
|
Before Width: | Height: | Size: 908 B After Width: | Height: | Size: 1.4 KiB |
BIN
res/flags/CN.png
|
Before Width: | Height: | Size: 1.0 KiB After Width: | Height: | Size: 2.2 KiB |
BIN
res/flags/CO.png
|
Before Width: | Height: | Size: 726 B After Width: | Height: | Size: 668 B |
BIN
res/flags/CR.png
|
Before Width: | Height: | Size: 734 B After Width: | Height: | Size: 785 B |
BIN
res/flags/CU.png
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 3.0 KiB |
BIN
res/flags/CV.png
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 2.6 KiB |
BIN
res/flags/CW.png
|
Before Width: | Height: | Size: 970 B After Width: | Height: | Size: 1.7 KiB |
BIN
res/flags/CX.png
|
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 5.0 KiB |
BIN
res/flags/CY.png
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 3.5 KiB |
BIN
res/flags/CZ.png
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.7 KiB |
BIN
res/flags/DE.png
|
Before Width: | Height: | Size: 734 B After Width: | Height: | Size: 568 B |
BIN
res/flags/DJ.png
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 3.5 KiB |
BIN
res/flags/DK.png
|
Before Width: | Height: | Size: 797 B After Width: | Height: | Size: 1.2 KiB |
BIN
res/flags/DM.png
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 2.6 KiB |
BIN
res/flags/DO.png
|
Before Width: | Height: | Size: 946 B After Width: | Height: | Size: 1.6 KiB |
BIN
res/flags/DZ.png
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 2.4 KiB |
BIN
res/flags/EC.png
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 2.8 KiB |
BIN
res/flags/EE.png
|
Before Width: | Height: | Size: 723 B After Width: | Height: | Size: 641 B |
BIN
res/flags/EG.png
|
Before Width: | Height: | Size: 914 B After Width: | Height: | Size: 1.6 KiB |
BIN
res/flags/EH.png
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 2.6 KiB |
BIN
res/flags/ER.png
|
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 4.0 KiB |
BIN
res/flags/ES.png
|
Before Width: | Height: | Size: 1.0 KiB After Width: | Height: | Size: 2.1 KiB |
BIN
res/flags/ET.png
|
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 3.4 KiB |
BIN
res/flags/FI.png
|
Before Width: | Height: | Size: 841 B After Width: | Height: | Size: 1.5 KiB |
BIN
res/flags/FJ.png
|
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 4.9 KiB |
BIN
res/flags/FK.png
|
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 5.1 KiB |
BIN
res/flags/FM.png
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 2.4 KiB |
BIN
res/flags/FO.png
|
Before Width: | Height: | Size: 834 B After Width: | Height: | Size: 1.7 KiB |
BIN
res/flags/FR.png
|
Before Width: | Height: | Size: 692 B After Width: | Height: | Size: 566 B |
BIN
res/flags/GA.png
|
Before Width: | Height: | Size: 753 B After Width: | Height: | Size: 661 B |
BIN
res/flags/GB.png
|
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 6.2 KiB |
BIN
res/flags/GD.png
|
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 5.6 KiB |
BIN
res/flags/GE.png
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 2.5 KiB |
BIN
res/flags/GF.png
|
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 2.3 KiB |
BIN
res/flags/GG.png
|
Before Width: | Height: | Size: 1001 B After Width: | Height: | Size: 2.7 KiB |
BIN
res/flags/GH.png
|
Before Width: | Height: | Size: 1010 B After Width: | Height: | Size: 1.8 KiB |
BIN
res/flags/GI.png
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 2.7 KiB |
BIN
res/flags/GL.png
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 3.0 KiB |
BIN
res/flags/GM.png
|
Before Width: | Height: | Size: 743 B After Width: | Height: | Size: 709 B |