Kaynağa Gözat

Help & about

new-scoring
aeris 1 yıl önce
ebeveyn
işleme
4356d4d761

BIN
app/assets/images/bitcoin.png Dosyayı Görüntüle


+ 112
- 0
app/assets/images/check-empty.svg Dosyayı Görüntüle

@@ -0,0 +1,112 @@
1
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
+<!-- Generator: Adobe Illustrator 12.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 51448)  -->
3
+
4
+<svg
5
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
6
+   xmlns:cc="http://creativecommons.org/ns#"
7
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
8
+   xmlns:svg="http://www.w3.org/2000/svg"
9
+   xmlns="http://www.w3.org/2000/svg"
10
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
11
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
12
+   version="1.1"
13
+   id="Layer_1"
14
+   width="364.167"
15
+   height="318.333"
16
+   viewBox="0 0 364.167 318.333"
17
+   overflow="visible"
18
+   enable-background="new 0 0 364.167 318.333"
19
+   xml:space="preserve"
20
+   sodipodi:docname="Tick_green_modern.svg"
21
+   inkscape:version="0.92.1 r15371"><metadata
22
+     id="metadata47"><rdf:RDF><cc:Work
23
+         rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
24
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" /></cc:Work></rdf:RDF></metadata><defs
25
+     id="defs45"><linearGradient
26
+       id="XMLID_65_"
27
+       gradientUnits="userSpaceOnUse"
28
+       x1="20.841299"
29
+       y1="160.21581"
30
+       x2="338.67969"
31
+       y2="160.21581"><stop
32
+         offset="0"
33
+         style="stop-color:#5C6470"
34
+         id="stop5" /><stop
35
+         offset="1"
36
+         style="stop-color:#797F8D"
37
+         id="stop7" /></linearGradient><linearGradient
38
+       id="XMLID_66_"
39
+       gradientUnits="userSpaceOnUse"
40
+       x1="178.3188"
41
+       y1="19.8276"
42
+       x2="178.3188"
43
+       y2="269.08029"><stop
44
+         offset="0"
45
+         style="stop-color:#6ABD45"
46
+         id="stop12" /><stop
47
+         offset="0.6685"
48
+         style="stop-color:#06AD4D"
49
+         id="stop14" /><stop
50
+         offset="1"
51
+         style="stop-color:#055448"
52
+         id="stop16" /></linearGradient><linearGradient
53
+       id="XMLID_67_"
54
+       gradientUnits="userSpaceOnUse"
55
+       x1="121.9199"
56
+       y1="-31.549801"
57
+       x2="192.1555"
58
+       y2="164.10899"><stop
59
+         offset="0"
60
+         style="stop-color:#6ABD45"
61
+         id="stop21" /><stop
62
+         offset="0.6348"
63
+         style="stop-color:#06AD4D"
64
+         id="stop23" /><stop
65
+         offset="0.7442"
66
+         style="stop-color:#0C864E"
67
+         id="stop25" /><stop
68
+         offset="0.8524"
69
+         style="stop-color:#096A4C"
70
+         id="stop27" /><stop
71
+         offset="0.9414"
72
+         style="stop-color:#045A49"
73
+         id="stop29" /><stop
74
+         offset="1"
75
+         style="stop-color:#055448"
76
+         id="stop31" /></linearGradient></defs><sodipodi:namedview
77
+     pagecolor="#ffffff"
78
+     bordercolor="#666666"
79
+     borderopacity="1"
80
+     objecttolerance="10"
81
+     gridtolerance="10"
82
+     guidetolerance="10"
83
+     inkscape:pageopacity="0"
84
+     inkscape:pageshadow="2"
85
+     inkscape:window-width="1920"
86
+     inkscape:window-height="1143"
87
+     id="namedview43"
88
+     showgrid="false"
89
+     inkscape:zoom="0.74136201"
90
+     inkscape:cx="-41.15427"
91
+     inkscape:cy="159.1665"
92
+     inkscape:window-x="1680"
93
+     inkscape:window-y="0"
94
+     inkscape:window-maximized="1"
95
+     inkscape:current-layer="Layer_1" /><filter
96
+     id="AI_GaussianBlur_4"><feGaussianBlur
97
+       stdDeviation="4"
98
+       id="feGaussianBlur2" /></filter><path
99
+     d="m 279.594,15.998 c -1.821,0.246 -3.521,1.213 -4.615,2.717 0,0 -123.926,167.272 -132.245,178.522 -9.5,-8.416 -65.03,-57.29 -65.03,-57.29 -1.395,-1.223 -3.24,-1.846 -5.098,-1.684 -1.846,0.138 -3.563,1.04 -4.744,2.464 L 22.4,196.163 c -2.393,2.92 -1.986,7.214 0.913,9.618 l 110.188,92.295 c 3.994,4.036 9.931,6.44 16.231,6.418 6.225,0.042 12.162,-2.362 16.637,-6.827 0.677,-0.773 171.14,-230.113 171.14,-230.113 2.203,-2.983 1.126,-7.546 -1.803,-9.853 L 284.768,17.426 c -1.444,-1.159 -3.326,-1.675 -5.174,-1.428 z M 144.525,214.134 c 1.912,-0.195 3.649,-1.183 4.777,-2.728 0,0 124.518,-168.068 132.493,-178.802 23.026,18.356 34.801,27.651 40.631,32.182 -7.709,10.36 -166.415,223.93 -166.415,223.93 -1.181,1.074 -3.619,2.061 -6.248,2.038 -2.737,0 -5.185,-0.988 -7.01,-2.812 -0.376,-0.365 -83.749,-70.182 -105.412,-88.322 6.28,-7.685 30.056,-36.675 36.637,-44.662 9.125,8.052 65.287,57.521 65.287,57.521 1.428,1.246 3.328,1.869 5.26,1.655 z"
100
+     id="path10"
101
+     style="fill:url(#XMLID_65_);filter:url(#AI_GaussianBlur_4)"
102
+     inkscape:connector-curvature="0" /><path
103
+     d="m 275.201,6.393 c -1.797,0.243 -3.475,1.196 -4.555,2.679 0,0 -122.301,165.075 -130.511,176.177 -9.376,-8.306 -64.178,-56.532 -64.178,-56.532 -1.376,-1.208 -3.198,-1.822 -5.031,-1.664 -1.822,0.138 -3.517,1.028 -4.681,2.431 L 21.379,184.19 c -2.361,2.881 -1.96,7.119 0.901,9.492 l 108.743,91.085 c 3.941,3.982 9.801,6.355 16.019,6.334 6.144,0.042 12.003,-2.331 16.419,-6.738 0.668,-0.763 168.896,-227.088 168.896,-227.088 2.174,-2.946 1.111,-7.449 -1.779,-9.726 L 280.309,7.8 C 278.883,6.656 277.025,6.147 275.201,6.393 Z M 141.904,201.924 c 1.887,-0.192 3.602,-1.167 4.715,-2.692 0,0 122.885,-165.858 130.756,-176.452 22.725,18.114 34.344,27.289 40.098,31.758 -7.607,10.224 -164.233,220.99 -164.233,220.99 -1.166,1.059 -3.571,2.033 -6.166,2.011 -2.701,0 -5.116,-0.975 -6.918,-2.774 -0.371,-0.361 -82.651,-69.262 -104.03,-87.164 6.198,-7.585 29.662,-36.188 36.157,-44.069 9.005,7.944 64.431,56.759 64.431,56.759 1.408,1.23 3.283,1.845 5.19,1.633 z"
104
+     id="path34"
105
+     style="fill:url(#XMLID_67_)"
106
+     inkscape:connector-curvature="0" /><rect
107
+     style="fill:none"
108
+     y="0"
109
+     x="0"
110
+     id="rect38"
111
+     height="318.33301"
112
+     width="364.16699" /></svg>

+ 116
- 0
app/assets/images/check-full.svg Dosyayı Görüntüle

