Compare commits
816 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d5b37a5171 | ||
|
|
3efe2f878d | ||
|
|
064fee79b3 | ||
|
|
d13f182801 | ||
|
|
ee34935223 | ||
|
|
0b7ce0d6db | ||
|
|
9dd02044a5 | ||
|
|
d8a7190f43 | ||
|
|
e5e0fcc887 | ||
|
|
6635a89af7 | ||
|
|
8c95399292 | ||
|
|
14c1abb861 | ||
|
|
be844253eb | ||
|
|
b4ffd4dcc2 | ||
|
|
9eabbb8dab | ||
|
|
d4f2fcb98a | ||
|
|
0b2417849c | ||
|
|
3e8369c8f5 | ||
|
|
cbaedcec92 | ||
|
|
0284eebf35 | ||
|
|
e4ba515109 | ||
|
|
af1f6f6c6d | ||
|
|
b0e8ee42c1 | ||
|
|
86aeb6a3c7 | ||
|
|
9820d7de38 | ||
|
|
910eca810a | ||
|
|
6feaddf747 | ||
|
|
10f6fb91f6 | ||
|
|
c7bd4b94b8 | ||
|
|
dd223a21f2 | ||
|
|
549366ff15 | ||
|
|
e92f60fb1c | ||
|
|
92b05c76a3 | ||
|
|
fa6fa0be64 | ||
|
|
752efac7cf | ||
|
|
2b1f1f748b | ||
|
|
798cd9e778 | ||
|
|
de2d4a5870 | ||
|
|
d3d6921a0f | ||
|
|
68393f1444 | ||
|
|
229e6fa0a3 | ||
|
|
8a069787d1 | ||
|
|
29ed38a6cc | ||
|
|
4c7d3a491a | ||
|
|
b0f90cf43c | ||
|
|
02ec0634b3 | ||
|
|
64d21969f0 | ||
|
|
0995adeb59 | ||
|
|
073a3fe2b4 | ||
|
|
c07df6a5a6 | ||
|
|
a7d109833d | ||
|
|
0364a14073 | ||
|
|
ddc8d33356 | ||
|
|
cd81dfaead | ||
|
|
25073ada84 | ||
|
|
15b6f9dd5e | ||
|
|
0377e02dc1 | ||
|
|
f679708a4e | ||
|
|
0f748a3333 | ||
|
|
bdedaa06d8 | ||
|
|
6a41d9be87 | ||
|
|
3616a27566 | ||
|
|
5ae61017f5 | ||
|
|
61dffb8821 | ||
|
|
f9fabd088c | ||
|
|
a3af6617a9 | ||
|
|
9f7fb654c8 | ||
|
|
b4a6686eac | ||
|
|
ac13ff114c | ||
|
|
af9187947f | ||
|
|
f0fdbf7cf4 | ||
|
|
74ab31c0e6 | ||
|
|
9400516b56 | ||
|
|
6ebfb02d0e | ||
|
|
75c7e0b939 | ||
|
|
62eb2bba13 | ||
|
|
3fa9e857a8 | ||
|
|
11a77043eb | ||
|
|
58b43c7bc9 | ||
|
|
7da10db055 | ||
|
|
be41271038 | ||
|
|
04e13e1136 | ||
|
|
8868b7eb12 | ||
|
|
c85d00fcb8 | ||
|
|
2c6dab9c85 | ||
|
|
7b2a146404 | ||
|
|
c45194473b | ||
|
|
3c0e6eeee2 | ||
|
|
ca5a5bf301 | ||
|
|
ddf68444fb | ||
|
|
4867649fc9 | ||
|
|
35841066d1 | ||
|
|
9bc81f236c | ||
|
|
e26a54d897 | ||
|
|
ed1d637eb5 | ||
|
|
831284c5c8 | ||
|
|
e45b8f6981 | ||
|
|
d0f8f985fb | ||
|
|
33eec61af8 | ||
|
|
00c324ae45 | ||
|
|
12a016d31d | ||
|
|
8c7a7348f4 | ||
|
|
af50bde088 | ||
|
|
340b92e580 | ||
|
|
f64653db14 | ||
|
|
e6ef661f0d | ||
|
|
3c2b6f4ed1 | ||
|
|
6a621f47aa | ||
|
|
dae23d3c3b | ||
|
|
aae5ae9f1e | ||
|
|
888e0e0bb4 | ||
|
|
a0b0fb05a6 | ||
|
|
def2693afc | ||
|
|
55f26f0a3d | ||
|
|
7245d1eff4 | ||
|
|
87ef0215b8 | ||
|
|
4b6a02cb92 | ||
|
|
196a301133 | ||
|
|
b9b8bc70dd | ||
|
|
d42da8737e | ||
|
|
6419edcb1f | ||
|
|
fca82375e8 | ||
|
|
ca0f746cf1 | ||
|
|
a93cf46f50 | ||
|
|
ffb8edef0b | ||
|
|
74a030f6db | ||
|
|
7a8b5e89be | ||
|
|
90690cd238 | ||
|
|
90c621ac07 | ||
|
|
2d5eccbf97 | ||
|
|
7e6259da31 | ||
|
|
1f75c7e5e4 | ||
|
|
a1e6e4c38f | ||
|
|
77fb73f802 | ||
|
|
9f7376a5ae | ||
|
|
5739a82c19 | ||
|
|
eae373ef4b | ||
|
|
465332d5f9 | ||
|
|
e98b89625f | ||
|
|
cf61254c9e | ||
|
|
1d92d6cc33 | ||
|
|
6b32764c99 | ||
|
|
be4fbc4d23 | ||
|
|
ea72a10b9a | ||
|
|
9b567a6710 | ||
|
|
a8ce31fa90 | ||
|
|
4c964fea0d | ||
|
|
6d7c41c04b | ||
|
|
a6a695660f | ||
|
|
0058ef5e04 | ||
|
|
4831bae9cb | ||
|
|
f7679780de | ||
|
|
f2ac354e00 | ||
|
|
88ffa46ce7 | ||
|
|
869431c68d | ||
|
|
3d6fd10e59 | ||
|
|
81482683cf | ||
|
|
57f1742f24 | ||
|
|
a1f8530489 | ||
|
|
a75a0da981 | ||
|
|
5744240f91 | ||
|
|
873c56a642 | ||
|
|
f53a75660f | ||
|
|
50dcbe0b57 | ||
|
|
f9861fee79 | ||
|
|
d8ae97f923 | ||
|
|
9f5db217fe | ||
|
|
c1c5dcac09 | ||
|
|
6064f096a7 | ||
|
|
a62fa755f5 | ||
|
|
fa25991f0f | ||
|
|
6f2be1dfa6 | ||
|
|
c81a9fd032 | ||
|
|
665d0cc86b | ||
|
|
a34d8a3f20 | ||
|
|
6e35701dd6 | ||
|
|
9991458d2a | ||
|
|
a843fd73b7 | ||
|
|
9765b1e908 | ||
|
|
5ccadc1f7d | ||
|
|
539805e2c2 | ||
|
|
fac64ef5bf | ||
|
|
a17a0a62bc | ||
|
|
1e91de106f | ||
|
|
73252132a6 | ||
|
|
e3c383c61c | ||
|
|
aafb134be7 | ||
|
|
70a1996435 | ||
|
|
1712cb2617 | ||
|
|
25df057d05 | ||
|
|
24a9991162 | ||
|
|
156ff2da89 | ||
|
|
e36b4ed01a | ||
|
|
41b775b173 | ||
|
|
35570feba0 | ||
|
|
1d8cfe59a2 | ||
|
|
abd3efe82a | ||
|
|
389b53cb71 | ||
|
|
4f60273198 | ||
|
|
856fa8685a | ||
|
|
9ac4c0ba30 | ||
|
|
2709f237f5 | ||
|
|
9db4edcd0d | ||
|
|
22c9f33f4c | ||
|
|
24ea2a4398 | ||
|
|
8178f5388c | ||
|
|
c0c5e9d7dd | ||
|
|
19f8f5c6fa | ||
|
|
83a306c31b | ||
|
|
d6020cdb6f | ||
|
|
3b467dbae8 | ||
|
|
77c78f35d3 | ||
|
|
306390440a | ||
|
|
267131626e | ||
|
|
2280b15664 | ||
|
|
f843a0b4d9 | ||
|
|
965a274332 | ||
|
|
cb2a842746 | ||
|
|
a6655623d0 | ||
|
|
2a2d05ad39 | ||
|
|
e8127d81dc | ||
|
|
cd7906a57b | ||
|
|
02c573f146 | ||
|
|
112017a158 | ||
|
|
4a07d67037 | ||
|
|
54156dfd32 | ||
|
|
ee20d35487 | ||
|
|
be18244abc | ||
|
|
02099ebdae | ||
|
|
d153e58933 | ||
|
|
c2a59a374c | ||
|
|
2a1011921b | ||
|
|
df27ee0d3e | ||
|
|
c2851015ce | ||
|
|
d0c246c345 | ||
|
|
e58546a412 | ||
|
|
6aed9ba549 | ||
|
|
4f2bc33ec3 | ||
|
|
0f3404ca27 | ||
|
|
2c279fd02d | ||
|
|
8a048cc155 | ||
|
|
b3c378e8c1 | ||
|
|
39475be792 | ||
|
|
9e2e460ac5 | ||
|
|
18006ea9c8 | ||
|
|
71b648e9fa | ||
|
|
eacd76bfa4 | ||
|
|
791ff842aa | ||
|
|
ac0123734a | ||
|
|
7cab99efdf | ||
|
|
5378bb7b34 | ||
|
|
942824cd74 | ||
|
|
bdeb56bfaf | ||
|
|
fb4e573cfa | ||
|
|
e65df31bc3 | ||
|
|
ce1ac57522 | ||
|
|
09ff57d462 | ||
|
|
542cf0cf4f | ||
|
|
f4113745ce | ||
|
|
6d197c53e0 | ||
|
|
b2c6e6271c | ||
|
|
cdd36eeefc | ||
|
|
97148f6f57 | ||
|
|
6219b3f0c3 | ||
|
|
d66cac7a26 | ||
|
|
07c11b9b1f | ||
|
|
6a232a1f36 | ||
|
|
1a61357be8 | ||
|
|
b2eeb5d687 | ||
|
|
ffeca41ef4 | ||
|
|
68c0936766 | ||
|
|
23b6267e30 | ||
|
|
6872ccfb72 | ||
|
|
b1b791e4ee | ||
|
|
1779b759f7 | ||
|
|
3ebbf5a55d | ||
|
|
83ce2ac3dc | ||
|
|
aaf850a095 | ||
|
|
3e9bf8aa1f | ||
|
|
95832c96ac | ||
|
|
8a700307d2 | ||
|
|
86accc227e | ||
|
|
1756ddd0e9 | ||
|
|
fe71781d70 | ||
|
|
ec65951ef3 | ||
|
|
1681e8a572 | ||
|
|
e897eb0439 | ||
|
|
36e3362fc1 | ||
|
|
10e123a9c4 | ||
|
|
0101dcdd93 | ||
|
|
9416f61fb3 | ||
|
|
8efd69c3d1 | ||
|
|
dcbdfbb081 | ||
|
|
92968c5efe | ||
|
|
c8ac64566f | ||
|
|
633c7737e4 | ||
|
|
05a72be273 | ||
|
|
b1cd950051 | ||
|
|
f557996817 | ||
|
|
1a64a737d4 | ||
|
|
7c0087cb30 | ||
|
|
17448699f9 | ||
|
|
a413f22e12 | ||
|
|
893952f46b | ||
|
|
061e3cd722 | ||
|
|
a83790951d | ||
|
|
4e33529845 | ||
|
|
a2a8b330b7 | ||
|
|
9669016573 | ||
|
|
2755cb9ec7 | ||
|
|
fdcc4c2447 | ||
|
|
f42bf72b32 | ||
|
|
8ab77b077b | ||
|
|
9b03833df0 | ||
|
|
fada30435f | ||
|
|
fc0ffda8ec | ||
|
|
397729ed3d | ||
|
|
88312b8e4a | ||
|
|
9be3ff90f7 | ||
|
|
a5b5e5de32 | ||
|
|
e66dea7e03 | ||
|
|
4c5ed2fa45 | ||
|
|
40c0e69f11 | ||
|
|
f3837fb6af | ||
|
|
db7b7bbde2 | ||
|
|
ef61310bad | ||
|
|
91da0114e3 | ||
|
|
ee301c5e2f | ||
|
|
4a67ffab25 | ||
|
|
4d060815d0 | ||
|
|
f91bd03c25 | ||
|
|
7de4ec2a90 | ||
|
|
812d8cac4a | ||
|
|
d1faed282f | ||
|
|
26195314eb | ||
|
|
912483660f | ||
|
|
d12a7c2c76 | ||
|
|
dee1c3d139 | ||
|
|
101cff02c6 | ||
|
|
bb9c54a445 | ||
|
|
5ce2af454e | ||
|
|
e5f396f975 | ||
|
|
a57a93d414 | ||
|
|
a82b1d8129 | ||
|
|
5184fa540c | ||
|
|
951787d456 | ||
|
|
b35743b6e4 | ||
|
|
4fc30ba50e | ||
|
|
97a401a307 | ||
|
|
232e3b8262 | ||
|
|
b3b66d5825 | ||
|
|
1b532f995c | ||
|
|
f5544494f0 | ||
|
|
2de32b54ba | ||
|
|
b6e2dadbb3 | ||
|
|
473e635d54 | ||
|
|
3e11cdb5c1 | ||
|
|
842e8da2c3 | ||
|
|
24f8e6d2ec | ||
|
|
568d58405d | ||
|
|
b23489fa40 | ||
|
|
503658f930 | ||
|
|
24bf5f0fea | ||
|
|
9d86249bcb | ||
|
|
3e37c8a3f1 | ||
|
|
691d7d735b | ||
|
|
6d1dd76590 | ||
|
|
356e00bfbb | ||
|
|
5534109122 | ||
|
|
ac8790ecb3 | ||
|
|
2eb8121644 | ||
|
|
b685e0d3a7 | ||
|
|
1dd3d86a2b | ||
|
|
7ee41902f2 | ||
|
|
490ced4a92 | ||
|
|
a682115fb1 | ||
|
|
653067f58c | ||
|
|
06ed9c838e | ||
|
|
726d87de6b | ||
|
|
fbb97c3db8 | ||
|
|
cea8cbd924 | ||
|
|
73372a58ef | ||
|
|
287d6a926a | ||
|
|
04b07a1ff5 | ||
|
|
0da7c93bc6 | ||
|
|
bfe41d4cbc | ||
|
|
3e6e0b73ee | ||
|
|
592a468448 | ||
|
|
f09b1fc1a8 | ||
|
|
bdbd869b06 | ||
|
|
8b42bd205a | ||
|
|
6108a74fec | ||
|
|
5ecab7a0c2 | ||
|
|
d8785bdaba | ||
|
|
00841cb537 | ||
|
|
61c8859da8 | ||
|
|
e33ce235c4 | ||
|
|
ec2f99a467 | ||
|
|
67b5f08b07 | ||
|
|
95170bacd5 | ||
|
|
eebc49f27c | ||
|
|
8b0296eae6 | ||
|
|
b6120a9105 | ||
|
|
5d3dbca9c3 | ||
|
|
5bbd63bcd8 | ||
|
|
980b4a86ab | ||
|
|
118ed79070 | ||
|
|
623d1e0285 | ||
|
|
2dcced8810 | ||
|
|
5100ad6b51 | ||
|
|
7e2bead54d | ||
|
|
2b6e6c62dd | ||
|
|
05a15d9441 | ||
|
|
567196fe0e | ||
|
|
7bd32d4967 | ||
|
|
9b6f1a5e11 | ||
|
|
84389d1392 | ||
|
|
da3b467d47 | ||
|
|
ceffae2efc | ||
|
|
f19a6f0dec | ||
|
|
0a155da273 | ||
|
|
c0d02c8d42 | ||
|
|
e68d72c0dd | ||
|
|
034e8b180a | ||
|
|
ead0e1c08d | ||
|
|
8dfb628d88 | ||
|
|
85b3d7dac5 | ||
|
|
84040fd2a6 | ||
|
|
5dcf456c90 | ||
|
|
79ec3d5a3f | ||
|
|
e893197c49 | ||
|
|
60e67ae1a4 | ||
|
|
53a0f70aa0 | ||
|
|
64d6ae445b | ||
|
|
5712f67673 | ||
|
|
9c45444ea6 | ||
|
|
4e41a73c4f | ||
|
|
75267268d7 | ||
|
|
7455053879 | ||
|
|
c5addb8c1d | ||
|
|
e5d4b216ba | ||
|
|
b4fe44510b | ||
|
|
9df5d78f27 | ||
|
|
f9d72e10d5 | ||
|
|
723499332a | ||
|
|
6a06e0ac3b | ||
|
|
5600102729 | ||
|
|
a6ea975848 | ||
|
|
57917a498b | ||
|
|
b30da27e92 | ||
|
|
1e1e88fe51 | ||
|
|
e4c3c1664a | ||
|
|
5b0c8bbaef | ||
|
|
71f396a44f | ||
|
|
eb162f6b29 | ||
|
|
5aea361d87 | ||
|
|
3721c017fa | ||
|
|
12f0ed9955 | ||
|
|
4c4881430c | ||
|
|
bcc02f35e7 | ||
|
|
08b2b19d5e | ||
|
|
cccd35fdf3 | ||
|
|
d8ece7cd8b | ||
|
|
ee65d70eec | ||
|
|
ab1ed53507 | ||
|
|
2b3865855d | ||
|
|
1da18d3386 | ||
|
|
b025df1798 | ||
|
|
178924af5d | ||
|
|
bb1f7fde2f | ||
|
|
c61e7a1672 | ||
|
|
3c964933b1 | ||
|
|
e7b625edcf | ||
|
|
eab6cc563b | ||
|
|
8daf9b9247 | ||
|
|
5ba0f906a1 | ||
|
|
35c8236c21 | ||
|
|
b397a8e661 | ||
|
|
61def8f2e7 | ||
|
|
4ff0bf8162 | ||
|
|
02b9fca620 | ||
|
|
40f7d07e27 | ||
|
|
c56486d7ae | ||
|
|
56db90f49e | ||
|
|
a8b4037885 | ||
|
|
fc145d472d | ||
|
|
5037cce6f5 | ||
|
|
c399491314 | ||
|
|
c15c5435ff | ||
|
|
0cdb49818d | ||
|
|
9548f5c5f7 | ||
|
|
ba91abd20e | ||
|
|
0d07bf2a3b | ||
|
|
07a6e62d09 | ||
|
|
e9667ab289 | ||
|
|
d003ba81e3 | ||
|
|
a783f4609a | ||
|
|
756b3ec73b | ||
|
|
d9b47ad1b3 | ||
|
|
0235a04530 | ||
|
|
043abdef39 | ||
|
|
b372e131a1 | ||
|
|
642d3cbfbd | ||
|
|
930de1b6a2 | ||
|
|
e3db218e7c | ||
|
|
fcff302d55 | ||
|
|
150310bf67 | ||
|
|
926fc5ee43 | ||
|
|
ccc7a43a06 | ||
|
|
e4fcaa5992 | ||
|
|
b1d4461c77 | ||
|
|
45c77196b3 | ||
|
|
13d41dc1aa | ||
|
|
5ca382be42 | ||
|
|
3259db69f0 | ||
|
|
6efb71d903 | ||
|
|
91401446a5 | ||
|
|
59593c824a | ||
|
|
79cf03b124 | ||
|
|
a6b3c26bbe | ||
|
|
8345765ada | ||
|
|
03fb33ba86 | ||
|
|
2c8ce6e4e5 | ||
|
|
3e10c703bf | ||
|
|
42f8b2efed | ||
|
|
bd493c392a | ||
|
|
dc701f55b3 | ||
|
|
06e3328ce2 | ||
|
|
91fcb7c7c4 | ||
|
|
42f2e78b10 | ||
|
|
0501859c23 | ||
|
|
a7c970054c | ||
|
|
c97925aa4a | ||
|
|
5e89c54144 | ||
|
|
2307df980c | ||
|
|
b5f3f98f87 | ||
|
|
ac79e44d9a | ||
|
|
bf8a31abda | ||
|
|
f0977f3c39 | ||
|
|
16ad94f3a8 | ||
|
|
6223a738a7 | ||
|
|
a370216f54 | ||
|
|
473fb45132 | ||
|
|
ae0563a58f | ||
|
|
2b593a59f5 | ||
|
|
d3cb106ae4 | ||
|
|
ddfd14ebb3 | ||
|
|
1db220e1e0 | ||
|
|
29bc961e8a | ||
|
|
216e181c6e | ||
|
|
b65b94b6f9 | ||
|
|
85ee1e7806 | ||
|
|
7d24bcf868 | ||
|
|
1df1ba9403 | ||
|
|
e15ccdbd74 | ||
|
|
1a2703f630 | ||
|
|
09a5426095 | ||
|
|
bb7a2d7a5e | ||
|
|
080689ccfa | ||
|
|
41a36bb704 | ||
|
|
7cae7ca520 | ||
|
|
05856c44dd | ||
|
|
b02bf3b83c | ||
|
|
48ebfbee90 | ||
|
|
785595a951 | ||
|
|
0aa8b1a30e | ||
|
|
874fb884b8 | ||
|
|
a91ae8947b | ||
|
|
11e83af0b6 | ||
|
|
9703d848ef | ||
|
|
4155b17633 | ||
|
|
d5bd058754 | ||
|
|
4ec46c2db6 | ||
|
|
aca1f92060 | ||
|
|
1b8dfaf049 | ||
|
|
ae8f1a92e8 | ||
|
|
698d3672a6 | ||
|
|
ed97400a23 | ||
|
|
45d65baf8e | ||
|
|
e329b4bfb0 | ||
|
|
99b82272cc | ||
|
|
fd95ae7e41 | ||
|
|
76d77ceb51 | ||
|
|
f23094df09 | ||
|
|
9c539da811 | ||
|
|
6cf705ea55 | ||
|
|
d1901cbea4 | ||
|
|
5c72c35060 | ||
|
|
b3b8cb778f | ||
|
|
d8a7f60f40 | ||
|
|
a10bb5acbd | ||
|
|
cf11ef8ba2 | ||
|
|
8c69ee67b8 | ||
|
|
70614de955 | ||
|
|
5d282f7e9f | ||
|
|
73b388da87 | ||
|
|
38519b2bae | ||
|
|
37101a6b64 | ||
|
|
e686c61962 | ||
|
|
93811a6d8f | ||
|
|
568e3003ba | ||
|
|
ec898a8127 | ||
|
|
ddab3ba074 | ||
|
|
e2b506294d | ||
|
|
78f0164f5b | ||
|
|
2b9ff963da | ||
|
|
3100781f27 | ||
|
|
5028c9d283 | ||
|
|
ff2901a9d1 | ||
|
|
9944f3e1e6 | ||
|
|
cfcf73b6a1 | ||
|
|
eb42e81afc | ||
|
|
64af81a4a2 | ||
|
|
215f6e92f2 | ||
|
|
fd64e53f61 | ||
|
|
4dcf309910 | ||
|
|
1b92b126c8 | ||
|
|
98d1cbec8c | ||
|
|
2c52c1a6fc | ||
|
|
1a4e83d633 | ||
|
|
9078a1edaa | ||
|
|
32c107ab5a | ||
|
|
fbf52dd1f9 | ||
|
|
436a2ba0a2 | ||
|
|
412fffba1d | ||
|
|
ada640b159 | ||
|
|
5024da4123 | ||
|
|
6620243603 | ||
|
|
48361b146c | ||
|
|
1d4529092f | ||
|
|
6e08310744 | ||
|
|
5719455731 | ||
|
|
c5a95dee79 | ||
|
|
563f9a4f5f | ||
|
|
187fbd788b | ||
|
|
2dd4c1ccaf | ||
|
|
8733036fb0 | ||
|
|
c0a40c616b | ||
|
|
88f109da67 | ||
|
|
ecea0600b6 | ||
|
|
93850d4317 | ||
|
|
79f16e0ea3 | ||
|
|
7397ab4fd8 | ||
|
|
ec7e92202b | ||
|
|
9a21ca38e1 | ||
|
|
d2f62f86a9 | ||
|
|
80537e7e01 | ||
|
|
7f43a66fb3 | ||
|
|
f2bfb9bedb | ||
|
|
ced6264846 | ||
|
|
f58d9ec790 | ||
|
|
06c0b1375b | ||
|
|
ffbd79d3dd | ||
|
|
99f163d294 | ||
|
|
75fdfb3c6a | ||
|
|
56a2347ea0 | ||
|
|
ea8d189d6c | ||
|
|
bc6f14105e | ||
|
|
9def777d02 | ||
|
|
0b6eaa8d02 | ||
|
|
df2553eac5 | ||
|
|
6a0925539f | ||
|
|
d10f9a1a43 | ||
|
|
07854cf372 | ||
|
|
86b0d71c7e | ||
|
|
4a67acf954 | ||
|
|
31098218d2 | ||
|
|
9ccf502365 | ||
|
|
de5eeeb6f2 | ||
|
|
09d4ab9f0d | ||
|
|
2d3bd7f471 | ||
|
|
018b019f10 | ||
|
|
6aa039876d | ||
|
|
6b08e2ab2c | ||
|
|
099914be40 | ||
|
|
4143c50b1f | ||
|
|
dc32d282a6 | ||
|
|
2654db7c82 | ||
|
|
1a9ad4fcbc | ||
|
|
655c54f367 | ||
|
|
0dc0776705 | ||
|
|
ec9d50c824 | ||
|
|
60c08347a5 | ||
|
|
b6a456cb67 | ||
|
|
db0c874622 | ||
|
|
97f09c672a | ||
|
|
1d72d461df | ||
|
|
5858a83239 | ||
|
|
4a321f200f | ||
|
|
ae1d260729 | ||
|
|
15360971b0 | ||
|
|
12282ad906 | ||
|
|
a4d59b72b0 | ||
|
|
6b2e10860e | ||
|
|
c93e51b73e | ||
|
|
3c162984f1 | ||
|
|
207fe7b64e | ||
|
|
7c9299bdb5 | ||
|
|
4c19c1a0a5 | ||
|
|
38e9976ce4 | ||
|
|
74d7db9fba | ||
|
|
414ae58cbd | ||
|
|
c162654757 | ||
|
|
29f68ed5d8 | ||
|
|
115b5dadef | ||
|
|
d9438cb082 | ||
|
|
ffd883e84d | ||
|
|
25fd6f2e78 | ||
|
|
a0c56f31c7 | ||
|
|
85c41c1f12 | ||
|
|
d252916858 | ||
|
|
09a9b64d28 | ||
|
|
31c1c82310 | ||
|
|
a66c2314ef | ||
|
|
2f83d02168 | ||
|
|
0e6a576e33 | ||
|
|
4204943a7c | ||
|
|
1246c3b6b9 | ||
|
|
ec2db4dd2a | ||
|
|
ec343fda3b | ||
|
|
ff3e8c29a7 | ||
|
|
f19244cebd | ||
|
|
59d4e3d9e2 | ||
|
|
189865fd80 | ||
|
|
7e9a149c8d | ||
|
|
f113ac61d7 | ||
|
|
9a98a7c974 | ||
|
|
07e9043e34 | ||
|
|
f844ff275b | ||
|
|
50ca1f7173 | ||
|
|
6996353d05 | ||
|
|
df459a21a4 | ||
|
|
e7c6892ab8 | ||
|
|
2c6ca7e169 | ||
|
|
0075ffbc02 | ||
|
|
9cfba8ad19 | ||
|
|
6dcc0b1d68 | ||
|
|
fe017713ae | ||
|
|
04801e5c2e | ||
|
|
59e7cb313d | ||
|
|
ef3ea0701e | ||
|
|
6d62f4c4b4 | ||
|
|
19881927e3 | ||
|
|
24c96fab8b | ||
|
|
b821188f5d | ||
|
|
7d163632a4 | ||
|
|
a97792cbc3 | ||
|
|
d498ecf901 | ||
|
|
5ea9d8cf8b | ||
|
|
9abd60ef1e | ||
|
|
ca5eddd27e | ||
|
|
2900dd89d8 | ||
|
|
5667c00587 | ||
|
|
295e814988 | ||
|
|
5eacf05a45 | ||
|
|
d5ff733f0b | ||
|
|
5470f8d758 | ||
|
|
94cbac00a5 | ||
|
|
77178ca595 | ||
|
|
7790401d59 | ||
|
|
a45782f59b | ||
|
|
a0f60a9bfe | ||
|
|
a3adbd9fc8 | ||
|
|
4c767cd5b4 | ||
|
|
6658f85f59 | ||
|
|
dffa50468b | ||
|
|
12b28fdc32 | ||
|
|
fc38906e60 | ||
|
|
fc8b220b4c | ||
|
|
13985e28f4 | ||
|
|
8f62cf2bce | ||
|
|
c3d4288692 | ||
|
|
f71df770d0 | ||
|
|
38c9ecd44f | ||
|
|
0cf964e1bd | ||
|
|
6a8a67560b | ||
|
|
6bdc5d4438 | ||
|
|
f940397781 | ||
|
|
010953cc6b | ||
|
|
56bc497fe2 | ||
|
|
7b87e609c4 | ||
|
|
0e954e50d8 | ||
|
|
7593168341 | ||
|
|
c0a5bcce92 | ||
|
|
4430c88a95 | ||
|
|
f14e7e97b1 | ||
|
|
781afc1015 | ||
|
|
71bff0dd5b | ||
|
|
10fba9b39f | ||
|
|
585072302c | ||
|
|
3323ac7650 | ||
|
|
b443f5ece9 | ||
|
|
bc349faf8c | ||
|
|
c04c54ebf6 | ||
|
|
fd31a76fba | ||
|
|
dee9521f77 | ||
|
|
17f126d80c | ||
|
|
37d15a1be3 | ||
|
|
623471290e | ||
|
|
a876f81f0a | ||
|
|
271330d2fc | ||
|
|
7090281da5 | ||
|
|
958b144948 | ||
|
|
e3d9cab02b | ||
|
|
a959702905 | ||
|
|
9e56198092 | ||
|
|
4b2114c1e4 | ||
|
|
f65ce82778 | ||
|
|
d7e706e6e7 | ||
|
|
7a27973ae3 | ||
|
|
b42426a3b8 | ||
|
|
f6c0071554 | ||
|
|
35de9077da | ||
|
|
a1905e43f7 | ||
|
|
9662323261 | ||
|
|
abdf3b5480 |
4
.dockerignore
Normal file
@@ -0,0 +1,4 @@
|
||||
.git
|
||||
.gitignore
|
||||
log/*
|
||||
tmp/*
|
||||
@@ -22,48 +22,43 @@
|
||||
Metrics/LineLength:
|
||||
Max: 100
|
||||
Exclude:
|
||||
- Gemfile
|
||||
- app/controllers/admin/bulk_line_items_controller.rb
|
||||
- app/controllers/admin/contents_controller.rb
|
||||
- app/controllers/admin/customers_controller.rb
|
||||
- app/controllers/admin/enterprises_controller.rb
|
||||
- app/controllers/admin/enterprise_fees_controller.rb
|
||||
- app/controllers/admin/enterprise_groups_controller.rb
|
||||
- app/controllers/admin/enterprise_relationships_controller.rb
|
||||
- app/controllers/admin/enterprises_controller.rb
|
||||
- app/controllers/admin/enterprise_roles_controller.rb
|
||||
- app/controllers/admin/inventory_items_controller.rb
|
||||
- app/controllers/admin/manager_invitations_controller.rb
|
||||
- app/controllers/admin/order_cycles_controller.rb
|
||||
- app/controllers/admin/product_import_controller.rb
|
||||
- app/controllers/admin/proxy_orders_controller.rb
|
||||
- app/controllers/admin/schedules_controller.rb
|
||||
- app/controllers/admin/subscription_line_items_controller.rb
|
||||
- app/controllers/admin/subscriptions_controller.rb
|
||||
- app/controllers/admin/variant_overrides_controller.rb
|
||||
- app/controllers/api/enterprise_attachment_controller.rb
|
||||
- app/controllers/api/order_cycles_controller.rb
|
||||
- app/controllers/api/product_images_controller.rb
|
||||
- app/controllers/application_controller.rb
|
||||
- app/controllers/base_controller.rb
|
||||
- app/controllers/cart_controller.rb
|
||||
- app/controllers/checkout_controller.rb
|
||||
- app/controllers/shop_controller.rb
|
||||
- app/controllers/spree/admin/adjustments_controller_decorator.rb
|
||||
- app/controllers/spree/admin/base_controller_decorator.rb
|
||||
- app/controllers/spree/admin/line_items_controller_decorator.rb
|
||||
- app/controllers/spree/admin/orders_controller_decorator.rb
|
||||
- app/controllers/spree/admin/payments_controller_decorator.rb
|
||||
- app/controllers/spree/admin/payment_methods_controller_decorator.rb
|
||||
- app/controllers/spree/admin/products_controller_decorator.rb
|
||||
- app/controllers/spree/admin/reports_controller_decorator.rb
|
||||
- app/controllers/spree/admin/shipping_methods_controller_decorator.rb
|
||||
- app/controllers/spree/api/products_controller_decorator.rb
|
||||
- app/controllers/spree/credit_cards_controller.rb
|
||||
- app/controllers/spree/orders_controller_decorator.rb
|
||||
- app/controllers/spree/paypal_controller_decorator.rb
|
||||
- app/controllers/stripe/callbacks_controller.rb
|
||||
- app/controllers/user_confirmations_controller.rb
|
||||
- app/helpers/admin/account_helper.rb
|
||||
- app/helpers/admin/injection_helper.rb
|
||||
- app/helpers/angular_form_builder.rb
|
||||
- app/helpers/angular_form_helper.rb
|
||||
- app/helpers/application_helper.rb
|
||||
- app/helpers/checkout_helper.rb
|
||||
- app/helpers/enterprises_helper.rb
|
||||
- app/helpers/footer_links_helper.rb
|
||||
@@ -73,24 +68,19 @@ Metrics/LineLength:
|
||||
- app/helpers/shop_helper.rb
|
||||
- app/helpers/spree/admin/base_helper_decorator.rb
|
||||
- app/helpers/spree/admin/navigation_helper_decorator.rb
|
||||
- app/helpers/spree/admin/orders_helper_decorator.rb
|
||||
- app/helpers/spree/orders_helper.rb
|
||||
- app/jobs/products_cache_integrity_checker_job.rb
|
||||
- app/jobs/subscription_confirm_job.rb
|
||||
- app/jobs/subscription_placement_job.rb
|
||||
- app/mailers/producer_mailer.rb
|
||||
- app/mailers/spree/order_mailer_decorator.rb
|
||||
- app/mailers/subscription_mailer.rb
|
||||
- app/models/column_preference.rb
|
||||
- app/models/concerns/order_shipment.rb
|
||||
- app/models/concerns/product_stock.rb
|
||||
- app/models/concerns/variant_stock.rb
|
||||
- app/models/content_configuration.rb
|
||||
- app/models/customer.rb
|
||||
- app/models/enterprise_fee.rb
|
||||
- app/models/enterprise.rb
|
||||
- app/models/enterprise_relationship.rb
|
||||
- app/models/enterprise_group.rb
|
||||
- app/models/enterprise_role.rb
|
||||
- app/models/exchange.rb
|
||||
- app/models/inventory_item.rb
|
||||
- app/models/order_cycle.rb
|
||||
- app/models/product_import/entry_processor.rb
|
||||
- app/models/product_import/entry_validator.rb
|
||||
- app/models/product_import/product_importer.rb
|
||||
@@ -101,9 +91,10 @@ Metrics/LineLength:
|
||||
- app/models/schedule.rb
|
||||
- app/models/spree/ability_decorator.rb
|
||||
- app/models/spree/adjustment_decorator.rb
|
||||
- app/models/spree/app_configuration_decorator.rb
|
||||
- app/models/spree/calculator/default_tax_decorator.rb
|
||||
- app/models/spree/calculator/flexi_rate_decorator.rb
|
||||
- app/models/spree/classification_decorator.rb
|
||||
- app/models/spree/concerns/payment_method_distributors.rb
|
||||
- app/models/spree/gateway/stripe_connect.rb
|
||||
- app/models/spree/line_item_decorator.rb
|
||||
- app/models/spree/order_decorator.rb
|
||||
@@ -112,16 +103,14 @@ Metrics/LineLength:
|
||||
- app/models/spree/product_decorator.rb
|
||||
- app/models/spree/shipment_decorator.rb
|
||||
- app/models/spree/shipping_method_decorator.rb
|
||||
- app/models/spree/tax_rate_decorator.rb
|
||||
- app/models/spree/taxon_decorator.rb
|
||||
- app/models/spree/user_decorator.rb
|
||||
- app/models/spree/variant_decorator.rb
|
||||
- app/models/subscription.rb
|
||||
- app/models/variant_override.rb
|
||||
- app/models/variant_override_set.rb
|
||||
- app/overrides/add_distributor_details_js_to_product.rb
|
||||
- app/overrides/add_enterprise_fees_to_admin_configurations_menu.rb
|
||||
- app/overrides/replace_checkout_payment_button.rb
|
||||
- app/overrides/replace_payment_name_with_description.rb
|
||||
- app/serializers/api/admin/basic_enterprise_serializer.rb
|
||||
- app/serializers/api/admin/enterprise_fee_serializer.rb
|
||||
- app/serializers/api/admin/enterprise_serializer.rb
|
||||
@@ -131,64 +120,53 @@ Metrics/LineLength:
|
||||
- app/serializers/api/admin/index_order_cycle_serializer.rb
|
||||
- app/serializers/api/admin/line_item_serializer.rb
|
||||
- app/serializers/api/admin/order_cycle_serializer.rb
|
||||
- app/serializers/api/admin/product_serializer.rb
|
||||
- app/serializers/api/admin/subscription_serializer.rb
|
||||
- app/serializers/api/admin/tag_rule_serializer.rb
|
||||
- app/serializers/api/admin/variant_override_serializer.rb
|
||||
- app/serializers/api/admin/variant_serializer.rb
|
||||
- app/services/cart_service.rb
|
||||
- app/services/default_stock_location.rb
|
||||
- app/services/embedded_page_service.rb
|
||||
- app/services/line_item_syncer.rb
|
||||
- app/services/order_cycle_form.rb
|
||||
- app/services/order_factory.rb
|
||||
- app/services/order_syncer.rb
|
||||
- app/services/subscriptions_count.rb
|
||||
- app/services/variants_stock_levels.rb
|
||||
- app/views/json/_groups.rabl
|
||||
- app/views/json/partials/_enterprise.rabl
|
||||
- app/views/json/_producer.rabl
|
||||
- app/views/json/partials/_enterprise.rabl
|
||||
- app/views/spree/api/products/bulk_show.v1.rabl
|
||||
- app/views/spree/api/variants/bulk_show.v1.rabl
|
||||
- engines/web/app/helpers/web/cookies_policy_helper.rb
|
||||
- Gemfile
|
||||
- lib/discourse/single_sign_on.rb
|
||||
- lib/open_food_network/available_payment_method_filter.rb
|
||||
- lib/open_food_network/bulk_coop_report.rb
|
||||
- lib/open_food_network/customers_report.rb
|
||||
- app/services/order_cycle_distributed_variants.rb
|
||||
- lib/open_food_network/enterprise_fee_applicator.rb
|
||||
- lib/open_food_network/enterprise_fee_calculator.rb
|
||||
- lib/open_food_network/enterprise_issue_validator.rb
|
||||
- lib/open_food_network/group_buy_report.rb
|
||||
- lib/open_food_network/lettuce_share_report.rb
|
||||
- lib/open_food_network/locking.rb
|
||||
- lib/open_food_network/order_and_distributor_report.rb
|
||||
- lib/open_food_network/order_cycle_form_applicator.rb
|
||||
- lib/open_food_network/order_cycle_management_report.rb
|
||||
- lib/open_food_network/order_cycle_permissions.rb
|
||||
- lib/open_food_network/order_grouper.rb
|
||||
- lib/open_food_network/orders_and_fulfillments_report.rb
|
||||
- lib/open_food_network/payments_report.rb
|
||||
- lib/open_food_network/permalink_generator.rb
|
||||
- lib/open_food_network/permissions.rb
|
||||
- lib/open_food_network/products_and_inventory_report_base.rb
|
||||
- lib/open_food_network/products_cache.rb
|
||||
- lib/open_food_network/proxy_order_syncer.rb
|
||||
- lib/open_food_network/products_renderer.rb
|
||||
- lib/open_food_network/reports/bulk_coop_allocation_report.rb
|
||||
- lib/open_food_network/reports/line_items.rb
|
||||
- lib/open_food_network/sales_tax_report.rb
|
||||
- lib/open_food_network/users_and_enterprises_report.rb
|
||||
- lib/open_food_network/variant_and_line_item_naming.rb
|
||||
- lib/open_food_network/xero_invoices_report.rb
|
||||
- lib/spree/core/calculated_adjustments_decorator.rb
|
||||
- lib/spree/core/controller_helpers/respond_with_decorator.rb
|
||||
- lib/spree/localized_number.rb
|
||||
- lib/spree/product_filters.rb
|
||||
- lib/stripe/profile_storer.rb
|
||||
- lib/tasks/cache.rake
|
||||
- lib/tasks/data.rake
|
||||
- lib/tasks/dev.rake
|
||||
- lib/tasks/enterprises.rake
|
||||
- spec/archive/features/consumer/checkout_spec.rb
|
||||
- spec/controllers/admin/bulk_line_items_controller_spec.rb
|
||||
- spec/controllers/admin/column_preferences_controller_spec.rb
|
||||
- spec/controllers/admin/customers_controller_spec.rb
|
||||
@@ -216,18 +194,20 @@ Metrics/LineLength:
|
||||
- spec/controllers/shops_controller_spec.rb
|
||||
- spec/controllers/spree/admin/adjustments_controller_spec.rb
|
||||
- spec/controllers/spree/admin/base_controller_spec.rb
|
||||
- spec/controllers/spree/admin/line_items_controller_spec.rb
|
||||
- spec/controllers/spree/admin/orders_controller_spec.rb
|
||||
- spec/controllers/spree/admin/orders/customer_details_controller_spec.rb
|
||||
- spec/controllers/spree/admin/orders_controller_spec.rb
|
||||
- spec/controllers/spree/admin/payment_methods_controller_spec.rb
|
||||
- spec/controllers/spree/admin/payments_controller_spec.rb
|
||||
- spec/controllers/spree/admin/reports_controller_spec.rb
|
||||
- spec/controllers/spree/admin/variants_controller_spec.rb
|
||||
- spec/controllers/spree/api/line_items_controller_spec.rb
|
||||
- spec/controllers/spree/api/products_controller_spec.rb
|
||||
- spec/controllers/spree/api/shipments_controller_spec.rb
|
||||
- spec/controllers/spree/api/variants_controller_spec.rb
|
||||
- spec/controllers/spree/credit_cards_controller_spec.rb
|
||||
- spec/controllers/spree/orders_controller_spec.rb
|
||||
- spec/controllers/spree/users_controller_spec.rb
|
||||
- spec/controllers/spree/user_sessions_controller_spec.rb
|
||||
- spec/controllers/spree/users_controller_spec.rb
|
||||
- spec/controllers/stripe/callbacks_controller_spec.rb
|
||||
- spec/controllers/stripe/webhooks_controller_spec.rb
|
||||
- spec/controllers/user_confirmations_controller_spec.rb
|
||||
@@ -239,10 +219,10 @@ Metrics/LineLength:
|
||||
- spec/features/admin/enterprise_fees_spec.rb
|
||||
- spec/features/admin/enterprise_relationships_spec.rb
|
||||
- spec/features/admin/enterprise_roles_spec.rb
|
||||
- spec/features/admin/enterprise_user_spec.rb
|
||||
- spec/features/admin/enterprises/images_spec.rb
|
||||
- spec/features/admin/enterprises/index_spec.rb
|
||||
- spec/features/admin/enterprises_spec.rb
|
||||
- spec/features/admin/enterprise_user_spec.rb
|
||||
- spec/features/admin/image_settings_spec.rb
|
||||
- spec/features/admin/multilingual_spec.rb
|
||||
- spec/features/admin/order_cycles_spec.rb
|
||||
@@ -283,6 +263,7 @@ Metrics/LineLength:
|
||||
- spec/helpers/order_cycles_helper_spec.rb
|
||||
- spec/helpers/spree/admin/base_helper_spec.rb
|
||||
- spec/jobs/confirm_order_job_spec.rb
|
||||
- spec/jobs/products_cache_integrity_checker_job_spec.rb
|
||||
- spec/jobs/refresh_products_cache_job_spec.rb
|
||||
- spec/jobs/subscription_confirm_job_spec.rb
|
||||
- spec/jobs/subscription_placement_job_spec.rb
|
||||
@@ -290,7 +271,6 @@ Metrics/LineLength:
|
||||
- spec/lib/open_food_network/bulk_coop_report_spec.rb
|
||||
- spec/lib/open_food_network/cached_products_renderer_spec.rb
|
||||
- spec/lib/open_food_network/customers_report_spec.rb
|
||||
- spec/services/order_cycle_distributed_variants.rb
|
||||
- spec/lib/open_food_network/enterprise_fee_applicator_spec.rb
|
||||
- spec/lib/open_food_network/enterprise_fee_calculator_spec.rb
|
||||
- spec/lib/open_food_network/enterprise_injection_data_spec.rb
|
||||
@@ -301,6 +281,7 @@ Metrics/LineLength:
|
||||
- spec/lib/open_food_network/order_cycle_form_applicator_spec.rb
|
||||
- spec/lib/open_food_network/order_cycle_permissions_spec.rb
|
||||
- spec/lib/open_food_network/order_grouper_spec.rb
|
||||
- spec/lib/open_food_network/orders_and_fulfillments_report_spec.rb
|
||||
- spec/lib/open_food_network/packing_report_spec.rb
|
||||
- spec/lib/open_food_network/permissions_spec.rb
|
||||
- spec/lib/open_food_network/products_and_inventory_report_spec.rb
|
||||
@@ -319,6 +300,8 @@ Metrics/LineLength:
|
||||
- spec/mailers/producer_mailer_spec.rb
|
||||
- spec/mailers/subscription_mailer_spec.rb
|
||||
- spec/models/column_preference_spec.rb
|
||||
- spec/models/concerns/order_shipment_spec.rb
|
||||
- spec/models/concerns/product_stock_spec.rb
|
||||
- spec/models/customer_spec.rb
|
||||
- spec/models/enterprise_caching_spec.rb
|
||||
- spec/models/enterprise_fee_spec.rb
|
||||
@@ -345,8 +328,8 @@ Metrics/LineLength:
|
||||
- spec/models/spree/product_spec.rb
|
||||
- spec/models/spree/property_spec.rb
|
||||
- spec/models/spree/shipping_method_spec.rb
|
||||
- spec/models/spree/taxon_spec.rb
|
||||
- spec/models/spree/tax_rate_spec.rb
|
||||
- spec/models/spree/taxon_spec.rb
|
||||
- spec/models/spree/user_spec.rb
|
||||
- spec/models/spree/variant_spec.rb
|
||||
- spec/models/stripe_account_spec.rb
|
||||
@@ -357,10 +340,8 @@ Metrics/LineLength:
|
||||
- spec/models/tag_rule/filter_shipping_methods_spec.rb
|
||||
- spec/models/variant_override_spec.rb
|
||||
- spec/performance/orders_controller_spec.rb
|
||||
- spec/performance/proxy_order_syncer_spec.rb
|
||||
- spec/performance/shop_controller_spec.rb
|
||||
- spec/requests/checkout/failed_checkout_spec.rb
|
||||
- spec/requests/checkout/paypal_spec.rb
|
||||
- spec/requests/checkout/stripe_connect_spec.rb
|
||||
- spec/requests/embedded_shopfronts_headers_spec.rb
|
||||
- spec/requests/shop_spec.rb
|
||||
@@ -370,17 +351,19 @@ Metrics/LineLength:
|
||||
- spec/serializers/admin/for_order_cycle/supplied_product_serializer_spec.rb
|
||||
- spec/serializers/admin/subscription_customer_serializer_spec.rb
|
||||
- spec/serializers/admin/variant_override_serializer_spec.rb
|
||||
- spec/serializers/current_order_serializer.rb
|
||||
- spec/serializers/enterprise_serializer_spec.rb
|
||||
- spec/serializers/api/enterprise_shopfront_serializer_spec.rb
|
||||
- spec/serializers/current_order_serializer_spec.rb
|
||||
- spec/serializers/order_serializer_spec.rb
|
||||
- spec/services/cart_service_spec.rb
|
||||
- spec/services/embedded_page_service_spec.rb
|
||||
- spec/services/order_cycle_distributed_variants_spec.rb
|
||||
- spec/services/order_cycle_form_spec.rb
|
||||
- spec/services/order_factory_spec.rb
|
||||
- spec/services/order_syncer_spec.rb
|
||||
- spec/services/subscription_estimator_spec.rb
|
||||
- spec/services/subscription_form_spec.rb
|
||||
- spec/services/subscription_validator_spec.rb
|
||||
- spec/services/subscription_variants_service_spec.rb
|
||||
- spec/spec_helper.rb
|
||||
- spec/support/cancan_helper.rb
|
||||
- spec/support/delayed_job_helper.rb
|
||||
@@ -397,8 +380,8 @@ Metrics/AbcSize:
|
||||
Exclude:
|
||||
- app/controllers/admin/bulk_line_items_controller.rb
|
||||
- app/controllers/admin/customers_controller.rb
|
||||
- app/controllers/admin/enterprise_fees_controller.rb
|
||||
- app/controllers/admin/enterprises_controller.rb
|
||||
- app/controllers/admin/enterprise_fees_controller.rb
|
||||
- app/controllers/admin/order_cycles_controller.rb
|
||||
- app/controllers/admin/product_import_controller.rb
|
||||
- app/controllers/admin/schedules_controller.rb
|
||||
@@ -412,17 +395,19 @@ Metrics/AbcSize:
|
||||
- app/controllers/cart_controller.rb
|
||||
- app/controllers/checkout_controller.rb
|
||||
- app/controllers/discourse_sso_controller.rb
|
||||
- app/controllers/enterprises_controller.rb
|
||||
- app/controllers/spree/admin/adjustments_controller_decorator.rb
|
||||
- app/controllers/spree/admin/line_items_controller_decorator.rb
|
||||
- app/controllers/spree/admin/orders/customer_details_controller_decorator.rb
|
||||
- app/controllers/spree/admin/orders_controller_decorator.rb
|
||||
- app/controllers/spree/admin/overview_controller_decorator.rb
|
||||
- app/controllers/spree/admin/payment_methods_controller_decorator.rb
|
||||
- app/controllers/spree/admin/payments_controller_decorator.rb
|
||||
- app/controllers/spree/admin/payment_methods_controller_decorator.rb
|
||||
- app/controllers/spree/admin/products_controller_decorator.rb
|
||||
- app/controllers/spree/admin/reports_controller_decorator.rb
|
||||
- app/controllers/spree/admin/search_controller_decorator.rb
|
||||
- app/controllers/spree/admin/shipping_methods_controller_decorator.rb
|
||||
- app/controllers/spree/admin/variants_controller_decorator.rb
|
||||
- app/controllers/spree/api/products_controller_decorator.rb
|
||||
- app/controllers/spree/api/shipments_controller_decorator.rb
|
||||
- app/controllers/spree/credit_cards_controller.rb
|
||||
- app/controllers/spree/orders_controller_decorator.rb
|
||||
- app/controllers/spree/user_sessions_controller_decorator.rb
|
||||
@@ -433,21 +418,19 @@ Metrics/AbcSize:
|
||||
- app/helpers/checkout_helper.rb
|
||||
- app/helpers/i18n_helper.rb
|
||||
- app/helpers/order_cycles_helper.rb
|
||||
- app/helpers/spree/admin/orders_helper_decorator.rb
|
||||
- app/helpers/spree/orders_helper.rb
|
||||
- app/jobs/subscription_placement_job.rb
|
||||
- app/mailers/producer_mailer.rb
|
||||
- app/models/calculator/flat_percent_per_item.rb
|
||||
- app/models/column_preference.rb
|
||||
- app/models/enterprise_group.rb
|
||||
- app/models/enterprise.rb
|
||||
- app/models/enterprise_group.rb
|
||||
- app/models/enterprise_relationship.rb
|
||||
- app/models/model_set.rb
|
||||
- app/models/product_import/entry_processor.rb
|
||||
- app/models/product_import/entry_validator.rb
|
||||
- app/models/proxy_order.rb
|
||||
- app/models/spree/ability_decorator.rb
|
||||
- app/models/spree/adjustment_decorator.rb
|
||||
- app/models/spree/calculator/default_tax_decorator.rb
|
||||
- app/models/spree/calculator/flexi_rate_decorator.rb
|
||||
- app/models/spree/line_item_decorator.rb
|
||||
@@ -457,7 +440,6 @@ Metrics/AbcSize:
|
||||
- app/models/spree/product_set.rb
|
||||
- app/models/spree/taxon_decorator.rb
|
||||
- app/serializers/api/admin/enterprise_serializer.rb
|
||||
- app/serializers/api/enterprise_serializer.rb
|
||||
- app/serializers/api/product_serializer.rb
|
||||
- app/serializers/api/variant_serializer.rb
|
||||
- app/services/cart_service.rb
|
||||
@@ -489,33 +471,99 @@ Metrics/AbcSize:
|
||||
- lib/spree/localized_number.rb
|
||||
- lib/stripe/account_connector.rb
|
||||
- lib/tasks/enterprises.rake
|
||||
- spec/archive/features/consumer/checkout_spec.rb
|
||||
- spec/controllers/spree/admin/orders_controller_spec.rb
|
||||
- lib/tasks/sample_data/product_factory.rb
|
||||
- spec/controllers/spree/api/shipments_controller_spec.rb
|
||||
- spec/features/admin/product_import_spec.rb
|
||||
- spec/features/admin/reports_spec.rb
|
||||
- spec/features/admin/subscriptions_spec.rb
|
||||
- spec/features/consumer/shopping/checkout_spec.rb
|
||||
- spec/features/consumer/shopping/variant_overrides_spec.rb
|
||||
- spec/models/enterprise_spec.rb
|
||||
- spec/models/product_importer_spec.rb
|
||||
- spec/support/performance_helper.rb
|
||||
|
||||
Metrics/BlockLength:
|
||||
Max: 25
|
||||
ExcludedMethods: ["class_eval", "collection", "context", "describe", "it", "member", "namespace", "resource", "resources"]
|
||||
Exclude:
|
||||
- lib/tasks/data.rake
|
||||
- lib/tasks/dev.rake
|
||||
- spec/controllers/spree/admin/invoices_controller_spec.rb
|
||||
- spec/factories/variant_factory.rb
|
||||
- spec/features/admin/adjustments_spec.rb
|
||||
- spec/features/admin/bulk_order_management_spec.rb
|
||||
- spec/features/admin/bulk_product_update_spec.rb
|
||||
- spec/features/admin/caching_spec.rb
|
||||
- spec/features/admin/content_spec.rb
|
||||
- spec/features/admin/customers_spec.rb
|
||||
- spec/features/admin/enterprise_fees_spec.rb
|
||||
- spec/features/admin/enterprise_groups_spec.rb
|
||||
- spec/features/admin/enterprise_relationships_spec.rb
|
||||
- spec/features/admin/enterprise_roles_spec.rb
|
||||
- spec/features/admin/enterprises/images_spec.rb
|
||||
- spec/features/admin/enterprises/index_spec.rb
|
||||
- spec/features/admin/enterprises_spec.rb
|
||||
- spec/features/admin/enterprise_user_spec.rb
|
||||
- spec/features/admin/multilingual_spec.rb
|
||||
- spec/features/admin/order_cycles_spec.rb
|
||||
- spec/features/admin/orders_spec.rb
|
||||
- spec/features/admin/overview_spec.rb
|
||||
- spec/features/admin/payment_method_spec.rb
|
||||
- spec/features/admin/product_import_spec.rb
|
||||
- spec/features/admin/products_spec.rb
|
||||
- spec/features/admin/reports/enterprise_fee_summaries_spec.rb
|
||||
- spec/features/admin/reports_spec.rb
|
||||
- spec/features/admin/schedules_spec.rb
|
||||
- spec/features/admin/shipping_methods_spec.rb
|
||||
- spec/features/admin/subscriptions_spec.rb
|
||||
- spec/features/admin/tag_rules_spec.rb
|
||||
- spec/features/admin/tax_settings_spec.rb
|
||||
- spec/features/admin/users_spec.rb
|
||||
- spec/features/admin/variant_overrides_spec.rb
|
||||
- spec/features/admin/variants_spec.rb
|
||||
- spec/features/consumer/account/cards_spec.rb
|
||||
- spec/features/consumer/account/settings_spec.rb
|
||||
- spec/features/consumer/account_spec.rb
|
||||
- spec/features/consumer/authentication_spec.rb
|
||||
- spec/features/consumer/cookies_spec.rb
|
||||
- spec/features/consumer/external_services_spec.rb
|
||||
- spec/features/consumer/groups_spec.rb
|
||||
- spec/features/consumer/multilingual_spec.rb
|
||||
- spec/features/consumer/producers_spec.rb
|
||||
- spec/features/consumer/registration_spec.rb
|
||||
- spec/features/consumer/shopping/cart_spec.rb
|
||||
- spec/features/consumer/shopping/checkout_auth_spec.rb
|
||||
- spec/features/consumer/shopping/checkout_spec.rb
|
||||
- spec/features/consumer/shopping/embedded_groups_spec.rb
|
||||
- spec/features/consumer/shopping/embedded_shopfronts_spec.rb
|
||||
- spec/features/consumer/shopping/orders_spec.rb
|
||||
- spec/features/consumer/shopping/products_spec.rb
|
||||
- spec/features/consumer/shopping/shopping_spec.rb
|
||||
- spec/features/consumer/shopping/variant_overrides_spec.rb
|
||||
- spec/features/consumer/shops_spec.rb
|
||||
- spec/lib/open_food_network/group_buy_report_spec.rb
|
||||
- spec/models/tag_rule/discount_order_spec.rb
|
||||
- spec/spec_helper.rb
|
||||
- spec/support/delayed_job_helper.rb
|
||||
- spec/support/matchers/select2_matchers.rb
|
||||
- spec/support/matchers/table_matchers.rb
|
||||
|
||||
Metrics/CyclomaticComplexity:
|
||||
Max: 6
|
||||
Exclude:
|
||||
- app/controllers/admin/enterprise_fees_controller.rb
|
||||
- app/controllers/admin/enterprises_controller.rb
|
||||
- app/controllers/admin/enterprise_fees_controller.rb
|
||||
- app/controllers/checkout_controller.rb
|
||||
- app/controllers/spree/admin/orders_controller_decorator.rb
|
||||
- app/controllers/spree/admin/payments_controller_decorator.rb
|
||||
- app/controllers/spree/orders_controller_decorator.rb
|
||||
- app/helpers/checkout_helper.rb
|
||||
- app/helpers/i18n_helper.rb
|
||||
- app/helpers/order_cycles_helper.rb
|
||||
- app/helpers/spree/admin/orders_helper_decorator.rb
|
||||
- app/models/enterprise.rb
|
||||
- app/models/enterprise_relationship.rb
|
||||
- app/models/product_import/entry_processor.rb
|
||||
- app/models/product_import/entry_validator.rb
|
||||
- app/models/spree/ability_decorator.rb
|
||||
- app/models/spree/adjustment_decorator.rb
|
||||
- app/models/spree/payment_decorator.rb
|
||||
- app/models/spree/product_decorator.rb
|
||||
- app/models/spree/product_set.rb
|
||||
@@ -535,17 +583,15 @@ Metrics/PerceivedComplexity:
|
||||
Exclude:
|
||||
- app/controllers/admin/enterprises_controller.rb
|
||||
- app/controllers/checkout_controller.rb
|
||||
- app/controllers/spree/admin/orders_controller_decorator.rb
|
||||
- app/controllers/spree/admin/payments_controller_decorator.rb
|
||||
- app/controllers/spree/orders_controller_decorator.rb
|
||||
- app/helpers/checkout_helper.rb
|
||||
- app/helpers/i18n_helper.rb
|
||||
- app/helpers/order_cycles_helper.rb
|
||||
- app/helpers/spree/admin/orders_helper_decorator.rb
|
||||
- app/models/enterprise_relationship.rb
|
||||
- app/models/product_import/entry_processor.rb
|
||||
- app/models/product_import/entry_validator.rb
|
||||
- app/models/spree/ability_decorator.rb
|
||||
- app/models/spree/line_item_decorator.rb
|
||||
- app/models/spree/order_decorator.rb
|
||||
- app/models/spree/product_decorator.rb
|
||||
- app/models/spree/product_set.rb
|
||||
@@ -562,8 +608,8 @@ Metrics/MethodLength:
|
||||
Max: 10
|
||||
Exclude:
|
||||
- app/controllers/admin/customers_controller.rb
|
||||
- app/controllers/admin/enterprise_fees_controller.rb
|
||||
- app/controllers/admin/enterprises_controller.rb
|
||||
- app/controllers/admin/enterprise_fees_controller.rb
|
||||
- app/controllers/admin/manager_invitations_controller.rb
|
||||
- app/controllers/admin/order_cycles_controller.rb
|
||||
- app/controllers/admin/stripe_accounts_controller.rb
|
||||
@@ -572,14 +618,12 @@ Metrics/MethodLength:
|
||||
- app/controllers/cart_controller.rb
|
||||
- app/controllers/checkout_controller.rb
|
||||
- app/controllers/shop_controller.rb
|
||||
- app/controllers/spree/admin/line_items_controller_decorator.rb
|
||||
- app/controllers/spree/admin/orders_controller_decorator.rb
|
||||
- app/controllers/spree/admin/payment_methods_controller_decorator.rb
|
||||
- app/controllers/spree/admin/orders/customer_details_controller_decorator.rb
|
||||
- app/controllers/spree/admin/payments_controller_decorator.rb
|
||||
- app/controllers/spree/admin/payment_methods_controller_decorator.rb
|
||||
- app/controllers/spree/admin/products_controller_decorator.rb
|
||||
- app/controllers/spree/admin/reports_controller_decorator.rb
|
||||
- app/controllers/spree/admin/search_controller_decorator.rb
|
||||
- app/controllers/spree/admin/shipping_methods_controller_decorator.rb
|
||||
- app/controllers/spree/credit_cards_controller.rb
|
||||
- app/controllers/spree/orders_controller_decorator.rb
|
||||
- app/controllers/spree/user_sessions_controller_decorator.rb
|
||||
@@ -589,7 +633,6 @@ Metrics/MethodLength:
|
||||
- app/controllers/user_registrations_controller.rb
|
||||
- app/helpers/checkout_helper.rb
|
||||
- app/helpers/order_cycles_helper.rb
|
||||
- app/helpers/spree/admin/orders_helper_decorator.rb
|
||||
- app/jobs/subscription_placement_job.rb
|
||||
- app/mailers/producer_mailer.rb
|
||||
- app/models/column_preference.rb
|
||||
@@ -601,24 +644,23 @@ Metrics/MethodLength:
|
||||
- app/models/product_import/entry_validator.rb
|
||||
- app/models/product_import/product_importer.rb
|
||||
- app/models/spree/ability_decorator.rb
|
||||
- app/models/spree/adjustment_decorator.rb
|
||||
- app/models/spree/calculator/default_tax_decorator.rb
|
||||
- app/models/spree/calculator/flexi_rate_decorator.rb
|
||||
- app/models/spree/line_item_decorator.rb
|
||||
- app/models/spree/order_decorator.rb
|
||||
- app/models/spree/payment_decorator.rb
|
||||
- app/models/spree/payment_method_decorator.rb
|
||||
- app/models/spree/product_decorator.rb
|
||||
- app/models/spree/product_set.rb
|
||||
- app/models/spree/taxon_decorator.rb
|
||||
- app/serializers/api/admin/order_cycle_serializer.rb
|
||||
- app/services/cart_service.rb
|
||||
- app/serializers/api/cached_enterprise_serializer.rb
|
||||
- app/services/order_cycle_form.rb
|
||||
- engines/order_management/app/services/order_management/reports/enterprise_fee_summary/scope.rb
|
||||
- lib/discourse/single_sign_on.rb
|
||||
- lib/open_food_network/bulk_coop_report.rb
|
||||
- lib/open_food_network/cached_products_renderer.rb
|
||||
- lib/open_food_network/column_preference_defaults.rb
|
||||
- lib/open_food_network/customers_report.rb
|
||||
- lib/open_food_network/enterprise_fee_calculator.rb
|
||||
- lib/open_food_network/enterprise_issue_validator.rb
|
||||
- lib/open_food_network/group_buy_report.rb
|
||||
- lib/open_food_network/lettuce_share_report.rb
|
||||
- lib/open_food_network/option_value_namer.rb
|
||||
@@ -643,7 +685,7 @@ Metrics/MethodLength:
|
||||
- lib/spree/core/controller_helpers/respond_with_decorator.rb
|
||||
- lib/spree/localized_number.rb
|
||||
- lib/stripe/profile_storer.rb
|
||||
- spec/archive/features/consumer/checkout_spec.rb
|
||||
- lib/tasks/sample_data/product_factory.rb
|
||||
- spec/features/consumer/shopping/checkout_spec.rb
|
||||
- spec/features/consumer/shopping/variant_overrides_spec.rb
|
||||
- spec/models/product_importer_spec.rb
|
||||
@@ -662,8 +704,10 @@ Metrics/ClassLength:
|
||||
- app/models/product_import/entry_validator.rb
|
||||
- app/models/product_import/product_importer.rb
|
||||
- app/models/spree/ability_decorator.rb
|
||||
- app/serializers/api/enterprise_serializer.rb
|
||||
- app/serializers/api/cached_enterprise_serializer.rb
|
||||
- app/serializers/api/enterprise_shopfront_serializer.rb
|
||||
- app/services/cart_service.rb
|
||||
- engines/order_management/app/services/order_management/reports/enterprise_fee_summary/scope.rb
|
||||
- lib/open_food_network/bulk_coop_report.rb
|
||||
- lib/open_food_network/enterprise_fee_calculator.rb
|
||||
- lib/open_food_network/order_cycle_form_applicator.rb
|
||||
@@ -686,6 +730,7 @@ Metrics/ModuleLength:
|
||||
- spec/controllers/api/orders_controller_spec.rb
|
||||
- spec/controllers/spree/api/products_controller_spec.rb
|
||||
- spec/lib/open_food_network/address_finder_spec.rb
|
||||
- spec/lib/open_food_network/cached_products_renderer_spec.rb
|
||||
- spec/lib/open_food_network/customers_report_spec.rb
|
||||
- spec/lib/open_food_network/enterprise_fee_calculator_spec.rb
|
||||
- spec/lib/open_food_network/option_value_namer_spec.rb
|
||||
@@ -716,8 +761,3 @@ Metrics/ParameterLists:
|
||||
- app/models/product_import/entry_validator.rb
|
||||
- lib/open_food_network/xero_invoices_report.rb
|
||||
- spec/features/admin/reports_spec.rb
|
||||
|
||||
Metrics/BlockNesting:
|
||||
Max: 3
|
||||
Exclude:
|
||||
- app/controllers/checkout_controller.rb
|
||||
|
||||
@@ -13,8 +13,6 @@ AllCops:
|
||||
- 'script/**/*'
|
||||
- 'vendor/**/*'
|
||||
- 'node_modules/**/*'
|
||||
# The parser gem fails to parse this file with out current Ruby version.
|
||||
- 'spec/factories.rb'
|
||||
# Excluding: inadequate Naming/FileName rule rejects GemFile name with camelcase
|
||||
- 'engines/web/Gemfile'
|
||||
|
||||
@@ -187,15 +185,14 @@ Metrics/AbcSize:
|
||||
Max: 15
|
||||
|
||||
Metrics/BlockLength:
|
||||
ExcludedMethods: ["collection", "context", "describe", "it", "member", "namespace", "resource", "resources"]
|
||||
Max: 25
|
||||
ExcludedMethods: ["class_eval", "collection", "context", "describe", "it", "member", "namespace", "resource", "resources"]
|
||||
|
||||
Metrics/BlockNesting:
|
||||
Max: 3
|
||||
|
||||
Metrics/ClassLength:
|
||||
Max: 100
|
||||
Exclude:
|
||||
- engines/order_management/app/services/order_management/reports/enterprise_fee_summary/scope.rb
|
||||
|
||||
Metrics/ModuleLength:
|
||||
Max: 100
|
||||
@@ -205,8 +202,6 @@ Metrics/CyclomaticComplexity:
|
||||
|
||||
Metrics/MethodLength:
|
||||
Max: 10
|
||||
Exclude:
|
||||
- engines/order_management/app/services/order_management/reports/enterprise_fee_summary/scope.rb
|
||||
|
||||
Metrics/ParameterLists:
|
||||
Max: 5
|
||||
|
||||
1843
.rubocop_todo.yml
60
.travis.yml
@@ -1,60 +0,0 @@
|
||||
language: ruby
|
||||
sudo: false
|
||||
cache: bundler
|
||||
bundler_args: --without development
|
||||
rvm:
|
||||
- "2.1.5"
|
||||
addons:
|
||||
postgresql: "9.5"
|
||||
|
||||
# Set the timezone for phantomjs with TZ
|
||||
# Set the timezone for karma with TIMEZONE
|
||||
env:
|
||||
global:
|
||||
- TZ="Australia/Melbourne"
|
||||
- TIMEZONE="Australia/Melbourne"
|
||||
- CI_NODE_TOTAL=5
|
||||
matrix:
|
||||
- CI_NODE_INDEX=0
|
||||
- CI_NODE_INDEX=1
|
||||
- CI_NODE_INDEX=2
|
||||
- CI_NODE_INDEX=3 RSPEC_ENGINES="true"
|
||||
- CI_NODE_INDEX=4 KARMA="true" GITHUB_DEPLOY="true"
|
||||
|
||||
before_script:
|
||||
- cp config/database.travis.yml config/database.yml
|
||||
- cp config/application.yml.example config/application.yml
|
||||
- RAILS_ENV=test bundle exec rake db:create db:schema:load
|
||||
|
||||
# Only install PhantomJS if it is not already present (ie. cached)
|
||||
- npm list -g phantomjs-prebuilt@~2.1.7 --depth=0 || npm install -g phantomjs-prebuilt@~2.1.7
|
||||
- export PATH=`npm bin -g`:$PATH
|
||||
|
||||
- >
|
||||
if [ "$KARMA" = "true" ]; then
|
||||
npm install -g npm@'3.8.8'
|
||||
npm install
|
||||
npm install -g karma-cli@0.1.2
|
||||
fi
|
||||
|
||||
script:
|
||||
- 'if [ "$KARMA" = "true" ]; then bundle exec rake karma:run; else echo "Skipping karma run"; fi'
|
||||
- 'if [ "$RSPEC_ENGINES" = "true" ]; then bundle exec rake ofn:specs:engines:rspec; else echo "Skipping RSpec run in engines"; fi'
|
||||
- "bundle exec rake 'knapsack:rspec[--format progress --tag ~performance]'"
|
||||
|
||||
after_success:
|
||||
- >
|
||||
if [ "$GITHUB_DEPLOY" = "true" -a "$TRAVIS_PULL_REQUEST" = "false" -a -n "$TRAVIS_BRANCH" -a "$TRAVIS_BRANCH" != "transifex" -a -n "$GITHUB_API_SECRET" ]; then
|
||||
description="`git show "$TRAVIS_BRANCH" -s --oneline --no-color`"
|
||||
data="{
|
||||
\"ref\":\"$TRAVIS_BRANCH\",
|
||||
\"description\":\"$description\",
|
||||
\"environment\":\"staging\",
|
||||
\"required_contexts\":[]}"
|
||||
curl -u "$GITHUB_API_SECRET" -d "$data" "https://api.github.com/repos/$TRAVIS_REPO_SLUG/deployments"
|
||||
else
|
||||
echo "Not deploying on this build."
|
||||
fi
|
||||
|
||||
notifications:
|
||||
email: false
|
||||
47
DOCKER.md
Normal file
@@ -0,0 +1,47 @@
|
||||
### Docker
|
||||
|
||||
It is possible to setup the Open Food Network app easily with Docker and Docker Compose.
|
||||
The objective is to spare configuration time, in order to help people testing the app and contribute to it.
|
||||
It can also be used as documentation. It is not perfect but it is used in many other projects and many devs are used to it nowadays.
|
||||
|
||||
### Install Docker
|
||||
|
||||
Please check the documentation here, https://docs.docker.com/install/ to install Docker.
|
||||
|
||||
For Docker Compose, information are here: https://docs.docker.com/compose/install/.
|
||||
|
||||
Better to have at least 2GB free on your computer in order to download images and create containers for Open Food Network app.
|
||||
|
||||
|
||||
### Use Docker with Open Food Network
|
||||
|
||||
Open a terminal with a shell.
|
||||
|
||||
Clone the repository:
|
||||
|
||||
```sh
|
||||
$ git clone git@github.com:openfoodfoundation/openfoodnetwork.git
|
||||
```
|
||||
|
||||
Go at the root of the app:
|
||||
|
||||
```sh
|
||||
$ cd openfoodnetwork
|
||||
```
|
||||
|
||||
Download the Docker images and build the containers:
|
||||
|
||||
```sh
|
||||
$ docker-compose build
|
||||
```
|
||||
|
||||
Run the app with all the required containers:
|
||||
|
||||
```sh
|
||||
$ docker-compose up
|
||||
```
|
||||
|
||||
This command will setup the database and seed it with sample data. The default admin user is 'ofn@example.com' with 'ofn123' password.
|
||||
Check the app in the browser at `http://localhost:3000`.
|
||||
|
||||
You will then get the trace of the containers in the terminal. You can stop the containers using Ctrl-C in the terminal.
|
||||
31
Dockerfile
Normal file
@@ -0,0 +1,31 @@
|
||||
FROM ubuntu:18.04
|
||||
|
||||
# Install all the requirements
|
||||
RUN apt-get update && apt-get install -y curl git build-essential software-properties-common wget zlib1g-dev libssl1.0-dev libreadline-dev libyaml-dev libffi-dev libxml2-dev libxslt1-dev wait-for-it
|
||||
|
||||
# Setup ENV variables
|
||||
ENV PATH /usr/local/src/rbenv/shims:/usr/local/src/rbenv/bin:$PATH
|
||||
ENV RBENV_ROOT /usr/local/src/rbenv
|
||||
ENV RUBY_VERSION 2.1.5
|
||||
ENV CONFIGURE_OPTS --disable-install-doc
|
||||
|
||||
# Rbenv & Ruby part
|
||||
RUN git clone https://github.com/rbenv/rbenv.git ${RBENV_ROOT} && \
|
||||
git clone https://github.com/rbenv/ruby-build.git ${RBENV_ROOT}/plugins/ruby-build && \
|
||||
${RBENV_ROOT}/plugins/ruby-build/install.sh && \
|
||||
echo 'eval "$(rbenv init -)"' >> /etc/profile.d/rbenv.sh && \
|
||||
rbenv install $RUBY_VERSION && \
|
||||
rbenv global $RUBY_VERSION && \
|
||||
gem install bundler --version=1.17.2
|
||||
|
||||
# Postgres
|
||||
RUN sh -c "echo 'deb https://apt.postgresql.org/pub/repos/apt/ bionic-pgdg main' > /etc/apt/sources.list.d/pgdg.list" && \
|
||||
wget --quiet -O - https://apt.postgresql.org/pub/repos/apt/ACCC4CF8.asc | apt-key add - && \
|
||||
apt-get update && \
|
||||
apt-get install -yqq --no-install-recommends postgresql-client-9.5 libpq-dev
|
||||
|
||||
ENV BUNDLE_PATH /bundles
|
||||
|
||||
COPY . /usr/src/app/
|
||||
|
||||
WORKDIR /usr/src/app
|
||||
101
Gemfile
@@ -2,11 +2,13 @@ source 'https://rubygems.org'
|
||||
ruby "2.1.5"
|
||||
git_source(:github) { |repo_name| "https://github.com/#{repo_name}.git" }
|
||||
|
||||
gem 'i18n', '~> 0.6.11'
|
||||
gem 'i18n-js', '~> 3.3.0'
|
||||
gem 'rails', '~> 3.2.22'
|
||||
gem 'rails-i18n', '~> 3.0.0'
|
||||
gem 'i18n', '~> 0.6.11'
|
||||
gem 'i18n-js', '~> 3.2.1'
|
||||
gem 'rails_safe_tasks', '~> 1.0'
|
||||
|
||||
gem "activerecord-import"
|
||||
# Patched version. See http://rubysec.com/advisories/CVE-2015-5312/.
|
||||
gem 'nokogiri', '>= 1.6.7.1'
|
||||
|
||||
@@ -18,10 +20,11 @@ gem 'pg'
|
||||
# OFN-maintained and patched version of Spree v2.0.4. See
|
||||
# https://github.com/openfoodfoundation/openfoodnetwork/wiki/Spree-2.0-upgrade
|
||||
# for details.
|
||||
gem 'spree', github: 'openfoodfoundation/spree', branch: '2-0-4-stable'
|
||||
gem 'spree_api', github: 'openfoodfoundation/spree', branch: '2-0-4-stable'
|
||||
gem 'spree_backend', github: 'openfoodfoundation/spree', branch: '2-0-4-stable'
|
||||
gem 'spree_core', github: 'openfoodfoundation/spree', branch: '2-0-4-stable'
|
||||
|
||||
gem 'spree_i18n', github: 'spree/spree_i18n', branch: '1-3-stable'
|
||||
gem 'spree_auth_devise', github: 'spree/spree_auth_devise', branch: '2-0-stable'
|
||||
|
||||
# Our branch contains two changes
|
||||
# - Pass customer email and phone number to PayPal (merged to upstream master)
|
||||
@@ -33,51 +36,53 @@ gem 'stripe'
|
||||
# which is needed for Pin Payments (and possibly others).
|
||||
gem 'activemerchant', '~> 1.78'
|
||||
|
||||
gem 'devise', '~> 2.2.5'
|
||||
gem 'devise-encryptable', '0.2.0'
|
||||
gem 'jwt', '~> 2.2'
|
||||
gem 'oauth2', '~> 1.4.1' # Used for Stripe Connect
|
||||
gem 'jwt', '~> 2.1'
|
||||
|
||||
gem 'delayed_job_active_record'
|
||||
gem 'daemons'
|
||||
gem 'delayed_job_active_record'
|
||||
gem 'delayed_job_web'
|
||||
|
||||
# Fix bug in simple_form preventing collection_check_boxes usage within form_for block
|
||||
# When merged, revert to upstream gem
|
||||
gem 'simple_form', github: 'RohanM/simple_form'
|
||||
|
||||
gem 'unicorn'
|
||||
gem 'andand'
|
||||
gem 'angularjs-rails', '1.5.5'
|
||||
gem 'aws-sdk'
|
||||
gem 'bugsnag'
|
||||
gem 'db2fog'
|
||||
gem 'haml'
|
||||
gem 'rabl'
|
||||
gem 'redcarpet'
|
||||
gem 'sass', "~> 3.3"
|
||||
gem 'sass-rails', '~> 3.2.3', groups: [:default, :assets]
|
||||
gem 'redcarpet'
|
||||
gem 'aws-sdk'
|
||||
gem 'db2fog'
|
||||
gem 'andand'
|
||||
gem 'truncate_html'
|
||||
gem 'rabl'
|
||||
gem 'unicorn'
|
||||
|
||||
# AMS is pinned to 0.8.4 because 0.9.x is a complete re-write, as is 0.10.x
|
||||
# Once Rails is updated to 5.x we should bump directly to 0.10.x
|
||||
gem "active_model_serializers", "0.8.4"
|
||||
gem 'oj'
|
||||
gem 'deface', '1.0.0'
|
||||
gem 'paperclip', '~> 3.4.1'
|
||||
gem 'acts-as-taggable-on', '~> 3.4'
|
||||
gem 'angularjs-file-upload-rails', '~> 2.4.1'
|
||||
gem 'blockenspiel'
|
||||
gem 'custom_error_message', github: 'jeremydurham/custom-err-msg'
|
||||
gem 'dalli'
|
||||
gem 'deface', '1.0.2'
|
||||
gem 'diffy'
|
||||
gem 'figaro'
|
||||
gem 'geocoder'
|
||||
gem 'gmaps4rails'
|
||||
gem 'spinjs-rails'
|
||||
gem 'rack-ssl', require: 'rack/ssl'
|
||||
gem 'rack-rewrite'
|
||||
gem 'custom_error_message', github: 'jeremydurham/custom-err-msg'
|
||||
gem 'angularjs-file-upload-rails', '~> 2.4.1'
|
||||
gem 'roadie-rails', '~> 1.1.1'
|
||||
gem 'figaro'
|
||||
gem 'blockenspiel'
|
||||
gem 'acts-as-taggable-on', '~> 3.4'
|
||||
gem 'oj'
|
||||
gem 'paper_trail', '~> 5.2.3'
|
||||
gem 'diffy'
|
||||
gem 'paperclip', '~> 3.4.1'
|
||||
gem 'rack-rewrite'
|
||||
gem 'rack-ssl', require: 'rack/ssl'
|
||||
gem 'roadie-rails', '~> 1.1.1'
|
||||
gem 'skylight', '< 2.0'
|
||||
gem 'spinjs-rails'
|
||||
|
||||
gem 'combine_pdf'
|
||||
gem 'wicked_pdf'
|
||||
@@ -93,64 +98,68 @@ gem 'whenever', require: false
|
||||
# Gems used only for assets and not required
|
||||
# in production environments by default.
|
||||
group :assets do
|
||||
gem 'compass-rails'
|
||||
gem 'coffee-rails', '~> 3.2.1'
|
||||
gem 'compass-rails'
|
||||
|
||||
gem 'therubyracer', '=0.12.0'
|
||||
|
||||
gem 'uglifier', '>= 1.0.3'
|
||||
|
||||
gem 'turbo-sprockets-rails3'
|
||||
gem 'angular-rails-templates', '~> 0.3.0'
|
||||
gem 'foundation-icons-sass-rails'
|
||||
gem 'momentjs-rails'
|
||||
gem 'angular-rails-templates', '~> 0.3.0'
|
||||
gem 'turbo-sprockets-rails3'
|
||||
end
|
||||
|
||||
gem "foundation-rails"
|
||||
gem 'foundation_rails_helper', github: 'willrjmarshall/foundation_rails_helper', branch: "rails3"
|
||||
|
||||
gem 'jquery-rails', '3.0.0'
|
||||
gem 'jquery-migrate-rails'
|
||||
gem 'jquery-rails', '3.0.4'
|
||||
|
||||
gem 'ofn-qz', github: 'openfoodfoundation/ofn-qz', ref: '60da2ae4c44cbb4c8d602f59fb5fff8d0f21db3c'
|
||||
|
||||
group :production, :staging do
|
||||
gem 'ddtrace'
|
||||
end
|
||||
|
||||
group :test, :development do
|
||||
# Pretty printed test output
|
||||
gem 'fuubar', '~> 2.3.2'
|
||||
gem 'rspec-rails', ">= 3.5.2"
|
||||
gem 'shoulda-matchers'
|
||||
gem "factory_bot_rails", require: false
|
||||
gem 'atomic'
|
||||
gem 'awesome_print'
|
||||
gem 'capybara', '>= 2.15.4'
|
||||
gem 'database_cleaner', '0.7.1', require: false
|
||||
gem 'awesome_print'
|
||||
gem 'letter_opener', '>= 1.4.1'
|
||||
gem 'timecop'
|
||||
gem 'selenium-webdriver'
|
||||
gem 'chromedriver-helper'
|
||||
gem 'rspec-retry'
|
||||
gem "factory_bot_rails", require: false
|
||||
gem 'fuubar', '~> 2.4.1'
|
||||
gem 'json_spec', '~> 1.1.4'
|
||||
gem 'unicorn-rails'
|
||||
gem 'atomic'
|
||||
gem 'knapsack'
|
||||
gem 'letter_opener', '>= 1.4.1'
|
||||
gem 'rspec-rails', ">= 3.5.2"
|
||||
gem 'rspec-retry'
|
||||
gem 'selenium-webdriver'
|
||||
gem 'shoulda-matchers'
|
||||
gem 'timecop'
|
||||
gem 'unicorn-rails'
|
||||
gem 'webdrivers', '3.8.1'
|
||||
end
|
||||
|
||||
group :test do
|
||||
gem 'webmock'
|
||||
gem 'simplecov', require: false
|
||||
gem 'webmock'
|
||||
# See spec/spec_helper.rb for instructions
|
||||
#gem 'perftools.rb'
|
||||
# gem 'perftools.rb'
|
||||
end
|
||||
|
||||
group :development do
|
||||
gem 'byebug', '~> 9.0.0' # 9.1 requires ruby 2.2
|
||||
gem "newrelic_rpm", "~> 3.0"
|
||||
gem 'pry-byebug', '>= 3.4.3'
|
||||
gem 'debugger-linecache'
|
||||
gem 'guard'
|
||||
gem 'listen', '3.0.8' # 3.1.0 requires ruby 2.2
|
||||
gem 'guard-livereload'
|
||||
gem 'guard-rails'
|
||||
gem 'guard-rspec', '~> 4.7.3'
|
||||
gem 'listen', '3.0.8' # 3.1.0 requires ruby 2.2
|
||||
gem "newrelic_rpm", "~> 3.0"
|
||||
gem 'pry-byebug', '>= 3.4.3'
|
||||
gem 'rubocop', '>= 0.49.1'
|
||||
gem 'spring', '1.7.2'
|
||||
gem 'spring-commands-rspec'
|
||||
|
||||
122
Gemfile.lock
@@ -31,16 +31,9 @@ GIT
|
||||
|
||||
GIT
|
||||
remote: https://github.com/openfoodfoundation/spree.git
|
||||
revision: 46d6f8f5fd434105b0c69958276d1727a3066a97
|
||||
revision: 8a8585a43cd04d1a50dc65227f337a91b18d66d5
|
||||
branch: 2-0-4-stable
|
||||
specs:
|
||||
spree (2.0.4)
|
||||
spree_api (= 2.0.4)
|
||||
spree_backend (= 2.0.4)
|
||||
spree_cmd (= 2.0.4)
|
||||
spree_core (= 2.0.4)
|
||||
spree_frontend (= 2.0.4)
|
||||
spree_sample (= 2.0.4)
|
||||
spree_api (2.0.4)
|
||||
rabl (= 0.8.4)
|
||||
spree_core (= 2.0.4)
|
||||
@@ -53,8 +46,6 @@ GIT
|
||||
select2-rails (~> 3.4.7)
|
||||
spree_api (= 2.0.4)
|
||||
spree_core (= 2.0.4)
|
||||
spree_cmd (2.0.4)
|
||||
thor (>= 0.14.6)
|
||||
spree_core (2.0.4)
|
||||
activemerchant (~> 1.34)
|
||||
acts_as_list (= 0.2.0)
|
||||
@@ -75,28 +66,6 @@ GIT
|
||||
state_machine (= 1.2.0)
|
||||
stringex (~> 1.5.1)
|
||||
truncate_html (= 0.9.2)
|
||||
spree_frontend (2.0.4)
|
||||
canonical-rails
|
||||
deface (>= 0.9.0)
|
||||
jquery-rails (~> 3.0.0)
|
||||
rails (~> 3.2.13)
|
||||
spree_api (= 2.0.4)
|
||||
spree_core (= 2.0.4)
|
||||
stringex (~> 1.5.1)
|
||||
spree_sample (2.0.4)
|
||||
spree_core (= 2.0.4)
|
||||
|
||||
GIT
|
||||
remote: https://github.com/spree/spree_auth_devise.git
|
||||
revision: 0181835fb6ac77a05191d26f6f32a0f4a548d851
|
||||
branch: 2-0-stable
|
||||
specs:
|
||||
spree_auth_devise (2.0.0)
|
||||
devise (~> 2.2.5)
|
||||
devise-encryptable (= 0.1.2)
|
||||
spree_backend (~> 2.0.0)
|
||||
spree_core (~> 2.0.0)
|
||||
spree_frontend (~> 2.0.0)
|
||||
|
||||
GIT
|
||||
remote: https://github.com/spree/spree_i18n.git
|
||||
@@ -160,6 +129,8 @@ GEM
|
||||
activesupport (= 3.2.22.5)
|
||||
arel (~> 3.0.2)
|
||||
tzinfo (~> 0.3.29)
|
||||
activerecord-import (1.0.2)
|
||||
activerecord (>= 3.2)
|
||||
activeresource (3.2.22.5)
|
||||
activemodel (= 3.2.22.5)
|
||||
activesupport (= 3.2.22.5)
|
||||
@@ -170,7 +141,7 @@ GEM
|
||||
activerecord (>= 3.2, < 5)
|
||||
acts_as_list (0.2.0)
|
||||
activerecord (>= 3.0)
|
||||
addressable (2.5.2)
|
||||
addressable (2.6.0)
|
||||
public_suffix (>= 2.0.2, < 4.0)
|
||||
andand (1.3.3)
|
||||
angular-rails-templates (0.3.0)
|
||||
@@ -179,8 +150,6 @@ GEM
|
||||
tilt
|
||||
angularjs-file-upload-rails (2.4.1)
|
||||
angularjs-rails (1.5.5)
|
||||
archive-zip (0.7.0)
|
||||
io-like (~> 0.3.0)
|
||||
arel (3.0.3)
|
||||
ast (2.4.0)
|
||||
atomic (1.1.101)
|
||||
@@ -191,7 +160,7 @@ GEM
|
||||
json (~> 1.4)
|
||||
nokogiri (>= 1.4.4)
|
||||
uuidtools (~> 2.1)
|
||||
bcrypt (3.1.11)
|
||||
bcrypt (3.1.13)
|
||||
bcrypt-ruby (3.1.5)
|
||||
bcrypt (>= 3.1.3)
|
||||
blockenspiel (0.5.0)
|
||||
@@ -200,8 +169,6 @@ GEM
|
||||
builder (3.0.4)
|
||||
byebug (9.0.6)
|
||||
cancan (1.6.10)
|
||||
canonical-rails (0.1.0)
|
||||
rails (>= 3.1, < 5.1)
|
||||
capybara (2.18.0)
|
||||
addressable
|
||||
mini_mime (>= 0.1.3)
|
||||
@@ -211,9 +178,6 @@ GEM
|
||||
xpath (>= 2.0, < 4.0)
|
||||
childprocess (0.9.0)
|
||||
ffi (~> 1.0, >= 1.0.11)
|
||||
chromedriver-helper (1.1.0)
|
||||
archive-zip (~> 0.7.0)
|
||||
nokogiri (~> 1.6)
|
||||
chronic (0.10.2)
|
||||
chunky_png (1.3.10)
|
||||
climate_control (0.2.0)
|
||||
@@ -259,10 +223,13 @@ GEM
|
||||
activerecord (>= 3.2.0, < 5.0)
|
||||
fog (~> 1.0)
|
||||
rails (>= 3.2.0, < 5.0)
|
||||
ddtrace (0.26.0)
|
||||
msgpack
|
||||
debugger-linecache (1.2.0)
|
||||
deface (1.0.0)
|
||||
deface (1.0.2)
|
||||
colorize (>= 0.5.8)
|
||||
nokogiri (~> 1.6.0)
|
||||
polyglot
|
||||
rails (>= 3.1)
|
||||
delayed_job (4.1.5)
|
||||
activesupport (>= 3.0, < 5.3)
|
||||
@@ -279,11 +246,11 @@ GEM
|
||||
orm_adapter (~> 0.1)
|
||||
railties (~> 3.1)
|
||||
warden (~> 1.2.1)
|
||||
devise-encryptable (0.1.2)
|
||||
devise-encryptable (0.2.0)
|
||||
devise (>= 2.1.0)
|
||||
diff-lcs (1.3)
|
||||
diffy (3.3.0)
|
||||
docile (1.3.1)
|
||||
docile (1.3.2)
|
||||
dry-inflector (0.1.2)
|
||||
em-websocket (0.5.1)
|
||||
eventmachine (>= 0.12.9)
|
||||
@@ -460,7 +427,7 @@ GEM
|
||||
foundation-rails (5.5.2.1)
|
||||
railties (>= 3.1.0)
|
||||
sass (>= 3.3.0, < 3.5)
|
||||
fuubar (2.3.2)
|
||||
fuubar (2.4.1)
|
||||
rspec-core (~> 3.0)
|
||||
ruby-progressbar (~> 1.4)
|
||||
geocoder (1.1.8)
|
||||
@@ -489,23 +456,22 @@ GEM
|
||||
rspec (>= 2.99.0, < 4.0)
|
||||
haml (4.0.7)
|
||||
tilt
|
||||
hashdiff (0.3.7)
|
||||
hashdiff (1.0.0)
|
||||
highline (1.6.18)
|
||||
hike (1.2.3)
|
||||
http_parser.rb (0.6.0)
|
||||
httparty (0.16.2)
|
||||
multi_xml (>= 0.5.2)
|
||||
i18n (0.6.11)
|
||||
i18n-js (3.2.1)
|
||||
i18n-js (3.3.0)
|
||||
i18n (>= 0.6.6)
|
||||
immigrant (0.3.6)
|
||||
activerecord (>= 3.0)
|
||||
io-like (0.3.0)
|
||||
ipaddress (0.8.3)
|
||||
jaro_winkler (1.5.1)
|
||||
journey (1.0.4)
|
||||
jquery-migrate-rails (1.2.1)
|
||||
jquery-rails (3.0.0)
|
||||
jquery-rails (3.0.4)
|
||||
railties (>= 3.0, < 5.0)
|
||||
thor (>= 0.14, < 2.0)
|
||||
jquery-ui-rails (4.0.5)
|
||||
@@ -514,12 +480,12 @@ GEM
|
||||
json_spec (1.1.5)
|
||||
multi_json (~> 1.0)
|
||||
rspec (>= 2.0, < 4.0)
|
||||
jwt (2.1.0)
|
||||
jwt (2.2.1)
|
||||
kaminari (0.14.1)
|
||||
actionpack (>= 3.0.0)
|
||||
activesupport (>= 3.0.0)
|
||||
kgio (2.11.2)
|
||||
knapsack (1.17.1)
|
||||
knapsack (1.17.2)
|
||||
rake
|
||||
launchy (2.4.3)
|
||||
addressable (~> 2.3)
|
||||
@@ -541,11 +507,12 @@ GEM
|
||||
railties (>= 3.1)
|
||||
money (5.1.1)
|
||||
i18n (~> 0.6.0)
|
||||
msgpack (1.3.1)
|
||||
multi_json (1.13.1)
|
||||
multi_xml (0.6.0)
|
||||
multipart-post (2.0.0)
|
||||
multipart-post (2.1.1)
|
||||
nenv (0.3.0)
|
||||
net-http-persistent (3.0.0)
|
||||
net-http-persistent (3.0.1)
|
||||
connection_pool (~> 2.2)
|
||||
newrelic_rpm (3.18.1.330)
|
||||
nokogiri (1.6.8.1)
|
||||
@@ -591,11 +558,11 @@ GEM
|
||||
pry-byebug (3.4.3)
|
||||
byebug (>= 9.0, < 9.1)
|
||||
pry (~> 0.10)
|
||||
public_suffix (3.0.3)
|
||||
public_suffix (3.1.1)
|
||||
rabl (0.8.4)
|
||||
activesupport (>= 2.3.14)
|
||||
rack (1.4.7)
|
||||
rack-cache (1.8.0)
|
||||
rack-cache (1.9.0)
|
||||
rack (>= 0.4)
|
||||
rack-mini-profiler (0.10.7)
|
||||
rack (>= 1.2.0)
|
||||
@@ -617,6 +584,7 @@ GEM
|
||||
rails-i18n (3.0.1)
|
||||
i18n (~> 0.5)
|
||||
rails (>= 3.0.0, < 4.0.0)
|
||||
rails_safe_tasks (1.0.0)
|
||||
railties (3.2.22.5)
|
||||
actionpack (= 3.2.22.5)
|
||||
activesupport (= 3.2.22.5)
|
||||
@@ -626,7 +594,7 @@ GEM
|
||||
thor (>= 0.14.6, < 2.0)
|
||||
rainbow (3.0.0)
|
||||
raindrops (0.19.0)
|
||||
rake (12.3.2)
|
||||
rake (12.3.3)
|
||||
ransack (0.7.2)
|
||||
actionpack (~> 3.0)
|
||||
activerecord (~> 3.0)
|
||||
@@ -641,7 +609,7 @@ GEM
|
||||
trollop (~> 2.1)
|
||||
rdoc (3.12.2)
|
||||
json (~> 1.4)
|
||||
redcarpet (3.4.0)
|
||||
redcarpet (3.5.0)
|
||||
ref (2.0.0)
|
||||
request_store (1.4.1)
|
||||
rack (>= 1.4)
|
||||
@@ -690,10 +658,10 @@ GEM
|
||||
ruby-progressbar (~> 1.7)
|
||||
unicode-display_width (~> 1.0, >= 1.0.1)
|
||||
ruby-ole (1.2.12.1)
|
||||
ruby-progressbar (1.10.0)
|
||||
ruby-progressbar (1.10.1)
|
||||
ruby-rc4 (0.1.5)
|
||||
rubyzip (1.2.2)
|
||||
safe_yaml (1.0.4)
|
||||
safe_yaml (1.0.5)
|
||||
sass (3.3.14)
|
||||
sass-rails (3.2.6)
|
||||
railties (~> 3.2.0)
|
||||
@@ -708,7 +676,7 @@ GEM
|
||||
shellany (0.0.1)
|
||||
shoulda-matchers (2.8.0)
|
||||
activesupport (>= 3.0.0)
|
||||
simplecov (0.16.1)
|
||||
simplecov (0.17.0)
|
||||
docile (~> 1.1)
|
||||
json (>= 1.8, < 3)
|
||||
simplecov-html (~> 0.10.0)
|
||||
@@ -733,7 +701,7 @@ GEM
|
||||
tilt (~> 1.1, != 1.3.0)
|
||||
state_machine (1.2.0)
|
||||
stringex (1.5.1)
|
||||
stripe (4.11.0)
|
||||
stripe (4.19.0)
|
||||
faraday (~> 0.13)
|
||||
net-http-persistent (~> 3.0)
|
||||
therubyracer (0.12.0)
|
||||
@@ -754,7 +722,7 @@ GEM
|
||||
uglifier (4.1.20)
|
||||
execjs (>= 0.3.0, < 3)
|
||||
unicode-display_width (1.3.2)
|
||||
unicorn (5.5.0)
|
||||
unicorn (5.5.1)
|
||||
kgio (~> 2.6)
|
||||
raindrops (~> 0.7)
|
||||
unicorn-rails (2.2.1)
|
||||
@@ -767,10 +735,14 @@ GEM
|
||||
railties (>= 3.0)
|
||||
warden (1.2.7)
|
||||
rack (>= 1.0)
|
||||
webmock (3.5.1)
|
||||
webdrivers (3.8.1)
|
||||
nokogiri (~> 1.6)
|
||||
rubyzip (~> 1.0)
|
||||
selenium-webdriver (~> 3.0)
|
||||
webmock (3.6.2)
|
||||
addressable (>= 2.3.6)
|
||||
crack (>= 0.3.2)
|
||||
hashdiff
|
||||
hashdiff (>= 0.4.0, < 2.0.0)
|
||||
whenever (0.11.0)
|
||||
chronic (>= 0.6.3)
|
||||
wicked_pdf (1.1.0)
|
||||
@@ -785,6 +757,7 @@ PLATFORMS
|
||||
DEPENDENCIES
|
||||
active_model_serializers (= 0.8.4)
|
||||
activemerchant (~> 1.78)
|
||||
activerecord-import
|
||||
acts-as-taggable-on (~> 3.4)
|
||||
andand
|
||||
angular-rails-templates (~> 0.3.0)
|
||||
@@ -797,7 +770,6 @@ DEPENDENCIES
|
||||
bugsnag
|
||||
byebug (~> 9.0.0)
|
||||
capybara (>= 2.15.4)
|
||||
chromedriver-helper
|
||||
coffee-rails (~> 3.2.1)
|
||||
combine_pdf
|
||||
compass-rails
|
||||
@@ -806,10 +778,13 @@ DEPENDENCIES
|
||||
dalli
|
||||
database_cleaner (= 0.7.1)
|
||||
db2fog
|
||||
ddtrace
|
||||
debugger-linecache
|
||||
deface (= 1.0.0)
|
||||
deface (= 1.0.2)
|
||||
delayed_job_active_record
|
||||
delayed_job_web
|
||||
devise (~> 2.2.5)
|
||||
devise-encryptable (= 0.2.0)
|
||||
diffy
|
||||
eventmachine (>= 1.2.3)
|
||||
factory_bot_rails
|
||||
@@ -818,7 +793,7 @@ DEPENDENCIES
|
||||
foundation-icons-sass-rails
|
||||
foundation-rails
|
||||
foundation_rails_helper!
|
||||
fuubar (~> 2.3.2)
|
||||
fuubar (~> 2.4.1)
|
||||
geocoder
|
||||
gmaps4rails
|
||||
guard
|
||||
@@ -827,12 +802,12 @@ DEPENDENCIES
|
||||
guard-rspec (~> 4.7.3)
|
||||
haml
|
||||
i18n (~> 0.6.11)
|
||||
i18n-js (~> 3.2.1)
|
||||
i18n-js (~> 3.3.0)
|
||||
immigrant
|
||||
jquery-migrate-rails
|
||||
jquery-rails (= 3.0.0)
|
||||
jquery-rails (= 3.0.4)
|
||||
json_spec (~> 1.1.4)
|
||||
jwt (~> 2.1)
|
||||
jwt (~> 2.2)
|
||||
knapsack
|
||||
letter_opener (>= 1.4.1)
|
||||
listen (= 3.0.8)
|
||||
@@ -853,6 +828,7 @@ DEPENDENCIES
|
||||
rack-ssl
|
||||
rails (~> 3.2.22)
|
||||
rails-i18n (~> 3.0.0)
|
||||
rails_safe_tasks (~> 1.0)
|
||||
redcarpet
|
||||
roadie-rails (~> 1.1.1)
|
||||
roo (~> 2.7.0)
|
||||
@@ -868,8 +844,9 @@ DEPENDENCIES
|
||||
simplecov
|
||||
skylight (< 2.0)
|
||||
spinjs-rails
|
||||
spree!
|
||||
spree_auth_devise!
|
||||
spree_api!
|
||||
spree_backend!
|
||||
spree_core!
|
||||
spree_i18n!
|
||||
spree_paypal_express!
|
||||
spring (= 1.7.2)
|
||||
@@ -883,6 +860,7 @@ DEPENDENCIES
|
||||
unicorn
|
||||
unicorn-rails
|
||||
web!
|
||||
webdrivers (= 3.8.1)
|
||||
webmock
|
||||
whenever
|
||||
wicked_pdf
|
||||
|
||||
22
README.md
@@ -10,7 +10,6 @@ Supported by the Open Food Foundation and a network of global affiliates, we are
|
||||
|
||||
We're part of global movement - get involved!
|
||||
|
||||
* Fill in this [short survey][survey] to tell us who you are and what you want to do with OFN.
|
||||
* Join the conversation [on Slack][slack-invite]. Make sure you introduce yourself in the #general channel
|
||||
* Head to [https://openfoodnetwork.org](https://openfoodnetwork.org) for more information about the global OFN project.
|
||||
* Check out the [User Guide](https://guide.openfoodnetwork.org/) for a list of features and tutorials.
|
||||
@@ -28,28 +27,13 @@ If you're interested in provisioning a server, see [ofn-install][ofn-install] fo
|
||||
|
||||
We also have a [Super Admin Guide][super-admin-guide] to help with configuration of new servers.
|
||||
|
||||
## Testing
|
||||
|
||||
## Credits
|
||||
|
||||
* Andrew Spinks (http://github.com/andrewspinks)
|
||||
* Rohan Mitchell (http://github.com/rohanm)
|
||||
* Rob Harrington (http://github.com/oeoeaio)
|
||||
* Alex Serdyuk (http://github.com/alexs333)
|
||||
* David Cook (http://github.com/dacook)
|
||||
* Will Marshall (http://soundcloud.com/willmarshall)
|
||||
* Laura Summers (https://github.com/summerscope)
|
||||
* Maikel Linke (https://github.com/mkllnk)
|
||||
* Lynne Davis (https://github.com/lin-d-hop)
|
||||
* Paul Mackay (https://github.com/pmackay)
|
||||
* Steve Pettitt (https://github.com/stveep)
|
||||
* Matt Yorkley (https://github.com/Matt-Yorkley)
|
||||
* Pau Pérez (https://github.com/sauloperez)
|
||||
* Enrico Stano (https://github.com/enricostano)
|
||||
|
||||
We use [BrowserStack](https://www.browserstack.com/) as a manual testing tool. BrowserStack provides open source projects with unlimited and free of charge accounts. A big thanks to them!
|
||||
|
||||
## Licence
|
||||
|
||||
Copyright (c) 2012 - 2018 Open Food Foundation, released under the AGPL licence.
|
||||
Copyright (c) 2012 - 2019 Open Food Foundation, released under the AGPL licence.
|
||||
|
||||
[survey]: https://docs.google.com/a/eaterprises.com.au/forms/d/1zxR5vSiU9CigJ9cEaC8-eJLgYid8CR8er7PPH9Mc-30/edit#
|
||||
[slack-invite]: https://openfoodnetwork.org/slack-invite
|
||||
|
||||
BIN
app/assets/images/datepicker/cal.gif
Normal file
|
After Width: | Height: | Size: 127 B |
@@ -1,67 +1,110 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 17.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [
|
||||
<!ENTITY ns_extend "http://ns.adobe.com/Extensibility/1.0/">
|
||||
<!ENTITY ns_ai "http://ns.adobe.com/AdobeIllustrator/10.0/">
|
||||
<!ENTITY ns_graphs "http://ns.adobe.com/Graphs/1.0/">
|
||||
<!ENTITY ns_vars "http://ns.adobe.com/Variables/1.0/">
|
||||
<!ENTITY ns_imrep "http://ns.adobe.com/ImageReplacement/1.0/">
|
||||
<!ENTITY ns_sfw "http://ns.adobe.com/SaveForWeb/1.0/">
|
||||
<!ENTITY ns_custom "http://ns.adobe.com/GenericCustomNamespace/1.0/">
|
||||
<!ENTITY ns_adobe_xpath "http://ns.adobe.com/XPath/1.0/">
|
||||
]>
|
||||
<svg version="1.1" id="Layer_1" xmlns:x="&ns_extend;" xmlns:i="&ns_ai;" xmlns:graph="&ns_graphs;"
|
||||
xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="28px" height="33px"
|
||||
viewBox="0 0 28 33" enable-background="new 0 0 28 33" xml:space="preserve">
|
||||
<metadata>
|
||||
<sfw xmlns="&ns_sfw;">
|
||||
<slices></slices>
|
||||
<sliceSourceBounds height="96" width="16383" y="-85.5" x="-8112" bottomLeftOrigin="true"></sliceSourceBounds>
|
||||
</sfw>
|
||||
</metadata>
|
||||
<g>
|
||||
<path opacity="0.25" fill="#282828" d="M14,25c-6.059,0-10.988,1.679-10.988,3.333c0,2.485,10.307,4.542,10.746,4.643
|
||||
C13.828,32.992,13.914,33,14,33c0.084,0,0.17-0.008,0.239-0.023c0.439-0.099,10.749-2.114,10.749-4.643
|
||||
C24.988,26.679,20.059,25,14,25z"/>
|
||||
<g>
|
||||
<path fill="#FFFFFF" d="M14,0C6.28,0,0,6.717,0,13.332c0,9.941,13.132,18.169,13.691,18.572C13.78,31.968,13.891,32,14,32
|
||||
c0.107,0,0.217-0.031,0.305-0.094C14.864,31.511,28,23.45,28,13.332C28,6.717,21.72,0,14,0z"/>
|
||||
<g>
|
||||
<path fill="#0B8C61" d="M9.46,8.846L9.458,9.319l-0.003,2.397c1.098-0.034,2.3-0.052,3.438-0.052c0.201,0,0.401,0.001,0.6,0.002
|
||||
l-0.935-2.824L9.46,8.846z"/>
|
||||
<circle fill="#0B8C61" cx="8.728" cy="17.454" r="1.569"/>
|
||||
<path fill="#0B8C61" d="M12.395,17.13c-0.015-0.107-0.027-0.199-0.037-0.282c-0.047-0.382-0.165-0.741-0.325-1.075
|
||||
c-0.049-0.096-0.097-0.193-0.155-0.285c-0.038-0.063-0.078-0.124-0.119-0.184c-0.514-0.723-1.278-1.251-2.166-1.464
|
||||
c-0.202-0.04-0.409-0.061-0.619-0.061c-0.295,0-0.592,0.041-0.881,0.122c-0.276,0.077-0.487,0.112-0.685,0.112
|
||||
c-0.027,0-0.048-0.008-0.074-0.009C5.969,14.557,5,15.892,5,17.455c0,2.055,1.672,3.727,3.728,3.727
|
||||
c2.035,0,3.689-1.642,3.719-3.671l-0.041-0.296L12.395,17.13z M8.728,19.523c-1.142,0-2.07-0.928-2.07-2.069
|
||||
s0.928-2.07,2.07-2.07c1.141,0,2.069,0.929,2.069,2.07S9.869,19.523,8.728,19.523z"/>
|
||||
<circle fill="#0B8C61" cx="20.826" cy="19.013" r="1.006"/>
|
||||
<path fill="#0B8C61" d="M22.72,15.398c0.13-0.696,0.212-1.403,0.271-2.108c0.055-0.659-0.112-0.814-0.758-0.839
|
||||
c-0.961-0.034-1.848-0.071-2.808-0.109c-0.029-0.001-0.077-0.022-0.077-0.06c0-0.724,0.037-2.484,0.037-2.484
|
||||
S19.196,9.66,18.931,9.66c-0.116,0-0.247,0.026-0.383,0.103c0,0.821,0,1.654,0,2.527c0,0-1.172-0.031-2.844-0.065
|
||||
c-0.074-0.002-0.281-0.128-0.378-0.392c-0.251-0.694-0.8-2.045-1.52-4.126c0,0-0.373-0.888-1.316-0.888c-0.781,0-4.679,0-4.679,0
|
||||
v5.199c0,0-0.353,0.148-0.649,0.178c-0.078,0.472-0.067,0.711,0.115,0.784c0.46-0.15,0.942-0.252,1.451-0.252
|
||||
c0.389,0,0.761,0.061,1.122,0.149c1.119,0.237,2.101,0.923,2.748,1.879c0.034,0.048,0.064,0.097,0.096,0.147
|
||||
c0.094,0.151,0.179,0.306,0.255,0.47c0.083,0.167,0.154,0.338,0.217,0.515c0.004,0.012,0.008,0.024,0.011,0.037
|
||||
c0.127,0.368,0.206,0.754,0.238,1.156c0.101,0.014,0.196,0.036,0.289,0.036c0.007,0,0.013,0,0.02,0
|
||||
c2.176-0.056,4.355-0.06,6.529-0.169c-0.906,0.251-1.575,1.082-1.575,2.067c0,1.184,0.962,2.147,2.148,2.147
|
||||
c1.184,0,2.147-0.963,2.147-2.147c0-1.071-0.79-1.958-1.816-2.119C22.761,16.794,22.451,16.842,22.72,15.398z M12.893,12.163
|
||||
c-1.343,0-2.729,0.025-3.938,0.069l0.003-2.916l0.004-0.97l3.957-0.006l1.263,3.813l0.045,0.018
|
||||
C13.793,12.166,13.345,12.163,12.893,12.163z M22.082,19.013c0,0.693-0.564,1.257-1.256,1.257c-0.692,0-1.256-0.564-1.256-1.257
|
||||
c0-0.692,0.564-1.255,1.256-1.255C21.518,17.758,22.082,18.321,22.082,19.013z"/>
|
||||
<path fill="#0B8C61" d="M14,0C6.28,0,0,6.717,0,13.332c0,9.941,13.132,18.169,13.691,18.572C13.78,31.968,13.891,32,14,32
|
||||
c0.107,0,0.217-0.031,0.305-0.094C14.864,31.511,28,23.45,28,13.332C28,6.717,21.72,0,14,0z M23.973,19.013
|
||||
c0,1.735-1.412,3.147-3.147,3.147c-1.736,0-3.148-1.412-3.148-3.147c0-0.34,0.055-0.67,0.158-0.98
|
||||
c-0.652,0.016-1.301,0.027-1.94,0.039c-0.716,0.013-1.431,0.025-2.137,0.043l-0.037,0.001h-0.018
|
||||
c-0.102,0-0.208-0.014-0.315-0.03c-0.312,2.306-2.272,4.096-4.661,4.096C6.121,22.181,4,20.061,4,17.455
|
||||
c0-1.725,0.939-3.222,2.323-4.047c-0.278-0.463-0.209-1.002-0.148-1.375L6.3,11.276l0.511-0.051V6.819v-1h1h4.679
|
||||
c1.269,0,2.003,0.943,2.238,1.5l0.012,0.03l0.011,0.03c0.497,1.435,0.905,2.503,1.203,3.283c0.083,0.217,0.156,0.408,0.217,0.572
|
||||
c0.531,0.011,0.998,0.022,1.376,0.031V9.763V9.177l0.512-0.286c0.273-0.153,0.566-0.23,0.872-0.23
|
||||
c0.55,0,0.938,0.254,1.044,0.332l0.419,0.307l-0.011,0.52c0,0.001-0.017,0.815-0.028,1.56c0.635,0.025,1.257,0.05,1.916,0.073
|
||||
c0.277,0.011,0.925,0.036,1.358,0.525c0.384,0.434,0.393,0.974,0.358,1.396c-0.07,0.848-0.161,1.55-0.284,2.208
|
||||
c-0.04,0.216-0.066,0.397-0.089,0.547c-0.062,0.425-0.158,0.742-0.292,0.981C23.731,17.644,23.973,18.308,23.973,19.013z"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Generator: Adobe Illustrator 17.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
|
||||
<svg
|
||||
xmlns:ns="&ns_sfw;"
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
version="1.1"
|
||||
id="Layer_1"
|
||||
x="0px"
|
||||
y="0px"
|
||||
width="28px"
|
||||
height="33px"
|
||||
viewBox="0 0 28 33"
|
||||
enable-background="new 0 0 28 33"
|
||||
xml:space="preserve"
|
||||
sodipodi:docname="green_producer.svg"
|
||||
inkscape:version="0.92.3 (2405546, 2018-03-11)"><defs
|
||||
id="defs29" /><sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1803"
|
||||
inkscape:window-height="857"
|
||||
id="namedview27"
|
||||
showgrid="false"
|
||||
inkscape:zoom="17.609546"
|
||||
inkscape:cx="3.0055332"
|
||||
inkscape:cy="16.5"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="0"
|
||||
inkscape:window-maximized="0"
|
||||
inkscape:current-layer="g20" />
|
||||
<metadata
|
||||
id="metadata2">
|
||||
<ns:sfw>
|
||||
<ns:slices />
|
||||
<ns:sliceSourceBounds
|
||||
height="96"
|
||||
width="16383"
|
||||
y="-85.5"
|
||||
x="-8112"
|
||||
bottomLeftOrigin="true" />
|
||||
</ns:sfw>
|
||||
<rdf:RDF><cc:Work
|
||||
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata>
|
||||
<g
|
||||
id="g24">
|
||||
<path
|
||||
opacity="0.25"
|
||||
fill="#282828"
|
||||
d="M14,25c-6.059,0-10.988,1.679-10.988,3.333c0,2.485,10.307,4.542,10.746,4.643 C13.828,32.992,13.914,33,14,33c0.084,0,0.17-0.008,0.239-0.023c0.439-0.099,10.749-2.114,10.749-4.643 C24.988,26.679,20.059,25,14,25z"
|
||||
id="path4" />
|
||||
<g
|
||||
id="g22">
|
||||
<path
|
||||
fill="#FFFFFF"
|
||||
d="M14,0C6.28,0,0,6.717,0,13.332c0,9.941,13.132,18.169,13.691,18.572C13.78,31.968,13.891,32,14,32 c0.107,0,0.217-0.031,0.305-0.094C14.864,31.511,28,23.45,28,13.332C28,6.717,21.72,0,14,0z"
|
||||
id="path6" />
|
||||
<g
|
||||
id="g20">
|
||||
<path
|
||||
fill="#C1122B"
|
||||
d="M9.46,8.846L9.458,9.319l-0.003,2.397c1.098-0.034,2.3-0.052,3.438-0.052c0.201,0,0.401,0.001,0.6,0.002 l-0.935-2.824L9.46,8.846z"
|
||||
id="path8"
|
||||
style="fill:#0b8c61;fill-opacity:1" />
|
||||
<circle
|
||||
fill="#C1122B"
|
||||
cx="8.728"
|
||||
cy="17.454"
|
||||
r="1.569"
|
||||
id="circle10"
|
||||
style="fill:#0b8c61;fill-opacity:1" />
|
||||
<path
|
||||
fill="#C1122B"
|
||||
d="M12.395,17.13c-0.015-0.107-0.027-0.199-0.037-0.282c-0.047-0.382-0.165-0.741-0.325-1.075 c-0.049-0.096-0.097-0.193-0.155-0.285c-0.038-0.063-0.078-0.124-0.119-0.184c-0.514-0.723-1.278-1.251-2.166-1.464 c-0.202-0.04-0.409-0.061-0.619-0.061c-0.295,0-0.592,0.041-0.881,0.122c-0.276,0.077-0.487,0.112-0.685,0.112 c-0.027,0-0.048-0.008-0.074-0.009C5.969,14.557,5,15.892,5,17.455c0,2.055,1.672,3.727,3.728,3.727 c2.035,0,3.689-1.642,3.719-3.671l-0.041-0.296L12.395,17.13z M8.728,19.523c-1.142,0-2.07-0.928-2.07-2.069 s0.928-2.07,2.07-2.07c1.141,0,2.069,0.929,2.069,2.07S9.869,19.523,8.728,19.523z"
|
||||
id="path12"
|
||||
style="fill:#0b8c61;fill-opacity:1" />
|
||||
<circle
|
||||
fill="#C1122B"
|
||||
cx="20.826"
|
||||
cy="19.013"
|
||||
r="1.006"
|
||||
id="circle14"
|
||||
style="fill:#0b8c61;fill-opacity:1" />
|
||||
<path
|
||||
fill="#C1122B"
|
||||
d="M22.72,15.398c0.13-0.696,0.212-1.403,0.271-2.108c0.055-0.659-0.112-0.814-0.758-0.839 c-0.961-0.034-1.848-0.071-2.808-0.109c-0.029-0.001-0.077-0.022-0.077-0.06c0-0.724,0.037-2.484,0.037-2.484 S19.196,9.66,18.931,9.66c-0.116,0-0.247,0.026-0.383,0.103c0,0.821,0,1.654,0,2.527c0,0-1.172-0.031-2.844-0.065 c-0.074-0.002-0.281-0.128-0.378-0.392c-0.251-0.694-0.8-2.045-1.52-4.126c0,0-0.373-0.888-1.316-0.888c-0.781,0-4.679,0-4.679,0 v5.199c0,0-0.353,0.148-0.649,0.178c-0.078,0.472-0.067,0.711,0.115,0.784c0.46-0.15,0.942-0.252,1.451-0.252 c0.389,0,0.761,0.061,1.122,0.149c1.119,0.237,2.101,0.923,2.748,1.879c0.034,0.048,0.064,0.097,0.096,0.147 c0.094,0.151,0.179,0.306,0.255,0.47c0.083,0.167,0.154,0.338,0.217,0.515c0.004,0.012,0.008,0.024,0.011,0.037 c0.127,0.368,0.206,0.754,0.238,1.156c0.101,0.014,0.196,0.036,0.289,0.036c0.007,0,0.013,0,0.02,0 c2.176-0.056,4.355-0.06,6.529-0.169c-0.906,0.251-1.575,1.082-1.575,2.067c0,1.184,0.962,2.147,2.148,2.147 c1.184,0,2.147-0.963,2.147-2.147c0-1.071-0.79-1.958-1.816-2.119C22.761,16.794,22.451,16.842,22.72,15.398z M12.893,12.163 c-1.343,0-2.729,0.025-3.938,0.069l0.003-2.916l0.004-0.97l3.957-0.006l1.263,3.813l0.045,0.018 C13.793,12.166,13.345,12.163,12.893,12.163z M22.082,19.013c0,0.693-0.564,1.257-1.256,1.257c-0.692,0-1.256-0.564-1.256-1.257 c0-0.692,0.564-1.255,1.256-1.255C21.518,17.758,22.082,18.321,22.082,19.013z"
|
||||
id="path16"
|
||||
style="fill:#0b8c61;fill-opacity:1" />
|
||||
<path
|
||||
fill="#C1122B"
|
||||
d="M14,0C6.28,0,0,6.717,0,13.332c0,9.941,13.132,18.169,13.691,18.572C13.78,31.968,13.891,32,14,32 c0.107,0,0.217-0.031,0.305-0.094C14.864,31.511,28,23.45,28,13.332C28,6.717,21.72,0,14,0z M23.973,19.013 c0,1.735-1.412,3.147-3.147,3.147c-1.736,0-3.148-1.412-3.148-3.147c0-0.34,0.055-0.67,0.158-0.98 c-0.652,0.016-1.301,0.027-1.94,0.039c-0.716,0.013-1.431,0.025-2.137,0.043l-0.037,0.001h-0.018 c-0.102,0-0.208-0.014-0.315-0.03c-0.312,2.306-2.272,4.096-4.661,4.096C6.121,22.181,4,20.061,4,17.455 c0-1.725,0.939-3.222,2.323-4.047c-0.278-0.463-0.209-1.002-0.148-1.375L6.3,11.276l0.511-0.051V6.819v-1h1h4.679 c1.269,0,2.003,0.943,2.238,1.5l0.012,0.03l0.011,0.03c0.497,1.435,0.905,2.503,1.203,3.283c0.083,0.217,0.156,0.408,0.217,0.572 c0.531,0.011,0.998,0.022,1.376,0.031V9.763V9.177l0.512-0.286c0.273-0.153,0.566-0.23,0.872-0.23 c0.55,0,0.938,0.254,1.044,0.332l0.419,0.307l-0.011,0.52c0,0.001-0.017,0.815-0.028,1.56c0.635,0.025,1.257,0.05,1.916,0.073 c0.277,0.011,0.925,0.036,1.358,0.525c0.384,0.434,0.393,0.974,0.358,1.396c-0.07,0.848-0.161,1.55-0.284,2.208 c-0.04,0.216-0.066,0.397-0.089,0.547c-0.062,0.425-0.158,0.742-0.292,0.981C23.731,17.644,23.973,18.308,23.973,19.013z"
|
||||
id="path18"
|
||||
style="fill:#0b8c61;fill-opacity:1" />
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 5.3 KiB After Width: | Height: | Size: 6.1 KiB |
@@ -1,69 +1,110 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 17.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [
|
||||
<!ENTITY ns_extend "http://ns.adobe.com/Extensibility/1.0/">
|
||||
<!ENTITY ns_ai "http://ns.adobe.com/AdobeIllustrator/10.0/">
|
||||
<!ENTITY ns_graphs "http://ns.adobe.com/Graphs/1.0/">
|
||||
<!ENTITY ns_vars "http://ns.adobe.com/Variables/1.0/">
|
||||
<!ENTITY ns_imrep "http://ns.adobe.com/ImageReplacement/1.0/">
|
||||
<!ENTITY ns_sfw "http://ns.adobe.com/SaveForWeb/1.0/">
|
||||
<!ENTITY ns_custom "http://ns.adobe.com/GenericCustomNamespace/1.0/">
|
||||
<!ENTITY ns_adobe_xpath "http://ns.adobe.com/XPath/1.0/">
|
||||
]>
|
||||
<svg version="1.1" id="Layer_1" xmlns:x="&ns_extend;" xmlns:i="&ns_ai;" xmlns:graph="&ns_graphs;"
|
||||
xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="28px" height="33px"
|
||||
viewBox="0 0 28 33" enable-background="new 0 0 28 33" xml:space="preserve">
|
||||
<metadata>
|
||||
<sfw xmlns="&ns_sfw;">
|
||||
<slices></slices>
|
||||
<sliceSourceBounds height="96" width="16383" y="-85.5" x="-8112" bottomLeftOrigin="true"></sliceSourceBounds>
|
||||
</sfw>
|
||||
</metadata>
|
||||
<g>
|
||||
<path opacity="0.25" fill="#282828" d="M14,25c-6.059,0-10.988,1.679-10.988,3.333c0,2.485,10.307,4.542,10.746,4.643
|
||||
C13.828,32.992,13.914,33,14,33c0.084,0,0.17-0.008,0.239-0.023c0.439-0.099,10.749-2.114,10.749-4.643
|
||||
C24.988,26.679,20.059,25,14,25z"/>
|
||||
<g>
|
||||
<path fill="#FFFFFF" d="M14,0C6.28,0,0,6.717,0,13.332c0,9.941,13.132,18.169,13.691,18.572C13.78,31.968,13.891,32,14,32
|
||||
c0.107,0,0.217-0.031,0.305-0.094C14.864,31.511,28,23.45,28,13.332C28,6.717,21.72,0,14,0z"/>
|
||||
<g>
|
||||
<path fill="#0B8C61" d="M14,0C6.28,0,0,6.717,0,13.333c0,9.941,13.132,18.169,13.691,18.571C13.78,31.968,13.891,32,14,32
|
||||
c0.107,0,0.217-0.031,0.305-0.094C14.864,31.511,28,23.45,28,13.333C28,6.717,21.72,0,14,0z M14.002,30.908
|
||||
C10.865,28.805,1,21.533,1,13.333C1,7.511,6.56,1,14,1c7.44,0,13,6.511,13,12.333C27,21.682,17.14,28.843,14.002,30.908z"/>
|
||||
<path fill="#0B8C61" d="M23.703,15.582c0.123-0.658,0.214-1.36,0.284-2.208c0.035-0.422,0.026-0.962-0.358-1.396
|
||||
c-0.433-0.489-1.081-0.514-1.358-0.525c-0.659-0.024-1.281-0.048-1.916-0.073c0.011-0.745,0.028-1.56,0.028-1.56l0.011-0.52
|
||||
l-0.419-0.307c-0.106-0.078-0.495-0.332-1.044-0.332c-0.306,0-0.599,0.077-0.872,0.23l-0.512,0.286v0.586v1.502
|
||||
c-0.378-0.009-0.845-0.02-1.376-0.031c-0.062-0.164-0.135-0.355-0.217-0.572c-0.298-0.78-0.706-1.847-1.203-3.283l-0.011-0.03
|
||||
l-0.013-0.03c-0.234-0.557-0.969-1.5-2.238-1.5H7.811h-1v1v4.407L6.3,11.276l-0.125,0.757c-0.061,0.373-0.13,0.911,0.148,1.375
|
||||
C4.939,14.233,4,15.729,4,17.455c0,2.606,2.121,4.727,4.728,4.727c2.39,0,4.349-1.79,4.661-4.096
|
||||
c0.107,0.016,0.212,0.03,0.315,0.03h0.018l0.037-0.001c0.706-0.018,1.421-0.031,2.137-0.043c0.639-0.011,1.288-0.023,1.94-0.039
|
||||
c-0.103,0.311-0.158,0.641-0.158,0.98c0,1.735,1.412,3.147,3.148,3.147c1.736,0,3.147-1.412,3.147-3.147
|
||||
c0-0.706-0.242-1.369-0.651-1.903c0.135-0.239,0.23-0.556,0.292-0.981C23.636,15.978,23.662,15.798,23.703,15.582z M8.728,21.181
|
||||
C6.672,21.181,5,19.51,5,17.455c0-1.562,0.969-2.898,2.335-3.451c0.026,0.001,0.046,0.009,0.074,0.009
|
||||
c0.197,0,0.409-0.034,0.685-0.112c0.289-0.081,0.586-0.122,0.881-0.122c0.21,0,0.417,0.021,0.619,0.061
|
||||
c0.888,0.213,1.652,0.741,2.166,1.464c0.041,0.06,0.082,0.121,0.119,0.184c0.057,0.091,0.105,0.188,0.155,0.285
|
||||
c0.16,0.334,0.279,0.693,0.325,1.075c0.009,0.083,0.022,0.176,0.037,0.283l0.011,0.082l0.041,0.296
|
||||
C12.417,19.539,10.763,21.181,8.728,21.181z M22.973,19.013c0,1.184-0.964,2.147-2.147,2.147c-1.186,0-2.148-0.963-2.148-2.147
|
||||
c0-0.985,0.669-1.815,1.575-2.067c-2.174,0.109-4.353,0.113-6.529,0.169c-0.007,0-0.013,0-0.02,0
|
||||
c-0.092,0-0.188-0.022-0.289-0.036c-0.032-0.402-0.111-0.788-0.238-1.156c-0.004-0.012-0.007-0.024-0.011-0.037
|
||||
c-0.063-0.177-0.134-0.348-0.217-0.515c-0.076-0.163-0.161-0.318-0.255-0.469c-0.032-0.05-0.062-0.099-0.096-0.147
|
||||
c-0.646-0.956-1.628-1.642-2.748-1.879c-0.362-0.089-0.734-0.149-1.122-0.149c-0.509,0-0.991,0.102-1.451,0.252
|
||||
c-0.181-0.073-0.192-0.312-0.115-0.784c0.296-0.029,0.649-0.178,0.649-0.178V6.819c0,0,3.899,0,4.679,0
|
||||
c0.943,0,1.316,0.888,1.316,0.888c0.72,2.081,1.269,3.432,1.52,4.126c0.097,0.264,0.303,0.39,0.378,0.392
|
||||
c1.672,0.035,2.844,0.065,2.844,0.065c0-0.873,0-1.706,0-2.527c0.136-0.076,0.267-0.103,0.383-0.103
|
||||
c0.265,0,0.453,0.138,0.453,0.138s-0.037,1.76-0.037,2.484c0,0.038,0.048,0.059,0.077,0.06c0.961,0.038,1.848,0.075,2.808,0.109
|
||||
c0.646,0.025,0.813,0.18,0.758,0.839c-0.059,0.705-0.14,1.412-0.271,2.108c-0.269,1.444,0.042,1.395-1.562,1.496
|
||||
C22.183,17.055,22.973,17.943,22.973,19.013z"/>
|
||||
<path fill="#0B8C61" d="M19.57,19.013c0,0.693,0.564,1.257,1.256,1.257c0.692,0,1.256-0.564,1.256-1.257
|
||||
c0-0.692-0.564-1.255-1.256-1.255C20.134,17.758,19.57,18.321,19.57,19.013z M21.832,19.013c0,0.555-0.451,1.007-1.006,1.007
|
||||
c-0.555,0-1.006-0.452-1.006-1.007c0-0.554,0.451-1.005,1.006-1.005C21.381,18.008,21.832,18.459,21.832,19.013z"/>
|
||||
<path fill="#0B8C61" d="M12.919,8.341L8.961,8.347l-0.004,0.97l-0.003,2.916c1.209-0.044,2.595-0.069,3.939-0.069
|
||||
c0.452,0,0.9,0.003,1.334,0.009l-0.045-0.018L12.919,8.341z M12.893,11.663c-1.138,0-2.34,0.018-3.438,0.052l0.003-2.397
|
||||
L9.46,8.846l3.098-0.005l0.935,2.824C13.294,11.664,13.094,11.663,12.893,11.663z"/>
|
||||
<path fill="#0B8C61" d="M8.728,15.385c-1.142,0-2.07,0.929-2.07,2.07s0.928,2.069,2.07,2.069c1.141,0,2.069-0.928,2.069-2.069
|
||||
S9.869,15.385,8.728,15.385z M8.728,19.023c-0.865,0-1.57-0.704-1.57-1.569c0-0.866,0.704-1.57,1.57-1.57
|
||||
c0.865,0,1.569,0.704,1.569,1.57C10.297,18.32,9.593,19.023,8.728,19.023z"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Generator: Adobe Illustrator 17.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
|
||||
<svg
|
||||
xmlns:ns="&ns_sfw;"
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
version="1.1"
|
||||
id="Layer_1"
|
||||
x="0px"
|
||||
y="0px"
|
||||
width="28px"
|
||||
height="33px"
|
||||
viewBox="0 0 28 33"
|
||||
enable-background="new 0 0 28 33"
|
||||
xml:space="preserve"
|
||||
sodipodi:docname="green_producer.svg"
|
||||
inkscape:version="0.92.3 (2405546, 2018-03-11)"><defs
|
||||
id="defs29" /><sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1803"
|
||||
inkscape:window-height="857"
|
||||
id="namedview27"
|
||||
showgrid="false"
|
||||
inkscape:zoom="17.609546"
|
||||
inkscape:cx="3.0055332"
|
||||
inkscape:cy="16.5"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="0"
|
||||
inkscape:window-maximized="0"
|
||||
inkscape:current-layer="g20" />
|
||||
<metadata
|
||||
id="metadata2">
|
||||
<ns:sfw>
|
||||
<ns:slices />
|
||||
<ns:sliceSourceBounds
|
||||
height="96"
|
||||
width="16383"
|
||||
y="-85.5"
|
||||
x="-8112"
|
||||
bottomLeftOrigin="true" />
|
||||
</ns:sfw>
|
||||
<rdf:RDF><cc:Work
|
||||
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata>
|
||||
<g
|
||||
id="g24">
|
||||
<path
|
||||
opacity="0.25"
|
||||
fill="#282828"
|
||||
d="M14,25c-6.059,0-10.988,1.679-10.988,3.333c0,2.485,10.307,4.542,10.746,4.643 C13.828,32.992,13.914,33,14,33c0.084,0,0.17-0.008,0.239-0.023c0.439-0.099,10.749-2.114,10.749-4.643 C24.988,26.679,20.059,25,14,25z"
|
||||
id="path4" />
|
||||
<g
|
||||
id="g22">
|
||||
<path
|
||||
fill="#FFFFFF"
|
||||
d="M14,0C6.28,0,0,6.717,0,13.332c0,9.941,13.132,18.169,13.691,18.572C13.78,31.968,13.891,32,14,32 c0.107,0,0.217-0.031,0.305-0.094C14.864,31.511,28,23.45,28,13.332C28,6.717,21.72,0,14,0z"
|
||||
id="path6" />
|
||||
<g
|
||||
id="g20">
|
||||
<path
|
||||
fill="#C1122B"
|
||||
d="M9.46,8.846L9.458,9.319l-0.003,2.397c1.098-0.034,2.3-0.052,3.438-0.052c0.201,0,0.401,0.001,0.6,0.002 l-0.935-2.824L9.46,8.846z"
|
||||
id="path8"
|
||||
style="fill:#0b8c61;fill-opacity:1" />
|
||||
<circle
|
||||
fill="#C1122B"
|
||||
cx="8.728"
|
||||
cy="17.454"
|
||||
r="1.569"
|
||||
id="circle10"
|
||||
style="fill:#0b8c61;fill-opacity:1" />
|
||||
<path
|
||||
fill="#C1122B"
|
||||
d="M12.395,17.13c-0.015-0.107-0.027-0.199-0.037-0.282c-0.047-0.382-0.165-0.741-0.325-1.075 c-0.049-0.096-0.097-0.193-0.155-0.285c-0.038-0.063-0.078-0.124-0.119-0.184c-0.514-0.723-1.278-1.251-2.166-1.464 c-0.202-0.04-0.409-0.061-0.619-0.061c-0.295,0-0.592,0.041-0.881,0.122c-0.276,0.077-0.487,0.112-0.685,0.112 c-0.027,0-0.048-0.008-0.074-0.009C5.969,14.557,5,15.892,5,17.455c0,2.055,1.672,3.727,3.728,3.727 c2.035,0,3.689-1.642,3.719-3.671l-0.041-0.296L12.395,17.13z M8.728,19.523c-1.142,0-2.07-0.928-2.07-2.069 s0.928-2.07,2.07-2.07c1.141,0,2.069,0.929,2.069,2.07S9.869,19.523,8.728,19.523z"
|
||||
id="path12"
|
||||
style="fill:#0b8c61;fill-opacity:1" />
|
||||
<circle
|
||||
fill="#C1122B"
|
||||
cx="20.826"
|
||||
cy="19.013"
|
||||
r="1.006"
|
||||
id="circle14"
|
||||
style="fill:#0b8c61;fill-opacity:1" />
|
||||
<path
|
||||
fill="#C1122B"
|
||||
d="M22.72,15.398c0.13-0.696,0.212-1.403,0.271-2.108c0.055-0.659-0.112-0.814-0.758-0.839 c-0.961-0.034-1.848-0.071-2.808-0.109c-0.029-0.001-0.077-0.022-0.077-0.06c0-0.724,0.037-2.484,0.037-2.484 S19.196,9.66,18.931,9.66c-0.116,0-0.247,0.026-0.383,0.103c0,0.821,0,1.654,0,2.527c0,0-1.172-0.031-2.844-0.065 c-0.074-0.002-0.281-0.128-0.378-0.392c-0.251-0.694-0.8-2.045-1.52-4.126c0,0-0.373-0.888-1.316-0.888c-0.781,0-4.679,0-4.679,0 v5.199c0,0-0.353,0.148-0.649,0.178c-0.078,0.472-0.067,0.711,0.115,0.784c0.46-0.15,0.942-0.252,1.451-0.252 c0.389,0,0.761,0.061,1.122,0.149c1.119,0.237,2.101,0.923,2.748,1.879c0.034,0.048,0.064,0.097,0.096,0.147 c0.094,0.151,0.179,0.306,0.255,0.47c0.083,0.167,0.154,0.338,0.217,0.515c0.004,0.012,0.008,0.024,0.011,0.037 c0.127,0.368,0.206,0.754,0.238,1.156c0.101,0.014,0.196,0.036,0.289,0.036c0.007,0,0.013,0,0.02,0 c2.176-0.056,4.355-0.06,6.529-0.169c-0.906,0.251-1.575,1.082-1.575,2.067c0,1.184,0.962,2.147,2.148,2.147 c1.184,0,2.147-0.963,2.147-2.147c0-1.071-0.79-1.958-1.816-2.119C22.761,16.794,22.451,16.842,22.72,15.398z M12.893,12.163 c-1.343,0-2.729,0.025-3.938,0.069l0.003-2.916l0.004-0.97l3.957-0.006l1.263,3.813l0.045,0.018 C13.793,12.166,13.345,12.163,12.893,12.163z M22.082,19.013c0,0.693-0.564,1.257-1.256,1.257c-0.692,0-1.256-0.564-1.256-1.257 c0-0.692,0.564-1.255,1.256-1.255C21.518,17.758,22.082,18.321,22.082,19.013z"
|
||||
id="path16"
|
||||
style="fill:#0b8c61;fill-opacity:1" />
|
||||
<path
|
||||
fill="#C1122B"
|
||||
d="M14,0C6.28,0,0,6.717,0,13.332c0,9.941,13.132,18.169,13.691,18.572C13.78,31.968,13.891,32,14,32 c0.107,0,0.217-0.031,0.305-0.094C14.864,31.511,28,23.45,28,13.332C28,6.717,21.72,0,14,0z M23.973,19.013 c0,1.735-1.412,3.147-3.147,3.147c-1.736,0-3.148-1.412-3.148-3.147c0-0.34,0.055-0.67,0.158-0.98 c-0.652,0.016-1.301,0.027-1.94,0.039c-0.716,0.013-1.431,0.025-2.137,0.043l-0.037,0.001h-0.018 c-0.102,0-0.208-0.014-0.315-0.03c-0.312,2.306-2.272,4.096-4.661,4.096C6.121,22.181,4,20.061,4,17.455 c0-1.725,0.939-3.222,2.323-4.047c-0.278-0.463-0.209-1.002-0.148-1.375L6.3,11.276l0.511-0.051V6.819v-1h1h4.679 c1.269,0,2.003,0.943,2.238,1.5l0.012,0.03l0.011,0.03c0.497,1.435,0.905,2.503,1.203,3.283c0.083,0.217,0.156,0.408,0.217,0.572 c0.531,0.011,0.998,0.022,1.376,0.031V9.763V9.177l0.512-0.286c0.273-0.153,0.566-0.23,0.872-0.23 c0.55,0,0.938,0.254,1.044,0.332l0.419,0.307l-0.011,0.52c0,0.001-0.017,0.815-0.028,1.56c0.635,0.025,1.257,0.05,1.916,0.073 c0.277,0.011,0.925,0.036,1.358,0.525c0.384,0.434,0.393,0.974,0.358,1.396c-0.07,0.848-0.161,1.55-0.284,2.208 c-0.04,0.216-0.066,0.397-0.089,0.547c-0.062,0.425-0.158,0.742-0.292,0.981C23.731,17.644,23.973,18.308,23.973,19.013z"
|
||||
id="path18"
|
||||
style="fill:#0b8c61;fill-opacity:1" />
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 5.6 KiB After Width: | Height: | Size: 6.1 KiB |
@@ -1,67 +1,110 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 17.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [
|
||||
<!ENTITY ns_extend "http://ns.adobe.com/Extensibility/1.0/">
|
||||
<!ENTITY ns_ai "http://ns.adobe.com/AdobeIllustrator/10.0/">
|
||||
<!ENTITY ns_graphs "http://ns.adobe.com/Graphs/1.0/">
|
||||
<!ENTITY ns_vars "http://ns.adobe.com/Variables/1.0/">
|
||||
<!ENTITY ns_imrep "http://ns.adobe.com/ImageReplacement/1.0/">
|
||||
<!ENTITY ns_sfw "http://ns.adobe.com/SaveForWeb/1.0/">
|
||||
<!ENTITY ns_custom "http://ns.adobe.com/GenericCustomNamespace/1.0/">
|
||||
<!ENTITY ns_adobe_xpath "http://ns.adobe.com/XPath/1.0/">
|
||||
]>
|
||||
<svg version="1.1" id="Layer_1" xmlns:x="&ns_extend;" xmlns:i="&ns_ai;" xmlns:graph="&ns_graphs;"
|
||||
xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="28px" height="33px"
|
||||
viewBox="0 0 28 33" enable-background="new 0 0 28 33" xml:space="preserve">
|
||||
<metadata>
|
||||
<sfw xmlns="&ns_sfw;">
|
||||
<slices></slices>
|
||||
<sliceSourceBounds height="96" width="16383" y="-85.5" x="-8112" bottomLeftOrigin="true"></sliceSourceBounds>
|
||||
</sfw>
|
||||
</metadata>
|
||||
<g>
|
||||
<path opacity="0.25" fill="#282828" d="M14,25c-6.059,0-10.988,1.679-10.988,3.333c0,2.485,10.307,4.542,10.746,4.643
|
||||
C13.828,32.992,13.914,33,14,33c0.084,0,0.17-0.008,0.239-0.023c0.439-0.099,10.749-2.114,10.749-4.643
|
||||
C24.988,26.679,20.059,25,14,25z"/>
|
||||
<g>
|
||||
<path fill="#FFFFFF" d="M14,0C6.28,0,0,6.717,0,13.332c0,9.941,13.132,18.169,13.691,18.572C13.78,31.968,13.891,32,14,32
|
||||
c0.107,0,0.217-0.031,0.305-0.094C14.864,31.511,28,23.45,28,13.332C28,6.717,21.72,0,14,0z"/>
|
||||
<g>
|
||||
<path fill="#C1122B" d="M9.46,8.846L9.458,9.319l-0.003,2.397c1.098-0.034,2.3-0.052,3.438-0.052c0.201,0,0.401,0.001,0.6,0.002
|
||||
l-0.935-2.824L9.46,8.846z"/>
|
||||
<circle fill="#C1122B" cx="8.728" cy="17.454" r="1.569"/>
|
||||
<path fill="#C1122B" d="M12.395,17.13c-0.015-0.107-0.027-0.199-0.037-0.282c-0.047-0.382-0.165-0.741-0.325-1.075
|
||||
c-0.049-0.096-0.097-0.193-0.155-0.285c-0.038-0.063-0.078-0.124-0.119-0.184c-0.514-0.723-1.278-1.251-2.166-1.464
|
||||
c-0.202-0.04-0.409-0.061-0.619-0.061c-0.295,0-0.592,0.041-0.881,0.122c-0.276,0.077-0.487,0.112-0.685,0.112
|
||||
c-0.027,0-0.048-0.008-0.074-0.009C5.969,14.557,5,15.892,5,17.455c0,2.055,1.672,3.727,3.728,3.727
|
||||
c2.035,0,3.689-1.642,3.719-3.671l-0.041-0.296L12.395,17.13z M8.728,19.523c-1.142,0-2.07-0.928-2.07-2.069
|
||||
s0.928-2.07,2.07-2.07c1.141,0,2.069,0.929,2.069,2.07S9.869,19.523,8.728,19.523z"/>
|
||||
<circle fill="#C1122B" cx="20.826" cy="19.013" r="1.006"/>
|
||||
<path fill="#C1122B" d="M22.72,15.398c0.13-0.696,0.212-1.403,0.271-2.108c0.055-0.659-0.112-0.814-0.758-0.839
|
||||
c-0.961-0.034-1.848-0.071-2.808-0.109c-0.029-0.001-0.077-0.022-0.077-0.06c0-0.724,0.037-2.484,0.037-2.484
|
||||
S19.196,9.66,18.931,9.66c-0.116,0-0.247,0.026-0.383,0.103c0,0.821,0,1.654,0,2.527c0,0-1.172-0.031-2.844-0.065
|
||||
c-0.074-0.002-0.281-0.128-0.378-0.392c-0.251-0.694-0.8-2.045-1.52-4.126c0,0-0.373-0.888-1.316-0.888c-0.781,0-4.679,0-4.679,0
|
||||
v5.199c0,0-0.353,0.148-0.649,0.178c-0.078,0.472-0.067,0.711,0.115,0.784c0.46-0.15,0.942-0.252,1.451-0.252
|
||||
c0.389,0,0.761,0.061,1.122,0.149c1.119,0.237,2.101,0.923,2.748,1.879c0.034,0.048,0.064,0.097,0.096,0.147
|
||||
c0.094,0.151,0.179,0.306,0.255,0.47c0.083,0.167,0.154,0.338,0.217,0.515c0.004,0.012,0.008,0.024,0.011,0.037
|
||||
c0.127,0.368,0.206,0.754,0.238,1.156c0.101,0.014,0.196,0.036,0.289,0.036c0.007,0,0.013,0,0.02,0
|
||||
c2.176-0.056,4.355-0.06,6.529-0.169c-0.906,0.251-1.575,1.082-1.575,2.067c0,1.184,0.962,2.147,2.148,2.147
|
||||
c1.184,0,2.147-0.963,2.147-2.147c0-1.071-0.79-1.958-1.816-2.119C22.761,16.794,22.451,16.842,22.72,15.398z M12.893,12.163
|
||||
c-1.343,0-2.729,0.025-3.938,0.069l0.003-2.916l0.004-0.97l3.957-0.006l1.263,3.813l0.045,0.018
|
||||
C13.793,12.166,13.345,12.163,12.893,12.163z M22.082,19.013c0,0.693-0.564,1.257-1.256,1.257c-0.692,0-1.256-0.564-1.256-1.257
|
||||
c0-0.692,0.564-1.255,1.256-1.255C21.518,17.758,22.082,18.321,22.082,19.013z"/>
|
||||
<path fill="#C1122B" d="M14,0C6.28,0,0,6.717,0,13.332c0,9.941,13.132,18.169,13.691,18.572C13.78,31.968,13.891,32,14,32
|
||||
c0.107,0,0.217-0.031,0.305-0.094C14.864,31.511,28,23.45,28,13.332C28,6.717,21.72,0,14,0z M23.973,19.013
|
||||
c0,1.735-1.412,3.147-3.147,3.147c-1.736,0-3.148-1.412-3.148-3.147c0-0.34,0.055-0.67,0.158-0.98
|
||||
c-0.652,0.016-1.301,0.027-1.94,0.039c-0.716,0.013-1.431,0.025-2.137,0.043l-0.037,0.001h-0.018
|
||||
c-0.102,0-0.208-0.014-0.315-0.03c-0.312,2.306-2.272,4.096-4.661,4.096C6.121,22.181,4,20.061,4,17.455
|
||||
c0-1.725,0.939-3.222,2.323-4.047c-0.278-0.463-0.209-1.002-0.148-1.375L6.3,11.276l0.511-0.051V6.819v-1h1h4.679
|
||||
c1.269,0,2.003,0.943,2.238,1.5l0.012,0.03l0.011,0.03c0.497,1.435,0.905,2.503,1.203,3.283c0.083,0.217,0.156,0.408,0.217,0.572
|
||||
c0.531,0.011,0.998,0.022,1.376,0.031V9.763V9.177l0.512-0.286c0.273-0.153,0.566-0.23,0.872-0.23
|
||||
c0.55,0,0.938,0.254,1.044,0.332l0.419,0.307l-0.011,0.52c0,0.001-0.017,0.815-0.028,1.56c0.635,0.025,1.257,0.05,1.916,0.073
|
||||
c0.277,0.011,0.925,0.036,1.358,0.525c0.384,0.434,0.393,0.974,0.358,1.396c-0.07,0.848-0.161,1.55-0.284,2.208
|
||||
c-0.04,0.216-0.066,0.397-0.089,0.547c-0.062,0.425-0.158,0.742-0.292,0.981C23.731,17.644,23.973,18.308,23.973,19.013z"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Generator: Adobe Illustrator 17.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
|
||||
<svg
|
||||
xmlns:ns="&ns_sfw;"
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
version="1.1"
|
||||
id="Layer_1"
|
||||
x="0px"
|
||||
y="0px"
|
||||
width="28px"
|
||||
height="33px"
|
||||
viewBox="0 0 28 33"
|
||||
enable-background="new 0 0 28 33"
|
||||
xml:space="preserve"
|
||||
sodipodi:docname="green_producer.svg"
|
||||
inkscape:version="0.92.3 (2405546, 2018-03-11)"><defs
|
||||
id="defs29" /><sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1803"
|
||||
inkscape:window-height="857"
|
||||
id="namedview27"
|
||||
showgrid="false"
|
||||
inkscape:zoom="17.609546"
|
||||
inkscape:cx="3.0055332"
|
||||
inkscape:cy="16.5"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="0"
|
||||
inkscape:window-maximized="0"
|
||||
inkscape:current-layer="g20" />
|
||||
<metadata
|
||||
id="metadata2">
|
||||
<ns:sfw>
|
||||
<ns:slices />
|
||||
<ns:sliceSourceBounds
|
||||
height="96"
|
||||
width="16383"
|
||||
y="-85.5"
|
||||
x="-8112"
|
||||
bottomLeftOrigin="true" />
|
||||
</ns:sfw>
|
||||
<rdf:RDF><cc:Work
|
||||
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata>
|
||||
<g
|
||||
id="g24">
|
||||
<path
|
||||
opacity="0.25"
|
||||
fill="#282828"
|
||||
d="M14,25c-6.059,0-10.988,1.679-10.988,3.333c0,2.485,10.307,4.542,10.746,4.643 C13.828,32.992,13.914,33,14,33c0.084,0,0.17-0.008,0.239-0.023c0.439-0.099,10.749-2.114,10.749-4.643 C24.988,26.679,20.059,25,14,25z"
|
||||
id="path4" />
|
||||
<g
|
||||
id="g22">
|
||||
<path
|
||||
fill="#FFFFFF"
|
||||
d="M14,0C6.28,0,0,6.717,0,13.332c0,9.941,13.132,18.169,13.691,18.572C13.78,31.968,13.891,32,14,32 c0.107,0,0.217-0.031,0.305-0.094C14.864,31.511,28,23.45,28,13.332C28,6.717,21.72,0,14,0z"
|
||||
id="path6" />
|
||||
<g
|
||||
id="g20">
|
||||
<path
|
||||
fill="#C1122B"
|
||||
d="M9.46,8.846L9.458,9.319l-0.003,2.397c1.098-0.034,2.3-0.052,3.438-0.052c0.201,0,0.401,0.001,0.6,0.002 l-0.935-2.824L9.46,8.846z"
|
||||
id="path8"
|
||||
style="fill:#0b8c61;fill-opacity:1" />
|
||||
<circle
|
||||
fill="#C1122B"
|
||||
cx="8.728"
|
||||
cy="17.454"
|
||||
r="1.569"
|
||||
id="circle10"
|
||||
style="fill:#0b8c61;fill-opacity:1" />
|
||||
<path
|
||||
fill="#C1122B"
|
||||
d="M12.395,17.13c-0.015-0.107-0.027-0.199-0.037-0.282c-0.047-0.382-0.165-0.741-0.325-1.075 c-0.049-0.096-0.097-0.193-0.155-0.285c-0.038-0.063-0.078-0.124-0.119-0.184c-0.514-0.723-1.278-1.251-2.166-1.464 c-0.202-0.04-0.409-0.061-0.619-0.061c-0.295,0-0.592,0.041-0.881,0.122c-0.276,0.077-0.487,0.112-0.685,0.112 c-0.027,0-0.048-0.008-0.074-0.009C5.969,14.557,5,15.892,5,17.455c0,2.055,1.672,3.727,3.728,3.727 c2.035,0,3.689-1.642,3.719-3.671l-0.041-0.296L12.395,17.13z M8.728,19.523c-1.142,0-2.07-0.928-2.07-2.069 s0.928-2.07,2.07-2.07c1.141,0,2.069,0.929,2.069,2.07S9.869,19.523,8.728,19.523z"
|
||||
id="path12"
|
||||
style="fill:#0b8c61;fill-opacity:1" />
|
||||
<circle
|
||||
fill="#C1122B"
|
||||
cx="20.826"
|
||||
cy="19.013"
|
||||
r="1.006"
|
||||
id="circle14"
|
||||
style="fill:#0b8c61;fill-opacity:1" />
|
||||
<path
|
||||
fill="#C1122B"
|
||||
d="M22.72,15.398c0.13-0.696,0.212-1.403,0.271-2.108c0.055-0.659-0.112-0.814-0.758-0.839 c-0.961-0.034-1.848-0.071-2.808-0.109c-0.029-0.001-0.077-0.022-0.077-0.06c0-0.724,0.037-2.484,0.037-2.484 S19.196,9.66,18.931,9.66c-0.116,0-0.247,0.026-0.383,0.103c0,0.821,0,1.654,0,2.527c0,0-1.172-0.031-2.844-0.065 c-0.074-0.002-0.281-0.128-0.378-0.392c-0.251-0.694-0.8-2.045-1.52-4.126c0,0-0.373-0.888-1.316-0.888c-0.781,0-4.679,0-4.679,0 v5.199c0,0-0.353,0.148-0.649,0.178c-0.078,0.472-0.067,0.711,0.115,0.784c0.46-0.15,0.942-0.252,1.451-0.252 c0.389,0,0.761,0.061,1.122,0.149c1.119,0.237,2.101,0.923,2.748,1.879c0.034,0.048,0.064,0.097,0.096,0.147 c0.094,0.151,0.179,0.306,0.255,0.47c0.083,0.167,0.154,0.338,0.217,0.515c0.004,0.012,0.008,0.024,0.011,0.037 c0.127,0.368,0.206,0.754,0.238,1.156c0.101,0.014,0.196,0.036,0.289,0.036c0.007,0,0.013,0,0.02,0 c2.176-0.056,4.355-0.06,6.529-0.169c-0.906,0.251-1.575,1.082-1.575,2.067c0,1.184,0.962,2.147,2.148,2.147 c1.184,0,2.147-0.963,2.147-2.147c0-1.071-0.79-1.958-1.816-2.119C22.761,16.794,22.451,16.842,22.72,15.398z M12.893,12.163 c-1.343,0-2.729,0.025-3.938,0.069l0.003-2.916l0.004-0.97l3.957-0.006l1.263,3.813l0.045,0.018 C13.793,12.166,13.345,12.163,12.893,12.163z M22.082,19.013c0,0.693-0.564,1.257-1.256,1.257c-0.692,0-1.256-0.564-1.256-1.257 c0-0.692,0.564-1.255,1.256-1.255C21.518,17.758,22.082,18.321,22.082,19.013z"
|
||||
id="path16"
|
||||
style="fill:#0b8c61;fill-opacity:1" />
|
||||
<path
|
||||
fill="#C1122B"
|
||||
d="M14,0C6.28,0,0,6.717,0,13.332c0,9.941,13.132,18.169,13.691,18.572C13.78,31.968,13.891,32,14,32 c0.107,0,0.217-0.031,0.305-0.094C14.864,31.511,28,23.45,28,13.332C28,6.717,21.72,0,14,0z M23.973,19.013 c0,1.735-1.412,3.147-3.147,3.147c-1.736,0-3.148-1.412-3.148-3.147c0-0.34,0.055-0.67,0.158-0.98 c-0.652,0.016-1.301,0.027-1.94,0.039c-0.716,0.013-1.431,0.025-2.137,0.043l-0.037,0.001h-0.018 c-0.102,0-0.208-0.014-0.315-0.03c-0.312,2.306-2.272,4.096-4.661,4.096C6.121,22.181,4,20.061,4,17.455 c0-1.725,0.939-3.222,2.323-4.047c-0.278-0.463-0.209-1.002-0.148-1.375L6.3,11.276l0.511-0.051V6.819v-1h1h4.679 c1.269,0,2.003,0.943,2.238,1.5l0.012,0.03l0.011,0.03c0.497,1.435,0.905,2.503,1.203,3.283c0.083,0.217,0.156,0.408,0.217,0.572 c0.531,0.011,0.998,0.022,1.376,0.031V9.763V9.177l0.512-0.286c0.273-0.153,0.566-0.23,0.872-0.23 c0.55,0,0.938,0.254,1.044,0.332l0.419,0.307l-0.011,0.52c0,0.001-0.017,0.815-0.028,1.56c0.635,0.025,1.257,0.05,1.916,0.073 c0.277,0.011,0.925,0.036,1.358,0.525c0.384,0.434,0.393,0.974,0.358,1.396c-0.07,0.848-0.161,1.55-0.284,2.208 c-0.04,0.216-0.066,0.397-0.089,0.547c-0.062,0.425-0.158,0.742-0.292,0.981C23.731,17.644,23.973,18.308,23.973,19.013z"
|
||||
id="path18"
|
||||
style="fill:#0b8c61;fill-opacity:1" />
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 5.3 KiB After Width: | Height: | Size: 6.1 KiB |
@@ -1,69 +1,110 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 17.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [
|
||||
<!ENTITY ns_extend "http://ns.adobe.com/Extensibility/1.0/">
|
||||
<!ENTITY ns_ai "http://ns.adobe.com/AdobeIllustrator/10.0/">
|
||||
<!ENTITY ns_graphs "http://ns.adobe.com/Graphs/1.0/">
|
||||
<!ENTITY ns_vars "http://ns.adobe.com/Variables/1.0/">
|
||||
<!ENTITY ns_imrep "http://ns.adobe.com/ImageReplacement/1.0/">
|
||||
<!ENTITY ns_sfw "http://ns.adobe.com/SaveForWeb/1.0/">
|
||||
<!ENTITY ns_custom "http://ns.adobe.com/GenericCustomNamespace/1.0/">
|
||||
<!ENTITY ns_adobe_xpath "http://ns.adobe.com/XPath/1.0/">
|
||||
]>
|
||||
<svg version="1.1" id="Layer_1" xmlns:x="&ns_extend;" xmlns:i="&ns_ai;" xmlns:graph="&ns_graphs;"
|
||||
xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="28px" height="33px"
|
||||
viewBox="0 0 28 33" enable-background="new 0 0 28 33" xml:space="preserve">
|
||||
<metadata>
|
||||
<sfw xmlns="&ns_sfw;">
|
||||
<slices></slices>
|
||||
<sliceSourceBounds height="96" width="16383" y="-85.5" x="-8112" bottomLeftOrigin="true"></sliceSourceBounds>
|
||||
</sfw>
|
||||
</metadata>
|
||||
<g>
|
||||
<path opacity="0.25" fill="#282828" d="M14,25c-6.059,0-10.988,1.679-10.988,3.333c0,2.485,10.307,4.542,10.746,4.643
|
||||
C13.828,32.992,13.914,33,14,33c0.084,0,0.17-0.008,0.239-0.023c0.439-0.099,10.749-2.114,10.749-4.643
|
||||
C24.988,26.679,20.059,25,14,25z"/>
|
||||
<g>
|
||||
<path fill="#FFFFFF" d="M14,0C6.28,0,0,6.717,0,13.332c0,9.941,13.132,18.169,13.691,18.572C13.78,31.968,13.891,32,14,32
|
||||
c0.107,0,0.217-0.031,0.305-0.094C14.864,31.511,28,23.45,28,13.332C28,6.717,21.72,0,14,0z"/>
|
||||
<g>
|
||||
<path fill="#C1122B" d="M14,0C6.28,0,0,6.717,0,13.333c0,9.941,13.132,18.169,13.691,18.571C13.78,31.968,13.891,32,14,32
|
||||
c0.107,0,0.217-0.031,0.305-0.094C14.864,31.511,28,23.45,28,13.333C28,6.717,21.72,0,14,0z M14.002,30.908
|
||||
C10.865,28.805,1,21.533,1,13.333C1,7.511,6.56,1,14,1c7.44,0,13,6.511,13,12.333C27,21.682,17.14,28.843,14.002,30.908z"/>
|
||||
<path fill="#C1122B" d="M23.703,15.582c0.123-0.658,0.214-1.36,0.284-2.208c0.035-0.422,0.026-0.962-0.358-1.396
|
||||
c-0.433-0.489-1.081-0.514-1.358-0.525c-0.659-0.024-1.281-0.048-1.916-0.073c0.011-0.745,0.028-1.56,0.028-1.56l0.011-0.52
|
||||
l-0.419-0.307c-0.106-0.078-0.495-0.332-1.044-0.332c-0.306,0-0.599,0.077-0.872,0.23l-0.512,0.286v0.586v1.502
|
||||
c-0.378-0.009-0.845-0.02-1.376-0.031c-0.062-0.164-0.135-0.355-0.217-0.572c-0.298-0.78-0.706-1.847-1.203-3.283l-0.011-0.03
|
||||
l-0.013-0.03c-0.234-0.557-0.969-1.5-2.238-1.5H7.811h-1v1v4.407L6.3,11.276l-0.125,0.757c-0.061,0.373-0.13,0.911,0.148,1.375
|
||||
C4.939,14.233,4,15.729,4,17.455c0,2.606,2.121,4.727,4.728,4.727c2.39,0,4.349-1.79,4.661-4.096
|
||||
c0.107,0.016,0.212,0.03,0.315,0.03h0.018l0.037-0.001c0.706-0.018,1.421-0.031,2.137-0.043c0.639-0.011,1.288-0.023,1.94-0.039
|
||||
c-0.103,0.311-0.158,0.641-0.158,0.98c0,1.735,1.412,3.147,3.148,3.147c1.736,0,3.147-1.412,3.147-3.147
|
||||
c0-0.706-0.242-1.369-0.651-1.903c0.135-0.239,0.23-0.556,0.292-0.981C23.636,15.978,23.662,15.798,23.703,15.582z M8.728,21.181
|
||||
C6.672,21.181,5,19.51,5,17.455c0-1.562,0.969-2.898,2.335-3.451c0.026,0.001,0.046,0.009,0.074,0.009
|
||||
c0.197,0,0.409-0.034,0.685-0.112c0.289-0.081,0.586-0.122,0.881-0.122c0.21,0,0.417,0.021,0.619,0.061
|
||||
c0.888,0.213,1.652,0.741,2.166,1.464c0.041,0.06,0.082,0.121,0.119,0.184c0.057,0.091,0.105,0.188,0.155,0.285
|
||||
c0.16,0.334,0.279,0.693,0.325,1.075c0.009,0.083,0.022,0.176,0.037,0.283l0.011,0.082l0.041,0.296
|
||||
C12.417,19.539,10.763,21.181,8.728,21.181z M22.973,19.013c0,1.184-0.964,2.147-2.147,2.147c-1.186,0-2.148-0.963-2.148-2.147
|
||||
c0-0.985,0.669-1.815,1.575-2.067c-2.174,0.109-4.353,0.113-6.529,0.169c-0.007,0-0.013,0-0.02,0
|
||||
c-0.092,0-0.188-0.022-0.289-0.036c-0.032-0.402-0.111-0.788-0.238-1.156c-0.004-0.012-0.007-0.024-0.011-0.037
|
||||
c-0.063-0.177-0.134-0.348-0.217-0.515c-0.076-0.163-0.161-0.318-0.255-0.469c-0.032-0.05-0.062-0.099-0.096-0.147
|
||||
c-0.646-0.956-1.628-1.642-2.748-1.879c-0.362-0.089-0.734-0.149-1.122-0.149c-0.509,0-0.991,0.102-1.451,0.252
|
||||
c-0.181-0.073-0.192-0.312-0.115-0.784c0.296-0.029,0.649-0.178,0.649-0.178V6.819c0,0,3.899,0,4.679,0
|
||||
c0.943,0,1.316,0.888,1.316,0.888c0.72,2.081,1.269,3.432,1.52,4.126c0.097,0.264,0.303,0.39,0.378,0.392
|
||||
c1.672,0.035,2.844,0.065,2.844,0.065c0-0.873,0-1.706,0-2.527c0.136-0.076,0.267-0.103,0.383-0.103
|
||||
c0.265,0,0.453,0.138,0.453,0.138s-0.037,1.76-0.037,2.484c0,0.038,0.048,0.059,0.077,0.06c0.961,0.038,1.848,0.075,2.808,0.109
|
||||
c0.646,0.025,0.813,0.18,0.758,0.839c-0.059,0.705-0.14,1.412-0.271,2.108c-0.269,1.444,0.042,1.395-1.562,1.496
|
||||
C22.183,17.055,22.973,17.943,22.973,19.013z"/>
|
||||
<path fill="#C1122B" d="M19.57,19.013c0,0.693,0.564,1.257,1.256,1.257c0.692,0,1.256-0.564,1.256-1.257
|
||||
c0-0.692-0.564-1.255-1.256-1.255C20.134,17.758,19.57,18.321,19.57,19.013z M21.832,19.013c0,0.555-0.451,1.007-1.006,1.007
|
||||
c-0.555,0-1.006-0.452-1.006-1.007c0-0.554,0.451-1.005,1.006-1.005C21.381,18.008,21.832,18.459,21.832,19.013z"/>
|
||||
<path fill="#C1122B" d="M12.919,8.341L8.961,8.347l-0.004,0.97l-0.003,2.916c1.209-0.044,2.595-0.069,3.939-0.069
|
||||
c0.452,0,0.9,0.003,1.334,0.009l-0.045-0.018L12.919,8.341z M12.893,11.663c-1.138,0-2.34,0.018-3.438,0.052l0.003-2.397
|
||||
L9.46,8.846l3.098-0.005l0.935,2.824C13.294,11.664,13.094,11.663,12.893,11.663z"/>
|
||||
<path fill="#C1122B" d="M8.728,15.385c-1.142,0-2.07,0.929-2.07,2.07s0.928,2.069,2.07,2.069c1.141,0,2.069-0.928,2.069-2.069
|
||||
S9.869,15.385,8.728,15.385z M8.728,19.023c-0.865,0-1.57-0.704-1.57-1.569c0-0.866,0.704-1.57,1.57-1.57
|
||||
c0.865,0,1.569,0.704,1.569,1.57C10.297,18.32,9.593,19.023,8.728,19.023z"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Generator: Adobe Illustrator 17.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
|
||||
<svg
|
||||
xmlns:ns="&ns_sfw;"
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
version="1.1"
|
||||
id="Layer_1"
|
||||
x="0px"
|
||||
y="0px"
|
||||
width="28px"
|
||||
height="33px"
|
||||
viewBox="0 0 28 33"
|
||||
enable-background="new 0 0 28 33"
|
||||
xml:space="preserve"
|
||||
sodipodi:docname="green_producer.svg"
|
||||
inkscape:version="0.92.3 (2405546, 2018-03-11)"><defs
|
||||
id="defs29" /><sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1803"
|
||||
inkscape:window-height="857"
|
||||
id="namedview27"
|
||||
showgrid="false"
|
||||
inkscape:zoom="17.609546"
|
||||
inkscape:cx="3.0055332"
|
||||
inkscape:cy="16.5"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="0"
|
||||
inkscape:window-maximized="0"
|
||||
inkscape:current-layer="g20" />
|
||||
<metadata
|
||||
id="metadata2">
|
||||
<ns:sfw>
|
||||
<ns:slices />
|
||||
<ns:sliceSourceBounds
|
||||
height="96"
|
||||
width="16383"
|
||||
y="-85.5"
|
||||
x="-8112"
|
||||
bottomLeftOrigin="true" />
|
||||
</ns:sfw>
|
||||
<rdf:RDF><cc:Work
|
||||
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata>
|
||||
<g
|
||||
id="g24">
|
||||
<path
|
||||
opacity="0.25"
|
||||
fill="#282828"
|
||||
d="M14,25c-6.059,0-10.988,1.679-10.988,3.333c0,2.485,10.307,4.542,10.746,4.643 C13.828,32.992,13.914,33,14,33c0.084,0,0.17-0.008,0.239-0.023c0.439-0.099,10.749-2.114,10.749-4.643 C24.988,26.679,20.059,25,14,25z"
|
||||
id="path4" />
|
||||
<g
|
||||
id="g22">
|
||||
<path
|
||||
fill="#FFFFFF"
|
||||
d="M14,0C6.28,0,0,6.717,0,13.332c0,9.941,13.132,18.169,13.691,18.572C13.78,31.968,13.891,32,14,32 c0.107,0,0.217-0.031,0.305-0.094C14.864,31.511,28,23.45,28,13.332C28,6.717,21.72,0,14,0z"
|
||||
id="path6" />
|
||||
<g
|
||||
id="g20">
|
||||
<path
|
||||
fill="#C1122B"
|
||||
d="M9.46,8.846L9.458,9.319l-0.003,2.397c1.098-0.034,2.3-0.052,3.438-0.052c0.201,0,0.401,0.001,0.6,0.002 l-0.935-2.824L9.46,8.846z"
|
||||
id="path8"
|
||||
style="fill:#0b8c61;fill-opacity:1" />
|
||||
<circle
|
||||
fill="#C1122B"
|
||||
cx="8.728"
|
||||
cy="17.454"
|
||||
r="1.569"
|
||||
id="circle10"
|
||||
style="fill:#0b8c61;fill-opacity:1" />
|
||||
<path
|
||||
fill="#C1122B"
|
||||
d="M12.395,17.13c-0.015-0.107-0.027-0.199-0.037-0.282c-0.047-0.382-0.165-0.741-0.325-1.075 c-0.049-0.096-0.097-0.193-0.155-0.285c-0.038-0.063-0.078-0.124-0.119-0.184c-0.514-0.723-1.278-1.251-2.166-1.464 c-0.202-0.04-0.409-0.061-0.619-0.061c-0.295,0-0.592,0.041-0.881,0.122c-0.276,0.077-0.487,0.112-0.685,0.112 c-0.027,0-0.048-0.008-0.074-0.009C5.969,14.557,5,15.892,5,17.455c0,2.055,1.672,3.727,3.728,3.727 c2.035,0,3.689-1.642,3.719-3.671l-0.041-0.296L12.395,17.13z M8.728,19.523c-1.142,0-2.07-0.928-2.07-2.069 s0.928-2.07,2.07-2.07c1.141,0,2.069,0.929,2.069,2.07S9.869,19.523,8.728,19.523z"
|
||||
id="path12"
|
||||
style="fill:#0b8c61;fill-opacity:1" />
|
||||
<circle
|
||||
fill="#C1122B"
|
||||
cx="20.826"
|
||||
cy="19.013"
|
||||
r="1.006"
|
||||
id="circle14"
|
||||
style="fill:#0b8c61;fill-opacity:1" />
|
||||
<path
|
||||
fill="#C1122B"
|
||||
d="M22.72,15.398c0.13-0.696,0.212-1.403,0.271-2.108c0.055-0.659-0.112-0.814-0.758-0.839 c-0.961-0.034-1.848-0.071-2.808-0.109c-0.029-0.001-0.077-0.022-0.077-0.06c0-0.724,0.037-2.484,0.037-2.484 S19.196,9.66,18.931,9.66c-0.116,0-0.247,0.026-0.383,0.103c0,0.821,0,1.654,0,2.527c0,0-1.172-0.031-2.844-0.065 c-0.074-0.002-0.281-0.128-0.378-0.392c-0.251-0.694-0.8-2.045-1.52-4.126c0,0-0.373-0.888-1.316-0.888c-0.781,0-4.679,0-4.679,0 v5.199c0,0-0.353,0.148-0.649,0.178c-0.078,0.472-0.067,0.711,0.115,0.784c0.46-0.15,0.942-0.252,1.451-0.252 c0.389,0,0.761,0.061,1.122,0.149c1.119,0.237,2.101,0.923,2.748,1.879c0.034,0.048,0.064,0.097,0.096,0.147 c0.094,0.151,0.179,0.306,0.255,0.47c0.083,0.167,0.154,0.338,0.217,0.515c0.004,0.012,0.008,0.024,0.011,0.037 c0.127,0.368,0.206,0.754,0.238,1.156c0.101,0.014,0.196,0.036,0.289,0.036c0.007,0,0.013,0,0.02,0 c2.176-0.056,4.355-0.06,6.529-0.169c-0.906,0.251-1.575,1.082-1.575,2.067c0,1.184,0.962,2.147,2.148,2.147 c1.184,0,2.147-0.963,2.147-2.147c0-1.071-0.79-1.958-1.816-2.119C22.761,16.794,22.451,16.842,22.72,15.398z M12.893,12.163 c-1.343,0-2.729,0.025-3.938,0.069l0.003-2.916l0.004-0.97l3.957-0.006l1.263,3.813l0.045,0.018 C13.793,12.166,13.345,12.163,12.893,12.163z M22.082,19.013c0,0.693-0.564,1.257-1.256,1.257c-0.692,0-1.256-0.564-1.256-1.257 c0-0.692,0.564-1.255,1.256-1.255C21.518,17.758,22.082,18.321,22.082,19.013z"
|
||||
id="path16"
|
||||
style="fill:#0b8c61;fill-opacity:1" />
|
||||
<path
|
||||
fill="#C1122B"
|
||||
d="M14,0C6.28,0,0,6.717,0,13.332c0,9.941,13.132,18.169,13.691,18.572C13.78,31.968,13.891,32,14,32 c0.107,0,0.217-0.031,0.305-0.094C14.864,31.511,28,23.45,28,13.332C28,6.717,21.72,0,14,0z M23.973,19.013 c0,1.735-1.412,3.147-3.147,3.147c-1.736,0-3.148-1.412-3.148-3.147c0-0.34,0.055-0.67,0.158-0.98 c-0.652,0.016-1.301,0.027-1.94,0.039c-0.716,0.013-1.431,0.025-2.137,0.043l-0.037,0.001h-0.018 c-0.102,0-0.208-0.014-0.315-0.03c-0.312,2.306-2.272,4.096-4.661,4.096C6.121,22.181,4,20.061,4,17.455 c0-1.725,0.939-3.222,2.323-4.047c-0.278-0.463-0.209-1.002-0.148-1.375L6.3,11.276l0.511-0.051V6.819v-1h1h4.679 c1.269,0,2.003,0.943,2.238,1.5l0.012,0.03l0.011,0.03c0.497,1.435,0.905,2.503,1.203,3.283c0.083,0.217,0.156,0.408,0.217,0.572 c0.531,0.011,0.998,0.022,1.376,0.031V9.763V9.177l0.512-0.286c0.273-0.153,0.566-0.23,0.872-0.23 c0.55,0,0.938,0.254,1.044,0.332l0.419,0.307l-0.011,0.52c0,0.001-0.017,0.815-0.028,1.56c0.635,0.025,1.257,0.05,1.916,0.073 c0.277,0.011,0.925,0.036,1.358,0.525c0.384,0.434,0.393,0.974,0.358,1.396c-0.07,0.848-0.161,1.55-0.284,2.208 c-0.04,0.216-0.066,0.397-0.089,0.547c-0.062,0.425-0.158,0.742-0.292,0.981C23.731,17.644,23.973,18.308,23.973,19.013z"
|
||||
id="path18"
|
||||
style="fill:#0b8c61;fill-opacity:1" />
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 5.6 KiB After Width: | Height: | Size: 6.1 KiB |
@@ -1,51 +1,96 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 17.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [
|
||||
<!ENTITY ns_extend "http://ns.adobe.com/Extensibility/1.0/">
|
||||
<!ENTITY ns_ai "http://ns.adobe.com/AdobeIllustrator/10.0/">
|
||||
<!ENTITY ns_graphs "http://ns.adobe.com/Graphs/1.0/">
|
||||
<!ENTITY ns_vars "http://ns.adobe.com/Variables/1.0/">
|
||||
<!ENTITY ns_imrep "http://ns.adobe.com/ImageReplacement/1.0/">
|
||||
<!ENTITY ns_sfw "http://ns.adobe.com/SaveForWeb/1.0/">
|
||||
<!ENTITY ns_custom "http://ns.adobe.com/GenericCustomNamespace/1.0/">
|
||||
<!ENTITY ns_adobe_xpath "http://ns.adobe.com/XPath/1.0/">
|
||||
]>
|
||||
<svg version="1.1" id="Layer_1" xmlns:x="&ns_extend;" xmlns:i="&ns_ai;" xmlns:graph="&ns_graphs;"
|
||||
xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="28px" height="33px"
|
||||
viewBox="0 0 28 33" enable-background="new 0 0 28 33" xml:space="preserve">
|
||||
<metadata>
|
||||
<sfw xmlns="&ns_sfw;">
|
||||
<slices></slices>
|
||||
<sliceSourceBounds height="96" width="16383" y="-85.5" x="-8112" bottomLeftOrigin="true"></sliceSourceBounds>
|
||||
</sfw>
|
||||
</metadata>
|
||||
<g>
|
||||
<path opacity="0.25" fill="#282828" d="M14,25c-6.059,0-10.988,1.679-10.988,3.333c0,2.485,10.307,4.542,10.746,4.643
|
||||
C13.828,32.992,13.914,33,14,33c0.084,0,0.17-0.008,0.239-0.023c0.439-0.099,10.749-2.114,10.749-4.643
|
||||
C24.988,26.679,20.059,25,14,25z"/>
|
||||
<g>
|
||||
<path fill="#FFFFFF" d="M14,0C6.28,0,0,6.717,0,13.332c0,9.941,13.132,18.169,13.691,18.572C13.78,31.968,13.891,32,14,32
|
||||
c0.107,0,0.217-0.031,0.305-0.094C14.864,31.511,28,23.45,28,13.332C28,6.717,21.72,0,14,0z"/>
|
||||
<g>
|
||||
<path fill="#C1122B" d="M13.999,8.546c-1.24,0-2.249,1.009-2.249,2.248c0,1.242,1.009,2.253,2.249,2.253
|
||||
c1.241,0,2.251-1.01,2.251-2.253C16.25,9.555,15.24,8.546,13.999,8.546z"/>
|
||||
<path fill="#C1122B" d="M14,6.348c-2.453,0-4.448,1.995-4.448,4.448c0,0.859,0.468,3.112,3.602,8.541l0.387,0.671l0.134,0.225
|
||||
l0.09,0.15l0.043,0.072l0.085,0.144l0.108,0.178l0.104-0.172l0.036-0.061l0.088-0.149l0.032-0.054l0.19-0.319l0.395-0.685
|
||||
c3.134-5.44,3.602-7.687,3.602-8.542C18.448,8.343,16.452,6.348,14,6.348z M13.999,13.797c-1.654,0-2.999-1.347-2.999-3.003
|
||||
c0-1.655,1.346-2.998,2.999-2.998c1.655,0,3.001,1.345,3.001,2.998C17,12.451,15.654,13.797,13.999,13.797z"/>
|
||||
<path fill="#C1122B" d="M14,0C6.28,0,0,6.717,0,13.333c0,9.941,13.132,18.169,13.691,18.571C13.78,31.968,13.891,32,14,32
|
||||
c0.107,0,0.217-0.031,0.305-0.094C14.864,31.511,28,23.45,28,13.333C28,6.717,21.72,0,14,0z M19.336,22.021
|
||||
c-0.002,1.728-2.686,2.632-5.337,2.632c-2.652,0-5.337-0.905-5.337-2.634c0-1.158,1.352-2.099,3.465-2.462
|
||||
c-1.721-3.01-3.577-6.721-3.577-8.76c0-3.004,2.444-5.448,5.448-5.448s5.448,2.444,5.449,5.447c0,2.036-1.858,5.75-3.578,8.762
|
||||
C17.984,19.92,19.336,20.86,19.336,22.021z"/>
|
||||
<path fill="#C1122B" d="M15.175,20.763c-0.029,0.048-0.059,0.1-0.088,0.148c-0.04,0.068-0.084,0.142-0.121,0.204
|
||||
c-0.111,0.184-0.206,0.339-0.293,0.483c-0.021,0.03-0.042,0.066-0.061,0.096c-0.081,0.133-0.142,0.231-0.194,0.313
|
||||
c-0.015,0.025-0.032,0.054-0.045,0.073c-0.052,0.082-0.08,0.125-0.08,0.125l-0.295,0.463l-0.293-0.463
|
||||
c0,0-0.031-0.048-0.085-0.134c-0.006-0.009-0.013-0.023-0.019-0.029c-0.053-0.086-0.123-0.198-0.212-0.345
|
||||
c-0.025-0.038-0.052-0.086-0.079-0.127c-0.083-0.136-0.17-0.278-0.274-0.448c-0.042-0.072-0.089-0.15-0.134-0.225
|
||||
c-0.026-0.044-0.053-0.09-0.078-0.132l-0.381,0.061c-1.729,0.277-2.477,0.925-2.477,1.195c0,0.172,0.269,0.481,0.859,0.754
|
||||
c0.8,0.37,1.926,0.574,3.172,0.574c2.608,0,4.031-0.878,4.031-1.329c0-0.269-0.748-0.917-2.476-1.195L15.175,20.763z"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Generator: Adobe Illustrator 17.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
|
||||
<svg
|
||||
xmlns:ns="&ns_sfw;"
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
version="1.1"
|
||||
id="Layer_1"
|
||||
x="0px"
|
||||
y="0px"
|
||||
width="28px"
|
||||
height="33px"
|
||||
viewBox="0 0 28 33"
|
||||
enable-background="new 0 0 28 33"
|
||||
xml:space="preserve"
|
||||
sodipodi:docname="green_hub.svg"
|
||||
inkscape:version="0.92.3 (2405546, 2018-03-11)"><defs
|
||||
id="defs25" /><sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1041"
|
||||
inkscape:window-height="590"
|
||||
id="namedview23"
|
||||
showgrid="false"
|
||||
inkscape:zoom="7.1515152"
|
||||
inkscape:cx="-9.0021186"
|
||||
inkscape:cy="16.5"
|
||||
inkscape:window-x="752"
|
||||
inkscape:window-y="122"
|
||||
inkscape:window-maximized="0"
|
||||
inkscape:current-layer="g16" />
|
||||
<metadata
|
||||
id="metadata2">
|
||||
<ns:sfw>
|
||||
<ns:slices />
|
||||
<ns:sliceSourceBounds
|
||||
height="96"
|
||||
width="16383"
|
||||
y="-85.5"
|
||||
x="-8112"
|
||||
bottomLeftOrigin="true" />
|
||||
</ns:sfw>
|
||||
<rdf:RDF><cc:Work
|
||||
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata>
|
||||
<g
|
||||
id="g20">
|
||||
<path
|
||||
opacity="0.25"
|
||||
fill="#282828"
|
||||
d="M14,25c-6.059,0-10.988,1.679-10.988,3.333c0,2.485,10.307,4.542,10.746,4.643 C13.828,32.992,13.914,33,14,33c0.084,0,0.17-0.008,0.239-0.023c0.439-0.099,10.749-2.114,10.749-4.643 C24.988,26.679,20.059,25,14,25z"
|
||||
id="path4" />
|
||||
<g
|
||||
id="g18">
|
||||
<path
|
||||
fill="#FFFFFF"
|
||||
d="M14,0C6.28,0,0,6.717,0,13.332c0,9.941,13.132,18.169,13.691,18.572C13.78,31.968,13.891,32,14,32 c0.107,0,0.217-0.031,0.305-0.094C14.864,31.511,28,23.45,28,13.332C28,6.717,21.72,0,14,0z"
|
||||
id="path6" />
|
||||
<g
|
||||
id="g16">
|
||||
<path
|
||||
fill="#C1122B"
|
||||
d="M13.999,8.546c-1.24,0-2.249,1.009-2.249,2.248c0,1.242,1.009,2.253,2.249,2.253 c1.241,0,2.251-1.01,2.251-2.253C16.25,9.555,15.24,8.546,13.999,8.546z"
|
||||
id="path8"
|
||||
style="fill:#0b8c61;fill-opacity:1" />
|
||||
<path
|
||||
fill="#C1122B"
|
||||
d="M14,6.348c-2.453,0-4.448,1.995-4.448,4.448c0,0.859,0.468,3.112,3.602,8.541l0.387,0.671l0.134,0.225 l0.09,0.15l0.043,0.072l0.085,0.144l0.108,0.178l0.104-0.172l0.036-0.061l0.088-0.149l0.032-0.054l0.19-0.319l0.395-0.685 c3.134-5.44,3.602-7.687,3.602-8.542C18.448,8.343,16.452,6.348,14,6.348z M13.999,13.797c-1.654,0-2.999-1.347-2.999-3.003 c0-1.655,1.346-2.998,2.999-2.998c1.655,0,3.001,1.345,3.001,2.998C17,12.451,15.654,13.797,13.999,13.797z"
|
||||
id="path10"
|
||||
style="fill:#0b8c61;fill-opacity:1" />
|
||||
<path
|
||||
fill="#C1122B"
|
||||
d="M14,0C6.28,0,0,6.717,0,13.333c0,9.941,13.132,18.169,13.691,18.571C13.78,31.968,13.891,32,14,32 c0.107,0,0.217-0.031,0.305-0.094C14.864,31.511,28,23.45,28,13.333C28,6.717,21.72,0,14,0z M19.336,22.021 c-0.002,1.728-2.686,2.632-5.337,2.632c-2.652,0-5.337-0.905-5.337-2.634c0-1.158,1.352-2.099,3.465-2.462 c-1.721-3.01-3.577-6.721-3.577-8.76c0-3.004,2.444-5.448,5.448-5.448s5.448,2.444,5.449,5.447c0,2.036-1.858,5.75-3.578,8.762 C17.984,19.92,19.336,20.86,19.336,22.021z"
|
||||
id="path12"
|
||||
style="fill:#0b8c61;fill-opacity:1" />
|
||||
<path
|
||||
fill="#C1122B"
|
||||
d="M15.175,20.763c-0.029,0.048-0.059,0.1-0.088,0.148c-0.04,0.068-0.084,0.142-0.121,0.204 c-0.111,0.184-0.206,0.339-0.293,0.483c-0.021,0.03-0.042,0.066-0.061,0.096c-0.081,0.133-0.142,0.231-0.194,0.313 c-0.015,0.025-0.032,0.054-0.045,0.073c-0.052,0.082-0.08,0.125-0.08,0.125l-0.295,0.463l-0.293-0.463 c0,0-0.031-0.048-0.085-0.134c-0.006-0.009-0.013-0.023-0.019-0.029c-0.053-0.086-0.123-0.198-0.212-0.345 c-0.025-0.038-0.052-0.086-0.079-0.127c-0.083-0.136-0.17-0.278-0.274-0.448c-0.042-0.072-0.089-0.15-0.134-0.225 c-0.026-0.044-0.053-0.09-0.078-0.132l-0.381,0.061c-1.729,0.277-2.477,0.925-2.477,1.195c0,0.172,0.269,0.481,0.859,0.754 c0.8,0.37,1.926,0.574,3.172,0.574c2.608,0,4.031-0.878,4.031-1.329c0-0.269-0.748-0.917-2.476-1.195L15.175,20.763z"
|
||||
id="path14"
|
||||
style="fill:#0b8c61;fill-opacity:1" />
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 3.7 KiB After Width: | Height: | Size: 4.4 KiB |
@@ -1,51 +1,96 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 17.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [
|
||||
<!ENTITY ns_extend "http://ns.adobe.com/Extensibility/1.0/">
|
||||
<!ENTITY ns_ai "http://ns.adobe.com/AdobeIllustrator/10.0/">
|
||||
<!ENTITY ns_graphs "http://ns.adobe.com/Graphs/1.0/">
|
||||
<!ENTITY ns_vars "http://ns.adobe.com/Variables/1.0/">
|
||||
<!ENTITY ns_imrep "http://ns.adobe.com/ImageReplacement/1.0/">
|
||||
<!ENTITY ns_sfw "http://ns.adobe.com/SaveForWeb/1.0/">
|
||||
<!ENTITY ns_custom "http://ns.adobe.com/GenericCustomNamespace/1.0/">
|
||||
<!ENTITY ns_adobe_xpath "http://ns.adobe.com/XPath/1.0/">
|
||||
]>
|
||||
<svg version="1.1" id="Layer_1" xmlns:x="&ns_extend;" xmlns:i="&ns_ai;" xmlns:graph="&ns_graphs;"
|
||||
xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="28px" height="33px"
|
||||
viewBox="0 0 28 33" enable-background="new 0 0 28 33" xml:space="preserve">
|
||||
<metadata>
|
||||
<sfw xmlns="&ns_sfw;">
|
||||
<slices></slices>
|
||||
<sliceSourceBounds height="96" width="16383" y="-85.5" x="-8112" bottomLeftOrigin="true"></sliceSourceBounds>
|
||||
</sfw>
|
||||
</metadata>
|
||||
<g>
|
||||
<path opacity="0.25" fill="#282828" d="M14,25c-6.059,0-10.988,1.679-10.988,3.333c0,2.485,10.307,4.542,10.746,4.643
|
||||
C13.828,32.992,13.914,33,14,33c0.084,0,0.17-0.008,0.239-0.023c0.439-0.099,10.749-2.114,10.749-4.643
|
||||
C24.988,26.679,20.059,25,14,25z"/>
|
||||
<g>
|
||||
<path fill="#FFFFFF" d="M14,0C6.28,0,0,6.717,0,13.332c0,9.941,13.132,18.169,13.691,18.572C13.78,31.968,13.891,32,14,32
|
||||
c0.107,0,0.217-0.031,0.305-0.094C14.864,31.511,28,23.45,28,13.332C28,6.717,21.72,0,14,0z"/>
|
||||
<g>
|
||||
<path fill="#C1122B" d="M14,0C6.28,0,0,6.717,0,13.333c0,9.941,13.132,18.169,13.691,18.571C13.78,31.968,13.891,32,14,32
|
||||
c0.107,0,0.217-0.031,0.305-0.094C14.864,31.511,28,23.45,28,13.333C28,6.717,21.72,0,14,0z M14.002,30.908
|
||||
C10.865,28.805,1,21.533,1,13.333C1,7.511,6.56,1,14,1s13,6.511,13,12.333C27,21.682,17.14,28.843,14.002,30.908z"/>
|
||||
<path fill="#C1122B" d="M14,7.796c-1.654,0-3,1.344-3,2.998c0,1.656,1.346,3.003,3,3.003c1.655,0,3-1.347,3-3.003
|
||||
C17,9.141,15.654,7.796,14,7.796z M14,13.047c-1.24,0-2.25-1.01-2.25-2.253c0-1.24,1.009-2.248,2.25-2.248
|
||||
c1.241,0,2.25,1.009,2.25,2.248C16.25,12.037,15.24,13.047,14,13.047z"/>
|
||||
<path fill="#C1122B" d="M14,5.348c-3.004,0-5.448,2.444-5.448,5.448c0,2.039,1.856,5.75,3.577,8.76
|
||||
c-2.113,0.363-3.465,1.304-3.465,2.462c0,1.729,2.685,2.634,5.337,2.634c2.65,0,5.335-0.904,5.337-2.632
|
||||
c0-1.16-1.352-2.1-3.465-2.464c1.719-3.012,3.578-6.725,3.578-8.762C19.448,7.792,17.003,5.348,14,5.348z M18.031,22.018
|
||||
c0,0.451-1.423,1.329-4.031,1.329c-1.246,0-2.372-0.204-3.172-0.574c-0.591-0.273-0.859-0.582-0.859-0.754
|
||||
c0-0.269,0.748-0.917,2.477-1.195l0.381-0.061c0.025,0.042,0.053,0.088,0.078,0.132c0.045,0.075,0.092,0.153,0.134,0.225
|
||||
c0.104,0.17,0.191,0.313,0.274,0.448c0.027,0.042,0.054,0.089,0.079,0.127c0.089,0.147,0.159,0.258,0.212,0.345
|
||||
c0.006,0.007,0.013,0.021,0.019,0.029c0.053,0.086,0.085,0.134,0.085,0.134l0.293,0.463l0.295-0.463c0,0,0.028-0.044,0.08-0.125
|
||||
c0.012-0.019,0.029-0.048,0.045-0.073c0.052-0.082,0.113-0.18,0.194-0.313c0.019-0.029,0.04-0.066,0.061-0.096
|
||||
c0.086-0.143,0.181-0.298,0.293-0.483c0.037-0.063,0.081-0.136,0.121-0.204c0.029-0.048,0.06-0.1,0.088-0.148l0.38,0.061
|
||||
C17.283,21.101,18.031,21.749,18.031,22.018z M14.847,19.337l-0.396,0.688l-0.189,0.316l-0.032,0.054l-0.089,0.151l-0.036,0.06
|
||||
l-0.104,0.172L13.892,20.6l-0.085-0.144l-0.043-0.072l-0.09-0.15l-0.135-0.227l-0.387-0.67c-3.134-5.43-3.602-7.682-3.602-8.541
|
||||
c0-2.453,1.995-4.448,4.448-4.448c2.453,0,4.448,1.995,4.449,4.447C18.449,11.65,17.981,13.897,14.847,19.337z"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Generator: Adobe Illustrator 17.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
|
||||
<svg
|
||||
xmlns:ns="&ns_sfw;"
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
version="1.1"
|
||||
id="Layer_1"
|
||||
x="0px"
|
||||
y="0px"
|
||||
width="28px"
|
||||
height="33px"
|
||||
viewBox="0 0 28 33"
|
||||
enable-background="new 0 0 28 33"
|
||||
xml:space="preserve"
|
||||
sodipodi:docname="green_hub.svg"
|
||||
inkscape:version="0.92.3 (2405546, 2018-03-11)"><defs
|
||||
id="defs25" /><sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1041"
|
||||
inkscape:window-height="590"
|
||||
id="namedview23"
|
||||
showgrid="false"
|
||||
inkscape:zoom="7.1515152"
|
||||
inkscape:cx="-9.0021186"
|
||||
inkscape:cy="16.5"
|
||||
inkscape:window-x="752"
|
||||
inkscape:window-y="122"
|
||||
inkscape:window-maximized="0"
|
||||
inkscape:current-layer="g16" />
|
||||
<metadata
|
||||
id="metadata2">
|
||||
<ns:sfw>
|
||||
<ns:slices />
|
||||
<ns:sliceSourceBounds
|
||||
height="96"
|
||||
width="16383"
|
||||
y="-85.5"
|
||||
x="-8112"
|
||||
bottomLeftOrigin="true" />
|
||||
</ns:sfw>
|
||||
<rdf:RDF><cc:Work
|
||||
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata>
|
||||
<g
|
||||
id="g20">
|
||||
<path
|
||||
opacity="0.25"
|
||||
fill="#282828"
|
||||
d="M14,25c-6.059,0-10.988,1.679-10.988,3.333c0,2.485,10.307,4.542,10.746,4.643 C13.828,32.992,13.914,33,14,33c0.084,0,0.17-0.008,0.239-0.023c0.439-0.099,10.749-2.114,10.749-4.643 C24.988,26.679,20.059,25,14,25z"
|
||||
id="path4" />
|
||||
<g
|
||||
id="g18">
|
||||
<path
|
||||
fill="#FFFFFF"
|
||||
d="M14,0C6.28,0,0,6.717,0,13.332c0,9.941,13.132,18.169,13.691,18.572C13.78,31.968,13.891,32,14,32 c0.107,0,0.217-0.031,0.305-0.094C14.864,31.511,28,23.45,28,13.332C28,6.717,21.72,0,14,0z"
|
||||
id="path6" />
|
||||
<g
|
||||
id="g16">
|
||||
<path
|
||||
fill="#C1122B"
|
||||
d="M13.999,8.546c-1.24,0-2.249,1.009-2.249,2.248c0,1.242,1.009,2.253,2.249,2.253 c1.241,0,2.251-1.01,2.251-2.253C16.25,9.555,15.24,8.546,13.999,8.546z"
|
||||
id="path8"
|
||||
style="fill:#0b8c61;fill-opacity:1" />
|
||||
<path
|
||||
fill="#C1122B"
|
||||
d="M14,6.348c-2.453,0-4.448,1.995-4.448,4.448c0,0.859,0.468,3.112,3.602,8.541l0.387,0.671l0.134,0.225 l0.09,0.15l0.043,0.072l0.085,0.144l0.108,0.178l0.104-0.172l0.036-0.061l0.088-0.149l0.032-0.054l0.19-0.319l0.395-0.685 c3.134-5.44,3.602-7.687,3.602-8.542C18.448,8.343,16.452,6.348,14,6.348z M13.999,13.797c-1.654,0-2.999-1.347-2.999-3.003 c0-1.655,1.346-2.998,2.999-2.998c1.655,0,3.001,1.345,3.001,2.998C17,12.451,15.654,13.797,13.999,13.797z"
|
||||
id="path10"
|
||||
style="fill:#0b8c61;fill-opacity:1" />
|
||||
<path
|
||||
fill="#C1122B"
|
||||
d="M14,0C6.28,0,0,6.717,0,13.333c0,9.941,13.132,18.169,13.691,18.571C13.78,31.968,13.891,32,14,32 c0.107,0,0.217-0.031,0.305-0.094C14.864,31.511,28,23.45,28,13.333C28,6.717,21.72,0,14,0z M19.336,22.021 c-0.002,1.728-2.686,2.632-5.337,2.632c-2.652,0-5.337-0.905-5.337-2.634c0-1.158,1.352-2.099,3.465-2.462 c-1.721-3.01-3.577-6.721-3.577-8.76c0-3.004,2.444-5.448,5.448-5.448s5.448,2.444,5.449,5.447c0,2.036-1.858,5.75-3.578,8.762 C17.984,19.92,19.336,20.86,19.336,22.021z"
|
||||
id="path12"
|
||||
style="fill:#0b8c61;fill-opacity:1" />
|
||||
<path
|
||||
fill="#C1122B"
|
||||
d="M15.175,20.763c-0.029,0.048-0.059,0.1-0.088,0.148c-0.04,0.068-0.084,0.142-0.121,0.204 c-0.111,0.184-0.206,0.339-0.293,0.483c-0.021,0.03-0.042,0.066-0.061,0.096c-0.081,0.133-0.142,0.231-0.194,0.313 c-0.015,0.025-0.032,0.054-0.045,0.073c-0.052,0.082-0.08,0.125-0.08,0.125l-0.295,0.463l-0.293-0.463 c0,0-0.031-0.048-0.085-0.134c-0.006-0.009-0.013-0.023-0.019-0.029c-0.053-0.086-0.123-0.198-0.212-0.345 c-0.025-0.038-0.052-0.086-0.079-0.127c-0.083-0.136-0.17-0.278-0.274-0.448c-0.042-0.072-0.089-0.15-0.134-0.225 c-0.026-0.044-0.053-0.09-0.078-0.132l-0.381,0.061c-1.729,0.277-2.477,0.925-2.477,1.195c0,0.172,0.269,0.481,0.859,0.754 c0.8,0.37,1.926,0.574,3.172,0.574c2.608,0,4.031-0.878,4.031-1.329c0-0.269-0.748-0.917-2.476-1.195L15.175,20.763z"
|
||||
id="path14"
|
||||
style="fill:#0b8c61;fill-opacity:1" />
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 3.7 KiB After Width: | Height: | Size: 4.4 KiB |
@@ -1,52 +1,91 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 17.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [
|
||||
<!ENTITY ns_extend "http://ns.adobe.com/Extensibility/1.0/">
|
||||
<!ENTITY ns_ai "http://ns.adobe.com/AdobeIllustrator/10.0/">
|
||||
<!ENTITY ns_graphs "http://ns.adobe.com/Graphs/1.0/">
|
||||
<!ENTITY ns_vars "http://ns.adobe.com/Variables/1.0/">
|
||||
<!ENTITY ns_imrep "http://ns.adobe.com/ImageReplacement/1.0/">
|
||||
<!ENTITY ns_sfw "http://ns.adobe.com/SaveForWeb/1.0/">
|
||||
<!ENTITY ns_custom "http://ns.adobe.com/GenericCustomNamespace/1.0/">
|
||||
<!ENTITY ns_adobe_xpath "http://ns.adobe.com/XPath/1.0/">
|
||||
]>
|
||||
<svg version="1.1" id="Layer_1" xmlns:x="&ns_extend;" xmlns:i="&ns_ai;" xmlns:graph="&ns_graphs;"
|
||||
xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="28px" height="33px"
|
||||
viewBox="0 0 28 33" enable-background="new 0 0 28 33" xml:space="preserve">
|
||||
<metadata>
|
||||
<sfw xmlns="&ns_sfw;">
|
||||
<slices></slices>
|
||||
<sliceSourceBounds height="96" width="16383" y="-85.5" x="-8112" bottomLeftOrigin="true"></sliceSourceBounds>
|
||||
</sfw>
|
||||
</metadata>
|
||||
<g>
|
||||
<path opacity="0.25" fill="#282828" d="M14,25c-6.059,0-10.988,1.679-10.988,3.333c0,2.485,10.307,4.542,10.746,4.643
|
||||
C13.828,32.992,13.914,33,14,33c0.084,0,0.17-0.008,0.239-0.023c0.439-0.099,10.749-2.114,10.749-4.643
|
||||
C24.988,26.679,20.059,25,14,25z"/>
|
||||
<g>
|
||||
<path fill="#FFFFFF" d="M14,0C6.28,0,0,6.717,0,13.332c0,9.941,13.132,18.169,13.691,18.572C13.78,31.968,13.891,32,14,32
|
||||
c0.107,0,0.217-0.031,0.305-0.094C14.864,31.511,28,23.45,28,13.332C28,6.717,21.72,0,14,0z"/>
|
||||
<g>
|
||||
<path fill="#C1122B" d="M21.552,10.282h-3.274l-1.683-2.709c-0.165-0.287-0.533-0.384-0.8-0.228
|
||||
c-0.135,0.078-0.229,0.201-0.27,0.35c-0.041,0.153-0.019,0.315,0.062,0.457l1.359,2.129h-6.311l1.379-2.161
|
||||
c0.066-0.114,0.087-0.271,0.046-0.421c-0.04-0.15-0.136-0.275-0.271-0.353c-0.266-0.156-0.64-0.053-0.787,0.202l-1.697,2.733
|
||||
H6.448c-0.522,0-0.948,0.426-0.948,0.948v0.827c0,0.492,0.363,0.97,0.793,1.041l0.105,0.018h15.156l0.119-0.016
|
||||
c0.44-0.058,0.827-0.545,0.827-1.043V11.23C22.5,10.708,22.074,10.282,21.552,10.282z"/>
|
||||
<path fill="#C1122B" d="M8.057,20.02c0.007,0.222,0.122,0.337,0.263,0.337h11.365c0.142,0,0.257-0.115,0.257-0.256l0.007-0.1
|
||||
l0.971-5.886H7.082L8.057,20.02z M17.116,16.074c0-0.298,0.22-0.539,0.518-0.539c0.297,0,0.516,0.241,0.516,0.539v2.017
|
||||
c0,0.298-0.219,0.539-0.516,0.539c-0.298,0-0.518-0.241-0.518-0.539V16.074z M14.694,16.074c0-0.298,0.219-0.539,0.517-0.539
|
||||
s0.517,0.241,0.517,0.539v2.017c0,0.298-0.219,0.539-0.517,0.539s-0.517-0.241-0.517-0.539V16.074z M12.272,16.074
|
||||
c0-0.298,0.219-0.539,0.517-0.539c0.297,0,0.517,0.241,0.517,0.539v2.017c0,0.298-0.22,0.539-0.517,0.539
|
||||
c-0.298,0-0.517-0.241-0.517-0.539V16.074z M9.85,16.074c0-0.298,0.219-0.539,0.517-0.539c0.297,0,0.516,0.241,0.516,0.539v2.017
|
||||
c0,0.298-0.219,0.539-0.516,0.539c-0.298,0-0.517-0.241-0.517-0.539V16.074z"/>
|
||||
<path fill="#C1122B" d="M14,0C6.28,0,0,6.717,0,13.333c0,9.941,13.132,18.169,13.691,18.571C13.78,31.968,13.891,32,14,32
|
||||
c0.107,0,0.217-0.031,0.305-0.094C14.864,31.511,28,23.45,28,13.333C28,6.717,21.72,0,14,0z M23.5,12.057
|
||||
c0,0.863-0.567,1.661-1.325,1.942l-1.025,5.889c-0.015,0.976-0.889,1.831-1.94,1.831H8.744c-1.052,0-1.925-0.855-1.947-1.906
|
||||
l-1.024-5.828C5.036,13.691,4.5,12.91,4.5,12.057V11.23c0-1.074,0.874-1.948,1.948-1.948H8.75l1.396-2.247
|
||||
c0.4-0.698,1.417-0.978,2.145-0.555c0.755,0.435,1.015,1.403,0.58,2.159l-0.41,0.642h2.662l-0.39-0.61
|
||||
c-0.227-0.391-0.284-0.823-0.174-1.235c0.109-0.406,0.37-0.745,0.734-0.955c0.716-0.417,1.739-0.148,2.159,0.579l1.381,2.223
|
||||
h2.718c1.074,0,1.948,0.874,1.948,1.948V12.057z"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Generator: Adobe Illustrator 17.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
|
||||
<svg
|
||||
xmlns:ns="&ns_sfw;"
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
version="1.1"
|
||||
id="Layer_1"
|
||||
x="0px"
|
||||
y="0px"
|
||||
width="28px"
|
||||
height="33px"
|
||||
viewBox="0 0 28 33"
|
||||
enable-background="new 0 0 28 33"
|
||||
xml:space="preserve"
|
||||
sodipodi:docname="green_shop.svg"
|
||||
inkscape:version="0.92.3 (2405546, 2018-03-11)"><defs
|
||||
id="defs23" /><sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1707"
|
||||
inkscape:window-height="910"
|
||||
id="namedview21"
|
||||
showgrid="false"
|
||||
inkscape:zoom="7.1515152"
|
||||
inkscape:cx="-9.0021186"
|
||||
inkscape:cy="16.5"
|
||||
inkscape:window-x="32"
|
||||
inkscape:window-y="20"
|
||||
inkscape:window-maximized="0"
|
||||
inkscape:current-layer="g14" />
|
||||
<metadata
|
||||
id="metadata2">
|
||||
<ns:sfw>
|
||||
<ns:slices />
|
||||
<ns:sliceSourceBounds
|
||||
height="96"
|
||||
width="16383"
|
||||
y="-85.5"
|
||||
x="-8112"
|
||||
bottomLeftOrigin="true" />
|
||||
</ns:sfw>
|
||||
<rdf:RDF><cc:Work
|
||||
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata>
|
||||
<g
|
||||
id="g18">
|
||||
<path
|
||||
opacity="0.25"
|
||||
fill="#282828"
|
||||
d="M14,25c-6.059,0-10.988,1.679-10.988,3.333c0,2.485,10.307,4.542,10.746,4.643 C13.828,32.992,13.914,33,14,33c0.084,0,0.17-0.008,0.239-0.023c0.439-0.099,10.749-2.114,10.749-4.643 C24.988,26.679,20.059,25,14,25z"
|
||||
id="path4" />
|
||||
<g
|
||||
id="g16">
|
||||
<path
|
||||
fill="#FFFFFF"
|
||||
d="M14,0C6.28,0,0,6.717,0,13.332c0,9.941,13.132,18.169,13.691,18.572C13.78,31.968,13.891,32,14,32 c0.107,0,0.217-0.031,0.305-0.094C14.864,31.511,28,23.45,28,13.332C28,6.717,21.72,0,14,0z"
|
||||
id="path6" />
|
||||
<g
|
||||
id="g14">
|
||||
<path
|
||||
fill="#C1122B"
|
||||
d="M21.552,10.282h-3.274l-1.683-2.709c-0.165-0.287-0.533-0.384-0.8-0.228 c-0.135,0.078-0.229,0.201-0.27,0.35c-0.041,0.153-0.019,0.315,0.062,0.457l1.359,2.129h-6.311l1.379-2.161 c0.066-0.114,0.087-0.271,0.046-0.421c-0.04-0.15-0.136-0.275-0.271-0.353c-0.266-0.156-0.64-0.053-0.787,0.202l-1.697,2.733 H6.448c-0.522,0-0.948,0.426-0.948,0.948v0.827c0,0.492,0.363,0.97,0.793,1.041l0.105,0.018h15.156l0.119-0.016 c0.44-0.058,0.827-0.545,0.827-1.043V11.23C22.5,10.708,22.074,10.282,21.552,10.282z"
|
||||
id="path8"
|
||||
style="fill:#0b8c61;fill-opacity:1" />
|
||||
<path
|
||||
fill="#C1122B"
|
||||
d="M8.057,20.02c0.007,0.222,0.122,0.337,0.263,0.337h11.365c0.142,0,0.257-0.115,0.257-0.256l0.007-0.1 l0.971-5.886H7.082L8.057,20.02z M17.116,16.074c0-0.298,0.22-0.539,0.518-0.539c0.297,0,0.516,0.241,0.516,0.539v2.017 c0,0.298-0.219,0.539-0.516,0.539c-0.298,0-0.518-0.241-0.518-0.539V16.074z M14.694,16.074c0-0.298,0.219-0.539,0.517-0.539 s0.517,0.241,0.517,0.539v2.017c0,0.298-0.219,0.539-0.517,0.539s-0.517-0.241-0.517-0.539V16.074z M12.272,16.074 c0-0.298,0.219-0.539,0.517-0.539c0.297,0,0.517,0.241,0.517,0.539v2.017c0,0.298-0.22,0.539-0.517,0.539 c-0.298,0-0.517-0.241-0.517-0.539V16.074z M9.85,16.074c0-0.298,0.219-0.539,0.517-0.539c0.297,0,0.516,0.241,0.516,0.539v2.017 c0,0.298-0.219,0.539-0.516,0.539c-0.298,0-0.517-0.241-0.517-0.539V16.074z"
|
||||
id="path10"
|
||||
style="fill:#0b8c61;fill-opacity:1" />
|
||||
<path
|
||||
fill="#C1122B"
|
||||
d="M14,0C6.28,0,0,6.717,0,13.333c0,9.941,13.132,18.169,13.691,18.571C13.78,31.968,13.891,32,14,32 c0.107,0,0.217-0.031,0.305-0.094C14.864,31.511,28,23.45,28,13.333C28,6.717,21.72,0,14,0z M23.5,12.057 c0,0.863-0.567,1.661-1.325,1.942l-1.025,5.889c-0.015,0.976-0.889,1.831-1.94,1.831H8.744c-1.052,0-1.925-0.855-1.947-1.906 l-1.024-5.828C5.036,13.691,4.5,12.91,4.5,12.057V11.23c0-1.074,0.874-1.948,1.948-1.948H8.75l1.396-2.247 c0.4-0.698,1.417-0.978,2.145-0.555c0.755,0.435,1.015,1.403,0.58,2.159l-0.41,0.642h2.662l-0.39-0.61 c-0.227-0.391-0.284-0.823-0.174-1.235c0.109-0.406,0.37-0.745,0.734-0.955c0.716-0.417,1.739-0.148,2.159,0.579l1.381,2.223 h2.718c1.074,0,1.948,0.874,1.948,1.948V12.057z"
|
||||
id="path12"
|
||||
style="fill:#0b8c61;fill-opacity:1" />
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 3.8 KiB After Width: | Height: | Size: 4.5 KiB |
@@ -1,73 +1,91 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Generator: Adobe Illustrator 17.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [
|
||||
<!ENTITY ns_extend "http://ns.adobe.com/Extensibility/1.0/">
|
||||
<!ENTITY ns_ai "http://ns.adobe.com/AdobeIllustrator/10.0/">
|
||||
<!ENTITY ns_graphs "http://ns.adobe.com/Graphs/1.0/">
|
||||
<!ENTITY ns_vars "http://ns.adobe.com/Variables/1.0/">
|
||||
<!ENTITY ns_imrep "http://ns.adobe.com/ImageReplacement/1.0/">
|
||||
<!ENTITY ns_sfw "http://ns.adobe.com/SaveForWeb/1.0/">
|
||||
<!ENTITY ns_custom "http://ns.adobe.com/GenericCustomNamespace/1.0/">
|
||||
<!ENTITY ns_adobe_xpath "http://ns.adobe.com/XPath/1.0/">
|
||||
]>
|
||||
<svg version="1.1" id="Layer_1" xmlns:x="&ns_extend;" xmlns:i="&ns_ai;" xmlns:graph="&ns_graphs;"
|
||||
xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="28px" height="33px"
|
||||
viewBox="0 0 28 33" enable-background="new 0 0 28 33" xml:space="preserve">
|
||||
<metadata>
|
||||
<sfw xmlns="&ns_sfw;">
|
||||
<slices></slices>
|
||||
<sliceSourceBounds height="96" width="16383" y="-85.5" x="-8112" bottomLeftOrigin="true"></sliceSourceBounds>
|
||||
</sfw>
|
||||
</metadata>
|
||||
<g>
|
||||
<path opacity="0.25" fill="#282828" d="M14,25c-6.059,0-10.988,1.679-10.988,3.333c0,2.485,10.307,4.542,10.746,4.643
|
||||
C13.828,32.992,13.914,33,14,33c0.084,0,0.17-0.008,0.239-0.023c0.439-0.099,10.749-2.114,10.749-4.643
|
||||
C24.988,26.679,20.059,25,14,25z"/>
|
||||
<g>
|
||||
<path fill="#FFFFFF" d="M14,0C6.28,0,0,6.717,0,13.332c0,9.941,13.132,18.169,13.691,18.572C13.78,31.968,13.891,32,14,32
|
||||
c0.107,0,0.217-0.031,0.305-0.094C14.864,31.511,28,23.45,28,13.332C28,6.717,21.72,0,14,0z"/>
|
||||
<path fill="#C1122B" d="M14,0C6.28,0,0,6.717,0,13.333c0,9.941,13.132,18.169,13.691,18.572C13.78,31.968,13.891,32,14,32
|
||||
c0.107,0,0.217-0.031,0.305-0.094C14.864,31.511,28,23.45,28,13.333C28,6.717,21.72,0,14,0z M14.002,30.908
|
||||
C10.865,28.805,1,21.533,1,13.333C1,7.511,6.56,1,14,1s13,6.511,13,12.333C27,21.682,17.14,28.843,14.002,30.908z"/>
|
||||
<g>
|
||||
<g>
|
||||
<path fill="#C1122B" d="M19.457,22.366H8.494c-1.074,0-1.965-0.873-1.988-1.946l-1.079-6.143
|
||||
C4.661,13.986,4.1,13.177,4.1,12.295v-0.866c0-1.097,0.892-1.989,1.988-1.989h2.441l1.479-2.379
|
||||
c0.408-0.709,1.438-0.99,2.177-0.563c0.37,0.214,0.635,0.559,0.747,0.973c0.11,0.413,0.054,0.846-0.16,1.216l-0.479,0.751h2.98
|
||||
L14.813,8.72c-0.229-0.395-0.288-0.833-0.177-1.251c0.11-0.413,0.375-0.758,0.745-0.971c0.731-0.428,1.766-0.151,2.191,0.588
|
||||
l1.463,2.354h2.877c1.096,0,1.988,0.892,1.988,1.989v0.866c0,0.894-0.594,1.719-1.382,1.996l-1.08,6.199
|
||||
C21.423,21.492,20.532,22.366,19.457,22.366z M6.088,10.383c-0.576,0-1.045,0.47-1.045,1.046v0.866
|
||||
c0,0.54,0.401,1.064,0.874,1.143l0.33,0.055l1.195,6.836c0.019,0.635,0.488,1.094,1.052,1.094h10.964
|
||||
c0.565,0,1.034-0.459,1.045-1.023l1.199-6.915l0.344-0.045c0.494-0.064,0.912-0.588,0.912-1.145v-0.866
|
||||
c0-0.576-0.469-1.046-1.045-1.046H18.51L16.762,7.57c-0.186-0.324-0.605-0.433-0.909-0.256
|
||||
c-0.153,0.088-0.262,0.229-0.307,0.398c-0.046,0.175-0.021,0.358,0.072,0.518l1.373,2.152h-6.42l1.393-2.183
|
||||
c0.077-0.134,0.1-0.313,0.055-0.483c-0.046-0.17-0.156-0.313-0.308-0.401c-0.304-0.179-0.729-0.061-0.895,0.23l-1.763,2.838
|
||||
H6.088z"/>
|
||||
</g>
|
||||
<g>
|
||||
<path fill="#C1122B" d="M19.956,21.986H8.049c-0.697,0-1.264-0.566-1.264-1.263l-1.207-7.266h16.845l-1.204,7.282
|
||||
C21.22,21.419,20.653,21.986,19.956,21.986z M6.69,14.399l1.031,6.247c0.006,0.253,0.151,0.397,0.328,0.397h11.907
|
||||
c0.177,0,0.321-0.144,0.321-0.32l0.006-0.097l1.029-6.226H6.69z"/>
|
||||
</g>
|
||||
<g>
|
||||
<g>
|
||||
<path fill="#C1122B" d="M17.807,19.181c0.311,0,0.541-0.253,0.541-0.565v-2.113c0-0.312-0.23-0.565-0.541-0.565
|
||||
c-0.312,0-0.542,0.253-0.542,0.565v2.113C17.264,18.929,17.495,19.181,17.807,19.181z"/>
|
||||
</g>
|
||||
<g>
|
||||
<path fill="#C1122B" d="M15.268,19.181c0.312,0,0.542-0.253,0.542-0.565v-2.113c0-0.312-0.23-0.565-0.542-0.565
|
||||
s-0.542,0.253-0.542,0.565v2.113C14.727,18.929,14.957,19.181,15.268,19.181z"/>
|
||||
</g>
|
||||
<g>
|
||||
<path fill="#C1122B" d="M12.731,19.181c0.311,0,0.542-0.253,0.542-0.565v-2.113c0-0.312-0.23-0.565-0.542-0.565
|
||||
c-0.312,0-0.542,0.253-0.542,0.565v2.113C12.19,18.929,12.419,19.181,12.731,19.181z"/>
|
||||
</g>
|
||||
<g>
|
||||
<path fill="#C1122B" d="M10.194,19.181c0.311,0,0.541-0.253,0.541-0.565v-2.113c0-0.312-0.23-0.565-0.541-0.565
|
||||
c-0.312,0-0.542,0.253-0.542,0.565v2.113C9.652,18.929,9.882,19.181,10.194,19.181z"/>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Generator: Adobe Illustrator 17.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
|
||||
|
||||
<svg
|
||||
xmlns:ns="&ns_sfw;"
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
version="1.1"
|
||||
id="Layer_1"
|
||||
x="0px"
|
||||
y="0px"
|
||||
width="28px"
|
||||
height="33px"
|
||||
viewBox="0 0 28 33"
|
||||
enable-background="new 0 0 28 33"
|
||||
xml:space="preserve"
|
||||
sodipodi:docname="green_shop.svg"
|
||||
inkscape:version="0.92.3 (2405546, 2018-03-11)"><defs
|
||||
id="defs23" /><sodipodi:namedview
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1707"
|
||||
inkscape:window-height="910"
|
||||
id="namedview21"
|
||||
showgrid="false"
|
||||
inkscape:zoom="7.1515152"
|
||||
inkscape:cx="-9.0021186"
|
||||
inkscape:cy="16.5"
|
||||
inkscape:window-x="32"
|
||||
inkscape:window-y="20"
|
||||
inkscape:window-maximized="0"
|
||||
inkscape:current-layer="g14" />
|
||||
<metadata
|
||||
id="metadata2">
|
||||
<ns:sfw>
|
||||
<ns:slices />
|
||||
<ns:sliceSourceBounds
|
||||
height="96"
|
||||
width="16383"
|
||||
y="-85.5"
|
||||
x="-8112"
|
||||
bottomLeftOrigin="true" />
|
||||
</ns:sfw>
|
||||
<rdf:RDF><cc:Work
|
||||
rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata>
|
||||
<g
|
||||
id="g18">
|
||||
<path
|
||||
opacity="0.25"
|
||||
fill="#282828"
|
||||
d="M14,25c-6.059,0-10.988,1.679-10.988,3.333c0,2.485,10.307,4.542,10.746,4.643 C13.828,32.992,13.914,33,14,33c0.084,0,0.17-0.008,0.239-0.023c0.439-0.099,10.749-2.114,10.749-4.643 C24.988,26.679,20.059,25,14,25z"
|
||||
id="path4" />
|
||||
<g
|
||||
id="g16">
|
||||
<path
|
||||
fill="#FFFFFF"
|
||||
d="M14,0C6.28,0,0,6.717,0,13.332c0,9.941,13.132,18.169,13.691,18.572C13.78,31.968,13.891,32,14,32 c0.107,0,0.217-0.031,0.305-0.094C14.864,31.511,28,23.45,28,13.332C28,6.717,21.72,0,14,0z"
|
||||
id="path6" />
|
||||
<g
|
||||
id="g14">
|
||||
<path
|
||||
fill="#C1122B"
|
||||
d="M21.552,10.282h-3.274l-1.683-2.709c-0.165-0.287-0.533-0.384-0.8-0.228 c-0.135,0.078-0.229,0.201-0.27,0.35c-0.041,0.153-0.019,0.315,0.062,0.457l1.359,2.129h-6.311l1.379-2.161 c0.066-0.114,0.087-0.271,0.046-0.421c-0.04-0.15-0.136-0.275-0.271-0.353c-0.266-0.156-0.64-0.053-0.787,0.202l-1.697,2.733 H6.448c-0.522,0-0.948,0.426-0.948,0.948v0.827c0,0.492,0.363,0.97,0.793,1.041l0.105,0.018h15.156l0.119-0.016 c0.44-0.058,0.827-0.545,0.827-1.043V11.23C22.5,10.708,22.074,10.282,21.552,10.282z"
|
||||
id="path8"
|
||||
style="fill:#0b8c61;fill-opacity:1" />
|
||||
<path
|
||||
fill="#C1122B"
|
||||
d="M8.057,20.02c0.007,0.222,0.122,0.337,0.263,0.337h11.365c0.142,0,0.257-0.115,0.257-0.256l0.007-0.1 l0.971-5.886H7.082L8.057,20.02z M17.116,16.074c0-0.298,0.22-0.539,0.518-0.539c0.297,0,0.516,0.241,0.516,0.539v2.017 c0,0.298-0.219,0.539-0.516,0.539c-0.298,0-0.518-0.241-0.518-0.539V16.074z M14.694,16.074c0-0.298,0.219-0.539,0.517-0.539 s0.517,0.241,0.517,0.539v2.017c0,0.298-0.219,0.539-0.517,0.539s-0.517-0.241-0.517-0.539V16.074z M12.272,16.074 c0-0.298,0.219-0.539,0.517-0.539c0.297,0,0.517,0.241,0.517,0.539v2.017c0,0.298-0.22,0.539-0.517,0.539 c-0.298,0-0.517-0.241-0.517-0.539V16.074z M9.85,16.074c0-0.298,0.219-0.539,0.517-0.539c0.297,0,0.516,0.241,0.516,0.539v2.017 c0,0.298-0.219,0.539-0.516,0.539c-0.298,0-0.517-0.241-0.517-0.539V16.074z"
|
||||
id="path10"
|
||||
style="fill:#0b8c61;fill-opacity:1" />
|
||||
<path
|
||||
fill="#C1122B"
|
||||
d="M14,0C6.28,0,0,6.717,0,13.333c0,9.941,13.132,18.169,13.691,18.571C13.78,31.968,13.891,32,14,32 c0.107,0,0.217-0.031,0.305-0.094C14.864,31.511,28,23.45,28,13.333C28,6.717,21.72,0,14,0z M23.5,12.057 c0,0.863-0.567,1.661-1.325,1.942l-1.025,5.889c-0.015,0.976-0.889,1.831-1.94,1.831H8.744c-1.052,0-1.925-0.855-1.947-1.906 l-1.024-5.828C5.036,13.691,4.5,12.91,4.5,12.057V11.23c0-1.074,0.874-1.948,1.948-1.948H8.75l1.396-2.247 c0.4-0.698,1.417-0.978,2.145-0.555c0.755,0.435,1.015,1.403,0.58,2.159l-0.41,0.642h2.662l-0.39-0.61 c-0.227-0.391-0.284-0.823-0.174-1.235c0.109-0.406,0.37-0.745,0.734-0.955c0.716-0.417,1.739-0.148,2.159,0.579l1.381,2.223 h2.718c1.074,0,1.948,0.874,1.948,1.948V12.057z"
|
||||
id="path12"
|
||||
style="fill:#0b8c61;fill-opacity:1" />
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 4.5 KiB After Width: | Height: | Size: 4.5 KiB |
3
app/assets/images/menu/icn-cart.svg
Executable file
@@ -0,0 +1,3 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="18" viewBox="0 0 20 18">
|
||||
<path fill="#FFF" fill-opacity=".5" fill-rule="nonzero" d="M18.338 10.593l1.64-7.312a.841.841 0 0 0-.812-1.031H5.528L5.21.675A.836.836 0 0 0 4.393 0H.833A.839.839 0 0 0 0 .844v.562c0 .466.373.844.833.844H3.26l2.439 12.074c-.584.34-.977.977-.977 1.707 0 1.088.87 1.969 1.945 1.969 1.074 0 1.944-.881 1.944-1.969 0-.55-.224-1.049-.584-1.406h7.28c-.36.357-.585.855-.585 1.406 0 1.088.87 1.969 1.945 1.969 1.074 0 1.944-.881 1.944-1.969 0-.78-.447-1.453-1.096-1.772l.191-.853a.841.841 0 0 0-.812-1.031h-9.32l-.228-1.125h10.179c.389 0 .726-.273.813-.657z"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 648 B |
7
app/assets/images/menu/icn-login.svg
Normal file
@@ -0,0 +1,7 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16">
|
||||
<g fill="none" fill-rule="evenodd">
|
||||
<path d="M0 0h16v16H0z"/>
|
||||
<path fill="#F4704C" d="M13.85 5.928h-1.234v-1.54c0-2.338-2.026-4.234-4.525-4.234-2.5 0-4.526 1.896-4.526 4.235v1.54H2.33c-.682 0-1.235.516-1.235 1.154v7.7c0 .637.553 1.154 1.235 1.154h11.52c.681 0 1.234-.517 1.234-1.154v-7.7c0-.638-.553-1.155-1.234-1.155zM4.8 4.388c0-1.7 1.473-3.08 3.29-3.08 1.818 0 3.292 1.38 3.292 3.08v1.54H4.799v-1.54z"/>
|
||||
<path fill="#FFF" d="M8.296 13.23c1.243 0 2.25-.942 2.25-2.105 0-1.162-1.007-2.105-2.25-2.105-1.242 0-2.25.943-2.25 2.105.003 1.162 1.009 2.103 2.25 2.106zm0-3.211c.654 0 1.183.495 1.183 1.106 0 .612-.53 1.107-1.183 1.107s-1.183-.495-1.183-1.107c0-.61.53-1.106 1.183-1.106z"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 812 B |
6
app/assets/images/menu/icn-profile.svg
Executable file
@@ -0,0 +1,6 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="16" height="16" viewBox="0 0 16 16">
|
||||
<defs>
|
||||
<path id="a" d="M15 15.2a.79.79 0 0 1-.778.8H1.778A.79.79 0 0 1 1 15.2v-2.4c0-2.21 1.741-4 3.889-4h6.222c2.148 0 3.889 1.79 3.889 4v2.4zM8 8C5.852 8 4.111 6.21 4.111 4S5.852 0 8 0c2.148 0 3.889 1.79 3.889 4S10.148 8 8 8z"/>
|
||||
</defs>
|
||||
<use fill="#F4704C" fill-rule="nonzero" xlink:href="#a"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 451 B |
BIN
app/assets/images/spinner.gif
Normal file
|
After Width: | Height: | Size: 1.5 KiB |
@@ -15,7 +15,6 @@
|
||||
//= require angular-animate
|
||||
//= require angular-sanitize
|
||||
//= require admin/spree_backend
|
||||
//= require admin/spree_auth
|
||||
//= require admin/spree_paypal_express
|
||||
//= require ../shared/ng-infinite-scroll.min.js
|
||||
//= require ../shared/ng-tags-input.min.js
|
||||
|
||||
@@ -1 +1,26 @@
|
||||
angular.module("admin.enterprises", [
|
||||
angular.module("admin.enterprises", [
|
||||
"admin.paymentMethods",
|
||||
"admin.utils",
|
||||
"admin.shippingMethods",
|
||||
"admin.users",
|
||||
"textAngular",
|
||||
"admin.side_menu",
|
||||
"admin.taxons",
|
||||
'admin.indexUtils',
|
||||
'admin.tagRules',
|
||||
'admin.dropdown',
|
||||
'ngSanitize']
|
||||
)
|
||||
# For more options: https://github.com/textAngular/textAngular/blob/master/src/textAngularSetup.js
|
||||
.config [
|
||||
'$provide', ($provide) ->
|
||||
$provide.decorator 'taTranslations', [
|
||||
'$delegate'
|
||||
(taTranslations) ->
|
||||
taTranslations.insertLink = {
|
||||
tooltip: t('admin.enterprises.form.shop_preferences.shopfront_message_link_tooltip'),
|
||||
dialogPrompt: t('admin.enterprises.form.shop_preferences.shopfront_message_link_prompt')
|
||||
}
|
||||
taTranslations
|
||||
]
|
||||
]
|
||||
|
||||
@@ -5,7 +5,7 @@ angular.module('admin.orderCycles')
|
||||
$scope.distributor_enterprises = Enterprise.hub_enterprises
|
||||
$scope.supplied_products = Enterprise.supplied_products
|
||||
$scope.enterprise_fees = EnterpriseFee.index(coordinator_id: ocInstance.coordinator_id)
|
||||
$scope.schedules = Schedules.index()
|
||||
$scope.schedules = Schedules.index({enterprise_id: ocInstance.coordinator_id})
|
||||
|
||||
$scope.OrderCycle = OrderCycle
|
||||
$scope.order_cycle = OrderCycle.new({ coordinator_id: ocInstance.coordinator_id})
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
angular.module('admin.orderCycles')
|
||||
.controller 'AdminEditOrderCycleCtrl', ($scope, $filter, $location, $window, OrderCycle, Enterprise, EnterpriseFee, StatusMessage, Schedules, RequestMonitor) ->
|
||||
.controller 'AdminEditOrderCycleCtrl', ($scope, $filter, $location, $window, OrderCycle, Enterprise, EnterpriseFee, StatusMessage, Schedules, RequestMonitor, ocInstance) ->
|
||||
order_cycle_id = $location.absUrl().match(/\/admin\/order_cycles\/(\d+)/)[1]
|
||||
$scope.enterprises = Enterprise.index(order_cycle_id: order_cycle_id)
|
||||
$scope.supplier_enterprises = Enterprise.producer_enterprises
|
||||
$scope.distributor_enterprises = Enterprise.hub_enterprises
|
||||
$scope.supplied_products = Enterprise.supplied_products
|
||||
$scope.enterprise_fees = EnterpriseFee.index(order_cycle_id: order_cycle_id)
|
||||
$scope.schedules = Schedules.index()
|
||||
$scope.schedules = Schedules.index({enterprise_id: ocInstance.coordinator_id})
|
||||
|
||||
$scope.OrderCycle = OrderCycle
|
||||
$scope.order_cycle = OrderCycle.load(order_cycle_id)
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
angular.module('admin.orderCycles').controller "AdminSimpleCreateOrderCycleCtrl", ($scope, $window, OrderCycle, Enterprise, EnterpriseFee, StatusMessage, Schedules, RequestMonitor, ocInstance) ->
|
||||
$scope.StatusMessage = StatusMessage
|
||||
$scope.OrderCycle = OrderCycle
|
||||
$scope.schedules = Schedules.index()
|
||||
$scope.schedules = Schedules.index({enterprise_id: ocInstance.coordinator_id})
|
||||
$scope.order_cycle = OrderCycle.new {coordinator_id: ocInstance.coordinator_id}, =>
|
||||
# TODO: make this a get method, which only fetches one enterprise
|
||||
$scope.enterprises = Enterprise.index {coordinator_id: ocInstance.coordinator_id}, (enterprises) =>
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
angular.module('admin.orderCycles').controller "AdminSimpleEditOrderCycleCtrl", ($scope, $location, $window, OrderCycle, Enterprise, EnterpriseFee, Schedules, RequestMonitor, StatusMessage) ->
|
||||
angular.module('admin.orderCycles').controller "AdminSimpleEditOrderCycleCtrl", ($scope, $location, $window, OrderCycle, Enterprise, EnterpriseFee, Schedules, RequestMonitor, StatusMessage, ocInstance) ->
|
||||
$scope.orderCycleId = ->
|
||||
$location.absUrl().match(/\/admin\/order_cycles\/(\d+)/)[1]
|
||||
|
||||
$scope.StatusMessage = StatusMessage
|
||||
$scope.enterprises = Enterprise.index(order_cycle_id: $scope.orderCycleId())
|
||||
$scope.enterprise_fees = EnterpriseFee.index(order_cycle_id: $scope.orderCycleId())
|
||||
$scope.schedules = Schedules.index()
|
||||
$scope.schedules = Schedules.index({enterprise_id: ocInstance.coordinator_id})
|
||||
$scope.OrderCycle = OrderCycle
|
||||
$scope.order_cycle = OrderCycle.load $scope.orderCycleId(), (order_cycle) =>
|
||||
$scope.init()
|
||||
|
||||
@@ -47,7 +47,7 @@ angular.module("admin.orderCycles").directive 'scheduleDialog', ($window, $compi
|
||||
scope.schedule_form.$setPristine()
|
||||
scope.submitted = true
|
||||
scope.errors = []
|
||||
return scope.errors.push(t('admin.order_cycles.index.no_order_cycles_error')) unless scope.selectedOrderCycles.length > 0
|
||||
return scope.errors.push(t('js.admin.order_cycles.schedules.no_order_cycles_error')) unless scope.selectedOrderCycles.length > 0
|
||||
scope.schedule.order_cycle_ids = scope.selectedOrderCycles.map (oc) -> oc.id
|
||||
if scope.schedule_form.$valid
|
||||
method = if scope.schedule.id? then Schedules.update else Schedules.add
|
||||
|
||||
@@ -24,8 +24,3 @@ angular.module("admin.orders").controller "orderCtrl", ($scope, shops, orderCycl
|
||||
|
||||
for shop in $scope.shops
|
||||
shop.disabled = !$scope.distributorHasOrderCycles(shop)
|
||||
|
||||
# Removes the split button introduced by spree in the order form
|
||||
# We only have one stock location in OFN so it's meaningless to split the order between stock locations
|
||||
# We delete it instead of hiding or changing CSS so that, when spree code toggles the element, nothing hapens
|
||||
$('.split-item').remove()
|
||||
|
||||
@@ -1 +1 @@
|
||||
angular.module("admin.products", ["textAngular", "admin.utils"])
|
||||
angular.module("admin.products", ["textAngular", "admin.utils"])
|
||||
|
||||
@@ -3,6 +3,8 @@ angular.module("admin.resources").factory 'ScheduleResource', ($resource) ->
|
||||
'index':
|
||||
method: 'GET'
|
||||
isArray: true
|
||||
params:
|
||||
enterprise_id: '@enterprise_id'
|
||||
'create':
|
||||
method: 'POST'
|
||||
'update':
|
||||
|
||||
@@ -17,7 +17,7 @@ angular.module("admin.resources").factory "Schedules", ($q, $injector, RequestMo
|
||||
@byID[schedule.id] = schedule if schedule.id?
|
||||
Dereferencer.dereference(schedule.order_cycles, OrderCycles.byID)
|
||||
orderCycle.schedules.push(schedule) for orderCycle in schedule.order_cycles
|
||||
StatusMessage.display 'success', "#{t('admin.order_cycles.index.created_schedule')}: '#{schedule.name}'"
|
||||
StatusMessage.display 'success', "#{t('js.admin.order_cycles.schedules.created_schedule')}: '#{schedule.name}'"
|
||||
|
||||
update: (params) =>
|
||||
ScheduleResource.update params, (schedule) =>
|
||||
@@ -29,7 +29,7 @@ angular.module("admin.resources").factory "Schedules", ($q, $injector, RequestMo
|
||||
for orderCycle in schedule.order_cycles when orderCycle.id not in @byID[schedule.id].order_cycle_ids
|
||||
orderCycle.schedules.push(@byID[schedule.id])
|
||||
angular.extend(@byID[schedule.id], schedule)
|
||||
StatusMessage.display 'success', "#{t('admin.order_cycles.index.updated_schedule')}: '#{schedule.name}'"
|
||||
StatusMessage.display 'success', "#{t('js.admin.order_cycles.schedules.updated_schedule')}: '#{schedule.name}'"
|
||||
|
||||
remove: (schedule) ->
|
||||
params = id: schedule.id
|
||||
@@ -38,9 +38,9 @@ angular.module("admin.resources").factory "Schedules", ($q, $injector, RequestMo
|
||||
if orderCycle.schedules # Only if we need to update the schedules
|
||||
orderCycle.schedules.splice(i, 1) for s, i in orderCycle.schedules by -1 when s.id == schedule.id
|
||||
delete @byID[schedule.id]
|
||||
StatusMessage.display 'success', "#{t('admin.order_cycles.index.deleted_schedule')}: '#{schedule.name}'"
|
||||
StatusMessage.display 'success', "#{t('js.admin.order_cycles.schedules.deleted_schedule')}: '#{schedule.name}'"
|
||||
|
||||
index: ->
|
||||
request = ScheduleResource.index (data) => @load(data)
|
||||
index: (params) ->
|
||||
request = ScheduleResource.index params, (data) => @load(data)
|
||||
RequestMonitor.load(request.$promise)
|
||||
request
|
||||
|
||||
@@ -5,6 +5,7 @@ angular.module("admin.subscriptions").controller "OrderUpdateIssuesController",
|
||||
OrderCycles.byID[id].name
|
||||
|
||||
$scope.orderCycleCloses = (id) ->
|
||||
closes_at = moment(OrderCycles.byID[id].orders_close_at)
|
||||
text = if closes_at > moment() then t('js.closes') else t('js.closed')
|
||||
closes_at = moment(OrderCycles.byID[id].orders_close_at, "YYYY-MM-DD HH:mm:SS Z")
|
||||
key = if closes_at > moment() then "closes" else "closed"
|
||||
text = t("js.subscriptions." + key)
|
||||
"#{text} #{closes_at.fromNow()}"
|
||||
|
||||
@@ -15,7 +15,7 @@ angular.module("admin.subscriptions").controller "OrdersPanelController", ($scop
|
||||
$scope.orderCycleCloses = (id) ->
|
||||
oc = OrderCycles.byID[id]
|
||||
return t('js.subscriptions.close_date_not_set') unless oc?.orders_close_at?
|
||||
closes_at = moment(oc.orders_close_at)
|
||||
closes_at = moment(oc.orders_close_at, "YYYY-MM-DD HH:mm:SS Z")
|
||||
text = if closes_at > moment() then t('js.subscriptions.closes') else t('js.subscriptions.closed')
|
||||
"#{text} #{closes_at.fromNow()}"
|
||||
|
||||
|
||||
@@ -10,14 +10,14 @@ angular.module("admin.subscriptions").controller "ProductsPanelController", ($sc
|
||||
|
||||
$scope.save = ->
|
||||
$scope.saving = true
|
||||
StatusMessage.display 'progress', 'Saving...'
|
||||
StatusMessage.display 'progress', t('js.saving')
|
||||
$scope.subscription.update().then (response) ->
|
||||
$scope.saving = false
|
||||
StatusMessage.display 'success', 'Saved'
|
||||
StatusMessage.display 'success', t('js.changes_saved')
|
||||
, (response) ->
|
||||
$scope.saving = false
|
||||
if response.data?.errors?
|
||||
keys = Object.keys(response.data.errors)
|
||||
StatusMessage.display 'failure', response.data.errors[keys[0]][0]
|
||||
else
|
||||
StatusMessage.display 'success', 'Saved'
|
||||
StatusMessage.display 'success', t('js.changes_saved')
|
||||
|
||||
@@ -4,8 +4,8 @@ angular.module("admin.tagRules").directive "tagRule", ->
|
||||
link: (scope, element, attrs) ->
|
||||
scope.opt =
|
||||
"TagRule::FilterShippingMethods":
|
||||
textTop: "Shipping methods tagged"
|
||||
textBottom: "are:"
|
||||
textTop: t('js.admin.tag_rules.shipping_method_tagged_top')
|
||||
textBottom: t('js.admin.tag_rules.shipping_method_tagged_bottom')
|
||||
taggable: "shipping_method"
|
||||
tagsAttr: "shipping_method_tags"
|
||||
tagListAttr: "preferred_shipping_method_tags"
|
||||
@@ -13,8 +13,8 @@ angular.module("admin.tagRules").directive "tagRule", ->
|
||||
tagListFor: (rule) ->
|
||||
rule.preferred_shipping_method_tags
|
||||
"TagRule::FilterPaymentMethods":
|
||||
textTop: "Payment methods tagged"
|
||||
textBottom: "are:"
|
||||
textTop: t('js.admin.tag_rules.payment_method_tagged_top')
|
||||
textBottom: t('js.admin.tag_rules.payment_method_tagged_bottom')
|
||||
taggable: "payment_method"
|
||||
tagsAttr: "payment_method_tags"
|
||||
tagListAttr: "preferred_payment_method_tags"
|
||||
@@ -22,8 +22,8 @@ angular.module("admin.tagRules").directive "tagRule", ->
|
||||
tagListFor: (rule) ->
|
||||
rule.preferred_payment_method_tags
|
||||
"TagRule::FilterOrderCycles":
|
||||
textTop: "Order Cycles tagged"
|
||||
textBottom: "are:"
|
||||
textTop: t('js.admin.tag_rules.order_cycle_tagged_top')
|
||||
textBottom: t('js.admin.tag_rules.order_cycle_tagged_bottom')
|
||||
taggable: "exchange"
|
||||
tagsAttr: "exchange_tags"
|
||||
tagListAttr: "preferred_exchange_tags"
|
||||
@@ -31,8 +31,8 @@ angular.module("admin.tagRules").directive "tagRule", ->
|
||||
tagListFor: (rule) ->
|
||||
rule.preferred_exchange_tags
|
||||
"TagRule::FilterProducts":
|
||||
textTop: "Inventory variants tagged"
|
||||
textBottom: "are:"
|
||||
textTop: t('js.admin.tag_rules.inventory_tagged_top')
|
||||
textBottom: t('js.admin.tag_rules.inventory_tagged_bottom')
|
||||
taggable: "variant"
|
||||
tagsAttr: "variant_tags"
|
||||
tagListAttr: "preferred_variant_tags"
|
||||
|
||||
@@ -27,8 +27,6 @@ angular.module("admin.utils").directive "variantAutocomplete", ($timeout) ->
|
||||
window.variants = data # this is how spree auto complete JS code picks up variants
|
||||
results: data
|
||||
formatResult: (variant) ->
|
||||
if variant["images"][0] != undefined && variant["images"][0].image != undefined
|
||||
variant.image = variant.images[0].image.mini_url
|
||||
variantTemplate variant: variant
|
||||
formatSelection: (variant) ->
|
||||
element.parent().children(".options_placeholder").html variant.options_text
|
||||
|
||||
@@ -1,12 +0,0 @@
|
||||
Darkswarm.controller "GroupEnterpriseNodeCtrl", ($scope, CurrentHub) ->
|
||||
|
||||
$scope.active = false
|
||||
|
||||
$scope.toggle = ->
|
||||
$scope.active = !$scope.active
|
||||
|
||||
$scope.open = ->
|
||||
$scope.active
|
||||
|
||||
$scope.current = ->
|
||||
$scope.hub.id is CurrentHub.hub.id
|
||||
@@ -1,22 +1,6 @@
|
||||
Darkswarm.controller "GroupPageCtrl", ($scope, group_enterprises, Enterprises, MapConfiguration, OfnMap, visibleFilter, Navigation) ->
|
||||
Darkswarm.controller "GroupPageCtrl", ($scope, enterprises, Enterprises, MapConfiguration, OfnMap) ->
|
||||
$scope.Enterprises = Enterprises
|
||||
|
||||
all_enterprises_by_id = Enterprises.enterprises_by_id
|
||||
|
||||
dereferenced_enterprises = group_enterprises.map (enterprise) =>
|
||||
all_enterprises_by_id[enterprise.id]
|
||||
|
||||
visible_enterprises = visibleFilter dereferenced_enterprises
|
||||
|
||||
# TODO: this is duplicate code with app/assets/javascripts/darkswarm/services/enterprises.js.coffee
|
||||
# It would be better to load only the needed enterprises (group + related shops).
|
||||
$scope.group_producers = visible_enterprises.filter (enterprise) ->
|
||||
enterprise.category in ["producer_hub", "producer_shop", "producer"]
|
||||
$scope.group_hubs = visible_enterprises.filter (enterprise) ->
|
||||
enterprise.category in ["hub", "hub_profile", "producer_hub", "producer_shop"]
|
||||
|
||||
$scope.producers_to_filter = $scope.group_producers
|
||||
|
||||
$scope.map = angular.copy MapConfiguration.options
|
||||
$scope.mapMarkers = OfnMap.enterprise_markers visible_enterprises
|
||||
$scope.embedded_layout = window.location.search.indexOf("embedded_shopfront=true") != -1
|
||||
$scope.mapMarkers = OfnMap.enterprise_markers enterprises
|
||||
$scope.embedded_layout = window.location.search.indexOf("embedded_shopfront=true") != -1
|
||||
|
||||
@@ -1,9 +1,44 @@
|
||||
Darkswarm.controller "HubNodeCtrl", ($scope, HashNavigation, Navigation, $location, $templateCache, CurrentHub) ->
|
||||
$scope.toggle = (e) ->
|
||||
HashNavigation.toggle $scope.hub.hash if !angular.element(e.target).inheritedData('is-link')
|
||||
Darkswarm.controller "HubNodeCtrl", ($scope, HashNavigation, CurrentHub, $http, $timeout) ->
|
||||
$scope.shopfront_loading = false
|
||||
$scope.enterprise_details = []
|
||||
|
||||
$timeout ->
|
||||
if $scope.open()
|
||||
$scope.load_shopfront()
|
||||
|
||||
# Toggles shopfront tabs open/closed. Fetches enterprise details from the api, diplays them and adds them
|
||||
# to $scope.enterprise_details, or simply displays the details again if previously fetched
|
||||
$scope.toggle = (event) ->
|
||||
if $scope.open()
|
||||
$scope.toggle_tab(event)
|
||||
return
|
||||
|
||||
if $scope.enterprise_details[$scope.hub.id]
|
||||
$scope.hub = $scope.enterprise_details[$scope.hub.id]
|
||||
$scope.toggle_tab(event)
|
||||
return
|
||||
|
||||
$scope.load_shopfront(event)
|
||||
|
||||
$scope.load_shopfront = (event=null) ->
|
||||
$scope.shopfront_loading = true
|
||||
$scope.toggle_tab(event)
|
||||
|
||||
$http.get("/api/enterprises/" + $scope.hub.id + "/shopfront")
|
||||
.success (data) ->
|
||||
$scope.shopfront_loading = false
|
||||
$scope.hub = data
|
||||
$scope.enterprise_details[$scope.hub.id] = $scope.hub
|
||||
.error (data) ->
|
||||
console.error(data)
|
||||
|
||||
$scope.toggle_tab = (event) ->
|
||||
HashNavigation.toggle $scope.hub.hash if event && !angular.element(event.target).inheritedData('is-link')
|
||||
|
||||
# Returns boolean: pulldown tab is currently open/closed
|
||||
$scope.open = ->
|
||||
HashNavigation.active $scope.hub.hash
|
||||
|
||||
|
||||
# Returns boolean: is this hub the hub that the user is currently "shopping" in?
|
||||
$scope.current = ->
|
||||
$scope.hub.id is CurrentHub.hub.id
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
Darkswarm.controller "OffcanvasCtrl", ($scope) ->
|
||||
$scope.menu = $(".left-off-canvas-menu")
|
||||
|
||||
$scope.setOffcanvasMenuHeight = ->
|
||||
$scope.menu.height($(window).height())
|
||||
|
||||
$scope.bind = ->
|
||||
$(window).on("resize", $scope.setOffcanvasMenuHeight)
|
||||
$scope.setOffcanvasMenuHeight()
|
||||
|
||||
$scope.bind()
|
||||
@@ -1,6 +1,39 @@
|
||||
Darkswarm.controller "ProducerNodeCtrl", ($scope, HashNavigation, $anchorScroll) ->
|
||||
$scope.toggle = ->
|
||||
HashNavigation.toggle $scope.producer.hash
|
||||
Darkswarm.controller "ProducerNodeCtrl", ($scope, HashNavigation, $anchorScroll, $http, $timeout) ->
|
||||
$scope.shopfront_loading = false
|
||||
$scope.enterprise_details = []
|
||||
|
||||
$timeout ->
|
||||
if $scope.open()
|
||||
$scope.load_shopfront()
|
||||
|
||||
# Toggles shopfront tabs open/closed. Fetches enterprise details from the api, diplays them and adds them
|
||||
# to $scope.enterprise_details, or simply displays the details again if previously fetched
|
||||
$scope.toggle = (event) ->
|
||||
if $scope.open()
|
||||
$scope.toggle_tab(event)
|
||||
return
|
||||
|
||||
if $scope.enterprise_details[$scope.producer.id]
|
||||
$scope.producer = $scope.enterprise_details[$scope.producer.id]
|
||||
$scope.toggle_tab(event)
|
||||
return
|
||||
|
||||
$scope.load_shopfront(event)
|
||||
|
||||
$scope.load_shopfront = (event=null) ->
|
||||
$scope.shopfront_loading = true
|
||||
$scope.toggle_tab(event)
|
||||
|
||||
$http.get("/api/enterprises/" + $scope.producer.id + "/shopfront")
|
||||
.success (data) ->
|
||||
$scope.shopfront_loading = false
|
||||
$scope.producer = data
|
||||
$scope.enterprise_details[$scope.producer.id] = $scope.producer
|
||||
.error (data) ->
|
||||
console.error(data)
|
||||
|
||||
$scope.toggle_tab = (event) ->
|
||||
HashNavigation.toggle $scope.producer.hash if event && !angular.element(event.target).inheritedData('is-link')
|
||||
|
||||
$scope.open = ->
|
||||
HashNavigation.active($scope.producer.hash)
|
||||
|
||||
@@ -45,12 +45,12 @@ Darkswarm.controller "ProductsCtrl", ($scope, $filter, $rootScope, Products, Ord
|
||||
$scope.appliedTaxonsList = ->
|
||||
$scope.activeTaxons.map( (taxon_id) ->
|
||||
Taxons.taxons_by_id[taxon_id].name
|
||||
).join(" & ") if $scope.activeTaxons?
|
||||
).join(" #{t('products_or')} ") if $scope.activeTaxons?
|
||||
|
||||
$scope.appliedPropertiesList = ->
|
||||
$scope.activeProperties.map( (property_id) ->
|
||||
Properties.properties_by_id[property_id].name
|
||||
).join(" & ") if $scope.activeProperties?
|
||||
).join(" #{t('products_or')} ") if $scope.activeProperties?
|
||||
|
||||
$scope.clearAll = ->
|
||||
$scope.query = ""
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
Darkswarm.controller "AboutUsCtrl", ($scope, CurrentHub) ->
|
||||
$scope.CurrentHub = CurrentHub
|
||||
Darkswarm.controller "AboutUsCtrl", ($scope, Shopfront) ->
|
||||
$scope.shopfront = Shopfront.shopfront
|
||||
|
||||
@@ -1,4 +1,2 @@
|
||||
Darkswarm.controller "ProducersTabCtrl", ($scope, CurrentHub, Enterprises, EnterpriseModal) ->
|
||||
# Injecting Enterprises so CurrentHub.producers is dereferenced.
|
||||
# We should probably dereference here instead and separate out CurrentHub dereferencing from the Enterprise factory.
|
||||
$scope.CurrentHub = CurrentHub
|
||||
Darkswarm.controller "ProducersTabCtrl", ($scope, Shopfront, EnterpriseModal) ->
|
||||
$scope.shopfront = Shopfront.shopfront
|
||||
|
||||
@@ -1,8 +0,0 @@
|
||||
Darkswarm.directive "cart", ->
|
||||
# Toggles visibility of the "cart" popover
|
||||
restrict: 'A'
|
||||
link: (scope, elem, attr)->
|
||||
scope.open = false
|
||||
elem.bind 'click', ->
|
||||
scope.$apply ->
|
||||
scope.open = !scope.open
|
||||
@@ -0,0 +1,19 @@
|
||||
Darkswarm.directive "cartToggle", ($document) ->
|
||||
# Toggles visibility of the "cart" popover
|
||||
restrict: 'A'
|
||||
link: (scope, elem, attr)->
|
||||
scope.open = false
|
||||
|
||||
$document.bind 'click', (event) ->
|
||||
cart_button = elem[0]
|
||||
element_and_parents = [event.target, event.target.parentElement, event.target.parentElement.parentElement]
|
||||
cart_button_clicked = (element_and_parents.indexOf(cart_button) != -1)
|
||||
|
||||
if cart_button_clicked
|
||||
scope.$apply ->
|
||||
scope.open = !scope.open
|
||||
else
|
||||
scope.$apply ->
|
||||
scope.open = false
|
||||
|
||||
return
|
||||
@@ -1,15 +1,10 @@
|
||||
Darkswarm.directive "enterpriseModal", ($modal, Enterprises, EnterpriseResource) ->
|
||||
Darkswarm.directive "enterpriseModal", (EnterpriseModal) ->
|
||||
restrict: 'E'
|
||||
replace: true
|
||||
template: "<a ng-transclude></a>"
|
||||
transclude: true
|
||||
link: (scope, elem, attrs, ctrl) ->
|
||||
elem.on "click", (ev) =>
|
||||
ev.stopPropagation()
|
||||
params =
|
||||
id: scope.enterprise.id
|
||||
EnterpriseResource.relatives params, (data) =>
|
||||
Enterprises.addEnterprises data
|
||||
scope.enterprise = Enterprises.enterprises_by_id[scope.enterprise.id]
|
||||
Enterprises.dereferenceEnterprise scope.enterprise
|
||||
scope.modalInstance = $modal.open(controller: ctrl, templateUrl: 'enterprise_modal.html', scope: scope)
|
||||
elem.on "click", (event) =>
|
||||
event.stopPropagation()
|
||||
|
||||
scope.modalInstance = EnterpriseModal.open scope.enterprise
|
||||
@@ -13,11 +13,16 @@ Darkswarm.directive "ofnOnHand", ->
|
||||
ngModel.$setDirty = setDirty
|
||||
|
||||
ngModel.$parsers.push (viewValue) ->
|
||||
on_hand = parseInt(attr.ofnOnHand)
|
||||
if parseInt(viewValue) > on_hand
|
||||
alert t("js.insufficient_stock", {on_hand: on_hand})
|
||||
viewValue = on_hand
|
||||
available_quantity = scope.available_quantity()
|
||||
if parseInt(viewValue) > available_quantity
|
||||
alert t("js.insufficient_stock", {on_hand: available_quantity})
|
||||
viewValue = available_quantity
|
||||
ngModel.$setViewValue viewValue
|
||||
ngModel.$render()
|
||||
|
||||
viewValue
|
||||
|
||||
scope.available_quantity = ->
|
||||
on_hand = parseInt(attr.ofnOnHand)
|
||||
finalized_quantity = parseInt(attr.finalizedquantity) || 0 # finalizedquantity is optional
|
||||
on_hand + finalized_quantity
|
||||
|
||||
@@ -2,7 +2,14 @@ Darkswarm.directive "ofnPageAlert", ($timeout) ->
|
||||
restrict: 'A'
|
||||
scope: true
|
||||
link: (scope, elem, attrs) ->
|
||||
container_elems = $(".off-canvas-wrap .inner-wrap, .off-canvas-wrap .inner-wrap .fixed, .page-alert")
|
||||
moveSelectors = [".off-canvas-wrap .inner-wrap",
|
||||
".off-canvas-wrap .inner-wrap .fixed",
|
||||
".off-canvas-fixed .top-bar",
|
||||
".off-canvas-fixed ofn-flash",
|
||||
".off-canvas-fixed nav.tab-bar",
|
||||
".off-canvas-fixed .page-alert"]
|
||||
|
||||
container_elems = $(moveSelectors.join(", "))
|
||||
|
||||
# Wait a moment after page load before showing the alert. Otherwise we often miss the
|
||||
# start of the animation.
|
||||
|
||||
@@ -1,9 +1,12 @@
|
||||
Darkswarm.factory "EnterpriseModal", ($modal, $rootScope)->
|
||||
Darkswarm.factory "EnterpriseModal", ($modal, $rootScope, $http)->
|
||||
# Build a modal popup for an enterprise.
|
||||
new class EnterpriseModal
|
||||
open: (enterprise)->
|
||||
scope = $rootScope.$new(true) # Spawn an isolate to contain the enterprise
|
||||
scope.embedded_layout = window.location.search.indexOf("embedded_shopfront=true") != -1
|
||||
|
||||
scope.enterprise = enterprise
|
||||
$modal.open(templateUrl: "enterprise_modal.html", scope: scope)
|
||||
$http.get("/api/enterprises/" + enterprise.id + "/shopfront").success (data) ->
|
||||
scope.enterprise = data
|
||||
$modal.open(templateUrl: "enterprise_modal.html", scope: scope)
|
||||
.error (data) ->
|
||||
console.error(data)
|
||||
|
||||
@@ -1,18 +1,21 @@
|
||||
Darkswarm.factory 'Enterprises', (enterprises, CurrentHub, Taxons, Dereferencer, visibleFilter, Matcher, Geo, $rootScope) ->
|
||||
Darkswarm.factory 'Enterprises', (enterprises, CurrentHub, Taxons, Dereferencer, Matcher, Geo, $rootScope) ->
|
||||
new class Enterprises
|
||||
enterprises_by_id: {}
|
||||
|
||||
constructor: ->
|
||||
# Populate Enterprises.enterprises from json in page.
|
||||
@enterprises = enterprises
|
||||
|
||||
# Map enterprises to id/object pairs for lookup.
|
||||
for enterprise in enterprises
|
||||
@enterprises_by_id[enterprise.id] = enterprise
|
||||
|
||||
# Replace enterprise and taxons ids with actual objects.
|
||||
@dereferenceEnterprises()
|
||||
@visible_enterprises = visibleFilter @enterprises
|
||||
@producers = @visible_enterprises.filter (enterprise)->
|
||||
|
||||
@producers = @enterprises.filter (enterprise)->
|
||||
enterprise.category in ["producer_hub", "producer_shop", "producer"]
|
||||
@hubs = @visible_enterprises.filter (enterprise)->
|
||||
@hubs = @enterprises.filter (enterprise)->
|
||||
enterprise.category in ["hub", "hub_profile", "producer_hub", "producer_shop"]
|
||||
|
||||
dereferenceEnterprises: ->
|
||||
@@ -22,8 +25,6 @@ Darkswarm.factory 'Enterprises', (enterprises, CurrentHub, Taxons, Dereferencer,
|
||||
@dereferenceEnterprise enterprise
|
||||
|
||||
dereferenceEnterprise: (enterprise) ->
|
||||
@dereferenceProperty(enterprise, 'hubs', @enterprises_by_id)
|
||||
@dereferenceProperty(enterprise, 'producers', @enterprises_by_id)
|
||||
@dereferenceProperty(enterprise, 'taxons', Taxons.taxons_by_id)
|
||||
@dereferenceProperty(enterprise, 'supplied_taxons', Taxons.taxons_by_id)
|
||||
|
||||
|
||||
@@ -1,14 +1,3 @@
|
||||
Darkswarm.factory 'Groups', (groups, Enterprises, Dereferencer) ->
|
||||
Darkswarm.factory 'Groups', (groups) ->
|
||||
new class Groups
|
||||
groups: groups
|
||||
groups_by_id: {}
|
||||
constructor: ->
|
||||
for group in @groups
|
||||
@groups_by_id[group.id] = group
|
||||
@dereference()
|
||||
dereference: ->
|
||||
for group in @groups
|
||||
Dereferencer.dereference group.enterprises, Enterprises.enterprises_by_id
|
||||
for enterprise in Enterprises.enterprises
|
||||
Dereferencer.dereference enterprise.groups, @groups_by_id
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
Darkswarm.factory "OfnMap", (Enterprises, EnterpriseModal, visibleFilter) ->
|
||||
Darkswarm.factory "OfnMap", (Enterprises, EnterpriseModal) ->
|
||||
new class OfnMap
|
||||
constructor: ->
|
||||
@enterprises = @enterprise_markers(Enterprises.enterprises)
|
||||
@@ -6,7 +6,7 @@ Darkswarm.factory "OfnMap", (Enterprises, EnterpriseModal, visibleFilter) ->
|
||||
enterprise.latitude != null || enterprise.longitude != null # Remove enterprises w/o lat or long
|
||||
|
||||
enterprise_markers: (enterprises) ->
|
||||
@extend(enterprise) for enterprise in visibleFilter(enterprises)
|
||||
@extend(enterprise) for enterprise in enterprises
|
||||
|
||||
# Adding methods to each enterprise
|
||||
extend: (enterprise) ->
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
Darkswarm.factory 'Products', ($resource, Enterprises, Dereferencer, Taxons, Properties, Cart, Variants) ->
|
||||
Darkswarm.factory 'Products', ($resource, Shopfront, Dereferencer, Taxons, Properties, Cart, Variants) ->
|
||||
new class Products
|
||||
constructor: ->
|
||||
@update()
|
||||
@@ -31,7 +31,7 @@ Darkswarm.factory 'Products', ($resource, Enterprises, Dereferencer, Taxons, Pro
|
||||
|
||||
dereference: ->
|
||||
for product in @products
|
||||
product.supplier = Enterprises.enterprises_by_id[product.supplier.id]
|
||||
product.supplier = Shopfront.producers_by_id[product.supplier.id]
|
||||
Dereferencer.dereference product.taxons, Taxons.taxons_by_id
|
||||
|
||||
product.properties = angular.copy(product.properties_with_values)
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
Darkswarm.factory 'Shopfront', (shopfront) ->
|
||||
new class Shopfront
|
||||
shopfront: shopfront
|
||||
producers_by_id: {}
|
||||
|
||||
constructor: ->
|
||||
for producer in shopfront.producers
|
||||
@producers_by_id[producer.id] = producer
|
||||
@@ -1,15 +1,15 @@
|
||||
#new-customer-dialog
|
||||
.text-normal.margin-bottom-30.text-center
|
||||
{{ 'admin.customers.index.add_a_new_customer_for' | t:{ shop_name: CurrentShop.shop.name } }}
|
||||
{{ 'js.admin.customers.index.add_a_new_customer_for' | t:{ shop_name: CurrentShop.shop.name } }}
|
||||
|
||||
%form{ name: 'new_customer_form', novalidate: true, ng: { submit: "addCustomer()" }}
|
||||
|
||||
.text-center.margin-bottom-30
|
||||
%input.fullwidth{ type: 'email', name: 'email', required: true, placeholder: t('admin.customers.index.customer_placeholder'), ng: { model: "email" } }
|
||||
%input.fullwidth{ type: 'email', name: 'email', required: true, placeholder: "{{ 'js.admin.customers.index.customer_placeholder' | t }}", ng: { model: "email" } }
|
||||
%div{ ng: { show: "submitted && new_customer_form.$pristine" } }
|
||||
.error{ ng: { show: "(new_customer_form.email.$error.email || new_customer_form.email.$error.required)" } }
|
||||
{{ 'admin.customers.index.valid_email_error' | t }}
|
||||
{{ 'js.admin.customers.index.valid_email_error' | t }}
|
||||
.error{ ng: { repeat: "error in errors", bind: "error" } }
|
||||
|
||||
.text-center
|
||||
%input.button.red.icon-plus{ type: 'submit', value: t('admin.customers.index.add_customer') }
|
||||
%input.button.red.icon-plus{ type: 'submit', value: "{{ 'js.admin.customers.index.add_customer' | t }}" }
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
#new-subscription-dialog
|
||||
.text-normal.margin-bottom-30.text-center
|
||||
= t('admin.subscriptions.index.please_select_a_shop')
|
||||
= t('js.admin.subscriptions.new.please_select_a_shop')
|
||||
|
||||
%form{ name: 'new_subscription_form', novalidate: true, ng: { submit: "newSubscription()" }}
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
%input.ofn-select2.fullwidth#new_subscription_shop_id{ ng: { model: 'shop_id' }, required: true, name: 'shop_id', data: 'shops' }
|
||||
%div{ ng: { show: "submitted && new_subscription_form.$pristine" } }
|
||||
.error{ ng: { show: "new_subscription_form.shop_id.$error.required" } }
|
||||
= t('admin.subscriptions.index.please_select_a_shop')
|
||||
= t('js.admin.subscriptions.new.please_select_a_shop')
|
||||
|
||||
.text-center
|
||||
%input.button.red.icon-plus{ type: 'submit', value: t('continue') }
|
||||
|
||||
@@ -7,4 +7,4 @@
|
||||
%input.ofn-select2.fullwidth{ :id => 'rule_type_selector', ng: { model: "ruleType" }, data: "ruleTypes", 'min-search' => "5" }
|
||||
|
||||
.text-center
|
||||
%input.button.red.icon-plus{ type: 'button', value: "Add Rule", ng: { click: 'addRule(tagGroup, ruleType)' } }
|
||||
%input.button.red.icon-plus{ type: 'button', value: "{{ 'js.admin.new_tag_rule_dialog.add_rule' | t }}", ng: { click: 'addRule(tagGroup, ruleType)' } }
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
%table
|
||||
%tr
|
||||
%td#available-order-cycles
|
||||
Available
|
||||
{{ 'js.admin.order_cycles.schedules.available' | t }}
|
||||
.order-cycles
|
||||
.order-cycle{ ng: { repeat: 'orderCycle in orderCycles | available:selectedOrderCycles as availableOrderCycles', click: 'selections.available = orderCycle', dblclick: 'add(orderCycle)', class: '{selected: selections.available == orderCycle}' } }
|
||||
{{ orderCycle.name }}
|
||||
@@ -11,7 +11,7 @@
|
||||
%a.remove.button{ href: 'javascript:void(0)', ng: { click: 'remove()' } }
|
||||
%i.icon-chevron-left
|
||||
%td#selected-order-cycles
|
||||
Selected
|
||||
{{ 'js.admin.order_cycles.schedules.selected' | t }}
|
||||
.order-cycles
|
||||
.order-cycle{ ng: { repeat: 'orderCycle in selectedOrderCycles', click: 'selections.selected = orderCycle', dblclick: 'remove(orderCycle)', class: '{selected: selections.selected == orderCycle}' } }
|
||||
{{ orderCycle.name }}
|
||||
|
||||
@@ -1,23 +1,25 @@
|
||||
#schedule-dialog
|
||||
.text-normal.margin-bottom-30.text-center
|
||||
%span{ ng: { hide: 'schedule.id' } }= t('admin.order_cycles.index.adding_a_new_schedule')
|
||||
%span{ ng: { show: 'schedule.id' } }= t('admin.order_cycles.index.updating_a_schedule')
|
||||
%span{ ng: { hide: 'schedule.id' } }
|
||||
{{ 'js.admin.order_cycles.schedules.adding_a_new_schedule' | t }}
|
||||
%span{ ng: { show: 'schedule.id' } }
|
||||
{{ 'js.admin.order_cycles.schedules.updating_a_schedule' | t }}
|
||||
|
||||
%form{ name: 'schedule_form', novalidate: true, ng: { submit: "submit()" }}
|
||||
|
||||
.text-center.margin-bottom-20
|
||||
%input.fullwidth{ type: 'text', name: 'name', required: true, placeholder: t('admin.order_cycles.index.schedule_name_placeholder'), ng: { model: "schedule.name" } }
|
||||
%input.fullwidth{ type: 'text', name: 'name', required: true, placeholder: "{{ 'js.admin.order_cycles.schedules.schedule_name_placeholder' | t }}", ng: { model: "schedule.name" } }
|
||||
%div{ ng: { show: "submitted && schedule_form.$pristine" } }
|
||||
.error{ ng: { show: "(schedule_form.name.$error.required)" } }
|
||||
= t('admin.order_cycles.index.name_required_error')
|
||||
{{ 'js.admin.order_cycles.schedules.name_required_error' | t }}
|
||||
|
||||
.order-cycles-selector.text-center.margin-bottom-30
|
||||
|
||||
.text-center
|
||||
|
||||
%input.button{ type: 'submit', value: t('admin.order_cycles.index.create_schedule'), ng: { hide: 'schedule.id' } }
|
||||
%input.button{ type: 'submit', value: t('admin.order_cycles.index.update_schedule'), ng: { show: 'schedule.id' } }
|
||||
%input.button{ type: 'submit', value: "{{ 'js.admin.order_cycles.schedules.create_schedule' | t }}", ng: { hide: 'schedule.id' } }
|
||||
%input.button{ type: 'submit', value: "{{ 'js.admin.order_cycles.schedules.update_schedule' | t }}", ng: { show: 'schedule.id' } }
|
||||
%span{ ng: { show: 'schedule.id' } } or
|
||||
%input.button.red{ type: 'button', value: t('admin.order_cycles.index.delete_schedule'), ng: { show: 'schedule.id', click: 'delete()'} }
|
||||
%input.button.red{ type: 'button', value: "{{ 'js.admin.order_cycles.schedules.delete_schedule' | t }}", ng: { show: 'schedule.id', click: 'delete()'} }
|
||||
or
|
||||
%input.button{ type: 'button', value: t('actions.cancel'), ng: { click: 'close()' } }
|
||||
%input.button{ type: 'button', value: "{{ 'actions.cancel' | t }}", ng: { click: 'close()' } }
|
||||
|
||||
@@ -2,14 +2,14 @@
|
||||
-# Do not show this for producer shops selling only their own produce,
|
||||
-# Since a shopping link will already have been displayed in hub_details.html.haml
|
||||
.row.active_table_row.pad-top{ "ng-if" => "enterprise.is_primary_producer && enterprise.hubs.length > 0 && !(enterprise.hubs.length == 1 && enterprise.hubs[0] == enterprise)"}
|
||||
.columns.small-12
|
||||
.columns.small-12.cta-container
|
||||
.row
|
||||
.columns.small-12.fat
|
||||
%div{"ng-if" => "::enterprise.name"}
|
||||
%label{"ng-html" => "::'shop_for_products_html' | t:{enterprise: enterprise.name}"}
|
||||
%label{"ng-bind-html" => "::'shop_for_products_html' | t:{enterprise: enterprise.name}"}
|
||||
%div.show-for-medium-up{"ng-if" => "::!enterprise.name"}
|
||||
|
||||
.row.cta-container
|
||||
.row
|
||||
.columns.small-12
|
||||
%a.cta-hub{"ng-repeat" => "hub in enterprise.hubs | filter:{id: '!'+enterprise.id} | orderBy:'-active'",
|
||||
"ng-href" => "{{::hub.path}}", "ofn-empties-cart" => "hub",
|
||||
|
||||
@@ -5,12 +5,10 @@
|
||||
*
|
||||
|
||||
*= require admin/spree_backend
|
||||
*= require admin/spree_auth
|
||||
|
||||
*= require jquery-ui-timepicker-addon
|
||||
*= require shared/textAngular
|
||||
*= require shared/ng-tags-input.min
|
||||
*= require admin/custom
|
||||
|
||||
*= require_self
|
||||
*/
|
||||
|
||||
@@ -1,2 +1 @@
|
||||
/* Custom fix */
|
||||
.ui-timepicker-div.ui-timepicker-oneLine dl dd { width: 25%; }
|
||||
@@ -154,19 +154,6 @@ form.order_cycle {
|
||||
.actions {
|
||||
margin-top: 3em;
|
||||
}
|
||||
|
||||
/* This styling makes it easier to read the debug info at the same time as working with the
|
||||
* interface, but it breaks the tests. Enable when you need it.
|
||||
#order-cycles-debug {
|
||||
position: fixed;
|
||||
top: 0px;
|
||||
left: 0px;
|
||||
height: 100%;
|
||||
width: 316px;
|
||||
overflow-y: scroll;
|
||||
background-color: #fff;
|
||||
}
|
||||
*/
|
||||
}
|
||||
|
||||
table#listing_order_cycles {
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
.add-line-item {
|
||||
fieldset {
|
||||
.vertical-align-top {
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
.actions {
|
||||
padding-top: 18px;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -10,6 +10,7 @@
|
||||
@import 'foundation-icons';
|
||||
|
||||
@import 'base/*';
|
||||
@import 'layout/*';
|
||||
@import '*';
|
||||
@import 'pages/*';
|
||||
@import '../web/all';
|
||||
|
||||
@@ -35,5 +35,6 @@ $med-grey: #666;
|
||||
$med-drk-grey: #444;
|
||||
$dark-grey: #333;
|
||||
$light-grey: #ddd;
|
||||
$light-grey-transparency: rgba(0, 0, 0, .1);
|
||||
$black: #000;
|
||||
$white: #fff;
|
||||
|
||||
52
app/assets/stylesheets/darkswarm/collapsible.css.scss
Normal file
@@ -0,0 +1,52 @@
|
||||
// A bit arbitrary, works for it's use at time of implementation
|
||||
$collapsible-max-height: 350px;
|
||||
|
||||
.collapsible-checkbox {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.collapsible-label > ::before {
|
||||
border-bottom: 5px solid transparent;
|
||||
border-left: 5px solid currentColor;
|
||||
border-top: 5px solid transparent;
|
||||
|
||||
content: ' ';
|
||||
display: inline-block;
|
||||
|
||||
margin-right: .7rem;
|
||||
transform: translateY(-2px);
|
||||
transition: transform .2s ease-out;
|
||||
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
.collapsible-content {
|
||||
max-height: 0;
|
||||
overflow: hidden;
|
||||
|
||||
transition: max-height .25s ease-in-out;
|
||||
}
|
||||
|
||||
.collapsible-checkbox:checked + .collapsible-label + .collapsible-content {
|
||||
max-height: $collapsible-max-height;
|
||||
}
|
||||
|
||||
.collapsible-checkbox:checked + .collapsible-label > ::before {
|
||||
transform: rotate(90deg) translateX(-3px);
|
||||
}
|
||||
|
||||
@media only screen and (min-width: 1025px) {
|
||||
// This double class is used to so this rule is more specific than the one in
|
||||
// all.scss
|
||||
.collapsible-label.collapsible-label-md {
|
||||
margin-left: 0;
|
||||
}
|
||||
|
||||
.collapsible-label-md > ::before {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.collapsible-content-md {
|
||||
max-height: $collapsible-max-height;
|
||||
}
|
||||
}
|
||||
@@ -60,7 +60,6 @@ body.embedded {
|
||||
vertical-align: top;
|
||||
|
||||
&.cart {
|
||||
|
||||
div.joyride-tip-guide { // Cart Dropdown
|
||||
top: 75px;
|
||||
overflow: visible;
|
||||
|
||||
@@ -1,31 +0,0 @@
|
||||
@import "variables";
|
||||
|
||||
nav.top-bar {
|
||||
margin-bottom: 0px;
|
||||
|
||||
a.icon {
|
||||
&:hover {
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
height: $topbar-height;
|
||||
color: white;
|
||||
|
||||
i {
|
||||
font-size: 29px;
|
||||
line-height: $topbar-height;
|
||||
}
|
||||
|
||||
span {
|
||||
font-size: 13px;
|
||||
display: inline-block;
|
||||
line-height: $topbar-height;
|
||||
height: $topbar-height;
|
||||
vertical-align: top;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
body > section[role='main'] {
|
||||
padding: 0px;
|
||||
}
|
||||
17
app/assets/stylesheets/darkswarm/layout/offcanvas.css.scss
Normal file
@@ -0,0 +1,17 @@
|
||||
@import "compass/css3/transition";
|
||||
|
||||
.off-canvas-fixed {
|
||||
@include transition(transform 1000ms ease-in-out);
|
||||
}
|
||||
|
||||
.move-right > .off-canvas-fixed {
|
||||
height: 100%;
|
||||
-webkit-transform: translate3d(15.625rem, 0, 0);
|
||||
transform: translate3d(15.625rem, 0, 0);
|
||||
}
|
||||
|
||||
.left-off-canvas-menu {
|
||||
-webkit-transform: none;
|
||||
transform: none;
|
||||
margin-left: -15.625rem;
|
||||
}
|
||||
@@ -1,103 +1,213 @@
|
||||
@import "compass";
|
||||
@import "branding";
|
||||
@import "mixins";
|
||||
@import "typography";
|
||||
@import "variables";
|
||||
@import 'compass';
|
||||
@import 'branding';
|
||||
@import 'mixins';
|
||||
@import 'typography';
|
||||
@import 'variables';
|
||||
|
||||
nav {
|
||||
nav.top-bar {
|
||||
@include textpress;
|
||||
|
||||
text-shadow: none;
|
||||
|
||||
// Create center style for nav ul (foundation provides left and right)
|
||||
text-align: center;
|
||||
font-size: 16px;
|
||||
margin-bottom: 0;
|
||||
height: $topbar-height;
|
||||
}
|
||||
|
||||
.top-bar-section {
|
||||
// Avoid menu items blocking logo
|
||||
li:not(.has-form), li:not(.has-form) a:not(.button), li:not(.has-form) a:not(.button):hover {
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
ul.center {
|
||||
display: inline-block;
|
||||
|
||||
// By default, we center between the left and right uls, but we want to be centered
|
||||
// relative to the whole page. The difference in width between the other uls is 74px,
|
||||
// so we offset by that amount here.
|
||||
margin-left: -74px;
|
||||
}
|
||||
}
|
||||
|
||||
.joyride-tip-guide .button {
|
||||
text-shadow: none;
|
||||
}
|
||||
|
||||
// Default overrides - big menu
|
||||
.top-bar-section .has-dropdown > a {
|
||||
padding-right: ($topbar-height / 3) !important;
|
||||
|
||||
i.ofn-i_022-cog, .ofn-i_071-globe {
|
||||
font-size: 24px;
|
||||
line-height: $topbar-height;
|
||||
}
|
||||
|
||||
i.ofn-i_071-globe {
|
||||
color: #666;
|
||||
font-size: 27px
|
||||
}
|
||||
}
|
||||
|
||||
.top-bar-section .has-dropdown > a:after {
|
||||
@media #{$large-only} {
|
||||
.top-bar--menu-item-with-icon span {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.top-bar-section ul li > a {
|
||||
font-size: 0.75rem;
|
||||
height: $topbar-height;
|
||||
opacity: 0.8;
|
||||
|
||||
&:hover, &:focus, &:active {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
@include transition(all 0.3s ease-in-out);
|
||||
}
|
||||
|
||||
.top-bar-section ul li.ofn-logo > a {
|
||||
display: table-cell;
|
||||
.top-bar--current-hub-prefix,
|
||||
.top-bar--current-hub-name {
|
||||
display: inline-block;
|
||||
vertical-align: middle;
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
.nav-branded {
|
||||
color: $brand-colour;
|
||||
.top-bar--current-hub-name {
|
||||
max-width: 10em;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
}
|
||||
}
|
||||
|
||||
span {
|
||||
font-size: 13px;
|
||||
.top-bar-section ul li > a.top-bar--menu-item-with-icon {
|
||||
display: inline;
|
||||
}
|
||||
|
||||
.top-bar--menu-item-with-icon i,
|
||||
.top-bar--menu-item-with-icon img {
|
||||
line-height: $topbar-height;
|
||||
}
|
||||
|
||||
.top-bar-section {
|
||||
border-bottom: 1px solid $light-grey-transparency;
|
||||
|
||||
a.icon {
|
||||
&:hover {
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
> span {
|
||||
display: inline-block;
|
||||
font-weight: 300;
|
||||
height: $topbar-height;
|
||||
line-height: $topbar-height;
|
||||
vertical-align: top;
|
||||
}
|
||||
}
|
||||
|
||||
.nav-primary {
|
||||
@include headingFont;
|
||||
|
||||
font-size: 0.875rem;
|
||||
font-weight: 300;
|
||||
// Avoid menu items blocking logo
|
||||
li:not(.has-form), li:not(.has-form) a:not(.button), li:not(.has-form) a:not(.button):hover {
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
ul .nav-primary {
|
||||
text-transform: uppercase;
|
||||
li.cart {
|
||||
background-color: #f4704c;
|
||||
|
||||
a span {
|
||||
color: white;
|
||||
}
|
||||
|
||||
i {
|
||||
color: white;
|
||||
}
|
||||
|
||||
.count {
|
||||
position: relative;
|
||||
|
||||
img {
|
||||
width: 32px;
|
||||
height: 26px;
|
||||
margin-top: 16px;
|
||||
margin-right: 5px;
|
||||
}
|
||||
|
||||
span {
|
||||
background-color: white;
|
||||
border-radius: 20px;
|
||||
color: #f4704c;
|
||||
font-size: 12px;
|
||||
line-height: 18px;
|
||||
position: absolute;
|
||||
right: -8px;
|
||||
top: 8px;
|
||||
width: 18px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
ul.center {
|
||||
display: inline-block;
|
||||
|
||||
// By default, we center between the left and right uls, but we want to be centered
|
||||
// relative to the whole page. The difference in width between the other uls is 74px,
|
||||
// so we offset by that amount here.
|
||||
margin-left: -74px;
|
||||
}
|
||||
|
||||
ul.dropdown {
|
||||
border: 1px solid $smoke;
|
||||
border-top: none;
|
||||
}
|
||||
|
||||
ul.right {
|
||||
> li {
|
||||
border-left: 1px solid #ddd;
|
||||
padding: 0 14px;
|
||||
|
||||
@media screen and (max-width: 1450px) {
|
||||
padding: 0 6px;
|
||||
}
|
||||
}
|
||||
|
||||
li > a {
|
||||
opacity: 0.8;
|
||||
|
||||
&:hover, &:focus, &:active {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
i {
|
||||
color: #f4704c;
|
||||
display: inline-block;
|
||||
margin-right: 2px;
|
||||
margin-top: -3px;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
img {
|
||||
margin-right: 2px;
|
||||
margin-top: -5px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
ul li > a {
|
||||
font-size: 16px;
|
||||
height: $topbar-height;
|
||||
}
|
||||
|
||||
ul li.ofn-logo > a {
|
||||
display: table-cell;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
ul .nav-primary {
|
||||
@include headingFont;
|
||||
text-transform: uppercase;
|
||||
font-weight: 300;
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
.joyride-tip-guide .button {
|
||||
text-shadow: none;
|
||||
}
|
||||
}
|
||||
|
||||
// Mobile Menu
|
||||
|
||||
.tab-bar {
|
||||
background-color: white;
|
||||
border-bottom: 1px solid $light-grey-transparency;
|
||||
height: 2.8em;
|
||||
position: fixed;
|
||||
width: 100%;
|
||||
z-index: 1;
|
||||
|
||||
.cart-span {
|
||||
background-color: #f4704c;
|
||||
padding: 13px;
|
||||
|
||||
a,
|
||||
span {
|
||||
color: white;
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.count {
|
||||
position: relative;
|
||||
|
||||
img {
|
||||
margin-left: 2px;
|
||||
width: 26px;
|
||||
}
|
||||
|
||||
span {
|
||||
background-color: white;
|
||||
border-radius: 20px;
|
||||
color: #f4704c;
|
||||
font-size: 12px;
|
||||
line-height: 16px;
|
||||
position: absolute;
|
||||
right: -10px;
|
||||
text-align: center;
|
||||
top: -9px;
|
||||
width: 16px;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.off-canvas-list li.language-switcher ul li {
|
||||
@@ -114,8 +224,6 @@ nav {
|
||||
}
|
||||
|
||||
.off-canvas-wrap.move-right .tab-bar .menu-icon span {
|
||||
-moz-box-shadow: 0 0px 0 1px #666, 0 7px 0 1px #666, 0 14px 0 1px #666;
|
||||
-webkit-box-shadow: 0 0px 0 1px #666, 0 7px 0 1px #666, 0 14px 0 1px #666;
|
||||
box-shadow: 0 0px 0 1px #666, 0 7px 0 1px #666, 0 14px 0 1px #666;
|
||||
}
|
||||
|
||||
@@ -127,10 +235,19 @@ nav {
|
||||
padding: 9px 0 0 9px;
|
||||
}
|
||||
|
||||
// Leave space for tab bar, in screens smaller than large.
|
||||
[role="main"] {
|
||||
margin-top: 2.8em;
|
||||
|
||||
@media #{$large-up} {
|
||||
margin-top: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.top-bar .ofn-logo img {
|
||||
height: auto;
|
||||
width: auto;
|
||||
max-height: 51px;
|
||||
max-height: 44px;
|
||||
max-width: 250px;
|
||||
}
|
||||
|
||||
@@ -138,7 +255,7 @@ nav {
|
||||
background-color: white;
|
||||
}
|
||||
|
||||
.off-canvas-wrap.move-right ul.off-canvas-list {
|
||||
.off-canvas-wrap ul.off-canvas-list {
|
||||
font-size: 0.875rem;
|
||||
|
||||
.li-menu {
|
||||
@@ -158,12 +275,10 @@ nav {
|
||||
background-color: transparent;
|
||||
color: $brand-colour;
|
||||
}
|
||||
|
||||
@include transition(all 0.3s ease-in-out);
|
||||
}
|
||||
}
|
||||
|
||||
.off-canvas-wrap.move-right ul.off-canvas-list i {
|
||||
.off-canvas-wrap ul.off-canvas-list i {
|
||||
font-size: 1.5rem;
|
||||
margin-right: 0.25rem;
|
||||
}
|
||||
@@ -172,7 +287,8 @@ nav {
|
||||
|
||||
@media screen and (max-width: 1450px) {
|
||||
nav .top-bar-section {
|
||||
ul li a, .has-dropdown > a {
|
||||
ul li a,
|
||||
.has-dropdown > a {
|
||||
padding: 0 ($topbar-height / 8) !important;
|
||||
}
|
||||
|
||||
@@ -194,10 +310,4 @@ nav {
|
||||
// padding required to placehold for fixed menu bar
|
||||
padding-top: 0;
|
||||
}
|
||||
|
||||
section.right {
|
||||
.nav-branded {
|
||||
padding: 0 1em;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,10 +2,12 @@
|
||||
@import "animations";
|
||||
@import "compass/css3/transition";
|
||||
|
||||
$page-alert-height: 55px;
|
||||
|
||||
// Basic style \\
|
||||
.page-alert {
|
||||
.alert-box {
|
||||
height: 55px;
|
||||
height: $page-alert-height;
|
||||
overflow: hidden;
|
||||
border: 1px solid rgba($dark-grey, 0.35);
|
||||
border-left: none;
|
||||
@@ -45,33 +47,26 @@
|
||||
}
|
||||
|
||||
// Show-hide animation \\
|
||||
.off-canvas-wrap .inner-wrap, .off-canvas-wrap .inner-wrap .fixed, nav.tab-bar {
|
||||
@include transition(all, 1000ms, ease-in-out);
|
||||
|
||||
.off-canvas-wrap .inner-wrap,
|
||||
.off-canvas-fixed .top-bar,
|
||||
.off-canvas-fixed ofn-flash,
|
||||
.off-canvas-fixed nav.tab-bar,
|
||||
.off-canvas-fixed .page-alert {
|
||||
@include transition(all 1000ms ease-in-out);
|
||||
|
||||
&.move-down {
|
||||
margin-top: 55px;
|
||||
|
||||
@include transition(all, 1000ms, ease-in-out);
|
||||
margin-top: $page-alert-height;
|
||||
}
|
||||
}
|
||||
|
||||
.off-canvas-wrap .inner-wrap .page-alert.fixed {
|
||||
top: -55px;
|
||||
z-index: 1;
|
||||
|
||||
// TODO: Compass to disable transition
|
||||
-moz-transition: none;
|
||||
-webkit-transition: none;
|
||||
-o-transition: color 0 ease-in;
|
||||
transition: none;
|
||||
.off-canvas-wrap .page-alert {
|
||||
top: -1 * $page-alert-height;
|
||||
z-index: 100;
|
||||
}
|
||||
|
||||
.off-canvas-wrap.move-right .inner-wrap.move-down {
|
||||
.page-alert {
|
||||
top: -55px * 2;
|
||||
}
|
||||
|
||||
.left-off-canvas-menu {
|
||||
top: -55px;
|
||||
top: -1 * $page-alert-height;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
@import '../base/colors';
|
||||
@import '../collapsible';
|
||||
|
||||
// Styling for login modal to style tabs
|
||||
.reveal-modal.login-modal {
|
||||
@@ -23,3 +24,10 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@media only screen and (min-width: 1025px) {
|
||||
// make sure styling doesn't get messed up if resizing down and back up
|
||||
.collapsible-menus-container {
|
||||
min-height: 250px;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
@import "mixins";
|
||||
@import "branding";
|
||||
@import "compass/css3/user-interface";
|
||||
@import 'variables';
|
||||
|
||||
.cart {
|
||||
@include user-select(none);
|
||||
@@ -15,8 +16,8 @@
|
||||
|
||||
.joyride-tip-guide {
|
||||
display: block;
|
||||
right: 10px;
|
||||
top: 55px;
|
||||
right: 0;
|
||||
top: $topbar-height;
|
||||
width: 480px;
|
||||
|
||||
@media screen and (min-width: 641px) {
|
||||
|
||||
@@ -13,8 +13,9 @@
|
||||
$brand-colour: #f27052;
|
||||
|
||||
// Topbar
|
||||
$topbar-height: rem-calc(75);
|
||||
$topbar-link-padding: $topbar-height / 3;
|
||||
$topbar-height: rem-calc(64);
|
||||
$topbar-link-padding: $topbar-height / 4;
|
||||
$topbar-arrows: false;
|
||||
|
||||
$topbar-bg: $white;
|
||||
$topbar-bg-color: $topbar-bg;
|
||||
|
||||
@@ -22,9 +22,9 @@ module Admin
|
||||
order.with_lock do
|
||||
if @line_item.update_attributes(params[:line_item])
|
||||
order.update_distribution_charge!
|
||||
render nothing: true, status: 204 # No Content, does not trigger ng resource auto-update
|
||||
render nothing: true, status: :no_content # No Content, does not trigger ng resource auto-update
|
||||
else
|
||||
render json: { errors: @line_item.errors }, status: 412
|
||||
render json: { errors: @line_item.errors }, status: :precondition_failed
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -36,7 +36,7 @@ module Admin
|
||||
authorize! :update, order
|
||||
|
||||
@line_item.destroy
|
||||
render nothing: true, status: 204 # No Content, does not trigger ng resource auto-update
|
||||
render nothing: true, status: :no_content # No Content, does not trigger ng resource auto-update
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
@@ -12,9 +12,9 @@ module Admin
|
||||
render json: @cp_set.collection, each_serializer: Api::Admin::ColumnPreferenceSerializer
|
||||
else
|
||||
if @cp_set.errors.present?
|
||||
render json: { errors: @cp_set.errors }, status: 400
|
||||
render json: { errors: @cp_set.errors }, status: :bad_request
|
||||
else
|
||||
render nothing: true, status: 500
|
||||
render nothing: true, status: :internal_server_error
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -23,7 +23,7 @@ module Admin
|
||||
|
||||
def load_collection
|
||||
collection_hash = Hash[params[:column_preferences].each_with_index.map { |cp, i| [i, cp] }]
|
||||
collection_hash.reject!{ |i, cp| cp[:action_name] != params[:action_name] }
|
||||
collection_hash.select!{ |_i, cp| cp[:action_name] == params[:action_name] }
|
||||
@cp_set = ColumnPreferenceSet.new @column_preferences, collection_attributes: collection_hash
|
||||
end
|
||||
|
||||
|
||||
@@ -16,7 +16,7 @@ module Admin
|
||||
# Save any uploaded images
|
||||
ContentConfig.save
|
||||
|
||||
flash[:success] = t(:successfully_updated, :resource => I18n.t('admin.contents.edit.your_content'))
|
||||
flash[:success] = t(:successfully_updated, resource: I18n.t('admin.contents.edit.your_content'))
|
||||
|
||||
redirect_to main_app.edit_admin_contents_path
|
||||
end
|
||||
|
||||
@@ -34,7 +34,7 @@ module Admin
|
||||
tag_rule_mapping = TagRule.mapping_for(Enterprise.where(id: @customer.enterprise))
|
||||
render_as_json @customer, tag_rule_mapping: tag_rule_mapping
|
||||
else
|
||||
render json: { errors: @customer.errors.full_messages }, status: 400
|
||||
render json: { errors: @customer.errors.full_messages }, status: :bad_request
|
||||
end
|
||||
else
|
||||
redirect_to '/unauthorized'
|
||||
|
||||
@@ -1,9 +1,8 @@
|
||||
module Admin
|
||||
class EnterpriseFeesController < ResourceController
|
||||
before_filter :load_enterprise_fee_set, :only => :index
|
||||
before_filter :load_enterprise_fee_set, only: :index
|
||||
before_filter :load_data
|
||||
|
||||
|
||||
def index
|
||||
@include_calculators = params[:include_calculators].present?
|
||||
@enterprise = current_enterprise
|
||||
@@ -34,18 +33,17 @@ module Admin
|
||||
if params.key? :enterprise_id
|
||||
redirect_path = main_app.admin_enterprise_fees_path(enterprise_id: params[:enterprise_id])
|
||||
end
|
||||
redirect_to redirect_path, :notice => I18n.t(:enterprise_fees_update_notice)
|
||||
redirect_to redirect_path, notice: I18n.t(:enterprise_fees_update_notice)
|
||||
|
||||
else
|
||||
render :index
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
private
|
||||
|
||||
def load_enterprise_fee_set
|
||||
@enterprise_fee_set = EnterpriseFeeSet.new :collection => collection
|
||||
@enterprise_fee_set = EnterpriseFeeSet.new collection: collection
|
||||
end
|
||||
|
||||
def load_data
|
||||
@@ -60,7 +58,7 @@ module Admin
|
||||
coordinator = Enterprise.find_by_id(params[:coordinator_id]) if params[:coordinator_id]
|
||||
order_cycle = OrderCycle.new(coordinator: coordinator) if order_cycle.nil? && coordinator.present?
|
||||
enterprises = OpenFoodNetwork::OrderCyclePermissions.new(spree_current_user, order_cycle).visible_enterprises
|
||||
return EnterpriseFee.for_enterprises(enterprises).order('enterprise_id', 'fee_type', 'name')
|
||||
EnterpriseFee.for_enterprises(enterprises).order('enterprise_id', 'fee_type', 'name')
|
||||
else
|
||||
collection = EnterpriseFee.managed_by(spree_current_user).order('enterprise_id', 'fee_type', 'name')
|
||||
collection = collection.for_enterprise(current_enterprise) if current_enterprise
|
||||
@@ -75,6 +73,5 @@ module Admin
|
||||
def current_enterprise
|
||||
Enterprise.find params[:enterprise_id] if params.key? :enterprise_id
|
||||
end
|
||||
|
||||
end
|
||||
end
|
||||
|
||||
@@ -12,7 +12,7 @@ module Admin
|
||||
if @enterprise_relationship.save
|
||||
render text: Api::Admin::EnterpriseRelationshipSerializer.new(@enterprise_relationship).to_json
|
||||
else
|
||||
render status: 400, json: {errors: @enterprise_relationship.errors.full_messages.join(', ')}
|
||||
render status: :bad_request, json: { errors: @enterprise_relationship.errors.full_messages.join(', ') }
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
@@ -13,7 +13,7 @@ module Admin
|
||||
render text: Api::Admin::EnterpriseRoleSerializer.new(@enterprise_role).to_json
|
||||
|
||||
else
|
||||
render status: 400, json: {errors: @enterprise_role.errors.full_messages.join(', ')}
|
||||
render status: :bad_request, json: { errors: @enterprise_role.errors.full_messages.join(', ') }
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
@@ -6,11 +6,11 @@ module Admin
|
||||
prepend_before_filter :override_owner, only: :create
|
||||
prepend_before_filter :override_sells, only: :create
|
||||
|
||||
before_filter :load_enterprise_set, :only => :index
|
||||
before_filter :load_countries, :except => [:index, :register, :check_permalink]
|
||||
before_filter :load_methods_and_fees, :only => [:edit, :update]
|
||||
before_filter :load_groups, :only => [:new, :edit, :update, :create]
|
||||
before_filter :load_taxons, :only => [:new, :edit, :update, :create]
|
||||
before_filter :load_enterprise_set, only: :index
|
||||
before_filter :load_countries, except: [:index, :register, :check_permalink]
|
||||
before_filter :load_methods_and_fees, only: [:edit, :update]
|
||||
before_filter :load_groups, only: [:new, :edit, :update, :create]
|
||||
before_filter :load_taxons, only: [:new, :edit, :update, :create]
|
||||
before_filter :check_can_change_sells, only: :update
|
||||
before_filter :check_can_change_bulk_sells, only: :bulk_update
|
||||
before_filter :check_can_change_owner, only: :update
|
||||
@@ -45,7 +45,7 @@ module Admin
|
||||
flash[:success] = flash_message_for(@object, :successfully_updated)
|
||||
respond_with(@object) do |format|
|
||||
format.html { redirect_to location_after_save }
|
||||
format.js { render :layout => false }
|
||||
format.js { render layout: false }
|
||||
format.json { render_as_json @object, ams_prefix: 'index', spree_current_user: spree_current_user }
|
||||
end
|
||||
else
|
||||
@@ -142,7 +142,15 @@ module Admin
|
||||
@order_cycle = OrderCycle.find_by_id(params[:order_cycle_id]) if params[:order_cycle_id]
|
||||
coordinator = Enterprise.find_by_id(params[:coordinator_id]) if params[:coordinator_id]
|
||||
@order_cycle = OrderCycle.new(coordinator: coordinator) if @order_cycle.nil? && coordinator.present?
|
||||
return OpenFoodNetwork::OrderCyclePermissions.new(spree_current_user, @order_cycle).visible_enterprises
|
||||
|
||||
enterprises = OpenFoodNetwork::OrderCyclePermissions.new(spree_current_user, @order_cycle)
|
||||
.visible_enterprises
|
||||
|
||||
unless enterprises.empty?
|
||||
enterprises.includes(
|
||||
supplied_products: [:supplier, :variants, master: [:images]]
|
||||
)
|
||||
end
|
||||
when :index
|
||||
if spree_current_user.admin?
|
||||
OpenFoodNetwork::Permissions.new(spree_current_user).
|
||||
@@ -154,7 +162,8 @@ module Admin
|
||||
Enterprise.where("1=0")
|
||||
end
|
||||
when :visible
|
||||
OpenFoodNetwork::Permissions.new(spree_current_user).visible_enterprises.ransack(params[:q]).result
|
||||
OpenFoodNetwork::Permissions.new(spree_current_user).visible_enterprises
|
||||
.includes(:shipping_methods, :payment_methods).ransack(params[:q]).result
|
||||
else
|
||||
# TODO was ordered with is_distributor DESC as well, not sure why or how we want to sort this now
|
||||
OpenFoodNetwork::Permissions.new(spree_current_user).
|
||||
@@ -168,9 +177,20 @@ module Admin
|
||||
end
|
||||
|
||||
def load_methods_and_fees
|
||||
@payment_methods = Spree::PaymentMethod.managed_by(spree_current_user).sort_by!{ |pm| [(@enterprise.payment_methods.include? pm) ? 0 : 1, pm.name] }
|
||||
@shipping_methods = Spree::ShippingMethod.managed_by(spree_current_user).sort_by!{ |sm| [(@enterprise.shipping_methods.include? sm) ? 0 : 1, sm.name] }
|
||||
@enterprise_fees = EnterpriseFee.managed_by(spree_current_user).for_enterprise(@enterprise).order(:fee_type, :name).all
|
||||
# rubocop:disable Style/TernaryParentheses
|
||||
@payment_methods = Spree::PaymentMethod.managed_by(spree_current_user).sort_by! do |pm|
|
||||
[(@enterprise.payment_methods.include? pm) ? 0 : 1, pm.name]
|
||||
end
|
||||
@shipping_methods = Spree::ShippingMethod.managed_by(spree_current_user).sort_by! do |sm|
|
||||
[(@enterprise.shipping_methods.include? sm) ? 0 : 1, sm.name]
|
||||
end
|
||||
# rubocop:enable Style/TernaryParentheses
|
||||
|
||||
@enterprise_fees = EnterpriseFee
|
||||
.managed_by(spree_current_user)
|
||||
.for_enterprise(@enterprise)
|
||||
.order(:fee_type, :name)
|
||||
.all
|
||||
end
|
||||
|
||||
def load_groups
|
||||
@@ -187,8 +207,8 @@ module Admin
|
||||
# methods that are specific to each class do not become available until after the
|
||||
# record is persisted. This problem is compounded by the use of calculators.
|
||||
@object.transaction do
|
||||
tag_rules_attributes.select{ |i, attrs| attrs[:type].present? }.each do |i, attrs|
|
||||
rule = @object.tag_rules.find_by_id(attrs.delete :id) || attrs[:type].constantize.new(enterprise: @object)
|
||||
tag_rules_attributes.select{ |_i, attrs| attrs[:type].present? }.each do |_i, attrs|
|
||||
rule = @object.tag_rules.find_by_id(attrs.delete(:id)) || attrs[:type].constantize.new(enterprise: @object)
|
||||
create_calculator_for(rule, attrs) if rule.type == "TagRule::DiscountOrder" && rule.calculator.nil?
|
||||
rule.update_attributes(attrs)
|
||||
end
|
||||
@@ -204,13 +224,13 @@ module Admin
|
||||
def create_calculator_for(rule, attrs)
|
||||
if attrs[:calculator_type].present? && attrs[:calculator_attributes].present?
|
||||
rule.update_attributes(calculator_type: attrs[:calculator_type])
|
||||
attrs[:calculator_attributes].merge!( { id: rule.calculator.id } )
|
||||
attrs[:calculator_attributes].merge!( id: rule.calculator.id )
|
||||
end
|
||||
end
|
||||
|
||||
def check_can_change_bulk_sells
|
||||
unless spree_current_user.admin?
|
||||
params[:enterprise_set][:collection_attributes].each do |i, enterprise_params|
|
||||
params[:enterprise_set][:collection_attributes].each do |_i, enterprise_params|
|
||||
enterprise_params.delete :sells unless spree_current_user == Enterprise.find_by_id(enterprise_params[:id]).owner
|
||||
end
|
||||
end
|
||||
@@ -230,7 +250,7 @@ module Admin
|
||||
unless spree_current_user.admin?
|
||||
has_hub = spree_current_user.owned_enterprises.is_hub.any?
|
||||
new_enterprise_is_producer = Enterprise.new(params[:enterprise]).is_primary_producer
|
||||
params[:enterprise][:sells] = (has_hub && !new_enterprise_is_producer) ? 'any' : 'none'
|
||||
params[:enterprise][:sells] = has_hub && !new_enterprise_is_producer ? 'any' : 'none'
|
||||
end
|
||||
end
|
||||
|
||||
@@ -242,7 +262,7 @@ module Admin
|
||||
|
||||
def check_can_change_bulk_owner
|
||||
unless spree_current_user.admin?
|
||||
params[:enterprise_set][:collection_attributes].each do |i, enterprise_params|
|
||||
params[:enterprise_set][:collection_attributes].each do |_i, enterprise_params|
|
||||
enterprise_params.delete :owner_id
|
||||
end
|
||||
end
|
||||
@@ -273,8 +293,10 @@ module Admin
|
||||
|
||||
# Overriding method on Spree's resource controller
|
||||
def location_after_save
|
||||
referer_path = OpenFoodNetwork::RefererParser::path(request.referer)
|
||||
referer_path = OpenFoodNetwork::RefererParser.path(request.referer)
|
||||
# rubocop:disable Style/RegexpLiteral
|
||||
refered_from_producer_properties = referer_path =~ /\/producer_properties$/
|
||||
# rubocop:enable Style/RegexpLiteral
|
||||
|
||||
if refered_from_producer_properties
|
||||
main_app.admin_enterprise_producer_properties_path(@enterprise)
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
module Admin
|
||||
class InventoryItemsController < ResourceController
|
||||
|
||||
respond_to :json
|
||||
|
||||
respond_override update: { json: {
|
||||
|
||||
@@ -20,7 +20,7 @@ module Admin
|
||||
if new_user
|
||||
render json: { user: new_user.id }, status: :ok
|
||||
else
|
||||
render json: { errors: t('admin.enterprises.invite_manager.error') }, status: 500
|
||||
render json: { errors: t('admin.enterprises.invite_manager.error') }, status: :internal_server_error
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
@@ -53,7 +53,7 @@ module Admin
|
||||
respond_to do |format|
|
||||
flash[:notice] = I18n.t(:order_cycles_update_notice) if params[:reloading] == '1'
|
||||
format.html { redirect_to main_app.edit_admin_order_cycle_path(@order_cycle) }
|
||||
format.json { render json: { :success => true } }
|
||||
format.json { render json: { success: true } }
|
||||
end
|
||||
else
|
||||
render json: { errors: @order_cycle.errors.full_messages }, status: :unprocessable_entity
|
||||
@@ -82,20 +82,19 @@ module Admin
|
||||
redirect_to main_app.admin_order_cycles_path, notice: I18n.t(:order_cycles_email_to_producers_notice)
|
||||
end
|
||||
|
||||
|
||||
protected
|
||||
|
||||
def collection
|
||||
return Enterprise.where("1=0") unless json_request?
|
||||
return order_cycles_from_set if params[:order_cycle_set]
|
||||
ocs = if params[:as] == "distributor"
|
||||
OrderCycle.preload(:schedules).ransack(params[:q]).result.
|
||||
involving_managed_distributors_of(spree_current_user).order('updated_at DESC')
|
||||
elsif params[:as] == "producer"
|
||||
OrderCycle.preload(:schedules).ransack(params[:q]).result.
|
||||
involving_managed_producers_of(spree_current_user).order('updated_at DESC')
|
||||
else
|
||||
OrderCycle.preload(:schedules).ransack(params[:q]).result.accessible_by(spree_current_user)
|
||||
OrderCycle.preload(:schedules).ransack(params[:q]).result.
|
||||
involving_managed_distributors_of(spree_current_user).order('updated_at DESC')
|
||||
elsif params[:as] == "producer"
|
||||
OrderCycle.preload(:schedules).ransack(params[:q]).result.
|
||||
involving_managed_producers_of(spree_current_user).order('updated_at DESC')
|
||||
else
|
||||
OrderCycle.preload(:schedules).ransack(params[:q]).result.accessible_by(spree_current_user)
|
||||
end
|
||||
|
||||
ocs.undated |
|
||||
@@ -115,7 +114,7 @@ module Admin
|
||||
# Split ransack params into all those that currently exist and new ones to limit returned ocs to recent or undated
|
||||
orders_close_at_gt = params[:q].andand.delete(:orders_close_at_gt) || 31.days.ago
|
||||
params[:q] = {
|
||||
g: [ params.delete(:q) || {}, { m: 'or', orders_close_at_gt: orders_close_at_gt, orders_close_at_null: true } ]
|
||||
g: [params.delete(:q) || {}, { m: 'or', orders_close_at_gt: orders_close_at_gt, orders_close_at_null: true }]
|
||||
}
|
||||
@collection = collection
|
||||
end
|
||||
@@ -158,7 +157,7 @@ module Admin
|
||||
params[:order_cycle].delete :coordinator_id
|
||||
|
||||
unless Enterprise.managed_by(spree_current_user).include?(@order_cycle.coordinator)
|
||||
params[:order_cycle].delete_if{ |k,v| [:name, :orders_open_at, :orders_close_at].include? k.to_sym }
|
||||
params[:order_cycle].delete_if{ |k, _v| [:name, :orders_open_at, :orders_close_at].include? k.to_sym }
|
||||
end
|
||||
end
|
||||
|
||||
@@ -173,7 +172,7 @@ module Admin
|
||||
|
||||
def order_cycles_from_set
|
||||
remove_unauthorized_bulk_attrs
|
||||
OrderCycle.where(id: params[:order_cycle_set][:collection_attributes].map{ |k,v| v[:id] })
|
||||
OrderCycle.where(id: params[:order_cycle_set][:collection_attributes].map{ |_k, v| v[:id] })
|
||||
end
|
||||
|
||||
def order_cycle_set
|
||||
|
||||
@@ -4,7 +4,6 @@ module Admin
|
||||
before_filter :load_properties
|
||||
before_filter :setup_property, only: [:index]
|
||||
|
||||
|
||||
private
|
||||
|
||||
def collection_url
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
module Admin
|
||||
class ResourceController < Spree::Admin::ResourceController
|
||||
def model_class
|
||||
"#{controller_name.classify}".constantize
|
||||
controller_name.classify.to_s.constantize
|
||||
end
|
||||
|
||||
# URL helpers
|
||||
@@ -22,7 +22,7 @@ module Admin
|
||||
end
|
||||
|
||||
def object_url(object = nil, options = {})
|
||||
target = object ? object : @object
|
||||
target = object || @object
|
||||
if parent_data.present?
|
||||
main_app.public_send "admin_#{model_name}_#{object_name}_url", parent, target, options
|
||||
else
|
||||
|
||||
@@ -31,7 +31,16 @@ module Admin
|
||||
|
||||
def collection
|
||||
return Schedule.where("1=0") unless json_request?
|
||||
permissions.visible_schedules
|
||||
if params[:enterprise_id]
|
||||
filter_schedules_by_enterprise_id(permissions.visible_schedules, params[:enterprise_id])
|
||||
else
|
||||
permissions.visible_schedules
|
||||
end
|
||||
end
|
||||
|
||||
# Filter schedules by OCs with a given coordinator id
|
||||
def filter_schedules_by_enterprise_id(schedules, enterprise_id)
|
||||
schedules.joins(:order_cycles).where(order_cycles: { coordinator_id: enterprise_id.to_i })
|
||||
end
|
||||
|
||||
def collection_actions
|
||||
|
||||
@@ -18,7 +18,7 @@ module Admin
|
||||
def update
|
||||
Spree::Config.set(params[:settings])
|
||||
resource = t('admin.controllers.stripe_connect_settings.resource')
|
||||
flash[:success] = t(:successfully_updated, :resource => resource)
|
||||
flash[:success] = t(:successfully_updated, resource: resource)
|
||||
redirect_to_edit
|
||||
end
|
||||
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
require 'open_food_network/permissions'
|
||||
require 'open_food_network/proxy_order_syncer'
|
||||
|
||||
module Admin
|
||||
class SubscriptionsController < ResourceController
|
||||
@@ -32,21 +33,11 @@ module Admin
|
||||
end
|
||||
|
||||
def create
|
||||
form = SubscriptionForm.new(@subscription, params[:subscription])
|
||||
if form.save
|
||||
render_as_json @subscription
|
||||
else
|
||||
render json: { errors: form.json_errors }, status: :unprocessable_entity
|
||||
end
|
||||
save_form_and_render(false)
|
||||
end
|
||||
|
||||
def update
|
||||
form = SubscriptionForm.new(@subscription, params[:subscription])
|
||||
if form.save
|
||||
render_as_json @subscription, order_update_issues: form.order_update_issues
|
||||
else
|
||||
render json: { errors: form.json_errors }, status: :unprocessable_entity
|
||||
end
|
||||
save_form_and_render
|
||||
end
|
||||
|
||||
def cancel
|
||||
@@ -67,12 +58,26 @@ module Admin
|
||||
end
|
||||
|
||||
def unpause
|
||||
@subscription.update_attributes(paused_at: nil)
|
||||
render_as_json @subscription
|
||||
params[:subscription][:paused_at] = nil
|
||||
save_form_and_render
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def save_form_and_render(render_issues = true)
|
||||
form = SubscriptionForm.new(@subscription, params[:subscription])
|
||||
unless form.save
|
||||
render json: { errors: form.json_errors }, status: :unprocessable_entity
|
||||
return
|
||||
end
|
||||
|
||||
if render_issues
|
||||
render_as_json @subscription, order_update_issues: form.order_update_issues
|
||||
else
|
||||
render_as_json @subscription
|
||||
end
|
||||
end
|
||||
|
||||
def permissions
|
||||
return @permissions unless @permissions.nil?
|
||||
@permissions = OpenFoodNetwork::Permissions.new(spree_current_user)
|
||||
|
||||
@@ -1,22 +1,20 @@
|
||||
module Admin
|
||||
class TagRulesController < ResourceController
|
||||
|
||||
respond_to :json
|
||||
|
||||
respond_override destroy: { json: {
|
||||
success: lambda { render nothing: true, :status => 204 }
|
||||
success: lambda { render nothing: true, status: :no_content }
|
||||
} }
|
||||
|
||||
def map_by_tag
|
||||
respond_to do |format|
|
||||
format.json do
|
||||
serialiser = ActiveModel::ArraySerializer.new(collection)
|
||||
render json: serialiser.to_json
|
||||
serializer = ActiveModel::ArraySerializer.new(collection)
|
||||
render json: serializer.to_json
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
private
|
||||
|
||||
def collection_actions
|
||||
|
||||
@@ -9,9 +9,7 @@ module Admin
|
||||
before_filter :load_collection, only: [:bulk_update]
|
||||
before_filter :load_spree_api_key, only: :index
|
||||
|
||||
|
||||
def index
|
||||
end
|
||||
def index; end
|
||||
|
||||
def bulk_update
|
||||
# Ensure we're authorised to update all variant overrides
|
||||
@@ -22,9 +20,9 @@ module Admin
|
||||
render json: @vo_set.collection, each_serializer: Api::Admin::VariantOverrideSerializer
|
||||
else
|
||||
if @vo_set.errors.present?
|
||||
render json: { errors: @vo_set.errors }, status: 400
|
||||
render json: { errors: @vo_set.errors }, status: :bad_request
|
||||
else
|
||||
render nothing: true, status: 500
|
||||
render nothing: true, status: :internal_server_error
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -35,13 +33,12 @@ module Admin
|
||||
@collection.each(&:reset_stock!)
|
||||
|
||||
if collection_errors.present?
|
||||
render json: { errors: collection_errors }, status: 400
|
||||
render json: { errors: collection_errors }, status: :bad_request
|
||||
else
|
||||
render json: @collection, each_serializer: Api::Admin::VariantOverrideSerializer
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
private
|
||||
|
||||
def load_data
|
||||
|
||||
@@ -9,6 +9,7 @@ module Api
|
||||
include ActionController::UrlFor
|
||||
include Rails.application.routes.url_helpers
|
||||
use_renderers :json
|
||||
check_authorization
|
||||
|
||||
def respond_with_conflict(json_hash)
|
||||
render json: json_hash, status: :conflict
|
||||
@@ -21,5 +22,13 @@ module Api
|
||||
@current_api_user = try_spree_current_user
|
||||
super
|
||||
end
|
||||
|
||||
# Allows API access without authentication, but only for OFN controllers which inherit
|
||||
# from Api::BaseController. @current_api_user will now initialize an empty Spree::User
|
||||
# unless one is present. We now also apply devise's `check_authorization`. See here for
|
||||
# details: https://github.com/CanCanCommunity/cancancan/wiki/Ensure-Authorization
|
||||
def requires_authentication?
|
||||
false
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
module Api
|
||||
class CustomersController < BaseController
|
||||
skip_authorization_check only: :index
|
||||
|
||||
def index
|
||||
@customers = current_api_user.customers
|
||||
render json: @customers, each_serializer: CustomerSerializer
|
||||
@@ -10,7 +12,7 @@ module Api
|
||||
authorize! :update, @customer
|
||||
|
||||
if @customer.update_attributes(params[:customer])
|
||||
render json: @customer, serializer: CustomerSerializer, status: 200
|
||||
render json: @customer, serializer: CustomerSerializer, status: :ok
|
||||
else
|
||||
invalid_resource!(@customer)
|
||||
end
|
||||
|
||||