rhosync 2.0.8 → 2.0.9

Sign up to get free protection for your applications and to get access to all the features.
Files changed (56) hide show
  1. data/CHANGELOG +9 -0
  2. data/Rakefile +1 -5
  3. data/doc/protocol.html +397 -156
  4. data/lib/rhosync/console/app/public/ThickBox.css +649 -0
  5. data/lib/rhosync/console/app/public/home.css +433 -0
  6. data/lib/rhosync/console/app/public/images/header_halo copy.jpg +0 -0
  7. data/lib/rhosync/console/app/public/images/header_halo.jpg +0 -0
  8. data/lib/rhosync/console/app/public/images/land_separator.gif +0 -0
  9. data/lib/rhosync/console/app/public/images/landing_header.jpg +0 -0
  10. data/lib/rhosync/console/app/public/images/logo_rhosync.png +0 -0
  11. data/lib/rhosync/console/app/public/images/rhomobile_rhohub_logo.png +0 -0
  12. data/lib/rhosync/console/app/public/images/tabs_separator.png +0 -0
  13. data/lib/rhosync/console/app/public/reset.css +76 -0
  14. data/lib/rhosync/console/app/public/style.css +2201 -0
  15. data/lib/rhosync/console/app/routes/auth.rb +1 -1
  16. data/lib/rhosync/console/app/routes/client.rb +1 -1
  17. data/lib/rhosync/console/app/routes/docs.rb +98 -55
  18. data/lib/rhosync/console/app/routes/home.rb +47 -8
  19. data/lib/rhosync/console/app/routes/timing.rb +26 -0
  20. data/lib/rhosync/console/app/routes/user.rb +58 -21
  21. data/lib/rhosync/console/app/views/client.erb +2 -2
  22. data/lib/rhosync/console/app/views/content.erb +14 -0
  23. data/lib/rhosync/console/app/views/docdata.erb +1 -1
  24. data/lib/rhosync/console/app/views/docs.erb +2 -2
  25. data/lib/rhosync/console/app/views/headermenu.erb +41 -0
  26. data/lib/rhosync/console/app/views/home.erb +22 -0
  27. data/lib/rhosync/console/app/views/index.erb +1 -1
  28. data/lib/rhosync/console/app/views/layout.erb +82 -7
  29. data/lib/rhosync/console/app/views/login.erb +26 -0
  30. data/lib/rhosync/console/app/views/newuser.erb +1 -1
  31. data/lib/rhosync/console/app/views/result.erb +1 -1
  32. data/lib/rhosync/console/app/views/rightboxlinks.erb +15 -0
  33. data/lib/rhosync/console/app/views/select_doc.erb +1 -3
  34. data/lib/rhosync/console/app/views/user.erb +3 -6
  35. data/lib/rhosync/console/app/views/users.erb +2 -4
  36. data/lib/rhosync/console/server.rb +6 -0
  37. data/lib/rhosync/jobs/bulk_data_job.rb +17 -4
  38. data/lib/rhosync/ping/android.rb +38 -0
  39. data/lib/rhosync/ping.rb +2 -1
  40. data/lib/rhosync/server/views/index.erb +3 -0
  41. data/lib/rhosync/server.rb +25 -6
  42. data/lib/rhosync/source_sync.rb +14 -6
  43. data/lib/rhosync/stats/middleware.rb +22 -0
  44. data/lib/rhosync/stats/record.rb +83 -0
  45. data/lib/rhosync/version.rb +1 -1
  46. data/lib/rhosync.rb +4 -2
  47. data/spec/ping/android_spec.rb +45 -0
  48. data/spec/rhosync_spec.rb +1 -0
  49. data/spec/server/server_spec.rb +8 -0
  50. data/spec/spec.opts +3 -0
  51. data/spec/spec_helper.rb +4 -3
  52. data/spec/stats/middleware_spec.rb +32 -0
  53. data/spec/stats/record_spec.rb +71 -0
  54. metadata +31 -7
  55. data/lib/rhosync/monitoring/record.rb +0 -28
  56. data/spec/monitoring/record_spec.rb +0 -21