@@ -0,0 +1,116 @@
1
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
+<!-- Generator: Adobe Illustrator 12.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 51448)  -->
3
+
4
+<svg
5
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
6
+   xmlns:cc="http://creativecommons.org/ns#"
7
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
8
+   xmlns:svg="http://www.w3.org/2000/svg"
9
+   xmlns="http://www.w3.org/2000/svg"
10
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
11
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
12
+   version="1.1"
13
+   id="Layer_1"
14
+   width="364.167"
15
+   height="318.333"
16
+   viewBox="0 0 364.167 318.333"
17
+   overflow="visible"
18
+   enable-background="new 0 0 364.167 318.333"
19
+   xml:space="preserve"
20
+   sodipodi:docname="Tick_green_modern.svg"
21
+   inkscape:version="0.92.1 r15371"><metadata
22
+     id="metadata47"><rdf:RDF><cc:Work
23
+         rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
24
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" /></cc:Work></rdf:RDF></metadata><defs
25
+     id="defs45"><linearGradient
26
+       id="XMLID_65_"
27
+       gradientUnits="userSpaceOnUse"
28
+       x1="20.841299"
29
+       y1="160.21581"
30
+       x2="338.67969"
31
+       y2="160.21581"><stop
32
+         offset="0"
33
+         style="stop-color:#5C6470"
34
+         id="stop5" /><stop
35
+         offset="1"
36
+         style="stop-color:#797F8D"
37
+         id="stop7" /></linearGradient><linearGradient
38
+       id="XMLID_66_"
39
+       gradientUnits="userSpaceOnUse"
40
+       x1="178.3188"
41
+       y1="19.8276"
42
+       x2="178.3188"
43
+       y2="269.08029"><stop
44
+         offset="0"
45
+         style="stop-color:#6ABD45"
46
+         id="stop12" /><stop
47
+         offset="0.6685"
48
+         style="stop-color:#06AD4D"
49
+         id="stop14" /><stop
50
+         offset="1"
51
+         style="stop-color:#055448"
52
+         id="stop16" /></linearGradient><linearGradient
53
+       id="XMLID_67_"
54
+       gradientUnits="userSpaceOnUse"
55
+       x1="121.9199"
56
+       y1="-31.549801"
57
+       x2="192.1555"
58
+       y2="164.10899"><stop
59
+         offset="0"
60
+         style="stop-color:#6ABD45"
61
+         id="stop21" /><stop
62
+         offset="0.6348"
63
+         style="stop-color:#06AD4D"
64
+         id="stop23" /><stop
65
+         offset="0.7442"
66
+         style="stop-color:#0C864E"
67
+         id="stop25" /><stop
68
+         offset="0.8524"
69
+         style="stop-color:#096A4C"
70
+         id="stop27" /><stop
71
+         offset="0.9414"
72
+         style="stop-color:#045A49"
73
+         id="stop29" /><stop
74
+         offset="1"
75
+         style="stop-color:#055448"
76
+         id="stop31" /></linearGradient></defs><sodipodi:namedview
77
+     pagecolor="#ffffff"
78
+     bordercolor="#666666"
79
+     borderopacity="1"
80
+     objecttolerance="10"
81
+     gridtolerance="10"
82
+     guidetolerance="10"
83
+     inkscape:pageopacity="0"
84
+     inkscape:pageshadow="2"
85
+     inkscape:window-width="1920"
86
+     inkscape:window-height="1143"
87
+     id="namedview43"
88
+     showgrid="false"
89
+     inkscape:zoom="0.74136201"
90
+     inkscape:cx="-41.15427"
91
+     inkscape:cy="159.1665"
92
+     inkscape:window-x="1680"
93
+     inkscape:window-y="0"
94
+     inkscape:window-maximized="1"
95
+     inkscape:current-layer="Layer_1" /><filter
96
+     id="AI_GaussianBlur_4"><feGaussianBlur
97
+       stdDeviation="4"
98
+       id="feGaussianBlur2" /></filter><path
99
+     d="m 279.594,15.998 c -1.821,0.246 -3.521,1.213 -4.615,2.717 0,0 -123.926,167.272 -132.245,178.522 -9.5,-8.416 -65.03,-57.29 -65.03,-57.29 -1.395,-1.223 -3.24,-1.846 -5.098,-1.684 -1.846,0.138 -3.563,1.04 -4.744,2.464 L 22.4,196.163 c -2.393,2.92 -1.986,7.214 0.913,9.618 l 110.188,92.295 c 3.994,4.036 9.931,6.44 16.231,6.418 6.225,0.042 12.162,-2.362 16.637,-6.827 0.677,-0.773 171.14,-230.113 171.14,-230.113 2.203,-2.983 1.126,-7.546 -1.803,-9.853 L 284.768,17.426 c -1.444,-1.159 -3.326,-1.675 -5.174,-1.428 z M 144.525,214.134 c 1.912,-0.195 3.649,-1.183 4.777,-2.728 0,0 124.518,-168.068 132.493,-178.802 23.026,18.356 34.801,27.651 40.631,32.182 -7.709,10.36 -166.415,223.93 -166.415,223.93 -1.181,1.074 -3.619,2.061 -6.248,2.038 -2.737,0 -5.185,-0.988 -7.01,-2.812 -0.376,-0.365 -83.749,-70.182 -105.412,-88.322 6.28,-7.685 30.056,-36.675 36.637,-44.662 9.125,8.052 65.287,57.521 65.287,57.521 1.428,1.246 3.328,1.869 5.26,1.655 z"
100
+     id="path10"
101
+     style="fill:url(#XMLID_65_);filter:url(#AI_GaussianBlur_4)"
102
+     inkscape:connector-curvature="0" /><path
103
+     d="m 277.949,13.479 -3.35,4.491 -130.757,176.454 -0.965,0.528 -1.017,-0.339 -68.624,-60.441 -43.14,52.561 108.058,90.533 c 2.562,2.562 6.376,4.111 10.497,4.111 l 9.81,-3.413 C 159.172,277.181 323.404,56.203 323.404,56.203 l 3.137,-4.226 z"
104
+     id="path19"
105
+     style="fill:url(#XMLID_66_)"
106
+     inkscape:connector-curvature="0" /><path
107
+     d="m 275.201,6.393 c -1.797,0.243 -3.475,1.196 -4.555,2.679 0,0 -122.301,165.075 -130.511,176.177 -9.376,-8.306 -64.178,-56.532 -64.178,-56.532 -1.376,-1.208 -3.198,-1.822 -5.031,-1.664 -1.822,0.138 -3.517,1.028 -4.681,2.431 L 21.379,184.19 c -2.361,2.881 -1.96,7.119 0.901,9.492 l 108.743,91.085 c 3.941,3.982 9.801,6.355 16.019,6.334 6.144,0.042 12.003,-2.331 16.419,-6.738 0.668,-0.763 168.896,-227.088 168.896,-227.088 2.174,-2.946 1.111,-7.449 -1.779,-9.726 L 280.309,7.8 C 278.883,6.656 277.025,6.147 275.201,6.393 Z M 141.904,201.924 c 1.887,-0.192 3.602,-1.167 4.715,-2.692 0,0 122.885,-165.858 130.756,-176.452 22.725,18.114 34.344,27.289 40.098,31.758 -7.607,10.224 -164.233,220.99 -164.233,220.99 -1.166,1.059 -3.571,2.033 -6.166,2.011 -2.701,0 -5.116,-0.975 -6.918,-2.774 -0.371,-0.361 -82.651,-69.262 -104.03,-87.164 6.198,-7.585 29.662,-36.188 36.157,-44.069 9.005,7.944 64.431,56.759 64.431,56.759 1.408,1.23 3.283,1.845 5.19,1.633 z"
108
+     id="path34"
109
+     style="fill:url(#XMLID_67_)"
110
+     inkscape:connector-curvature="0" /><rect
111
+     style="fill:none"
112
+     y="0"
113
+     x="0"
114
+     id="rect38"
115
+     height="318.33301"
116
+     width="364.16699" /></svg>

+ 125
- 0
app/assets/images/check-grey.svg Dosyayı Görüntüle

