ses-proxy 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (57) hide show
  1. data/app/public/bootstrap/css/bootstrap-responsive.css +1092 -0
  2. data/app/public/bootstrap/css/bootstrap-responsive.min.css +9 -0
  3. data/app/public/bootstrap/css/bootstrap.css +6039 -0
  4. data/app/public/bootstrap/css/bootstrap.min.css +9 -0
  5. data/app/public/bootstrap/img/glyphicons-halflings-white.png +0 -0
  6. data/app/public/bootstrap/img/glyphicons-halflings.png +0 -0
  7. data/app/public/bootstrap/js/bootstrap.js +2159 -0
  8. data/app/public/bootstrap/js/bootstrap.min.js +6 -0
  9. data/app/public/css/application.css +16 -0
  10. data/app/public/datepicker/css/datepicker.css +7 -0
  11. data/app/public/datepicker/js/bootstrap-datepicker.js +454 -0
  12. data/app/public/datepicker/less/datepicker.less +119 -0
  13. data/app/public/highcharts/adapters/mootools-adapter.js +13 -0
  14. data/app/public/highcharts/adapters/mootools-adapter.src.js +327 -0
  15. data/app/public/highcharts/adapters/prototype-adapter.js +16 -0
  16. data/app/public/highcharts/adapters/prototype-adapter.src.js +385 -0
  17. data/app/public/highcharts/highcharts-more.js +35 -0
  18. data/app/public/highcharts/highcharts.js +246 -0
  19. data/app/public/highcharts/highcharts.src.js +15111 -0
  20. data/app/public/highcharts/modules/canvas-tools.js +133 -0
  21. data/app/public/highcharts/modules/canvas-tools.src.js +3113 -0
  22. data/app/public/highcharts/modules/data.js +11 -0
  23. data/app/public/highcharts/modules/data.src.js +277 -0
  24. data/app/public/highcharts/modules/exporting.js +23 -0
  25. data/app/public/highcharts/modules/exporting.src.js +736 -0
  26. data/app/public/highcharts/themes/dark-blue.js +263 -0
  27. data/app/public/highcharts/themes/dark-green.js +263 -0
  28. data/app/public/highcharts/themes/gray.js +262 -0
  29. data/app/public/highcharts/themes/grid.js +95 -0
  30. data/app/public/highcharts/themes/skies.js +89 -0
  31. data/app/public/images/loader.gif +0 -0
  32. data/app/public/js/application.js +81 -0
  33. data/app/views/_chart.haml +2 -0
  34. data/app/views/_search_form.haml +23 -0
  35. data/app/views/bounces.haml +23 -0
  36. data/app/views/kaminari/_first_page.html.erb +3 -0
  37. data/app/views/kaminari/_gap.html.erb +3 -0
  38. data/app/views/kaminari/_last_page.html.erb +3 -0
  39. data/app/views/kaminari/_next_page.html.erb +3 -0
  40. data/app/views/kaminari/_page.html.erb +3 -0
  41. data/app/views/kaminari/_paginator.html.erb +17 -0
  42. data/app/views/kaminari/_prev_page.html.erb +3 -0
  43. data/app/views/layout.haml +25 -0
  44. data/app/views/mails.haml +26 -0
  45. data/app/web_panel.rb +149 -0
  46. data/bin/ses_proxy +20 -0
  47. data/lib/ses_proxy/conf.rb +9 -0
  48. data/lib/ses_proxy/main_command.rb +154 -0
  49. data/lib/ses_proxy/models/bounce.rb +14 -0
  50. data/lib/ses_proxy/models/complaint.rb +13 -0
  51. data/lib/ses_proxy/models/email.rb +15 -0
  52. data/lib/ses_proxy/smtp_server.rb +122 -0
  53. data/lib/ses_proxy/sns_endpoint.rb +199 -0
  54. data/ses_proxy.rb +10 -0
  55. data/template/mongoid.yml +12 -0
  56. data/template/ses-proxy.yml +19 -0
  57. metadata +294 -0