@@ -0,0 +1,433 @@
1
+ /*
2
+ Document : landing
3
+ Created on : 19/08/2010, 11:46:08 AM
4
+ Author : marman
5
+ Description:
6
+ 1. General
7
+ 2. Body
8
+ 3. Header
9
+ */
10
+
11
+
12
+ /**** General
13
+ ****/
14
+ .container{
15
+ min-height:100%;
16
+ position:relative;
17
+ }
18
+
19
+ .wrapper{
20
+ display:block;
21
+ margin:0 auto 0;
22
+ overflow:hidden;
23
+ width:960px;
24
+ }
25
+
26
+ a{
27
+
28
+ }
29
+
30
+ p{
31
+ color:#383535;
32
+ }
33
+
34
+ h1{
35
+
36
+ }
37
+ h1.slogan{
38
+ color:#323232;
39
+ font-size:33px;
40
+ font-weight:700;
41
+ letter-spacing:-1px;
42
+ text-align:center;
43
+ text-shadow:0 1px 0 #FFFFFF;
44
+ }
45
+
46
+ .red_link{
47
+ color:#AE0302;
48
+ font-weight:bold;
49
+ text-decoration:none;
50
+ }
51
+
52
+ /**** Body
53
+ ****/
54
+ html{
55
+ font-size: 12px;
56
+ background:url("images/landing_header.jpg") repeat-x scroll 0 0 transparent;
57
+ }
58
+ body{
59
+ margin:0;
60
+ padding:0;
61
+ }
62
+
63
+ /**** Header
64
+ ****/
65
+ .header{
66
+ position: relative;
67
+ height: 537px;
68
+ }
69
+ .header .logos{
70
+ overflow:hidden;
71
+ position:absolute;
72
+ top:9px;
73
+ }
74
+ .header .logos a.logo_rhohub{
75
+ background:url("images/logo_rhosync.png") no-repeat scroll -56px 0 transparent;
76
+ float:left;
77
+ height:38px;
78
+ text-indent:-3000px;
79
+ width:145px;
80
+ }
81
+ .header .logos a.logo_rhomobile{
82
+ background:url("images/logo_rhosync.png") no-repeat scroll 0 0 transparent;
83
+ height:38px;
84
+ text-indent:-3000px;
85
+ float: left;
86
+ width:56px;
87
+ }
88
+ .header .logo a{
89
+ display:block;
90
+ height:100%;
91
+ }
92
+
93
+ .header_landing{
94
+ background:url("images/header_halo.jpg") no-repeat scroll 50% 0 transparent;
95
+ height: 455px;
96
+ padding-top:85px;
97
+ }
98
+ .header_landing .col_1{
99
+ float:left;
100
+ margin-right:34px;
101
+ padding-top:5px;
102
+ width:900px;
103
+ height:100%;
104
+ }
105
+ .header_landing .col_1 h1{
106
+ color:#4E4C4C;
107
+ font-size:28px;
108
+ font-weight:700;
109
+ letter-spacing:-1px;
110
+ line-height:30px;
111
+ margin-bottom:10px;
112
+ text-shadow:0 1px 0 #FFFFFF;
113
+ }
114
+ .header_landing .col_1 p{
115
+ color:#383535;
116
+ font-size:14px;
117
+ line-height:21px;
118
+ margin-bottom:20px;
119
+ text-shadow:0 1px 0 #F4F4F4;
120
+ width:325px;
121
+ }
122
+ .header_landing .app_image{
123
+ background:url("../images/misc/landing_main.jpg") no-repeat scroll 0 -5px transparent;
124
+ display:block;
125
+ float:left;
126
+ height:307px;
127
+ margin-bottom:9px;
128
+ width:621px;
129
+ }
130
+
131
+
132
+ /**** Components
133
+ ****/
134
+ .land_separator{
135
+ background:url("images/bg/land_separator.gif") no-repeat scroll 0 0 transparent;
136
+ clear:both;
137
+ display:block;
138
+ height:3px;
139
+ margin-bottom:16px;
140
+ }
141
+
142
+ /**** Content
143
+ ****/
144
+
145
+ .content{
146
+
147
+ }
148
+ .content ul.features{
149
+ margin-bottom:60px;
150
+ margin-top:-59px;
151
+ overflow:hidden;
152
+ }
153
+ .content ul.features li{
154
+ float:left;
155
+ height:200px;
156
+ margin-right:20px;
157
+ padding-top:221px;
158
+ position:relative;
159
+ width:304px;
160
+ }
161
+ .content ul.features li.last{
162
+ margin-right: 0;
163
+ }
164
+ .content ul.features li img{
165
+ position:absolute;
166
+ top:0;
167
+ }
168
+ .content ul.features li div.feature_text{
169
+ padding:5px 10px;
170
+ position:absolute;
171
+ top:211px;
172
+ }
173
+ .content ul.features li h2{
174
+ color:#003766;
175
+ font-size:21px;
176
+ margin-bottom:10px;
177
+ }
178
+ .content ul.features li p{
179
+ font-size:12px;
180
+ line-height:21px;
181
+ margin-top:20px;
182
+ }
183
+
184
+
185
+ /**** Buttons
186
+ ****/
187
+ .delete_my_app:hover{
188
+ background-position:left bottom;
189
+ }
190
+ .delete_my_app{
191
+ background:url("../images/app_delete.png") no-repeat scroll left top transparent;
192
+ display:block;
193
+ cursor:pointer;
194
+ float:right;
195
+ height:14px;
196
+ margin-left:5px;
197
+ margin-right:5px;
198
+ width:14px;
199
+ }
200
+ a.sign_up_land{
201
+ background:url("../images/btn/sign_up_now_btn.png") no-repeat scroll 0 0 transparent;
202
+ display:block;
203
+ height:59px;
204
+ text-indent:-3000px;
205
+ width:243px;
206
+ }
207
+ a.sign_up_land:hover{
208
+ background-position: 0 -59px;
209
+ }
210
+
211
+ a.back_to_apps{
212
+ background:url("../images/btn/back_apps_btn.png") no-repeat scroll 0 0 transparent;
213
+ display:block;
214
+ height:59px;
215
+ text-indent:-3000px;
216
+ width:243px;
217
+ }
218
+ a.back_to_apps:hover{
219
+ background-position: 0 -59px;
220
+ }
221
+
222
+ #menu {
223
+ color:#CCCCCC;
224
+ float:right;
225
+ font-size:12px;
226
+ padding:0;
227
+ position:relative;
228
+ top:-19px;
229
+ }
230
+ #menu ul {
231
+ background-repeat:no-repeat;
232
+ color:#FFFFFF;
233
+ margin:27px 0 0;
234
+ padding:0;
235
+ }
236
+ #menu ul li {
237
+ display:inline;
238
+ padding:0;
239
+ }
240
+ #menu ul li#current {
241
+ -moz-border-radius:5px;
242
+ -webkit-border-radius:5px;
243
+ background:none repeat scroll 0 0 rgba(255, 255, 255, 0.15);
244
+ padding:5px 0;
245
+ text-decoration:none;
246
+ }
247
+ #menu ul li.separator{
248
+ position:relative;
249
+ top:9px;
250
+ }
251
+ #menu ul li a {
252
+ height:24px;
253
+ margin:0 auto;
254
+ padding-left:12px;
255
+ padding-right:12px;
256
+ text-align:center;
257
+ text-shadow:1px 1px 0 #000000;
258
+ }
259
+ #menu ul li a.current {
260
+ color:#FFFFFF;
261
+ padding-bottom:5px;
262
+ padding-top:5px;
263
+ }
264
+ #menu ul li a.logout {
265
+ color:#FFFFFF;
266
+ }
267
+ #menu ul li a.logout:hover{
268
+ -moz-border-radius:0px;
269
+ -webkit-border-radius:0px;
270
+ color:#c0c0c0;
271
+ text-decoration:none;
272
+ background:none;
273
+ }
274
+ #menu a:link, #menu a:visited, #menu a:active {
275
+ color:#CCCCCC;
276
+ font-weight:bold;
277
+ text-decoration:none;
278
+ }
279
+ #menu a:hover {
280
+ -moz-border-radius:5px;
281
+ -webkit-border-radius:5px;
282
+ background:none repeat scroll 0 0 rgba(255, 255, 255, 0.15);
283
+ color:#FFFFFF;
284
+ padding:5px 12px;
285
+ text-decoration:none;
286
+ }
287
+
288
+ /* Footer
289
+ ============================================================ */
290
+ #footer{
291
+ background:none repeat scroll 0 0 #363736;
292
+ bottom:0;
293
+ height:80px;
294
+ margin-top:15px;
295
+ width:100%;
296
+ }
297
+ #footer a{
298
+ color:#FFFFFF;
299
+ }
300
+ #footer .footer_content{
301
+ width:962px;
302
+ margin: 0 auto;
303
+ }
304
+ #footer .footer_content p{
305
+ color:#FFFFFF;
306
+ font-size:12px;
307
+ margin-top:10px;
308
+ }
309
+ #footer .footer_content div{
310
+ padding-top:15px;
311
+ }
312
+ #footer .footer_content .foot_left{
313
+ float:left;
314
+ }
315
+ #footer .footer_content .foot_left a img{
316
+ border:none;
317
+ }
318
+
319
+ #footer .footer_content .foot_right{
320
+ float:right;
321
+ }
322
+ .ul_footer{
323
+ font-size:12px;
324
+ list-style-type:none;
325
+ margin-top:5px;
326
+ padding-left:0;
327
+ }
328
+ .ul_footer li{
329
+ color:#FFFFFF;
330
+ display:inline;
331
+ padding-right:5px;
332
+ }
333
+ .ul_footer li a{
334
+ color:#FFFFFF;
335
+ }
336
+ .ul_footer li a:hover{
337
+ text-decoration:none;
338
+ }
339
+ ============================================================ */
340
+ #notice, #message{
341
+ background-color:#E8FFCE;
342
+ border:1px solid #339900;
343
+ color:#339900;
344
+ font-size:12px;
345
+ font-weight:bold;
346
+ margin-bottom:20px;
347
+ margin-top:0;
348
+ padding:15px;
349
+ }
350
+ .success{
351
+ background-color:#E8FFCE;
352
+ border:1px solid #339966;
353
+ color:#339900;
354
+ float:left;
355
+ font-size:11px;
356
+ font-weight:bold;
357
+ margin-left:150px;
358
+ margin-top:15px;
359
+ padding:6px;
360
+ text-align:center;
361
+ width:408px;
362
+ position:fixed;
363
+ z-index:1000;
364
+ left:0;
365
+ margin:auto;
366
+ right:0;
367
+ top:20px;
368
+ }
369
+
370
+ #success{
371
+ background-color:#E8FFCE;
372
+ border:1px solid #339966;
373
+ color:#339900;
374
+ float:left;
375
+ font-size:11px;
376
+ font-weight:bold;
377
+ margin-left:150px;
378
+ margin-top:15px;
379
+ padding:6px;
380
+ text-align:center;
381
+ width:408px;
382
+ position:fixed;
383
+ z-index:1000;
384
+ left:0;
385
+ margin:auto;
386
+ right:0;
387
+ top:20px;
388
+ }
389
+ .error, .failure{
390
+ background-color:#FFA3A3;
391
+ border:1px solid #FF0000;
392
+ color:#990000;
393
+ float:left;
394
+ font-size:11px;
395
+ font-weight:bold;
396
+ margin-left:150px;
397
+ margin-top:15px;
398
+ padding:6px;
399
+ text-align:center;
400
+ width:408px;
401
+ position:fixed;
402
+ z-index:1000;
403
+ left:0;
404
+ margin:auto;
405
+ right:0;
406
+ top:20px;
407
+ }
408
+ #error, #failure{
409
+ background-color:#FFA3A3;
410
+ border:1px solid #FF0000;
411
+ color:#990000;
412
+ float:left;
413
+ font-size:11px;
414
+ font-weight:bold;
415
+ margin-left:150px;
416
+ margin-top:15px;
417
+ padding:6px;
418
+ text-align:center;
419
+ width:408px;
420
+ position:fixed;
421
+ z-index:1000;
422
+ left:0;
423
+ margin:auto;
424
+ right:0;
425
+ top:20px;
426
+ }
427
+
428
+ .col_1 ul li{
429
+ margin-left: 20px;
430
+ padding-bottom: 4px;
431
+ padding-left: -2px;
432
+ list-style: circle ;
433
+ }
@@ -0,0 +1,76 @@
1
+ /*
2
+ - Copyright (c) 2009, Koombea.com All rights reserved.
3
+ - Version: 1.0
4
+ - Reset.css - Created by: Alvaro Araujo & David Beltran
5
+ - Based on Yui and Meyer reset file.
6
+ */
7
+
8
+ html {
9
+ background:#FFFFFF none repeat scroll 0 0;
10
+ color:#000000;
11
+ font-size:62.5%;
12
+ font-family:Arial;
13
+ }
14
+ body, div, dl, dt, dd, ul, ol, li, h1, h2, h3, h4, h5, h6, form, fieldset, legend, input, button, textarea, p, blockquote, th, td {
15
+ margin:0;
16
+ padding:0;
17
+ }
18
+ /* tables still need 'cellspacing="0"' in the markup */
19
+ table {
20
+ border-collapse:collapse;
21
+ border-spacing:0;
22
+ }
23
+ fieldset, img, button {
24
+ border:0 none;
25
+ }
26
+ address, caption, cite, code, dfn, em, th, var, optgroup {
27
+ font-style:inherit;
28
+ font-weight:inherit;
29
+ }
30
+ del, ins {
31
+ text-decoration:none;
32
+ }
33
+ ol {
34
+ list-style:decimal;
35
+ }
36
+ ol li {
37
+ list-style: decimal outside;
38
+ }
39
+ ul {
40
+ list-style:none
41
+ }
42
+ caption, th {
43
+ text-align:left;
44
+ }
45
+ h1, h2, h3, h4, h5, h6 {
46
+ font-size:100%;
47
+ font-weight:normal;
48
+ }
49
+ :focus {
50
+ outline: 0;
51
+ }
52
+ q:before, q:after {
53
+ content:'';
54
+ }
55
+ abbr, acronym {
56
+ border:0 none;
57
+ font-variant:normal;
58
+ }
59
+ sup {
60
+ vertical-align:text-top;
61
+ }
62
+ sub {
63
+ vertical-align:text-bottom;
64
+ }
65
+ legend {
66
+ color:#000;
67
+ }
68
+ input, button, textarea, select, optgroup, option {
69
+ font-family:inherit;
70
+ font-size:inherit;
71
+ font-style:inherit;
72
+ font-weight:inherit;
73
+ }
74
+ input, textarea, select {
75
+ border:1px solid #CCC;
76
+ }