@@ -0,0 +1,125 @@
1
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
+<!-- Generator: Adobe Illustrator 12.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 51448)  -->
3
+
4
+<svg
5
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
6
+   xmlns:cc="http://creativecommons.org/ns#"
7
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
8
+   xmlns:svg="http://www.w3.org/2000/svg"
9
+   xmlns="http://www.w3.org/2000/svg"
10
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
11
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
12
+   version="1.1"
13
+   id="Layer_1"
14
+   width="364.167"
15
+   height="318.333"
16
+   viewBox="0 0 364.167 318.333"
17
+   overflow="visible"
18
+   enable-background="new 0 0 364.167 318.333"
19
+   xml:space="preserve"
20
+   sodipodi:docname="check-ok.svg"
21
+   inkscape:version="0.92.1 r15371"><metadata
22
+     id="metadata47"><rdf:RDF><cc:Work
23
+         rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
24
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" /></cc:Work></rdf:RDF></metadata><defs
25
+     id="defs45"><linearGradient
26
+       id="XMLID_65_"
27
+       gradientUnits="userSpaceOnUse"
28
+       x1="20.841299"
29
+       y1="160.21581"
30
+       x2="338.67969"
31
+       y2="160.21581"><stop
32
+         offset="0"
33
+         style="stop-color:#5C6470"
34
+         id="stop5" /><stop
35
+         offset="1"
36
+         style="stop-color:#797F8D"
37
+         id="stop7" /></linearGradient><linearGradient
38
+       id="XMLID_66_"
39
+       gradientUnits="userSpaceOnUse"
40
+       x1="178.3188"
41
+       y1="19.8276"
42
+       x2="178.3188"
43
+       y2="269.08029"><stop
44
+         offset="0"
45
+         style="stop-color:#6ABD45"
46
+         id="stop12" /><stop
47
+         offset="0.6685"
48
+         style="stop-color:#06AD4D"
49
+         id="stop14" /><stop
50
+         offset="1"
51
+         style="stop-color:#055448"
52
+         id="stop16" /></linearGradient><linearGradient
53
+       id="XMLID_67_"
54
+       gradientUnits="userSpaceOnUse"
55
+       x1="121.9199"
56
+       y1="-31.549801"
57
+       x2="192.1555"
58
+       y2="164.10899"><stop
59
+         offset="0"
60
+         style="stop-color:#6ABD45"
61
+         id="stop21" /><stop
62
+         offset="0.6348"
63
+         style="stop-color:#06AD4D"
64
+         id="stop23" /><stop
65
+         offset="0.7442"
66
+         style="stop-color:#0C864E"
67
+         id="stop25" /><stop
68
+         offset="0.8524"
69
+         style="stop-color:#096A4C"
70
+         id="stop27" /><stop
71
+         offset="0.9414"
72
+         style="stop-color:#045A49"
73
+         id="stop29" /><stop
74
+         offset="1"
75
+         style="stop-color:#055448"
76
+         id="stop31" /></linearGradient><filter
77
+       style="color-interpolation-filters:sRGB;"
78
+       inkscape:label="Greyscale"
79
+       id="filter4502"><feColorMatrix
80
+         values="0.21 0.72 0.072 0 0 0.21 0.72 0.072 0 0 0.21 0.72 0.072 0 0 0 0 0 1 0 "
81
+         id="feColorMatrix4500"
82
+         result="fbSourceGraphic" /><feColorMatrix
83
+         result="fbSourceGraphicAlpha"
84
+         in="fbSourceGraphic"
85
+         values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0"
86
+         id="feColorMatrix4504" /><feColorMatrix
87
+         id="feColorMatrix4506"
88
+         values="0.21 0.72 0.072 0 0 0.21 0.72 0.072 0 0 0.21 0.72 0.072 0 0 0 0 0 1 0 "
89
+         in="fbSourceGraphic" /></filter></defs><sodipodi:namedview
90
+     pagecolor="#ffffff"
91
+     bordercolor="#666666"
92
+     borderopacity="1"
93
+     objecttolerance="10"
94
+     gridtolerance="10"
95
+     guidetolerance="10"
96
+     inkscape:pageopacity="0"
97
+     inkscape:pageshadow="2"
98
+     inkscape:window-width="1920"
99
+     inkscape:window-height="1143"
100
+     id="namedview43"
101
+     showgrid="false"
102
+     inkscape:zoom="0.74136201"
103
+     inkscape:cx="-265.7409"
104
+     inkscape:cy="159.1665"
105
+     inkscape:window-x="1680"
106
+     inkscape:window-y="0"
107
+     inkscape:window-maximized="1"
108
+     inkscape:current-layer="Layer_1" /><filter
109
+     id="AI_GaussianBlur_4"><feGaussianBlur
110
+       stdDeviation="4"
111
+       id="feGaussianBlur2" /></filter><path
112
+     d="m 279.594,15.998 c -1.821,0.246 -3.521,1.213 -4.615,2.717 0,0 -123.926,167.272 -132.245,178.522 -9.5,-8.416 -65.03,-57.29 -65.03,-57.29 -1.395,-1.223 -3.24,-1.846 -5.098,-1.684 -1.846,0.138 -3.563,1.04 -4.744,2.464 L 22.4,196.163 c -2.393,2.92 -1.986,7.214 0.913,9.618 l 110.188,92.295 c 3.994,4.036 9.931,6.44 16.231,6.418 6.225,0.042 12.162,-2.362 16.637,-6.827 0.677,-0.773 171.14,-230.113 171.14,-230.113 2.203,-2.983 1.126,-7.546 -1.803,-9.853 L 284.768,17.426 c -1.444,-1.159 -3.326,-1.675 -5.174,-1.428 z M 144.525,214.134 c 1.912,-0.195 3.649,-1.183 4.777,-2.728 0,0 124.518,-168.068 132.493,-178.802 23.026,18.356 34.801,27.651 40.631,32.182 -7.709,10.36 -166.415,223.93 -166.415,223.93 -1.181,1.074 -3.619,2.061 -6.248,2.038 -2.737,0 -5.185,-0.988 -7.01,-2.812 -0.376,-0.365 -83.749,-70.182 -105.412,-88.322 6.28,-7.685 30.056,-36.675 36.637,-44.662 9.125,8.052 65.287,57.521 65.287,57.521 1.428,1.246 3.328,1.869 5.26,1.655 z"
113
+     id="path10"
114
+     style="fill:url(#XMLID_65_);filter:url(#AI_GaussianBlur_4)"
115
+     inkscape:connector-curvature="0" /><path
116
+     d="m 275.201,6.393 c -1.797,0.243 -3.475,1.196 -4.555,2.679 0,0 -122.301,165.075 -130.511,176.177 -9.376,-8.306 -64.178,-56.532 -64.178,-56.532 -1.376,-1.208 -3.198,-1.822 -5.031,-1.664 -1.822,0.138 -3.517,1.028 -4.681,2.431 L 21.379,184.19 c -2.361,2.881 -1.96,7.119 0.901,9.492 l 108.743,91.085 c 3.941,3.982 9.801,6.355 16.019,6.334 6.144,0.042 12.003,-2.331 16.419,-6.738 0.668,-0.763 168.896,-227.088 168.896,-227.088 2.174,-2.946 1.111,-7.449 -1.779,-9.726 L 280.309,7.8 C 278.883,6.656 277.025,6.147 275.201,6.393 Z M 141.904,201.924 c 1.887,-0.192 3.602,-1.167 4.715,-2.692 0,0 122.885,-165.858 130.756,-176.452 22.725,18.114 34.344,27.289 40.098,31.758 -7.607,10.224 -164.233,220.99 -164.233,220.99 -1.166,1.059 -3.571,2.033 -6.166,2.011 -2.701,0 -5.116,-0.975 -6.918,-2.774 -0.371,-0.361 -82.651,-69.262 -104.03,-87.164 6.198,-7.585 29.662,-36.188 36.157,-44.069 9.005,7.944 64.431,56.759 64.431,56.759 1.408,1.23 3.283,1.845 5.19,1.633 z"
117
+     id="path34"
118
+     style="fill:url(#XMLID_67_);filter:url(#filter4502)"
119
+     inkscape:connector-curvature="0" /><rect
120
+     style="fill:none"
121
+     y="0"
122
+     x="0"
123
+     id="rect38"
124
+     height="318.33301"
125
+     width="364.16699" /></svg>

+ 166
- 0
app/assets/images/cross-orange.svg Dosyayı Görüntüle

