Compare commits
809 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
c612fbcfb7 | ||
|
11c86c7031 | ||
|
e2ffb09ed1 | ||
|
77f1a073a7 | ||
|
168ead7ed5 | ||
|
0e5b463acf | ||
|
2e8ae301c5 | ||
|
ab622d5cd2 | ||
|
a6e6cf96d6 | ||
|
58b4d20185 | ||
|
39ea94daa8 | ||
|
0c6143704a | ||
|
5d0770ca36 | ||
|
1ae45f6cbb | ||
|
eb69d73190 | ||
|
2b2656b7e1 | ||
|
6c7e3e8c5d | ||
|
063049ec8e | ||
|
787eae7a80 | ||
|
5b1b8e0b2d | ||
|
18a62ca831 | ||
|
de0b2eedc9 | ||
|
d7b389e407 | ||
|
14825ebe29 | ||
|
34aeac9787 | ||
|
fc3f84da6e | ||
|
6ed6819cef | ||
|
370bb3b068 | ||
|
570431e39c | ||
|
efc4623a0b | ||
|
65d8aab429 | ||
|
6c9d480736 | ||
|
9fde25fc8e | ||
|
e6a59ae6d0 | ||
|
5b68fe731a | ||
|
c8eff2d313 | ||
|
74745a8603 | ||
|
0aadd1add9 | ||
|
b3f61f81e2 | ||
|
90befd2b8e | ||
|
bf5483950c | ||
|
bd7e005c91 | ||
|
e08cbb4c96 | ||
|
c93df78f1d | ||
|
bfb1be8aa5 | ||
|
86466f072b | ||
|
b33599f4f2 | ||
|
d0f29ec3cf | ||
|
be7626b698 | ||
|
01b1a8e029 | ||
|
09fa3acc4d | ||
|
04d9296733 | ||
|
0b57b1cbd2 | ||
|
0a843a0b1f | ||
|
8d3611e30c | ||
|
76c226c57b | ||
|
673afead73 | ||
|
8e5b874490 | ||
|
d9ea66ef85 | ||
|
fbd9db897e | ||
|
1995acab95 | ||
|
fe9c7587d8 | ||
|
9eb29b5707 | ||
|
99462d0ae0 | ||
|
89d56b3ae4 | ||
|
a61dea8c40 | ||
|
cc4bb962a6 | ||
|
0a3d085c5a | ||
|
17b5d4dfaa | ||
|
95f087cfd6 | ||
|
9090c28f04 | ||
|
fe5723f75d | ||
|
9637c89b1b | ||
|
4db158e8d9 | ||
|
05547c2685 | ||
|
4f9a298273 | ||
|
2a7b1b1f0d | ||
|
21014ff788 | ||
|
9611aed707 | ||
|
ae677a2194 | ||
|
f19d9b9419 | ||
|
fe6830cd83 | ||
|
4932dda11c | ||
|
37fbca2ead | ||
|
093296dbac | ||
|
4f83c95d20 | ||
|
0f72db1961 | ||
|
7063b26a5f | ||
|
4889290d3e | ||
|
b1f88f28f4 | ||
|
ee241e7e3f | ||
|
057a5f05a5 | ||
|
06b9232552 | ||
|
6258c40a24 | ||
|
9f53ddd3f3 | ||
|
e199be6363 | ||
|
788f4f047c | ||
|
34f86997cb | ||
|
291f4e28d8 | ||
|
8f921c8a1f | ||
|
8c810a1818 | ||
|
d07850b6ef | ||
|
cb9b8c6244 | ||
|
1e11b804ab | ||
|
0719eeeb90 | ||
|
f363e78601 | ||
|
b340fe3569 | ||
|
429a2b7749 | ||
|
c18b09c658 | ||
|
7bcb52214b | ||
|
34e6c2c381 | ||
|
b6b84a541b | ||
|
76186e513f | ||
|
5930681095 | ||
|
1d7457a4a2 | ||
|
7503d79c06 | ||
|
24319e1c49 | ||
|
48b788eaef | ||
|
6b071fc1e7 | ||
|
942f4696e2 | ||
|
022f715b98 | ||
|
7311cc8e4b | ||
|
7f6755b5de | ||
|
a482529fdc | ||
|
5798529fe2 | ||
|
a362356a72 | ||
|
4896d9a101 | ||
|
d244ab9fca | ||
|
570599c19d | ||
|
a9f6f157fa | ||
|
c35abad20a | ||
|
7f687e0a84 | ||
|
ea24ae3b5f | ||
|
55597ae1ba | ||
|
6ee0ed3444 | ||
|
d5a1a829e3 | ||
|
5c72378b39 | ||
|
e3603cfec1 | ||
|
90d337a51f | ||
|
1975715dbd | ||
|
85be66886a | ||
|
d4e349f260 | ||
|
059e166402 | ||
|
1d7c2f3b80 | ||
|
11c3750690 | ||
|
808b1bf657 | ||
|
7c4f9d574c | ||
|
e31028f5a9 | ||
|
0f1ca4e85b | ||
|
003b3f3edb | ||
|
69cc1bd281 | ||
|
31fe4d1591 | ||
|
675efd6cd3 | ||
|
0f0d97dab5 | ||
|
4b19239f6f | ||
|
a74e849faf | ||
|
d0f7f586e8 | ||
|
3b9e87e11b | ||
|
46b335eb9f | ||
|
9bdf86fc24 | ||
|
167e30dee1 | ||
|
16186811a4 | ||
|
d2031d57d2 | ||
|
6e54ba2f73 | ||
|
77d6da3a24 | ||
|
65caa0fe9d | ||
|
d6040b028e | ||
|
509074c263 | ||
|
6ad53ec2aa | ||
|
e275ecac07 | ||
|
2d0cc10e44 | ||
|
af6c715a5b | ||
|
3360e4d167 | ||
|
2331f21f90 | ||
|
58bf1a3091 | ||
|
3cf135b670 | ||
|
5ce0541937 | ||
|
19aa32feb4 | ||
|
aedf75b9f8 | ||
|
8b7e0b57c5 | ||
|
3dfd912266 | ||
|
5bd767d744 | ||
|
b39ba9cd00 | ||
|
07ffb9d995 | ||
|
2479aa597b | ||
|
8c34337136 | ||
|
0faf399abd | ||
|
7704a00d7b | ||
|
96b6ff7fff | ||
|
3dedb6b0f6 | ||
|
13457f8a6a | ||
|
bc966c46c6 | ||
|
a5d04198dc | ||
|
c3803b2e84 | ||
|
aa8b9789f7 | ||
|
70c8364349 | ||
|
ea306c7d0c | ||
|
33bc45d179 | ||
|
f7d0f7d5eb | ||
|
f181c52d13 | ||
|
f7e3f4da79 | ||
|
2365c23af7 | ||
|
73496c6b7c | ||
|
6500b624f5 | ||
|
2525ad8393 | ||
|
344c61bd23 | ||
|
248e7efdb0 | ||
|
530e9c3859 | ||
|
594653a753 | ||
|
cb5c197994 | ||
|
c8bffa006b | ||
|
df76ca0807 | ||
|
1e00e2b733 | ||
|
2b834f0233 | ||
|
af34531ee0 | ||
|
b5049ea855 | ||
|
785f4632c7 | ||
|
fcaddbbd3b | ||
|
ddf23d1ea5 | ||
|
dabc9e3c93 | ||
|
f89010bd98 | ||
|
cf84bd74f1 | ||
|
b95aa583a9 | ||
|
21c976bb3d | ||
|
63fe57731e | ||
|
668f316465 | ||
|
55fa4a1bcd | ||
|
bdeac2533f | ||
|
2ed333ab82 | ||
|
8d11090f7d | ||
|
336e9ac0bd | ||
|
0a4fd4ee2c | ||
|
b90b164552 | ||
|
b7a77797f6 | ||
|
ebcf431363 | ||
|
ba315be9e5 | ||
|
d5a0dce27a | ||
|
1a47a2aa3b | ||
|
d5221c0d17 | ||
|
0be36ea9e8 | ||
|
c03fd20bae | ||
|
c632cc6dea | ||
|
908c49c584 | ||
|
d591dbc0cd | ||
|
945703952b | ||
|
9102b6d1c3 | ||
|
4daab5d77b | ||
|
5e8baf027e | ||
|
34525afe56 | ||
|
c73bc83f7d | ||
|
ce11fcffbc | ||
|
239157df30 | ||
|
e7d97d4b66 | ||
|
b2c4802310 | ||
|
60b366a7f4 | ||
|
c732fbb363 | ||
|
41b199c578 | ||
|
88854ad451 | ||
|
3882f1483b | ||
|
882bf8ae11 | ||
|
c396800dfa | ||
|
5a8ecd593d | ||
|
84693e6404 | ||
|
476df8219f | ||
|
448c889e56 | ||
|
52ca5275b1 | ||
|
0fd6e2c878 | ||
|
85599f8a33 | ||
|
5f2a7985d8 | ||
|
b1b5e37ab6 | ||
|
2f26146228 | ||
|
6bfbebc51e | ||
|
762fd54788 | ||
|
57ab18355d | ||
|
8d9a2f505f | ||
|
c20da80bda | ||
|
e99bd06370 | ||
|
6f5446f218 | ||
|
c1c25f0e28 | ||
|
cdca37e59d | ||
|
6137120b2e | ||
|
f0912f9e9d | ||
|
1623d0f60a | ||
|
96db9677c6 | ||
|
bcfdec87c9 | ||
|
488e321613 | ||
|
90fcae1932 | ||
|
271c5fd9d2 | ||
|
bd2b564876 | ||
|
99a45ab56e | ||
|
18d12b6746 | ||
|
90013da52c | ||
|
ce6680ae19 | ||
|
bdbaf26e9b | ||
|
c487eaa846 | ||
|
69318824f6 | ||
|
fc918f1e3c | ||
|
04c574c6f9 | ||
|
2f9f76b361 | ||
|
fc12ebd477 | ||
|
daa9e20e48 | ||
|
ce2581d092 | ||
|
e9ac5b46d8 | ||
|
f723bcd7bb | ||
|
5b2d98052c | ||
|
3dde33336f | ||
|
2139d8af19 | ||
|
686405142b | ||
|
0022264a8e | ||
|
2d54c23a2c | ||
|
6abeb383a8 | ||
|
6549a49031 | ||
|
4a69e639b5 | ||
|
e9aa3b8743 | ||
|
4097119d25 | ||
|
fe3ea4ea23 | ||
|
42ccda167c | ||
|
52238864c4 | ||
|
e3ed699260 | ||
|
936ffaf768 | ||
|
d575de2459 | ||
|
0f1b8c8856 | ||
|
35ce185ce9 | ||
|
69e75afd88 | ||
|
731b00790c | ||
|
469e8185e2 | ||
|
f857ae3841 | ||
|
6be58e6506 | ||
|
96551400c6 | ||
|
ffc1da6ad1 | ||
|
a7d114c7dd | ||
|
d6a8e16aad | ||
|
842e1f5e11 | ||
|
f18970f67f | ||
|
2ada89e665 | ||
|
3cce65299b | ||
|
e171a0dd1a | ||
|
7256fa4e43 | ||
|
d4a72b1b11 | ||
|
65ca06e7ea | ||
|
962a6e9b08 | ||
|
e737b39305 | ||
|
8637748cb7 | ||
|
2533c80db9 | ||
|
cc21fff7f9 | ||
|
dea5092ae0 | ||
|
788989c7e5 | ||
|
b699c3c9bd | ||
|
d0ab52a256 | ||
|
af6146a392 | ||
|
f5de166a4e | ||
|
015d1f58e6 | ||
|
cfa46e4512 | ||
|
14ecb4a8e4 | ||
|
912c10b5e9 | ||
|
f7cfe7876b | ||
|
c3f9b7565f | ||
|
b5f85b6700 | ||
|
2c082bb198 | ||
|
ac691a8a0a | ||
|
b8610fc555 | ||
|
48954756e8 | ||
|
401c3fbe36 | ||
|
79d24d5f36 | ||
|
7ef1e285fd | ||
|
4b1ca1970a | ||
|
46ef96a725 | ||
|
632d0b5fb0 | ||
|
08cd031367 | ||
|
2132cfd45b | ||
|
3b1f4ffd75 | ||
|
c7adecdbfe | ||
|
97a839c1ac | ||
|
d6a8de6d42 | ||
|
87ce762a4d | ||
|
a671006e56 | ||
|
8327617df6 | ||
|
551c031c42 | ||
|
3aead503c1 | ||
|
c7c080d029 | ||
|
707ae0547a | ||
|
416848c79f | ||
|
c276ea69bc | ||
|
e5499f08e3 | ||
|
a8070a10d2 | ||
|
f5993a6ce7 | ||
|
23fd639512 | ||
|
1c3d8a1fba | ||
|
da309e8ee9 | ||
|
bc7323b717 | ||
|
48d197ad06 | ||
|
7b837066ec | ||
|
1670528bec | ||
|
b0c779b514 | ||
|
e7ce56c252 | ||
|
b8bcadca36 | ||
|
aa4b1a8acd | ||
|
70e348ac50 | ||
|
7068d354e8 | ||
|
8b78c22be4 | ||
|
8576de6a39 | ||
|
c4f7a85baf | ||
|
2870906c09 | ||
|
17b3f097b4 | ||
|
2a556e60d6 | ||
|
7f1c17043e | ||
|
a5687fe03b | ||
|
60b81a46ea | ||
|
b390b9fc42 | ||
|
041c16490b | ||
|
4765d31a0b | ||
|
4df73eb45c | ||
|
4dec0ad0ae | ||
|
0ef346e6c9 | ||
|
bf663d575b | ||
|
e2fe515a97 | ||
|
d026eac8f0 | ||
|
a2b72e1098 | ||
|
2239744cec | ||
|
884c9cf008 | ||
|
7f641d6d0b | ||
|
4575e0679c | ||
|
c42dd74329 | ||
|
93dccda48c | ||
|
affbdb12c0 | ||
|
69643f4c67 | ||
|
ad27b21f65 | ||
|
f39017b5ee | ||
|
1a689fa8d5 | ||
|
443635e13a | ||
|
ce1fdc2bc0 | ||
|
007070b8ba | ||
|
19747761c5 | ||
|
8c66b646cd | ||
|
b3c068ef8a | ||
|
b4a8b1344a | ||
|
b39d94cd97 | ||
|
0cfc9a0eaa | ||
|
18a6f20390 | ||
|
edfcf61325 | ||
|
f1c87b4230 | ||
|
b94530b93d | ||
|
f78e6dfc64 | ||
|
d3d8e47dfc | ||
|
1016c46148 | ||
|
56b00f7638 | ||
|
40b8f4385b | ||
|
bba2eb401d | ||
|
c9ca2eeb23 | ||
|
fc7d5ecfe3 | ||
|
088a0b0839 | ||
|
d9ff0c3cf4 | ||
|
d9d5e9473d | ||
|
7e25cfc774 | ||
|
f850065cf9 | ||
|
d3b2294a16 | ||
|
473097fa02 | ||
|
9a2930970c | ||
|
8d3723c0f1 | ||
|
943de9045d | ||
|
30688cbe5a | ||
|
101357a694 | ||
|
9bbee262f9 | ||
|
6cd3cf0cb5 | ||
|
5d584ed2b6 | ||
|
a27489c28f | ||
|
dcdcbf703e | ||
|
6fbe0e5056 | ||
|
709e139b82 | ||
|
3517fbd861 | ||
|
0da6ea7f53 | ||
|
23eb8b4dc1 | ||
|
faaf71cee9 | ||
|
165316e9c4 | ||
|
fcecdb26e9 | ||
|
1d24b7131f | ||
|
06cfd0021d | ||
|
b73bda4f0d | ||
|
fa6e0595a9 | ||
|
9e07ad286d | ||
|
e42b12f9b2 | ||
|
8951732f3c | ||
|
ba10f70b12 | ||
|
ddbbd69b4c | ||
|
cbb86faadc | ||
|
7496738215 | ||
|
248bb29ccf | ||
|
5a9e0f1e06 | ||
|
399e0c6b80 | ||
|
cb6a91d7d2 | ||
|
92b76c3fa9 | ||
|
715a8356eb | ||
|
797aae9849 | ||
|
44227f2d67 | ||
|
2655a49025 | ||
|
b0c8ea767c | ||
|
f3e448f420 | ||
|
7efd16a6e3 | ||
|
cc9e342f04 | ||
|
3e55f1c648 | ||
|
d83856be32 | ||
|
83558e9354 | ||
|
190275c31a | ||
|
464dfeaa15 | ||
|
1d7e8c5a6b | ||
|
a79034ebc8 | ||
|
a17d31eee9 | ||
|
91bce0abb4 | ||
|
dbdb4e01ff | ||
|
ec0b3b1789 | ||
|
ec1077153b | ||
|
a7794230cf | ||
|
9b5f6f3cad | ||
|
49403ed07c | ||
|
8f93d78dd8 | ||
|
b8dec0e9aa | ||
|
4b50274bb2 | ||
|
a1f00bf5f5 | ||
|
0b15f55689 | ||
|
ee312bdfa2 | ||
|
425e2bd54f | ||
|
4014e4b852 | ||
|
0aa438f859 | ||
|
19a8337e9e | ||
|
48b4b25317 | ||
|
dfd0e65651 | ||
|
1cdefa8492 | ||
|
98b2a2af09 | ||
|
237ae10be1 | ||
|
a58b78d11a | ||
|
72d8152df5 | ||
|
2668c28737 | ||
|
103824aa89 | ||
|
18c8709fd3 | ||
|
aa7dd8a75f | ||
|
dad7cb26d5 | ||
|
ca505bf637 | ||
|
b7c180355f | ||
|
80d0952d1f | ||
|
c777a9f949 | ||
|
7ecefa554a | ||
|
114c63cfd7 | ||
|
ac5c914077 | ||
|
247ac2de07 | ||
|
58a676d789 | ||
|
2b1258bea0 | ||
|
3211722492 | ||
|
f1574f3efb | ||
|
2eb8caebc0 | ||
|
5cea5d76d2 | ||
|
f29a1df3f9 | ||
|
cae5e67557 | ||
|
072c2e3718 | ||
|
45e2ebe6f4 | ||
|
551da05c6c | ||
|
49603c6f80 | ||
|
1275afcf33 | ||
|
f9e7e5f9c2 | ||
|
d33b0156fc | ||
|
258fcf29c9 | ||
|
30993e40f6 | ||
|
82d3b5040e | ||
|
9cc6ca0df7 | ||
|
b5e6f9b860 | ||
|
ccd98fb113 | ||
|
06d9a8af85 | ||
|
36150bdbef | ||
|
7b2070b2bd | ||
|
e0aafa5f47 | ||
|
75ced2d18c | ||
|
d6695da97d | ||
|
b4a1bb1218 | ||
|
903b29c4c0 | ||
|
8fd393d34a | ||
|
122546eae1 | ||
|
49d0c968b9 | ||
|
b40ae3480f | ||
|
96480a5c50 | ||
|
db4932b9ce | ||
|
d4c6b33ed5 | ||
|
daa1d255e2 | ||
|
bb7ed02c12 | ||
|
236293ce86 | ||
|
9ee54a008a | ||
|
113c7bb6f0 | ||
|
61301b3f98 | ||
|
f56a67af9e | ||
|
0c804cdf24 | ||
|
99d59ee9ad | ||
|
be827bac72 | ||
|
4073feb5b3 | ||
|
237ce422c1 | ||
|
a754c18391 | ||
|
26857fea74 | ||
|
d784b7407f | ||
|
ec95639600 | ||
|
5fab8e1465 | ||
|
71d2ff10dc | ||
|
730263ca55 | ||
|
2caaccabc0 | ||
|
922f83357f | ||
|
7d8284e3ee | ||
|
4fb4431802 | ||
|
30acf50ebe | ||
|
1ffa6f793a | ||
|
759faf9647 | ||
|
0960ef83b6 | ||
|
43168e496a | ||
|
c1fc823a19 | ||
|
d81ef1ec10 | ||
|
c240ee117d | ||
|
06b10974ab | ||
|
3e617ae005 | ||
|
506c93340a | ||
|
d6cef5c787 | ||
|
ca816a5745 | ||
|
aa5c110448 | ||
|
34105d0f28 | ||
|
78ccc49197 | ||
|
98f6611a7a | ||
|
8c6afea314 | ||
|
a1ebf1f4fb | ||
|
af29d651b5 | ||
|
b7081b32de | ||
|
1e15c9fb9c | ||
|
c9d938934b | ||
|
67bdb1515d | ||
|
9c414c92e2 | ||
|
e497612b6c | ||
|
b6cf568e31 | ||
|
f0721afb88 | ||
|
a7301838b9 | ||
|
9a76c81e7d | ||
|
9ba30f6dad | ||
|
7f82e3c80a | ||
|
626c8563f2 | ||
|
e61bba9554 | ||
|
9b4d3b7018 | ||
|
1660227a54 | ||
|
26eb27eae3 | ||
|
12b2d3ef77 | ||
|
2d08633147 | ||
|
20cb199cbd | ||
|
a8c6a78a9a | ||
|
42a3beb0b2 | ||
|
9269bd6898 | ||
|
c224de1994 | ||
|
330523e2b0 | ||
|
848e40da9c | ||
|
7e0420073b | ||
|
c6b35c82e8 | ||
|
5926612e45 | ||
|
81465fd2f9 | ||
|
9a453f768c | ||
|
8c7d4c3f3c | ||
|
e6449384ac | ||
|
69ad16e3ce | ||
|
dfa72936f2 | ||
|
25d84fe3df | ||
|
0d6410de8e | ||
|
d032babf1a | ||
|
9da65f9fc7 | ||
|
05504d8e5d | ||
|
2b26796719 | ||
|
3d54b886dd | ||
|
cb33b695dd | ||
|
49fe8fbdb8 | ||
|
6eae9a7114 | ||
|
844b37d165 | ||
|
0ce49c3535 | ||
|
0c9160f8fb | ||
|
62e60cffd3 | ||
|
8fa939ae30 | ||
|
9845ae5050 | ||
|
71654698d3 | ||
|
b2a15ceb9d | ||
|
e13c268e9d | ||
|
d59379a0f1 | ||
|
8eea5f56cd | ||
|
a89db0c259 | ||
|
0b28a9eea1 | ||
|
351c395f82 | ||
|
4c7912815c | ||
|
344c0a8005 | ||
|
fc9f846cb5 | ||
|
c40fac67d0 | ||
|
fc8a0589dd | ||
|
1899d3361b | ||
|
b67c22f33b | ||
|
5043a5188b | ||
|
08e18b40b5 | ||
|
365b6d8019 | ||
|
53c4cb645f | ||
|
64a31372b8 | ||
|
4919bc8a6e | ||
|
554f79fb94 | ||
|
364f71dd08 | ||
|
a75f1b61bc | ||
|
b6735a01ea | ||
|
f72f7efe46 | ||
|
bf4870f087 | ||
|
cdc0ac535f | ||
|
cbbefe19d2 | ||
|
1cc8f16ec5 | ||
|
9b7af2eb46 | ||
|
d7749a924b | ||
|
e9b69db318 | ||
|
13c787709f | ||
|
e6f09d5ed0 | ||
|
26b91794ce | ||
|
6c39a959bf | ||
|
92b700c985 | ||
|
0e50d247e2 | ||
|
064527a17e | ||
|
fa73f54ed7 | ||
|
2d5463681c | ||
|
63100a40e3 | ||
|
1e739d4cd5 | ||
|
65aa7982e7 | ||
|
b37279d1a0 | ||
|
20c16d2a76 | ||
|
580653a1ad | ||
|
b8503b6f03 | ||
|
fd16ed9eda | ||
|
a690d4c1e9 | ||
|
96315dc365 | ||
|
571089cda4 | ||
|
b5367d999a | ||
|
32d9d59a4e | ||
|
94595597d5 | ||
|
f2d28d6970 | ||
|
c3ea2480da | ||
|
66e9dafaa5 | ||
|
ad845dbe66 | ||
|
f0d7ec72cf | ||
|
19d53b4c14 | ||
|
131d945638 | ||
|
cadc1f4998 | ||
|
5c5d050218 | ||
|
fef8e2a254 | ||
|
c8d0f5500e | ||
|
8b2852ec9d | ||
|
00cc9fb713 | ||
|
8639e40631 | ||
|
f72a09fde0 | ||
|
3d3d5ba883 | ||
|
da297f03f7 | ||
|
a62d9311e1 | ||
|
9c6fe57279 | ||
|
593c828b67 | ||
|
aeab3670d0 | ||
|
e3d19a9175 | ||
|
24b4f4ce8a | ||
|
aa725f11f8 | ||
|
c2f5c46451 | ||
|
4d4e41a637 | ||
|
7b3daeb17b | ||
|
21528dc50b | ||
|
c186be6cb5 | ||
|
774742b98c | ||
|
e62591bf1c | ||
|
39cb681bf9 | ||
|
aa41483af5 | ||
|
1f2ad2ebff | ||
|
a6e79b537b | ||
|
3bbfc85877 | ||
|
ef969b582d | ||
|
4a35f27224 | ||
|
e2f3e420f1 | ||
|
1f9365ae97 | ||
|
4cf5b13d06 | ||
|
a568308250 | ||
|
ad7c8d9bd8 | ||
|
4357c0f1f0 | ||
|
727f161b8a | ||
|
30b5266a3f | ||
|
7ee7d5eddb | ||
|
872be4ba19 | ||
|
7969e89bfb | ||
|
abd45c1eeb | ||
|
bbdafb9def | ||
|
1d24ab33e9 | ||
|
aef4facdb3 | ||
|
f5bef0072a | ||
|
ff1088e53f | ||
|
2251b52f86 | ||
|
797d5bbc47 | ||
|
72c7b32a94 | ||
|
11f6b3792d | ||
|
cdbf2e2104 | ||
|
25c131f875 | ||
|
8dbd7dd2a7 | ||
|
0acd3efaad | ||
|
21f04e36bc | ||
|
bc7607340c | ||
|
b42cd95e41 | ||
|
448ad6a27e | ||
|
9331d38545 | ||
|
2c8940d062 | ||
|
cec6ca2e6e | ||
|
a296311b88 | ||
|
3733d0c6d0 | ||
|
696409e19c | ||
|
8a431fe95e | ||
|
a3a236d2e1 | ||
|
d76e1194d1 | ||
|
efb447ae78 | ||
|
ede9f4d3f8 | ||
|
47d73c656b |
24
.editorconfig
Normal file
@@ -0,0 +1,24 @@
|
||||
# editorconfig.org
|
||||
|
||||
root = true
|
||||
|
||||
|
||||
[*]
|
||||
charset = utf-8
|
||||
indent_style = space
|
||||
indent_size = 4
|
||||
end_of_line = lf
|
||||
insert_final_newline = true
|
||||
trim_trailing_whitespace = true
|
||||
|
||||
|
||||
[{package.json,.travis.yml,.eslintrc,.babelrc}]
|
||||
indent_size = 2
|
||||
|
||||
|
||||
[{*.md,*.jade}]
|
||||
trim_trailing_whitespace = false
|
||||
|
||||
|
||||
[*.svg]
|
||||
insert_final_newline = false
|
3
.eslintignore
Normal file
@@ -0,0 +1,3 @@
|
||||
**/build/**
|
||||
**/node_modules/**
|
||||
**/vendor/**
|
207
.eslintrc
Normal file
@@ -0,0 +1,207 @@
|
||||
---
|
||||
root: true
|
||||
|
||||
parser: babel-eslint
|
||||
|
||||
env:
|
||||
es6: true
|
||||
node: true
|
||||
|
||||
ecmaFeatures:
|
||||
arrowFunctions: true
|
||||
binaryLiterals: true
|
||||
blockBindings: true
|
||||
classes: false
|
||||
defaultParams: true
|
||||
destructuring: true
|
||||
forOf: true
|
||||
generators: true
|
||||
globalReturn: true
|
||||
jsx: false
|
||||
modules: true
|
||||
objectLiteralComputedProperties: true
|
||||
objectLiteralDuplicateProperties: true
|
||||
objectLiteralShorthandMethods: true
|
||||
objectLiteralShorthandProperties: true
|
||||
octalLiterals: true
|
||||
regexUFlag: true
|
||||
regexYFlag: true
|
||||
spread: true
|
||||
superInFunctions: false
|
||||
templateStrings: true
|
||||
unicodeCodePointEscapes: true
|
||||
|
||||
rules:
|
||||
array-bracket-spacing: [2, never]
|
||||
arrow-parens: [2, as-needed]
|
||||
arrow-spacing: 2
|
||||
block-scoped-var: 2
|
||||
brace-style: [2, 1tbs, {allowSingleLine: true}]
|
||||
camelcase: 0
|
||||
comma-dangle: [2, never]
|
||||
comma-spacing: [2, {before: false, after: true}]
|
||||
comma-style: [2, last]
|
||||
complexity: [1, 25] ###
|
||||
computed-property-spacing: [2, never]
|
||||
consistent-return: 2
|
||||
consistent-this: [2, self]
|
||||
constructor-super: 2
|
||||
curly: [2, multi-line]
|
||||
default-case: 2
|
||||
dot-location: [2, property]
|
||||
dot-notation: [2, {allowKeywords: true}]
|
||||
eol-last: 2
|
||||
eqeqeq: 2
|
||||
func-names: 2
|
||||
func-style: [2, declaration, {allowArrowFunctions: true}]
|
||||
generator-star-spacing: [2, after]
|
||||
guard-for-in: 2
|
||||
handle-callback-err: 2
|
||||
indent: [2, 4]
|
||||
key-spacing: [2, {beforeColon: false, afterColon: true}]
|
||||
linebreak-style: [2, unix]
|
||||
max-depth: [1, 4]
|
||||
max-len: [0, 80, 4]
|
||||
max-nested-callbacks: [1, 3]
|
||||
max-params: [1, 5] ###
|
||||
max-statements: [1, 80] ###
|
||||
new-cap: 0
|
||||
new-parens: 2
|
||||
newline-after-var: 0
|
||||
no-alert: 2
|
||||
no-array-constructor: 2
|
||||
no-bitwise: 2
|
||||
no-caller: 2
|
||||
no-catch-shadow: 2
|
||||
no-class-assign: 2
|
||||
no-cond-assign: 2
|
||||
no-console: 0 ###
|
||||
no-const-assign: 2
|
||||
no-constant-condition: 1
|
||||
no-continue: 0
|
||||
no-control-regex: 2
|
||||
no-debugger: 2
|
||||
no-delete-var: 2
|
||||
no-div-regex: 2
|
||||
no-dupe-args: 2
|
||||
no-dupe-class-members: 2
|
||||
no-dupe-keys: 2
|
||||
no-duplicate-case: 2
|
||||
no-else-return: 1
|
||||
no-empty: 2
|
||||
no-empty-character-class: 2
|
||||
no-empty-label: 2
|
||||
no-empty-pattern: 2
|
||||
no-eq-null: 2
|
||||
no-eval: 2
|
||||
no-ex-assign: 2
|
||||
no-extend-native: 1
|
||||
no-extra-bind: 2
|
||||
no-extra-boolean-cast: 2
|
||||
no-extra-parens: 1
|
||||
no-extra-semi: 2
|
||||
no-fallthrough: 2
|
||||
no-floating-decimal: 2
|
||||
no-func-assign: 2
|
||||
no-implicit-coercion: [2, {boolean: false, number: true, string: true}]
|
||||
no-implied-eval: 2
|
||||
no-inline-comments: 0
|
||||
no-inner-declarations: [2, functions]
|
||||
no-invalid-regexp: 2
|
||||
no-invalid-this: 2
|
||||
no-irregular-whitespace: 2
|
||||
no-iterator: 2
|
||||
no-label-var: 2
|
||||
no-labels: 2
|
||||
no-lone-blocks: 2
|
||||
no-lonely-if: 2
|
||||
no-loop-func: 1
|
||||
no-magic-numbers: 0
|
||||
no-mixed-requires: [2, false]
|
||||
no-mixed-spaces-and-tabs: [2, false]
|
||||
no-multi-spaces: 2
|
||||
no-multi-str: 2
|
||||
no-multiple-empty-lines: [2, {max: 4}]
|
||||
no-native-reassign: 1
|
||||
no-negated-in-lhs: 2
|
||||
no-nested-ternary: 0
|
||||
no-new: 2
|
||||
no-new-func: 2
|
||||
no-new-object: 2
|
||||
no-new-require: 2
|
||||
no-new-wrappers: 2
|
||||
no-obj-calls: 2
|
||||
no-octal: 2
|
||||
no-octal-escape: 2
|
||||
no-param-reassign: 0
|
||||
no-path-concat: 2
|
||||
no-plusplus: 2
|
||||
no-process-env: 2
|
||||
no-process-exit: 2
|
||||
no-proto: 2
|
||||
no-redeclare: 2
|
||||
no-regex-spaces: 2
|
||||
no-restricted-modules: 2
|
||||
no-return-assign: 2
|
||||
no-script-url: 2
|
||||
no-self-compare: 2
|
||||
no-sequences: 2
|
||||
no-shadow: 2
|
||||
no-shadow-restricted-names: 2
|
||||
no-spaced-func: 2
|
||||
no-sparse-arrays: 2
|
||||
no-sync: 0
|
||||
no-ternary: 0
|
||||
no-this-before-super: 2
|
||||
no-throw-literal: 1
|
||||
no-trailing-spaces: 2
|
||||
no-undef: 2
|
||||
no-undef-init: 2
|
||||
no-undefined: 0
|
||||
no-underscore-dangle: 0
|
||||
no-unexpected-multiline: 2
|
||||
no-unneeded-ternary: 2
|
||||
no-unreachable: 2
|
||||
no-useless-call: 2
|
||||
no-useless-concat: 2
|
||||
no-unused-expressions: 2
|
||||
no-unused-vars: [1, {vars: all, args: after-used}]
|
||||
no-use-before-define: 2
|
||||
no-var: 2
|
||||
no-void: 2
|
||||
no-warning-comments: [1, {terms: [todo, fixme, xxx], location: start}]
|
||||
no-with: 2
|
||||
object-curly-spacing: [2, never]
|
||||
object-shorthand: [2, always]
|
||||
one-var: [2, never]
|
||||
operator-assignment: [2, always]
|
||||
operator-linebreak: [2, after]
|
||||
padded-blocks: [2, never]
|
||||
prefer-arrow-callback: 2
|
||||
prefer-const: 1
|
||||
prefer-reflect: 1
|
||||
prefer-spread: 2
|
||||
prefer-template: 0 ###
|
||||
quote-props: [2, as-needed]
|
||||
quotes: [2, single, avoid-escape]
|
||||
radix: 2
|
||||
require-yield: 2
|
||||
semi: 2
|
||||
semi-spacing: [2, {before: false, after: true}]
|
||||
sort-vars: 0
|
||||
space-after-keywords: [2, always]
|
||||
space-before-blocks: [2, always]
|
||||
space-before-function-paren: [2, {anonymous: always, named: never}]
|
||||
space-in-parens: [2, never]
|
||||
space-infix-ops: 2
|
||||
space-return-throw-case: 2
|
||||
space-unary-ops: [2, {words: true, nonwords: false}]
|
||||
spaced-comment: [2, always]
|
||||
strict: [2, never]
|
||||
use-isnan: 2
|
||||
valid-jsdoc: 2
|
||||
valid-typeof: 2
|
||||
vars-on-top: 0
|
||||
wrap-iife: [2, outside]
|
||||
wrap-regex: 2
|
||||
yoda: [2, never, {exceptRange: true}]
|
6
.gitignore
vendored
@@ -1,6 +1,4 @@
|
||||
|
||||
build
|
||||
local
|
||||
*.sublime-*
|
||||
|
||||
test
|
||||
node_modules
|
||||
npm-debug.log
|
||||
|
541
CHANGELOG.md
Normal file
@@ -0,0 +1,541 @@
|
||||
# Changelog
|
||||
|
||||
|
||||
## v0.28.0 - *2015-12-19*
|
||||
|
||||
* now requires PHP 5.5.0+
|
||||
* changes index path to `/_h5ai/public/index.php`
|
||||
* now only `/_h5ai/public/` needs to be accessable from web
|
||||
* adds support for custom script and style additions
|
||||
* adds options to set font families
|
||||
* adds search
|
||||
* adds ignorecase sorting option to tree
|
||||
* adds wide links in tree view
|
||||
* adds IE edge mode
|
||||
* adds frontend tests
|
||||
* fixes some styles in IE10
|
||||
* fixes preview bottom bar for small screen widths
|
||||
* lots of code cleanup and refactorings
|
||||
* changes API
|
||||
* updates build process, now uses [ghu](https://larsjung.de/ghu/)
|
||||
* switches from jshint and jscs to [eslint](http://eslint.org/)
|
||||
* updates `jQuery` to 2.1.4
|
||||
* updates `lodash` to 3.9.3 (adds debounce and trim)
|
||||
* updates `marked` to 0.3.5
|
||||
* updates `modulejs` to 1.13.0
|
||||
* updates `prism` to 2015-12-19
|
||||
* updates h5bp styles to 5.2.0
|
||||
* updates `normalize.css` to 3.0.3
|
||||
* removes `Moment.js`
|
||||
|
||||
|
||||
## v0.27.0 - *2015-04-06*
|
||||
|
||||
* new layout
|
||||
* adds editorconfig
|
||||
* drops support for IE9 (gets fallback)
|
||||
* updates sidebar settings
|
||||
* adds info sidebar
|
||||
* adds opt-out for click'n'drag selection
|
||||
* adds package name option for single selections
|
||||
* adds initial support for Peer5
|
||||
* adds option to down-sample images for preview
|
||||
* adds option for natural sorting in tree sidebar
|
||||
* fixes problems with files/folders named `0`
|
||||
* changes font from `Ubuntu` to `Roboto` (smaller footprint, clearer for small sizes)
|
||||
* switches back to Google Fonts
|
||||
* improves PDF thumbnail quality
|
||||
* improves drag-select
|
||||
* improves image preview
|
||||
* prevents listing `_h5ai` folder and subfolders
|
||||
* updates build process, now uses [mkr](https://larsjung.de/mkr/) and [fQuery](https://larsjung.de/fquery/)
|
||||
* updates `jQuery` to 2.1.3
|
||||
* updates `jQuery.qrcode` to 0.11.0
|
||||
* updates `Lo-Dash` to 3.6.0
|
||||
* updates `Modernizr` to 2.8.3
|
||||
* updates `modulejs` to 1.4.0
|
||||
* updates `Moment.js` to 2.9.0
|
||||
* updates `Prism` to 2015-04-05
|
||||
* removes deprecated Google Analytics code
|
||||
* removes `jQuery.fracs`
|
||||
* removes `jQuery.scrollpanel`
|
||||
* removes `jQuery.mousewheel`
|
||||
* language updates and additions (`af`, `es`, `ja`, `ko`, `ru`, `zh-cn`)
|
||||
|
||||
|
||||
## v0.26.1 - *2014-08-17*
|
||||
|
||||
* fixes links
|
||||
|
||||
|
||||
## v0.26.0 - *2014-08-16*
|
||||
|
||||
* removes True Type fonts
|
||||
* outsources themes to [h5ai-themes](https://github.com/lrsjng/h5ai-themes)
|
||||
* adds filesize fallback for large files and 32bit PHP
|
||||
* fixes server detection
|
||||
* adds config file tests to info page
|
||||
* removes JSON shim
|
||||
* adds caching of command checks
|
||||
* updates `jQuery.mousewheel` to 3.1.12
|
||||
* updates `jQuery.qrcode` to 0.8.0
|
||||
* replaces `markdown` with [`marked`](https://github.com/chjj/marked) 0.3.2
|
||||
* updates `modulejs` to 0.4.5
|
||||
* updates `Moment.js` to 2.8.1
|
||||
* replaces `underscore` with [`Lo-Dash`](https://github.com/lodash/lodash) 2.4.1
|
||||
* replaces `SyntaxHighlighter` with [`Prism`](http://prismjs.com) 2014-08-04
|
||||
|
||||
|
||||
## v0.25.2 - *2014-07-01*
|
||||
|
||||
* adds optional info page protection
|
||||
* fixes `short_open_tag` issues for PHP < 5.4.0
|
||||
* fixes default folder download (`alwaysVisible` option)
|
||||
* minor fixes
|
||||
|
||||
|
||||
## v0.25.1 - *2014-06-25*
|
||||
|
||||
* fixes broken paths for filenames containing '+' characters
|
||||
* fixes Google Universal Analytics
|
||||
* fixes file type check
|
||||
|
||||
|
||||
## v0.25.0 - *2014-06-22*
|
||||
|
||||
* adds sidebar
|
||||
* adds initial theme support
|
||||
* adds icons from [Evolvere Icon Theme](http://franksouza183.deviantart.com/art/Evolvere-Icon-theme-440718295)
|
||||
* adds PHP variant to calc folder sizes
|
||||
* adds scroll position reset on location change (issue [#279](https://github.com/lrsjng/h5ai/issues/279))
|
||||
* adds option to hide unreadable files
|
||||
* adds option where to place folders (top, inplace, bottom)
|
||||
* adds markdown support for custom header and footer files
|
||||
* adds video and audio preview via HTML5 elements (no fallback, works best in Chrome)
|
||||
* adds filter reset on location change
|
||||
* adds option to make download button always visible
|
||||
* adds Google UA support
|
||||
* extends selectable icon sizes (adds 128px, 192px, 256px, 384px)
|
||||
* improves preview GUI
|
||||
* disable thumbs in `cache` folder
|
||||
* fixes QR code URI origin (issue [#287](https://github.com/lrsjng/h5ai/issues/287))
|
||||
* replaces PHP backtick operator with `exec`
|
||||
* removes server side file manipulation extensions `dropbox`, `delete` and `rename`
|
||||
* updates `H5BP` to 4.3.0
|
||||
* updates `jQuery` to 2.1.1
|
||||
* updates `json2.js` to 2014-02-04
|
||||
* updates `markdown-js` to 0.5.0
|
||||
* updates `Modernizr` to 2.8.2
|
||||
* updates `Moment.js` to 2.6.0
|
||||
* updates `Underscore.js` to 1.6.0
|
||||
* language updates (`bg`, `ko`, `pt`, `sl`, `sv`, `zh-cn`)
|
||||
|
||||
|
||||
## v0.24.1 - *2014-04-09*
|
||||
|
||||
* security fixes! (issues [#268](https://github.com/lrsjng/h5ai/issues/268), [#269](https://github.com/lrsjng/h5ai/issues/269))
|
||||
* language updates (`fi`, `fr`, `hi`, `it`, `zh-tw`)
|
||||
* fixes WinOS command detection
|
||||
|
||||
|
||||
## v0.24.0 - *2013-09-04*
|
||||
|
||||
* updates image and text preview
|
||||
* adds variable icon sizes
|
||||
* adds optional natural sort of items
|
||||
* adds optional checkboxes to select items
|
||||
* adds text preview modes: none, fixed, markdown
|
||||
* optionally hide folders in main view
|
||||
* makes use of EXIF thumbnails optional
|
||||
* fixes file deletion of multiple files
|
||||
* fixes `setParentFolderLabels = false`
|
||||
* fixes shell-arg and RegExp escape issues
|
||||
* cleans code
|
||||
* updates info page `/_h5ai`
|
||||
* adds `aiff` to `audio` types
|
||||
* adds `da` translation by Ronnie Milbo
|
||||
* updates to `pl` translation by Mark
|
||||
|
||||
|
||||
## v0.23.0 - *2013-07-21*
|
||||
|
||||
* removes `aai` mode!
|
||||
* drops support for IE7+8 (simple fallback, same as no javascript)
|
||||
* uses History API if available (way faster browsing)
|
||||
* faster thumbnail generation if EXIF thumbnails available
|
||||
* adds optional custom headers/footers that are propageted to all subfolders
|
||||
* optional hide parent folder links
|
||||
* some fixes on previews
|
||||
* speeds up packaged downloads
|
||||
* add line wrap and line highlighting (on hover) to text preview
|
||||
* new design (colors, images)
|
||||
* now uses scalable images for the interface
|
||||
* fixes filter (ignore parent folder, display of `no match`)
|
||||
* lots of small fixes
|
||||
* updates `H5BP` to 4.2.0
|
||||
* updates `jQuery` to 2.0.3
|
||||
* updates `jQuery.mousewheel` to 3.1.3
|
||||
* updates `Moment.js` to 2.1.0
|
||||
* updates `markdown-js` to 0.4.0-9c21acdf08
|
||||
* updates `json2.js` to 2013-05-26
|
||||
* adds `uk` translation by Viktor Matveenko
|
||||
* updates to `pl` translation by Mark
|
||||
|
||||
|
||||
## v0.22.1 - *2012-10-16*
|
||||
|
||||
* bug fix concerning API requests in PHP mode
|
||||
* minor changes in responsive styles
|
||||
|
||||
|
||||
## v0.22 - *2012-10-14*
|
||||
|
||||
* general changes h5ai directory layout and configuration
|
||||
* splits configuration file (`config.json`) into files `options.json`, `types.json` and `langs.json`
|
||||
* localization now in separate files
|
||||
* adds auto-refresh
|
||||
* adds drag'n'drop upload (PHP, experimental)
|
||||
* adds file deletion (PHP, experimental)
|
||||
* cleans and improves PHP code
|
||||
* PHP no longer respects htaccess restrictions (so be careful)
|
||||
* PHP ignore patterns might include paths now
|
||||
* improves separation between aai and php mode
|
||||
* improves performance in aai mode
|
||||
* adds optional binary prefixes for file sizes
|
||||
* improves filter: autofocus on keypress, clear on `ESC`
|
||||
* download packages now packaged relative to current folder
|
||||
* download package name changable
|
||||
* splits type `js` into `js` and `json`
|
||||
* prevents some errors with files > 2GB on 32bit OS
|
||||
* adds max subfolder size in tree view
|
||||
* adds ctrl-click file selection
|
||||
* adds Piwik analytics extension
|
||||
* temp download packages are now stored in the `cache`-folder and deleted as soon as possible
|
||||
* updates translations
|
||||
* adds `he` translation by [Tomer Cohen](https://github.com/tomer)
|
||||
* updates 3rd party libs
|
||||
|
||||
|
||||
## v0.21 - *2012-08-06*
|
||||
|
||||
* fixes misaligned image previews
|
||||
* adds no JavaScript fallback to PHP version
|
||||
* fixes duplicate tree entries and empty main views
|
||||
* adds Google Analytics support (async)
|
||||
* improves filter (now ignorecase, now only checks if chars in right order)
|
||||
* adds keyboard support to image preview (space, enter, backspace, left, right, up, down, f, esc)
|
||||
* adds text file preview and highlighting with [SyntaxHighlighter](http://alexgorbatchev.com/SyntaxHighlighter/) (same keys as img preview)
|
||||
* adds Markdown preview with [markdown-js](https://github.com/evilstreak/markdown-js)
|
||||
* adds new type `markdown`
|
||||
* changes language code `gr` to `el`
|
||||
* adds localization for filter placeholder
|
||||
* adds `hu` translation by [Rodolffo](https://github.com/Rodolffo)
|
||||
* updates to [jQuery.qrcode](https://larsjung.de/qrcode/) 0.2
|
||||
* updates to [jQuery.scrollpanel](https://larsjung.de/scrollpanel/) 0.1
|
||||
* updates to [modulejs](https://larsjung.de/modulejs/) 0.2
|
||||
* updates to [Moment.js](http://momentjs.com) 1.7.0
|
||||
* updates to [Underscore.js](http://underscorejs.org) 1.3.3
|
||||
|
||||
|
||||
## v0.20 - *2012-05-11*
|
||||
|
||||
* adds image preview
|
||||
* adds thumbnails for video and pdf
|
||||
* adds support for lighttpd, nginx and cherokee and maybe other webservers with PHP
|
||||
* adds folder size in PHP version via shell `du`
|
||||
* fixes some localization problems
|
||||
* updates info page at `/_h5ai/`
|
||||
* switches to JSHint
|
||||
|
||||
|
||||
## v0.19 - *2012-04-19*
|
||||
|
||||
* adds lots of config options
|
||||
* changes in `config.js` and `h5ai.htaccess`
|
||||
* fixes js problems in IE 7+8
|
||||
* hides broken tree view in IE < 9, adds a message to the footer
|
||||
* removes hash changes since they break logical browser history
|
||||
* fixes thumbnail size for portrait images in icon view
|
||||
* fixes problems with file type recognition
|
||||
* adds an info page at `/_h5ai/`
|
||||
* sort order is preserved while browsing
|
||||
* removes PHP error messages on thumbnail generation
|
||||
* fixes PHP some problems with packed download
|
||||
* adds support for tarred downloads
|
||||
* changes crumb image for folders with an index file
|
||||
* adds `index.php` to use h5ai in non-Apache environments
|
||||
* switches from [Datejs](http://www.datejs.com) to [Moment.js](http://momentjs.com)
|
||||
* adds [underscore.js](http://underscorejs.org)
|
||||
* fixes mousewheel problems, updates [jQuery.mousewheel](https://github.com/brandonaaron/jquery-mousewheel) to 3.0.6
|
||||
* updates `lv` translation
|
||||
* adds `ro` translation by [Jakob Cosoroabă](https://github.com/midday)
|
||||
* adds `ja` translation by [metasta](https://github.com/metasta)
|
||||
* adds `nb` translation by [Sindre Sorhus](https://github.com/sindresorhus)
|
||||
* adds `sr` translation by [vBm](https://github.com/vBm)
|
||||
* adds `gr` translation by [xhmikosr](https://github.com/xhmikosr)
|
||||
|
||||
|
||||
## v0.18 - *2012-02-24*
|
||||
|
||||
* adds optional QRCode display
|
||||
* adds optional filtering for displayed files and folders
|
||||
* updates design
|
||||
* improves zipped download
|
||||
* adds support for zipped download of htaccess restricted files
|
||||
* changes h5ai.htaccess
|
||||
* custom headers/footers are now optional and disabled by default
|
||||
* fixes problems with folder recognition in the JS version
|
||||
* fixes include problems in PHP version
|
||||
* fixes path problems on servers running on Windows in PHP version
|
||||
* fixes broken links in custom headers/footers while zipped download enabled
|
||||
* fixes problems with thumbnails for files with single or double quotes in filename
|
||||
* improves url hashes
|
||||
* updates year in `LICENSE.TXT`
|
||||
* updates es translation
|
||||
* adds `zh-tw` translation by [Yao Wei](https://github.com/medicalwei)
|
||||
* updates `zh-cn` translation
|
||||
|
||||
|
||||
## v0.17 - *2011-11-28*
|
||||
|
||||
* h5ai is now located in `_h5ai` to reduce collisions
|
||||
* switches from HTML5 Boilerplate reset to normalization
|
||||
* adds some style changes for small devices
|
||||
* configuration (options, types, translations) now via `config.js`
|
||||
* icons for JS version are now configured via `config.js`
|
||||
* sort order configuration changed
|
||||
* sorting is now done without page reload
|
||||
* adds `customHeader` and `customFooter` to `config.js`
|
||||
* supports restricted folders to some extent
|
||||
* some style changes on tree and language menu
|
||||
* fixes total file/folder count in status bar
|
||||
* adds support for use with userdir (requires some manual changes)
|
||||
|
||||
|
||||
## v0.16 - *2011-11-02*
|
||||
|
||||
* sorts translations in `options.js`
|
||||
* improves HTML head sections
|
||||
* refactors JavaScript and PHP a lot
|
||||
* improves/fixes file selection for zipped download
|
||||
* fixes scrollbar and header/footer link issues (didn't work when zipped download enabled)
|
||||
* adds support for ctrl-select
|
||||
* `dateFormat` in `options.js` changed, now affecting JS and PHP version
|
||||
* `dateFormat` is localizable by adding it to a translation in `options.js`
|
||||
* PHP version is now configurable via `php/config.php` (set custom doc root and other PHP related things)
|
||||
* image thumbs and zipped download is disabled by default now, but works fine if PHP is configured
|
||||
|
||||
|
||||
## v0.15.2 - *2011-09-18*
|
||||
|
||||
* adds `it` translation by [Salvo Gentile](https://github.com/SalvoGentile) and [Marco Patriarca](https://github.com/Fexys)
|
||||
* switches build process from scripp to wepp
|
||||
|
||||
|
||||
## v0.15.1 - *2011-09-06*
|
||||
|
||||
* fixes security issues with the zipped download feature
|
||||
* makes zipped download optional (but enabled by default)
|
||||
|
||||
|
||||
## v0.15 - *2011-09-04*
|
||||
|
||||
* adds zipped download for selected files
|
||||
* cleans and refactores
|
||||
|
||||
|
||||
## v0.14.1 - *2011-09-01*
|
||||
|
||||
* display meta information in bottom bar (icon view)
|
||||
* adds `zh-cn` translation by [Dongsheng Cai](https://github.com/dongsheng)
|
||||
* adds `pl` translation by Radosław Zając
|
||||
* adds `ru` translation by Богдан Илюхин
|
||||
|
||||
|
||||
## v0.14 - *2011-08-16*
|
||||
|
||||
* adds image thumbnails for PHP version
|
||||
* new option `slideTree` to turn off auto slide in
|
||||
|
||||
|
||||
## v0.13.2 - *2011-08-12*
|
||||
|
||||
* changes in `/h5ai/.htaccess` ... PHP configuration ...
|
||||
|
||||
|
||||
## v0.13.1 - *2011-08-12*
|
||||
|
||||
* fixes initial tree display
|
||||
* adds sort order option
|
||||
* adds/fixes some translations
|
||||
* adds `lv` translation by Sandis Veinbergs
|
||||
|
||||
|
||||
## v0.13 - *2011-08-06*
|
||||
|
||||
* adds PHP implementation! (should work with PHP 5.2+)
|
||||
* adds new options
|
||||
* changes layout of the bottom bar to display status information
|
||||
* adds language selector to the bottom bar
|
||||
* quotes keys in `options.js` to make it valid json
|
||||
* changes value of option `lang` from `undefined` to `null`
|
||||
* adds some new keys to `h5aiLangs`
|
||||
* adds browser caching rules for css and js
|
||||
* adds `pt` translation by [Jonnathan](https://github.com/jonnsl)
|
||||
* adds `bg` translation by George Andonov
|
||||
|
||||
|
||||
## v0.12.3 - *2011-07-30*
|
||||
|
||||
* adds `tr` translation by [Batuhan Icoz](https://github.com/batuhanicoz)
|
||||
|
||||
|
||||
## v0.12.2 - *2011-07-30*
|
||||
|
||||
* adds `es` translation by Jose David Calderon Serrano
|
||||
|
||||
|
||||
## v0.12.1 - *2011-07-29*
|
||||
|
||||
* fixes unchecked use of console.log
|
||||
|
||||
|
||||
## v0.12 - *2011-07-28*
|
||||
|
||||
* improves performance
|
||||
|
||||
|
||||
## v0.11 - *2011-07-27*
|
||||
|
||||
* changes license to MIT license, see `LICENSE.txt`
|
||||
|
||||
|
||||
## v0.10.2 - *2011-07-26*
|
||||
|
||||
* improves tree scrollbar
|
||||
|
||||
|
||||
## v0.10.1 - *2011-07-24*
|
||||
|
||||
* fixes problems with ' in links
|
||||
|
||||
|
||||
## v0.10 - *2011-07-24*
|
||||
|
||||
* fixes problems with XAMPP on Windows (see `dot.htaccess` comments for instructions)
|
||||
* fixes tree fade-in-fade-out effect for small displays ([issue #6](https://github.com/lrsjng/h5ai/issues/6))
|
||||
* adds custom scrollbar to tree ([issue #6](https://github.com/lrsjng/h5ai/issues/6))
|
||||
* fixes broken links caused by URI encoding/decoding ([issue #9](https://github.com/lrsjng/h5ai/issues/9))
|
||||
* adds "empty" to localization (hope Google Translate did a good job here)
|
||||
|
||||
|
||||
## v0.9 - *2011-07-18*
|
||||
|
||||
* links hover states between crumb, extended view and tree
|
||||
* fixes size of tree view (now there's a ugly scrollbar, hopefully will be fixed)
|
||||
* refactores js to improve performance and cleaned code
|
||||
* adds caching for folder status codes and content
|
||||
* adds `fr` translation by [Nicolas](https://github.com/Nicosmos)
|
||||
* adds `nl` translation by [Stefan de Konink](https://github.com/skinkie)
|
||||
* adds `sv` translation by Oscar Carlsson
|
||||
|
||||
|
||||
## v0.8 - *2011-07-08*
|
||||
|
||||
* removes slashes from folder labels
|
||||
* optionally rename parent folder entries to real folder names, see `options.js`
|
||||
* long breadcrumbs (multiple rows) no longer hide content
|
||||
* error folder icons are opaque now
|
||||
* refactores js a lot (again...)
|
||||
|
||||
|
||||
## v0.7 - *2011-07-07*
|
||||
|
||||
* removes shadows
|
||||
* smarter tree side bar
|
||||
|
||||
|
||||
## v0.6 - *2011-07-05*
|
||||
|
||||
* refactores js
|
||||
* adds localization, see `options.js`
|
||||
|
||||
|
||||
## v0.5.3 - *2011-07-04*
|
||||
|
||||
* refactores js
|
||||
* adds basic options support via `options.js`
|
||||
* adds comments to `options.js`
|
||||
* adds optional tree sidebar
|
||||
|
||||
|
||||
## v0.5.2 - *2011-07-02*
|
||||
|
||||
* details view adjusts to window width
|
||||
* links icon for *.gz and *.bz2
|
||||
|
||||
|
||||
## v0.5.1 - *2011-07-01*
|
||||
|
||||
* disables tree sidebar for now, since it had unwanted side effects
|
||||
|
||||
|
||||
## v0.5 - *2011-07-01*
|
||||
|
||||
* adds tree sidebar
|
||||
* some refactorings
|
||||
|
||||
|
||||
## v0.4 - *2011-06-27*
|
||||
|
||||
* adds better fallback, in case JavaScript is disabled
|
||||
* rewrites js, fixed middle-button click etc. problems
|
||||
* refactors css
|
||||
* sorts, adds and moves icons and images
|
||||
* updates dot.access
|
||||
|
||||
|
||||
## v0.3.2 - *2011-06-24*
|
||||
|
||||
* removes lib versions from file names
|
||||
* adds 'empty' indicator for icons view
|
||||
|
||||
|
||||
## v0.3.1 - *2011-06-24*
|
||||
|
||||
* refactores js
|
||||
* adds `folderClick` and `fileClick` callback hooks
|
||||
* fixes .emtpy style
|
||||
|
||||
|
||||
## v0.3 - *2011-06-23*
|
||||
|
||||
* includes build stuff, files previously found in the base directory are now located in folder `target`
|
||||
* styles and scripts are now minified
|
||||
* adds Modernizr 2.0.4 for future use
|
||||
* updates jQuery to version 1.6.1
|
||||
|
||||
|
||||
## v0.2.3 - *2011-06-17*
|
||||
|
||||
* more refactoring in main.js
|
||||
|
||||
|
||||
## v0.2.2 - *2011-06-16*
|
||||
|
||||
* refactores a lot, adds some comments
|
||||
* includes fixes from [NumEricR](https://github.com/NumEricR)
|
||||
* adds top/bottom message support, only basicly styled
|
||||
|
||||
|
||||
## v0.2.1 - *2011-06-16*
|
||||
|
||||
* fixes croped filenames
|
||||
* fixes missing .png extension in header
|
||||
* adds some color to the links
|
||||
* adds changelog
|
||||
|
||||
|
||||
## v0.2 - *2011-06-15*
|
||||
|
||||
* adds icon view
|
19
LICENSE.md
@@ -1,19 +0,0 @@
|
||||
Copyright (c) 2013 Lars Jung, http://larsjung.de
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||
this software and associated documentation files (the "Software"), to deal in
|
||||
the Software without restriction, including without limitation the rights to
|
||||
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
|
||||
of the Software, and to permit persons to whom the Software is furnished to do
|
||||
so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
471
README.md
@@ -1,444 +1,81 @@
|
||||
# h5ai
|
||||
**a modern HTTP web server index for Apache httpd, lighttpd, nginx and Cherokee**
|
||||
|
||||
The preferred way to report a bug or make a feature request is to
|
||||
create [a new issue](http://github.com/lrsjng/h5ai/issues/new) on GitHub!
|
||||
[![license][license-img]][github] [![web][web-img]][web] [![github][github-img]][github]
|
||||
|
||||
A modern HTTP web server index for Apache httpd, lighttpd, nginx and Cherokee.
|
||||
For bug reports and feature requests please use [issues][github-issues].
|
||||
|
||||
There was a [security flaw][cve] in versions 0.22.0 - 0.24.1 that was fixed in
|
||||
0.25.0. If you are still using one of these versions you are advised to
|
||||
upgrade.
|
||||
|
||||
## Install
|
||||
|
||||
( **note:** please don't use files from the `src` folder for installation,
|
||||
they need to be preprocessed to work correctly )
|
||||
Do **not** install any files from the `src` folder, they need to be
|
||||
preprocessed to work correctly! Find a preprocessed package and detailed
|
||||
install instructions on the [project page][web].
|
||||
|
||||
You'll find a preprocessed package, as well as detailed installation
|
||||
instructions on the [project page](http://larsjung.de/h5ai/).
|
||||
In short you have to take the following two steps:
|
||||
|
||||
* place folder `_h5ai` in the document root folder of the web server
|
||||
* append `/_h5ai/public/index.php` to the end of the default index-file list
|
||||
|
||||
|
||||
## Build
|
||||
|
||||
( there are repositories for the latest [releases](http://release.larsjung.de/h5ai/) and [dev builds](http://release.larsjung.de/h5ai/dev/) )
|
||||
There are installation ready packages for the latest [releases][release] and
|
||||
[dev builds][develop]. But to build **h5ai** yourself either `git clone` or
|
||||
download the repository. From within the root folder run the following
|
||||
commands to find a fresh zipball in folder `build` (tested on linux only,
|
||||
requires [`node 4.0+`][node] to be installed).
|
||||
|
||||
If you want to build **h5ai** yourself you need to install the build tool [fQuery](http://larsjung.de/fquery/) first:
|
||||
|
||||
> npm install -g fquery
|
||||
|
||||
This will install fQuery and its command line tool `makejs`. Run `makejs --help` to see if everything
|
||||
worked fine.
|
||||
|
||||
To clone and build the project run the following commands.
|
||||
You'll find a new directory `build` including a fresh zipball.
|
||||
|
||||
> git clone git://github.com/lrsjng/h5ai.git
|
||||
> cd h5ai
|
||||
> makejs release
|
||||
~~~sh
|
||||
> npm install
|
||||
> npm run build
|
||||
~~~
|
||||
|
||||
|
||||
## License
|
||||
|
||||
**h5ai** is provided under the terms of the [MIT License](http://github.com/lrsjng/h5ai/blob/develop/LICENSE.md).
|
||||
The MIT License (MIT)
|
||||
|
||||
It profits from these great projects:
|
||||
[Faenza icon set](http://tiheum.deviantart.com/art/Faenza-Icons-173323228) (GPL),
|
||||
[Gnome Symbolic Icon Theme](https://git.gnome.org/browse/gnome-icon-theme-symbolic/) (CC BY-SA 3.0),
|
||||
[HTML5 ★ Boilerplate](http://html5boilerplate.com) (MIT),
|
||||
[jQuery](http://jquery.com) (MIT),
|
||||
[jQuery.filedrop](http://www.github.com/weixiyen/jquery-filedrop) (MIT),
|
||||
[jQuery.fracs](http://larsjung.de/fracs/) (MIT),
|
||||
[jQuery.mousewheel](http://github.com/brandonaaron/jquery-mousewheel) (MIT),
|
||||
[jQuery.qrcode](http://larsjung.de/qrcode/) (MIT),
|
||||
[jQuery.scrollpanel](http://larsjung.de/scrollpanel/) (MIT),
|
||||
[markdown-js](http://github.com/evilstreak/markdown-js) (MIT),
|
||||
[Modernizr](http://www.modernizr.com) (MIT/BSD),
|
||||
[modulejs](http://larsjung.de/modulejs/) (MIT),
|
||||
[Moment.js](http://momentjs.com) (MIT),
|
||||
[SyntaxHighlighter](http://alexgorbatchev.com/SyntaxHighlighter/) (MIT/GPL),
|
||||
[Underscore.js](http://underscorejs.org) (MIT)
|
||||
Copyright (c) 2015 Lars Jung (https://larsjung.de)
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
## Changelog
|
||||
( **h5ai** uses [semantic versioning](http://semver.org/) )
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
|
||||
### v0.23.0 - *2013-07-21*
|
||||
|
||||
* removes `aai` mode!
|
||||
* drops support for IE7+8 (simple fallback, same as no javascript)
|
||||
* uses History API if available (way faster browsing)
|
||||
* faster thumbnail generation if EXIF thumbnails available
|
||||
* adds optional custom headers/footers that are propageted to all subfolders
|
||||
* optional hide parent folder links
|
||||
* some fixes on previews
|
||||
* speeds up packaged downloads
|
||||
* add line wrap and line highlighting (on hover) to text preview
|
||||
* new design (colors, images)
|
||||
* now uses scalable images for the interface
|
||||
* fixes filter (ignore parent folder, display of `no match`)
|
||||
* lots of small fixes
|
||||
* updates H5BP to 4.2.0
|
||||
* updates jQuery to 2.0.3
|
||||
* updates jQuery.mousewheel to 3.1.3
|
||||
* updates Moment.js to 2.1.0
|
||||
* updates markdown-js to 0.4.0-9c21acdf08
|
||||
* updates json2.js to 2013-05-26
|
||||
* adds `uk` translation by Viktor Matveenko
|
||||
* updates to `pl` translation by Mark
|
||||
## References
|
||||
|
||||
**h5ai** profits from other projects, all of them licensed under the MIT license
|
||||
too. Exceptions are some [Material Design icons][material-design-icons] (CC BY 4.0).
|
||||
|
||||
### v0.22.1 - *2012-10-16*
|
||||
|
||||
* bug fix concerning API requests in PHP mode
|
||||
* minor changes in responsive styles
|
||||
[web]: https://larsjung.de/h5ai/
|
||||
[github]: https://github.com/lrsjng/h5ai
|
||||
[github-issues]: https://github.com/lrsjng/h5ai/issues
|
||||
[release]: https://release.larsjung.de/h5ai/
|
||||
[develop]: https://release.larsjung.de/h5ai/develop/
|
||||
[node]: https://nodejs.org
|
||||
[material-design-icons]: https://github.com/google/material-design-icons
|
||||
|
||||
[license-img]: https://img.shields.io/badge/license-MIT-a0a060.svg?style=flat-square
|
||||
[web-img]: https://img.shields.io/badge/web-larsjung.de/h5ai-a0a060.svg?style=flat-square
|
||||
[github-img]: https://img.shields.io/badge/github-lrsjng/h5ai-a0a060.svg?style=flat-square
|
||||
|
||||
### v0.22 - *2012-10-14*
|
||||
|
||||
* general changes h5ai directory layout and configuration
|
||||
* splits configuration file (`config.json`) into files `options.json`, `types.json` and `langs.json`
|
||||
* localization now in separate files
|
||||
* adds auto-refresh
|
||||
* adds drag'n'drop upload (PHP, experimental)
|
||||
* adds file deletion (PHP, experimental)
|
||||
* cleans and improves PHP code
|
||||
* PHP no longer respects htaccess restrictions (so be careful)
|
||||
* PHP ignore patterns might include paths now
|
||||
* improves separation between aai and php mode
|
||||
* improves performance in aai mode
|
||||
* adds optional binary prefixes for file sizes
|
||||
* improves filter: autofocus on keypress, clear on `ESC`
|
||||
* download packages now packaged relative to current folder
|
||||
* download package name changable
|
||||
* splits type `js` into `js` and `json`
|
||||
* prevents some errors with files > 2GB on 32bit OS
|
||||
* adds max subfolder size in tree view
|
||||
* adds ctrl-click file selection
|
||||
* adds Piwik analytics extension
|
||||
* temp download packages are now stored in the `cache`-folder and deleted as soon as possible
|
||||
* updates translations
|
||||
* adds `he` translation by [Tomer Cohen](https://github.com/tomer)
|
||||
* updates 3rd party libs
|
||||
|
||||
|
||||
### v0.21 - *2012-08-06*
|
||||
|
||||
* fixes misaligned image previews
|
||||
* adds no JavaScript fallback to PHP version
|
||||
* fixes duplicate tree entries and empty main views
|
||||
* adds Google Analytics support (async)
|
||||
* improves filter (now ignorecase, now only checks if chars in right order)
|
||||
* adds keyboard support to image preview (space, enter, backspace, left, right, up, down, f, esc)
|
||||
* adds text file preview and highlighting with [SyntaxHighlighter](http://alexgorbatchev.com/SyntaxHighlighter/) (same keys as img preview)
|
||||
* adds Markdown preview with [markdown-js](http://github.com/evilstreak/markdown-js)
|
||||
* adds new type `markdown`
|
||||
* changes language code `gr` to `el`
|
||||
* adds localization for filter placeholder
|
||||
* adds `hu` translation by [Rodolffo](http://github.com/Rodolffo)
|
||||
* updates to [jQuery.qrcode](http://larsjung.de/qrcode/) 0.2
|
||||
* updates to [jQuery.scrollpanel](http://larsjung.de/scrollpanel/) 0.1
|
||||
* updates to [modulejs](http://larsjung.de/modulejs/) 0.2
|
||||
* updates to [Moment.js](http://momentjs.com) 1.7.0
|
||||
* updates to [Underscore.js](http://underscorejs.org) 1.3.3
|
||||
|
||||
|
||||
### v0.20 - *2012-05-11*
|
||||
|
||||
* adds image preview
|
||||
* adds thumbnails for video and pdf
|
||||
* adds support for lighttpd, nginx and cherokee and maybe other webservers with PHP
|
||||
* adds folder size in PHP version via shell `du`
|
||||
* fixes some localization problems
|
||||
* updates info page at `/_h5ai/`
|
||||
* switches to JSHint
|
||||
|
||||
|
||||
### v0.19 - *2012-04-19*
|
||||
|
||||
* adds lots of config options
|
||||
* changes in `config.js` and `h5ai.htaccess`
|
||||
* fixes js problems in IE 7+8
|
||||
* hides broken tree view in IE < 9, adds a message to the footer
|
||||
* removes hash changes since they break logical browser history
|
||||
* fixes thumbnail size for portrait images in icon view
|
||||
* fixes problems with file type recognition
|
||||
* adds an info page at `/_h5ai/`
|
||||
* sort order is preserved while browsing
|
||||
* removes PHP error messages on thumbnail generation
|
||||
* fixes PHP some problems with packed download
|
||||
* adds support for tarred downloads
|
||||
* changes crumb image for folders with an index file
|
||||
* adds `index.php` to use h5ai in non-Apache environments
|
||||
* switches from [Datejs](http://www.datejs.com) to [Moment.js](http://momentjs.com)
|
||||
* adds [underscore.js](http://underscorejs.org)
|
||||
* fixes mousewheel problems, updates [jQuery.mousewheel](http://github.com/brandonaaron/jquery-mousewheel) to 3.0.6
|
||||
* updates `lv` translation
|
||||
* adds `ro` translation by [Jakob Cosoroabă](http://github.com/midday)
|
||||
* adds `ja` translation by [metasta](http://github.com/metasta)
|
||||
* adds `nb` translation by [Sindre Sorhus](http://github.com/sindresorhus)
|
||||
* adds `sr` translation by [vBm](http://github.com/vBm)
|
||||
* adds `gr` translation by [xhmikosr](http://github.com/xhmikosr)
|
||||
|
||||
|
||||
### v0.18 - *2012-02-24*
|
||||
|
||||
* adds optional QRCode display
|
||||
* adds optional filtering for displayed files and folders
|
||||
* updates design
|
||||
* improves zipped download
|
||||
* adds support for zipped download of htaccess restricted files
|
||||
* changes h5ai.htaccess
|
||||
* custom headers/footers are now optional and disabled by default
|
||||
* fixes problems with folder recognition in the JS version
|
||||
* fixes include problems in PHP version
|
||||
* fixes path problems on servers running on Windows in PHP version
|
||||
* fixes broken links in custom headers/footers while zipped download enabled
|
||||
* fixes problems with thumbnails for files with single or double quotes in filename
|
||||
* improves url hashes
|
||||
* updates year in `LICENSE.TXT`
|
||||
* updates es translation
|
||||
* adds `zh-tw` translation by [Yao Wei](http://github.com/medicalwei)
|
||||
* updates `zh-cn` translation
|
||||
|
||||
|
||||
### v0.17 - *2011-11-28*
|
||||
|
||||
* h5ai is now located in `_h5ai` to reduce collisions
|
||||
* switches from HTML5 Boilerplate reset to normalization
|
||||
* adds some style changes for small devices
|
||||
* configuration (options, types, translations) now via `config.js`
|
||||
* icons for JS version are now configured via `config.js`
|
||||
* sort order configuration changed
|
||||
* sorting is now done without page reload
|
||||
* adds `customHeader` and `customFooter` to `config.js`
|
||||
* supports restricted folders to some extent
|
||||
* some style changes on tree and language menu
|
||||
* fixes total file/folder count in status bar
|
||||
* adds support for use with userdir (requires some manual changes)
|
||||
|
||||
|
||||
### v0.16 - *2011-11-02*
|
||||
|
||||
* sorts translations in `options.js`
|
||||
* improves HTML head sections
|
||||
* refactors JavaScript and PHP a lot
|
||||
* improves/fixes file selection for zipped download
|
||||
* fixes scrollbar and header/footer link issues (didn't work when zipped download enabled)
|
||||
* adds support for ctrl-select
|
||||
* `dateFormat` in `options.js` changed, now affecting JS and PHP version
|
||||
* `dateFormat` is localizable by adding it to a translation in `options.js`
|
||||
* PHP version is now configurable via `php/config.php` (set custom doc root and other PHP related things)
|
||||
* image thumbs and zipped download is disabled by default now, but works fine if PHP is configured
|
||||
|
||||
|
||||
### v0.15.2 - *2011-09-18*
|
||||
|
||||
* adds `it` translation by [Salvo Gentile](http://github.com/SalvoGentile) and [Marco Patriarca](http://github.com/Fexys)
|
||||
* switches build process from scripp to wepp
|
||||
|
||||
|
||||
### v0.15.1 - *2011-09-06*
|
||||
|
||||
* fixes security issues with the zipped download feature
|
||||
* makes zipped download optional (but enabled by default)
|
||||
|
||||
|
||||
### v0.15 - *2011-09-04*
|
||||
|
||||
* adds zipped download for selected files
|
||||
* cleans and refactores
|
||||
|
||||
|
||||
### v0.14.1 - *2011-09-01*
|
||||
|
||||
* display meta information in bottom bar (icon view)
|
||||
* adds `zh-cn` translation by [Dongsheng Cai](http://github.com/dongsheng)
|
||||
* adds `pl` translation by Radosław Zając
|
||||
* adds `ru` translation by Богдан Илюхин
|
||||
|
||||
|
||||
### v0.14 - *2011-08-16*
|
||||
|
||||
* adds image thumbnails for PHP version
|
||||
* new option `slideTree` to turn off auto slide in
|
||||
|
||||
|
||||
### v0.13.2 - *2011-08-12*
|
||||
|
||||
* changes in `/h5ai/.htaccess` ... PHP configuration ...
|
||||
|
||||
|
||||
### v0.13.1 - *2011-08-12*
|
||||
|
||||
* fixes initial tree display
|
||||
* adds sort order option
|
||||
* adds/fixes some translations
|
||||
* adds `lv` translation by Sandis Veinbergs
|
||||
|
||||
|
||||
### v0.13 - *2011-08-06*
|
||||
|
||||
* adds PHP implementation! (should work with PHP 5.2+)
|
||||
* adds new options
|
||||
* changes layout of the bottom bar to display status information
|
||||
* adds language selector to the bottom bar
|
||||
* quotes keys in `options.js` to make it valid json
|
||||
* changes value of option `lang` from `undefined` to `null`
|
||||
* adds some new keys to `h5aiLangs`
|
||||
* adds browser caching rules for css and js
|
||||
* adds `pt` translation by [Jonnathan](http://github.com/jonnsl)
|
||||
* adds `bg` translation by George Andonov
|
||||
|
||||
|
||||
### v0.12.3 - *2011-07-30*
|
||||
|
||||
* adds `tr` translation by [Batuhan Icoz](http://github.com/batuhanicoz)
|
||||
|
||||
|
||||
### v0.12.2 - *2011-07-30*
|
||||
|
||||
* adds `es` translation by Jose David Calderon Serrano
|
||||
|
||||
|
||||
### v0.12.1 - *2011-07-29*
|
||||
|
||||
* fixes unchecked use of console.log
|
||||
|
||||
|
||||
### v0.12 - *2011-07-28*
|
||||
|
||||
* improves performance
|
||||
|
||||
|
||||
### v0.11 - *2011-07-27*
|
||||
|
||||
* changes license to MIT license, see `LICENSE.txt`
|
||||
|
||||
|
||||
### v0.10.2 - *2011-07-26*
|
||||
|
||||
* improves tree scrollbar
|
||||
|
||||
|
||||
### v0.10.1 - *2011-07-24*
|
||||
|
||||
* fixes problems with ' in links
|
||||
|
||||
|
||||
### v0.10 - *2011-07-24*
|
||||
|
||||
* fixes problems with XAMPP on Windows (see `dot.htaccess` comments for instructions)
|
||||
* fixes tree fade-in-fade-out effect for small displays ([issue #6](http://github.com/lrsjng/h5ai/issues/6))
|
||||
* adds custom scrollbar to tree ([issue #6](http://github.com/lrsjng/h5ai/issues/6))
|
||||
* fixes broken links caused by URI encoding/decoding ([issue #9](http://github.com/lrsjng/h5ai/issues/9))
|
||||
* adds "empty" to localization (hope Google Translate did a good job here)
|
||||
|
||||
|
||||
### v0.9 - *2011-07-18*
|
||||
|
||||
* links hover states between crumb, extended view and tree
|
||||
* fixes size of tree view (now there's a ugly scrollbar, hopefully will be fixed)
|
||||
* refactores js to improve performance and cleaned code
|
||||
* adds caching for folder status codes and content
|
||||
* adds `fr` translation by [Nicolas](http://github.com/Nicosmos)
|
||||
* adds `nl` translation by [Stefan de Konink](http://github.com/skinkie)
|
||||
* adds `sv` translation by Oscar Carlsson
|
||||
|
||||
|
||||
### v0.8 - *2011-07-08*
|
||||
|
||||
* removes slashes from folder labels
|
||||
* optionally rename parent folder entries to real folder names, see `options.js`
|
||||
* long breadcrumbs (multiple rows) no longer hide content
|
||||
* error folder icons are opaque now
|
||||
* refactores js a lot (again...)
|
||||
|
||||
|
||||
### v0.7 - *2011-07-07*
|
||||
|
||||
* removes shadows
|
||||
* smarter tree side bar
|
||||
|
||||
|
||||
### v0.6 - *2011-07-05*
|
||||
|
||||
* refactores js
|
||||
* adds localization, see `options.js`
|
||||
|
||||
|
||||
### v0.5.3 - *2011-07-04*
|
||||
|
||||
* refactores js
|
||||
* adds basic options support via `options.js`
|
||||
* adds comments to `options.js`
|
||||
* adds optional tree sidebar
|
||||
|
||||
|
||||
### v0.5.2 - *2011-07-02*
|
||||
|
||||
* details view adjusts to window width
|
||||
* links icon for *.gz and *.bz2
|
||||
|
||||
|
||||
### v0.5.1 - *2011-07-01*
|
||||
|
||||
* disables tree sidebar for now, since it had unwanted side effects
|
||||
|
||||
|
||||
### v0.5 - *2011-07-01*
|
||||
|
||||
* adds tree sidebar
|
||||
* some refactorings
|
||||
|
||||
|
||||
### v0.4 - *2011-06-27*
|
||||
|
||||
* adds better fallback, in case JavaScript is disabled
|
||||
* rewrites js, fixed middle-button click etc. problems
|
||||
* refactors css
|
||||
* sorts, adds and moves icons and images
|
||||
* updates dot.access
|
||||
|
||||
|
||||
### v0.3.2 - *2011-06-24*
|
||||
|
||||
* removes lib versions from file names
|
||||
* adds 'empty' indicator for icons view
|
||||
|
||||
|
||||
### v0.3.1 - *2011-06-24*
|
||||
|
||||
* refactores js
|
||||
* adds `folderClick` and `fileClick` callback hooks
|
||||
* fixes .emtpy style
|
||||
|
||||
|
||||
### v0.3 - *2011-06-23*
|
||||
|
||||
* includes build stuff, files previously found in the base directory are now located in folder `target`
|
||||
* styles and scripts are now minified
|
||||
* adds Modernizr 2.0.4 for future use
|
||||
* updates jQuery to version 1.6.1
|
||||
|
||||
|
||||
### v0.2.3 - *2011-06-17*
|
||||
|
||||
* more refactoring in main.js
|
||||
|
||||
|
||||
### v0.2.2 - *2011-06-16*
|
||||
|
||||
* refactores a lot, adds some comments
|
||||
* includes fixes from [NumEricR](http://github.com/NumEricR)
|
||||
* adds top/bottom message support, only basicly styled
|
||||
|
||||
|
||||
### v0.2.1 - *2011-06-16*
|
||||
|
||||
* fixes croped filenames
|
||||
* fixes missing .png extension in header
|
||||
* adds some color to the links
|
||||
* adds changelog
|
||||
|
||||
|
||||
### v0.2 - *2011-06-15*
|
||||
|
||||
* adds icon view
|
||||
|
||||
[cve]: https://larsjung.de/h5ai/cve-2015-3203.txt
|
||||
|
2
ghu
Executable file
@@ -0,0 +1,2 @@
|
||||
#!/usr/bin/env sh
|
||||
node -r babel-core/register ghu.js "$@"
|
161
ghu.js
Normal file
@@ -0,0 +1,161 @@
|
||||
const {resolve, join} = require('path');
|
||||
const {
|
||||
ghu,
|
||||
autoprefixer, cssmin, each, ife, includeit, jade, jszip,
|
||||
less, mapfn, newerThan, read, remove, run, uglify, watch, wrap, write
|
||||
} = require('ghu');
|
||||
|
||||
const ROOT = resolve(__dirname);
|
||||
const SRC = join(ROOT, 'src');
|
||||
const TEST = join(ROOT, 'test');
|
||||
const BUILD = join(ROOT, 'build');
|
||||
|
||||
const mapper = mapfn.p(SRC, BUILD).s('.less', '.css').s('.jade', '');
|
||||
|
||||
ghu.defaults('release');
|
||||
|
||||
ghu.before(runtime => {
|
||||
runtime.pkg = Object.assign({}, require('./package.json'));
|
||||
|
||||
const res = run.sync(`git rev-list v${runtime.pkg.version}..HEAD`, {silent: true});
|
||||
if (res.code === 0) {
|
||||
const hashes = res.stdout.split(/\r?\n/).filter(x => x);
|
||||
if (hashes.length) {
|
||||
const counter = ('000' + hashes.length).substr(-3);
|
||||
const hash = hashes[0].substr(0, 7);
|
||||
runtime.pkg.version += `+${counter}~${hash}`;
|
||||
}
|
||||
}
|
||||
|
||||
runtime.comment = `${runtime.pkg.name} v${runtime.pkg.version} - ${runtime.pkg.homepage}`;
|
||||
runtime.commentJs = `/* ${runtime.comment} */\n`;
|
||||
runtime.commentHtml = `<!-- ${runtime.comment} -->`;
|
||||
|
||||
console.log(runtime.comment);
|
||||
});
|
||||
|
||||
ghu.task('force-production', 'ensure :production flag is set', runtime => {
|
||||
if (!runtime.args.production) {
|
||||
runtime.args.production = true;
|
||||
console.log('forcing production mode');
|
||||
}
|
||||
});
|
||||
|
||||
ghu.task('clean', 'delete build folder', () => {
|
||||
return remove(BUILD);
|
||||
});
|
||||
|
||||
ghu.task('lint', 'lint all JavaScript files with eslint', () => {
|
||||
return run('eslint .', {stdio: 'inherit'});
|
||||
});
|
||||
|
||||
ghu.task('build:scripts', runtime => {
|
||||
return read(`${SRC}/_h5ai/public/js/*.js`)
|
||||
.then(newerThan(mapper, `${SRC}/_h5ai/public/js/**`))
|
||||
.then(includeit())
|
||||
.then(ife(() => runtime.args.production, uglify()))
|
||||
.then(wrap(runtime.commentJs))
|
||||
.then(write(mapper, {overwrite: true}));
|
||||
});
|
||||
|
||||
ghu.task('build:styles', runtime => {
|
||||
return read(`${SRC}/_h5ai/public/css/*.less`)
|
||||
.then(newerThan(mapper, `${SRC}/_h5ai/public/css/**`))
|
||||
.then(includeit())
|
||||
.then(less())
|
||||
.then(autoprefixer())
|
||||
.then(ife(() => runtime.args.production, cssmin()))
|
||||
.then(wrap(runtime.commentJs))
|
||||
.then(write(mapper, {overwrite: true}));
|
||||
});
|
||||
|
||||
ghu.task('build:pages', runtime => {
|
||||
return read(`${SRC}: **/*.jade, ! **/*.tpl.jade`)
|
||||
.then(newerThan(mapper, `${SRC}/**/*.tpl.jade`))
|
||||
.then(jade({pkg: runtime.pkg}))
|
||||
.then(wrap('', runtime.commentHtml))
|
||||
.then(write(mapper, {overwrite: true}));
|
||||
});
|
||||
|
||||
ghu.task('build:copy', runtime => {
|
||||
const mapperRoot = mapfn.p(ROOT, join(BUILD, '_h5ai'));
|
||||
|
||||
return Promise.all([
|
||||
read(`${SRC}/**/conf/*.json`)
|
||||
.then(newerThan(mapper))
|
||||
.then(wrap(runtime.commentJs))
|
||||
.then(write(mapper, {overwrite: true, cluster: true})),
|
||||
|
||||
read(`${SRC}: **, ! **/*.js, ! **/*.less, ! **/*.jade, ! **/conf/*.json`)
|
||||
.then(newerThan(mapper))
|
||||
.then(each(obj => {
|
||||
if (/index\.php$/.test(obj.source)) {
|
||||
obj.content = obj.content.replace('{{VERSION}}', runtime.pkg.version);
|
||||
}
|
||||
}))
|
||||
.then(write(mapper, {overwrite: true, cluster: true})),
|
||||
|
||||
read(`${ROOT}/*.md`)
|
||||
.then(newerThan(mapperRoot))
|
||||
.then(write(mapperRoot, {overwrite: true, cluster: true}))
|
||||
]);
|
||||
});
|
||||
|
||||
ghu.task('build:tests', ['build:scripts', 'build:styles'], 'build the test suite', runtime => {
|
||||
return Promise.all([
|
||||
read(`${TEST}/scripts.js`)
|
||||
.then(newerThan(`${BUILD}/test/scripts.js`))
|
||||
.then(includeit())
|
||||
.then(write(`${BUILD}/test/scripts.js`, {overwrite: true})),
|
||||
|
||||
read(`${TEST}/styles.less`)
|
||||
.then(newerThan(`${BUILD}/test/styles.css`))
|
||||
.then(includeit())
|
||||
.then(less())
|
||||
.then(autoprefixer())
|
||||
.then(write(`${BUILD}/test/styles.css`, {overwrite: true})),
|
||||
|
||||
read(`${TEST}/index.html.jade`)
|
||||
.then(newerThan(`${BUILD}/test/index.html`))
|
||||
.then(jade({pkg: runtime.pkg}))
|
||||
.then(write(`${BUILD}/test/index.html`, {overwrite: true})),
|
||||
|
||||
read(`${BUILD}/_h5ai/public/js/scripts.js`)
|
||||
.then(newerThan(`${BUILD}/test/h5ai-scripts.js`))
|
||||
.then(write(`${BUILD}/test/h5ai-scripts.js`, {overwrite: true})),
|
||||
|
||||
read(`${BUILD}/_h5ai/public/css/styles.css`)
|
||||
.then(newerThan(`${BUILD}/test/h5ai-styles.css`))
|
||||
.then(write(`${BUILD}/test/h5ai-styles.css`, {overwrite: true}))
|
||||
]).then(() => {
|
||||
console.log(`browse to file://${BUILD}/test/index.html to run the test suite`);
|
||||
});
|
||||
});
|
||||
|
||||
ghu.task('build', ['build:scripts', 'build:styles', 'build:pages', 'build:copy', 'build:tests'],
|
||||
'build all updated files, optionally use :production');
|
||||
|
||||
ghu.task('deploy', ['build'], 'deploy to a specified path with :dest=/some/path', runtime => {
|
||||
if (typeof runtime.args.dest !== 'string') {
|
||||
throw new Error('no destination path (e.g. :dest=/some/path)');
|
||||
}
|
||||
console.log(`deploy to ${runtime.args.dest}`);
|
||||
|
||||
const mapperDeploy = mapfn.p(BUILD, resolve(runtime.args.dest));
|
||||
|
||||
return read(`${BUILD}/_h5ai/**`)
|
||||
.then(newerThan(mapperDeploy))
|
||||
.then(write(mapperDeploy, {overwrite: true, cluster: true}));
|
||||
});
|
||||
|
||||
ghu.task('watch', runtime => {
|
||||
return watch([SRC, TEST], () => ghu.run(runtime.sequence.filter(x => x !== 'watch'), runtime.args, true));
|
||||
});
|
||||
|
||||
ghu.task('release', ['force-production', 'clean', 'build'], 'create a zipball', runtime => {
|
||||
const target = join(BUILD, `${runtime.pkg.name}-${runtime.pkg.version}.zip`);
|
||||
|
||||
return read(`${BUILD}/_h5ai/**`)
|
||||
.then(jszip({dir: BUILD, level: 9}))
|
||||
.then(write(target, {overwrite: true}));
|
||||
});
|
169
makefile.js
@@ -1,169 +0,0 @@
|
||||
/*jshint node: true */
|
||||
'use strict';
|
||||
|
||||
|
||||
var path = require('path'),
|
||||
|
||||
pkg = require('./package.json'),
|
||||
|
||||
root = path.resolve(__dirname),
|
||||
src = path.join(root, 'src'),
|
||||
build = path.join(root, 'build'),
|
||||
|
||||
jshint = {
|
||||
// Enforcing Options
|
||||
bitwise: true,
|
||||
curly: true,
|
||||
eqeqeq: true,
|
||||
forin: true,
|
||||
latedef: true,
|
||||
newcap: true,
|
||||
noempty: true,
|
||||
plusplus: true,
|
||||
trailing: true,
|
||||
undef: true,
|
||||
|
||||
// Environments
|
||||
browser: true,
|
||||
|
||||
// Globals
|
||||
predef: [
|
||||
'modulejs'
|
||||
]
|
||||
},
|
||||
|
||||
handlebarsEnv = {
|
||||
pkg: pkg
|
||||
},
|
||||
|
||||
mapSrc = function (blob) {
|
||||
|
||||
return blob.source.replace(src, build).replace(/\.less$/, '.css').replace(/\.jade$/, '');
|
||||
},
|
||||
|
||||
mapRoot = function (blob) {
|
||||
|
||||
return blob.source.replace(root, path.join(build, '_h5ai'));
|
||||
};
|
||||
|
||||
|
||||
module.exports = function (make) {
|
||||
|
||||
var Event = make.Event,
|
||||
$ = make.fQuery,
|
||||
moment = make.moment;
|
||||
|
||||
|
||||
make.version('>=0.8.1');
|
||||
make.defaults('build');
|
||||
|
||||
|
||||
make.before(function () {
|
||||
|
||||
handlebarsEnv.stamp = moment().format('YYYY-MM-DD HH:mm:ss');
|
||||
});
|
||||
|
||||
|
||||
make.target('check-version', [], 'add git info to dev builds').async(function (done, fail) {
|
||||
|
||||
if (!/-dev$/.test(pkg.version)) {
|
||||
done();
|
||||
return;
|
||||
}
|
||||
|
||||
$.git(root, function (err, result) {
|
||||
|
||||
pkg.version += '-' + result.revListOriginMasterHead.length + '-' + result.revParseHead.slice(0, 7);
|
||||
Event.info({
|
||||
method: 'check-version',
|
||||
message: 'version set to ' + pkg.version
|
||||
});
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
make.target('clean', [], 'delete build folder').sync(function () {
|
||||
|
||||
$.rmfr($.I_AM_SURE, build);
|
||||
});
|
||||
|
||||
|
||||
make.target('lint', [], 'lint all JavaScript files with JSHint').sync(function () {
|
||||
|
||||
$(src + '/_h5ai/client/js: **/*.js, ! lib/**')
|
||||
.jshint(jshint);
|
||||
});
|
||||
|
||||
|
||||
make.target('build', ['check-version'], 'build all updated files').sync(function () {
|
||||
|
||||
$(src + ': _h5ai/client/js/*.js')
|
||||
.modified(mapSrc, $(src + ': _h5ai/client/js/**'))
|
||||
.includify()
|
||||
.uglifyjs()
|
||||
.write($.OVERWRITE, mapSrc);
|
||||
|
||||
$(src + ': _h5ai/client/css/*.less')
|
||||
.modified(mapSrc, $(src + ': _h5ai/client/css/**'))
|
||||
.less()
|
||||
.cssmin()
|
||||
.write($.OVERWRITE, mapSrc);
|
||||
|
||||
$(src + ': **/*.jade')
|
||||
.modified(mapSrc)
|
||||
.handlebars(handlebarsEnv)
|
||||
.jade()
|
||||
.write($.OVERWRITE, mapSrc);
|
||||
|
||||
$(src + ': **, ! _h5ai/client/js/**, ! _h5ai/client/css/**, ! **/*.jade')
|
||||
.modified(mapSrc)
|
||||
.handlebars(handlebarsEnv)
|
||||
.write($.OVERWRITE, mapSrc);
|
||||
|
||||
$(root + ': README*, LICENSE*')
|
||||
.modified(mapRoot)
|
||||
.write($.OVERWRITE, mapRoot);
|
||||
});
|
||||
|
||||
|
||||
make.target('build-uncompressed', ['check-version'], 'build all updated files without compression').sync(function () {
|
||||
|
||||
$(src + ': _h5ai/client/js/*.js')
|
||||
.modified(mapSrc, $(src + ': _h5ai/client/js/**'))
|
||||
.includify()
|
||||
// .uglifyjs()
|
||||
.write($.OVERWRITE, mapSrc);
|
||||
|
||||
$(src + ': _h5ai/client/css/*.less')
|
||||
.modified(mapSrc, $(src + ': _h5ai/client/css/**'))
|
||||
.less()
|
||||
// .cssmin()
|
||||
.write($.OVERWRITE, mapSrc);
|
||||
|
||||
$(src + ': **/*.jade')
|
||||
.modified(mapSrc)
|
||||
.handlebars(handlebarsEnv)
|
||||
.jade()
|
||||
.write($.OVERWRITE, mapSrc);
|
||||
|
||||
$(src + ': **, ! _h5ai/client/js/**, ! _h5ai/client/css/**, ! **/*.jade')
|
||||
.modified(mapSrc)
|
||||
.handlebars(handlebarsEnv)
|
||||
.write($.OVERWRITE, mapSrc);
|
||||
|
||||
$(root + ': README*, LICENSE*')
|
||||
.modified(mapRoot)
|
||||
.write($.OVERWRITE, mapRoot);
|
||||
});
|
||||
|
||||
|
||||
make.target('release', ['clean', 'build'], 'create a zipball').async(function (done, fail) {
|
||||
|
||||
$(build + ': **').shzip({
|
||||
target: path.join(build, pkg.name + '-' + pkg.version + '.zip'),
|
||||
dir: build,
|
||||
callback: done
|
||||
});
|
||||
});
|
||||
};
|
24
package.json
@@ -1,12 +1,28 @@
|
||||
{
|
||||
"name": "h5ai",
|
||||
"version": "0.23.0",
|
||||
"description": "a modern HTTP web server index",
|
||||
"url": "http://larsjung.de/h5ai/",
|
||||
"author": "Lars Jung",
|
||||
"version": "0.28.0",
|
||||
"description": "Modern HTTP web server index.",
|
||||
"homepage": "https://larsjung.de/h5ai/",
|
||||
"bugs": "https://github.com/lrsjng/h5ai/issues",
|
||||
"author": "Lars Jung <lrsjng@gmail.com> (https://larsjung.de)",
|
||||
"license": "MIT",
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/lrsjng/h5ai.git"
|
||||
},
|
||||
"scripts": {
|
||||
"lint": "eslint .",
|
||||
"ghu": "node -r babel-core/register ghu.js",
|
||||
"build": "npm run -s ghu release"
|
||||
},
|
||||
"devDependencies": {
|
||||
"babel-core": "6.3.21",
|
||||
"babel-eslint": "5.0.0-beta6",
|
||||
"babel-preset-es2015": "6.3.13",
|
||||
"eslint": "1.10.3",
|
||||
"ghu": "0.4.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=4.0.0"
|
||||
}
|
||||
}
|
||||
|
43
src/.eslintrc
Normal file
@@ -0,0 +1,43 @@
|
||||
---
|
||||
env:
|
||||
es6: false
|
||||
node: false
|
||||
browser: true
|
||||
mocha: false
|
||||
|
||||
globals:
|
||||
modulejs: false
|
||||
|
||||
ecmaFeatures:
|
||||
arrowFunctions: false
|
||||
binaryLiterals: false
|
||||
blockBindings: false
|
||||
classes: false
|
||||
defaultParams: false
|
||||
destructuring: false
|
||||
forOf: false
|
||||
generators: false
|
||||
globalReturn: false
|
||||
jsx: false
|
||||
modules: false
|
||||
objectLiteralComputedProperties: false
|
||||
objectLiteralDuplicateProperties: false
|
||||
objectLiteralShorthandMethods: false
|
||||
objectLiteralShorthandProperties: false
|
||||
octalLiterals: false
|
||||
regexUFlag: false
|
||||
regexYFlag: false
|
||||
spread: false
|
||||
superInFunctions: false
|
||||
templateStrings: false
|
||||
unicodeCodePointEscapes: false
|
||||
|
||||
rules:
|
||||
consistent-this: 0
|
||||
func-names: 0
|
||||
max-params: [1, 10]
|
||||
no-invalid-this: 0
|
||||
no-var: 0
|
||||
object-shorthand: 0
|
||||
prefer-arrow-callback: 0
|
||||
prefer-reflect: 0
|
@@ -1,115 +1,3 @@
|
||||
|
||||
DirectoryIndex index.html
|
||||
|
||||
|
||||
|
||||
|
||||
# ------------------------------------------------------------------------------
|
||||
# | File access |
|
||||
# ------------------------------------------------------------------------------
|
||||
|
||||
# Block access to directories without a default document.
|
||||
# Usually you should leave this uncommented because you shouldn't allow anyone
|
||||
# to surf through every directory on your server (which may includes rather
|
||||
# private places like the CMS's directories).
|
||||
|
||||
<IfModule mod_autoindex.c>
|
||||
Options -Indexes
|
||||
</IfModule>
|
||||
|
||||
|
||||
|
||||
|
||||
# ------------------------------------------------------------------------------
|
||||
# | Better website experience |
|
||||
# ------------------------------------------------------------------------------
|
||||
|
||||
# Force IE to render pages in the highest available mode in the various
|
||||
# cases when it may not: http://hsivonen.iki.fi/doctype/ie-mode.pdf.
|
||||
# Use, if installed, Google Chrome Frame.
|
||||
|
||||
<IfModule mod_headers.c>
|
||||
Header set X-UA-Compatible "IE=edge,chrome=1"
|
||||
# `mod_headers` can't match based on the content-type, however, we only
|
||||
# want to send this header for HTML pages and not for the other resources
|
||||
<FilesMatch "\.(appcache|crx|css|eot|gif|htc|ico|jpe?g|js|m4a|m4v|manifest|mp4|oex|oga|ogg|ogv|otf|pdf|png|safariextz|svg|svgz|ttf|vcf|webapp|webm|webp|woff|xml|xpi)$">
|
||||
Header unset X-UA-Compatible
|
||||
</FilesMatch>
|
||||
</IfModule>
|
||||
|
||||
|
||||
|
||||
|
||||
# ------------------------------------------------------------------------------
|
||||
# | UTF-8 encoding |
|
||||
# ------------------------------------------------------------------------------
|
||||
|
||||
# Use UTF-8 encoding for anything served as `text/html` or `text/plain`.
|
||||
AddDefaultCharset utf-8
|
||||
|
||||
# Force UTF-8 for certain file formats.
|
||||
<IfModule mod_mime.c>
|
||||
AddCharset utf-8 .atom .css .js .json .rss .vtt .webapp .xml
|
||||
</IfModule>
|
||||
|
||||
|
||||
|
||||
|
||||
# ------------------------------------------------------------------------------
|
||||
# | Expires headers (for better cache control) |
|
||||
# ------------------------------------------------------------------------------
|
||||
|
||||
# The following expires headers are set pretty far in the future. If you don't
|
||||
# control versioning with filename-based cache busting, consider lowering the
|
||||
# cache time for resources like CSS and JS to something like 1 week.
|
||||
|
||||
<IfModule mod_expires.c>
|
||||
|
||||
ExpiresActive on
|
||||
ExpiresDefault "access plus 1 month"
|
||||
|
||||
# CSS
|
||||
ExpiresByType text/css "access plus 1 week"
|
||||
|
||||
# Data interchange
|
||||
ExpiresByType application/json "access plus 0 seconds"
|
||||
ExpiresByType application/xml "access plus 0 seconds"
|
||||
ExpiresByType text/xml "access plus 0 seconds"
|
||||
|
||||
# Favicon (cannot be renamed!)
|
||||
ExpiresByType image/x-icon "access plus 1 week"
|
||||
|
||||
# HTML components (HTCs)
|
||||
ExpiresByType text/x-component "access plus 1 month"
|
||||
|
||||
# HTML
|
||||
ExpiresByType text/html "access plus 0 seconds"
|
||||
|
||||
# JavaScript
|
||||
ExpiresByType application/javascript "access plus 1 week"
|
||||
|
||||
# Manifest files
|
||||
ExpiresByType application/x-web-app-manifest+json "access plus 0 seconds"
|
||||
ExpiresByType text/cache-manifest "access plus 0 seconds"
|
||||
|
||||
# Media
|
||||
ExpiresByType audio/ogg "access plus 1 month"
|
||||
ExpiresByType image/gif "access plus 1 month"
|
||||
ExpiresByType image/jpeg "access plus 1 month"
|
||||
ExpiresByType image/png "access plus 1 month"
|
||||
ExpiresByType video/mp4 "access plus 1 month"
|
||||
ExpiresByType video/ogg "access plus 1 month"
|
||||
ExpiresByType video/webm "access plus 1 month"
|
||||
|
||||
# Web feeds
|
||||
ExpiresByType application/atom+xml "access plus 1 hour"
|
||||
ExpiresByType application/rss+xml "access plus 1 hour"
|
||||
|
||||
# Web fonts
|
||||
ExpiresByType application/font-woff "access plus 1 month"
|
||||
ExpiresByType application/vnd.ms-fontobject "access plus 1 month"
|
||||
ExpiresByType application/x-font-ttf "access plus 1 month"
|
||||
ExpiresByType font/opentype "access plus 1 month"
|
||||
ExpiresByType image/svg+xml "access plus 1 month"
|
||||
|
||||
</IfModule>
|
||||
Satisfy all
|
||||
Order deny,allow
|
||||
Deny from all
|
||||
|
@@ -1,76 +0,0 @@
|
||||
|
||||
#bottombar {
|
||||
position: fixed;
|
||||
z-index: 5;
|
||||
width: 100%;
|
||||
height: 18px;
|
||||
left: 0;
|
||||
bottom: 0;
|
||||
padding: 6px 0 8px 0;
|
||||
// .vert-gradient(rgb(241,241,241), rgb(228,228,228));
|
||||
background-color: @col-widget-back;
|
||||
border-top: @border-widget;
|
||||
// .box-shadow(0 -2px 4px 0 rgba(0, 0, 0, 0.15);
|
||||
|
||||
color: #999;
|
||||
text-align: center;
|
||||
|
||||
a, a:active, a:visited {
|
||||
color: #555;
|
||||
text-decoration: none;
|
||||
.transition(all 0.2s ease-in-out);
|
||||
opacity: 0.7;
|
||||
|
||||
&:hover {
|
||||
color: @col-hover;
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
.left {
|
||||
position: absolute;
|
||||
left: 0;
|
||||
display: block;
|
||||
padding: 0 8px;
|
||||
}
|
||||
.center {
|
||||
display: block;
|
||||
}
|
||||
.right {
|
||||
position: absolute;
|
||||
right: 0;
|
||||
display: block;
|
||||
padding: 0 8px;
|
||||
}
|
||||
.noJsMsg {
|
||||
color: @col-error;
|
||||
margin-left: 16px;
|
||||
}
|
||||
.noBrowserMsg {
|
||||
display: none;
|
||||
color: @col-error;
|
||||
margin-left: 16px;
|
||||
a, a:active, a:visited {
|
||||
color: @col-error;
|
||||
text-decoration: underline;
|
||||
opacity: 1;
|
||||
&:hover {
|
||||
color: @col-hover;
|
||||
}
|
||||
}
|
||||
}
|
||||
.status {
|
||||
.sep {
|
||||
display: inline-block;
|
||||
padding: 0 6px;
|
||||
|
||||
&:before {
|
||||
content: '·'
|
||||
}
|
||||
}
|
||||
&.default {
|
||||
}
|
||||
&.dynamic {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
}
|
@@ -1,30 +0,0 @@
|
||||
|
||||
#content {
|
||||
max-width: 960px;
|
||||
margin: 50px auto;
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
#content-header, #content-footer {
|
||||
color: #333;
|
||||
|
||||
a, a:active, a:visited {
|
||||
color: @col-link;
|
||||
text-decoration: none;
|
||||
cursor: pointer;
|
||||
|
||||
&:hover {
|
||||
color: #555;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#content-header {
|
||||
padding-bottom: 12px;
|
||||
margin-bottom: 32px;
|
||||
}
|
||||
|
||||
#content-footer {
|
||||
padding-top: 12px;
|
||||
margin-top: 32px;
|
||||
}
|
@@ -1,32 +0,0 @@
|
||||
|
||||
#view .context-menu {
|
||||
|
||||
display: block;
|
||||
position: absolute;
|
||||
right: 0;
|
||||
top: 0;
|
||||
background-color: @col-widget-back;
|
||||
border: @border-widget;
|
||||
color: #999;
|
||||
z-index: 10;
|
||||
font-size: 0.9em;
|
||||
|
||||
ul {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
list-style: none;
|
||||
text-align: left;
|
||||
|
||||
li {
|
||||
padding: 8px 12px 10px 12px;
|
||||
white-space: nowrap;
|
||||
border-top: @border-widget-sep;
|
||||
.transition(all 0.2s ease-in-out);
|
||||
|
||||
&:hover {
|
||||
color: @col-hover;
|
||||
background-color: @col-widget-back-hover;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@@ -1,10 +0,0 @@
|
||||
|
||||
#delete {
|
||||
display: none;
|
||||
.topbar-right;
|
||||
.transition(all 0.2s ease-in-out);
|
||||
|
||||
&.failed {
|
||||
background-color: rgba(255,0,0,0.5);
|
||||
}
|
||||
}
|
@@ -1,10 +0,0 @@
|
||||
|
||||
#download {
|
||||
display: none;
|
||||
.topbar-right;
|
||||
.transition(all 0.2s ease-in-out);
|
||||
|
||||
&.failed {
|
||||
background-color: rgba(255,0,0,0.5);
|
||||
}
|
||||
}
|
@@ -1,89 +0,0 @@
|
||||
|
||||
#content {
|
||||
border: 1px dashed #fff;
|
||||
.border-radius(8px);
|
||||
.transition(border-color 0.2s ease-in-out);
|
||||
|
||||
&.hint {
|
||||
border-color: #ddd;
|
||||
}
|
||||
&.match {
|
||||
border-color: #999;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
#uploads {
|
||||
width: 450px;
|
||||
margin: 12px auto;
|
||||
padding: 0;
|
||||
list-style: none;
|
||||
|
||||
.upload {
|
||||
color: #555;
|
||||
font-size: 0.9em;
|
||||
|
||||
.name {
|
||||
display: inline-block;
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
|
||||
&:before {
|
||||
display: inline-block;
|
||||
content: '•';
|
||||
color: #55c;
|
||||
width: 1em;
|
||||
text-align: center;
|
||||
padding-right: 1em;
|
||||
}
|
||||
}
|
||||
|
||||
.size {
|
||||
display: none;
|
||||
float: right;
|
||||
white-space: nowrap;
|
||||
|
||||
&:after {
|
||||
content: ' bytes'
|
||||
}
|
||||
}
|
||||
|
||||
.error {
|
||||
float: right;
|
||||
white-space: nowrap;
|
||||
color: #c55;
|
||||
}
|
||||
|
||||
.finished {
|
||||
float: right;
|
||||
white-space: nowrap;
|
||||
color: #008200;
|
||||
}
|
||||
|
||||
.progress {
|
||||
display: inline-block;
|
||||
margin: 4px 8px;
|
||||
|
||||
width: 84px;
|
||||
height: 8px;
|
||||
background-color: #ddd;
|
||||
overflow: hidden;
|
||||
float: right;
|
||||
|
||||
.bar {
|
||||
width: 0%;
|
||||
height: 100%;
|
||||
background-color: #999;
|
||||
}
|
||||
}
|
||||
|
||||
&.finished .name:before {
|
||||
content: '✔';
|
||||
color: #008200;
|
||||
}
|
||||
&.error .name:before {
|
||||
content: '✖';
|
||||
color: #c55;
|
||||
}
|
||||
}
|
||||
}
|
@@ -1,90 +0,0 @@
|
||||
|
||||
#fallback {
|
||||
display: none;
|
||||
max-width: 960px;
|
||||
margin: 80px auto;
|
||||
|
||||
table {
|
||||
display: block;
|
||||
width: 100%;
|
||||
border-collapse: collapse;
|
||||
|
||||
th, td {
|
||||
padding: 6px;
|
||||
text-align: left;
|
||||
border: none;
|
||||
}
|
||||
th {
|
||||
padding-bottom: 18px;
|
||||
|
||||
a, a:visited {
|
||||
color: #555;
|
||||
font-weight: normal;
|
||||
text-decoration: none;
|
||||
cursor: pointer;
|
||||
opacity: 0.4;
|
||||
.transition(all 0.2s ease-in-out);
|
||||
|
||||
&:hover {
|
||||
color: #555;
|
||||
opacity: 0.9;
|
||||
}
|
||||
}
|
||||
span {
|
||||
color: #555;
|
||||
font-weight: normal;
|
||||
opacity: 0.4;
|
||||
}
|
||||
}
|
||||
td {
|
||||
border-bottom: 1px solid @col-border;
|
||||
overflow: hidden;
|
||||
white-space: nowrap;
|
||||
font-size: 16px;
|
||||
|
||||
a, a:active, a:visited {
|
||||
display: block;
|
||||
color: #555;
|
||||
text-decoration: none;
|
||||
cursor: pointer;
|
||||
|
||||
&:hover {
|
||||
color: @col-hover;
|
||||
}
|
||||
}
|
||||
}
|
||||
td:nth-child(1), th:nth-child(1) {
|
||||
text-align: center;
|
||||
width: 16px;
|
||||
color: #ccc;
|
||||
font-size: 0.9em;
|
||||
|
||||
img {
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
}
|
||||
}
|
||||
td:nth-child(2), th:nth-child(2) {
|
||||
width: 682px;
|
||||
max-width: 682px;
|
||||
}
|
||||
td:nth-child(3), th:nth-child(3) {
|
||||
text-align: right;
|
||||
width: 160px;
|
||||
min-width: 160px;
|
||||
}
|
||||
td:nth-child(4), th:nth-child(4) {
|
||||
text-align: right;
|
||||
width: 70px;
|
||||
min-width: 70px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
html.no-js, html.no-browser {
|
||||
|
||||
#fallback {
|
||||
display: block;
|
||||
}
|
||||
}
|
@@ -1,18 +0,0 @@
|
||||
|
||||
#filter {
|
||||
.topbar-right;
|
||||
|
||||
input {
|
||||
border: none;
|
||||
font-family: @font-family;
|
||||
color: @col;
|
||||
background-color: rgba(0,0,0,0);
|
||||
width: 30px;
|
||||
}
|
||||
|
||||
&.current {
|
||||
input {
|
||||
width: 150px;
|
||||
}
|
||||
}
|
||||
}
|
@@ -1,56 +0,0 @@
|
||||
|
||||
@col: rgb(85,85,85);
|
||||
@col-back: rgb(255,255,255);
|
||||
@col-hover: rgb(29,119,194);
|
||||
@col-border: rgba(0,0,0,0.05);
|
||||
@col-border-strong: rgba(0,0,0,0.15);
|
||||
|
||||
@col-error: rgb(204,51,51);
|
||||
|
||||
@col-link: rgb(29,119,194);
|
||||
@col-link-hover: rgb(29,119,194);
|
||||
|
||||
@col-widget-back: rgb(245,245,245);
|
||||
@col-widget-back-highlight: rgba(255,255,255,0.8);
|
||||
@col-widget-back-hover: rgba(255,255,255,0.8);
|
||||
@col-widget-back-sel: rgba(255,255,255,0.8);
|
||||
@col-widget-sep: @col-border;
|
||||
|
||||
// @col-sb-back: rgb(210,210,210);
|
||||
// @col-sb-thumb: rgb(180,180,180);
|
||||
// @col-sb-thumb-active: rgb(150,150,150);
|
||||
@col-sb-back: rgba(0,0,0,0.08);
|
||||
@col-sb-thumb: rgba(0,0,0,0.15);
|
||||
@col-sb-thumb-active: rgba(0,0,0,0.25);
|
||||
|
||||
|
||||
@border-widget: 1px solid @col-border;
|
||||
@border-widget-sep: 1px solid @col-widget-sep;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@font-family: Ubuntu, sans-serif;
|
||||
@font-family-mono: "Ubuntu Mono", monospace;
|
||||
|
||||
|
||||
html { overflow-y: auto; }
|
||||
::-moz-selection { background: #68A9FF; color: #fff; text-shadow: none; }
|
||||
::selection { background: #68A9FF; color: #fff; text-shadow: none; }
|
||||
|
||||
body {
|
||||
font-family: @font-family;
|
||||
// font-weight: 400;
|
||||
font-size: 13px;
|
||||
color: @col;
|
||||
background-color: @col-back;
|
||||
margin: 30px;
|
||||
}
|
||||
|
||||
html.js .hideOnJs, html.no-js .hideOnNoJs {
|
||||
display: none;
|
||||
}
|
||||
html.no-browser .noBrowserMsg {
|
||||
display: inline !important;
|
||||
}
|
@@ -1,101 +0,0 @@
|
||||
|
||||
body#h5ai-info {
|
||||
font-family: @font-family;
|
||||
margin: 2em auto 4em auto;
|
||||
font-size: 20px;
|
||||
color: @col;
|
||||
max-width: 600px;
|
||||
text-align: center;
|
||||
|
||||
a, a:active, a:visited {
|
||||
color: @col;
|
||||
text-decoration: none;
|
||||
.transition(all 0.2s ease-in-out);
|
||||
|
||||
&:hover {
|
||||
color: @col-hover;
|
||||
}
|
||||
}
|
||||
|
||||
.build-version {
|
||||
display: block;
|
||||
}
|
||||
.build-stamp {
|
||||
display: block;
|
||||
margin-top: 0.3em;
|
||||
font-size: 0.6em;
|
||||
color: #aaa;
|
||||
}
|
||||
.idx-file {
|
||||
margin-top: 1em;
|
||||
font-size: 0.6em;
|
||||
display: block;
|
||||
color: #aaa;
|
||||
|
||||
.value {
|
||||
margin-left: 0.5em;
|
||||
padding: 2px 4px;
|
||||
.border-radius(4px);
|
||||
font-family: @font-family-mono;
|
||||
letter-spacing: 0.1em;
|
||||
background-color: @col-widget-back;
|
||||
border: @border-widget;
|
||||
}
|
||||
}
|
||||
h1 {
|
||||
font-size: 3.6em;
|
||||
margin: 0;
|
||||
}
|
||||
h2 {
|
||||
font-size: 1.15em;
|
||||
margin: 2.6em 0 0 0;
|
||||
}
|
||||
p {
|
||||
line-height: 1.6em;
|
||||
}
|
||||
p + p {
|
||||
margin-top: 1.2em;
|
||||
}
|
||||
li {
|
||||
margin-top: 0.6em;
|
||||
line-height: 1.4em;
|
||||
}
|
||||
|
||||
#tests {
|
||||
display: inline-block;
|
||||
list-style-type: none;
|
||||
text-align: left;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
|
||||
.test-label {
|
||||
display: inline-block;
|
||||
width: 300px;
|
||||
}
|
||||
.test-result {
|
||||
display: inline-block;
|
||||
width: 70px;
|
||||
text-align: right;
|
||||
font-weight: bold;
|
||||
color: #aaa;
|
||||
|
||||
&.test-passed {
|
||||
color: #5a5;
|
||||
}
|
||||
&.test-failed {
|
||||
color: #a55;
|
||||
}
|
||||
}
|
||||
.test-info {
|
||||
margin: 4px 0 12px 12px;
|
||||
font-size: 0.7em;
|
||||
color: #aaa;
|
||||
width: 310px;
|
||||
line-height: 1.2em;
|
||||
}
|
||||
}
|
||||
|
||||
#bottombar {
|
||||
font-size: 13px;
|
||||
}
|
||||
}
|
@@ -1,54 +0,0 @@
|
||||
|
||||
#langSelector {
|
||||
position: relative;
|
||||
cursor: pointer;
|
||||
|
||||
.langOptions {
|
||||
position: absolute;
|
||||
z-index: 2;
|
||||
overflow: auto;
|
||||
display: none;
|
||||
right: 0;
|
||||
top: 0;
|
||||
max-height: 200px;
|
||||
background-color: @col-widget-back;
|
||||
border: @border-widget;
|
||||
|
||||
.sp-scrollbar {
|
||||
margin: 0;
|
||||
width: 6px;
|
||||
background-color: @col-sb-back;
|
||||
cursor: pointer;
|
||||
|
||||
.sp-thumb {
|
||||
background-color: @col-sb-thumb;
|
||||
}
|
||||
&.active .sp-thumb {
|
||||
background-color: @col-sb-thumb-active;
|
||||
}
|
||||
}
|
||||
|
||||
ul {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
list-style: none;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
li {
|
||||
padding: 8px 24px 10px 24px;
|
||||
white-space: nowrap;
|
||||
border-top: @border-widget-sep;
|
||||
.transition(all 0.2s ease-in-out);
|
||||
|
||||
&.current {
|
||||
color: #333;
|
||||
background-color: @col-widget-back-sel;
|
||||
}
|
||||
&:hover {
|
||||
color: @col-hover;
|
||||
background-color: @col-widget-back-hover;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@@ -1,14 +0,0 @@
|
||||
|
||||
#notify {
|
||||
position: fixed;
|
||||
left: 50%;
|
||||
top: 3px;
|
||||
width: 200px;
|
||||
margin-left: -100px;
|
||||
z-index: 100;
|
||||
padding: 2px 6px 2px 6px;
|
||||
color: #fff;
|
||||
background-color: rgba(0, 0, 0, 0.2);
|
||||
.border-radius(4px);
|
||||
text-align: center;
|
||||
}
|
@@ -1,130 +0,0 @@
|
||||
|
||||
#pv-img-overlay {
|
||||
display: none;
|
||||
position: fixed;
|
||||
left: 0;
|
||||
top: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
z-index: 100;
|
||||
|
||||
background-color: rgba(0,0,0,0.5);
|
||||
.transition(background-color 0.3s ease-in-out);
|
||||
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
#pv-img-content, #pv-spinner {
|
||||
position: fixed;
|
||||
}
|
||||
|
||||
@check-white: #f8f8f8;
|
||||
@check-black: #e8e8e8;
|
||||
#pv-img-image {
|
||||
max-width: 100%;
|
||||
max-height: 100%;
|
||||
border: 2px solid #fff;
|
||||
.border-radius(4px);
|
||||
|
||||
background-color: @check-white;
|
||||
background-image:
|
||||
-webkit-linear-gradient(45deg, @check-black 25%, transparent 25%, transparent 75%, @check-black 75%, @check-black),
|
||||
-webkit-linear-gradient(45deg, @check-black 25%, transparent 25%, transparent 75%, @check-black 75%, @check-black);
|
||||
background-size: 60px 60px;
|
||||
background-position: 0 0, 30px 30px
|
||||
}
|
||||
|
||||
#pv-img-overlay.fullscreen {
|
||||
background-color: #111;
|
||||
|
||||
#pv-img-image {
|
||||
border: 0;
|
||||
.border-radius(0);
|
||||
}
|
||||
}
|
||||
|
||||
#pv-img-close {
|
||||
position: fixed;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
#pv-img-prev {
|
||||
position: fixed;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
#pv-img-next {
|
||||
position: fixed;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
#pv-img-buttons, #pv-img-topbuttons {
|
||||
list-style: none;
|
||||
list-style-image: none;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
|
||||
img {
|
||||
position: relative;
|
||||
top: -2px;
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
}
|
||||
img + span, img + input {
|
||||
margin-left: 6px;
|
||||
}
|
||||
input {
|
||||
background-color: rgba(255,255,255,0.1);
|
||||
border: none;
|
||||
color: #ccc;
|
||||
}
|
||||
|
||||
.bar-label {
|
||||
display: block;
|
||||
color: #ccc;
|
||||
height: 30px;
|
||||
line-height: 30px;
|
||||
padding: 0 10px;
|
||||
opacity: 0.7;
|
||||
.transition(all 0.2s ease-in-out);
|
||||
}
|
||||
|
||||
.bar-highlight {
|
||||
background-color: rgba(255,255,255,0.1);
|
||||
opacity: 1.0;
|
||||
}
|
||||
|
||||
@bar-sep-border: 1px solid rgba(255,255,255,0.08);
|
||||
|
||||
.bar-button {
|
||||
.bar-label;
|
||||
cursor: pointer;
|
||||
&:hover, &.hover {
|
||||
.bar-highlight;
|
||||
}
|
||||
}
|
||||
|
||||
.bar-left {
|
||||
float: left;
|
||||
border-right: @bar-sep-border;
|
||||
}
|
||||
|
||||
.bar-right {
|
||||
float: right;
|
||||
border-left: @bar-sep-border;
|
||||
}
|
||||
}
|
||||
|
||||
#pv-img-bottombar {
|
||||
position: fixed;
|
||||
z-index: 5;
|
||||
width: 100%;
|
||||
height: 32px;
|
||||
left: 0;
|
||||
bottom: 0;
|
||||
// .vert-gradient(rgb(27,27,27), rgb(14,14,14));
|
||||
background-color: rgb(27,27,27);
|
||||
border-top: 1px solid rgb(45,45,45);
|
||||
}
|
@@ -1,232 +0,0 @@
|
||||
|
||||
#pv-txt-overlay {
|
||||
display: none;
|
||||
position: fixed;
|
||||
left: 0;
|
||||
top: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
z-index: 100;
|
||||
|
||||
background-color: rgba(0,0,0,0.5);
|
||||
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
#pv-txt-content {
|
||||
max-width: 960px;
|
||||
margin: 0 auto;
|
||||
padding: 10px;
|
||||
background-color: #fff;
|
||||
border: 2px solid #fff;
|
||||
.border-radius(4px);
|
||||
text-align: left;
|
||||
overflow: auto;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
#pv-txt-spinner {
|
||||
position: fixed;
|
||||
}
|
||||
|
||||
#pv-txt-text {
|
||||
|
||||
&.highlighted {
|
||||
word-break: break-all;
|
||||
|
||||
tr:hover {
|
||||
background-color: rgba(0,0,0,0.05);
|
||||
|
||||
.nr {
|
||||
color: #333;
|
||||
}
|
||||
}
|
||||
|
||||
td {
|
||||
vertical-align: top;
|
||||
font-family: @font-family-mono;
|
||||
font-size: 16px;
|
||||
line-height: 1.2em;
|
||||
color: #999;
|
||||
word-break: normal;
|
||||
|
||||
&.nr {
|
||||
text-align: right;
|
||||
padding: 0 8px 0 4px;
|
||||
}
|
||||
|
||||
&.line {
|
||||
width: 100%;
|
||||
padding: 0 4px 0 8px;
|
||||
}
|
||||
|
||||
code {
|
||||
font-family: @font-family-mono;
|
||||
font-size: 16px;
|
||||
line-height: 1.2em;
|
||||
}
|
||||
}
|
||||
|
||||
.plain {
|
||||
color: #000;
|
||||
}
|
||||
.comments {
|
||||
color: #008200;
|
||||
}
|
||||
.string {
|
||||
color: #1111ff;
|
||||
}
|
||||
.keyword {
|
||||
color: #006699;
|
||||
font-weight: bold;
|
||||
}
|
||||
.preprocessor {
|
||||
color: #999;
|
||||
}
|
||||
.variable {
|
||||
color: #aa7700;
|
||||
}
|
||||
.value {
|
||||
color: #009900;
|
||||
}
|
||||
.functions {
|
||||
color: #ff1493;
|
||||
}
|
||||
.constants {
|
||||
color: #0066cc;
|
||||
}
|
||||
.script {
|
||||
color: #006699;
|
||||
font-weight: bold;
|
||||
}
|
||||
.color1 {
|
||||
color: #999;
|
||||
}
|
||||
.color2 {
|
||||
color: #ff1493;
|
||||
}
|
||||
.color3 {
|
||||
color: #ff1111;
|
||||
}
|
||||
|
||||
a, a:active, a:visited {
|
||||
color: #2080FF;
|
||||
text-decoration: none;
|
||||
cursor: pointer;
|
||||
|
||||
&:hover {
|
||||
color: #68A9FF;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
&.markdown {
|
||||
font-size: 16px;
|
||||
padding: 8px 24px;
|
||||
|
||||
a, a:active, a:visited {
|
||||
color: #2080FF;
|
||||
text-decoration: none;
|
||||
cursor: pointer;
|
||||
|
||||
&:hover {
|
||||
color: #68A9FF;
|
||||
}
|
||||
}
|
||||
|
||||
pre, code {
|
||||
font-family: @font-family-mono;
|
||||
}
|
||||
code {
|
||||
color: #008200;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#pv-txt-close {
|
||||
position: fixed;
|
||||
left: 0;
|
||||
top: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
#pv-txt-prev {
|
||||
position: fixed;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
#pv-txt-next {
|
||||
position: fixed;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
#pv-txt-buttons, #pv-txt-topbuttons {
|
||||
list-style: none;
|
||||
list-style-image: none;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
|
||||
img {
|
||||
position: relative;
|
||||
top: -2px;
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
}
|
||||
img + span, img + input {
|
||||
margin-left: 6px;
|
||||
}
|
||||
input {
|
||||
background-color: rgba(255,255,255,0.1);
|
||||
border: none;
|
||||
color: #ccc;
|
||||
}
|
||||
|
||||
.bar-label {
|
||||
display: block;
|
||||
color: #ccc;
|
||||
height: 30px;
|
||||
line-height: 30px;
|
||||
padding: 0 10px;
|
||||
opacity: 0.7;
|
||||
.transition(all 0.2s ease-in-out);
|
||||
}
|
||||
|
||||
.bar-highlight {
|
||||
background-color: rgba(255,255,255,0.1);
|
||||
opacity: 1.0;
|
||||
}
|
||||
|
||||
@bar-sep-border: 1px solid rgba(255,255,255,0.05);
|
||||
|
||||
.bar-button {
|
||||
.bar-label;
|
||||
cursor: pointer;
|
||||
&:hover, &.hover {
|
||||
.bar-highlight;
|
||||
}
|
||||
}
|
||||
|
||||
.bar-left {
|
||||
float: left;
|
||||
border-right: @bar-sep-border;
|
||||
}
|
||||
|
||||
.bar-right {
|
||||
float: right;
|
||||
border-left: @bar-sep-border;
|
||||
}
|
||||
}
|
||||
|
||||
#pv-txt-bottombar {
|
||||
position: fixed;
|
||||
z-index: 5;
|
||||
width: 100%;
|
||||
height: 32px;
|
||||
left: 0;
|
||||
bottom: 0;
|
||||
.vert-gradient(rgb(27,27,27), rgb(14,14,14));
|
||||
border-top: 1px solid rgb(45,45,45);
|
||||
}
|
@@ -1,16 +0,0 @@
|
||||
|
||||
#qrcode {
|
||||
display: none;
|
||||
position: fixed;
|
||||
right: 16px;
|
||||
bottom: 50px;
|
||||
z-index: 1;
|
||||
|
||||
background-color: @col-widget-back;
|
||||
border: @border-widget;
|
||||
padding: 8px;
|
||||
|
||||
canvas {
|
||||
display: block;
|
||||
}
|
||||
}
|
@@ -1,60 +0,0 @@
|
||||
|
||||
@media only screen and (max-width: 700px) {
|
||||
#topbar {
|
||||
.crumb {
|
||||
display: none;
|
||||
}
|
||||
.current {
|
||||
display: block;
|
||||
}
|
||||
.view span {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
#view.view-details, #view.view-list {
|
||||
.header .label, .item .label {
|
||||
margin-right: 110px;
|
||||
}
|
||||
.header .date, .item .date {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
#view.view-icons {
|
||||
padding: 0;
|
||||
border: none;
|
||||
}
|
||||
#bottombar {
|
||||
.center {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@media only screen and (max-width: 500px) {
|
||||
body {
|
||||
margin: 8px;
|
||||
}
|
||||
#tree {
|
||||
display: none !important;
|
||||
}
|
||||
}
|
||||
|
||||
@media print {
|
||||
a[href]:after {
|
||||
content: "";
|
||||
}
|
||||
#topbar {
|
||||
position: static;
|
||||
margin-bottom: 2em;
|
||||
.view, #download {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
#bottombar {
|
||||
position: static;
|
||||
margin-top: 2em;
|
||||
}
|
||||
#tree {
|
||||
display: none !important;
|
||||
}
|
||||
}
|
@@ -1,89 +0,0 @@
|
||||
|
||||
#topbar {
|
||||
position: fixed;
|
||||
z-index: 5;
|
||||
width: 100%;
|
||||
min-height: 30px;
|
||||
left: 0;
|
||||
top: 0;
|
||||
// .vert-gradient(rgb(241,241,241), rgb(228,228,228));
|
||||
background-color: @col-widget-back;
|
||||
border-bottom: @border-widget;
|
||||
// .box-shadow(0 2px 4px 0 rgba(0, 0, 0, 0.15);
|
||||
}
|
||||
|
||||
|
||||
.topbar-highlight {
|
||||
background-color: @col-widget-back-highlight;
|
||||
opacity: 1.0;
|
||||
}
|
||||
|
||||
.topbar-hover {
|
||||
.topbar-highlight;
|
||||
color: @col-hover;
|
||||
}
|
||||
|
||||
.topbar-left {
|
||||
float: left;
|
||||
border-right: @border-widget-sep;
|
||||
}
|
||||
|
||||
.topbar-right {
|
||||
float: right;
|
||||
border-left: @border-widget-sep;
|
||||
}
|
||||
|
||||
|
||||
#navbar {
|
||||
list-style: none;
|
||||
list-style-image: none;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
|
||||
a, a:active, a:visited, span.element {
|
||||
color: @col;
|
||||
cursor: pointer;
|
||||
text-decoration: none;
|
||||
opacity: 0.7;
|
||||
.transition(all 0.2s ease-in-out);
|
||||
|
||||
display: block;
|
||||
height: 30px;
|
||||
line-height: 30px;
|
||||
padding: 0 10px;
|
||||
|
||||
&:hover, &.hover {
|
||||
.topbar-hover;
|
||||
}
|
||||
}
|
||||
.current {
|
||||
a, span.element {
|
||||
.topbar-highlight;
|
||||
}
|
||||
}
|
||||
img {
|
||||
position: relative;
|
||||
top: -2px;
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
}
|
||||
img + span, img + input {
|
||||
margin-left: 6px;
|
||||
}
|
||||
.crumb {
|
||||
.topbar-left;
|
||||
.hint {
|
||||
margin-left: 8px;
|
||||
font-style: italic;
|
||||
color: #999;
|
||||
}
|
||||
img.hint {
|
||||
opacity: 0.8;
|
||||
width: 12px;
|
||||
height: 12px;
|
||||
}
|
||||
}
|
||||
.view {
|
||||
.topbar-right;
|
||||
}
|
||||
}
|
@@ -1,120 +0,0 @@
|
||||
|
||||
#tree {
|
||||
display: none;
|
||||
position: fixed;
|
||||
left: 0;
|
||||
top: 31px;
|
||||
height: 100%;
|
||||
z-index: 3;
|
||||
overflow: auto;
|
||||
padding: 8px;
|
||||
background-color: @col-widget-back;
|
||||
border-right: @border-widget;
|
||||
|
||||
.sp-scrollbar {
|
||||
// margin: 8px 8px 8px 0;
|
||||
width: 6px;
|
||||
background-color: @col-sb-back;
|
||||
// .border-radius(3px);
|
||||
cursor: pointer;
|
||||
|
||||
.sp-thumb {
|
||||
background-color: @col-sb-thumb;
|
||||
// .border-radius(3px);
|
||||
}
|
||||
&.active .sp-thumb {
|
||||
background-color: @col-sb-thumb-active;
|
||||
}
|
||||
}
|
||||
|
||||
.indicator {
|
||||
position: relative;
|
||||
top: 2px;
|
||||
display: inline-block;
|
||||
width: 16px;
|
||||
height: 22px;
|
||||
float: left;
|
||||
opacity: 0.7;
|
||||
cursor: pointer;
|
||||
|
||||
img {
|
||||
width: 12px;
|
||||
height: 12px;
|
||||
.transition(all 0.2s ease-in-out);
|
||||
}
|
||||
&.open {
|
||||
img {
|
||||
.transform(rotate(90deg));
|
||||
}
|
||||
}
|
||||
&.unknown {
|
||||
opacity: 0.3;
|
||||
}
|
||||
&.none {
|
||||
opacity: 0;
|
||||
cursor: inherit;
|
||||
}
|
||||
}
|
||||
a, a:active, a.visited {
|
||||
display: block;
|
||||
height: 1.231em;
|
||||
line-height: 1.231em;
|
||||
margin-left: 14px;
|
||||
padding: 4px 6px;
|
||||
color: #555;
|
||||
border: 1px solid rgba(0,0,0,0);
|
||||
.border-radius(3px);
|
||||
text-decoration: none;
|
||||
opacity: 0.7;
|
||||
|
||||
&:hover, &.hover {
|
||||
color: @col-hover;
|
||||
background-color: @col-widget-back-hover;
|
||||
// border-color: rgba(0,0,0,0.05);
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
.icon {
|
||||
position: relative;
|
||||
top: -2px;
|
||||
margin-right: 6px;
|
||||
|
||||
img {
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
}
|
||||
}
|
||||
.hint {
|
||||
margin-left: 6px;
|
||||
font-size: 0.9em;
|
||||
color: #ccc;
|
||||
}
|
||||
.content {
|
||||
list-style: none;
|
||||
margin: 0;
|
||||
padding: 0 0 0 24px;
|
||||
}
|
||||
.summary {
|
||||
margin: 0 0 0 24px;
|
||||
color: #999;
|
||||
font-style: italic;
|
||||
}
|
||||
.current {
|
||||
> a, > a:active, > a:visited {
|
||||
background-color: @col-widget-back-sel;
|
||||
border-color: @col-widget-sep;
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
.error {
|
||||
> a, > a:active, > a:visited {
|
||||
color: #999;
|
||||
&:hover, &.hover {
|
||||
color: @col-hover;
|
||||
}
|
||||
}
|
||||
.hint {
|
||||
color: #c55;
|
||||
}
|
||||
}
|
||||
}
|
@@ -1,58 +0,0 @@
|
||||
|
||||
#view.view-details {
|
||||
|
||||
li {
|
||||
|
||||
&.header {
|
||||
display: list-item;
|
||||
}
|
||||
|
||||
&.item {
|
||||
|
||||
a, a:active, a:visited {
|
||||
border-top: 1px solid @item-border-col-sep;
|
||||
border-bottom: 1px solid @item-border-col-sep;
|
||||
|
||||
&:hover, &.hover {
|
||||
border-color: @item-border-col-hover;
|
||||
}
|
||||
}
|
||||
|
||||
// needs to be here, to not conflict with header fields
|
||||
.icon, .label, .date, .size {
|
||||
padding: 8px 6px;
|
||||
}
|
||||
}
|
||||
|
||||
&.item + .item {
|
||||
|
||||
a, a:active, a:visited {
|
||||
border-top: none;
|
||||
}
|
||||
}
|
||||
|
||||
.icon.small {
|
||||
display: inline-block;
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: -2px;
|
||||
width: 16px;
|
||||
}
|
||||
|
||||
.label {
|
||||
margin: 0 270px 0 24px;
|
||||
}
|
||||
|
||||
.date {
|
||||
position: absolute;
|
||||
right: 100px;
|
||||
top: 0;
|
||||
}
|
||||
|
||||
.size {
|
||||
position: absolute;
|
||||
right: 0;
|
||||
top: 0;
|
||||
}
|
||||
}
|
||||
}
|
@@ -1,41 +0,0 @@
|
||||
|
||||
#view.view-grid {
|
||||
|
||||
li {
|
||||
|
||||
&.item {
|
||||
float: left;
|
||||
|
||||
a, a:active, a:visited {
|
||||
float: left;
|
||||
margin: 2px;
|
||||
padding: 8px;
|
||||
width: 164px;
|
||||
height: 24px;
|
||||
border: 1px solid rgba(0,0,0,0);
|
||||
|
||||
&:hover, &.hover {
|
||||
border-color: @item-border-col-hover;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.icon.small {
|
||||
display: inline-block;
|
||||
position: absolute;
|
||||
left: 11px;
|
||||
top: 9px;
|
||||
width: 16px;
|
||||
}
|
||||
|
||||
.label {
|
||||
display: block;
|
||||
max-width: 140px;
|
||||
margin: 0 0 0 24px;
|
||||
}
|
||||
|
||||
.date, .size {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
}
|
@@ -1,46 +0,0 @@
|
||||
|
||||
#view.view-icons {
|
||||
|
||||
li {
|
||||
text-align: center;
|
||||
|
||||
&.item {
|
||||
float: left;
|
||||
|
||||
a, a:active, a:visited {
|
||||
float: left;
|
||||
margin: 8px;
|
||||
padding: 8px;
|
||||
width: 100px;
|
||||
height: 120px;
|
||||
border: 1px solid rgba(0,0,0,0);
|
||||
|
||||
&:hover, &.hover {
|
||||
border-color: @item-border-col-hover;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.icon.big {
|
||||
display: block;
|
||||
height: 48px;
|
||||
margin-bottom: 6px;
|
||||
}
|
||||
|
||||
.label {
|
||||
text-align: center;
|
||||
word-wrap: break-word;
|
||||
white-space: normal;
|
||||
}
|
||||
|
||||
.date, .size {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
.empty, .no-match {
|
||||
margin: 0 120px;
|
||||
padding: 16px;
|
||||
height: 120px;
|
||||
}
|
||||
}
|
@@ -1,62 +0,0 @@
|
||||
|
||||
#view.view-list {
|
||||
|
||||
li {
|
||||
|
||||
&.header {
|
||||
display: list-item;
|
||||
}
|
||||
|
||||
&.item {
|
||||
|
||||
a, a:active, a:visited {
|
||||
border-top: 1px solid @item-border-col-sep;
|
||||
border-bottom: 1px solid @item-border-col-sep;
|
||||
height: 60px;
|
||||
|
||||
&:hover, &.hover {
|
||||
border-color: @item-border-col-hover;
|
||||
}
|
||||
}
|
||||
|
||||
// needs to be here, to not conflict with header fields
|
||||
.icon {
|
||||
padding: 8px 6px;
|
||||
}
|
||||
.label, .date, .size {
|
||||
padding: 18px 6px;
|
||||
}
|
||||
}
|
||||
|
||||
&.item + .item {
|
||||
|
||||
a, a:active, a:visited {
|
||||
border-top: none;
|
||||
}
|
||||
}
|
||||
|
||||
.icon.big {
|
||||
display: inline-block;
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: -2px;
|
||||
width: 100px;
|
||||
}
|
||||
|
||||
.label {
|
||||
margin: 0 270px 0 110px;
|
||||
}
|
||||
|
||||
.date {
|
||||
position: absolute;
|
||||
right: 100px;
|
||||
top: 0;
|
||||
}
|
||||
|
||||
.size {
|
||||
position: absolute;
|
||||
right: 0;
|
||||
top: 0;
|
||||
}
|
||||
}
|
||||
}
|
@@ -1,183 +0,0 @@
|
||||
|
||||
#selection-rect {
|
||||
display: none;
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 0;
|
||||
z-index: 2;
|
||||
border: 1px dashed @col-border-strong;
|
||||
background-color: rgba(0,0,0,0.01);
|
||||
}
|
||||
|
||||
@item-border-col-sep: @col-border;
|
||||
|
||||
@item-background-col-hover: rgba(0,0,0,0.02);
|
||||
@item-border-col-hover: @col-border;
|
||||
|
||||
@item-background-col-sel: rgba(0,0,0,0.02);
|
||||
@item-border-col-sel: @col-border-strong;
|
||||
|
||||
|
||||
|
||||
#view {
|
||||
display: none;
|
||||
margin: 0 auto;
|
||||
|
||||
a, a:active, a:visited {
|
||||
color: #333;
|
||||
cursor: pointer;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
ul {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
list-style: none;
|
||||
}
|
||||
|
||||
li {
|
||||
position: relative;
|
||||
white-space: nowrap;
|
||||
|
||||
&.header {
|
||||
display: none;
|
||||
font-size: 13px;
|
||||
|
||||
a, a:active, a:visited {
|
||||
padding: 6px 6px 18px 6px;
|
||||
opacity: 0.4;
|
||||
.transition(all 0.2s ease-in-out);
|
||||
|
||||
img {
|
||||
display: none;
|
||||
position: relative;
|
||||
top: -2px;
|
||||
width: 12px;
|
||||
height: 12px;
|
||||
padding: 0 8px;
|
||||
}
|
||||
&:hover {
|
||||
color: #555;
|
||||
opacity: 0.9;
|
||||
}
|
||||
&.ascending img.ascending {
|
||||
display: inline;
|
||||
}
|
||||
&.descending img.descending {
|
||||
display: inline;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&.item {
|
||||
|
||||
a, a:active, a:visited {
|
||||
display: block;
|
||||
overflow: hidden;
|
||||
|
||||
&:hover, &.hover {
|
||||
// color: #e80;
|
||||
color: @col-hover;
|
||||
background-color: @item-background-col-hover;
|
||||
border-color: @item-border-col-hover;
|
||||
}
|
||||
}
|
||||
|
||||
&.selected:not(.selecting), &.selecting:not(.selected) {
|
||||
|
||||
a, a:active, a:visited {
|
||||
// color: #000;
|
||||
// color: @col-hover;
|
||||
background-color: @item-background-col-sel;
|
||||
border-color: @item-border-col-sel;
|
||||
|
||||
&:hover, &.hover {
|
||||
background-color: @item-background-col-sel;
|
||||
border-color: @item-border-col-sel;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&.error {
|
||||
|
||||
a, a:active, a:visited {
|
||||
color: #aaa;
|
||||
|
||||
&:hover, &.hover {
|
||||
// color: #e80;
|
||||
color: @col-hover;
|
||||
}
|
||||
}
|
||||
|
||||
.label .hint {
|
||||
padding: 0 6px;
|
||||
font-size: 0.9em;
|
||||
color: #c55;
|
||||
}
|
||||
}
|
||||
|
||||
&.folder-parent {
|
||||
|
||||
.date, .size {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
.icon {
|
||||
display: none;
|
||||
text-align: center;
|
||||
|
||||
img {
|
||||
|
||||
&.thumb {
|
||||
.box-shadow(0 0 0 1px #ddd);
|
||||
}
|
||||
}
|
||||
|
||||
&.small {
|
||||
|
||||
img {
|
||||
max-width: 16px;
|
||||
max-height: 16px;
|
||||
}
|
||||
}
|
||||
|
||||
&.big {
|
||||
|
||||
img {
|
||||
max-width: 100px;
|
||||
max-height: 48px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.label {
|
||||
display: block;
|
||||
overflow: hidden;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.date {
|
||||
text-align: right;
|
||||
width: 160px;
|
||||
}
|
||||
|
||||
.size {
|
||||
text-align: right;
|
||||
width: 80px;
|
||||
}
|
||||
}
|
||||
|
||||
.empty, .no-match {
|
||||
margin: 50px 0;
|
||||
text-align: center;
|
||||
color: #ddd;
|
||||
font-size: 5em;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.no-match {
|
||||
display: none;
|
||||
}
|
||||
}
|
@@ -1,533 +0,0 @@
|
||||
/*! normalize.css v1.1.1 | MIT License | git.io/normalize */
|
||||
|
||||
/* ==========================================================================
|
||||
HTML5 display definitions
|
||||
========================================================================== */
|
||||
|
||||
/**
|
||||
* Correct `block` display not defined in IE 6/7/8/9 and Firefox 3.
|
||||
*/
|
||||
|
||||
article,
|
||||
aside,
|
||||
details,
|
||||
figcaption,
|
||||
figure,
|
||||
footer,
|
||||
header,
|
||||
hgroup,
|
||||
main,
|
||||
nav,
|
||||
section,
|
||||
summary {
|
||||
display: block;
|
||||
}
|
||||
|
||||
/**
|
||||
* Correct `inline-block` display not defined in IE 6/7/8/9 and Firefox 3.
|
||||
*/
|
||||
|
||||
audio,
|
||||
canvas,
|
||||
video {
|
||||
display: inline-block;
|
||||
*display: inline;
|
||||
*zoom: 1;
|
||||
}
|
||||
|
||||
/**
|
||||
* Prevent modern browsers from displaying `audio` without controls.
|
||||
* Remove excess height in iOS 5 devices.
|
||||
*/
|
||||
|
||||
audio:not([controls]) {
|
||||
display: none;
|
||||
height: 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Address styling not present in IE 7/8/9, Firefox 3, and Safari 4.
|
||||
* Known issue: no IE 6 support.
|
||||
*/
|
||||
|
||||
[hidden] {
|
||||
display: none;
|
||||
}
|
||||
|
||||
/* ==========================================================================
|
||||
Base
|
||||
========================================================================== */
|
||||
|
||||
/**
|
||||
* 1. Prevent system color scheme's background color being used in Firefox, IE,
|
||||
* and Opera.
|
||||
* 2. Prevent system color scheme's text color being used in Firefox, IE, and
|
||||
* Opera.
|
||||
* 3. Correct text resizing oddly in IE 6/7 when body `font-size` is set using
|
||||
* `em` units.
|
||||
* 4. Prevent iOS text size adjust after orientation change, without disabling
|
||||
* user zoom.
|
||||
*/
|
||||
|
||||
html {
|
||||
background: #fff; /* 1 */
|
||||
color: #000; /* 2 */
|
||||
font-size: 100%; /* 3 */
|
||||
-webkit-text-size-adjust: 100%; /* 4 */
|
||||
-ms-text-size-adjust: 100%; /* 4 */
|
||||
}
|
||||
|
||||
/**
|
||||
* Address `font-family` inconsistency between `textarea` and other form
|
||||
* elements.
|
||||
*/
|
||||
|
||||
html,
|
||||
button,
|
||||
input,
|
||||
select,
|
||||
textarea {
|
||||
font-family: sans-serif;
|
||||
}
|
||||
|
||||
/**
|
||||
* Address margins handled incorrectly in IE 6/7.
|
||||
*/
|
||||
|
||||
body {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
/* ==========================================================================
|
||||
Links
|
||||
========================================================================== */
|
||||
|
||||
/**
|
||||
* Address `outline` inconsistency between Chrome and other browsers.
|
||||
*/
|
||||
|
||||
a:focus {
|
||||
outline: thin dotted;
|
||||
}
|
||||
|
||||
/**
|
||||
* Improve readability when focused and also mouse hovered in all browsers.
|
||||
*/
|
||||
|
||||
a:active,
|
||||
a:hover {
|
||||
outline: 0;
|
||||
}
|
||||
|
||||
/* ==========================================================================
|
||||
Typography
|
||||
========================================================================== */
|
||||
|
||||
/**
|
||||
* Address font sizes and margins set differently in IE 6/7.
|
||||
* Address font sizes within `section` and `article` in Firefox 4+, Safari 5,
|
||||
* and Chrome.
|
||||
*/
|
||||
|
||||
h1 {
|
||||
font-size: 2em;
|
||||
margin: 0.67em 0;
|
||||
}
|
||||
|
||||
h2 {
|
||||
font-size: 1.5em;
|
||||
margin: 0.83em 0;
|
||||
}
|
||||
|
||||
h3 {
|
||||
font-size: 1.17em;
|
||||
margin: 1em 0;
|
||||
}
|
||||
|
||||
h4 {
|
||||
font-size: 1em;
|
||||
margin: 1.33em 0;
|
||||
}
|
||||
|
||||
h5 {
|
||||
font-size: 0.83em;
|
||||
margin: 1.67em 0;
|
||||
}
|
||||
|
||||
h6 {
|
||||
font-size: 0.67em;
|
||||
margin: 2.33em 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Address styling not present in IE 7/8/9, Safari 5, and Chrome.
|
||||
*/
|
||||
|
||||
abbr[title] {
|
||||
border-bottom: 1px dotted;
|
||||
}
|
||||
|
||||
/**
|
||||
* Address style set to `bolder` in Firefox 3+, Safari 4/5, and Chrome.
|
||||
*/
|
||||
|
||||
b,
|
||||
strong {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
blockquote {
|
||||
margin: 1em 40px;
|
||||
}
|
||||
|
||||
/**
|
||||
* Address styling not present in Safari 5 and Chrome.
|
||||
*/
|
||||
|
||||
dfn {
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
/**
|
||||
* Address differences between Firefox and other browsers.
|
||||
* Known issue: no IE 6/7 normalization.
|
||||
*/
|
||||
|
||||
hr {
|
||||
-moz-box-sizing: content-box;
|
||||
box-sizing: content-box;
|
||||
height: 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Address styling not present in IE 6/7/8/9.
|
||||
*/
|
||||
|
||||
mark {
|
||||
background: #ff0;
|
||||
color: #000;
|
||||
}
|
||||
|
||||
/**
|
||||
* Address margins set differently in IE 6/7.
|
||||
*/
|
||||
|
||||
p,
|
||||
pre {
|
||||
margin: 1em 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Correct font family set oddly in IE 6, Safari 4/5, and Chrome.
|
||||
*/
|
||||
|
||||
code,
|
||||
kbd,
|
||||
pre,
|
||||
samp {
|
||||
font-family: monospace, serif;
|
||||
_font-family: 'courier new', monospace;
|
||||
font-size: 1em;
|
||||
}
|
||||
|
||||
/**
|
||||
* Improve readability of pre-formatted text in all browsers.
|
||||
*/
|
||||
|
||||
pre {
|
||||
white-space: pre;
|
||||
white-space: pre-wrap;
|
||||
word-wrap: break-word;
|
||||
}
|
||||
|
||||
/**
|
||||
* Address CSS quotes not supported in IE 6/7.
|
||||
*/
|
||||
|
||||
q {
|
||||
quotes: none;
|
||||
}
|
||||
|
||||
/**
|
||||
* Address `quotes` property not supported in Safari 4.
|
||||
*/
|
||||
|
||||
q:before,
|
||||
q:after {
|
||||
content: '';
|
||||
content: none;
|
||||
}
|
||||
|
||||
/**
|
||||
* Address inconsistent and variable font size in all browsers.
|
||||
*/
|
||||
|
||||
small {
|
||||
font-size: 80%;
|
||||
}
|
||||
|
||||
/**
|
||||
* Prevent `sub` and `sup` affecting `line-height` in all browsers.
|
||||
*/
|
||||
|
||||
sub,
|
||||
sup {
|
||||
font-size: 75%;
|
||||
line-height: 0;
|
||||
position: relative;
|
||||
vertical-align: baseline;
|
||||
}
|
||||
|
||||
sup {
|
||||
top: -0.5em;
|
||||
}
|
||||
|
||||
sub {
|
||||
bottom: -0.25em;
|
||||
}
|
||||
|
||||
/* ==========================================================================
|
||||
Lists
|
||||
========================================================================== */
|
||||
|
||||
/**
|
||||
* Address margins set differently in IE 6/7.
|
||||
*/
|
||||
|
||||
dl,
|
||||
menu,
|
||||
ol,
|
||||
ul {
|
||||
margin: 1em 0;
|
||||
}
|
||||
|
||||
dd {
|
||||
margin: 0 0 0 40px;
|
||||
}
|
||||
|
||||
/**
|
||||
* Address paddings set differently in IE 6/7.
|
||||
*/
|
||||
|
||||
menu,
|
||||
ol,
|
||||
ul {
|
||||
padding: 0 0 0 40px;
|
||||
}
|
||||
|
||||
/**
|
||||
* Correct list images handled incorrectly in IE 7.
|
||||
*/
|
||||
|
||||
nav ul,
|
||||
nav ol {
|
||||
list-style: none;
|
||||
list-style-image: none;
|
||||
}
|
||||
|
||||
/* ==========================================================================
|
||||
Embedded content
|
||||
========================================================================== */
|
||||
|
||||
/**
|
||||
* 1. Remove border when inside `a` element in IE 6/7/8/9 and Firefox 3.
|
||||
* 2. Improve image quality when scaled in IE 7.
|
||||
*/
|
||||
|
||||
img {
|
||||
border: 0; /* 1 */
|
||||
-ms-interpolation-mode: bicubic; /* 2 */
|
||||
}
|
||||
|
||||
/**
|
||||
* Correct overflow displayed oddly in IE 9.
|
||||
*/
|
||||
|
||||
svg:not(:root) {
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
/* ==========================================================================
|
||||
Figures
|
||||
========================================================================== */
|
||||
|
||||
/**
|
||||
* Address margin not present in IE 6/7/8/9, Safari 5, and Opera 11.
|
||||
*/
|
||||
|
||||
figure {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
/* ==========================================================================
|
||||
Forms
|
||||
========================================================================== */
|
||||
|
||||
/**
|
||||
* Correct margin displayed oddly in IE 6/7.
|
||||
*/
|
||||
|
||||
form {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Define consistent border, margin, and padding.
|
||||
*/
|
||||
|
||||
fieldset {
|
||||
border: 1px solid #c0c0c0;
|
||||
margin: 0 2px;
|
||||
padding: 0.35em 0.625em 0.75em;
|
||||
}
|
||||
|
||||
/**
|
||||
* 1. Correct color not being inherited in IE 6/7/8/9.
|
||||
* 2. Correct text not wrapping in Firefox 3.
|
||||
* 3. Correct alignment displayed oddly in IE 6/7.
|
||||
*/
|
||||
|
||||
legend {
|
||||
border: 0; /* 1 */
|
||||
padding: 0;
|
||||
white-space: normal; /* 2 */
|
||||
*margin-left: -7px; /* 3 */
|
||||
}
|
||||
|
||||
/**
|
||||
* 1. Correct font size not being inherited in all browsers.
|
||||
* 2. Address margins set differently in IE 6/7, Firefox 3+, Safari 5,
|
||||
* and Chrome.
|
||||
* 3. Improve appearance and consistency in all browsers.
|
||||
*/
|
||||
|
||||
button,
|
||||
input,
|
||||
select,
|
||||
textarea {
|
||||
font-size: 100%; /* 1 */
|
||||
margin: 0; /* 2 */
|
||||
vertical-align: baseline; /* 3 */
|
||||
*vertical-align: middle; /* 3 */
|
||||
}
|
||||
|
||||
/**
|
||||
* Address Firefox 3+ setting `line-height` on `input` using `!important` in
|
||||
* the UA stylesheet.
|
||||
*/
|
||||
|
||||
button,
|
||||
input {
|
||||
line-height: normal;
|
||||
}
|
||||
|
||||
/**
|
||||
* Address inconsistent `text-transform` inheritance for `button` and `select`.
|
||||
* All other form control elements do not inherit `text-transform` values.
|
||||
* Correct `button` style inheritance in Chrome, Safari 5+, and IE 6+.
|
||||
* Correct `select` style inheritance in Firefox 4+ and Opera.
|
||||
*/
|
||||
|
||||
button,
|
||||
select {
|
||||
text-transform: none;
|
||||
}
|
||||
|
||||
/**
|
||||
* 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`
|
||||
* and `video` controls.
|
||||
* 2. Correct inability to style clickable `input` types in iOS.
|
||||
* 3. Improve usability and consistency of cursor style between image-type
|
||||
* `input` and others.
|
||||
* 4. Remove inner spacing in IE 7 without affecting normal text inputs.
|
||||
* Known issue: inner spacing remains in IE 6.
|
||||
*/
|
||||
|
||||
button,
|
||||
html input[type="button"], /* 1 */
|
||||
input[type="reset"],
|
||||
input[type="submit"] {
|
||||
-webkit-appearance: button; /* 2 */
|
||||
cursor: pointer; /* 3 */
|
||||
*overflow: visible; /* 4 */
|
||||
}
|
||||
|
||||
/**
|
||||
* Re-set default cursor for disabled elements.
|
||||
*/
|
||||
|
||||
button[disabled],
|
||||
html input[disabled] {
|
||||
cursor: default;
|
||||
}
|
||||
|
||||
/**
|
||||
* 1. Address box sizing set to content-box in IE 8/9.
|
||||
* 2. Remove excess padding in IE 8/9.
|
||||
* 3. Remove excess padding in IE 7.
|
||||
* Known issue: excess padding remains in IE 6.
|
||||
*/
|
||||
|
||||
input[type="checkbox"],
|
||||
input[type="radio"] {
|
||||
box-sizing: border-box; /* 1 */
|
||||
padding: 0; /* 2 */
|
||||
*height: 13px; /* 3 */
|
||||
*width: 13px; /* 3 */
|
||||
}
|
||||
|
||||
/**
|
||||
* 1. Address `appearance` set to `searchfield` in Safari 5 and Chrome.
|
||||
* 2. Address `box-sizing` set to `border-box` in Safari 5 and Chrome
|
||||
* (include `-moz` to future-proof).
|
||||
*/
|
||||
|
||||
input[type="search"] {
|
||||
-webkit-appearance: textfield; /* 1 */
|
||||
-moz-box-sizing: content-box;
|
||||
-webkit-box-sizing: content-box; /* 2 */
|
||||
box-sizing: content-box;
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove inner padding and search cancel button in Safari 5 and Chrome
|
||||
* on OS X.
|
||||
*/
|
||||
|
||||
input[type="search"]::-webkit-search-cancel-button,
|
||||
input[type="search"]::-webkit-search-decoration {
|
||||
-webkit-appearance: none;
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove inner padding and border in Firefox 3+.
|
||||
*/
|
||||
|
||||
button::-moz-focus-inner,
|
||||
input::-moz-focus-inner {
|
||||
border: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* 1. Remove default vertical scrollbar in IE 6/7/8/9.
|
||||
* 2. Improve readability and alignment in all browsers.
|
||||
*/
|
||||
|
||||
textarea {
|
||||
overflow: auto; /* 1 */
|
||||
vertical-align: top; /* 2 */
|
||||
}
|
||||
|
||||
/* ==========================================================================
|
||||
Tables
|
||||
========================================================================== */
|
||||
|
||||
/**
|
||||
* Remove most spacing between table cells.
|
||||
*/
|
||||
|
||||
table {
|
||||
border-collapse: collapse;
|
||||
border-spacing: 0;
|
||||
}
|
@@ -1,57 +0,0 @@
|
||||
|
||||
.border-radius (@radius) {
|
||||
-webkit-border-radius: @radius; /* Saf3-4, iOS 1-3.2, Android <1.6 */
|
||||
-moz-border-radius: @radius; /* FF1-3.6 */
|
||||
border-radius: @radius; /* Opera 10.5, IE9, Saf5, Chrome, FF4, iOS 4, Android 2.1+ */
|
||||
}
|
||||
|
||||
|
||||
.background-clip () {
|
||||
-webkit-background-clip: padding-box;
|
||||
-moz-background-clip: padding;
|
||||
background-clip: padding-box;
|
||||
}
|
||||
|
||||
|
||||
.box-shadow (@shadow) {
|
||||
-webkit-box-shadow: @shadow; /* Saf3-4 */
|
||||
-moz-box-shadow: @shadow; /* FF3.5 - 3.6 */
|
||||
box-shadow: @shadow; /* Opera 10.5, IE9, FF4+, Chrome 10+ */
|
||||
}
|
||||
|
||||
|
||||
.transition (@transition) {
|
||||
-webkit-transition: @transition; /* Saf3.2+, Chrome */
|
||||
-moz-transition: @transition; /* FF4+ */
|
||||
-ms-transition: @transition; /* IE10? */
|
||||
-o-transition: @transition; /* Opera 10.5+ */
|
||||
transition: @transition;
|
||||
}
|
||||
|
||||
|
||||
.transform (@transform) {
|
||||
-webkit-transform: @transform; /* Saf3.1+, Chrome */
|
||||
-moz-transform: @transform; /* FF3.5+ */
|
||||
-ms-transform: @transform; /* IE9 */
|
||||
-o-transform: @transform; /* Opera 10.5 */
|
||||
transform: @transform;
|
||||
zoom: 1;
|
||||
}
|
||||
|
||||
|
||||
.vert-gradient (@top, @bottom) {
|
||||
background-color: @top;
|
||||
background-image: -webkit-gradient(linear, left top, left bottom, from(@top), to(@bottom)); /* Saf4+, Chrome */
|
||||
background-image: -webkit-linear-gradient(top, @top, @bottom); /* Chrome 10+, Saf5.1+, iOS 5+ */
|
||||
background-image: -moz-linear-gradient(top, @top, @bottom); /* FF3.6 */
|
||||
background-image: -ms-linear-gradient(top, @top, @bottom); /* IE10 */
|
||||
background-image: -o-linear-gradient(top, @top, @bottom); /* Opera 11.10+ */
|
||||
background-image: linear-gradient(top, @top, @bottom);
|
||||
}
|
||||
|
||||
|
||||
.background-size (@size) {
|
||||
-webkit-background-size: @size; /* Saf3-4 */
|
||||
-moz-background-size: @size; /* FF3.6 */
|
||||
background-size: @size; /* Opera, IE9, Saf5, Chrome, FF4 */
|
||||
}
|
@@ -1,34 +0,0 @@
|
||||
|
||||
@import "lib/h5bp-normalize";
|
||||
@import "lib/h5bp-main-header";
|
||||
|
||||
@import "lib/mixins";
|
||||
|
||||
@import "inc/general";
|
||||
@import "inc/topbar";
|
||||
@import "inc/bottombar";
|
||||
@import "inc/download";
|
||||
@import "inc/delete";
|
||||
@import "inc/filter";
|
||||
@import "inc/l10n";
|
||||
@import "inc/tree";
|
||||
@import "inc/qrcode";
|
||||
@import "inc/preview-img";
|
||||
@import "inc/preview-txt";
|
||||
@import "inc/notify";
|
||||
|
||||
@import "inc/content";
|
||||
@import "inc/view";
|
||||
@import "inc/view-details";
|
||||
@import "inc/view-icons";
|
||||
@import "inc/view-list";
|
||||
@import "inc/view-grid";
|
||||
// @import "inc/context-menu";
|
||||
@import "inc/dropbox";
|
||||
@import "inc/fallback";
|
||||
|
||||
@import "inc/responsive";
|
||||
|
||||
@import "inc/h5ai-info";
|
||||
|
||||
@import "lib/h5bp-main-footer";
|
Before Width: | Height: | Size: 551 B |
Before Width: | Height: | Size: 554 B |
Before Width: | Height: | Size: 492 B |
Before Width: | Height: | Size: 551 B |
Before Width: | Height: | Size: 227 B |
Before Width: | Height: | Size: 663 B |
Before Width: | Height: | Size: 554 B |
Before Width: | Height: | Size: 506 B |
Before Width: | Height: | Size: 757 B |
Before Width: | Height: | Size: 699 B |
Before Width: | Height: | Size: 599 B |
Before Width: | Height: | Size: 592 B |
Before Width: | Height: | Size: 671 B |
Before Width: | Height: | Size: 311 B |
Before Width: | Height: | Size: 586 B |
Before Width: | Height: | Size: 535 B |
Before Width: | Height: | Size: 679 B |
Before Width: | Height: | Size: 619 B |
Before Width: | Height: | Size: 846 B |
Before Width: | Height: | Size: 395 B |
Before Width: | Height: | Size: 591 B |
Before Width: | Height: | Size: 311 B |
Before Width: | Height: | Size: 494 B |
Before Width: | Height: | Size: 621 B |
Before Width: | Height: | Size: 326 B |
Before Width: | Height: | Size: 255 B |
Before Width: | Height: | Size: 655 B |
Before Width: | Height: | Size: 551 B |
Before Width: | Height: | Size: 504 B |
Before Width: | Height: | Size: 530 B |
Before Width: | Height: | Size: 770 B |
Before Width: | Height: | Size: 792 B |
Before Width: | Height: | Size: 671 B |
Before Width: | Height: | Size: 788 B |
Before Width: | Height: | Size: 658 B |
Before Width: | Height: | Size: 675 B |
Before Width: | Height: | Size: 540 B |
Before Width: | Height: | Size: 540 B |
Before Width: | Height: | Size: 423 B |
Before Width: | Height: | Size: 614 B |
Before Width: | Height: | Size: 627 B |
Before Width: | Height: | Size: 614 B |
Before Width: | Height: | Size: 799 B |
Before Width: | Height: | Size: 757 B |
Before Width: | Height: | Size: 610 B |
Before Width: | Height: | Size: 679 B |
Before Width: | Height: | Size: 629 B |
Before Width: | Height: | Size: 817 B |
Before Width: | Height: | Size: 622 B |
Before Width: | Height: | Size: 743 B |
Before Width: | Height: | Size: 621 B |
Before Width: | Height: | Size: 781 B |
Before Width: | Height: | Size: 384 B |
Before Width: | Height: | Size: 660 B |
Before Width: | Height: | Size: 660 B |
Before Width: | Height: | Size: 627 B |
Before Width: | Height: | Size: 613 B |
Before Width: | Height: | Size: 586 B |
Before Width: | Height: | Size: 510 B |
Before Width: | Height: | Size: 406 B |