rhoconnect 3.0.0.beta1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (361) hide show
  1. data/CHANGELOG +208 -0
  2. data/CREDITS +38 -0
  3. data/Gemfile +18 -0
  4. data/Gemfile.lock +97 -0
  5. data/LICENSE +75 -0
  6. data/README.md +10 -0
  7. data/Rakefile +82 -0
  8. data/bench/bench +7 -0
  9. data/bench/bench_runner.rb +112 -0
  10. data/bench/benchapp/Gemfile +21 -0
  11. data/bench/benchapp/Gemfile.lock +76 -0
  12. data/bench/benchapp/Rakefile +22 -0
  13. data/bench/benchapp/application.rb +39 -0
  14. data/bench/benchapp/config.ru +36 -0
  15. data/bench/benchapp/settings/license.key +1 -0
  16. data/bench/benchapp/settings/settings.yml +20 -0
  17. data/bench/benchapp/sources/mock_adapter.rb +55 -0
  18. data/bench/benchapp/sources/queue_mock_adapter.rb +2 -0
  19. data/bench/benchapp/spec/sources/mock_adapter_spec.rb +25 -0
  20. data/bench/benchapp/spec/sources/queue_mock_adapter_spec.rb +25 -0
  21. data/bench/benchapp/spec/spec_helper.rb +42 -0
  22. data/bench/blobapp/Gemfile +31 -0
  23. data/bench/blobapp/Gemfile.lock +103 -0
  24. data/bench/blobapp/Rakefile +25 -0
  25. data/bench/blobapp/application.rb +44 -0
  26. data/bench/blobapp/config.ru +36 -0
  27. data/bench/blobapp/settings/license.key +1 -0
  28. data/bench/blobapp/settings/settings.yml +16 -0
  29. data/bench/blobapp/sources/blob_adapter.rb +71 -0
  30. data/bench/blobapp/spec/sources/blob_adapter_spec.rb +25 -0
  31. data/bench/blobapp/spec/spec_helper.rb +42 -0
  32. data/bench/lib/bench/cli.rb +16 -0
  33. data/bench/lib/bench/logging.rb +13 -0
  34. data/bench/lib/bench/mock_client.rb +41 -0
  35. data/bench/lib/bench/result.rb +50 -0
  36. data/bench/lib/bench/runner.rb +107 -0
  37. data/bench/lib/bench/session.rb +67 -0
  38. data/bench/lib/bench/statistics.rb +56 -0
  39. data/bench/lib/bench/test_data.rb +98 -0
  40. data/bench/lib/bench/timer.rb +10 -0
  41. data/bench/lib/bench/utils.rb +49 -0
  42. data/bench/lib/bench.rb +129 -0
  43. data/bench/lib/testdata/100-data.txt +148 -0
  44. data/bench/lib/testdata/5-data.txt +9 -0
  45. data/bench/lib/testdata/images/icon.ico +0 -0
  46. data/bench/lib/testdata/images/icon.png +0 -0
  47. data/bench/lib/testdata/images/loading-Landscape.png +0 -0
  48. data/bench/lib/testdata/images/loading-LandscapeLeft.png +0 -0
  49. data/bench/lib/testdata/images/loading-LandscapeRight.png +0 -0
  50. data/bench/lib/testdata/images/loading-Portrait.png +0 -0
  51. data/bench/lib/testdata/images/loading-PortraitUpsideDown.png +0 -0
  52. data/bench/lib/testdata/images/loading.png +0 -0
  53. data/bench/lib/testdata/images/loading@2x.png +0 -0
  54. data/bench/run_bench.sh +42 -0
  55. data/bench/run_blob_script.sh +3 -0
  56. data/bench/run_cud_script.sh +3 -0
  57. data/bench/run_query_md_script.sh +3 -0
  58. data/bench/run_query_only_script.sh +3 -0
  59. data/bench/run_query_script.sh +3 -0
  60. data/bench/scripts/blob_cud_script.rb +98 -0
  61. data/bench/scripts/cud_script.rb +92 -0
  62. data/bench/scripts/helpers.rb +101 -0
  63. data/bench/scripts/query_md_script.rb +45 -0
  64. data/bench/scripts/query_only_script.rb +51 -0
  65. data/bench/scripts/query_script.rb +45 -0
  66. data/bench/spec/bench_spec_helper.rb +33 -0
  67. data/bench/spec/logging_spec.rb +15 -0
  68. data/bench/spec/mock_adapter_spec.rb +61 -0
  69. data/bench/spec/mock_client_spec.rb +65 -0
  70. data/bench/spec/result_spec.rb +61 -0
  71. data/bench/spec/utils_spec.rb +36 -0
  72. data/bin/rhoconnect +34 -0
  73. data/bin/rhoconnect-setup +84 -0
  74. data/doc/async-jobs.txt +69 -0
  75. data/doc/authentication.txt +76 -0
  76. data/doc/benchmarks.txt +168 -0
  77. data/doc/blob-sync.txt +130 -0
  78. data/doc/bulk-sync.txt +102 -0
  79. data/doc/client.txt +432 -0
  80. data/doc/command-line.txt +210 -0
  81. data/doc/contributing.txt +60 -0
  82. data/doc/deploying.txt +82 -0
  83. data/doc/install.txt +28 -0
  84. data/doc/introduction.txt +20 -0
  85. data/doc/licensing.txt +18 -0
  86. data/doc/metadata.txt +458 -0
  87. data/doc/migration.txt +182 -0
  88. data/doc/public/css/print.css +29 -0
  89. data/doc/public/css/screen.css +257 -0
  90. data/doc/public/css/style.css +20 -0
  91. data/doc/push.txt +135 -0
  92. data/doc/release.txt +41 -0
  93. data/doc/rest-api.txt +367 -0
  94. data/doc/source-adapters.txt +325 -0
  95. data/doc/stats-middleware.txt +69 -0
  96. data/doc/testing.txt +222 -0
  97. data/doc/tutorial.txt +315 -0
  98. data/doc/web-console.txt +35 -0
  99. data/examples/simple/Rakefile +14 -0
  100. data/examples/simple/application.rb +27 -0
  101. data/examples/simple/config.ru +49 -0
  102. data/examples/simple/settings/license.key +1 -0
  103. data/examples/simple/settings/settings.yml +23 -0
  104. data/examples/simple/sources/sample_adapter.rb +5 -0
  105. data/examples/simple/sources/simple_adapter.rb +5 -0
  106. data/generators/rhoconnect.rb +119 -0
  107. data/generators/templates/application/Gemfile +21 -0
  108. data/generators/templates/application/Rakefile +22 -0
  109. data/generators/templates/application/application.rb +39 -0
  110. data/generators/templates/application/config.ru +36 -0
  111. data/generators/templates/application/settings/license.key +1 -0
  112. data/generators/templates/application/settings/settings.yml +14 -0
  113. data/generators/templates/application/spec/spec_helper.rb +42 -0
  114. data/generators/templates/source/source_adapter.rb +47 -0
  115. data/generators/templates/source/source_spec.rb +25 -0
  116. data/install.sh +408 -0
  117. data/installer/unix-like/rho_connect_install_checkers.rb +140 -0
  118. data/installer/unix-like/rho_connect_install_constants.rb +51 -0
  119. data/installer/unix-like/rho_connect_install_debian.rb +63 -0
  120. data/installer/unix-like/rho_connect_install_dnd.rb +58 -0
  121. data/installer/unix-like/rho_connect_install_get_params.rb +30 -0
  122. data/installer/unix-like/rho_connect_install_installers.rb +142 -0
  123. data/installer/unix-like/rho_connect_install_utilities.rb +85 -0
  124. data/installer/unix-like/rho_connect_install_yum.rb +63 -0
  125. data/installer/unix-like/rhoinstaller.rb +89 -0
  126. data/installer/utils/create_texts.rb +366 -0
  127. data/installer/utils/install_test.rb +140 -0
  128. data/installer/windows/EnvVarUpdate.nsh +328 -0
  129. data/installer/windows/ServiceLib.nsh +369 -0
  130. data/installer/windows/configUi.ini +44 -0
  131. data/installer/windows/icon.ico +0 -0
  132. data/installer/windows/rhosync.nsi +418 -0
  133. data/installer/windows/uninstall.bat +7 -0
  134. data/lib/rhoconnect/api/admin/get_api_token.rb +14 -0
  135. data/lib/rhoconnect/api/admin/get_license_info.rb +8 -0
  136. data/lib/rhoconnect/api/admin/login.rb +6 -0
  137. data/lib/rhoconnect/api/admin/reset.rb +10 -0
  138. data/lib/rhoconnect/api/admin/stats.rb +21 -0
  139. data/lib/rhoconnect/api/application/bulk_data.rb +7 -0
  140. data/lib/rhoconnect/api/application/clientcreate.rb +8 -0
  141. data/lib/rhoconnect/api/application/clientlogin.rb +6 -0
  142. data/lib/rhoconnect/api/application/clientregister.rb +6 -0
  143. data/lib/rhoconnect/api/application/clientreset.rb +6 -0
  144. data/lib/rhoconnect/api/application/query.rb +7 -0
  145. data/lib/rhoconnect/api/application/queue_updates.rb +6 -0
  146. data/lib/rhoconnect/api/application/search.rb +6 -0
  147. data/lib/rhoconnect/api/client/create_client.rb +3 -0
  148. data/lib/rhoconnect/api/client/delete_client.rb +5 -0
  149. data/lib/rhoconnect/api/client/get_client_params.rb +3 -0
  150. data/lib/rhoconnect/api/client/list_client_docs.rb +12 -0
  151. data/lib/rhoconnect/api/client/list_clients.rb +3 -0
  152. data/lib/rhoconnect/api/client/ping.rb +7 -0
  153. data/lib/rhoconnect/api/source/get_adapter.rb +3 -0
  154. data/lib/rhoconnect/api/source/get_db_doc.rb +7 -0
  155. data/lib/rhoconnect/api/source/get_source_params.rb +3 -0
  156. data/lib/rhoconnect/api/source/list_source_docs.rb +10 -0
  157. data/lib/rhoconnect/api/source/list_sources.rb +15 -0
  158. data/lib/rhoconnect/api/source/push_deletes.rb +8 -0
  159. data/lib/rhoconnect/api/source/push_objects.rb +8 -0
  160. data/lib/rhoconnect/api/source/save_adapter.rb +3 -0
  161. data/lib/rhoconnect/api/source/set_db_doc.rb +8 -0
  162. data/lib/rhoconnect/api/source/set_refresh_time.rb +8 -0
  163. data/lib/rhoconnect/api/source/upload_file.rb +4 -0
  164. data/lib/rhoconnect/api/user/create_user.rb +7 -0
  165. data/lib/rhoconnect/api/user/delete_user.rb +9 -0
  166. data/lib/rhoconnect/api/user/list_users.rb +3 -0
  167. data/lib/rhoconnect/api/user/update_user.rb +4 -0
  168. data/lib/rhoconnect/api_token.rb +19 -0
  169. data/lib/rhoconnect/app.rb +76 -0
  170. data/lib/rhoconnect/bulk_data/bulk_data.rb +88 -0
  171. data/lib/rhoconnect/bulk_data/syncdb.index.schema +4 -0
  172. data/lib/rhoconnect/bulk_data/syncdb.schema +41 -0
  173. data/lib/rhoconnect/bulk_data.rb +2 -0
  174. data/lib/rhoconnect/client.rb +96 -0
  175. data/lib/rhoconnect/client_sync.rb +412 -0
  176. data/lib/rhoconnect/console/app/helpers/auth_helper.rb +22 -0
  177. data/lib/rhoconnect/console/app/helpers/extensions.rb +19 -0
  178. data/lib/rhoconnect/console/app/helpers/helpers.rb +57 -0
  179. data/lib/rhoconnect/console/app/public/ThickBox.css +649 -0
  180. data/lib/rhoconnect/console/app/public/home.css +438 -0
  181. data/lib/rhoconnect/console/app/public/images/foot_logo_rhoconnect.png +0 -0
  182. data/lib/rhoconnect/console/app/public/images/header_halo.jpg +0 -0
  183. data/lib/rhoconnect/console/app/public/images/land_separator.gif +0 -0
  184. data/lib/rhoconnect/console/app/public/images/landing_header.jpg +0 -0
  185. data/lib/rhoconnect/console/app/public/images/logo_rhoconnect.png +0 -0
  186. data/lib/rhoconnect/console/app/public/images/rhomobile_rhohub_logo.png +0 -0
  187. data/lib/rhoconnect/console/app/public/images/tabs_separator.png +0 -0
  188. data/lib/rhoconnect/console/app/public/jqplot/excanvas.min.js +35 -0
  189. data/lib/rhoconnect/console/app/public/jqplot/jqplot.barRenderer.min.js +34 -0
  190. data/lib/rhoconnect/console/app/public/jqplot/jqplot.canvasAxisLabelRenderer.js +187 -0
  191. data/lib/rhoconnect/console/app/public/jqplot/jqplot.canvasAxisTickRenderer.js +226 -0
  192. data/lib/rhoconnect/console/app/public/jqplot/jqplot.canvasTextRenderer.js +408 -0
  193. data/lib/rhoconnect/console/app/public/jqplot/jqplot.categoryAxisRenderer.min.js +34 -0
  194. data/lib/rhoconnect/console/app/public/jqplot/jqplot.cursor.js +952 -0
  195. data/lib/rhoconnect/console/app/public/jqplot/jqplot.dateAxisRenderer.js +313 -0
  196. data/lib/rhoconnect/console/app/public/jqplot/jqplot.dateAxisRenderer.min.js +34 -0
  197. data/lib/rhoconnect/console/app/public/jqplot/jqplot.pointLabels.min.js +34 -0
  198. data/lib/rhoconnect/console/app/public/jqplot/jquery-1.4.2.min.js +154 -0
  199. data/lib/rhoconnect/console/app/public/jqplot/jquery.jqplot.min.css +1 -0
  200. data/lib/rhoconnect/console/app/public/jqplot/jquery.jqplot.min.js +34 -0
  201. data/lib/rhoconnect/console/app/public/main.css +7 -0
  202. data/lib/rhoconnect/console/app/public/reset.css +76 -0
  203. data/lib/rhoconnect/console/app/public/style.css +2201 -0
  204. data/lib/rhoconnect/console/app/public/text.txt +0 -0
  205. data/lib/rhoconnect/console/app/routes/adapter.rb +28 -0
  206. data/lib/rhoconnect/console/app/routes/auth.rb +29 -0
  207. data/lib/rhoconnect/console/app/routes/client.rb +31 -0
  208. data/lib/rhoconnect/console/app/routes/docs.rb +145 -0
  209. data/lib/rhoconnect/console/app/routes/heroku.rb +19 -0
  210. data/lib/rhoconnect/console/app/routes/home.rb +63 -0
  211. data/lib/rhoconnect/console/app/routes/timing.rb +242 -0
  212. data/lib/rhoconnect/console/app/routes/user.rb +117 -0
  213. data/lib/rhoconnect/console/app/views/adapter.erb +16 -0
  214. data/lib/rhoconnect/console/app/views/client.erb +30 -0
  215. data/lib/rhoconnect/console/app/views/content.erb +14 -0
  216. data/lib/rhoconnect/console/app/views/doc.erb +8 -0
  217. data/lib/rhoconnect/console/app/views/docdata.erb +28 -0
  218. data/lib/rhoconnect/console/app/views/docs.erb +30 -0
  219. data/lib/rhoconnect/console/app/views/edituser.erb +13 -0
  220. data/lib/rhoconnect/console/app/views/headermenu.erb +40 -0
  221. data/lib/rhoconnect/console/app/views/home.erb +24 -0
  222. data/lib/rhoconnect/console/app/views/index.erb +58 -0
  223. data/lib/rhoconnect/console/app/views/jqplot.erb +52 -0
  224. data/lib/rhoconnect/console/app/views/layout.erb +165 -0
  225. data/lib/rhoconnect/console/app/views/login.erb +26 -0
  226. data/lib/rhoconnect/console/app/views/newuser.erb +17 -0
  227. data/lib/rhoconnect/console/app/views/ping.erb +28 -0
  228. data/lib/rhoconnect/console/app/views/result.erb +11 -0
  229. data/lib/rhoconnect/console/app/views/rightboxlinks.erb +15 -0
  230. data/lib/rhoconnect/console/app/views/select_doc.erb +17 -0
  231. data/lib/rhoconnect/console/app/views/upload_doc.erb +23 -0
  232. data/lib/rhoconnect/console/app/views/user.erb +29 -0
  233. data/lib/rhoconnect/console/app/views/users.erb +12 -0
  234. data/lib/rhoconnect/console/rhoconnect_api.rb +245 -0
  235. data/lib/rhoconnect/console/server.rb +32 -0
  236. data/lib/rhoconnect/console.rb +3 -0
  237. data/lib/rhoconnect/cors.rb +229 -0
  238. data/lib/rhoconnect/credential.rb +9 -0
  239. data/lib/rhoconnect/db_adapter.rb +46 -0
  240. data/lib/rhoconnect/document.rb +49 -0
  241. data/lib/rhoconnect/dynamic_adapter.rb +91 -0
  242. data/lib/rhoconnect/generator.rb +1 -0
  243. data/lib/rhoconnect/jobs/bulk_data_job.rb +203 -0
  244. data/lib/rhoconnect/jobs/ping_job.rb +46 -0
  245. data/lib/rhoconnect/jobs/source_job.rb +16 -0
  246. data/lib/rhoconnect/license.rb +86 -0
  247. data/lib/rhoconnect/lock_ops.rb +11 -0
  248. data/lib/rhoconnect/model.rb +414 -0
  249. data/lib/rhoconnect/ping/android.rb +56 -0
  250. data/lib/rhoconnect/ping/apple.rb +52 -0
  251. data/lib/rhoconnect/ping/blackberry.rb +56 -0
  252. data/lib/rhoconnect/ping.rb +3 -0
  253. data/lib/rhoconnect/read_state.rb +31 -0
  254. data/lib/rhoconnect/rho_indifferent_access.rb +88 -0
  255. data/lib/rhoconnect/server/views/index.erb +13 -0
  256. data/lib/rhoconnect/server.rb +286 -0
  257. data/lib/rhoconnect/source.rb +289 -0
  258. data/lib/rhoconnect/source_adapter.rb +123 -0
  259. data/lib/rhoconnect/source_sync.rb +302 -0
  260. data/lib/rhoconnect/stats/middleware.rb +20 -0
  261. data/lib/rhoconnect/stats/record.rb +108 -0
  262. data/lib/rhoconnect/store.rb +232 -0
  263. data/lib/rhoconnect/tasks.rb +350 -0
  264. data/lib/rhoconnect/test_methods.rb +220 -0
  265. data/lib/rhoconnect/user.rb +95 -0
  266. data/lib/rhoconnect/version.rb +3 -0
  267. data/lib/rhoconnect/x_domain_session_wrapper.rb +53 -0
  268. data/lib/rhoconnect.rb +285 -0
  269. data/rhoconnect.gemspec +67 -0
  270. data/spec/api/admin/api_token_spec.rb +14 -0
  271. data/spec/api/admin/get_api_token_spec.rb +36 -0
  272. data/spec/api/admin/get_license_info_spec.rb +38 -0
  273. data/spec/api/admin/reset_spec.rb +22 -0
  274. data/spec/api/admin/stats_spec.rb +66 -0
  275. data/spec/api/api_helper.rb +21 -0
  276. data/spec/api/application/rhoconnect_api_spec.rb +548 -0
  277. data/spec/api/client/create_client_spec.rb +13 -0
  278. data/spec/api/client/delete_client_spec.rb +13 -0
  279. data/spec/api/client/get_client_params_spec.rb +18 -0
  280. data/spec/api/client/list_client_docs_spec.rb +32 -0
  281. data/spec/api/client/list_clients_spec.rb +22 -0
  282. data/spec/api/client/ping_spec.rb +23 -0
  283. data/spec/api/rhosync_api_spec.rb.orig +606 -0
  284. data/spec/api/source/adapter_spec.rb +29 -0
  285. data/spec/api/source/get_db_doc_spec.rb +21 -0
  286. data/spec/api/source/get_source_params_spec.rb +32 -0
  287. data/spec/api/source/list_source_docs_spec.rb +25 -0
  288. data/spec/api/source/list_sources_spec.rb +26 -0
  289. data/spec/api/source/push_deletes_spec.rb +18 -0
  290. data/spec/api/source/push_objects_spec.rb +27 -0
  291. data/spec/api/source/set_db_doc_spec.rb +19 -0
  292. data/spec/api/source/set_refresh_time_spec.rb +43 -0
  293. data/spec/api/source/upload_file_spec.rb +26 -0
  294. data/spec/api/user/create_user_spec.rb +16 -0
  295. data/spec/api/user/delete_user_spec.rb +36 -0
  296. data/spec/api/user/list_users_spec.rb +30 -0
  297. data/spec/api/user/update_user_spec.rb +31 -0
  298. data/spec/api_token_spec.rb +14 -0
  299. data/spec/app_spec.rb +18 -0
  300. data/spec/apps/emptyapp/application.rb +27 -0
  301. data/spec/apps/emptyapp/settings/license.key +1 -0
  302. data/spec/apps/emptyapp/settings/settings.yml +14 -0
  303. data/spec/apps/rhotestapp/Rakefile +1 -0
  304. data/spec/apps/rhotestapp/application.rb +19 -0
  305. data/spec/apps/rhotestapp/config.ru +1 -0
  306. data/spec/apps/rhotestapp/settings/apple_fake_cert.pem +1 -0
  307. data/spec/apps/rhotestapp/settings/license.key +1 -0
  308. data/spec/apps/rhotestapp/settings/settings.yml +36 -0
  309. data/spec/apps/rhotestapp/sources/base_adapter.rb +9 -0
  310. data/spec/apps/rhotestapp/sources/fixed_schema_adapter.rb +28 -0
  311. data/spec/apps/rhotestapp/sources/sample_adapter.rb +71 -0
  312. data/spec/apps/rhotestapp/sources/simple_adapter.rb +41 -0
  313. data/spec/apps/rhotestapp/sources/sub_adapter.rb +7 -0
  314. data/spec/apps/rhotestapp/vendor/mygem-0.1.0/lib/mygem/mygem.rb +8 -0
  315. data/spec/apps/rhotestapp/vendor/mygem-0.1.0/lib/mygem.rb +1 -0
  316. data/spec/bulk_data/bulk_data_spec.rb +97 -0
  317. data/spec/client_spec.rb +124 -0
  318. data/spec/client_sync_spec.rb +774 -0
  319. data/spec/doc/base.html +72 -0
  320. data/spec/doc/doc_spec.rb +376 -0
  321. data/spec/doc/footer.html +4 -0
  322. data/spec/doc/header.html +30 -0
  323. data/spec/document_spec.rb +31 -0
  324. data/spec/dynamic_adapter_spec.rb +43 -0
  325. data/spec/factories/factories.rb +17 -0
  326. data/spec/generator/generator_spec.rb +58 -0
  327. data/spec/generator/generator_spec_helper.rb +9 -0
  328. data/spec/jobs/bulk_data_job_spec.rb +125 -0
  329. data/spec/jobs/ping_job_spec.rb +102 -0
  330. data/spec/jobs/source_job_spec.rb +29 -0
  331. data/spec/license_spec.rb +66 -0
  332. data/spec/model_spec.rb +273 -0
  333. data/spec/perf/bulk_data_perf_spec.rb +32 -0
  334. data/spec/perf/perf_spec_helper.rb +50 -0
  335. data/spec/perf/store_perf_spec.rb +27 -0
  336. data/spec/ping/android_spec.rb +91 -0
  337. data/spec/ping/apple_spec.rb +70 -0
  338. data/spec/ping/blackberry_spec.rb +62 -0
  339. data/spec/read_state_spec.rb +35 -0
  340. data/spec/rhosync_spec.rb +75 -0
  341. data/spec/server/cors_spec.rb +287 -0
  342. data/spec/server/server_spec.rb +470 -0
  343. data/spec/server/x_domain_session_wrapper_spec.rb +150 -0
  344. data/spec/source_adapter_spec.rb +125 -0
  345. data/spec/source_spec.rb +114 -0
  346. data/spec/source_sync_spec.rb +328 -0
  347. data/spec/spec.opts +4 -0
  348. data/spec/spec_helper.rb +231 -0
  349. data/spec/stats/middleware_spec.rb +53 -0
  350. data/spec/stats/record_spec.rb +92 -0
  351. data/spec/store_spec.rb +251 -0
  352. data/spec/support/shared_examples.rb +168 -0
  353. data/spec/sync_states_spec.rb +72 -0
  354. data/spec/test_methods_spec.rb +134 -0
  355. data/spec/testdata/1000-data.txt +1414 -0
  356. data/spec/testdata/compressed/compress-data.txt +1 -0
  357. data/spec/testdata/upload1.txt +1 -0
  358. data/spec/testdata/upload2.txt +1 -0
  359. data/spec/user_spec.rb +139 -0
  360. data/tasks/redis.rake +206 -0
  361. metadata +706 -0