@@ -0,0 +1,166 @@
1
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
3
+
4
+<svg
5
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
6
+   xmlns:cc="http://creativecommons.org/ns#"
7
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
8
+   xmlns:svg="http://www.w3.org/2000/svg"
9
+   xmlns="http://www.w3.org/2000/svg"
10
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
11
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
12
+   id="svg2"
13
+   height="205"
14
+   width="205"
15
+   version="1.0"
16
+   sodipodi:docname="cross-orange.svg"
17
+   inkscape:version="0.92.1 r15371">
18
+  <sodipodi:namedview
19
+     pagecolor="#ffffff"
20
+     bordercolor="#666666"
21
+     borderopacity="1"
22
+     objecttolerance="10"
23
+     gridtolerance="10"
24
+     guidetolerance="10"
25
+     inkscape:pageopacity="0"
26
+     inkscape:pageshadow="2"
27
+     inkscape:window-width="1920"
28
+     inkscape:window-height="1143"
29
+     id="namedview23"
30
+     showgrid="false"
31
+     inkscape:zoom="1.1512195"
32
+     inkscape:cx="-41.260593"
33
+     inkscape:cy="102.5"
34
+     inkscape:window-x="1680"
35
+     inkscape:window-y="0"
36
+     inkscape:window-maximized="1"
37
+     inkscape:current-layer="svg2" />
38
+  <metadata
39
+     id="metadata2248">
40
+    <rdf:RDF>
41
+      <cc:Work
42
+         rdf:about="">
43
+        <dc:format>image/svg+xml</dc:format>
44
+        <dc:type
45
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
46
+      </cc:Work>
47
+    </rdf:RDF>
48
+  </metadata>
49
+  <defs
50
+     id="defs4">
51
+    <filter
52
+       id="filter3157">
53
+      <feGaussianBlur
54
+         id="feGaussianBlur3159"
55
+         stdDeviation="5" />
56
+    </filter>
57
+    <linearGradient
58
+       id="linearGradient4094"
59
+       y2="174.94"
60
+       gradientUnits="userSpaceOnUse"
61
+       x2="205"
62
+       gradientTransform="translate(-102.5,-62.5)"
63
+       y1="85"
64
+       x1="205">
65
+      <stop
66
+         id="stop9083"
67
+         stop-color="#fff"
68
+         offset="0" />
69
+      <stop
70
+         id="stop9085"
71
+         stop-color="#fff"
72
+         stop-opacity="0"
73
+         offset="1" />
74
+    </linearGradient>
75
+    <radialGradient
76
+       id="radialGradient4097"
77
+       gradientUnits="userSpaceOnUse"
78
+       cy="212.5"
79
+       cx="205"
80
+       gradientTransform="matrix(1 0 0 .50262 -102.5 43.194)"
81
+       r="95.5">
82
+      <stop
83
+         id="stop7292"
84
+         stop-color="#fff"
85
+         stop-opacity=".71134"
86
+         offset="0" />
87
+      <stop
88
+         id="stop7294"
89
+         stop-color="#fff"
90
+         stop-opacity="0"
91
+         offset="1" />
92
+    </radialGradient>
93
+    <radialGradient
94
+       id="radialGradient4100"
95
+       gradientUnits="userSpaceOnUse"
96
+       cy="230.01"
97
+       cx="157.25"
98
+       gradientTransform="translate(-54.75,-62.5)"
99
+       r="95.5">
100
+      <stop
101
+         id="stop4611"
102
+         stop-color="#fff"
103
+         offset="0" />
104
+      <stop
105
+         id="stop4613"
106
+         stop-color="red"
107
+         offset="1" />
108
+    </radialGradient>
109
+    <linearGradient
110
+       id="linearGradient4102"
111
+       y2="261"
112
+       gradientUnits="userSpaceOnUse"
113
+       x2="205"
114
+       gradientTransform="translate(-102.5,-62.5)"
115
+       y1="69"
116
+       x1="205">
117
+      <stop
118
+         id="stop4048"
119
+         stop-color="#5d0000"
120
+         offset="0" />
121
+      <stop
122
+         id="stop4050"
123
+         stop-color="red"
124
+         offset="1" />
125
+    </linearGradient>
126
+    <filter
127
+       style="color-interpolation-filters:sRGB;"
128
+       inkscape:label="Color Shift"
129
+       id="filter6064">
130
+      <feColorMatrix
131
+         type="hueRotate"
132
+         values="50"
133
+         result="color1"
134
+         id="feColorMatrix6060" />
135
+      <feColorMatrix
136
+         type="saturate"
137
+         values="1"
138
+         result="color2"
139
+         id="feColorMatrix6062" />
140
+    </filter>
141
+  </defs>
142
+  <path
143
+     id="path9984"
144
+     d="m43 13l-30 30 65 65-65 65 30 30 65-65 65 65 30-30-65-65 65-65-30-30-65 65-65-65z"
145
+     fill-opacity=".68047"
146
+     fill-rule="evenodd"
147
+     filter="url(#filter3157)" />
148
+  <path
149
+     id="path3712"
150
+     d="m37.5 7.5l-30 30 65 65-65 65 30 30 65-65 65 65 30-30-65-65 65-65-30-30-65 65-65-65z"
151
+     fill-rule="evenodd"
152
+     stroke="url(#linearGradient4102)"
153
+     stroke-width="2"
154
+     fill="url(#radialGradient4100)"
155
+     style="filter:url(#filter6064)" />
156
+  <path
157
+     id="path3722"
158
+     d="m72.5 102.5l5 5-60 60 20 20 65-65 65 65 20-20-60-60 5-5 65 65-30 30-65-65-65 65-30-30 65-65z"
159
+     fill-rule="evenodd"
160
+     fill="url(#radialGradient4097)" />
161
+  <path
162
+     id="path8186"
163
+     d="m37.5 22.5l-15 15 80.04 74.94 79.96-74.94-15-15-65 65-65-65z"
164
+     fill-rule="evenodd"
165
+     fill="url(#linearGradient4094)" />
166
+</svg>

+ 37
- 0
app/assets/images/cross-red.svg Dosyayı Görüntüle

@@ -0,0 +1,37 @@
1
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
3
+<svg id="svg2" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://www.w3.org/2000/svg" height="205" width="205" version="1.0" xmlns:cc="http://web.resource.org/cc/" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:dc="http://purl.org/dc/elements/1.1/">
4
+ <metadata id="metadata2248">
5
+  <rdf:RDF>
6
+   <cc:Work rdf:about="">
7
+    <dc:format>image/svg+xml</dc:format>
8
+    <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
9
+   </cc:Work>
10
+  </rdf:RDF>
11
+ </metadata>
12
+ <defs id="defs4">
13
+  <filter id="filter3157">
14
+   <feGaussianBlur id="feGaussianBlur3159" stdDeviation="5"/>
15
+  </filter>
16
+  <linearGradient id="linearGradient4094" y2="174.94" gradientUnits="userSpaceOnUse" x2="205" gradientTransform="translate(-102.5,-62.5)" y1="85" x1="205">
17
+   <stop id="stop9083" stop-color="#fff" offset="0"/>
18
+   <stop id="stop9085" stop-color="#fff" stop-opacity="0" offset="1"/>
19
+  </linearGradient>
20
+  <radialGradient id="radialGradient4097" gradientUnits="userSpaceOnUse" cy="212.5" cx="205" gradientTransform="matrix(1 0 0 .50262 -102.5 43.194)" r="95.5">
21
+   <stop id="stop7292" stop-color="#fff" stop-opacity=".71134" offset="0"/>
22
+   <stop id="stop7294" stop-color="#fff" stop-opacity="0" offset="1"/>
23
+  </radialGradient>
24
+  <radialGradient id="radialGradient4100" gradientUnits="userSpaceOnUse" cy="230.01" cx="157.25" gradientTransform="translate(-54.75,-62.5)" r="95.5">
25
+   <stop id="stop4611" stop-color="#fff" offset="0"/>
26
+   <stop id="stop4613" stop-color="red" offset="1"/>
27
+  </radialGradient>
28
+  <linearGradient id="linearGradient4102" y2="261" gradientUnits="userSpaceOnUse" x2="205" gradientTransform="translate(-102.5,-62.5)" y1="69" x1="205">
29
+   <stop id="stop4048" stop-color="#5d0000" offset="0"/>
30
+   <stop id="stop4050" stop-color="red" offset="1"/>
31
+  </linearGradient>
32
+ </defs>
33
+ <path id="path9984" d="m43 13l-30 30 65 65-65 65 30 30 65-65 65 65 30-30-65-65 65-65-30-30-65 65-65-65z" fill-opacity=".68047" fill-rule="evenodd" filter="url(#filter3157)"/>
34
+ <path id="path3712" d="m37.5 7.5l-30 30 65 65-65 65 30 30 65-65 65 65 30-30-65-65 65-65-30-30-65 65-65-65z" fill-rule="evenodd" stroke="url(#linearGradient4102)" stroke-width="2" fill="url(#radialGradient4100)"/>
35
+ <path id="path3722" d="m72.5 102.5l5 5-60 60 20 20 65-65 65 65 20-20-60-60 5-5 65 65-30 30-65-65-65 65-30-30 65-65z" fill-rule="evenodd" fill="url(#radialGradient4097)"/>
36
+ <path id="path8186" d="m37.5 22.5l-15 15 80.04 74.94 79.96-74.94-15-15-65 65-65-65z" fill-rule="evenodd" fill="url(#linearGradient4094)"/>
37
+</svg>

