Compare commits
548 Commits
Author | SHA1 | Date |
---|---|---|
|
eaa33fc8f3 | 3 years ago |
|
0669dafde5 | 3 years ago |
|
78acfeed42 | 3 years ago |
|
f9e9a547bd | 3 years ago |
|
02aa8ce840 | 3 years ago |
|
6c31dcce1d | 3 years ago |
|
7f3ecf5e1e | 3 years ago |
|
287ee85067 | 3 years ago |
|
b7a5b39b1f | 3 years ago |
|
6fcd982b46 | 3 years ago |
|
5c4ee8d06a | 3 years ago |
|
cb654525e0 | 3 years ago |
|
1eebe2445f | 4 years ago |
|
4a79697487 | 4 years ago |
|
84a8f20bbc | 4 years ago |
|
04413c81eb | 4 years ago |
|
1605ec5ebd | 4 years ago |
|
6f4f33d53d | 4 years ago |
|
f3fc3c7cf0 | 4 years ago |
|
89d0560ed3 | 4 years ago |
|
cc39ed6980 | 4 years ago |
|
58f53323f3 | 4 years ago |
|
82a44e93fc | 4 years ago |
|
c91ef575e3 | 4 years ago |
|
5e94ebf0e9 | 4 years ago |
|
c26845662c | 4 years ago |
|
008efd5f08 | 4 years ago |
|
4f0c6e9bc1 | 4 years ago |
|
e18ff5e003 | 4 years ago |
|
611235aee6 | 5 years ago |
|
a8e5a42e51 | 5 years ago |
|
2037dbafe5 | 5 years ago |
|
5eed7f02fd | 5 years ago |
|
58b5975912 | 5 years ago |
|
f8610047eb | 5 years ago |
|
072997e59c | 5 years ago |
|
4127e0a707 | 5 years ago |
|
e14cfdff86 | 5 years ago |
|
82f70c0c89 | 5 years ago |
|
120512e386 | 5 years ago |
|
dcaa45e86f | 5 years ago |
|
95d04aa76e | 5 years ago |
|
025a8fab68 | 5 years ago |
|
18ae907bd0 | 5 years ago |
|
155a7fd2a2 | 5 years ago |
|
6e1220fbae | 5 years ago |
|
c0293be615 | 5 years ago |
|
03e0c3be2d | 5 years ago |
|
429721393e | 5 years ago |
|
813c0d4628 | 5 years ago |
|
3048d9d28c | 5 years ago |
|
eb88f5d8fc | 5 years ago |
|
d4b89a48ac | 5 years ago |
|
02c0c549ce | 5 years ago |
|
ef2a2a9f15 | 5 years ago |
|
9a5e686bb0 | 5 years ago |
|
01265fdbae | 5 years ago |
|
02c8bacb2a | 5 years ago |
|
c00109417f | 5 years ago |
|
e01453b6a0 | 5 years ago |
|
d748323142 | 5 years ago |
|
7261dd10c6 | 5 years ago |
|
10f577549a | 5 years ago |
|
bec9bae9b9 | 5 years ago |
|
151caa037d | 5 years ago |
|
2185f32dd8 | 5 years ago |
|
168eacb2fe | 5 years ago |
|
9166c49aae | 5 years ago |
|
3326447d0f | 5 years ago |
|
313b29cd00 | 5 years ago |
|
7a3e4b1e6a | 5 years ago |
|
2ae71facd5 | 5 years ago |
|
4dd81ccf74 | 5 years ago |
|
3937f43ffe | 5 years ago |
|
fb1ab0dae5 | 5 years ago |
|
66f16e465d | 5 years ago |
|
7d63ba374e | 5 years ago |
|
e4f6746b28 | 5 years ago |
|
634989427d | 5 years ago |
|
14ab68acd7 | 5 years ago |
|
7947cc20dd | 5 years ago |
|
78e86721f4 | 5 years ago |
|
1a5ff9c8d1 | 5 years ago |
|
55351f6f72 | 5 years ago |
|
83e7fd38d6 | 5 years ago |
|
ad0f70ab34 | 5 years ago |
|
54747e8719 | 5 years ago |
|
c309c0f385 | 5 years ago |
|
906c997ccb | 5 years ago |
|
18e5794724 | 6 years ago |
|
30d93831df | 6 years ago |
|
48e4e9f627 | 6 years ago |
|
748b1857d8 | 6 years ago |
|
51e5ad8858 | 6 years ago |
|
4b8962c753 | 6 years ago |
|
4ad7edc4ea | 6 years ago |
|
44cb534e18 | 6 years ago |
|
f3a064a237 | 6 years ago |
|
18e1ed0809 | 6 years ago |
|
7cf83a695f | 6 years ago |
|
8992c2cdda | 6 years ago |
|
1f5f966e06 | 6 years ago |
|
1874c3b900 | 6 years ago |
|
b73c7f0444 | 6 years ago |
|
0aebff3cbb | 6 years ago |
|
a5f158ecad | 6 years ago |
|
e1344ea05b | 6 years ago |
|
0ae49f55fa | 6 years ago |
|
fccf9646ac | 6 years ago |
|
ecbea2e944 | 6 years ago |
|
8456831acc | 6 years ago |
|
28080c10bc | 6 years ago |
|
55d957d5af | 6 years ago |
|
df66ae160a | 6 years ago |
|
7384c17c9f | 6 years ago |
|
1723b2472f | 6 years ago |
|
5454c07f46 | 6 years ago |
|
8226efaf30 | 6 years ago |
|
7654d4ac47 | 6 years ago |
|
2de8e8e41b | 6 years ago |
|
41977ea554 | 6 years ago |
|
983b489d52 | 6 years ago |
|
fbbb1b73eb | 6 years ago |
|
76939cbc3e | 6 years ago |
|
f3b2c943ac | 6 years ago |
|
ef7afecb80 | 6 years ago |
|
42be7f3a1f | 6 years ago |
|
516fa1c1b7 | 6 years ago |
|
5658ee5c33 | 6 years ago |
|
e82a945a72 | 6 years ago |
|
8d509c4bca | 6 years ago |
|
a5716b76c3 | 6 years ago |
|
0b8306d6a5 | 6 years ago |
|
40fca201e8 | 6 years ago |
|
51b4be02d6 | 6 years ago |
|
90f93202c4 | 6 years ago |
|
4e7ebdf175 | 6 years ago |
|
2af377c60c | 6 years ago |
|
8687b2486d | 6 years ago |
|
2bdd4ed07e | 6 years ago |
|
ef015d60c6 | 6 years ago |
|
d619a66a99 | 6 years ago |
|
e8c664be1c | 6 years ago |
|
9b344beb46 | 6 years ago |
|
aa1d051b8f | 6 years ago |
|
6fd77c45e8 | 6 years ago |
|
b191445926 | 6 years ago |
|
6b1fb166a3 | 6 years ago |
|
810f9b9688 | 6 years ago |
|
ca7693bf84 | 6 years ago |
|
c725d1984b | 6 years ago |
|
c61e3b7475 | 6 years ago |
|
8a53e4fac5 | 6 years ago |
|
6f382d9663 | 6 years ago |
|
2c8d7452c5 | 6 years ago |
|
e27fc8d83f | 6 years ago |
|
3f3b9e66ee | 6 years ago |
|
90ccdc27cc | 6 years ago |
|
67164bab1e | 6 years ago |
|
956ff0377e | 6 years ago |
|
7752c37a01 | 6 years ago |
|
819c625f93 | 6 years ago |
|
086ceba908 | 6 years ago |
|
fe9056105a | 6 years ago |
|
dbeab3f95c | 6 years ago |
|
0446c9cae3 | 6 years ago |
|
4b0c54f7fc | 6 years ago |
|
e00c86ef57 | 6 years ago |
|
3b8dbfef8b | 6 years ago |
|
587947f867 | 6 years ago |
|
6dd7984e6d | 6 years ago |
|
4877920787 | 6 years ago |
|
8f30ec7b8d | 6 years ago |
|
e3542d411d | 6 years ago |
|
9ba564c713 | 6 years ago |
|
67b50b54ca | 6 years ago |
|
d4d7c4b49e | 6 years ago |
|
874d79e76c | 6 years ago |
|
e664792072 | 6 years ago |
|
c961e594a5 | 6 years ago |
|
93580405fc | 6 years ago |
|
8e19c59170 | 6 years ago |
|
7bdd0a0a97 | 6 years ago |
|
c74bb72c7d | 6 years ago |
|
e0917cb1d0 | 6 years ago |
|
b1adbc4d25 | 6 years ago |
|
3a4e318a4f | 6 years ago |
|
ecaf73835b | 6 years ago |
|
83d4c5cbb4 | 6 years ago |
|
981dbdc445 | 6 years ago |
|
9142b11928 | 6 years ago |
|
15b2533c65 | 6 years ago |
|
f59b518e58 | 6 years ago |
|
bc844f47a0 | 6 years ago |
|
57b2c4e7b9 | 6 years ago |
|
f9b24f1761 | 6 years ago |
|
106621efcc | 6 years ago |
|
aefcfa80fc | 6 years ago |
|
4b35ecbd25 | 6 years ago |
|
26f65b3c05 | 6 years ago |
|
61af48511d | 6 years ago |
|
86cfd302d1 | 6 years ago |
|
d2a0170fda | 6 years ago |
|
f0159e3c02 | 6 years ago |
|
f07625a04e | 6 years ago |
|
3886b03acf | 6 years ago |
|
3bfb040969 | 6 years ago |
|
eaf9dff537 | 6 years ago |
|
37768b9c36 | 6 years ago |
|
51bdce2715 | 6 years ago |
|
c407ecc685 | 6 years ago |
|
394a1debd2 | 6 years ago |
|
44836bd5b8 | 6 years ago |
|
3168c35b46 | 6 years ago |
|
3318e39cb5 | 6 years ago |
|
0c4875ab1a | 6 years ago |
|
9a4ec26997 | 6 years ago |
|
c406af2f82 | 6 years ago |
|
e615605342 | 6 years ago |
|
b89c8a0f98 | 6 years ago |
|
e32bcce9d1 | 6 years ago |
|
fdd1ae30f6 | 6 years ago |
|
b844524ee3 | 6 years ago |
|
942730b90a | 6 years ago |
|
4fdabe4055 | 6 years ago |
|
99c29e8994 | 6 years ago |
|
fca5efa6c0 | 6 years ago |
|
c32bdb9c58 | 6 years ago |
|
a4f5ec66d3 | 6 years ago |
|
1376383050 | 6 years ago |
|
8114c44276 | 6 years ago |
|
a897769a54 | 6 years ago |
|
d726ed0b23 | 6 years ago |
|
20fd553a36 | 6 years ago |
|
5086880fac | 6 years ago |
|
d71fc7b177 | 6 years ago |
|
5807007e48 | 6 years ago |
|
7ee9e1c2ef | 6 years ago |
|
837aeb240f | 6 years ago |
|
87b60ad296 | 6 years ago |
|
37381a0312 | 6 years ago |
|
8c07f419bc | 6 years ago |
|
16e8323799 | 6 years ago |
|
086e5d2a77 | 6 years ago |
|
382c382bca | 6 years ago |
|
5941ba18ae | 6 years ago |
|
380dff555f | 6 years ago |
|
b689833f29 | 6 years ago |
|
de9f191d5e | 6 years ago |
|
832fa4d19a | 6 years ago |
|
768eaede43 | 6 years ago |
|
6dac82ea62 | 6 years ago |
|
921fc80447 | 6 years ago |
|
8a240df1da | 6 years ago |
|
65f5699bb8 | 6 years ago |
|
f0182d9355 | 6 years ago |
|
0f846b90f2 | 6 years ago |
|
e160a3da30 | 6 years ago |
|
9c0f13dc1e | 6 years ago |
|
c73407c692 | 6 years ago |
|
f5c15ee6db | 6 years ago |
|
63b3b414af | 6 years ago |
|
211f2ba5d3 | 6 years ago |
|
1c7f834c42 | 6 years ago |
|
1feca8d954 | 6 years ago |
|
92a9a93f4a | 6 years ago |
|
bd6137b5d9 | 6 years ago |
|
2416494879 | 6 years ago |
|
a0eb32194d | 6 years ago |
|
4dada56df5 | 6 years ago |
|
17066c2df0 | 7 years ago |
|
d7818ac153 | 7 years ago |
|
697b8192b9 | 7 years ago |
|
fb05993719 | 7 years ago |
|
15286628ba | 7 years ago |
|
1079fc575b | 7 years ago |
|
9e11d4e8af | 7 years ago |
|
514ca6411a | 7 years ago |
|
3b2e7eb78f | 7 years ago |
|
248fad7b2a | 7 years ago |
|
781534545e | 7 years ago |
|
6b3166e905 | 7 years ago |
|
0ff76ef982 | 7 years ago |
|
770a8412fb | 7 years ago |
|
0da6a1b0ca | 7 years ago |
|
4873d33ccc | 7 years ago |
|
d92a47d260 | 7 years ago |
|
fe93b6c686 | 7 years ago |
|
fc18d5c26f | 7 years ago |
|
fdebe61717 | 7 years ago |
|
9dcf54b11e | 7 years ago |
|
38e9ac6a3a | 7 years ago |
|
f8fd898c17 | 7 years ago |
|
73f4e1fb90 | 7 years ago |
|
252c17b7f6 | 7 years ago |
|
bc8dd7b12d | 7 years ago |
|
b8f03be07f | 7 years ago |
|
5167800590 | 7 years ago |
|
423f572c56 | 7 years ago |
|
2c12ed2805 | 7 years ago |
|
2a47cbaba1 | 7 years ago |
|
124988382d | 7 years ago |
|
96cd6c5f19 | 7 years ago |
|
1cb4b068f2 | 7 years ago |
|
36f27d076e | 7 years ago |
|
18737dee08 | 7 years ago |
|
4eb3c114b1 | 7 years ago |
|
0fee18bfd2 | 7 years ago |
|
7dd69a1f89 | 7 years ago |
|
efb3e686d6 | 7 years ago |
|
c868be96a6 | 7 years ago |
|
fd1b833266 | 7 years ago |
|
ea6d542223 | 7 years ago |
|
7958b8dc1d | 7 years ago |
|
fb3cefe6e6 | 7 years ago |
|
f62e61e89a | 7 years ago |
|
9b29149e60 | 7 years ago |
|
d2b83a6bc5 | 7 years ago |
|
6dea43d052 | 7 years ago |
|
2774981f42 | 7 years ago |
|
e6bbd5ea18 | 7 years ago |
|
08430440ff | 7 years ago |
|
6bd487eb1d | 7 years ago |
|
4413928fe3 | 7 years ago |
|
9542213c58 | 7 years ago |
|
093a29f344 | 7 years ago |
|
b5c6b0e9bd | 7 years ago |
|
dc792f5e31 | 7 years ago |
|
35c0ac9e1f | 7 years ago |
|
af5fd12158 | 7 years ago |
|
dc5cde7208 | 7 years ago |
|
74b93b6cc0 | 7 years ago |
|
9e3573b987 | 7 years ago |
|
32141e7306 | 7 years ago |
|
1459e650b1 | 7 years ago |
|
ed01d3a5af | 7 years ago |
|
e1eddcc942 | 7 years ago |
|
89070dea64 | 7 years ago |
|
2707011fb5 | 7 years ago |
|
e24f7f21e5 | 7 years ago |
|
7cb44e4f35 | 7 years ago |
|
bae5b12af9 | 7 years ago |
|
aa9031eb85 | 7 years ago |
|
b8556faaca | 7 years ago |
|
3575f5c741 | 7 years ago |
|
29e40e3a34 | 7 years ago |
|
634abf6f5e | 7 years ago |
|
fe60ce3800 | 7 years ago |
|
0415054044 | 7 years ago |
|
7cf7ffadd2 | 7 years ago |
|
2307a5afb5 | 7 years ago |
|
900ec57fef | 7 years ago |
|
a2e22a1291 | 7 years ago |
|
fa7ac3320f | 7 years ago |
|
26041a2298 | 7 years ago |
|
eab78e39e3 | 7 years ago |
|
c088bca116 | 7 years ago |
|
dc687aa6b6 | 7 years ago |
|
61b31aff0c | 7 years ago |
|
e4b844b229 | 7 years ago |
|
09d87993e2 | 7 years ago |
|
6c4d4fe268 | 7 years ago |
|
76ca900b0e | 7 years ago |
|
ab8ccd7151 | 7 years ago |
|
1d5b93a9bb | 7 years ago |
|
c97f800000 | 7 years ago |
|
b4e2f235aa | 7 years ago |
|
f37a0d178f | 7 years ago |
|
60e5b62842 | 7 years ago |
|
93b71bb21b | 7 years ago |
|
e9f76af5da | 7 years ago |
|
25c748b80e | 7 years ago |
|
f530810654 | 7 years ago |
|
75edc8ad4b | 7 years ago |
|
6f1e49caff | 7 years ago |
|
f0d2cedfac | 7 years ago |
|
f11d2d335a | 7 years ago |
|
b2e447cd13 | 7 years ago |
|
798434b603 | 7 years ago |
|
6071010c8f | 7 years ago |
|
229e2f2abe | 7 years ago |
|
f5b551fedd | 7 years ago |
|
87290a541b | 7 years ago |
|
877d057bef | 7 years ago |
|
ceb0d156e3 | 7 years ago |
|
79abfcb6e6 | 7 years ago |
|
3058ba5f9b | 7 years ago |
|
223e289f72 | 7 years ago |
|
aaf9f13b2c | 7 years ago |
|
ca56909e00 | 7 years ago |
|
85060c54c6 | 7 years ago |
|
6c92a0c658 | 7 years ago |
|
7d0f50fc1e | 7 years ago |
|
3068124b06 | 7 years ago |
|
e7b8a41534 | 7 years ago |
|
c8785074da | 7 years ago |
|
caa09dca9d | 7 years ago |
|
a5e1804807 | 7 years ago |
|
b0ca419dc7 | 7 years ago |
|
9c6b008aac | 7 years ago |
|
4e2894a850 | 7 years ago |
|
f8212597fa | 7 years ago |
|
eee9f8c81a | 7 years ago |
|
c5e86f8c10 | 7 years ago |
|
1bcdfa814c | 7 years ago |
|
88fabdc836 | 7 years ago |
|
f31f90f91b | 7 years ago |
|
f9820eef8f | 7 years ago |
|
7aba401630 | 7 years ago |
|
234a1c3bef | 7 years ago |
|
4679ea2944 | 7 years ago |
|
1cef492dc6 | 7 years ago |
|
c11134e6ed | 7 years ago |
|
19ab2d7c82 | 7 years ago |
|
1fd8faf12c | 7 years ago |
|
a2ab4c1395 | 7 years ago |
|
32635003fb | 7 years ago |
|
b708d120fe | 7 years ago |
|
562f4f9d9f | 7 years ago |
|
26dbe266e7 | 7 years ago |
|
25b193f7b5 | 7 years ago |
|
c35ec611e2 | 7 years ago |
|
f33805f00e | 7 years ago |
|
dec1347d96 | 7 years ago |
|
6126cd7399 | 7 years ago |
|
ee9ca07488 | 7 years ago |
|
5cab460d56 | 7 years ago |
|
f188bd81c2 | 7 years ago |
|
198c11ab9c | 7 years ago |
|
481da04805 | 7 years ago |
|
0ea5e8a695 | 7 years ago |
|
7efe5e148e | 7 years ago |
|
4c3781ff4f | 7 years ago |
|
6c8a877611 | 7 years ago |
|
76d1e051fd | 7 years ago |
|
8d808207c8 | 7 years ago |
|
4deb627343 | 7 years ago |
|
5a1a44d589 | 7 years ago |
|
4b99bb2008 | 7 years ago |
|
e289462739 | 7 years ago |
|
ed027cc3fa | 7 years ago |
|
c35e6bba9a | 7 years ago |
|
eb08d021b5 | 7 years ago |
|
ec4d9f940c | 7 years ago |
|
2454c5d9cc | 7 years ago |
|
00efb722ec | 7 years ago |
|
566a026cc4 | 7 years ago |
|
3039f97604 | 7 years ago |
|
3176672190 | 7 years ago |
|
f7e6b06aa4 | 7 years ago |
|
ccfc303316 | 7 years ago |
|
5dd1d11a27 | 7 years ago |
|
0c50d3e0d3 | 7 years ago |
|
3dca29c814 | 7 years ago |
|
d661565c25 | 7 years ago |
|
7df1d01ca1 | 7 years ago |
|
30abb3a3c0 | 7 years ago |
|
cd9c187ddf | 7 years ago |
|
68c8ff8414 | 7 years ago |
|
194f91722e | 7 years ago |
|
6eb99a71d4 | 7 years ago |
|
a56cb94505 | 7 years ago |
|
c4c9bd856c | 7 years ago |
|
98ef4b0af2 | 7 years ago |
|
40968e00ea | 7 years ago |
|
5077669309 | 7 years ago |
|
22e699398e | 7 years ago |
|
a9d0d25c01 | 7 years ago |
|
3a4c89bd65 | 7 years ago |
|
d15d7c0efd | 7 years ago |
|
72c314c0bb | 7 years ago |
|
c6d5a6127b | 7 years ago |
|
1492a84c17 | 7 years ago |
|
8f2128db40 | 7 years ago |
|
a86c584e5d | 7 years ago |
|
19bd2a39d2 | 7 years ago |
|
156e9acad4 | 7 years ago |
|
99f5855fb4 | 7 years ago |
|
caf47c7051 | 7 years ago |
|
bae36e1ddf | 7 years ago |
|
41783e4931 | 7 years ago |
|
a51f1bb8e4 | 7 years ago |
|
8b4a7136a3 | 7 years ago |
|
d4484d2f6d | 7 years ago |
|
5442893361 | 7 years ago |
|
0c1407f115 | 7 years ago |
|
a7f6146d82 | 7 years ago |
|
9c270b23a6 | 7 years ago |
|
9bd240162c | 7 years ago |
|
3fd338588f | 7 years ago |
|
b916be461b | 7 years ago |
|
25417014fb | 7 years ago |
|
ee308ba5d1 | 7 years ago |
|
6051711efb | 7 years ago |
|
06c0a068e8 | 7 years ago |
|
8119be62d2 | 7 years ago |
|
6400fce43e | 7 years ago |
|
1752ea33e2 | 7 years ago |
|
62bfc21fb3 | 7 years ago |
|
99a514096b | 7 years ago |
|
8d5e2b3040 | 7 years ago |
|
c099819e6f | 7 years ago |
|
3441ada1b0 | 7 years ago |
|
ac52ef0bad | 7 years ago |
|
b3506b34f9 | 7 years ago |
|
c30d5ca695 | 7 years ago |
|
97481e7c8c | 7 years ago |
|
e7d75bda71 | 7 years ago |
|
094957e2d8 | 7 years ago |
|
bcaab5b8c5 | 7 years ago |
|
44df038999 | 7 years ago |
|
80377937f5 | 7 years ago |
|
be6d5bd104 | 7 years ago |
|
175cba778c | 7 years ago |
|
70d2ce6ac1 | 7 years ago |
|
2bba1287c3 | 7 years ago |
|
d0d9ae7f4a | 7 years ago |
|
84de33fc1d | 7 years ago |
|
f4ab6e4e73 | 7 years ago |
|
2d176f2858 | 7 years ago |
|
d6d5420a58 | 7 years ago |
|
4df4b1fc94 | 7 years ago |
|
8a13e7d973 | 7 years ago |
|
61fe9551ee | 7 years ago |
|
be2fac6cbd | 7 years ago |
|
3769f6ef45 | 7 years ago |
|
b224e58bb9 | 7 years ago |
|
7c6f3842dc | 7 years ago |
|
14d6ca3fd0 | 7 years ago |
|
7328d3f02c | 7 years ago |
|
eb095dfe61 | 7 years ago |
|
678c391257 | 7 years ago |
|
dd19272b10 | 7 years ago |
|
9044a70330 | 7 years ago |
|
a72bc77fca | 7 years ago |
|
6964e25d72 | 7 years ago |
|
e628079ddd | 7 years ago |
|
85f876f4c8 | 7 years ago |
|
11cfe374b7 | 7 years ago |
|
6226a5fa7c | 7 years ago |
|
1e23c5ea49 | 7 years ago |
|
876a5e0804 | 7 years ago |
|
bee2e687bb | 7 years ago |
|
c27f5d1771 | 8 years ago |
|
f2dedda3a9 | 8 years ago |
|
b93a8a53aa | 8 years ago |
|
6a5306950a | 8 years ago |
|
bb4caf5629 | 8 years ago |
@ -1,32 +1,27 @@
|
||||
# Contributing |
||||
|
||||
## Submitting issues |
||||
|
||||
* Please search the existing issues first, it's likely that your issue was already reported or even fixed. |
||||
- Please search the existing issues first, it's likely that your issue was already reported or even fixed. |
||||
- Go to "Issues" and type any word in the top search/command bar. |
||||
- Consider to search on closed issues. To do that just remove "is:open" from the search field. |
||||
- More info on [search syntax within github](https://help.github.com/articles/searching-issues) |
||||
* Report the issue using our [template][template], it includes all the information we need to track down the issue. |
||||
- More info on [search syntax within github](https://help.github.com/articles/searching-issues). |
||||
- Report the issue using our [template](https://github.com/saenzramiro/rambox/blob/master/.github/ISSUE_TEMPLATE.md), it includes all the information we need to track down the issue. |
||||
|
||||
Help us to maximize the effort we can spend fixing issues and adding new features, by not reporting duplicate issues. |
||||
|
||||
[template]: https://github.com/saenzramiro/rambox/blob/master/.github/ISSUE_TEMPLATE.md |
||||
|
||||
## Share your Custom Services |
||||
|
||||
If you consider there are other users that can use your Custom Service, we have a repo for this: [Rambox Services Contrib][rambox-services-contrib]. |
||||
|
||||
[rambox-services-contrib]: https://github.com/saenzramiro/rambox-services-contrib |
||||
If you consider there are other users that can use your Custom Service, we have a repo for this: [Rambox Services Contrib](https://github.com/saenzramiro/rambox-services-contrib) |
||||
|
||||
## Ask for help |
||||
|
||||
We have a great community in [Gitter][gitter] that can help you with any doubt or problem. |
||||
|
||||
[gitter]: https://gitter.im/saenzramiro/rambox |
||||
We have a great community in [Slack (Prefered)](https://rambox.typeform.com/to/t7jc4C) or [Gitter](https://gitter.im/saenzramiro/rambox) (Gitter channel is mirroring into Slack `general` room) that can help you with any doubt or problem. |
||||
|
||||
## Contributing to Source Code |
||||
|
||||
Feel free to create pull requests to help us offer a great and complete software. :wink: |
||||
|
||||
## Translations |
||||
Please submit translations via [Transifex][transifex]. |
||||
|
||||
[transifex]: https://www.transifex.com/rambox/rambox-app/ |
||||
Please submit translations via [Crowdin](https://crowdin.com/project/rambox/). |
||||
|
@ -0,0 +1,3 @@
|
||||
# These are supported funding model platforms |
||||
|
||||
custom: ['https://rambox.app/donate.html'] |
@ -0,0 +1,25 @@
|
||||
# Configuration for new-issue-welcome - https://github.com/behaviorbot/new-issue-welcome |
||||
# Comment to be posted to on first time issues |
||||
newIssueWelcomeComment: > |
||||
Thanks for opening your first issue here! Be sure to follow the issue template! |
||||
|
||||
# Configuration for new-pr-welcome - https://github.com/behaviorbot/new-pr-welcome |
||||
# Comment to be posted to on PRs from first time contributors in your repository |
||||
newPRWelcomeComment: > |
||||
Thanks for opening this pull request! Please check out our contributing guidelines. |
||||
|
||||
# Configuration for first-pr-merge - https://github.com/behaviorbot/first-pr-merge |
||||
# Comment to be posted to on pull requests merged by a first time user |
||||
firstPRMergeComment: > |
||||
Congrats on merging your first pull request! We here at Rambox are proud of you! |
||||
|
||||
|
||||
|
||||
# Configuration for request-info - https://github.com/behaviorbot/request-info |
||||
|
||||
# *Required* Comment to reply with |
||||
requestInfoReplyComment: > |
||||
We would appreciate it if you could provide us with more info about this issue/pr! |
||||
|
||||
# *OPTIONAL* Label to be added to Issues and Pull Requests with insufficient information given |
||||
requestInfoLabelToAdd: more-information-needed |
@ -0,0 +1,35 @@
|
||||
# Configuration for lock-threads - https://github.com/dessant/lock-threads |
||||
|
||||
# Number of days of inactivity before a closed issue or pull request is locked |
||||
daysUntilLock: 30 |
||||
|
||||
# Issues and pull requests with these labels will not be locked. Set to `[]` to disable |
||||
exemptLabels: |
||||
- archive |
||||
|
||||
# Label to add before locking, such as `outdated`. Set to `false` to disable |
||||
lockLabel: false |
||||
|
||||
# Comment to post before locking. Set to `false` to disable |
||||
lockComment: > |
||||
This thread has been automatically locked since there has not been |
||||
any recent activity after it was closed. Please open a new issue for |
||||
related bugs. |
||||
|
||||
# Assign `resolved` as the reason for locking. Set to `false` to disable |
||||
setLockReason: true |
||||
|
||||
# Limit to only `issues` or `pulls` |
||||
# only: issues |
||||
|
||||
# Optionally, specify configuration settings just for `issues` or `pulls` |
||||
# issues: |
||||
# exemptLabels: |
||||
# - help-wanted |
||||
# lockLabel: outdated |
||||
|
||||
# pulls: |
||||
# daysUntilLock: 30 |
||||
|
||||
# Repository to extend settings from |
||||
# _extends: repo |
@ -0,0 +1,14 @@
|
||||
# Configuration for probot-no-response - https://github.com/probot/no-response |
||||
|
||||
# Number of days of inactivity before an Issue is closed for lack of response |
||||
daysUntilClose: 14 |
||||
# Label requiring a response |
||||
responseRequiredLabel: more-information-needed |
||||
# Comment to post when closing an Issue for lack of response. Set to `false` to disable |
||||
closeComment: > |
||||
This issue has been automatically closed because there has been no response |
||||
to our request for more information from the original author. With only the |
||||
information that is currently in the issue, we don't have enough information |
||||
to take action. Please reach out if you have or find the answers we need so |
||||
that we can investigate further. |
||||
|
@ -0,0 +1,26 @@
|
||||
# Number of days of inactivity before an issue becomes stale |
||||
daysUntilStale: 60 |
||||
# Number of days of inactivity before a stale issue is closed |
||||
daysUntilClose: 7 |
||||
# Only issues or pull requests with all of these labels are check if stale. Defaults to `[]` (disabled) |
||||
onlyLabels: |
||||
- more-information-needed |
||||
# Issues with these labels will never be considered stale |
||||
exemptLabels: |
||||
- bug |
||||
- to do |
||||
- enhancement |
||||
- feature request |
||||
- in progress |
||||
- investigate |
||||
# Label to use when marking an issue as stale |
||||
staleLabel: stale |
||||
# Comment to post when marking an issue as stale. Set to `false` to disable |
||||
markComment: > |
||||
This issue has been automatically marked as stale because it has not had |
||||
recent activity. It will be closed if no further activity occurs. Thank you |
||||
for your contributions. |
||||
# Comment to post when closing a stale issue. Set to `false` to disable |
||||
closeComment: > |
||||
This issue has been automatically closed since there has not been |
||||
any recent activity. Please open a new issue for related bugs. |
@ -1,81 +1,49 @@
|
||||
sudo: required |
||||
language: node_js |
||||
node_js: |
||||
- "8" |
||||
matrix: |
||||
include: |
||||
- os: osx |
||||
osx_image: xcode12.4 |
||||
language: node_js |
||||
node_js: "14.16.1" |
||||
env: |
||||
- ELECTRON_CACHE=$HOME/.cache/electron |
||||
- ELECTRON_BUILDER_CACHE=$HOME/.cache/electron-builder |
||||
|
||||
- os: linux |
||||
sudo: required |
||||
services: docker |
||||
language: generic |
||||
branches: |
||||
only: |
||||
- master |
||||
|
||||
os: |
||||
- linux |
||||
- osx |
||||
|
||||
cache: |
||||
directories: |
||||
- node_modules |
||||
- $HOME/.electron |
||||
|
||||
addons: |
||||
apt: |
||||
sources: |
||||
- ubuntu-toolchain-r-test |
||||
packages: |
||||
- g++-4.8 |
||||
|
||||
- node_modules |
||||
- $HOME/.cache/electron |
||||
- $HOME/.cache/electron-builder |
||||
before_install: |
||||
# native dependencies |
||||
- if [ $TRAVIS_OS_NAME == "linux" ]; then |
||||
sudo apt-get update -qq; |
||||
sudo apt-get install -qq libxml2-dev; |
||||
sudo apt-get install -qq libappindicator1; |
||||
sudo apt-get install -qq rpm; |
||||
- | |
||||
if [ "$TRAVIS_OS_NAME" == "osx" ]; then |
||||
mkdir -p /tmp/git-lfs && curl -L https://github.com/github/git-lfs/releases/download/v2.3.1/git-lfs-$([ "$TRAVIS_OS_NAME" == "linux" ] && echo "linux" || echo "darwin")-amd64-2.3.1.tar.gz | tar -xz -C /tmp/git-lfs --strip-components 1 |
||||
export PATH="/tmp/git-lfs:$PATH" |
||||
fi |
||||
install: |
||||
- git config --global core.autocrlf input |
||||
- git reset --hard HEAD |
||||
- npm run sencha:clean |
||||
- git clone https://github.com/saenzramiro/rambox-build.git $TRAVIS_BUILD_DIR/build/production/Rambox/ |
||||
- npm install |
||||
- npm uninstall electron-prebuilt |
||||
- npm i electron@$ELECTRON |
||||
- npm --prefix $TRAVIS_BUILD_DIR/build/production/Rambox/ install $TRAVIS_BUILD_DIR/build/production/Rambox/ |
||||
before_script: |
||||
- git lfs pull |
||||
script: |
||||
- echo $TRAVIS_OS_NAME |
||||
- node --version |
||||
- npm --version |
||||
- npm run build:$TRAVIS_OS_NAME |
||||
|
||||
deploy: |
||||
provider: releases |
||||
api_key: |
||||
secure: F7z4j9xzhpVyfovrf33jbVdW9dwgpIgbn85dxe8y/kZbQ9sAVU8LzoBZ3PlfeXmoV5CnSUa5j/fe8BmPKiG31kgAH7cktsCOgyOLggO1Sy+vnx7RQwwE/jzb7PzEqI2BP6TG/eOfylBxGBInWeaoSRfK3IRAvLHvvxY1eL4Wq/KRaanzMvh+JdCaStIKJSnI/rc9noI7vtOtgHot+F162s1G1k5/UcdbsfXWzotMVsonhlGgB/Jz9srnJpMpxYxaknR8UFPVRzOM5UzzMo64hXRUDnCFlYcTHcSAkvgKHI0SIPIS3kOdvgrYGavPLK2CAteQk7Dy1lHnEixmKPxG7eVAFwleUo8ePR82WXFkv5gacCvcrGrRLQ9nC/ygeMVgC5XxcHq3ykkcrstu5yjC1yEYFs23gA1Z4DIctwq1diyO72/FNxghV5ckN5WtJQs1QTT+Ec2NjLrWgFYuaEHYgAGopzTPN8gT9fyIv/lAq1S/l4P/z3EDS42UL+UTM77gyXSYShCKneDnFC34ATlYNDhJFRzLZ6qJG5UlOwrfXxUYeGUpQZlV41jg+VFWmPDAeQTMjGP5fRA3w1hFobBotBVyrtbcovTb4TFVTKJWOC/0wyiwku7YTY/nqMU/hR4IluTyRh9Z4NMn5xT5UW63OZd4DJvE573JxmJmnPc0fbo= |
||||
file_glob: true |
||||
file: |
||||
- "dist/*.zip" |
||||
- "dist/*.deb" |
||||
- "dist/*.tar.gz" |
||||
- "dist/*.AppImage" |
||||
- "dist/*.rpm" |
||||
- "dist/mac/*.zip" |
||||
- "dist/mac/*.dmg" |
||||
skip_cleanup: true |
||||
overwrite: true |
||||
prerelease: true |
||||
on: |
||||
repo: saenzramiro/rambox |
||||
tags: true |
||||
all_branches: true |
||||
|
||||
notifications: |
||||
email: |
||||
recipients: |
||||
- rambox@protonmail.com |
||||
on_success: always |
||||
on_failure: always |
||||
webhooks: |
||||
urls: |
||||
- https://webhooks.gitter.im/e/0f214eb0d0017d3c5561 |
||||
on_success: always # options: [always|never|change] default: always |
||||
on_failure: always # options: [always|never|change] default: always |
||||
on_start: never # options: [always|never|change] default: always |
||||
- | |
||||
if [ "$TRAVIS_OS_NAME" == "linux" ]; then |
||||
docker run --rm -ti \ |
||||
--env-file <(env | grep -vE '\r|\n' | grep -iE 'DEBUG|NODE_|ELECTRON_|YARN_|NPM_|CI|CIRCLE|APPVEYOR_|CSC_|_TOKEN|_KEY|AWS_|STRIP|BUILD_') \ |
||||
-v ${PWD}/build/production/Rambox/:/project \ |
||||
-v ~/.cache/electron:/root/.cache/electron \ |
||||
-v ~/.cache/electron-builder:/root/.cache/electron-builder \ |
||||
electronuserland/builder \ |
||||
/bin/bash -c "npm i && npm run build:linux" |
||||
else |
||||
cd $TRAVIS_BUILD_DIR/build/production/Rambox/ |
||||
npm i |
||||
npm i cli-truncate |
||||
npm run build:osx |
||||
fi |
||||
|
@ -1,6 +0,0 @@
|
||||
# Monthly Donators |
||||
|
||||
[Martin Grünbaum](https://github.com/alathon) |
||||
|
||||
Ivan Toshkov |
||||
[Simon Joda Stößer](https://github.com/SimJoSt) |
@ -0,0 +1,216 @@
|
||||
# Contributor's Guide |
||||
|
||||
We welcome pull requests! Follow these steps to contribute: |
||||
|
||||
1. Find an [issue](https://github.com/ramboxapp/community-edition/issues) that needs assistance. |
||||
1. Let us know you are working on it by posting a comment on the issue. |
||||
1. Follow the [Contribution Guidelines](#contribution-guidelines) to start working on the issue. |
||||
|
||||
Working on your first Pull Request? You can learn how from this *free* series [How to Contribute to an Open Source Project on GitHub](https://egghead.io/series/how-to-contribute-to-an-open-source-project-on-github) |
||||
|
||||
##### If you've found a bug that is not on the board, [follow these steps](README.md#found-a-bug). |
||||
|
||||
--- |
||||
|
||||
## Contribution Guidelines |
||||
|
||||
### Setup |
||||
|
||||
- [Prerequisites](#prerequisites) |
||||
- [Forking the Project](#forking-the-project) |
||||
- [Create a Branch](#create-a-branch) |
||||
- [Set Up rambox](#set-up-rambox) |
||||
|
||||
### Create |
||||
|
||||
- [Make Changes](#make-changes) |
||||
- [Run The Test Suite](#run-the-test-suite) |
||||
|
||||
### Submit |
||||
|
||||
- [Creating a Pull Request](#creating-a-pull-request) |
||||
- [Common Steps](#common-steps) |
||||
- [How We Review and Merge Pull Requests](#how-we-review-and-merge-pull-requests) |
||||
- [How We Close Stale Issues](#how-we-close-stale-issues) |
||||
- [Next Steps](#next-steps) |
||||
- [Other Resources](#other-resources) |
||||
|
||||
### Prerequisites |
||||
|
||||
| Prerequisite | Version | |
||||
| ------------------------------------------------------------- | ------- | |
||||
| [Sencha](https://www.sencha.com/products/extjs/cmd-download/) | `=6.6.0.13` | |
||||
| [Ruby](https://www.ruby-lang.org/en/downloads/) | `=2.3` | |
||||
| [Node.js](https://nodejs.org) | `~ ^4.0.0` | |
||||
| npm (comes with Node) | `~ ^3.8.7` | |
||||
|
||||
> _Updating to the latest releases is recommended_. |
||||
|
||||
If Node.js, ruby, or sencha cmd is already installed on your machine, run the following commands to validate the versions: |
||||
|
||||
```shell |
||||
node -v |
||||
ruby -v |
||||
sencha |
||||
``` |
||||
|
||||
If your versions are lower than the prerequisite versions, you should update. |
||||
|
||||
### Forking the Project |
||||
|
||||
#### Setting Up Your System |
||||
|
||||
1. Install [Git](https://git-scm.com/) or your favorite Git client. |
||||
1. (Optional) [Setup an SSH Key](https://help.github.com/articles/generating-an-ssh-key/) for GitHub. |
||||
|
||||
#### Forking rambox |
||||
|
||||
1. Go to the top level rambox repository: <https://github.com/ramboxapp/community-edition> |
||||
1. Click the "Fork" Button in the upper right hand corner of the interface ([More Details Here](https://help.github.com/articles/fork-a-repo/)) |
||||
1. After the repository (repo) has been forked, you will be taken to your copy of the rambox repo at <https://github.com/yourUsername/community-edition> |
||||
|
||||
#### Cloning Your Fork |
||||
|
||||
1. Open a Terminal / Command Line / Bash Shell in your projects directory (_i.e.: `/yourprojectdirectory/`_) |
||||
1. Clone your fork of rambox |
||||
- `git clone https://github.com/yourUsername/community-edition.git` |
||||
|
||||
**(make sure to replace `yourUsername` with your GitHub username)** |
||||
|
||||
This will download the entire rambox repo to your projects directory. |
||||
|
||||
#### Setup Your Upstream |
||||
|
||||
1. Change directory to the new rambox directory (`cd community-edition`) |
||||
1. Add a remote to the official rambox repo: |
||||
- `git remote add upstream https://github.com/ramboxapp/community-edition.git` |
||||
|
||||
Congratulations, you now have a local copy of the rambox repo! :tada: |
||||
|
||||
### Create a Branch |
||||
|
||||
Before you start working, you will need to create a separate branch specific to the issue / feature you're working on. You will push your work to this branch. |
||||
|
||||
#### Naming Your Branch |
||||
|
||||
Name the branch something like `fix/xxx` or `feature/xxx` where `xxx` is a short description of the changes or feature you are attempting to add. For example |
||||
|
||||
`fix/email-login` would be a branch where you fix something specific to email login. |
||||
|
||||
#### Adding Your Branch |
||||
|
||||
To create a branch on your local machine (and switch to this branch): |
||||
|
||||
```shell |
||||
git checkout -b [name_of_your_new_branch] |
||||
``` |
||||
|
||||
and to push to GitHub: |
||||
|
||||
```shell |
||||
git push origin [name_of_your_new_branch] |
||||
``` |
||||
|
||||
**If you need more help with branching, take a look at [this](https://github.com/Kunena/Kunena-Forum/wiki/Create-a-new-branch-with-git-and-manage-branches).** |
||||
|
||||
### Set Up rambox |
||||
|
||||
Once you have rambox cloned, before you start the application, you first need to install all of the dependencies: |
||||
|
||||
```bash |
||||
# Install NPM dependencies |
||||
npm install |
||||
``` |
||||
|
||||
```bash |
||||
# Compile the files... |
||||
sencha app watch |
||||
npm start # in a new terminal |
||||
``` |
||||
|
||||
### Make Changes |
||||
|
||||
This bit is up to you! |
||||
|
||||
#### How to find the code in the rambox codebase to fix/edit |
||||
|
||||
The best way to find out any code you wish to change/add or remove is using the GitHub search bar at the top of the repository page. |
||||
For example, you could search for a challenge name and the results will display all the files along with line numbers. |
||||
Then you can proceed to the files and verify this is the area that you were looking forward to edit. |
||||
Always feel free to reach out to the chat room when you are not certain of any thing specific in the code. |
||||
|
||||
#### Adding or Editing Services |
||||
|
||||
The services are stored inside the file `./api/services.json` in the `gh-pages` branch: |
||||
|
||||
https://github.com/ramboxapp/community-edition/blob/gh-pages/api/services.json |
||||
|
||||
Add your service to the *BOTTOM* of the array. |
||||
To see these changes you'll need to stop your `npm start` and `sencha app watch`, and then rerun those. |
||||
|
||||
### Creating a Pull Request |
||||
|
||||
#### What is a Pull Request? |
||||
|
||||
A pull request (PR) is a method of submitting proposed changes to the rambox repo (or any repo, for that matter). |
||||
You will make changes to copies of thefiles which make up rambox in a personal fork, then apply to have them accepted by rambox proper. |
||||
|
||||
#### Important: ALWAYS EDIT ON A BRANCH |
||||
|
||||
Take away only one thing from this document: Never, **EVER** make edits to the `master` branch. |
||||
ALWAYS make a new branch BEFORE you edit files. |
||||
This is critical, because your copy of `master` will be forever sullied and the only way to fix it is a difficult hard-reset and force-push process, or deleting your fork and re-forking. |
||||
|
||||
### Common Steps |
||||
|
||||
1. Once the edits have been committed, you will be prompted to create a pull request on your fork's GitHub Page. |
||||
1. By default, all pull requests should be against the rambox main repo, `master` branch. |
||||
- **Make sure that your Base Fork is set to ramboxapp/community-edition when raising a Pull Request.** |
||||
1. Submit a pull request. |
||||
1. The title (also called the subject) of your PR should be descriptive of your changes and succinctly indicates what is being fixed. |
||||
- **Do not add the issue number in the PR title or commit message.** |
||||
- Examples: `Added Service servicename` `Correct typo in menu` |
||||
1. In the body of your PR include a more detailed summary of the changes you made and why. |
||||
- If the PR is meant to fix an existing bug/issue then, at the end of your PR's description, append the keyword `closes` and #xxxx (where xxxx is the issue number). |
||||
- Example: `closes #1337`. This tells GitHub to automatically close the existing issue, if the PR is merged. |
||||
1. Indicate if you have tested on a local copy of the site or not. |
||||
|
||||
### How We Review and Merge Pull Requests |
||||
|
||||
Rambox has a team of volunteer Issue Moderators. These Issue Moderators routinely go through open pull requests in a process called [Quality Assurance](https://en.wikipedia.org/wiki/Quality_assurance) (QA). |
||||
|
||||
1. If an Issue Moderator QA's a pull request and confirms that the new code does what it is supposed without seeming to introduce any new bugs, they will comment: `"LGTM" which means "Looks good to me."` |
||||
1. Another Issue Moderator will QA the same pull request. |
||||
- Once they have also confirmed that the new code does what it is supposed to without seeming to introduce any new bugs, they will merge the pull request. |
||||
|
||||
If you would like to apply to join our Issue Moderator team - which is a Core Team position - message [@BerkeleyTrue](https://gitter.im/berkeleytrue) with links to 5 of your pull requests that have been accepted and 5 issues where you have helped someone else through commenting or QA'ing. |
||||
|
||||
### How We Close Stale Issues |
||||
|
||||
We will close any issues or pull requests that have been inactive for more than 15 days, except those that match the following criteria: |
||||
|
||||
- Bugs that are confirmed |
||||
- Pull requests that are waiting on other pull requests to be merged |
||||
- Features that are a part of a GitHub project |
||||
|
||||
### Next Steps |
||||
|
||||
#### If your PR is accepted |
||||
|
||||
Once your PR is accepted, you may delete the branch you created to submit it. |
||||
This keeps your working fork clean. |
||||
|
||||
You can do this with a press of a button on the GitHub PR interface. You can delete the local copy of the branch with: `git branch -D branch/to-delete-name` |
||||
|
||||
#### If your PR is rejected |
||||
|
||||
Don't despair! You should receive solid feedback as to why it was rejected and what changes are needed. |
||||
|
||||
Many Pull Requests, especially first Pull Requests, require correction or updating. |
||||
If you have used the GitHub interface to create your PR, you will need to close your PR, create a new branch, and re-submit. |
||||
|
||||
If you have a local copy of the repo, you can make the requested changes and amend your commit with: `git commit --amend` |
||||
This will update your existing commit. |
||||
When you push it to your fork you will need to do a force push to overwrite your old commit: `git push --force` |
||||
|
||||
Be sure to post in the PR conversation that you have made the requested changes. |
@ -1,6 +0,0 @@
|
||||
## To Do |
||||
|
||||
- Change theme. |
||||
- Deeplink to add new service. |
||||
- Dock Menu (http://electron.atom.io/docs/tutorial/desktop-environment-integration/#custom-dock-menu-os-x) |
||||
- Crash Reporter. |
@ -0,0 +1,29 @@
|
||||
# ./controller |
||||
|
||||
This folder contains the application's global controllers. |
||||
ViewControllers are located alongside their respective view class in `./view`. |
||||
These controllers are used for routing and other activities that span all views. |
||||
|
||||
# ./model |
||||
|
||||
This folder contains the application's (data) Model classes. |
||||
|
||||
# ./view |
||||
|
||||
This folder contains the views as well as ViewModels and ViewControllers depending on the application's architecture. |
||||
Pure MVC applications may not have ViewModels, for example. |
||||
For MVCVM applications or MVC applications that use ViewControllers, the following directory structure is recommended: |
||||
|
||||
```text |
||||
./view/ |
||||
foo/ # Some meaningful grouping of one or more views |
||||
Foo.js # The view class |
||||
FooController.js # The controller for Foo (a ViewController) |
||||
FooModel.js # The ViewModel for Foo |
||||
``` |
||||
|
||||
This structure helps keep these closely related classes together and easily identifiable in most tabbed IDE's or text editors. |
||||
|
||||
# ./store |
||||
|
||||
This folder contains any number of store instances or types that can then be reused in the application. |
@ -1,30 +0,0 @@
|
||||
# ./controller |
||||
|
||||
This folder contains the application's global controllers. ViewControllers are located |
||||
alongside their respective view class in `"./view"`. These controllers are used for routing |
||||
and other activities that span all views. |
||||
|
||||
# ./model |
||||
|
||||
This folder contains the application's (data) Model classes. |
||||
|
||||
# ./view |
||||
|
||||
This folder contains the views as well as ViewModels and ViewControllers depending on the |
||||
application's architecture. Pure MVC applications may not have ViewModels, for example. For |
||||
MVCVM applications or MVC applications that use ViewControllers, the following directory |
||||
structure is recommended: |
||||
|
||||
./view/ |
||||
foo/ # Some meaningful grouping of one or more views |
||||
Foo.js # The view class |
||||
FooController.js # The controller for Foo (a ViewController) |
||||
FooModel.js # The ViewModel for Foo |
||||
|
||||
This structure helps keep these closely related classes together and easily identifiable in |
||||
most tabbed IDE's or text editors. |
||||
|
||||
# ./store |
||||
|
||||
This folder contains any number of store instances or types that can then be reused in the |
||||
application. |
@ -1,42 +0,0 @@
|
||||
{ |
||||
"name": "Rambox", |
||||
"productName": "Rambox", |
||||
"version": "0.5.16", |
||||
"description": "Rambox", |
||||
"main": "electron/main.js", |
||||
"private": true, |
||||
"repository": { |
||||
"type": "git", |
||||
"url": "https://github.com/saenzramiro/rambox.git" |
||||
}, |
||||
"bugs": { |
||||
"url": "https://github.com/saenzramiro/rambox/issues" |
||||
}, |
||||
"homepage": "http://rambox.pro", |
||||
"keywords": [ |
||||
"Rambox", |
||||
"messaging", |
||||
"app", |
||||
"slack", |
||||
"whatsapp", |
||||
"facebook", |
||||
"messenger", |
||||
"telegram", |
||||
"google", |
||||
"hangouts", |
||||
"skype" |
||||
], |
||||
"author": "Ramiro Saenz <saenzramiro@gmail.com>", |
||||
"license": "GPL-3.0", |
||||
"dependencies": { |
||||
"@exponent/electron-cookies": "2.0.0", |
||||
"auth0-js": "^8.10.1", |
||||
"auth0-lock": "^10.22.0", |
||||
"auto-launch-patched": "5.0.2", |
||||
"electron-config": "0.2.1", |
||||
"electron-is-dev": "^0.3.0", |
||||
"mime": "^1.4.0", |
||||
"rimraf": "2.6.1", |
||||
"tmp": "0.0.28" |
||||
} |
||||
} |
@ -1,259 +0,0 @@
|
||||
Ext.define('Rambox.ux.Auth0', { |
||||
singleton: true |
||||
|
||||
// private
|
||||
,lock: null |
||||
,auth0: null |
||||
,backupCurrent: false |
||||
|
||||
,init: function() { |
||||
var me = this; |
||||
|
||||
var Auth0Lock = require('auth0-lock')['default']; |
||||
var Auth0 = require('auth0-js'); |
||||
|
||||
// Auth0 Config
|
||||
me.lock = new Auth0Lock(auth0Cfg.clientID, auth0Cfg.domain, { |
||||
autoclose: true |
||||
,autofocus: true |
||||
,auth: { |
||||
redirect: false |
||||
,params: {scope: 'openid offline_access'} |
||||
} |
||||
,theme: { |
||||
logo: 'resources/Icon.png' |
||||
,primaryColor: '#0675A0' |
||||
} |
||||
,languageDictionary: { |
||||
title: 'Rambox Account' |
||||
} |
||||
,popupOptions: { |
||||
nodeIntegration: 'no' |
||||
} |
||||
,language: localStorage.getItem('locale-auth0') === null ? 'en' : localStorage.getItem('locale-auth0') |
||||
}); |
||||
|
||||
me.auth0 = new Auth0.WebAuth({ clientID: auth0Cfg.clientID, domain : auth0Cfg.domain }); |
||||
|
||||
me.defineEvents(); |
||||
} |
||||
|
||||
,defineEvents: function() { |
||||
var me = this; |
||||
|
||||
me.lock.on("authenticated", function(authResult) { |
||||
me.lock.getProfile(authResult.idToken, function(err, profile) { |
||||
if ( err ) { |
||||
if ( err.error === 401 || err.error === 'Unauthorized' ) return me.renewToken(me.checkConfiguration); |
||||
Ext.Msg.hide(); |
||||
return Ext.Msg.show({ |
||||
title: 'Error' |
||||
,message: 'There was an error getting the profile: ' + err.error_description |
||||
,icon: Ext.Msg.ERROR |
||||
,buttons: Ext.Msg.OK |
||||
}); |
||||
} |
||||
|
||||
// Display a spinner while waiting
|
||||
Ext.Msg.wait(locale['app.window[29]'], locale['app.window[28]']); |
||||
|
||||
// Google Analytics Event
|
||||
ga_storage._trackEvent('Users', 'loggedIn'); |
||||
|
||||
// Set cookies to help Tooltip.io messages segmentation
|
||||
Ext.util.Cookies.set('auth0', true); |
||||
|
||||
// User is logged in
|
||||
// Save the profile and JWT.
|
||||
localStorage.setItem('profile', JSON.stringify(profile)); |
||||
localStorage.setItem('id_token', authResult.idToken); |
||||
localStorage.setItem('refresh_token', authResult.refreshToken); |
||||
|
||||
if ( !Ext.isEmpty(profile.user_metadata) && !Ext.isEmpty(profile.user_metadata.services) && !me.backupCurrent ) { |
||||
Ext.each(profile.user_metadata.services, function(s) { |
||||
var service = Ext.create('Rambox.model.Service', s); |
||||
service.save(); |
||||
Ext.getStore('Services').add(service); |
||||
}); |
||||
|
||||
require('electron').remote.getCurrentWindow().reload(); |
||||
} |
||||
|
||||
Ext.Msg.hide(); |
||||
Ext.cq1('app-main').getViewModel().set('username', profile.name); |
||||
Ext.cq1('app-main').getViewModel().set('avatar', profile.picture); |
||||
}); |
||||
}); |
||||
} |
||||
|
||||
,backupConfiguration: function(callback) { |
||||
var me = this; |
||||
|
||||
Ext.Msg.wait('Saving backup...', 'Please wait...'); |
||||
|
||||
// Getting all services
|
||||
var lastupdate = (new Date()).toJSON(); |
||||
var services = []; |
||||
Ext.getStore('Services').each(function(service) { |
||||
var s = Ext.clone(service); |
||||
delete s.data.id; |
||||
delete s.data.zoomLevel; |
||||
services.push(s.data); |
||||
}); |
||||
|
||||
Ext.Ajax.request({ |
||||
url: 'https://rambox.auth0.com/api/v2/users/'+Ext.decode(localStorage.getItem('profile')).user_id |
||||
,method: 'PATCH' |
||||
,headers: { authorization: "Bearer " + localStorage.getItem('id_token') } |
||||
,jsonData: { user_metadata: { services: services, services_lastupdate: lastupdate } } |
||||
,success: function(response) { |
||||
Ext.Msg.hide(); |
||||
// Save the last update in localStorage
|
||||
var profile = Ext.decode(localStorage.getItem('profile')); |
||||
if ( !profile.user_metadata ) profile.user_metadata = {}; |
||||
profile.user_metadata.services_lastupdate = lastupdate; |
||||
localStorage.setItem('profile', Ext.encode(profile)); |
||||
Ext.cq1('app-main').getViewModel().set('last_sync', new Date(lastupdate).toUTCString()); |
||||
|
||||
Ext.toast({ |
||||
html: '<i class="fa fa-check fa-3x fa-pull-left" aria-hidden="true"></i> Your configuration were successfully backed up.' |
||||
,title: 'Synchronize Configuration' |
||||
,width: 300 |
||||
,align: 't' |
||||
,closable: false |
||||
}); |
||||
|
||||
if ( Ext.isFunction(callback) ) callback.bind(me)(); |
||||
} |
||||
,failure: function(response) { |
||||
if ( response.status === 401 ) return me.renewToken(me.backupConfiguration); |
||||
|
||||
Ext.Msg.hide(); |
||||
Ext.toast({ |
||||
html: '<i class="fa fa-times fa-3x fa-pull-left" aria-hidden="true"></i> Error occurred when trying to backup your configuration.' |
||||
,title: 'Synchronize Configuration' |
||||
,width: 300 |
||||
,align: 't' |
||||
,closable: false |
||||
}); |
||||
|
||||
if ( Ext.isFunction(callback) ) callback.bind(me)(); |
||||
|
||||
console.error(response); |
||||
} |
||||
}); |
||||
} |
||||
|
||||
,restoreConfiguration: function() { |
||||
var me = this; |
||||
|
||||
me.lock.getProfile(localStorage.getItem('id_token'), function (err, profile) { |
||||
if ( err ) { |
||||
if ( err.error === 401 || err.error === 'Unauthorized' ) return me.renewToken(me.checkConfiguration); |
||||
return Ext.Msg.show({ |
||||
title: 'Error' |
||||
,message: 'There was an error getting the profile: ' + err.error_description |
||||
,icon: Ext.Msg.ERROR |
||||
,buttons: Ext.Msg.OK |
||||
}); |
||||
} |
||||
|
||||
// First we remove all current services
|
||||
Ext.cq1('app-main').getController().removeAllServices(false, function() { |
||||
Ext.each(profile.user_metadata.services, function(s) { |
||||
var service = Ext.create('Rambox.model.Service', s); |
||||
service.save(); |
||||
Ext.getStore('Services').add(service); |
||||
}); |
||||
|
||||
require('electron').remote.getCurrentWindow().reload(); |
||||
}); |
||||
}); |
||||
} |
||||
|
||||
,checkConfiguration: function() { |
||||
var me = this; |
||||
|
||||
me.lock.getProfile(localStorage.getItem('id_token'), function (err, profile) { |
||||
if ( err ) { |
||||
if ( err.error === 401 || err.error === 'Unauthorized' ) return me.renewToken(me.checkConfiguration); |
||||
return Ext.Msg.show({ |
||||
title: 'Error' |
||||
,message: 'There was an error getting the profile: ' + err.error_description |
||||
,icon: Ext.Msg.ERROR |
||||
,buttons: Ext.Msg.OK |
||||
}); |
||||
} |
||||
|
||||
if ( !profile.user_metadata ) { |
||||
Ext.toast({ |
||||
html: 'You don\'t have any backup yet.' |
||||
,title: 'Synchronize Configuration' |
||||
,width: 300 |
||||
,align: 't' |
||||
,closable: false |
||||
}); |
||||
return; |
||||
} |
||||
|
||||
if ( Math.floor(new Date(profile.user_metadata.services_lastupdate) / 1000) > Math.floor(new Date(Ext.decode(localStorage.getItem('profile')).user_metadata.services_lastupdate) / 1000) ) { |
||||
Ext.toast({ |
||||
html: 'Your settings are out of date.' |
||||
,title: 'Synchronize Configuration' |
||||
,width: 300 |
||||
,align: 't' |
||||
,closable: false |
||||
}); |
||||
} else { |
||||
Ext.toast({ |
||||
html: 'Latest backup is already applied.' |
||||
,title: 'Synchronize Configuration' |
||||
,width: 300 |
||||
,align: 't' |
||||
,closable: false |
||||
}); |
||||
} |
||||
}); |
||||
} |
||||
|
||||
,renewToken: function(callback) { |
||||
var me = this; |
||||
|
||||
Ext.Ajax.request({ |
||||
url: 'https://rambox.auth0.com/delegation' |
||||
,method: 'POST' |
||||
,jsonData: { |
||||
grant_type: 'urn:ietf:params:oauth:grant-type:jwt-bearer' |
||||
,client_id: auth0Cfg.clientID |
||||
,refresh_token: localStorage.getItem('refresh_token') |
||||
,api_type: 'app' |
||||
} |
||||
,success: function(response) { |
||||
var json = Ext.decode(response.responseText); |
||||
localStorage.setItem('id_token', json.id_token); |
||||
|
||||
if ( Ext.isFunction(callback) ) callback.bind(me)(); |
||||
} |
||||
,failure: function(response) { |
||||
console.error(response); |
||||
} |
||||
}); |
||||
} |
||||
|
||||
,login: function() { |
||||
var me = this; |
||||
|
||||
me.lock.show(); |
||||
} |
||||
|
||||
,logout: function() { |
||||
var me = this; |
||||
|
||||
localStorage.removeItem('profile'); |
||||
localStorage.removeItem('id_token'); |
||||
localStorage.removeItem('refresh_token'); |
||||
|
||||
// Set cookies to help Tooltip.io messages segmentation
|
||||
Ext.util.Cookies.set('auth0', false); |
||||
} |
||||
}); |
@ -1,19 +1,29 @@
|
||||
const {app, autoUpdater, ipcMain} = require('electron'); |
||||
const version = app.getVersion(); |
||||
const platform = process.platform === 'darwin' ? 'osx' : process.platform; |
||||
const url = `https://getrambox.herokuapp.com/update/${platform}/${version}`; |
||||
const { app, ipcMain, BrowserWindow } = require('electron'); |
||||
const { autoUpdater } = require("electron-updater"); |
||||
|
||||
// autoUpdater.logger = require("electron-log");
|
||||
// autoUpdater.logger.transports.file.level = "debug";
|
||||
// autoUpdater.currentVersion = '0.8.0';
|
||||
// autoUpdater.updateConfigPath = path.join(__dirname, 'dev-app-update.yml');
|
||||
|
||||
autoUpdater.setFeedURL({ |
||||
"provider": "github", |
||||
"owner": "ramboxapp", |
||||
"repo": "download", |
||||
"vPrefixedTagName": true |
||||
}); |
||||
|
||||
const initialize = (window) => { |
||||
const webContents = window.webContents; |
||||
const send = webContents.send.bind(window.webContents); |
||||
autoUpdater.on('checking-for-update', (event) => send('autoUpdater:checking-for-update:')); |
||||
autoUpdater.on('update-downloaded', (event, ...args) => send('autoUpdater:update-downloaded', ...args)); |
||||
ipcMain.on('autoUpdater:quit-and-install', (event) => autoUpdater.quitAndInstall()); |
||||
ipcMain.on('autoUpdater:check-for-updates', (event) => autoUpdater.checkForUpdates()); |
||||
webContents.on('did-finish-load', () => { |
||||
autoUpdater.setFeedURL(url); |
||||
//autoUpdater.checkForUpdates();
|
||||
autoUpdater.on('checking-for-update', (event) => send('autoUpdater:checking-for-update')); |
||||
autoUpdater.on('update-downloaded', (...args) => send('autoUpdater:update-downloaded', ...args)); |
||||
ipcMain.on('autoUpdater:quit-and-install', (event) => { |
||||
app.removeAllListeners('window-all-closed'); |
||||
BrowserWindow.getAllWindows().forEach((browserWindow) => browserWindow.removeAllListeners('close')); |
||||
autoUpdater.quitAndInstall(true, true); |
||||
}); |
||||
ipcMain.on('autoUpdater:check-for-updates', (event) => autoUpdater.checkForUpdates()); |
||||
}; |
||||
|
||||
module.exports = {initialize}; |
||||
|
@ -1,3 +1,3 @@
|
||||
# ext-aria/resources |
||||
|
||||
This folder contains static resources (typically an `"images"` folder as well). |
||||
This folder contains static resources (typically an `images` folder as well). |
||||
|
@ -1,3 +1,3 @@
|
||||
# ext-aria/resources |
||||
|
||||
This folder contains static resources (typically an `"images"` folder as well). |
||||
This folder contains static resources (typically an `images` folder as well). |
||||
|
@ -1,4 +1,4 @@
|
||||
# ext-aria/sass/etc |
||||
|
||||
This folder contains miscellaneous SASS files. Unlike `"ext-aria/sass/etc"`, these files |
||||
need to be used explicitly. |
||||
This folder contains miscellaneous SASS files. |
||||
Unlike `ext-aria/sass/etc`, these files need to be used explicitly. |
||||
|
@ -1,38 +1,45 @@
|
||||
# rambox-default-theme/examples |
||||
|
||||
This folder contains example applications demonstrating this package. Each of |
||||
these applications will be built as part of the package build: |
||||
This folder contains example applications demonstrating this package. |
||||
Each of these applications will be built as part of the package build: |
||||
|
||||
cd /path/to/package |
||||
sencha package build |
||||
```bash |
||||
cd /path/to/package |
||||
sencha package build |
||||
``` |
||||
|
||||
As applications, they can also be built individually: |
||||
|
||||
cd /path/to/package/examples/example-app |
||||
sencha app build |
||||
```bash |
||||
cd /path/to/package/examples/example-app |
||||
sencha app build |
||||
``` |
||||
|
||||
Or you can build all examples as a group: |
||||
|
||||
cd /path/to/package |
||||
sencha ant examples |
||||
```bash |
||||
cd /path/to/package |
||||
sencha ant examples |
||||
``` |
||||
|
||||
The ideal location for the example builds to reside is the `"./build"` folder: |
||||
|
||||
/path/to/package/ |
||||
src/ |
||||
resources/ |
||||
```text |
||||
/path/to/package/ |
||||
src/ |
||||
resources/ |
||||
... |
||||
examples/ |
||||
example-app/ |
||||
other-example/ |
||||
... |
||||
build/ |
||||
resources/ |
||||
examples/ |
||||
example-app/ |
||||
other-example/ |
||||
... |
||||
build/ |
||||
resources/ |
||||
examples/ |
||||
example-app/ |
||||
other-example/ |
||||
``` |
||||
|
||||
This can be specified in the `".sencha/app/build.properties"` file for the |
||||
example applications: |
||||
This can be specified in the `".sencha/app/build.properties"` file for the example applications: |
||||
|
||||
build.dir=${package.build.dir}/examples/${app.name} |
||||
`build.dir=${package.build.dir}/examples/${app.name}` |
||||
|
@ -1,4 +1,4 @@
|
||||
# rambox-default-theme/sass/etc |
||||
|
||||
This folder contains miscellaneous SASS files. Unlike `"rambox-default-theme/sass/etc"`, these files |
||||
need to be used explicitly. |
||||
This folder contains miscellaneous SASS files. |
||||
Unlike `"rambox-default-theme/sass/etc"`, these files need to be used explicitly. |
||||
|
@ -1,4 +1,4 @@
|
||||
# rambox-default-theme/sass/src |
||||
|
||||
This folder contains SASS sources that mimic the component-class hierarchy. These files |
||||
are gathered in to a build of the CSS based on classes that are used by the build. |
||||
This folder contains SASS sources that mimic the component-class hierarchy. |
||||
These files are gathered in to a build of the CSS based on classes that are used by the build. |
||||
|
@ -1,4 +1,3 @@
|
||||
# rambox-default-theme/src |
||||
|
||||
This folder contains source code that will automatically be added to the classpath when |
||||
the package is used. |
||||
This folder contains source code that will automatically be added to the classpath when the package is used. |
||||
|
@ -1,4 +0,0 @@
|
||||
# Rambox/resources |
||||
|
||||
This folder contains resources (such as images) needed by the application. This file can |
||||
be removed if not needed. |
After Width: | Height: | Size: 2.7 KiB |
Before Width: | Height: | Size: 8.6 KiB |
Before Width: | Height: | Size: 49 KiB |
After Width: | Height: | Size: 62 KiB |
Before Width: | Height: | Size: 20 KiB After Width: | Height: | Size: 2.2 KiB |
After Width: | Height: | Size: 6.9 KiB |
Before Width: | Height: | Size: 70 KiB After Width: | Height: | Size: 4.6 KiB |
After Width: | Height: | Size: 9.7 KiB |
After Width: | Height: | Size: 4.0 KiB |
Before Width: | Height: | Size: 30 KiB |
After Width: | Height: | Size: 3.9 KiB |
Before Width: | Height: | Size: 18 KiB |
After Width: | Height: | Size: 2.9 KiB |
Before Width: | Height: | Size: 68 KiB After Width: | Height: | Size: 2.3 KiB |
Before Width: | Height: | Size: 52 KiB |
After Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 56 KiB After Width: | Height: | Size: 3.4 KiB |
Before Width: | Height: | Size: 4.9 KiB After Width: | Height: | Size: 2.2 KiB |
Before Width: | Height: | Size: 52 KiB After Width: | Height: | Size: 2.2 KiB |
After Width: | Height: | Size: 2.4 KiB |
After Width: | Height: | Size: 2.3 KiB |
After Width: | Height: | Size: 1.6 KiB |
Before Width: | Height: | Size: 53 KiB After Width: | Height: | Size: 2.1 KiB |
Before Width: | Height: | Size: 48 KiB After Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 47 KiB After Width: | Height: | Size: 1.2 KiB |
Before Width: | Height: | Size: 56 KiB After Width: | Height: | Size: 2.8 KiB |
Before Width: | Height: | Size: 48 KiB After Width: | Height: | Size: 1.1 KiB |