@@ -0,0 +1,263 @@
1
+ /**
2
+ * Dark blue theme for Highcharts JS
3
+ * @author Torstein Hønsi
4
+ */
5
+
6
+ Highcharts.theme = {
7
+ colors: ["#DDDF0D", "#55BF3B", "#DF5353", "#7798BF", "#aaeeee", "#ff0066", "#eeaaee",
8
+ "#55BF3B", "#DF5353", "#7798BF", "#aaeeee"],
9
+ chart: {
10
+ backgroundColor: {
11
+ linearGradient: { x1: 0, y1: 0, x2: 1, y2: 1 },
12
+ stops: [
13
+ [0, 'rgb(48, 48, 96)'],
14
+ [1, 'rgb(0, 0, 0)']
15
+ ]
16
+ },
17
+ borderColor: '#000000',
18
+ borderWidth: 2,
19
+ className: 'dark-container',
20
+ plotBackgroundColor: 'rgba(255, 255, 255, .1)',
21
+ plotBorderColor: '#CCCCCC',
22
+ plotBorderWidth: 1
23
+ },
24
+ title: {
25
+ style: {
26
+ color: '#C0C0C0',
27
+ font: 'bold 16px "Trebuchet MS", Verdana, sans-serif'
28
+ }
29
+ },
30
+ subtitle: {
31
+ style: {
32
+ color: '#666666',
33
+ font: 'bold 12px "Trebuchet MS", Verdana, sans-serif'
34
+ }
35
+ },
36
+ xAxis: {
37
+ gridLineColor: '#333333',
38
+ gridLineWidth: 1,
39
+ labels: {
40
+ style: {
41
+ color: '#A0A0A0'
42
+ }
43
+ },
44
+ lineColor: '#A0A0A0',
45
+ tickColor: '#A0A0A0',
46
+ title: {
47
+ style: {
48
+ color: '#CCC',
49
+ fontWeight: 'bold',
50
+ fontSize: '12px',
51
+ fontFamily: 'Trebuchet MS, Verdana, sans-serif'
52
+
53
+ }
54
+ }
55
+ },
56
+ yAxis: {
57
+ gridLineColor: '#333333',
58
+ labels: {
59
+ style: {
60
+ color: '#A0A0A0'
61
+ }
62
+ },
63
+ lineColor: '#A0A0A0',
64
+ minorTickInterval: null,
65
+ tickColor: '#A0A0A0',
66
+ tickWidth: 1,
67
+ title: {
68
+ style: {
69
+ color: '#CCC',
70
+ fontWeight: 'bold',
71
+ fontSize: '12px',
72
+ fontFamily: 'Trebuchet MS, Verdana, sans-serif'
73
+ }
74
+ }
75
+ },
76
+ tooltip: {
77
+ backgroundColor: 'rgba(0, 0, 0, 0.75)',
78
+ style: {
79
+ color: '#F0F0F0'
80
+ }
81
+ },
82
+ toolbar: {
83
+ itemStyle: {
84
+ color: 'silver'
85
+ }
86
+ },
87
+ plotOptions: {
88
+ line: {
89
+ dataLabels: {
90
+ color: '#CCC'
91
+ },
92
+ marker: {
93
+ lineColor: '#333'
94
+ }
95
+ },
96
+ spline: {
97
+ marker: {
98
+ lineColor: '#333'
99
+ }
100
+ },
101
+ scatter: {
102
+ marker: {
103
+ lineColor: '#333'
104
+ }
105
+ },
106
+ candlestick: {
107
+ lineColor: 'white'
108
+ }
109
+ },
110
+ legend: {
111
+ itemStyle: {
112
+ font: '9pt Trebuchet MS, Verdana, sans-serif',
113
+ color: '#A0A0A0'
114
+ },
115
+ itemHoverStyle: {
116
+ color: '#FFF'
117
+ },
118
+ itemHiddenStyle: {
119
+ color: '#444'
120
+ }
121
+ },
122
+ credits: {
123
+ style: {
124
+ color: '#666'
125
+ }
126
+ },
127
+ labels: {
128
+ style: {
129
+ color: '#CCC'
130
+ }
131
+ },
132
+
133
+ navigation: {
134
+ buttonOptions: {
135
+ backgroundColor: {
136
+ linearGradient: { x1: 0, y1: 0, x2: 0, y2: 1 },
137
+ stops: [
138
+ [0.4, '#606060'],
139
+ [0.6, '#333333']
140
+ ]
141
+ },
142
+ borderColor: '#000000',
143
+ symbolStroke: '#C0C0C0',
144
+ hoverSymbolStroke: '#FFFFFF'
145
+ }
146
+ },
147
+
148
+ exporting: {
149
+ buttons: {
150
+ exportButton: {
151
+ symbolFill: '#55BE3B'
152
+ },
153
+ printButton: {
154
+ symbolFill: '#7797BE'
155
+ }
156
+ }
157
+ },
158
+
159
+ // scroll charts
160
+ rangeSelector: {
161
+ buttonTheme: {
162
+ fill: {
163
+ linearGradient: { x1: 0, y1: 0, x2: 0, y2: 1 },
164
+ stops: [
165
+ [0.4, '#888'],
166
+ [0.6, '#555']
167
+ ]
168
+ },
169
+ stroke: '#000000',
170
+ style: {
171
+ color: '#CCC',
172
+ fontWeight: 'bold'
173
+ },
174
+ states: {
175
+ hover: {
176
+ fill: {
177
+ linearGradient: { x1: 0, y1: 0, x2: 0, y2: 1 },
178
+ stops: [
179
+ [0.4, '#BBB'],
180
+ [0.6, '#888']
181
+ ]
182
+ },
183
+ stroke: '#000000',
184
+ style: {
185
+ color: 'white'
186
+ }
187
+ },
188
+ select: {
189
+ fill: {
190
+ linearGradient: { x1: 0, y1: 0, x2: 0, y2: 1 },
191
+ stops: [
192
+ [0.1, '#000'],
193
+ [0.3, '#333']
194
+ ]
195
+ },
196
+ stroke: '#000000',
197
+ style: {
198
+ color: 'yellow'
199
+ }
200
+ }
201
+ }
202
+ },
203
+ inputStyle: {
204
+ backgroundColor: '#333',
205
+ color: 'silver'
206
+ },
207
+ labelStyle: {
208
+ color: 'silver'
209
+ }
210
+ },
211
+
212
+ navigator: {
213
+ handles: {
214
+ backgroundColor: '#666',
215
+ borderColor: '#AAA'
216
+ },
217
+ outlineColor: '#CCC',
218
+ maskFill: 'rgba(16, 16, 16, 0.5)',
219
+ series: {
220
+ color: '#7798BF',
221
+ lineColor: '#A6C7ED'
222
+ }
223
+ },
224
+
225
+ scrollbar: {
226
+ barBackgroundColor: {
227
+ linearGradient: { x1: 0, y1: 0, x2: 0, y2: 1 },
228
+ stops: [
229
+ [0.4, '#888'],
230
+ [0.6, '#555']
231
+ ]
232
+ },
233
+ barBorderColor: '#CCC',
234
+ buttonArrowColor: '#CCC',
235
+ buttonBackgroundColor: {
236
+ linearGradient: { x1: 0, y1: 0, x2: 0, y2: 1 },
237
+ stops: [
238
+ [0.4, '#888'],
239
+ [0.6, '#555']
240
+ ]
241
+ },
242
+ buttonBorderColor: '#CCC',
243
+ rifleColor: '#FFF',
244
+ trackBackgroundColor: {
245
+ linearGradient: { x1: 0, y1: 0, x2: 0, y2: 1 },
246
+ stops: [
247
+ [0, '#000'],
248
+ [1, '#333']
249
+ ]
250
+ },
251
+ trackBorderColor: '#666'
252
+ },
253
+
254
+ // special colors for some of the
255
+ legendBackgroundColor: 'rgba(0, 0, 0, 0.5)',
256
+ legendBackgroundColorSolid: 'rgb(35, 35, 70)',
257
+ dataLabelsColor: '#444',
258
+ textColor: '#C0C0C0',
259
+ maskColor: 'rgba(255,255,255,0.3)'
260
+ };
261
+
262
+ // Apply the theme
263
+ var highchartsOptions = Highcharts.setOptions(Highcharts.theme);
@@ -0,0 +1,263 @@
1
+ /**
2
+ * Dark blue theme for Highcharts JS
3
+ * @author Torstein Hønsi
4
+ */
5
+
6
+ Highcharts.theme = {
7
+ colors: ["#DDDF0D", "#55BF3B", "#DF5353", "#7798BF", "#aaeeee", "#ff0066", "#eeaaee",
8
+ "#55BF3B", "#DF5353", "#7798BF", "#aaeeee"],
9
+ chart: {
10
+ backgroundColor: {
11
+ linearGradient: [0, 0, 250, 500],
12
+ stops: [
13
+ [0, 'rgb(48, 96, 48)'],
14
+ [1, 'rgb(0, 0, 0)']
15
+ ]
16
+ },
17
+ borderColor: '#000000',
18
+ borderWidth: 2,
19
+ className: 'dark-container',
20
+ plotBackgroundColor: 'rgba(255, 255, 255, .1)',
21
+ plotBorderColor: '#CCCCCC',
22
+ plotBorderWidth: 1
23
+ },
24
+ title: {
25
+ style: {
26
+ color: '#C0C0C0',
27
+ font: 'bold 16px "Trebuchet MS", Verdana, sans-serif'
28
+ }
29
+ },
30
+ subtitle: {
31
+ style: {
32
+ color: '#666666',
33
+ font: 'bold 12px "Trebuchet MS", Verdana, sans-serif'
34
+ }
35
+ },
36
+ xAxis: {
37
+ gridLineColor: '#333333',
38
+ gridLineWidth: 1,
39
+ labels: {
40
+ style: {
41
+ color: '#A0A0A0'
42
+ }
43
+ },
44
+ lineColor: '#A0A0A0',
45
+ tickColor: '#A0A0A0',
46
+ title: {
47
+ style: {
48
+ color: '#CCC',
49
+ fontWeight: 'bold',
50
+ fontSize: '12px',
51
+ fontFamily: 'Trebuchet MS, Verdana, sans-serif'
52
+
53
+ }
54
+ }
55
+ },
56
+ yAxis: {
57
+ gridLineColor: '#333333',
58
+ labels: {
59
+ style: {
60
+ color: '#A0A0A0'
61
+ }
62
+ },
63
+ lineColor: '#A0A0A0',
64
+ minorTickInterval: null,
65
+ tickColor: '#A0A0A0',
66
+ tickWidth: 1,
67
+ title: {
68
+ style: {
69
+ color: '#CCC',
70
+ fontWeight: 'bold',
71
+ fontSize: '12px',
72
+ fontFamily: 'Trebuchet MS, Verdana, sans-serif'
73
+ }
74
+ }
75
+ },
76
+ tooltip: {
77
+ backgroundColor: 'rgba(0, 0, 0, 0.75)',
78
+ style: {
79
+ color: '#F0F0F0'
80
+ }
81
+ },
82
+ toolbar: {
83
+ itemStyle: {
84
+ color: 'silver'
85
+ }
86
+ },
87
+ plotOptions: {
88
+ line: {
89
+ dataLabels: {
90
+ color: '#CCC'
91
+ },
92
+ marker: {
93
+ lineColor: '#333'
94
+ }
95
+ },
96
+ spline: {
97
+ marker: {
98
+ lineColor: '#333'
99
+ }
100
+ },
101
+ scatter: {
102
+ marker: {
103
+ lineColor: '#333'
104
+ }
105
+ },
106
+ candlestick: {
107
+ lineColor: 'white'
108
+ }
109
+ },
110
+ legend: {
111
+ itemStyle: {
112
+ font: '9pt Trebuchet MS, Verdana, sans-serif',
113
+ color: '#A0A0A0'
114
+ },
115
+ itemHoverStyle: {
116
+ color: '#FFF'
117
+ },
118
+ itemHiddenStyle: {
119
+ color: '#444'
120
+ }
121
+ },
122
+ credits: {
123
+ style: {
124
+ color: '#666'
125
+ }
126
+ },
127
+ labels: {
128
+ style: {
129
+ color: '#CCC'
130
+ }
131
+ },
132
+
133
+ navigation: {
134
+ buttonOptions: {
135
+ backgroundColor: {
136
+ linearGradient: { x1: 0, y1: 0, x2: 0, y2: 1 },
137
+ stops: [
138
+ [0.4, '#606060'],
139
+ [0.6, '#333333']
140
+ ]
141
+ },
142
+ borderColor: '#000000',
143
+ symbolStroke: '#C0C0C0',
144
+ hoverSymbolStroke: '#FFFFFF'
145
+ }
146
+ },
147
+
148
+ exporting: {
149
+ buttons: {
150
+ exportButton: {
151
+ symbolFill: '#55BE3B'
152
+ },
153
+ printButton: {
154
+ symbolFill: '#7797BE'
155
+ }
156
+ }
157
+ },
158
+
159
+ // scroll charts
160
+ rangeSelector: {
161
+ buttonTheme: {
162
+ fill: {
163
+ linearGradient: { x1: 0, y1: 0, x2: 0, y2: 1 },
164
+ stops: [
165
+ [0.4, '#888'],
166
+ [0.6, '#555']
167
+ ]
168
+ },
169
+ stroke: '#000000',
170
+ style: {
171
+ color: '#CCC',
172
+ fontWeight: 'bold'
173
+ },
174
+ states: {
175
+ hover: {
176
+ fill: {
177
+ linearGradient: { x1: 0, y1: 0, x2: 0, y2: 1 },
178
+ stops: [
179
+ [0.4, '#BBB'],
180
+ [0.6, '#888']
181
+ ]
182
+ },
183
+ stroke: '#000000',
184
+ style: {
185
+ color: 'white'
186
+ }
187
+ },
188
+ select: {
189
+ fill: {
190
+ linearGradient: { x1: 0, y1: 0, x2: 0, y2: 1 },
191
+ stops: [
192
+ [0.1, '#000'],
193
+ [0.3, '#333']
194
+ ]
195
+ },
196
+ stroke: '#000000',
197
+ style: {
198
+ color: 'yellow'
199
+ }
200
+ }
201
+ }
202
+ },
203
+ inputStyle: {
204
+ backgroundColor: '#333',
205
+ color: 'silver'
206
+ },
207
+ labelStyle: {
208
+ color: 'silver'
209
+ }
210
+ },
211
+
212
+ navigator: {
213
+ handles: {
214
+ backgroundColor: '#666',
215
+ borderColor: '#AAA'
216
+ },
217
+ outlineColor: '#CCC',
218
+ maskFill: 'rgba(16, 16, 16, 0.5)',
219
+ series: {
220
+ color: '#7798BF',
221
+ lineColor: '#A6C7ED'
222
+ }
223
+ },
224
+
225
+ scrollbar: {
226
+ barBackgroundColor: {
227
+ linearGradient: { x1: 0, y1: 0, x2: 0, y2: 1 },
228
+ stops: [
229
+ [0.4, '#888'],
230
+ [0.6, '#555']
231
+ ]
232
+ },
233
+ barBorderColor: '#CCC',
234
+ buttonArrowColor: '#CCC',
235
+ buttonBackgroundColor: {
236
+ linearGradient: { x1: 0, y1: 0, x2: 0, y2: 1 },
237
+ stops: [
238
+ [0.4, '#888'],
239
+ [0.6, '#555']
240
+ ]
241
+ },
242
+ buttonBorderColor: '#CCC',
243
+ rifleColor: '#FFF',
244
+ trackBackgroundColor: {
245
+ linearGradient: { x1: 0, y1: 0, x2: 0, y2: 1 },
246
+ stops: [
247
+ [0, '#000'],
248
+ [1, '#333']
249
+ ]
250
+ },
251
+ trackBorderColor: '#666'
252
+ },
253
+
254
+ // special colors for some of the
255
+ legendBackgroundColor: 'rgba(0, 0, 0, 0.5)',
256
+ legendBackgroundColorSolid: 'rgb(35, 35, 70)',
257
+ dataLabelsColor: '#444',
258
+ textColor: '#C0C0C0',
259
+ maskColor: 'rgba(255,255,255,0.3)'
260
+ };
261
+
262
+ // Apply the theme
263
+ var highchartsOptions = Highcharts.setOptions(Highcharts.theme);