+ 2
- 0
app/assets/images/donate.svg Dosyayı Görüntüle

@@ -0,0 +1,2 @@
1
+<svg xmlns="http://www.w3.org/2000/svg" width="83" height="30"><rect id="back" fill="#f6c915" x="1" y=".5" width="82" height="29" rx="4"/><svg viewBox="0 0 80 80" height="16" width="16" x="7" y="7"><g transform="translate(-78.37-208.06)" fill="#1a171b"><path d="m104.28 271.1c-3.571 0-6.373-.466-8.41-1.396-2.037-.93-3.495-2.199-4.375-3.809-.88-1.609-1.308-3.457-1.282-5.544.025-2.086.313-4.311.868-6.675l9.579-40.05 11.69-1.81-10.484 43.44c-.202.905-.314 1.735-.339 2.489-.026.754.113 1.421.415 1.999.302.579.817 1.044 1.546 1.395.729.353 1.747.579 3.055.679l-2.263 9.278"/><path d="m146.52 246.14c0 3.671-.604 7.03-1.811 10.07-1.207 3.043-2.879 5.669-5.01 7.881-2.138 2.213-4.702 3.935-7.693 5.167-2.992 1.231-6.248 1.848-9.767 1.848-1.71 0-3.42-.151-5.129-.453l-3.394 13.651h-11.162l12.52-52.19c2.01-.603 4.311-1.143 6.901-1.622 2.589-.477 5.393-.716 8.41-.716 2.815 0 5.242.428 7.278 1.282 2.037.855 3.708 2.024 5.02 3.507 1.307 1.484 2.274 3.219 2.904 5.205.627 1.987.942 4.11.942 6.373m-27.378 15.461c.854.202 1.91.302 3.167.302 1.961 0 3.746-.364 5.355-1.094 1.609-.728 2.979-1.747 4.111-3.055 1.131-1.307 2.01-2.877 2.64-4.714.628-1.835.943-3.858.943-6.071 0-2.161-.479-3.998-1.433-5.506-.956-1.508-2.615-2.263-4.978-2.263-1.61 0-3.118.151-4.525.453l-5.28 21.948"/></g></svg><text fill="#1a171b" text-anchor="middle" font-family="Helvetica Neue,Helvetica,Arial,sans-serif"
2
+          font-weight="700" font-size="14" x="50" y="20">Donate</text></svg>

BIN
app/assets/images/donorbox.png Dosyayı Görüntüle


+ 55
- 0
app/assets/images/paypal.svg Dosyayı Görüntüle

@@ -0,0 +1,55 @@
1
+<?xml version="1.0" encoding="utf-8"?>
2
+<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
3
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
4
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
5
+	 width="127.769px" height="31.5px" viewBox="0 0 127.769 31.5" enable-background="new 0 0 127.769 31.5" xml:space="preserve">
6
+<g>
7
+	<g>
8
+		<g>
9
+			<path fill="#009CDE" d="M98.396,6.933H91.37c-0.479,0-0.89,0.35-0.964,0.824l-2.841,18.015c-0.056,0.355,0.219,0.676,0.579,0.676
10
+				h3.604c0.335,0,0.622-0.244,0.674-0.576l0.807-5.107c0.074-0.474,0.483-0.824,0.964-0.824h2.223c4.628,0,7.298-2.239,7.996-6.678
11
+				c0.314-1.941,0.014-3.467-0.896-4.535C102.518,7.553,100.746,6.933,98.396,6.933z M99.207,13.512
12
+				c-0.384,2.522-2.31,2.522-4.173,2.522h-1.061l0.744-4.708c0.045-0.285,0.29-0.495,0.578-0.495h0.485c1.269,0,2.467,0,3.084,0.723
13
+				C99.234,11.986,99.347,12.626,99.207,13.512z"/>
14
+			<path fill="#003087" d="M48.288,6.933h-7.025c-0.481,0-0.89,0.35-0.965,0.824l-2.841,18.015
15
+				c-0.056,0.355,0.219,0.676,0.579,0.676h3.354c0.48,0,0.889-0.349,0.964-0.823l0.767-4.86c0.075-0.474,0.484-0.824,0.964-0.824
16
+				h2.223c4.627,0,7.298-2.239,7.997-6.678c0.314-1.941,0.012-3.467-0.896-4.535C52.409,7.553,50.638,6.933,48.288,6.933z
17
+				 M49.099,13.512c-0.384,2.522-2.31,2.522-4.173,2.522h-1.06l0.743-4.708c0.045-0.285,0.291-0.495,0.579-0.495h0.486
18
+				c1.268,0,2.466,0,3.083,0.723C49.126,11.986,49.238,12.626,49.099,13.512z"/>
19
+			<path fill="#003087" d="M69.286,13.432h-3.363c-0.289,0-0.534,0.209-0.579,0.494l-0.147,0.94l-0.236-0.341
20
+				c-0.728-1.058-2.352-1.41-3.973-1.41c-3.716,0-6.891,2.816-7.509,6.766c-0.322,1.971,0.135,3.854,1.252,5.169
21
+				c1.026,1.208,2.492,1.71,4.237,1.71c2.995,0,4.657-1.924,4.657-1.924l-0.15,0.935c-0.056,0.355,0.218,0.677,0.578,0.677h3.03
22
+				c0.48,0,0.889-0.349,0.965-0.822l1.817-11.517C69.921,13.752,69.646,13.432,69.286,13.432z M64.598,19.979
23
+				c-0.325,1.923-1.851,3.212-3.797,3.212c-0.976,0-1.757-0.314-2.259-0.907c-0.498-0.59-0.685-1.429-0.527-2.363
24
+				c0.303-1.905,1.854-3.237,3.771-3.237c0.955,0,1.73,0.316,2.243,0.917C64.543,18.205,64.746,19.05,64.598,19.979z"/>
25
+			<path fill="#009CDE" d="M119.394,13.432h-3.363c-0.288,0-0.533,0.209-0.578,0.494l-0.148,0.94l-0.235-0.341
26
+				c-0.729-1.058-2.352-1.41-3.973-1.41c-3.718,0-6.893,2.816-7.51,6.766c-0.321,1.971,0.135,3.854,1.252,5.169
27
+				c1.026,1.208,2.492,1.71,4.237,1.71c2.995,0,4.657-1.924,4.657-1.924l-0.15,0.935c-0.057,0.355,0.219,0.677,0.578,0.677h3.03
28
+				c0.479,0,0.889-0.349,0.964-0.822l1.818-11.517C120.029,13.752,119.754,13.432,119.394,13.432z M114.706,19.979
29
+				c-0.325,1.923-1.851,3.212-3.797,3.212c-0.976,0-1.757-0.314-2.26-0.907c-0.496-0.59-0.685-1.429-0.526-2.363
30
+				c0.304-1.905,1.853-3.237,3.77-3.237c0.956,0,1.731,0.316,2.243,0.917C114.651,18.205,114.854,19.05,114.706,19.979z"/>
31
+			<path fill="#003087" d="M87.204,13.432h-3.382c-0.323,0-0.626,0.16-0.808,0.427l-4.664,6.87l-1.978-6.601
32
+				c-0.123-0.414-0.504-0.696-0.935-0.696h-3.324c-0.401,0-0.683,0.395-0.555,0.774l3.724,10.929l-3.502,4.941
33
+				C71.506,30.464,71.784,31,72.259,31h3.379c0.319,0,0.619-0.157,0.802-0.42l11.246-16.229
34
+				C87.954,13.962,87.676,13.432,87.204,13.432z"/>
35
+			<path fill="#009CDE" d="M123.359,7.427l-2.883,18.344c-0.057,0.355,0.218,0.676,0.578,0.676h2.9c0.48,0,0.889-0.349,0.964-0.822
36
+				l2.843-18.016c0.056-0.355-0.219-0.677-0.578-0.677h-3.246C123.65,6.933,123.404,7.143,123.359,7.427z"/>
37
+		</g>
38
+	</g>
39
+	<g>
40
+		<path fill="#009CDE" d="M23.675,7.876c0.378-2.412-0.002-4.053-1.307-5.539C20.932,0.701,18.338,0,15.019,0H5.384
41
+			C4.706,0,4.128,0.494,4.022,1.164L0.01,26.604c-0.079,0.503,0.309,0.956,0.817,0.956h5.948l-0.411,2.604
42
+			C6.295,30.603,6.635,31,7.08,31h5.014c0.593,0,1.098-0.432,1.191-1.018l0.049-0.255l0.944-5.989l0.061-0.331
43
+			c0.093-0.586,0.598-1.019,1.191-1.019h0.75c4.857,0,8.66-1.972,9.771-7.68c0.465-2.384,0.225-4.375-1.003-5.774
44
+			C24.676,8.512,24.214,8.162,23.675,7.876L23.675,7.876"/>
45
+		<path fill="#012169" d="M23.675,7.876c0.378-2.412-0.002-4.053-1.307-5.539C20.932,0.701,18.338,0,15.019,0H5.384
46
+			C4.706,0,4.128,0.494,4.022,1.164L0.01,26.604c-0.079,0.503,0.309,0.956,0.817,0.956h5.948l1.494-9.475l-0.046,0.298
47
+			c0.106-0.671,0.678-1.164,1.357-1.164h2.827c5.552,0,9.899-2.256,11.17-8.779C23.614,8.247,23.646,8.061,23.675,7.876"/>
48
+		<path fill="#003087" d="M9.875,7.908c0.063-0.403,0.322-0.733,0.67-0.9c0.158-0.076,0.335-0.118,0.521-0.118h7.553
49
+			c0.895,0,1.729,0.059,2.492,0.182c0.218,0.035,0.43,0.075,0.636,0.121c0.206,0.045,0.406,0.096,0.6,0.153
50
+			c0.097,0.028,0.192,0.058,0.286,0.089c0.375,0.125,0.724,0.271,1.044,0.441c0.378-2.412-0.002-4.053-1.307-5.539
51
+			C20.932,0.701,18.338,0,15.019,0H5.384C4.706,0,4.128,0.494,4.022,1.164L0.01,26.604c-0.079,0.503,0.309,0.956,0.817,0.956h5.948
52
+			l1.494-9.475L9.875,7.908z"/>
53
+	</g>
54
+</g>
55
+</svg>

