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,649 @@
1
+ /* ----------------------------------------------------------------------------------------------------------------*/
2
+ /* ---------->>> global settings needed for thickbox <<<-----------------------------------------------------------*/
3
+ /* ----------------------------------------------------------------------------------------------------------------*/
4
+ *{padding: 0; margin: 0;}
5
+
6
+ /* ----------------------------------------------------------------------------------------------------------------*/
7
+ /* ---------->>> thickbox specific link and font settings <<<------------------------------------------------------*/
8
+ /* ----------------------------------------------------------------------------------------------------------------*/
9
+ #TB_window {
10
+ font: 12px Arial, Helvetica, sans-serif;
11
+ color: #333333;
12
+ }
13
+
14
+ #TB_secondLine {
15
+ font: 10px Arial, Helvetica, sans-serif;
16
+ color:#666666;
17
+ }
18
+
19
+ #TB_window a.linking, #TB_window a.linking:link, #TB_window a.linking:visited{
20
+ color:#88A93B;
21
+ font-weight:bold;
22
+ text-decoration:none;
23
+ }
24
+ #TB_window a.linking:hover{
25
+ text-decoration:underline;
26
+ }
27
+ #TB_closeWindowButton, .heroku_logs_refresh{
28
+ color:#525252;
29
+ font-weight:bold;
30
+ text-decoration:underline;
31
+ }
32
+ /* ----------------------------------------------------------------------------------------------------------------*/
33
+ /* ---------->>> thickbox settings <<<-----------------------------------------------------------------------------*/
34
+ /* ----------------------------------------------------------------------------------------------------------------*/
35
+ #TB_overlay {
36
+ background:none repeat scroll 0 0 black;
37
+ height:100%;
38
+ left:0;
39
+ filter:alpha(opacity=75);
40
+ -moz-opacity: 0.75;
41
+ opacity: 0.75;
42
+ position:fixed;
43
+ top:0;
44
+ width:100%;
45
+ z-index:100;
46
+ }
47
+
48
+ .TB_overlayMacFFBGHack {background: url(macFFBgHack.png) repeat;}
49
+ .TB_overlayBG {
50
+ background-color:#000;
51
+ filter:alpha(opacity=75);
52
+ -moz-opacity: 0.75;
53
+ opacity: 0.75;
54
+ }
55
+
56
+ * html #TB_overlay { /* ie6 hack */
57
+ position: absolute;
58
+ height: expression(document.body.scrollHeight > document.body.offsetHeight ? document.body.scrollHeight : document.body.offsetHeight + 'px');
59
+ }
60
+
61
+ #TB_window {
62
+ position: fixed;
63
+ background: #ffffff;
64
+ z-index: 102;
65
+ color:#000000;
66
+ display:none;
67
+ border: 7px solid #525252;
68
+ text-align:left;
69
+ top:40%;
70
+ left:50%;
71
+ }
72
+
73
+ * html #TB_window { /* ie6 hack */
74
+ position: absolute;
75
+ margin-top: expression(0 - parseInt(this.offsetHeight / 2) + (TBWindowMargin = document.documentElement && document.documentElement.scrollTop || document.body.scrollTop) + 'px');
76
+ }
77
+
78
+ #TB_window img#TB_Image {
79
+ display:block;
80
+ margin: 15px 0 0 15px;
81
+ border-right: 1px solid #ccc;
82
+ border-bottom: 1px solid #ccc;
83
+ border-top: 1px solid #666;
84
+ border-left: 1px solid #666;
85
+ }
86
+
87
+ #TB_caption{
88
+ height:25px;
89
+ padding:7px 30px 10px 25px;
90
+ float:left;
91
+ }
92
+
93
+ #TB_closeWindow{
94
+ height:25px;
95
+ padding:11px 25px 10px 0;
96
+ float:right;
97
+ }
98
+
99
+ #TB_closeAjaxWindow{
100
+ padding:7px 10px 5px 0;
101
+ margin-bottom:1px;
102
+ text-align:right;
103
+ float:right;
104
+ }
105
+
106
+ #TB_ajaxWindowTitle{
107
+ float:left;
108
+ font-size:14px;
109
+ font-weight:bold;
110
+ margin-bottom:1px;
111
+ padding:10px 0 0 15px;
112
+ }
113
+
114
+ #TB_title{
115
+ background-color:#E8E8E8;
116
+ height:40px;
117
+ }
118
+
119
+ #TB_ajaxContent{
120
+ clear:both;
121
+ padding:2px 15px 15px 15px;
122
+ overflow:auto;
123
+ text-align:left;
124
+ line-height:1.4em;
125
+ }
126
+
127
+ #TB_ajaxContent h3{
128
+ font-size:12px;
129
+ margin:10px 0;
130
+ }
131
+ #TB_ajaxContent h3 span{
132
+ color:#003867;
133
+ font-size:18px;
134
+ }
135
+
136
+ #TB_ajaxContent.TB_modal{
137
+ padding:15px;
138
+ }
139
+
140
+ #TB_ajaxContent p{
141
+ padding:5px 0px 5px 0px;
142
+ }
143
+
144
+ #TB_load{
145
+ position: fixed;
146
+ display:none;
147
+ height:13px;
148
+ width:208px;
149
+ z-index:103;
150
+ top: 50%;
151
+ left: 50%;
152
+ margin: -6px 0 0 -104px; /* -height/2 0 0 -width/2 */
153
+ }
154
+
155
+ * html #TB_load { /* ie6 hack */
156
+ position: absolute;
157
+ margin-top: expression(0 - parseInt(this.offsetHeight / 2) + (TBWindowMargin = document.documentElement && document.documentElement.scrollTop || document.body.scrollTop) + 'px');
158
+ }
159
+
160
+ #TB_HideSelect{
161
+ z-index:99;
162
+ position:fixed;
163
+ top: 0;
164
+ left: 0;
165
+ background-color:#fff;
166
+ border:none;
167
+ filter:alpha(opacity=0);
168
+ -moz-opacity: 0;
169
+ opacity: 0;
170
+ height:100%;
171
+ width:100%;
172
+ }
173
+
174
+ * html #TB_HideSelect { /* ie6 hack */
175
+ position: absolute;
176
+ height: expression(document.body.scrollHeight > document.body.offsetHeight ? document.body.scrollHeight : document.body.offsetHeight + 'px');
177
+ }
178
+
179
+ #TB_iframeContent{
180
+ clear:both;
181
+ border:none;
182
+ margin-bottom:-1px;
183
+ margin-top:1px;
184
+ _margin-bottom:1px;
185
+ }
186
+ #TB_iframeContent body{
187
+ font-size:12px;
188
+ font-family:Arial, Helvetica, sans-serif;
189
+ }
190
+ /* ----------------------------------------------------------------------------------------------------------------*/
191
+ /* ---------->>> Form <<<-----------------------------------------------------------------------------*/
192
+ /* ----------------------------------------------------------------------------------------------------------------*/
193
+ h2{
194
+ font-size:14px;
195
+ margin-bottom:5px;
196
+ margin-top:10px;
197
+ }
198
+
199
+ .clear{
200
+ display:block;
201
+ clear:both;
202
+ }
203
+ label{
204
+ font-weight:bold;
205
+ color:#454555;
206
+ }
207
+
208
+ .col_container{
209
+ float:left;
210
+ margin-bottom:10px;
211
+ width:100%;
212
+ }
213
+
214
+ .left_long {
215
+ float:left;
216
+ margin-right:10px;
217
+ width:55.5%;
218
+ }
219
+ .left_tiny{
220
+ float:left;
221
+ margin-right:15px;
222
+ width:19.5%;
223
+ }
224
+
225
+ .left_short{
226
+ float:left;
227
+ margin-right:10px;
228
+ width:25%;
229
+ }
230
+ .left{
231
+ float:left;
232
+ margin-right:10px;
233
+ width:46%;
234
+ }
235
+ .modal_hr{
236
+ margin-top:5px;
237
+ }
238
+ .private_app{
239
+ background-color:#FFFCCC;
240
+ border:1px solid #DEDEDE;
241
+ color:#454555;
242
+ float:left;
243
+ font-size:11px;
244
+ margin-top:10px;
245
+ padding:5px 15px;
246
+ width:96%;
247
+ }
248
+
249
+ .info_table{
250
+ -moz-border-radius:10px;
251
+ -webkit-border-radius:10px;
252
+ background-color:#FFFFC2;
253
+ border-top:1px solid white;
254
+ margin-top:10px;
255
+ padding:15px;
256
+ width:94%;
257
+ }
258
+
259
+ .tint {
260
+ color:#666666;
261
+ display:inline-block;
262
+ margin-top:10px;
263
+ }
264
+
265
+
266
+ .information {
267
+ background-color:#FFFCCC;
268
+ border:1px solid #DEDEDE;
269
+ color:#003867;
270
+ float:left;
271
+ font-size:14px;
272
+ font-weight:bold;
273
+ margin-bottom:18px;
274
+ margin-top:10px;
275
+ padding:8px;
276
+ width:96%;
277
+ }
278
+
279
+ .information_pay{
280
+ background-color:#FFFCCC;
281
+ border:1px solid #DEDEDE;
282
+ color:#003867;
283
+ float:left;
284
+ font-size:12px;
285
+ font-weight:bold;
286
+ margin-bottom:18px;
287
+ margin-top:10px;
288
+ padding:3px;
289
+ width:96%;
290
+ }
291
+
292
+ #app_type{
293
+ margin-left:15px;
294
+ margin-top:10px;
295
+ }
296
+
297
+ .small_desc{
298
+ font-size:11px;
299
+ font-style:italic;
300
+ }
301
+
302
+ .modal_input {
303
+ border:1px solid #CCCCCC;
304
+ color:#454555;
305
+ display:block;
306
+ height:28px;
307
+ padding-left:5px;
308
+ width:96%;
309
+ font-size:13px;
310
+ }
311
+
312
+ .modal_input_select{
313
+ border:1px solid #CCCCCC;
314
+ color:#454555;
315
+ display:block;
316
+ height:28px;
317
+ padding:5px;
318
+ width:96%;
319
+ font-size:13px;
320
+ }
321
+
322
+ .modal_input_select_short{
323
+ border:1px solid #CCCCCC;
324
+ color:#454555;
325
+ display:inline;
326
+ font-size:13px;
327
+ height:30px;
328
+ padding:5px;
329
+ }
330
+ .modal_input_select_small {
331
+ border:1px solid #CCCCCC;
332
+ color:#454555;
333
+ display:inline-block;
334
+ float:right;
335
+ font-size:12px;
336
+ height:25px;
337
+ margin-top:5px;
338
+ padding:4px;
339
+ width:100px;
340
+ }
341
+ .modal_input_short_li{
342
+ background:none repeat scroll 0 0 white;
343
+ border:1px solid #CCCCCC;
344
+ color:#454555;
345
+ display:inline-block;
346
+ float:right;
347
+ font-size:13px;
348
+ height:25px;
349
+ margin-top:5px;
350
+ padding-left:6px;
351
+ width:92px;
352
+ }
353
+ .modal_input_short {
354
+ border:1px solid #CCCCCC;
355
+ color:#454555;
356
+ display:block;
357
+ height:28px;
358
+ padding-left:5px;
359
+ width:56%;
360
+ float:left;
361
+ font-size:13px;
362
+ }
363
+ .modal_area {
364
+ border:1px solid #CCCCCC;
365
+ color:#454555;
366
+ display:block;
367
+ font-size:12px;
368
+ height:80px;
369
+ padding-left:5px;
370
+ padding-top:5px;
371
+ width:96%;
372
+ }
373
+
374
+ .update_app:hover{
375
+ background-position:left bottom;
376
+ }
377
+ .update_app {
378
+ background:url("../images/update_app.png") no-repeat scroll left top transparent;
379
+ border:medium none;
380
+ cursor:pointer;
381
+ display:block;
382
+ height:31px;
383
+ margin-bottom:5px;
384
+ margin-top:5px;
385
+ width:173px;
386
+ }
387
+
388
+ ul.ssh_tabs li.collaborator {
389
+ height:35px;
390
+ padding-left:0;
391
+ }
392
+ ul.ssh_tabs li a.delete_my_app{
393
+ margin-left:30px;
394
+ margin-top:6px;
395
+ }
396
+ ul.ssh_tabs li span{
397
+ display:inline-block;
398
+ float:left;
399
+ padding-left:10px;
400
+ padding-top:5px;
401
+ }
402
+ .gravatar_box_small_modal {
403
+ background-image:url("../images/small_avatar.jpg");
404
+ border:1px solid #A4A4A6;
405
+ display:inline-block;
406
+ float:left;
407
+ height:25px;
408
+ margin-left:10px;
409
+ margin-top:4px;
410
+ width:25px;
411
+ }
412
+
413
+ .app_private:hover{
414
+ background-position:left bottom;
415
+ }
416
+ .app_private{
417
+ background:url("../images/app_private.png") no-repeat scroll left top transparent;
418
+ display:block;
419
+ float:right;
420
+ height:16px;
421
+ margin-top:-2px;
422
+ margin-right:3px;
423
+ width:16px;
424
+ }
425
+
426
+ #new_deploy{
427
+ float:left;
428
+ margin-right:15px;
429
+ }
430
+
431
+ .deploy:hover{
432
+ background-position:left bottom;
433
+ }
434
+ .deploy{
435
+ background:url("../images/deploy.png") no-repeat scroll left top transparent;
436
+ border:medium none;
437
+ cursor:pointer;
438
+ display:block;
439
+ height:31px;
440
+ margin-bottom:15px;
441
+ margin-top:15px;
442
+ width:173px;
443
+ }
444
+
445
+ .deploy_block{
446
+ background:url("../images/deploy.png") no-repeat scroll left top transparent;
447
+ border:medium none;
448
+ cursor:default;
449
+ display:block;
450
+ height:31px;
451
+ margin-bottom:15px;
452
+ margin-top:15px;
453
+ opacity:0.5;
454
+ width:173px;
455
+ }
456
+ .undeploy_block{
457
+ background:url("../images/undeploy.png") no-repeat scroll left top transparent;
458
+ border:medium none;
459
+ cursor:default;
460
+ display:block;
461
+ height:31px;
462
+ float:left;
463
+ margin-bottom:15px;
464
+ margin-top:15px;
465
+ opacity:0.5;
466
+ width:173px;
467
+ }
468
+ .undeploy:hover{
469
+ background-position:left bottom;
470
+ }
471
+ .undeploy{
472
+ background:url("../images/undeploy.png") no-repeat scroll left top transparent;
473
+ border:medium none;
474
+ cursor:pointer;
475
+ display:block;
476
+ height:31px;
477
+ float:left;
478
+ margin-bottom:15px;
479
+ margin-top:15px;
480
+ width:173px;
481
+ }
482
+
483
+ .app_public:hover{
484
+ background-position:left bottom;
485
+ }
486
+ .app_public{
487
+ background:url("../images/app_public.png") no-repeat scroll left top transparent;
488
+ display:block;
489
+ float:right;
490
+ height:16px;
491
+ margin-right:3px;
492
+ margin-top:-2px;
493
+ width:16px;
494
+ }
495
+ .app_public_empty{
496
+ display:block;
497
+ float:right;
498
+ height:16px;
499
+ margin-right:3px;
500
+ margin-top:-2px;
501
+ width:16px;
502
+ }
503
+ .download_build:hover{
504
+ background-position:left bottom;
505
+ }
506
+ .download_build{
507
+ background:url("../images/download_build.png") no-repeat scroll left top transparent;
508
+ display:block;
509
+ height:22px;
510
+ width:24px;
511
+ }
512
+
513
+ .download_build_log:hover{
514
+ background-position:left bottom;
515
+ }
516
+
517
+ .download_build_log{
518
+ background:url("../images/download_build_log.png") no-repeat scroll left top transparent;
519
+ display:block;
520
+ height:22px;
521
+ width:24px;
522
+ }
523
+
524
+ #upgrade_my_plan:hover{
525
+ background-position:left bottom;
526
+ }
527
+ #upgrade_my_plan{
528
+ background:url("../images/upgrade_my_plan.png") no-repeat scroll left top transparent;
529
+ border:medium none;
530
+ cursor:pointer;
531
+ display:block;
532
+ height:24px;
533
+ margin-top:20px;
534
+ width:148px;
535
+ }
536
+
537
+ .heroku_logs{
538
+ border:1px solid #CCCCCC;
539
+ color:#454555;
540
+ display:block;
541
+ font-size:12px;
542
+ height:290px;
543
+ margin-bottom:10px;
544
+ margin-top:15px;
545
+ padding-left:5px;
546
+ padding-top:5px;
547
+ width:99%;
548
+ }
549
+
550
+
551
+ #downgrade_my_plan:hover{
552
+ background-position:left bottom;
553
+ }
554
+ #downgrade_my_plan{
555
+ background:url("../images/downgrade_my_plan.png") no-repeat scroll left top transparent;
556
+ border:medium none;
557
+ cursor:pointer;
558
+ display:block;
559
+ height:24px;
560
+ margin-top:20px;
561
+ width:148px;
562
+ }
563
+ /*************************************************************************/
564
+ /*************************************************************************/
565
+ #modal_table{
566
+ border-collapse:collapse;
567
+ margin:10px 0 0;
568
+ width:100%;
569
+ }
570
+ #modal_table th{
571
+ background:none repeat scroll 0 0 #DDDDDD;
572
+ color:#003867;
573
+ font-size:12px;
574
+ padding:10px 5px 10px 10px;
575
+ text-align:left;
576
+ }
577
+ #modal_table tr{
578
+ border-bottom:1px solid #DDDDDD;
579
+ font-size:11px;
580
+ }
581
+
582
+ #modal_table tr.light:hover, #modal_table tr.dark:hover, #modal_table tr:hover{
583
+ background: #F5FFDF;
584
+ }
585
+ #modal_table tr.light{
586
+ background:none repeat scroll 0 0 #FFFFFF;
587
+ font-size:15px;
588
+ font-weight:bold;
589
+ }
590
+ #modal_table tr.not_light{
591
+ font-size:15px;
592
+ font-weight:bold;
593
+ }
594
+ #modal_table tr.dark{
595
+ background: #F9F9F9;
596
+ }
597
+ #modal_table td{
598
+ line-height:10px;
599
+ padding:5px 5px 5px 10px;
600
+ }
601
+ #modal_table td a{
602
+ color:#2C0000;
603
+ }
604
+
605
+ .send_request:hover{
606
+ background-position:left bottom;
607
+ }
608
+ .send_request{
609
+ background:url("../images/send.png") no-repeat scroll left top transparent;
610
+ border:medium none;
611
+ cursor:pointer;
612
+ display:block;
613
+ height:24px;
614
+ margin-top:20px;
615
+ width:108px;
616
+ }
617
+
618
+ #help_container{
619
+ background-color:#F9F9F7;
620
+ border:1px solid #DEDEDE;
621
+ margin-bottom:10px;
622
+ margin-top:10px;
623
+ padding:20px;
624
+ }
625
+ #help_container .exit{
626
+ -moz-border-radius:6px;
627
+ -webkit-border-radius:6px;
628
+ background:none repeat scroll 0 0 #FFFFFF;
629
+ border:1px solid #CCCCCC;
630
+ color:#666666;
631
+ cursor:pointer;
632
+ float:right;
633
+ font-size:11px;
634
+ margin-right:-13px;
635
+ margin-top:-13px;
636
+ padding:1px 7px;
637
+ text-decoration:none;
638
+ }
639
+ #help_container .exit:hover{
640
+ background:none repeat scroll 0 0 #ECECEC;
641
+ }
642
+ #help_container ol{
643
+ margin-left:20px;
644
+ margin-top:-5px;
645
+ padding-bottom:10px;
646
+ }
647
+ #help_container ol li{
648
+
649
+ }