@@ -0,0 +1,2201 @@
1
+ @charset "utf-8";
2
+ *{ font-family:Arial, Helvetica, sans-serif;
3
+ outline:medium none;
4
+ }
5
+
6
+
7
+ body,html{
8
+ height:100%;
9
+ }
10
+
11
+ body {
12
+ margin: 0px;
13
+ background-color:#FFFFFF;
14
+ background:url("../images/bg/dash_header.png") repeat-x scroll 0 0 transparent;
15
+ }
16
+ body.public_page{
17
+ margin: 0px;
18
+ background-color:#FFFFFF;
19
+ }
20
+ #container{
21
+ min-height:100%;
22
+ position:relative;
23
+ }
24
+ small{
25
+ margin-bottom: 0;
26
+ }
27
+
28
+ #wrapper{
29
+ margin:0 auto;
30
+ width:960px;
31
+ }
32
+ /*top*/
33
+
34
+ #banner{
35
+ color:#FFFFFF;
36
+ height:68px;
37
+ margin:0 auto;
38
+ width:960px;
39
+ }
40
+ #banner_public img{
41
+ border:medium none;
42
+ display:inline;
43
+ float:left;
44
+ position:relative;
45
+ top:22px;
46
+ }
47
+
48
+ #banner img{
49
+ border:medium none;
50
+ }
51
+
52
+ #banner .logos{
53
+ border:medium none;
54
+ display:inline;
55
+ float:left;
56
+ }
57
+
58
+ #banner_public
59
+ {
60
+ color:#FFFFFF;
61
+ height:73px;
62
+ margin:0 auto;
63
+ width:960px;
64
+ }
65
+
66
+ #banner .gravatar
67
+ {
68
+ border:medium none;
69
+ position:relative;
70
+ top:0;
71
+ width:45px;
72
+ }
73
+ .header{
74
+ position: relative;
75
+ height: 80px;
76
+ }
77
+ .header .logos{
78
+ overflow:hidden;
79
+ position:absolute;
80
+ top:9px;
81
+ }
82
+
83
+ .header .logo a{
84
+ display:block;
85
+ height:100%;
86
+ }
87
+
88
+
89
+ #banner_guest{ width:960px; height:60px; margin:0 auto;color:#FFFFFF;}
90
+ #banner_guest img{ border:none; display:inline; float:left; position:relative; top:13px;}
91
+ #banner_guest .gravatar
92
+ {
93
+ border:medium none;
94
+ position:relative;
95
+ top:0;
96
+ width:45px;
97
+ }
98
+
99
+ .gravatar_box_bio{
100
+ background-image:url("../images/avatar.jpg");
101
+ border:1px solid #A4A4A6;
102
+ float:left;
103
+ height:45px;
104
+ margin-bottom:10px;
105
+ margin-top:10px;
106
+ width:45px;
107
+ }
108
+ .gravatar_public_box{
109
+ background:url("../images/avatar_public.jpg") no-repeat scroll 50% 1px transparent;
110
+ float:left;
111
+ height:36px;
112
+ margin-right:0;
113
+ margin-top:-2px;
114
+ width:36px;
115
+ }
116
+ .gravatar_box{
117
+ background-image:url("../images/avatar.jpg");
118
+ border:1px solid #A4A4A6;
119
+ float:left;
120
+ height:45px;
121
+ margin-left:8px;
122
+ margin-top:-7px;
123
+ width:45px;
124
+ }
125
+
126
+ .gravatar_box_small{
127
+ background-image:url("../images/small_avatar.jpg");
128
+ border:1px solid #A4A4A6;
129
+ float:left;
130
+ height:25px;
131
+ margin-left:8px;
132
+ width:25px;
133
+ }
134
+ .gravatar_small_tab{
135
+ border:medium none;
136
+ }
137
+ .gravatar_box_tab{
138
+ background-image:url("../images/small_avatar.jpg");
139
+ border:1px solid #A4A4A6;
140
+ display:inline-block;
141
+ height:25px;
142
+ margin-left:5px;
143
+ margin-top:-9px;
144
+ vertical-align:sub;
145
+ width:25px;
146
+ }
147
+
148
+ #banner span{
149
+ font-weight:bold;
150
+ font-size:12px;
151
+ padding-top:10px;
152
+ margin:0px;
153
+ top:0px;
154
+ float:left;
155
+ margin-left:-56px;
156
+ }
157
+
158
+ #banner p{
159
+ margin-top:5px;
160
+ }
161
+
162
+ a.topleftlink{
163
+ position:absolute;
164
+ margin-left:0px;
165
+ padding-top:10px;
166
+ color:#9E1016;
167
+ text-decoration:underline;
168
+ font-weight:bold;
169
+ font-size:12px;
170
+ }
171
+
172
+ a:hover.topleftlink{
173
+ color:#FFFFFF; text-decoration:underline; font-weight:bold;
174
+ }
175
+
176
+ #banner h1{
177
+ padding-top:20px;
178
+ margin:0px;
179
+ font-size:20px;
180
+ top:0px;
181
+ float:left;
182
+ left:0px;
183
+ margin-left:0px;
184
+ margin-top:5px;
185
+ display:inline;
186
+ }
187
+
188
+ #login_public{
189
+ background:url("../images/lower_top_bar.png") no-repeat scroll left top transparent;
190
+ border:medium none;
191
+ color:#000000;
192
+ float:right;
193
+ font-size:12px;
194
+ height:36px;
195
+ padding:0;
196
+ text-align:right;
197
+ width:700px;
198
+ }
199
+ #menu_top_user{
200
+ -moz-border-radius:6px;
201
+ -webkit-border-radius:6px;
202
+ background:none repeat scroll 0 0 #F0F0F0;
203
+ border:medium none;
204
+ color:#000000;
205
+ float:right;
206
+ font-size:12px;
207
+ height:36px;
208
+ padding:0;
209
+ text-align:right;
210
+ width:95%;
211
+ }
212
+ #menu_top_user a{
213
+ text-decoration:none;
214
+ border:none;
215
+ }
216
+ #login_public img{
217
+ }
218
+
219
+ #menu_lower {
220
+ font-size:12px;
221
+ }
222
+ #menu_lower ul {
223
+ margin-bottom:0;
224
+ margin-right:15px;
225
+ margin-top:11px;
226
+ }
227
+ #menu_lower ul li {
228
+ display:inline;
229
+ padding:0;
230
+ }
231
+ #menu_lower ul li a.last {
232
+ color:#FFFFFF;
233
+ padding-left:20px;
234
+ padding-right:20px;
235
+ }
236
+ #menu_lower ul li a.last:hover {
237
+ color:#D0D0D0;
238
+ }
239
+ #menu_lower ul li a.selected{
240
+ -moz-border-radius:4px;
241
+ -webkit-border-radius:4px;
242
+ background:none repeat scroll 0 0 #FFFFFF;
243
+ border-color:#CCCCCC #EEEEEE #EEEEEE #CCCCCC;
244
+ border-style:solid;
245
+ border-width:1px;
246
+ color:#003867;
247
+ font-weight:bold;
248
+ padding:6px 10px;
249
+ }
250
+ #menu_lower ul li a {
251
+ color:#666666;
252
+ font-weight:bold;
253
+ height:24px;
254
+ margin:0 auto;
255
+ padding-left:10px;
256
+ padding-right:10px;
257
+ text-align:center;
258
+ text-decoration:none;
259
+ }
260
+ #menu_lower ul li a:hover {
261
+ color:#222222;
262
+ }
263
+
264
+ #login{
265
+ border:medium none;
266
+ color:#FFFFFF;
267
+ float:right;
268
+ font-size:12px;
269
+ margin-top:30px;
270
+ }
271
+ #login a, #banner a{ color:#BBBBBB; text-decoration:underline; font-weight:bold;}
272
+ #login a:hover, #banner a:hover{ color:#FFFFFF; text-decoration:underline; font-weight:bold;}
273
+
274
+ /**********************************************/
275
+ /**********************************************/
276
+
277
+ .search_box{
278
+ color:#868686;
279
+ font-size:12px;
280
+ margin-bottom:25px;
281
+ margin-top:16px;
282
+ text-align:right;
283
+ }
284
+
285
+ .search_box ul{
286
+ display:inline-block;
287
+ position:relative;
288
+ top:2px;
289
+ }
290
+ .search_box ul li{
291
+ display:inline;
292
+ padding-left:25px;
293
+ }
294
+ .project_container{
295
+ background:#F0F0F0;
296
+ border:1px solid #E5E5E5;
297
+ -moz-border-radius:6px;
298
+ -webkit-border-radius:6px;
299
+ margin-bottom:20px;
300
+ }
301
+
302
+ .title {
303
+ border-bottom:1px solid #E5E5E5;
304
+ padding:15px;
305
+ text-align:right;
306
+ }
307
+ .create_new_project:hover{
308
+ background-position:left bottom;
309
+ }
310
+ .create_new_project {
311
+ background:url("../images/dashboard/new_project.png") no-repeat scroll left top transparent;
312
+ border:medium none;
313
+ cursor:pointer;
314
+ display:inline-block;
315
+ float:left;
316
+ height:31px;
317
+ margin-top:20px;
318
+ width:173px;
319
+ }
320
+ #create_new_project:hover{
321
+ background-position:left bottom;
322
+ }
323
+ #create_new_project {
324
+ background:url("../images/dashboard/new_project.png") no-repeat scroll left top transparent;
325
+ border:medium none;
326
+ cursor:pointer;
327
+ display:inline-block;
328
+ float:left;
329
+ height:31px;
330
+ width:173px;
331
+ }
332
+ .drop_down:hover{
333
+ background-position:left bottom;
334
+ }
335
+ .drop_down {
336
+ background:url("../images/dashboard/drop_down.png") no-repeat scroll left top transparent;
337
+ border:medium none;
338
+ cursor:pointer;
339
+ display:inline-block;
340
+ height:8px;
341
+ margin-bottom:2px;
342
+ width:12px;
343
+ }
344
+ .drop_up:hover{
345
+ background-position:left bottom;
346
+ }
347
+ .drop_up {
348
+ background:url("../images/dashboard/drop_up.png") no-repeat scroll left top transparent;
349
+ border:medium none;
350
+ cursor:pointer;
351
+ display:inline-block;
352
+ height:11px;
353
+ margin-bottom:1px;
354
+ width:10px;
355
+ }
356
+ .project_title{
357
+ color:#003867;
358
+ float:left;
359
+ font-size:18px;
360
+ margin-top:-3px;
361
+ }
362
+ .search_project{
363
+ background:url("../images/dashboard/search.png") no-repeat scroll left top transparent;
364
+ border:1px solid #CCCCCC;
365
+ color:#868686;
366
+ font-size:12px;
367
+ height:21px;
368
+ padding-left:20px;
369
+ width:150px;
370
+ }
371
+
372
+ .title_ul{
373
+ display:inline-block;
374
+ font-size:11px;
375
+ color:#999999;
376
+ }
377
+ .title_ul li{
378
+ display:inline;
379
+ margin-right:10px;
380
+ text-shadow:1px 1px 0 #FFFFFF;
381
+ }
382
+ .title_ul li a{
383
+ color:#999999;
384
+ text-decoration:underline;
385
+ }
386
+ .title_ul li a:hover{
387
+ color:#666666;
388
+ }
389
+ .project_apps{
390
+ border-top:1px solid #F8F8F8;
391
+ overflow:hidden;
392
+ padding:20px;
393
+ }
394
+ .project_apps .rhodes{
395
+ background:none repeat scroll 0 0 #FFFFFF;
396
+ border:1px solid #CCCCCC;
397
+ float:left;
398
+ margin-right:10px;
399
+ padding:12px 12px 25px;
400
+ width:428px;
401
+ }
402
+ .project_apps .rhoconnect{
403
+ background:none repeat scroll 0 0 #FFFFFF;
404
+ border:1px solid #CCCCCC;
405
+ float:right;
406
+ padding:12px 12px 25px;
407
+ width:428px;
408
+ }
409
+ .project_apps p{
410
+ color:#666666;
411
+ font-size:12px;
412
+ line-height:20px;
413
+ margin-bottom:18px;
414
+ }
415
+ .link_holder{
416
+ color:#878787;
417
+ font-size:11px;
418
+ margin:5px -7px 0 0;
419
+ text-align:right;
420
+ }
421
+ .link_holder li{
422
+ display:inline;
423
+ margin-right:5px;
424
+ }
425
+ .link_holder li a, .link_holder li a:visited{
426
+ -moz-border-radius:6px 6px 6px 6px;
427
+ -webkit-border-radius:6px;
428
+ border:1px solid #CCCCCC;
429
+ padding:5px 8px;
430
+ color:#666666;
431
+ text-decoration:none;
432
+ }
433
+ .link_holder li a#active{
434
+ background:url("../images/dashboard/greenled.png") no-repeat scroll left center transparent;
435
+ border:1px solid #CCCCCC;
436
+ color:#666666;
437
+ padding:5px 8px 5px 22px;
438
+ text-decoration:none;
439
+ }
440
+ .link_holder li a#active:hover{
441
+ background:url("../images/dashboard/greenled.png") no-repeat scroll left center #ECECEC;
442
+ }
443
+ .link_holder li a#unactive{
444
+ background:url("../images/dashboard/backled.png") no-repeat scroll left center transparent;
445
+ border:1px solid #CCCCCC;
446
+ color:#666666;
447
+ padding:5px 8px 5px 22px;
448
+ text-decoration:none;
449
+ }
450
+ .link_holder li a#unactive:hover{
451
+ background:url("../images/dashboard/backled.png") no-repeat scroll left center #ECECEC;
452
+ }
453
+ .link_holder li a#running{
454
+ background:url("../images/dashboard/orange_led.png") no-repeat scroll left center transparent;
455
+ border:1px solid #CCCCCC;
456
+ color:#666666;
457
+ padding:5px 8px 5px 22px;
458
+ text-decoration:none;
459
+ }
460
+ .link_holder li a#running:hover{
461
+ background:url("../images/dashboard/orange_led.png") no-repeat scroll left center #ECECEC;
462
+ }
463
+ .link_holder li a#disable{
464
+ background:#EBEBEB;
465
+ border:1px solid #CECECE;
466
+ color:#A3A3A3;
467
+ text-shadow:1px 1px 0 #FFFFFF;
468
+ cursor:default;
469
+ }
470
+ .link_holder li a#true{
471
+ background:#8AB617;
472
+ border:1px solid #8AB617;
473
+ color:#FFFFFF;
474
+ }
475
+ .link_holder li a#true:hover{
476
+ background:#7AA214;
477
+ border:1px solid #7AA214;
478
+ color:#FFFFFF;
479
+ }
480
+ .link_holder li a#false{
481
+ background:#999999;
482
+ border:1px solid #999999;
483
+ color:#FFFFFF;
484
+ }
485
+ .link_holder li a#false:hover{
486
+ background:#7F7F7F;
487
+ border:1px solid #7F7F7F;
488
+ color:#FFFFFF;
489
+ }
490
+ .link_holder li a:hover{
491
+ background:#ECECEC;
492
+ }
493
+ .app_container{
494
+ margin-top:25px;
495
+ }
496
+ .app_container_icon{
497
+ float:left;
498
+ width:45px;
499
+ }
500
+ .app_name{
501
+ display:inline-block;
502
+ margin-top:5px;
503
+ }
504
+ .app_container_name{
505
+ float:left;
506
+ }
507
+ .app_container_name h3{
508
+ display:inline;
509
+ font-size:16px;
510
+ }
511
+ .app_container_name .updated_at{
512
+ color:#888888;
513
+ font-size:10px;
514
+ }
515
+ .git_url_container{
516
+ margin-top:10px;
517
+ }
518
+ .git_url_copy{
519
+ -moz-border-radius:6px 0 0 6px;
520
+ -webkit-border-radius:6px 0 0 6px;
521
+ background:none repeat scroll 0 0 #999999;
522
+ color:#FFFFFF;
523
+ font-size:10px;
524
+ padding:5px 4px 4px 8px;
525
+ }
526
+ .git_url{
527
+ border:1px solid #CCCCCC;
528
+ color:#999999;
529
+ margin-left:-5px;
530
+ padding:3px;
531
+ width:300px;
532
+ }
533
+ .copy_url_to_clipboard{
534
+ position:relative;
535
+ top:2px;
536
+ }
537
+ .copied{
538
+ color:#999999;
539
+ font-size:10px;
540
+ left:410px;
541
+ position:absolute;
542
+ top:75px;
543
+ }
544
+ question_modal_build:hover, #question_modal:hover{
545
+ background-position:left bottom;
546
+ }
547
+ #question_modal {
548
+ background:url("../images/dashboard/question.png") no-repeat scroll left top transparent;
549
+ border:medium none;
550
+ cursor:pointer;
551
+ display:inline-block;
552
+ float:right;
553
+ height:16px;
554
+ margin-left:10px;
555
+ vertical-align:middle;
556
+ width:16px;
557
+ }
558
+ #question_modal_build {
559
+ background:url("../images/dashboard/question.png") no-repeat scroll left top transparent;
560
+ border:medium none;
561
+ cursor:pointer;
562
+ display:inline-block;
563
+ height:16px;
564
+ margin-left:5px;
565
+ vertical-align:middle;
566
+ width:16px;
567
+ }
568
+ #question_ssh:hover{
569
+ background-position:left bottom;
570
+ }
571
+ #question_ssh {
572
+ background:url("../images/dashboard/question.png") no-repeat scroll left top transparent;
573
+ border:medium none;
574
+ cursor:pointer;
575
+ display:inline-block;
576
+ float:right;
577
+ height:16px;
578
+ margin-top:-30px;
579
+ vertical-align:middle;
580
+ width:16px;
581
+ }
582
+ #question:hover{
583
+ background-position:left bottom;
584
+ }
585
+ #question {
586
+ background:url("../images/dashboard/question.png") no-repeat scroll left top transparent;
587
+ border:medium none;
588
+ cursor:pointer;
589
+ display:inline-block;
590
+ height:16px;
591
+ margin-top:-3px;
592
+ vertical-align:middle;
593
+ width:16px;
594
+ }
595
+ .colaborators_box{
596
+ border:1px solid #CCCCCC;
597
+ float:left;
598
+ margin-top:10px;
599
+ width:100%;
600
+ }
601
+ .colaborators_box h4{
602
+ color:#333333;
603
+ float:left;
604
+ font-size:13px;
605
+ }
606
+ .col_title{
607
+ padding:10px;
608
+ text-align:right;
609
+ }
610
+ .col_title span{
611
+ display:inline;
612
+ margin-right:10px;
613
+ text-shadow:1px 1px 0 #FFFFFF;
614
+ color:#999999;
615
+ display:inline-block;
616
+ font-size:11px;
617
+ }
618
+ .full_list{
619
+ background:none repeat scroll 0 0 #FFFFFF;
620
+ border-top:1px solid #CCCCCC;
621
+ padding:10px 5px 10px 10px;
622
+ text-align:right;
623
+ }
624
+ .col_list{
625
+ margin-bottom:5px;
626
+ text-align:left;
627
+ }
628
+ .col_list a{
629
+ border:medium none;
630
+ margin-right:3px;
631
+ }
632
+ .col_list a img{
633
+ border:1px solid #CCCCCC;
634
+ }
635
+ .gravatar_col_list {
636
+ background-image:url("../images/small_avatar.jpg");
637
+ border:1px solid #A4A4A6;
638
+ display:inline-block;
639
+ height:25px;
640
+ margin-left:10px;
641
+ margin-top:4px;
642
+ width:25px;
643
+ }
644
+ #manage_colaborators{
645
+ color:#999999;
646
+ font-size:10px;
647
+ }
648
+ /**********************************************/
649
+ /**********************************************/
650
+ ul.dashboard_ul{
651
+ list-style-image:url("../images/landing/bullet_premium.png");
652
+ margin-bottom:25px;
653
+ margin-left:15px;
654
+ padding:10px 25px;
655
+ }
656
+
657
+ ul.dashboard_ul li{
658
+ font-size:13px;
659
+ height:10px;
660
+ margin-top:10px;
661
+ }
662
+
663
+ ul.second_tabs {
664
+ background:none repeat scroll 0 0 #EAE9E4;
665
+ border:1px solid #F0F0F0;
666
+ height:26px;
667
+ margin-bottom:5px;
668
+ margin-top:5px;
669
+ padding:6px 10px;
670
+ }
671
+
672
+ ul.second_tabs li {
673
+ display:inline;
674
+ list-style-type:none;
675
+ margin:0;
676
+ }
677
+
678
+ ul.second_tabs li a.selected {
679
+ background:none repeat scroll 0 0 #FFFFFF;
680
+ border-color:#CCCCCC #EEEEEE #EEEEEE #CCCCCC;
681
+ border-style:solid;
682
+ border-width:1px;
683
+ color:#003867;
684
+ font-weight:bold;
685
+ position:relative;
686
+ top:-1px;
687
+ }
688
+ ul.second_tabs li a {
689
+ -moz-border-radius:4px;
690
+ -webkit-border-radius:4px;
691
+ color:#666666;
692
+ float:left;
693
+ font-size:14px;
694
+ height:26px;
695
+ line-height:26px;
696
+ margin-right:10px;
697
+ padding:0 8px;
698
+ text-decoration:none;
699
+ }
700
+ ul.second_tabs li a:hover {
701
+ background-color:#F0F0F0;
702
+ color:#333333;
703
+ }
704
+ /**********************************************/
705
+ /**********************************************/
706
+ #box-outer {
707
+ overflow:hidden;
708
+ }
709
+ .ssh_area{
710
+ background-color:#F9F9F7;
711
+ border:1px solid #DEDEDE;
712
+ color:#454555;
713
+ display:block;
714
+ font-size:11px;
715
+ height:100px;
716
+ margin-bottom:10px;
717
+ padding:10px;
718
+ width:96%;
719
+ }
720
+
721
+ ul.ssh_tabs {
722
+
723
+ }
724
+
725
+ ul.ssh_tabs li {
726
+ background:none repeat scroll 0 0 #EEEEEE;
727
+ border:1px solid #DDDDDD;
728
+ color:#666666;
729
+ font-size:12px;
730
+ font-weight:bold;
731
+ line-height:26px;
732
+ list-style-type:none;
733
+ margin:10px 0;
734
+ padding:0 8px;
735
+ text-decoration:none;
736
+ }
737
+ ul.ssh_tabs li a{
738
+ color:#666666;
739
+ text-decoration:none;
740
+ }
741
+
742
+ ul.ssh_tabs li a:hover{
743
+ color:#666666;
744
+ text-decoration:underline;
745
+ }
746
+
747
+ ul.ssh_tabs li a.delete_my_app {
748
+ margin-right:10px;
749
+ margin-top:5px;
750
+ }
751
+
752
+ ul.ssh_tabs li a#link {
753
+ color:#666666;
754
+ font-size:12px;
755
+ height:26px;
756
+ line-height:26px;
757
+ margin-right:10px;
758
+ padding:0 8px;
759
+ text-decoration:none;
760
+ }
761
+
762
+ ul.ssh_tabs li a#link:hover {
763
+ color:#003867;
764
+ }
765
+ /**********************************************/
766
+ /**********************************************/
767
+ #tabs {
768
+ display:inline;
769
+ font-size:12px;
770
+ font-weight:bold;
771
+ margin-left:-4px;
772
+ padding:0;
773
+ position:absolute;
774
+ top:55px;
775
+ }
776
+
777
+ #tabs ul {
778
+ list-style-type:none;
779
+ }
780
+
781
+ #tabs li {
782
+ background:transparent url(../images/home_tab_right.png) no-repeat scroll right top;
783
+ float:left;
784
+ margin-left:3px;
785
+ _margin-left:5px;
786
+ _width: 80px;
787
+ }
788
+
789
+ #tabs a {
790
+ background:transparent url(../images/home_tab_left.png) no-repeat scroll left top;
791
+ color:#fff;
792
+ display:block;
793
+ font-size:13px;
794
+ font-weight:bold;
795
+ height:13px;
796
+ padding:13px 26px;
797
+ text-decoration:none;
798
+ }
799
+
800
+ #tabs a:hover {
801
+ color:#fff;
802
+ text-decoration:underline;
803
+ }
804
+
805
+ #tabs #current {
806
+ background-image:url(../images/home_tab_right_on.png);
807
+ color:#353535;
808
+ }
809
+
810
+ #tabs #current a {
811
+ background-image:url(../images/home_tab_left_on.png);
812
+ color:#353535;
813
+ }
814
+ /**********************************************/
815
+ /**********************************************/
816
+ #top-bar_public{
817
+ border-bottom:2px solid #EAE9E4;
818
+ height:50px;
819
+ margin:5px 0;
820
+ padding:0;
821
+ width:100%;
822
+ }
823
+
824
+ #top-bar_not_public{
825
+ height:40px;
826
+ margin:14px 0;
827
+ padding:0;
828
+ width:100%;
829
+ }
830
+ #top-bar_not_public h1 {
831
+ color:#003867;
832
+ display:table-header-group;
833
+ float:left;
834
+ font-size:23px;
835
+ font-weight:bold;
836
+ margin-left:10px;
837
+ margin-top:4px;
838
+ text-shadow:1px 1px 0 #DEDEDE;
839
+ }
840
+
841
+ #top-bar {
842
+ border-bottom:2px solid #EAE9E4;
843
+ height:22px;
844
+ margin:0 0 10px;
845
+ padding:10px 0 5px;
846
+ width:100%;
847
+ }
848
+ #top-bar_public h1 {
849
+ color:#003867;
850
+ display:inline-block;
851
+ float:left;
852
+ font-size:23px;
853
+ font-weight:bold;
854
+ margin-left:10px;
855
+ margin-top:-16px;
856
+ text-shadow:1px 1px 0 #DEDEDE;
857
+ }
858
+ #top-bar_public img{
859
+ vertical-align:text-top;
860
+ }
861
+ #top-bar h1 {
862
+ color:#003867;
863
+ font-size:15px;
864
+ font-weight:bold;
865
+ padding:0 0 0 10px;
866
+ }
867
+ #top-bar img{
868
+ vertical-align:text-top;
869
+ }
870
+ /**********************************************/
871
+ /**********************************************/
872
+ #menu {
873
+ color:#CCCCCC;
874
+ float:right;
875
+ font-size:12px;
876
+ padding:0;
877
+ position:relative;
878
+ top:-19px;
879
+ }
880
+ #menu ul {
881
+ background-repeat:no-repeat;
882
+ color:#FFFFFF;
883
+ margin:27px 0 0;
884
+ padding:0;
885
+ }
886
+ #menu ul li {
887
+ display:inline;
888
+ padding:0;
889
+ }
890
+ #menu ul li.separator{
891
+ position:relative;
892
+ top:9px;
893
+ }
894
+ #menu ul li a {
895
+ height:24px;
896
+ margin:0 auto;
897
+ padding-left:12px;
898
+ padding-right:12px;
899
+ text-align:center;
900
+ text-shadow:1px 1px 0 #000000;
901
+ }
902
+ #menu ul li a.logout {
903
+ color:#FFFFFF;
904
+ }
905
+ #menu ul li a.logout:hover{
906
+ -moz-border-radius:0px;
907
+ -webkit-border-radius:0px;
908
+ color:#c0c0c0;
909
+ text-decoration:none;
910
+ background:none;
911
+ }
912
+ #menu a:link, #menu a:visited, #menu a:active {
913
+ color:#CCCCCC;
914
+ font-weight:bold;
915
+ text-decoration:none;
916
+ }
917
+ #menu a:hover {
918
+ -moz-border-radius:5px 5px 5px 5px;
919
+ -webkit-border-radius:5px;
920
+ background:none repeat scroll 0 0 rgba(255, 255, 255, 0.15);
921
+ color:#FFFFFF;
922
+ padding:5px 12px;
923
+ text-decoration:none;
924
+ }
925
+ /**********************************************/
926
+ /**********************************************/
927
+ #left {
928
+ float:left;
929
+ width:700px;
930
+ height: 500px;
931
+ }
932
+
933
+ #content_public{
934
+ overflow:hidden;
935
+ padding:0;
936
+ }
937
+
938
+ #content {
939
+ overflow:hidden;
940
+ padding:0 0 115px;
941
+ }
942
+
943
+ #content_public h2.app_title, #content h2.app_title {
944
+ background:none repeat scroll 0 0 #DFDFDF;
945
+ border-bottom:3px solid #EAE9E4;
946
+ color:#003867;
947
+ margin-top:0;
948
+ padding:7px;
949
+ }
950
+
951
+ #content_public h2, #content h2 {
952
+
953
+ font-weight:bold;
954
+ }
955
+
956
+ #content_public h3 a, #content h3 a{
957
+ color: #000000;
958
+ text-decoration:none;
959
+ }
960
+
961
+ #content_public h3 a:hover, #content h3 a:hover{
962
+ text-decoration:underline;
963
+ }
964
+
965
+ /**********************************************/
966
+ /**********************************************/
967
+ .spin{
968
+ float:right;
969
+ margin-right:10px;
970
+ margin-top:10px;
971
+ }
972
+
973
+ .spin_app{
974
+ float:right;
975
+ margin-right:5px;
976
+ }
977
+
978
+
979
+ .save_changes:hover{
980
+ background-position:left bottom;
981
+ }
982
+ .save_changes {
983
+ background:url("../images/save_changes.png") no-repeat scroll left top transparent;
984
+ border:medium none;
985
+ cursor:pointer;
986
+ display:block;
987
+ height:31px;
988
+ margin-bottom:5px;
989
+ margin-top:15px;
990
+ width:173px;
991
+ }
992
+ #add_public_key:hover{
993
+ background-position:left bottom;
994
+ }
995
+ #add_public_key {
996
+ background:url("../images/add_public_key.png") no-repeat scroll left top transparent;
997
+ border:medium none;
998
+ cursor:pointer;
999
+ display:block;
1000
+ height:31px;
1001
+ margin-bottom:5px;
1002
+ margin-top:5px;
1003
+ width:173px;
1004
+ }
1005
+
1006
+ .create_app:hover{
1007
+ background-position:left bottom;
1008
+ }
1009
+ .create_app {
1010
+ background:url("../images/create_app.png") no-repeat scroll left top transparent;
1011
+ border:medium none;
1012
+ cursor:pointer;
1013
+ display:block;
1014
+ height:31px;
1015
+ margin-bottom:5px;
1016
+ margin-top:5px;
1017
+ width:173px;
1018
+ }
1019
+ #build_app:hover{
1020
+ background-position:left bottom;
1021
+ }
1022
+ #build_app {
1023
+ background:url("../images/build_app.png") no-repeat scroll left top transparent;
1024
+ border:medium none;
1025
+ cursor:pointer;
1026
+ display:block;
1027
+ float:right;
1028
+ height:20px;
1029
+ margin-right:8px;
1030
+ margin-top:-3px;
1031
+ width:62px;
1032
+ }
1033
+ #deploy_app:hover{
1034
+ background-position:left bottom;
1035
+ }
1036
+ #deploy_app {
1037
+ background:url("../images/deploy_app.png") no-repeat scroll left top transparent;
1038
+ border:medium none;
1039
+ cursor:pointer;
1040
+ display:block;
1041
+ float:right;
1042
+ height:20px;
1043
+ margin-right:8px;
1044
+ margin-top:-3px;
1045
+ width:62px;
1046
+ }
1047
+
1048
+
1049
+ #heroku_log:hover{
1050
+ background-position:left bottom;
1051
+ }
1052
+ #heroku_log {
1053
+ background:url("../images/heroku_logs.png") no-repeat scroll left top transparent;
1054
+ border:medium none;
1055
+ cursor:pointer;
1056
+ display:block;
1057
+ float:right;
1058
+ height:20px;
1059
+ margin-right:8px;
1060
+ margin-top:-3px;
1061
+ width:93px;
1062
+ }
1063
+ .copy_git_url:hover{
1064
+ background-position:left bottom;
1065
+ }
1066
+ .copy_git_url{
1067
+ background:url("../images/copy_git_url.png") no-repeat scroll left top transparent;
1068
+ display:inline-block;
1069
+ height:16px;
1070
+ vertical-align:middle;
1071
+ width:17px;
1072
+ }
1073
+ #create_new_app:hover{
1074
+ background-position:left bottom;
1075
+ }
1076
+ #create_new_app{
1077
+ background:url("../images/create_new_app.png") no-repeat scroll left top transparent;
1078
+ display:inline-block;
1079
+ height:31px;
1080
+ margin-bottom:18px;
1081
+ width:173px;
1082
+ }
1083
+
1084
+ .loading{
1085
+ background:none repeat scroll 0 0 #DEDEDE;
1086
+ color:#003867;
1087
+ font-size:10px;
1088
+ font-weight:bold;
1089
+ opacity:1;
1090
+ padding:6px;
1091
+ width:442px;
1092
+ z-index:80;
1093
+ }
1094
+ .loading img{
1095
+ position:relative;
1096
+ top:3px;
1097
+ }
1098
+ .app_icons{
1099
+ float:left;
1100
+ margin-right:2px;
1101
+ width:32px;
1102
+ }
1103
+ .app_parent{
1104
+ float:left;
1105
+ position:relative;
1106
+ }
1107
+ .app_cover{
1108
+ background:none repeat scroll 0 0 black;
1109
+ height:100%;
1110
+ left:0;
1111
+ margin:0;
1112
+ opacity:0.2;
1113
+ position:absolute;
1114
+ top:0;
1115
+ width:454px;
1116
+ z-index:40;
1117
+ }
1118
+ .border_image{
1119
+ background:url("../images/corner_star.png") repeat scroll 0 0 transparent;
1120
+ height:111px;
1121
+ position:absolute;
1122
+ right:-10px;
1123
+ top:-10px;
1124
+ width:115px;
1125
+ }
1126
+ .my_apps_blank_other {
1127
+ background:none repeat scroll 0 0 #F0F0F0;
1128
+ border:10px solid #E5E5E5;
1129
+ margin-bottom:20px;
1130
+ padding:25px;
1131
+ position:relative;
1132
+ -moz-border-radius:6px;
1133
+ -webkit-border-radius:6px;
1134
+ }
1135
+
1136
+ .my_apps_blank {
1137
+ overflow:hidden;
1138
+ padding:25px;
1139
+ background:#F0F0F0;
1140
+ border:1px solid #E5E5E5;
1141
+ -moz-border-radius:6px;
1142
+ -webkit-border-radius:6px;
1143
+ margin-bottom:20px;
1144
+ }
1145
+ .my_apps_blank_other h2{
1146
+ margin-bottom:8px;
1147
+ margin-top:15px;
1148
+ }
1149
+ .my_apps_blank_other h1, .my_apps_blank h1{
1150
+ color:#003867;
1151
+ display:table-header-group;
1152
+ font-size:23px;
1153
+ font-weight:bold;
1154
+ text-shadow:1px 1px 0 #DEDEDE;
1155
+ }
1156
+
1157
+ .my_apps_blank_other p, .my_apps_blank p{
1158
+ font-size:13px;
1159
+ line-height:20px;
1160
+ margin-top:5px;
1161
+ }
1162
+ .my_apps {
1163
+ background:none repeat scroll 0 0 #F9F9F9;
1164
+ border-bottom:2px solid #DEDEDE;
1165
+ margin-bottom:20px;
1166
+ overflow:hidden;
1167
+ padding:15px 5px 10px;
1168
+ }
1169
+
1170
+
1171
+
1172
+ .my_apps_left {
1173
+ float:left;
1174
+ width:655px;
1175
+ }
1176
+
1177
+ .ssh_public_active{
1178
+ background:url("../images/ssh_buton_back.png") repeat scroll left top transparent;
1179
+ border:1px solid #BBBBBB;
1180
+ color:#FFEFFE;
1181
+ font-size:11px;
1182
+ font-weight:bold;
1183
+ margin-right:-5px;
1184
+ padding:3px 10px;
1185
+ text-decoration:none;
1186
+ text-shadow:1px 1px 0 #111111;
1187
+ }
1188
+
1189
+ .ssh_public{
1190
+ background:none repeat scroll 0 0 #DDDDDD;
1191
+ border:1px solid #BBBBBB;
1192
+ color:#000000;
1193
+ font-size:11px;
1194
+ font-weight:bold;
1195
+ margin-right:-5px;
1196
+ padding:3px 10px;
1197
+ text-decoration:none;
1198
+ text-shadow:1px 1px 0 #FFFFFF;
1199
+ }
1200
+ .ssh_public:hover{
1201
+ background:url("../images/ssh_buton_back.png") repeat scroll left top transparent;
1202
+ color:#FFEFFE;
1203
+ text-shadow:1px 1px 0 #111111;
1204
+ }
1205
+
1206
+ .my_apps_left .app_title{
1207
+ float:left;
1208
+ font-size:16px;
1209
+ font-weight:bold;
1210
+ margin-top:0;
1211
+ }
1212
+
1213
+ .my_apps_left h3{
1214
+ display:inline;
1215
+ font-size:16px;
1216
+ }
1217
+
1218
+ .my_apps_left .app_title small{
1219
+ color:#888888;
1220
+ font-size:11px;
1221
+ }
1222
+
1223
+ .my_apps_left p {
1224
+ font-size:12px;
1225
+ margin-bottom:15px;
1226
+ margin-top:5px;
1227
+ }
1228
+
1229
+
1230
+ .my_apps_right {
1231
+ float:right;
1232
+ font-size:14px;
1233
+ }
1234
+
1235
+ .my_apps_right p{
1236
+ }
1237
+
1238
+ .collaborators{
1239
+ color:#003867;
1240
+ font-size:13px;
1241
+ margin-bottom:10px;
1242
+ margin-top:12px;
1243
+ overflow:hidden;
1244
+ }
1245
+
1246
+ .collaborators .gravatar_small{
1247
+ border:medium none;
1248
+ height:25px;
1249
+ margin-bottom:10px;
1250
+ width:25px;
1251
+ }
1252
+
1253
+ .collaborators .collaborator_box{
1254
+ margin-top:5px;
1255
+ }
1256
+
1257
+ hr {
1258
+ border:1px solid #EAE9E4;
1259
+ clear:both;
1260
+ color:#EAE9E4;
1261
+ height:1px;
1262
+ margin-top:20px;
1263
+ width:100%;
1264
+ }
1265
+ .create_build:hover{
1266
+ background-position:left bottom;
1267
+ }
1268
+ .create_build{
1269
+ background:url("../images/create_build.png") no-repeat scroll left top transparent;
1270
+ border:medium none;
1271
+ cursor:pointer;
1272
+ display:block;
1273
+ height:24px;
1274
+ margin-bottom:10px;
1275
+ margin-top:-10px;
1276
+ width:148px;
1277
+ }
1278
+ #downgrade_plan:hover{
1279
+ background-position:left bottom;
1280
+ }
1281
+ #downgrade_plan{
1282
+ background:url("../images/downgrade_plan.png") no-repeat scroll left top transparent;
1283
+ border:medium none;
1284
+ cursor:pointer;
1285
+ display:inline-block;
1286
+ height:24px;
1287
+ width:100px;
1288
+ }
1289
+ #upgrade_plan:hover{
1290
+ background-position:left bottom;
1291
+ }
1292
+ #upgrade_plan{
1293
+ background:url("../images/upgrade_plan.png") no-repeat scroll left top transparent;
1294
+ border:medium none;
1295
+ cursor:pointer;
1296
+ display:inline-block;
1297
+ height:24px;
1298
+ width:100px;
1299
+ }
1300
+ .add_new_collaborator{
1301
+ background:url("../images/add_new_collaborator.png") no-repeat scroll left top transparent;
1302
+ border:medium none;
1303
+ cursor:pointer;
1304
+ display:block;
1305
+ height:24px;
1306
+ margin-bottom:5px;
1307
+ margin-top:-10px;
1308
+ width:148px;
1309
+ }
1310
+
1311
+ .add_new_collaborator:hover{
1312
+ background-position:left bottom;
1313
+ }
1314
+ #add_collaborator:hover{
1315
+ background-position:left bottom;
1316
+ }
1317
+ #add_collaborator{
1318
+ background:url("../images/add_collaborator.png") no-repeat scroll left top transparent;
1319
+ display:block;
1320
+ height:24px;
1321
+ margin-bottom:5px;
1322
+ width:148px;
1323
+ }
1324
+
1325
+ #empty_edit_my_app{
1326
+ display:block;
1327
+ float:right;
1328
+ height:14px;
1329
+ width:15px;
1330
+ }
1331
+ #empty_delete_my_app{
1332
+ display:block;
1333
+ float:right;
1334
+ height:14px;
1335
+ margin-left:5px;
1336
+ margin-right:5px;
1337
+ width:14px;
1338
+ }
1339
+
1340
+
1341
+ #edit_my_app:hover{
1342
+ background-position:left bottom;
1343
+ }
1344
+ #edit_my_app{
1345
+ background:url("../images/app_edit.png") no-repeat scroll left top transparent;
1346
+ display:block;
1347
+ float:right;
1348
+ height:14px;
1349
+ width:15px;
1350
+ }
1351
+
1352
+ .edit_my_app:hover{
1353
+ background-position:left bottom;
1354
+ }
1355
+ .edit_my_app{
1356
+ background:url("../images/app_edit.png") no-repeat scroll left top transparent;
1357
+ display:block;
1358
+ float:right;
1359
+ height:14px;
1360
+ width:15px;
1361
+ }
1362
+ .delete_my_app:hover{
1363
+ background-position:left bottom;
1364
+ }
1365
+ .delete_my_app{
1366
+ background:url("../images/app_delete.png") no-repeat scroll left top transparent;
1367
+ display:block;
1368
+ cursor:pointer;
1369
+ float:right;
1370
+ height:14px;
1371
+ margin-left:5px;
1372
+ margin-right:5px;
1373
+ width:14px;
1374
+ }
1375
+
1376
+ .download_small:hover{
1377
+ background-position:left bottom;
1378
+ }
1379
+ .download_small{
1380
+ background:url("../images/download_build_small.png") no-repeat scroll left top transparent;
1381
+ cursor:pointer;
1382
+ display:block;
1383
+ font-size:14px;
1384
+ height:22px;
1385
+ margin-bottom:10px;
1386
+ margin-top:10px;
1387
+ padding-left:23px;
1388
+ padding-top:0;
1389
+ vertical-align:middle;
1390
+ }
1391
+
1392
+ .empty_delete_my_app{
1393
+ display:block;
1394
+ float:right;
1395
+ height:14px;
1396
+ margin-left:35px;
1397
+ margin-right:5px;
1398
+ width:14px;
1399
+ }
1400
+
1401
+ #success_dashboard{
1402
+ background-color:#E8FFCE;
1403
+ border:1px solid #339966;
1404
+ color:#339900;
1405
+ float:left;
1406
+ font-size:11px;
1407
+ font-weight:bold;
1408
+ padding:6px;
1409
+ position:fixed;
1410
+ text-align:center;
1411
+ width:408px;
1412
+ z-index:1000;
1413
+ left:0;
1414
+ margin:auto;
1415
+ right:0;
1416
+ top:20px;
1417
+ }
1418
+ #error_dashboard, .failure_dashboard{
1419
+ background-color:#FFA3A3;
1420
+ border:1px solid #FF0000;
1421
+ color:#990000;
1422
+ float:left;
1423
+ font-size:11px;
1424
+ font-weight:bold;
1425
+ padding:6px;
1426
+ position:fixed;
1427
+ text-align:center;
1428
+ width:408px;
1429
+ z-index:1000;
1430
+ left:0;
1431
+ margin:auto;
1432
+ right:0;
1433
+ top:20px;
1434
+ }
1435
+ #success, .success{
1436
+ background-color:#E8FFCE;
1437
+ border:1px solid #339966;
1438
+ color:#339900;
1439
+ float:left;
1440
+ font-size:11px;
1441
+ font-weight:bold;
1442
+ margin-left:150px;
1443
+ margin-top:15px;
1444
+ padding:6px;
1445
+ text-align:center;
1446
+ width:408px;
1447
+ position:fixed;
1448
+ z-index:1000;
1449
+ left:0;
1450
+ margin:auto;
1451
+ right:0;
1452
+ top:20px;
1453
+ }
1454
+
1455
+ #error, .error, .failure{
1456
+ background-color:#FFA3A3;
1457
+ border:1px solid #FF0000;
1458
+ color:#990000;
1459
+ float:left;
1460
+ font-size:11px;
1461
+ font-weight:bold;
1462
+ margin-left:150px;
1463
+ margin-top:15px;
1464
+ padding:6px;
1465
+ text-align:center;
1466
+ width:408px;
1467
+ position:fixed;
1468
+ z-index:1000;
1469
+ left:0;
1470
+ margin:auto;
1471
+ right:0;
1472
+ top:20px;
1473
+ }
1474
+ #modal_error{
1475
+ background-color:#FFA3A3;
1476
+ border:1px solid #FF0000;
1477
+ color:#990000;
1478
+ font-size:11px;
1479
+ font-weight:bold;
1480
+ left:0;
1481
+ margin:auto;
1482
+ padding:5px;
1483
+ position:absolute;
1484
+ right:0;
1485
+ text-align:center;
1486
+ top:-40px;
1487
+ width:400px;
1488
+ }
1489
+
1490
+ #modal_success{
1491
+ background-color:#E8FFCE;
1492
+ border:1px solid #339966;
1493
+ color:#339900;
1494
+ font-size:11px;
1495
+ font-weight:bold;
1496
+ left:0;
1497
+ margin:auto;
1498
+ padding:5px;
1499
+ position:absolute;
1500
+ right:0;
1501
+ text-align:center;
1502
+ top:-40px;
1503
+ width:400px;
1504
+ }
1505
+
1506
+ /**********************************************/
1507
+ /**********************************************/
1508
+
1509
+ .boxes {
1510
+ -moz-border-radius:6px;
1511
+ -webkit-border-radius:6px;
1512
+ background-color:#F9F9F7;
1513
+ border:1px solid #DEDEDE;
1514
+ border-collapse:collapse;
1515
+ color:#454555;
1516
+ /* line-height:3px;*/
1517
+ margin-top:10px;
1518
+ overflow-x:hidden;
1519
+ overflow-y:auto;
1520
+ max-height: 350px;
1521
+ padding:15px;
1522
+ width:670px;
1523
+ }
1524
+ .gravatar_bio_profile{
1525
+ border:medium none;
1526
+ height:45px;
1527
+ width:45px;
1528
+ }
1529
+ .gravatar_bio{
1530
+ border:medium none;
1531
+ height:36px;
1532
+ width:36px;
1533
+ }
1534
+ .boxes h3{
1535
+ font-size:18px;
1536
+ margin-bottom:10px;
1537
+ margin-top:10px;
1538
+ }
1539
+ .boxes h3 span.username{
1540
+ color:#003867;
1541
+ font-size:23px;
1542
+ text-shadow:1px 1px 0 #FFFFFF;
1543
+ }
1544
+ .boxes .reg_select{
1545
+ border:1px solid #CCCCCC;
1546
+ color:#454555;
1547
+ display:block;
1548
+ font-size:12px;
1549
+ height:28px;
1550
+ padding:5px 5px 5px 3px;
1551
+ width:98%;
1552
+ }
1553
+
1554
+ .boxes p {
1555
+ font-size:13px;
1556
+ font-weight:100;
1557
+ line-height:20px;
1558
+ margin-bottom:10px;
1559
+ }
1560
+ .boxes p.subtitle {
1561
+ margin-bottom:30px;
1562
+ margin-top:20px;
1563
+ }
1564
+ .boxes textarea.public_key{
1565
+ border:1px solid #CCCCCC;
1566
+ color:#454555;
1567
+ font-size:12px;
1568
+ height:115px;
1569
+ padding:5px;
1570
+ width:96%;
1571
+ }
1572
+
1573
+ .boxes div.left
1574
+ {
1575
+ float:left;
1576
+ margin-right:10px;
1577
+ width:48%;
1578
+ }
1579
+
1580
+ .boxes label {
1581
+ font-size:12px;
1582
+ font-weight:bold;
1583
+ text-align:left;
1584
+ }
1585
+
1586
+ .input_search {
1587
+ border:1px solid #CCCCCC;
1588
+ color:#454555;
1589
+ display:block;
1590
+ font-size:13px;
1591
+ height:21px;
1592
+ margin-bottom:11px;
1593
+ padding-left:5px;
1594
+ width:96%;
1595
+ }
1596
+
1597
+ .input {
1598
+ border:1px solid #CCCCCC;
1599
+ color:#454555;
1600
+ display:block;
1601
+ font-size:13px;
1602
+ height:28px;
1603
+ margin-bottom:20px;
1604
+ margin-top:10px;
1605
+ padding-left:5px;
1606
+ width:96%;
1607
+ }
1608
+
1609
+ .input-short {
1610
+ border:1px solid #CCCCCC;
1611
+ color:#454555;
1612
+ display:block;
1613
+ height:28px;
1614
+ padding-left:5px;
1615
+ width:40%;
1616
+ font-size:13px;
1617
+ }
1618
+
1619
+ .textarea {
1620
+ border:1px solid #CCCCCC;
1621
+ color:#454555;
1622
+ display:block;
1623
+ font-size:13px;
1624
+ height:100px;
1625
+ margin-bottom:20px;
1626
+ margin-top:10px;
1627
+ padding:5px;
1628
+ width:95%;
1629
+ }
1630
+
1631
+ .textarea-handle2 {
1632
+ height: 7px;
1633
+ display: block;
1634
+ width:30px;
1635
+ background: #C5C5C5;
1636
+ background-image: url('http://www.mollerus.net/images/grab-handle.gif');
1637
+ background-repeat: no-repeat;
1638
+ background-position: 50% 50%;
1639
+ }
1640
+ /**********************************************/
1641
+ /**********************************************/
1642
+ #right-box{
1643
+ background-color:#FFFFFF;
1644
+ color:#454555;
1645
+ display:inline;
1646
+ float:right;
1647
+ font-size:14px;
1648
+ font-weight:bold;
1649
+ margin-top:22px;
1650
+ width:240px;
1651
+ }
1652
+ .small_bio{
1653
+
1654
+ }
1655
+ .rhohub_account{
1656
+ background:none repeat scroll 0 0 #F9F9F9;
1657
+ border-top:1px solid #EEEEEE;
1658
+ font-size:11px;
1659
+ margin-top:20px;
1660
+ padding:12px;
1661
+ }
1662
+ #red_link{
1663
+ color:#AE0302;
1664
+ font-weight:bold;
1665
+ text-decoration:none;
1666
+ }
1667
+ #red_link:hover{
1668
+ color:#AE0302;
1669
+ font-weight:bold;
1670
+ text-decoration:underline;
1671
+ }
1672
+ a#red_link, a.red_link{
1673
+ color:#AE0302;
1674
+ font-weight:bold;
1675
+ text-decoration:none;
1676
+ }
1677
+ a.red_link:hover{
1678
+ color:#AE0302;
1679
+ font-weight:bold;
1680
+ text-decoration:underline;
1681
+ }
1682
+ #right-box a.red_link{
1683
+ color:#AE0302;
1684
+ font-weight:bold;
1685
+ }
1686
+ #right-box span.box_username{
1687
+ color:#003867;
1688
+ display:inline-block;
1689
+ font-size:16px;
1690
+ margin-bottom:5px;
1691
+ margin-top:-4px;
1692
+ }
1693
+ #right-box small.title_desc{
1694
+ color:#888888;
1695
+ display:inline-block;
1696
+ margin-top:15px;
1697
+ }
1698
+ #right-box small.bio{
1699
+ display:inline-block;
1700
+ margin-top:15px;
1701
+ }
1702
+ #right-box a{
1703
+ color:#454555;
1704
+ text-decoration:none;
1705
+ }
1706
+ #right-box a:hover{
1707
+ text-decoration:underline;
1708
+ }
1709
+ #right-box h2{
1710
+ font-size: 110%;
1711
+ margin-bottom: 10px;
1712
+
1713
+ }
1714
+ .right-table{
1715
+ background-color:#F9F9F7;
1716
+ width:100%;
1717
+ border: 4px solid #F9F9F7;
1718
+ border-collapse: collapse;
1719
+ font-size:12px;
1720
+ padding:12px 2px;
1721
+ font-weight:100;
1722
+ }
1723
+
1724
+ .right-table td{
1725
+ padding-left:10px;
1726
+ }
1727
+ .right-table td.right_alignment{
1728
+ text-align:right;
1729
+ padding-right: 10px;
1730
+ }
1731
+ .right_alignment_small{
1732
+ text-align:right;
1733
+ padding-right: 10px;
1734
+ font-size:11px;
1735
+ }
1736
+ .right-table tr{
1737
+ height:30px;
1738
+ }
1739
+ .right-table td.green{
1740
+ color:#78C042;
1741
+ text-align:right;
1742
+ padding-right: 10px;
1743
+ }
1744
+ .right-table td.follow{
1745
+ font-weight:bold;
1746
+ padding-left:0;
1747
+ }
1748
+ .right-table td.follow_right{
1749
+ font-size:11px;
1750
+ font-weight:normal;
1751
+ text-align:right;
1752
+ }
1753
+ .right-table td.right{
1754
+ font-weight:bold;
1755
+ }
1756
+ .right-table tr.follow{
1757
+ font-weight:bold;
1758
+ padding-left:0;
1759
+ }
1760
+ .right-table tr.follow_white{
1761
+ font-weight:bold;
1762
+ background-color:#FFFFFF;
1763
+ padding-left:0;
1764
+ }
1765
+ .right-table tr.white{
1766
+ background-color:#FFFFFF;
1767
+ }
1768
+
1769
+ #right-box li.white{
1770
+ background-color:#FFFFFF;
1771
+ }
1772
+
1773
+ #right-box_links{
1774
+ background-color:transparent;
1775
+ color:#454555;
1776
+ display:inline;
1777
+ float:right;
1778
+ font-size:15px;
1779
+ font-weight:bold;
1780
+ width:190px;
1781
+ }
1782
+ ul.right-box_links {
1783
+ margin-right:2px;
1784
+ padding-top: 5px;
1785
+ }
1786
+ ul.right-box_links li {
1787
+ list-style-type:none;
1788
+ margin:5px 0;
1789
+ }
1790
+ ul.right-box_links li a {
1791
+ background:#F9F9F7;
1792
+ -moz-border-radius:4px;
1793
+ -webkit-border-radius:4px;
1794
+ border:1px solid #DEDEDE;
1795
+ color:#666666;
1796
+ display:block;
1797
+ font-size:13px;
1798
+ padding:8px 15px 7px;
1799
+ text-decoration:none;
1800
+ }
1801
+ ul.right-box_links li a:hover {
1802
+ background:none repeat scroll 0 0 #F1F1F1;
1803
+ }
1804
+ ul.right-box_links li a.selected {
1805
+ background:none repeat scroll 0 0 #E3E3E3;
1806
+ border:1px solid #DEDEDE;
1807
+ color:#003867;
1808
+ /*text-shadow:1px 1px 0 #FFFFFF;*/
1809
+ }
1810
+
1811
+ /**********************************************/
1812
+ /**********************************************/
1813
+ .errorExplanation {
1814
+ background-color:#FFFFC2;
1815
+ font-size:12px;
1816
+ margin-top:15px;
1817
+ padding-bottom:5px;
1818
+ padding-top:10px;
1819
+ width:97%;
1820
+ }
1821
+
1822
+ .errorExplanation p{
1823
+ font-size:12px;
1824
+ margin-bottom:0;
1825
+ padding-left:10px;
1826
+ padding-top:5px;
1827
+ }
1828
+
1829
+ .errorExplanation h2{
1830
+ padding-left:10px;
1831
+ font-size: 14px;
1832
+ }
1833
+
1834
+ .errorExplanation ul li{
1835
+ line-height:20px;
1836
+ margin-left:25px;
1837
+ }
1838
+ .fieldWithErrors{
1839
+
1840
+ }
1841
+ .fieldWithErrors label{
1842
+ font-size:12px;
1843
+ }
1844
+ .fieldWithErrors .input, .fieldWithErrors .textarea, .fieldWithErrors .input_subd{
1845
+ border:1px solid #FF0000;
1846
+ margin-bottom:5px;
1847
+ margin-top:-17px;
1848
+ }
1849
+ .fieldWithErrors .input, .fieldWithErrors .textarea, .fieldWithErrors .input_subd{
1850
+ border:1px solid #FF0000;
1851
+ margin-top:7px;
1852
+ }
1853
+ .formError {
1854
+ color:#FF0000;
1855
+ font-size:10px;
1856
+ font-weight:bold;
1857
+ margin-bottom:8px;
1858
+ margin-left:1px;
1859
+ margin-top:10px;
1860
+ }
1861
+ /*************************************************************************/
1862
+ /*************************************************************************/
1863
+ #account_table{
1864
+ border-collapse:collapse;
1865
+ margin:10px 0 20px;
1866
+ width:100%;
1867
+ }
1868
+ #account_table th{
1869
+ background:none repeat scroll 0 0 #DDDDDD;
1870
+ color:#000000;
1871
+ font-size:11px;
1872
+ font-weight:normal;
1873
+ height:35px;
1874
+ padding:10px;
1875
+ text-align:left;
1876
+ }
1877
+
1878
+ #account_table th.th_history{
1879
+ font-weight:bold;
1880
+ }
1881
+ #account_table tr{
1882
+ background:none repeat scroll 0 0 #FFFFFF;
1883
+ border-bottom:1px solid #DDDDDD;
1884
+ font-size:14px;
1885
+ font-weight:bold;
1886
+ }
1887
+ #account_table tr.history{
1888
+ background:none repeat scroll 0 0 #FFFFFF;
1889
+ border-bottom:1px solid #DDDDDD;
1890
+ font-size:11px;
1891
+ font-weight:lighter;
1892
+ }
1893
+ #account_table tr.light:hover, #account_table tr.dark:hover, #account_table tr:hover{
1894
+ background: #F5FFDF;
1895
+ }
1896
+
1897
+ #account_table tr.dark{
1898
+ background: #F9F9F9;
1899
+ }
1900
+ #account_table td{
1901
+ padding:10px;
1902
+ line-height:10px;
1903
+ }
1904
+ #account_table td.payment{
1905
+ padding:10px;
1906
+ line-height:10px;
1907
+ color:#8EC03D;
1908
+ font-weight:bold;
1909
+ }
1910
+ #account_table td.button{
1911
+ height:35px;
1912
+ padding:10px;
1913
+ }
1914
+ #account_table td.name{
1915
+ color:#003867;
1916
+ font-size:16px;
1917
+ }
1918
+ #account_table td.current{
1919
+ height:35px;
1920
+ text-align:center;
1921
+ }
1922
+
1923
+ /**********************************************/
1924
+ /**********************************************/
1925
+ #footer{
1926
+ background:none repeat scroll 0 0 #363736;
1927
+ bottom:0;
1928
+ height:80px;
1929
+ margin-top:15px;
1930
+ position:absolute;
1931
+ width:100%;
1932
+ }
1933
+ #footer a{
1934
+ color:#FFFFFF;
1935
+ }
1936
+ #footer .footer_content{
1937
+ width:962px;
1938
+ margin: 0 auto;
1939
+ }
1940
+ #footer .footer_content p{
1941
+ color:#FFFFFF;
1942
+ font-size:12px;
1943
+ margin-top:10px;
1944
+ }
1945
+ #footer .footer_content div{
1946
+ padding-top:15px;
1947
+ }
1948
+ #footer .footer_content .foot_left{
1949
+ float:left;
1950
+ }
1951
+ #footer .footer_content .foot_left a img{
1952
+ border:none;
1953
+ }
1954
+
1955
+ #footer .footer_content .foot_right{
1956
+ float:right;
1957
+ }
1958
+ .ul_footer{
1959
+ font-size:12px;
1960
+ list-style-type:none;
1961
+ margin-top:5px;
1962
+ padding-left:0;
1963
+ }
1964
+ .ul_footer li{
1965
+ color:#FFFFFF;
1966
+ display:inline;
1967
+ padding-right:5px;
1968
+ }
1969
+ .ul_footer li a{
1970
+ color:#FFFFFF;
1971
+ }
1972
+ .ul_footer li a:hover{
1973
+ text-decoration:none;
1974
+ }
1975
+ /* pricing
1976
+ ============================================================ */
1977
+ .table_pricing{
1978
+ overflow:hidden;
1979
+ }
1980
+ .ul-pricing{
1981
+ float:left;
1982
+ }
1983
+ .ul-pricing li{
1984
+ height:25px;
1985
+ list-style:none outside none;
1986
+ }
1987
+ .include{
1988
+ color:#666666;
1989
+ font-size:12px;
1990
+ font-weight:700;
1991
+ margin-left:190px;
1992
+ margin-top:20px;
1993
+ text-align:left;
1994
+ }
1995
+ .include span{
1996
+ color:red;
1997
+ }
1998
+ table.pricing_table{
1999
+ border-collapse:collapse;
2000
+ float:left;
2001
+ margin:0 auto;
2002
+ }
2003
+
2004
+ /*** Table head styles *****/
2005
+
2006
+ table.pricing_table thead{
2007
+ height:77px;
2008
+ }
2009
+ table.pricing_table thead tr{
2010
+ height:77px;
2011
+ }
2012
+ table.pricing_table thead tr th{
2013
+ color:#FFFFFF;
2014
+ font-size:17px;
2015
+ text-shadow:0 1px 1px #000000;
2016
+ }
2017
+ table.pricing_table thead tr th.empty{
2018
+ padding-left:0;
2019
+ width:195px;
2020
+ }
2021
+ table.pricing_table thead tr th.left_border{
2022
+ background:url("../images/bg/left_round.png") no-repeat scroll 0 0 transparent;
2023
+ text-align:center;
2024
+ width:145px;
2025
+ }
2026
+ table.pricing_table thead tr th.head_bg{
2027
+ background:url("../images/bg/head_bg.png") no-repeat scroll 0 0 transparent;
2028
+ text-align:center;
2029
+ width:125px;
2030
+ }
2031
+ table.pricing_table thead tr th.right_border{
2032
+ background:url("../images/bg/right_round.png") no-repeat scroll 0 0 transparent;
2033
+ width:145px;
2034
+ }
2035
+ table.pricing_table thead tr th .plan,
2036
+ table.pricing_table thead tr th .price,
2037
+ table.pricing_table thead tr th .month{
2038
+
2039
+ }
2040
+ table.pricing_table thead tr th .plan{
2041
+ display:block;
2042
+ font-size:18px;
2043
+ font-weight:700;
2044
+ margin-bottom:20px;
2045
+ }
2046
+ table.pricing_table thead tr th .plan.free{
2047
+ display:inline;
2048
+ font-size:17px;
2049
+
2050
+ }
2051
+ table.pricing_table thead tr th .price{
2052
+ font-size:17px;
2053
+ font-weight:700;
2054
+ }
2055
+ table.pricing_table thead tr th .month{
2056
+ color:#AEAEAE;
2057
+ font-size:9px;
2058
+ margin-top:6px;
2059
+ position:relative;
2060
+ top:-8px;
2061
+ }
2062
+
2063
+ /*** Table body styles *****/
2064
+ table.pricing_table tbody{
2065
+
2066
+ }
2067
+ table.pricing_table tbody{
2068
+
2069
+ }
2070
+ table.pricing_table tbody tr{
2071
+ height:30px;
2072
+ }
2073
+
2074
+ table.pricing_table tbody tr td{
2075
+ background:none repeat scroll 0 0 #FFFFFF;
2076
+ border-bottom:1px solid #DFDFDF;
2077
+ border-left:1px solid #DFDFDF;
2078
+ border-right:1px solid #DFDFDF;
2079
+ color:#666666;
2080
+ font-size:12px;
2081
+ font-weight:700;
2082
+ text-align:center;
2083
+ }
2084
+ table.pricing_table tbody tr td.button{
2085
+ border-bottom:medium none;
2086
+ border-left:1px solid #DFDFDF;
2087
+ height:70px;
2088
+ }
2089
+ table.pricing_table tbody tr td.button_selected{
2090
+ background:none repeat scroll 0 0 #F5FFDF;
2091
+ border-bottom:medium none;
2092
+ border-left:1px solid #DFDFDF;
2093
+ font-size:14px;
2094
+ font-weight:bold;
2095
+ height:70px;
2096
+ }
2097
+ table.pricing_table tbody tr.last{
2098
+ height: 70px;
2099
+ }
2100
+ table.pricing_table tbody tr.last td{
2101
+ border-left: none;
2102
+ border-bottom: none;
2103
+ }
2104
+
2105
+ table.pricing_table tbody tr td.feature{
2106
+ background:none repeat scroll 0 0 #E3E3E3;
2107
+ border-bottom:1px solid #BBBBBB;
2108
+ color:#333333;
2109
+ font-size:10px;
2110
+ font-weight:700;
2111
+ letter-spacing:0;
2112
+ padding-right:13px;
2113
+ text-align:right;
2114
+ }
2115
+ table.pricing_table tbody tr td.feature div{
2116
+ height:2px;
2117
+ position:relative;
2118
+ }
2119
+ table.pricing_table tbody tr td.feature span.live_apps{
2120
+ background:url("../images/misc/live_apps.png") no-repeat scroll 0 0 transparent;
2121
+ display:block;
2122
+ height:56px;
2123
+ left:0;
2124
+ position:absolute;
2125
+ top:-18px;
2126
+ width:57px;
2127
+ }
2128
+ table.pricing_table tbody tr td.feature span.free_apps{
2129
+ background:url("../images/misc/free_apps.png") no-repeat scroll 0 0 transparent;
2130
+ display:block;
2131
+ height:56px;
2132
+ left:0;
2133
+ position:absolute;
2134
+ top:-18px;
2135
+ width:57px;
2136
+ }
2137
+ table.pricing_table tbody tr.space{
2138
+
2139
+ }
2140
+ table.pricing_table tbody tr td.feature.empty_last{
2141
+ background:none repeat scroll 0 0 transparent;
2142
+ border-bottom:medium none;
2143
+ border-left:medium none;
2144
+ border-right:medium none;
2145
+ }
2146
+ table.pricing_table tbody tr td.feature.empty{
2147
+ background:none repeat scroll 0 0 transparent;
2148
+ border-left:medium none;
2149
+ }
2150
+ table.pricing_table tbody tr td.feature.empty_white{
2151
+ background:none repeat scroll 0 0 #FFFFFF;
2152
+ border-bottom:1px solid #DFDFDF;
2153
+ border-left:1px solid #DFDFDF;
2154
+ }
2155
+ table.pricing_table tbody tr td.feature.empty.last{
2156
+ height:30px;
2157
+ border-bottom:medium none;
2158
+ }
2159
+ table.pricing_table tbody tr td.gray_bg{
2160
+ background:#F5FFDF;
2161
+ }
2162
+
2163
+ #error_body{
2164
+ margin-top:80px;
2165
+ }
2166
+
2167
+ #error_body .erro_box{
2168
+ background:url("../images/dashboard/404.png") no-repeat scroll left top transparent;
2169
+ height:134px;
2170
+ margin:0 auto;
2171
+ width:956px;
2172
+ }
2173
+ #error_body .erro_box .error_text{
2174
+ float:right;
2175
+ margin-right:87px;
2176
+ }
2177
+ #error_body .erro_box .error_text h2{
2178
+ color:#838383;
2179
+ font-size:23px;
2180
+ margin-top:50px;
2181
+ }
2182
+ #error_body .erro_box .error_text p{
2183
+ color:#9D9D9D;
2184
+ font-size:15px;
2185
+ margin-top:6px;
2186
+ }
2187
+ #error_body .erro_box .error_link{
2188
+ color:#AE0302;
2189
+ display:inline-block;
2190
+ margin-top:14px;
2191
+ }
2192
+
2193
+ .code{
2194
+ background-color:#FDFDFD;
2195
+ border:1px solid #DEDEDE;
2196
+ color:#56566C;
2197
+ font-family:monospace;
2198
+ line-height:18px;
2199
+ margin-bottom:10px;
2200
+ padding:10px;
2201
+ }