+ 1
- 0
app/assets/javascripts/application.coffee Dosyayı Görüntüle

@@ -1,2 +1,3 @@
1
+##= require jquery
1 2
 ##= require bootstrap/dropdown
2 3
 ##= require_tree .

app/assets/stylesheets/application.scss → app/assets/stylesheets/application.scss.erb Dosyayı Görüntüle

@@ -35,11 +35,17 @@ body {
35 35
 	background-color: #000;
36 36
 }
37 37
 
38
-table.center td {
39
-	text-align: center;
38
+.label-critical, .progress-bar-critical {
39
+	background-color: #000;
40
+}
41
+
42
+table.center {
43
+	td, th {
44
+		text-align: center;
40 45
 
41
-	&.left {
42
-		text-align: left;
46
+		&.left {
47
+			text-align: left;
48
+		}
43 49
 	}
44 50
 }
45 51
 
@@ -51,10 +57,13 @@ td.primary {
51 57
 	background-color: $state-info-bg;
52 58
 }
53 59
 
60
+<% unless Rails.env == 'production' %>
54 61
 .translation_missing {
55 62
 	border: 1px solid red;
56 63
 }
57 64
 
65
+<% end %>
66
+
58 67
 .progress-bar-default {
59 68
 	background-color: $label-default-bg;
60 69
 }
@@ -79,45 +88,70 @@ $color-great: #5cb85c;
79 88
 .label-state-critical {
80 89
 	background-color: $color-critical;
81 90
 }
91
+
82 92
 .label-state-error {
83 93
 	background-color: $color-error;
84 94
 }
95
+
85 96
 .label-state-warning {
86 97
 	background-color: $color-warning;
87 98
 	color: $text-color;
88 99
 }
100
+
89 101
 .label-state-good {
90 102
 	background-color: $color-good;
91 103
 	color: $text-color;
92 104
 }
105
+
93 106
 .label-state-best {
94 107
 	background-color: $color-best;
95 108
 }
109
+
96 110
 .label-state-great {
97 111
 	background-color: $color-great;
98 112
 }
99 113
 
100 114
 .label-state-default {
101
-	//background-color: #008000;
102 115
 	background-color: $label-default-bg;
103 116
 }
117
+
104 118
 .label-state-success {
105 119
 	background-color: $label-success-bg;
106 120
 }
107 121
 
108
-.alert-critical, .alert-error {
109
-	background-color: $alert-danger-bg;
110
-	color: $alert-danger-text;
111
-	border-color: $alert-danger-border
122
+$lighten-alert: 35%;
123
+.alert-critical {
124
+	background-color: lighten($color-critical, $lighten-alert);
125
+	color: $color-critical;
126
+	border-color: $color-critical;
127
+}
128
+
129
+.alert-error {
130
+	background-color: lighten($color-error, $lighten-alert);
131
+	color: $color-error;
132
+	border-color: $color-error;
112 133
 }
134
+
113 135
 .alert-warning {
114
-	background-color: $alert-warning-bg;
115
-	color: $alert-warning-text;
116
-	border-color: $alert-warning-border
136
+	background-color: lighten($color-warning, $lighten-alert);
137
+	color: $color-warning;
138
+	border-color: $color-warning;
117 139
 }
118
-.alert-good, .alert-great, .alert-best {
119
-	background-color: $alert-success-bg;
120
-	color: $alert-success-text;
121
-	border-color: $alert-success-border
140
+
141
+.alert-good {
142
+	background-color: lighten($color-good, $lighten-alert);
143
+	color: $color-good;
144
+	border-color: $color-good;
145
+}
146
+
147
+.alert-best {
148
+	background-color: lighten($color-best, $lighten-alert);
149
+	color: $color-best;
150
+	border-color: $color-best;
122 151
 }
123 152
 
153
+.alert-great {
154
+	background-color: lighten($color-great, $lighten-alert);
155
+	color: $color-great;
156
+	border-color: $color-great;
157
+}

+ 0
- 0
app/assets/stylesheets/site.scss Dosyayı Görüntüle


+ 32
- 0
app/assets/stylesheets/site.scss.erb Dosyayı Görüntüle

@@ -0,0 +1,32 @@
1
+#about, #help {
2
+	margin-bottom: 20px;
3
+	p {
4
+		font-size: 1.25em;
5
+	}
6
+}
7
+
8
+#donorbox {
9
+	background: #2d81c5 url(<%= image_path 'donorbox.png' %>) no-repeat 18px center;
10
+	color: #fff;
11
+	text-decoration: none;
12
+	font-family: Verdana, sans-serif;
13
+	display: inline-block;
14
+	font-size: 16px;
15
+	padding: 13px 17px 13px 56px;
16
+	-webkit-border-radius: 2px;
17
+	-moz-border-radius: 2px;
18
+	border-radius: 2px;
19
+	box-shadow: 0 1px 0 0 #1f5a89;
20
+	text-shadow: 0 1px rgba(0, 0, 0, 0.3);
21
+}
22
+
23
+#liberapay, #donorbox, #paypal {
24
+	img {
25
+		height: 50px;
26
+		max-width: 140px;
27
+	}
28
+}
29
+
30
+table.scoring img {
31
+	width: 30px;
32
+}

+ 8
- 0
app/controllers/site_controller.rb Dosyayı Görüntüle

@@ -34,4 +34,12 @@ class SiteController < ApplicationController
34 34
 		@suite = params[:id] || params.require(:suite)
35 35
 		@ciphers = CryptCheck::Tls::Cipher.list @suite
36 36
 	end
37
+
38
+	def help
39
+
40
+	end
41
+
42
+	def about
43
+
44
+	end
37 45
 end

+ 2
- 1
app/helpers/check_helper.rb Dosyayı Görüntüle

@@ -54,7 +54,8 @@ module CheckHelper
54 54
 	end
55 55
 
56 56
 	def rank_label(rank)
57
-		label rank, rank_color(rank)
57
+		l = %i(V T).include? rank
58
+		label rank, rank_color(rank), !l
58 59
 	end
59 60
 
60 61
 	def protocol_label(protocol)

+ 2
- 0
app/views/application/_headers.erb Dosyayı Görüntüle

@@ -14,6 +14,8 @@
14 14
 			<ul class="nav navbar-nav navbar-right">
15 15
 				<li><%= link_to t('User agent compatibility'), suite_path %></li>
16 16
 				<li><%= link_to t('Supported cipher suites'), ciphers_path %></li>
17
+				<li><%= link_to t('Help'), help_path %></li>
18
+				<li><%= link_to t('About'), about_path %></li>
17 19
 				<!--
18 20
 				<li class="dropdown">
19 21
 					<a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">

+ 90
- 0
app/views/site/about.html.erb Dosyayı Görüntüle

@@ -0,0 +1,90 @@
1
+<div id="about" class="container">
2
+	<div class="row">
3
+		<div class="col-sm-12">
4
+			<h1>About</h1>
5
+
6
+			<p>
7
+				This service is developed by
8
+				<a href="https://imirhil.fr/" target="_blank">aeris</a>.
9
+			</p>
10
+
11
+			<p>
12
+				Source code is available under
13
+				<a href="https://www.gnu.org/licenses/agpl-3.0.html" target="_blank">AGPL
14
+					v3</a>
15
+				license :
16
+			</p>
17
+			<ul>
18
+				<li>
19
+					Engine:
20
+					<a href="https://git.imirhil.fr/aeris/cryptcheck" target="_blank">
21
+						https://git.imirhil.fr/aeris/cryptcheck
22
+					</a>
23
+				</li>
24
+				<li>
25
+					Frontend:
26
+					<a href="https://git.imirhil.fr/aeris/cryptcheck-rails" target="_blank">
27
+						https://git.imirhil.fr/aeris/cryptcheck-rails
28
+					</a>
29
+				</li>
30
+			</ul>
31
+
32
+			<p>
33
+				This project contributes to improve Ruby too.
34
+			</p>
35
+			<ul>
36
+				<li>
37
+					<a href="https://github.com/ruby/openssl/commit/bd6a4954382b7b742575d5688bd9b93a597bcc24" target="_blank">Access TLS session ephemeral key</a>
38
+				</li>
39
+				<li>
40
+					<a href="https://github.com/ruby/openssl/pull/165" target="_blank">Support for TLS fallback signaling (SCSV)</a>
41
+				</li>
42
+				<li>
43
+					<a href="https://github.com/ruby/openssl/pull/166" target="_blank">Allow multiple certificates for TLS server</a>
44
+				</li>
45
+				<li>
46
+					<a href="https://github.com/ruby/ruby/pull/1732" target="_blank">CAA RR DNS support</a>
47
+				</li>
48
+			</ul>
49
+
50
+			<p>
51
+				Icons used:
52
+			</p>
53
+			<ul>
54
+				<li>
55
+					<a href="https://commons.wikimedia.org/wiki/File:Tick_green_modern.svg" target="_blank">Tick green modern</a>
56
+					by <a href="https://commons.wikimedia.org/wiki/User:Jossifresco" target="_blank">Jossifresco</a> (public domain)
57
+				</li>
58
+				<li>
59
+					<a href="https://commons.wikimedia.org/wiki/File:Crystal_128_error.svg" target="_blank">Crystal 128 error</a>
60
+					by <a href="https://commons.wikimedia.org/wiki/User:RedHotHeat" target="_blank">RedHotHeat</a>
61
+					(<a href="https://www.gnu.org/copyleft/lesser.html" target="_blank">LGPL</a>)
62
+				</li>
63
+			</ul>
64
+
65
+			<h1>Support</h1>
66
+			<p>
67
+				You can support development and hosting for this service:
68
+			</p>
69
+
70
+			<p id="contribute">
71
+				Bitcoin <a href="bitcoin:1aerisnnLWPchhDSXpxWGYWwLiSFUVFnd?label=cryptcheck">1aerisnnLWPchhDSXpxWGYWwLiSFUVFnd</a><br/>
72
+				<a id="bitcoin" href="bitcoin:1aerisnnLWPchhDSXpxWGYWwLiSFUVFnd?label=cryptcheck">
73
+					<%= image_tag 'bitcoin.png', alt: 'Donate using Bitcoin' %>
74
+				</a>
75
+				<br/>
76
+
77
+				Liberapay, for recurring donation, require a account (but respect your privacy)<br/>
78
+				<a id="liberapay" href="https://liberapay.com/aeris/donate" target="_blank"><%= image_tag 'donate.svg', alt: 'Donate using Liberapay' %></a>
79
+				<br/>
80
+
81
+				Donorbox, for recurring and one-shot donation, doesn't require an account<br/>
82
+				<a id="donorbox" href="https://donorbox.org/cryptcheck" target="_blank">Donate</a>
83
+				<br/>
84
+
85
+				Paypal, what to say about this service and your privacy, but already used by most of the world<br/>
86
+				<a id="paypal" href="https://www.paypal.com/cgi-bin/webscr?cmd=_donations&currency_code=EUR&business=aeris@imirhil.fr&item_name=CryptCheck%20donation" target="_blank"><%= image_tag 'paypal.svg', alt: 'Donate using Paypal' %></a>
87
+			</p>
88
+		</div>
89
+	</div>
90
+</div>

+ 257
- 0
app/views/site/help.html.erb Dosyayı Görüntüle

@@ -0,0 +1,257 @@
1
+<div id="help" class="container">
2
+	<div class="row">
3
+		<div class="col-sm-12">
4
+			<h1>Scoring</h1>
5
+
6
+			<p>
7
+				Currently, CryptCheck gives note from <%= rank_label :G %> for the
8
+				worst sites to <%= rank_label :'A+' %> for the best ones.
9
+			</p>
10
+
11
+			<p>
12
+				Scoring is based on the fact that TLS handshake is <b>not</b>
13
+				authenticated, and so an attacker can force to use whatever
14
+				cipher he wants as soon as both client and server support it,
15
+				with a downgrade attack as simple as modify TCP packets on the
16
+				fly.
17
+			</p>
18
+
19
+			<p>
20
+				Such downgrade attack doesn't require heavy resources and can be
21
+				made with standard computer or phone.<br/>
22
+				The only difficult part is to be in position to modify the
23
+				traffic between the client and the server.
24
+				This is the case if the attacker is connected on the same network
25
+				as the client (hotspot, 3G…) with simple
26
+				<a href="https://en.wikipedia.org/wiki/ARP_spoofing">ARP spoofing</a>,
27
+				doable with tools like
28
+				<a href="https://forum.xda-developers.com/showthread.php?t=1593990">Droid Sheep</a>.<br/>
29
+			</p>
30
+
31
+			<p>
32
+				As client support can't be guessed, CryptCheck considers the
33
+				<b>weakest</b> suite supported server side.
34
+				This way, a connection to the scored service can't lead to a
35
+				negociated handshake with a worse score than the one given to
36
+				the service, whatever your client supports and whatever an
37
+				attacker is present or not.
38
+			</p>
39
+
40
+			<table class="scoring table table-bordered table-condensed center table-striped">
41
+				<thead>
42
+					<tr>
43
+						<th rowspan="2">Score</th>
44
+						<td rowspan="2"></td>
45
+						<td colspan="3">Protection</td>
46
+						<td colspan="3">Weakness</td>
47
+					</tr>
48
+					<tr>
49
+						<td>Best</td>
50
+						<td>Great</td>
51
+						<td>Good</td>
52
+
53
+						<td>Future</td>
54
+						<td>Weak</td>
55
+						<td>Deprecated</td>
56
+					</tr>
57
+				</thead>
58
+				<tbody>
59
+					<tr>
60
+						<th><%= rank_label :'A+' %></th>
61
+						<td class="left">
62
+							Seriously take security into account and invest a lot on it.<br/>
63
+							Whatever the cost, encryption safety is implemented.
64
+							You can be proud!
65
+						</td>
66
+						<td><%= image_tag 'check-full.svg' %></td>
67
+						<td><%= image_tag 'check-full.svg' %></td>
68
+						<td><%= image_tag 'check-full.svg' %></td>
69
+						<td><%= image_tag 'check-empty.svg' %></td>
70
+						<td><%= image_tag 'check-empty.svg' %></td>
71
+						<td><%= image_tag 'check-empty.svg' %></td>
72
+					</tr>
73
+					<tr>
74
+						<th><%= rank_label :A %></th>
75
+						<td class="left">
76
+							Seriously take security into account and invest a lot on it.
77
+						</td>
78
+						<td><%= image_tag 'check-empty.svg' %></td>
79
+						<td><%= image_tag 'check-full.svg' %></td>
80
+						<td><%= image_tag 'check-full.svg' %></td>
81
+						<td><%= image_tag 'check-empty.svg' %></td>
82
+						<td><%= image_tag 'check-empty.svg' %></td>
83
+						<td><%= image_tag 'check-empty.svg' %></td>
84
+					</tr>
85
+					<tr>
86
+						<th><%= rank_label :'B+' %></th>
87
+						<td class="left">
88
+							Seriously take security into account and invest on it.
89
+						</td>
90
+						<td></td>
91
+						<td><%= image_tag 'check-full.svg' %></td>
92
+						<td><%= image_tag 'check-full.svg' %></td>
93
+						<td><%= image_tag 'check-empty.svg' %></td>
94
+						<td><%= image_tag 'check-empty.svg' %></td>
95
+						<td><%= image_tag 'check-empty.svg' %></td>
96
+					</tr>
97
+					<tr>
98
+						<th><%= rank_label :B %></th>
99
+						<td class="left">
100
+							Take security into account and invest on it.
101
+						</td>
102
+						<td></td>
103
+						<td><%= image_tag 'check-empty.svg' %></td>
104
+						<td><%= image_tag 'check-full.svg' %></td>
105
+						<td><%= image_tag 'check-empty.svg' %></td>
106
+						<td><%= image_tag 'check-empty.svg' %></td>
107
+						<td><%= image_tag 'check-empty.svg' %></td>
108
+					</tr>
109
+					<tr>
110
+						<th><%= rank_label :'C+' %></th>
111
+						<td class="left">
112
+							Take security into account and invest a little on it.
113
+						</td>
114
+						<td></td>
115
+						<td></td>
116
+						<td><%= image_tag 'check-full.svg' %></td>
117
+						<td><%= image_tag 'check-empty.svg' %></td>
118
+						<td><%= image_tag 'check-empty.svg' %></td>
119
+						<td><%= image_tag 'check-empty.svg' %></td>
120
+					</tr>
121
+					<tr>
122
+						<th><%= rank_label :C %></th>
123
+						<td class="left">
124
+							Take security into account but don't spend too much for it.
125
+						</td>
126
+						<td></td>
127
+						<td></td>
128
+						<td><%= image_tag 'check-empty.svg' %></td>
129
+						<td><%= image_tag 'check-empty.svg' %></td>
130
+						<td><%= image_tag 'check-empty.svg' %></td>
131
+						<td><%= image_tag 'check-empty.svg' %></td>
132
+					</tr>
133
+					<tr>
134
+						<th><%= rank_label :D %></th>
135
+						<td class="left">
136
+							Take security into account. Minimaly.<br/>
137
+							This is the worst score a decent service must have today.
138
+						</td>
139
+						<td></td>
140
+						<td></td>
141
+						<td></td>
142
+						<td><%= image_tag 'check-empty.svg' %></td>
143
+						<td><%= image_tag 'check-empty.svg' %></td>
144
+						<td><%= image_tag 'check-empty.svg' %></td>
145
+					</tr>
146
+					<tr>
147
+						<th><%= rank_label :E %></th>
148
+						<td class="left">
149
+							Take security into account. A little. Or not.
150
+						</td>
151
+						<td></td>
152
+						<td></td>
153
+						<td></td>
154
+						<td><%= image_tag 'cross-red.svg' %></td>
155
+						<td><%= image_tag 'check-empty.svg' %></td>
156
+						<td><%= image_tag 'check-empty.svg' %></td>
157
+					</tr>
158
+					<tr>
159
+						<th><%= rank_label :F %></th>
160
+						<td class="left">
161
+							Just don't take security into account.
162
+						</td>
163
+						<td></td>
164
+						<td></td>
165
+						<td></td>
166
+						<td></td>
167
+						<td><%= image_tag 'cross-red.svg' %></td>
168
+						<td><%= image_tag 'check-empty.svg' %></td>
169
+					</tr>
170
+					<tr>
171
+						<th><%= rank_label :G %></th>
172
+						<td class="left">
173
+							Just don't take security into account at all.<br/>
174
+							What the fuck you do, dude?
175
+						</td>
176
+						<td></td>
177
+						<td></td>
178
+						<td></td>
179
+						<td></td>
180
+						<td></td>
181
+						<td><%= image_tag 'cross-red.svg' %></td>
182
+					</tr>
183
+					<tr>
184
+						<th><%= rank_label :V %></th>
185
+						<td class="left">
186
+							Invalid certificate (wrong domain, expired…)
187
+						</td>
188
+						<td colspan="6"></td>
189
+					</tr>
190
+					<tr>
191
+						<th><%= rank_label :T %></th>
192
+						<td class="left">
193
+							Unstrusted certificate. Not issued by a trusted
194
+							<a href="https://ccadb-public.secure.force.com/mozilla/IncludedCACertificateReport">certificate authority</a>.
195
+						</td>
196
+						<td colspan="6"></td>
197
+					</tr>
198
+				</tbody>
199
+			</table>
200
+			<table class="scoring table table-bordered table-condensed">
201
+				<tr>
202
+					<td>
203
+						For protection:<br/>
204
+						<%= image_tag 'check-full.svg' %> Fully implemented
205
+						<%= image_tag 'check-empty.svg' %> Partially implemented<br/>
206
+
207
+						Good: simple to implement, small protection<br/>
208
+						Great: quiet hard to implement, middle protection<br/>
209
+						Best: hard to implement, strong protection
210
+					</td>
211
+					<td>
212
+						For weakness:<br/>
213
+						<%= image_tag 'check-empty.svg' %> Not vulnerable
214
+						<%= image_tag 'cross-red.svg' %> Vulnerable<br/>
215
+
216
+						Future: known weakness, but no practical attack known<br/>
217
+						Weak: known weakness, pratical attack exist<br/>
218
+						Deprecated: known weakness, merely equivalent or equal to plain text
219
+					</td>
220
+				</tr>
221
+			</table>
222
+
223
+
224
+			<p>
225
+				<i>Note</i>: Unlike HTTPS or XMPP, SMTP uses
226
+				<a href="https://en.wikipedia.org/wiki/Opportunistic_TLS">opportunistic encryption</a>.<br/>
227
+				When you send an email, the server used to forward the mail
228
+				(the <a href="https://en.wikipedia.org/wiki/Message_transfer_agent">MTA</a>)
229
+				to the recipient has no way to guess in advance if recipient MTA
230
+				supports or not encryption and which cipher suite will be
231
+				available.
232
+				To avoid your email returning to you in case of failure, the
233
+				standard for email encryption
234
+				(<a href="https://tools.ietf.org/html/rfc3207">RFC 3207</a>)
235
+				requires to retry <b>in plain text</b> in case of encryption
236
+				handshake failure.<br/>
237
+				So, for SMTP, there is a compromise to make between strong
238
+				configuration, leading to plain text fallback for old or badly
239
+				configured MTA, and compatibility with such MTA to use weak
240
+				encryption better than plain text but allowing downgrade attack
241
+				on stronger MTA.<br/>
242
+				Given email is a real nightmare for security, with multiple way
243
+				to force a connection to fallback to plain text
244
+				(<a href="https://www.eff.org/fr/deeplinks/2014/11/starttls-downgrade-attacks">STARTTLS stripping</a>,
245
+				<a href="https://labs.ripe.net/Members/stephane_bortzmeyer/dns-censorship-dns-lies-seen-by-atlas-probes">MX lying</a>…),
246
+				CryptCheck scores SMTP as HTTPS or XMPP and doesn't care about
247
+				compatibility trouble. This way, weak people are still weak, but
248
+				strong people can (not too much) hope strong encryption under
249
+				normal condition.<br/>
250
+				Be advice than strong score here for SMTP means compatibility
251
+				troubles.
252
+				Or fucked service which doesn't take care of your security.
253
+				I don't know, you turn to judge.
254
+			</p>
255
+		</div>
256
+	</div>
257
+</div>

+ 1
- 0
config/application.rb Dosyayı Görüntüle

@@ -1,5 +1,6 @@
1 1
 require File.expand_path('../boot', __FILE__)
2 2
 
3
+require 'rails'
3 4
 %w(
4 5
   action_controller
5 6
   action_view

+ 2
- 0
config/routes.rb Dosyayı Görüntüle

@@ -26,6 +26,8 @@ Rails.application.routes.draw do
26 26
 		get ':id/refresh', action: :refresh, as: :refresh
27 27
 	end
28 28
 
29
+	get 'help' => 'site#help'
30
+	get 'about' => 'site#about'
29 31
 	get 'ciphers' => 'site#ciphers'
30 32
 	get 'suite' => 'site#suite_index'
31 33
 	get 'suite/:id' => 'site#suite'

Loading…
İptal
Kaydet