hourglass 0.0.1-java

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (803) hide show
  1. data/.document +5 -0
  2. data/.rbenv-version +1 -0
  3. data/Gemfile +19 -0
  4. data/Gemfile.lock +59 -0
  5. data/Guardfile +6 -0
  6. data/LICENSE.txt +20 -0
  7. data/README.rdoc +19 -0
  8. data/Rakefile +111 -0
  9. data/VERSION +1 -0
  10. data/bin/hourglass +7 -0
  11. data/db/.gitignore +3 -0
  12. data/db/migrate/001_create_projects.rb +8 -0
  13. data/db/migrate/002_create_activity.rb +11 -0
  14. data/db/migrate/003_create_settings.rb +10 -0
  15. data/db/migrate/004_create_tags.rb +12 -0
  16. data/hourglass.gemspec +882 -0
  17. data/lib/hourglass.rb +74 -0
  18. data/lib/hourglass/activity.rb +286 -0
  19. data/lib/hourglass/application.rb +134 -0
  20. data/lib/hourglass/database.rb +25 -0
  21. data/lib/hourglass/project.rb +5 -0
  22. data/lib/hourglass/runner.rb +183 -0
  23. data/lib/hourglass/setting.rb +4 -0
  24. data/lib/hourglass/tag.rb +4 -0
  25. data/log/.gitignore +1 -0
  26. data/public/css/base/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
  27. data/public/css/base/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
  28. data/public/css/base/images/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
  29. data/public/css/base/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
  30. data/public/css/base/images/ui-bg_glass_75_dadada_1x400.png +0 -0
  31. data/public/css/base/images/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
  32. data/public/css/base/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
  33. data/public/css/base/images/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
  34. data/public/css/base/images/ui-icons_222222_256x240.png +0 -0
  35. data/public/css/base/images/ui-icons_2e83ff_256x240.png +0 -0
  36. data/public/css/base/images/ui-icons_454545_256x240.png +0 -0
  37. data/public/css/base/images/ui-icons_888888_256x240.png +0 -0
  38. data/public/css/base/images/ui-icons_cd0a0a_256x240.png +0 -0
  39. data/public/css/base/jquery-ui.css +563 -0
  40. data/public/css/base/jquery.ui.accordion.css +19 -0
  41. data/public/css/base/jquery.ui.all.css +11 -0
  42. data/public/css/base/jquery.ui.autocomplete.css +53 -0
  43. data/public/css/base/jquery.ui.base.css +21 -0
  44. data/public/css/base/jquery.ui.button.css +38 -0
  45. data/public/css/base/jquery.ui.core.css +38 -0
  46. data/public/css/base/jquery.ui.datepicker.css +68 -0
  47. data/public/css/base/jquery.ui.dialog.css +21 -0
  48. data/public/css/base/jquery.ui.progressbar.css +11 -0
  49. data/public/css/base/jquery.ui.resizable.css +20 -0
  50. data/public/css/base/jquery.ui.selectable.css +10 -0
  51. data/public/css/base/jquery.ui.slider.css +24 -0
  52. data/public/css/base/jquery.ui.tabs.css +18 -0
  53. data/public/css/base/jquery.ui.theme.css +247 -0
  54. data/public/css/base/minified/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
  55. data/public/css/base/minified/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
  56. data/public/css/base/minified/images/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
  57. data/public/css/base/minified/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
  58. data/public/css/base/minified/images/ui-bg_glass_75_dadada_1x400.png +0 -0
  59. data/public/css/base/minified/images/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
  60. data/public/css/base/minified/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
  61. data/public/css/base/minified/images/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
  62. data/public/css/base/minified/images/ui-icons_222222_256x240.png +0 -0
  63. data/public/css/base/minified/images/ui-icons_2e83ff_256x240.png +0 -0
  64. data/public/css/base/minified/images/ui-icons_454545_256x240.png +0 -0
  65. data/public/css/base/minified/images/ui-icons_888888_256x240.png +0 -0
  66. data/public/css/base/minified/images/ui-icons_cd0a0a_256x240.png +0 -0
  67. data/public/css/base/minified/jquery-ui.min.css +10 -0
  68. data/public/css/base/minified/jquery.ui.accordion.min.css +10 -0
  69. data/public/css/base/minified/jquery.ui.all.min.css +10 -0
  70. data/public/css/base/minified/jquery.ui.autocomplete.min.css +10 -0
  71. data/public/css/base/minified/jquery.ui.base.min.css +10 -0
  72. data/public/css/base/minified/jquery.ui.button.min.css +10 -0
  73. data/public/css/base/minified/jquery.ui.core.min.css +10 -0
  74. data/public/css/base/minified/jquery.ui.datepicker.min.css +10 -0
  75. data/public/css/base/minified/jquery.ui.dialog.min.css +10 -0
  76. data/public/css/base/minified/jquery.ui.progressbar.min.css +10 -0
  77. data/public/css/base/minified/jquery.ui.resizable.min.css +10 -0
  78. data/public/css/base/minified/jquery.ui.selectable.min.css +10 -0
  79. data/public/css/base/minified/jquery.ui.slider.min.css +10 -0
  80. data/public/css/base/minified/jquery.ui.tabs.min.css +10 -0
  81. data/public/css/base/minified/jquery.ui.theme.min.css +12 -0
  82. data/public/css/black-tie/images/ui-bg_diagonals-thick_8_333333_40x40.png +0 -0
  83. data/public/css/black-tie/images/ui-bg_flat_65_ffffff_40x100.png +0 -0
  84. data/public/css/black-tie/images/ui-bg_glass_40_111111_1x400.png +0 -0
  85. data/public/css/black-tie/images/ui-bg_glass_55_1c1c1c_1x400.png +0 -0
  86. data/public/css/black-tie/images/ui-bg_highlight-hard_100_f9f9f9_1x100.png +0 -0
  87. data/public/css/black-tie/images/ui-bg_highlight-hard_40_aaaaaa_1x100.png +0 -0
  88. data/public/css/black-tie/images/ui-bg_highlight-soft_50_aaaaaa_1x100.png +0 -0
  89. data/public/css/black-tie/images/ui-bg_inset-hard_45_cd0a0a_1x100.png +0 -0
  90. data/public/css/black-tie/images/ui-bg_inset-hard_55_ffeb80_1x100.png +0 -0
  91. data/public/css/black-tie/images/ui-icons_222222_256x240.png +0 -0
  92. data/public/css/black-tie/images/ui-icons_4ca300_256x240.png +0 -0
  93. data/public/css/black-tie/images/ui-icons_bbbbbb_256x240.png +0 -0
  94. data/public/css/black-tie/images/ui-icons_ededed_256x240.png +0 -0
  95. data/public/css/black-tie/images/ui-icons_ffcf29_256x240.png +0 -0
  96. data/public/css/black-tie/images/ui-icons_ffffff_256x240.png +0 -0
  97. data/public/css/black-tie/jquery-ui.css +565 -0
  98. data/public/css/black-tie/jquery.ui.accordion.css +19 -0
  99. data/public/css/black-tie/jquery.ui.all.css +11 -0
  100. data/public/css/black-tie/jquery.ui.autocomplete.css +53 -0
  101. data/public/css/black-tie/jquery.ui.base.css +11 -0
  102. data/public/css/black-tie/jquery.ui.button.css +38 -0
  103. data/public/css/black-tie/jquery.ui.core.css +38 -0
  104. data/public/css/black-tie/jquery.ui.datepicker.css +68 -0
  105. data/public/css/black-tie/jquery.ui.dialog.css +21 -0
  106. data/public/css/black-tie/jquery.ui.progressbar.css +11 -0
  107. data/public/css/black-tie/jquery.ui.resizable.css +20 -0
  108. data/public/css/black-tie/jquery.ui.selectable.css +10 -0
  109. data/public/css/black-tie/jquery.ui.slider.css +24 -0
  110. data/public/css/black-tie/jquery.ui.tabs.css +18 -0
  111. data/public/css/black-tie/jquery.ui.theme.css +249 -0
  112. data/public/css/blitzer/images/ui-bg_diagonals-thick_75_f3d8d8_40x40.png +0 -0
  113. data/public/css/blitzer/images/ui-bg_dots-small_65_a6a6a6_2x2.png +0 -0
  114. data/public/css/blitzer/images/ui-bg_flat_0_333333_40x100.png +0 -0
  115. data/public/css/blitzer/images/ui-bg_flat_65_ffffff_40x100.png +0 -0
  116. data/public/css/blitzer/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
  117. data/public/css/blitzer/images/ui-bg_glass_55_fbf8ee_1x400.png +0 -0
  118. data/public/css/blitzer/images/ui-bg_highlight-hard_100_eeeeee_1x100.png +0 -0
  119. data/public/css/blitzer/images/ui-bg_highlight-hard_100_f6f6f6_1x100.png +0 -0
  120. data/public/css/blitzer/images/ui-bg_highlight-soft_15_cc0000_1x100.png +0 -0
  121. data/public/css/blitzer/images/ui-icons_004276_256x240.png +0 -0
  122. data/public/css/blitzer/images/ui-icons_cc0000_256x240.png +0 -0
  123. data/public/css/blitzer/images/ui-icons_ffffff_256x240.png +0 -0
  124. data/public/css/blitzer/jquery-ui.css +565 -0
  125. data/public/css/blitzer/jquery.ui.accordion.css +19 -0
  126. data/public/css/blitzer/jquery.ui.all.css +11 -0
  127. data/public/css/blitzer/jquery.ui.autocomplete.css +53 -0
  128. data/public/css/blitzer/jquery.ui.base.css +11 -0
  129. data/public/css/blitzer/jquery.ui.button.css +38 -0
  130. data/public/css/blitzer/jquery.ui.core.css +38 -0
  131. data/public/css/blitzer/jquery.ui.datepicker.css +68 -0
  132. data/public/css/blitzer/jquery.ui.dialog.css +21 -0
  133. data/public/css/blitzer/jquery.ui.progressbar.css +11 -0
  134. data/public/css/blitzer/jquery.ui.resizable.css +20 -0
  135. data/public/css/blitzer/jquery.ui.selectable.css +10 -0
  136. data/public/css/blitzer/jquery.ui.slider.css +24 -0
  137. data/public/css/blitzer/jquery.ui.tabs.css +18 -0
  138. data/public/css/blitzer/jquery.ui.theme.css +249 -0
  139. data/public/css/cupertino/images/ui-bg_diagonals-thick_90_eeeeee_40x40.png +0 -0
  140. data/public/css/cupertino/images/ui-bg_flat_15_cd0a0a_40x100.png +0 -0
  141. data/public/css/cupertino/images/ui-bg_glass_100_e4f1fb_1x400.png +0 -0
  142. data/public/css/cupertino/images/ui-bg_glass_50_3baae3_1x400.png +0 -0
  143. data/public/css/cupertino/images/ui-bg_glass_80_d7ebf9_1x400.png +0 -0
  144. data/public/css/cupertino/images/ui-bg_highlight-hard_100_f2f5f7_1x100.png +0 -0
  145. data/public/css/cupertino/images/ui-bg_highlight-hard_70_000000_1x100.png +0 -0
  146. data/public/css/cupertino/images/ui-bg_highlight-soft_100_deedf7_1x100.png +0 -0
  147. data/public/css/cupertino/images/ui-bg_highlight-soft_25_ffef8f_1x100.png +0 -0
  148. data/public/css/cupertino/images/ui-icons_2694e8_256x240.png +0 -0
  149. data/public/css/cupertino/images/ui-icons_2e83ff_256x240.png +0 -0
  150. data/public/css/cupertino/images/ui-icons_3d80b3_256x240.png +0 -0
  151. data/public/css/cupertino/images/ui-icons_72a7cf_256x240.png +0 -0
  152. data/public/css/cupertino/images/ui-icons_ffffff_256x240.png +0 -0
  153. data/public/css/cupertino/jquery-ui.css +565 -0
  154. data/public/css/cupertino/jquery.ui.accordion.css +19 -0
  155. data/public/css/cupertino/jquery.ui.all.css +11 -0
  156. data/public/css/cupertino/jquery.ui.autocomplete.css +53 -0
  157. data/public/css/cupertino/jquery.ui.base.css +11 -0
  158. data/public/css/cupertino/jquery.ui.button.css +38 -0
  159. data/public/css/cupertino/jquery.ui.core.css +38 -0
  160. data/public/css/cupertino/jquery.ui.datepicker.css +68 -0
  161. data/public/css/cupertino/jquery.ui.dialog.css +21 -0
  162. data/public/css/cupertino/jquery.ui.progressbar.css +11 -0
  163. data/public/css/cupertino/jquery.ui.resizable.css +20 -0
  164. data/public/css/cupertino/jquery.ui.selectable.css +10 -0
  165. data/public/css/cupertino/jquery.ui.slider.css +24 -0
  166. data/public/css/cupertino/jquery.ui.tabs.css +18 -0
  167. data/public/css/cupertino/jquery.ui.theme.css +249 -0
  168. data/public/css/dark-hive/images/ui-bg_flat_30_cccccc_40x100.png +0 -0
  169. data/public/css/dark-hive/images/ui-bg_flat_50_5c5c5c_40x100.png +0 -0
  170. data/public/css/dark-hive/images/ui-bg_glass_40_ffc73d_1x400.png +0 -0
  171. data/public/css/dark-hive/images/ui-bg_highlight-hard_20_0972a5_1x100.png +0 -0
  172. data/public/css/dark-hive/images/ui-bg_highlight-soft_33_003147_1x100.png +0 -0
  173. data/public/css/dark-hive/images/ui-bg_highlight-soft_35_222222_1x100.png +0 -0
  174. data/public/css/dark-hive/images/ui-bg_highlight-soft_44_444444_1x100.png +0 -0
  175. data/public/css/dark-hive/images/ui-bg_highlight-soft_80_eeeeee_1x100.png +0 -0
  176. data/public/css/dark-hive/images/ui-bg_loop_25_000000_21x21.png +0 -0
  177. data/public/css/dark-hive/images/ui-icons_222222_256x240.png +0 -0
  178. data/public/css/dark-hive/images/ui-icons_4b8e0b_256x240.png +0 -0
  179. data/public/css/dark-hive/images/ui-icons_a83300_256x240.png +0 -0
  180. data/public/css/dark-hive/images/ui-icons_cccccc_256x240.png +0 -0
  181. data/public/css/dark-hive/images/ui-icons_ffffff_256x240.png +0 -0
  182. data/public/css/dark-hive/jquery-ui.css +565 -0
  183. data/public/css/dark-hive/jquery.ui.accordion.css +19 -0
  184. data/public/css/dark-hive/jquery.ui.all.css +11 -0
  185. data/public/css/dark-hive/jquery.ui.autocomplete.css +53 -0
  186. data/public/css/dark-hive/jquery.ui.base.css +11 -0
  187. data/public/css/dark-hive/jquery.ui.button.css +38 -0
  188. data/public/css/dark-hive/jquery.ui.core.css +38 -0
  189. data/public/css/dark-hive/jquery.ui.datepicker.css +68 -0
  190. data/public/css/dark-hive/jquery.ui.dialog.css +21 -0
  191. data/public/css/dark-hive/jquery.ui.progressbar.css +11 -0
  192. data/public/css/dark-hive/jquery.ui.resizable.css +20 -0
  193. data/public/css/dark-hive/jquery.ui.selectable.css +10 -0
  194. data/public/css/dark-hive/jquery.ui.slider.css +24 -0
  195. data/public/css/dark-hive/jquery.ui.tabs.css +18 -0
  196. data/public/css/dark-hive/jquery.ui.theme.css +249 -0
  197. data/public/css/dot-luv/images/ui-bg_diagonals-thick_15_0b3e6f_40x40.png +0 -0
  198. data/public/css/dot-luv/images/ui-bg_dots-medium_30_0b58a2_4x4.png +0 -0
  199. data/public/css/dot-luv/images/ui-bg_dots-small_20_333333_2x2.png +0 -0
  200. data/public/css/dot-luv/images/ui-bg_dots-small_30_a32d00_2x2.png +0 -0
  201. data/public/css/dot-luv/images/ui-bg_dots-small_40_00498f_2x2.png +0 -0
  202. data/public/css/dot-luv/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
  203. data/public/css/dot-luv/images/ui-bg_flat_40_292929_40x100.png +0 -0
  204. data/public/css/dot-luv/images/ui-bg_gloss-wave_20_111111_500x100.png +0 -0
  205. data/public/css/dot-luv/images/ui-icons_00498f_256x240.png +0 -0
  206. data/public/css/dot-luv/images/ui-icons_98d2fb_256x240.png +0 -0
  207. data/public/css/dot-luv/images/ui-icons_9ccdfc_256x240.png +0 -0
  208. data/public/css/dot-luv/images/ui-icons_ffffff_256x240.png +0 -0
  209. data/public/css/dot-luv/jquery-ui.css +565 -0
  210. data/public/css/dot-luv/jquery.ui.accordion.css +19 -0
  211. data/public/css/dot-luv/jquery.ui.all.css +11 -0
  212. data/public/css/dot-luv/jquery.ui.autocomplete.css +53 -0
  213. data/public/css/dot-luv/jquery.ui.base.css +11 -0
  214. data/public/css/dot-luv/jquery.ui.button.css +38 -0
  215. data/public/css/dot-luv/jquery.ui.core.css +38 -0
  216. data/public/css/dot-luv/jquery.ui.datepicker.css +68 -0
  217. data/public/css/dot-luv/jquery.ui.dialog.css +21 -0
  218. data/public/css/dot-luv/jquery.ui.progressbar.css +11 -0
  219. data/public/css/dot-luv/jquery.ui.resizable.css +20 -0
  220. data/public/css/dot-luv/jquery.ui.selectable.css +10 -0
  221. data/public/css/dot-luv/jquery.ui.slider.css +24 -0
  222. data/public/css/dot-luv/jquery.ui.tabs.css +18 -0
  223. data/public/css/dot-luv/jquery.ui.theme.css +249 -0
  224. data/public/css/eggplant/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
  225. data/public/css/eggplant/images/ui-bg_flat_0_eeeeee_40x100.png +0 -0
  226. data/public/css/eggplant/images/ui-bg_flat_55_994d53_40x100.png +0 -0
  227. data/public/css/eggplant/images/ui-bg_flat_55_fafafa_40x100.png +0 -0
  228. data/public/css/eggplant/images/ui-bg_gloss-wave_30_3d3644_500x100.png +0 -0
  229. data/public/css/eggplant/images/ui-bg_highlight-soft_100_dcd9de_1x100.png +0 -0
  230. data/public/css/eggplant/images/ui-bg_highlight-soft_100_eae6ea_1x100.png +0 -0
  231. data/public/css/eggplant/images/ui-bg_highlight-soft_25_30273a_1x100.png +0 -0
  232. data/public/css/eggplant/images/ui-bg_highlight-soft_45_5f5964_1x100.png +0 -0
  233. data/public/css/eggplant/images/ui-icons_454545_256x240.png +0 -0
  234. data/public/css/eggplant/images/ui-icons_734d99_256x240.png +0 -0
  235. data/public/css/eggplant/images/ui-icons_8d78a5_256x240.png +0 -0
  236. data/public/css/eggplant/images/ui-icons_a8a3ae_256x240.png +0 -0
  237. data/public/css/eggplant/images/ui-icons_ebccce_256x240.png +0 -0
  238. data/public/css/eggplant/images/ui-icons_ffffff_256x240.png +0 -0
  239. data/public/css/eggplant/jquery-ui.css +565 -0
  240. data/public/css/eggplant/jquery.ui.accordion.css +19 -0
  241. data/public/css/eggplant/jquery.ui.all.css +11 -0
  242. data/public/css/eggplant/jquery.ui.autocomplete.css +53 -0
  243. data/public/css/eggplant/jquery.ui.base.css +11 -0
  244. data/public/css/eggplant/jquery.ui.button.css +38 -0
  245. data/public/css/eggplant/jquery.ui.core.css +38 -0
  246. data/public/css/eggplant/jquery.ui.datepicker.css +68 -0
  247. data/public/css/eggplant/jquery.ui.dialog.css +21 -0
  248. data/public/css/eggplant/jquery.ui.progressbar.css +11 -0
  249. data/public/css/eggplant/jquery.ui.resizable.css +20 -0
  250. data/public/css/eggplant/jquery.ui.selectable.css +10 -0
  251. data/public/css/eggplant/jquery.ui.slider.css +24 -0
  252. data/public/css/eggplant/jquery.ui.tabs.css +18 -0
  253. data/public/css/eggplant/jquery.ui.theme.css +249 -0
  254. data/public/css/excite-bike/images/ui-bg_diagonals-small_25_c5ddfc_40x40.png +0 -0
  255. data/public/css/excite-bike/images/ui-bg_diagonals-thick_20_e69700_40x40.png +0 -0
  256. data/public/css/excite-bike/images/ui-bg_diagonals-thick_22_1484e6_40x40.png +0 -0
  257. data/public/css/excite-bike/images/ui-bg_diagonals-thick_26_2293f7_40x40.png +0 -0
  258. data/public/css/excite-bike/images/ui-bg_flat_0_e69700_40x100.png +0 -0
  259. data/public/css/excite-bike/images/ui-bg_flat_0_e6b900_40x100.png +0 -0
  260. data/public/css/excite-bike/images/ui-bg_highlight-soft_100_f9f9f9_1x100.png +0 -0
  261. data/public/css/excite-bike/images/ui-bg_inset-hard_100_eeeeee_1x100.png +0 -0
  262. data/public/css/excite-bike/images/ui-icons_0a82eb_256x240.png +0 -0
  263. data/public/css/excite-bike/images/ui-icons_0b54d5_256x240.png +0 -0
  264. data/public/css/excite-bike/images/ui-icons_5fa5e3_256x240.png +0 -0
  265. data/public/css/excite-bike/images/ui-icons_fcdd4a_256x240.png +0 -0
  266. data/public/css/excite-bike/images/ui-icons_ffffff_256x240.png +0 -0
  267. data/public/css/excite-bike/jquery-ui.css +565 -0
  268. data/public/css/excite-bike/jquery.ui.accordion.css +19 -0
  269. data/public/css/excite-bike/jquery.ui.all.css +11 -0
  270. data/public/css/excite-bike/jquery.ui.autocomplete.css +53 -0
  271. data/public/css/excite-bike/jquery.ui.base.css +11 -0
  272. data/public/css/excite-bike/jquery.ui.button.css +38 -0
  273. data/public/css/excite-bike/jquery.ui.core.css +38 -0
  274. data/public/css/excite-bike/jquery.ui.datepicker.css +68 -0
  275. data/public/css/excite-bike/jquery.ui.dialog.css +21 -0
  276. data/public/css/excite-bike/jquery.ui.progressbar.css +11 -0
  277. data/public/css/excite-bike/jquery.ui.resizable.css +20 -0
  278. data/public/css/excite-bike/jquery.ui.selectable.css +10 -0
  279. data/public/css/excite-bike/jquery.ui.slider.css +24 -0
  280. data/public/css/excite-bike/jquery.ui.tabs.css +18 -0
  281. data/public/css/excite-bike/jquery.ui.theme.css +249 -0
  282. data/public/css/flick/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
  283. data/public/css/flick/images/ui-bg_flat_0_eeeeee_40x100.png +0 -0
  284. data/public/css/flick/images/ui-bg_flat_55_ffffff_40x100.png +0 -0
  285. data/public/css/flick/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
  286. data/public/css/flick/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
  287. data/public/css/flick/images/ui-bg_highlight-soft_100_f6f6f6_1x100.png +0 -0
  288. data/public/css/flick/images/ui-bg_highlight-soft_25_0073ea_1x100.png +0 -0
  289. data/public/css/flick/images/ui-bg_highlight-soft_50_dddddd_1x100.png +0 -0
  290. data/public/css/flick/images/ui-icons_0073ea_256x240.png +0 -0
  291. data/public/css/flick/images/ui-icons_454545_256x240.png +0 -0
  292. data/public/css/flick/images/ui-icons_666666_256x240.png +0 -0
  293. data/public/css/flick/images/ui-icons_ff0084_256x240.png +0 -0
  294. data/public/css/flick/images/ui-icons_ffffff_256x240.png +0 -0
  295. data/public/css/flick/jquery-ui.css +565 -0
  296. data/public/css/flick/jquery.ui.accordion.css +19 -0
  297. data/public/css/flick/jquery.ui.all.css +11 -0
  298. data/public/css/flick/jquery.ui.autocomplete.css +53 -0
  299. data/public/css/flick/jquery.ui.base.css +11 -0
  300. data/public/css/flick/jquery.ui.button.css +38 -0
  301. data/public/css/flick/jquery.ui.core.css +38 -0
  302. data/public/css/flick/jquery.ui.datepicker.css +68 -0
  303. data/public/css/flick/jquery.ui.dialog.css +21 -0
  304. data/public/css/flick/jquery.ui.progressbar.css +11 -0
  305. data/public/css/flick/jquery.ui.resizable.css +20 -0
  306. data/public/css/flick/jquery.ui.selectable.css +10 -0
  307. data/public/css/flick/jquery.ui.slider.css +24 -0
  308. data/public/css/flick/jquery.ui.tabs.css +18 -0
  309. data/public/css/flick/jquery.ui.theme.css +249 -0
  310. data/public/css/hot-sneaks/images/ui-bg_diagonals-small_40_db4865_40x40.png +0 -0
  311. data/public/css/hot-sneaks/images/ui-bg_diagonals-small_50_93c3cd_40x40.png +0 -0
  312. data/public/css/hot-sneaks/images/ui-bg_diagonals-small_50_ff3853_40x40.png +0 -0
  313. data/public/css/hot-sneaks/images/ui-bg_diagonals-small_75_ccd232_40x40.png +0 -0
  314. data/public/css/hot-sneaks/images/ui-bg_dots-medium_80_ffff38_4x4.png +0 -0
  315. data/public/css/hot-sneaks/images/ui-bg_dots-small_35_35414f_2x2.png +0 -0
  316. data/public/css/hot-sneaks/images/ui-bg_flat_75_ba9217_40x100.png +0 -0
  317. data/public/css/hot-sneaks/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
  318. data/public/css/hot-sneaks/images/ui-bg_white-lines_85_f7f7ba_40x100.png +0 -0
  319. data/public/css/hot-sneaks/images/ui-icons_454545_256x240.png +0 -0
  320. data/public/css/hot-sneaks/images/ui-icons_88a206_256x240.png +0 -0
  321. data/public/css/hot-sneaks/images/ui-icons_c02669_256x240.png +0 -0
  322. data/public/css/hot-sneaks/images/ui-icons_e1e463_256x240.png +0 -0
  323. data/public/css/hot-sneaks/images/ui-icons_ffeb33_256x240.png +0 -0
  324. data/public/css/hot-sneaks/images/ui-icons_ffffff_256x240.png +0 -0
  325. data/public/css/hot-sneaks/jquery-ui.css +565 -0
  326. data/public/css/hot-sneaks/jquery.ui.accordion.css +19 -0
  327. data/public/css/hot-sneaks/jquery.ui.all.css +11 -0
  328. data/public/css/hot-sneaks/jquery.ui.autocomplete.css +53 -0
  329. data/public/css/hot-sneaks/jquery.ui.base.css +11 -0
  330. data/public/css/hot-sneaks/jquery.ui.button.css +38 -0
  331. data/public/css/hot-sneaks/jquery.ui.core.css +38 -0
  332. data/public/css/hot-sneaks/jquery.ui.datepicker.css +68 -0
  333. data/public/css/hot-sneaks/jquery.ui.dialog.css +21 -0
  334. data/public/css/hot-sneaks/jquery.ui.progressbar.css +11 -0
  335. data/public/css/hot-sneaks/jquery.ui.resizable.css +20 -0
  336. data/public/css/hot-sneaks/jquery.ui.selectable.css +10 -0
  337. data/public/css/hot-sneaks/jquery.ui.slider.css +24 -0
  338. data/public/css/hot-sneaks/jquery.ui.tabs.css +18 -0
  339. data/public/css/hot-sneaks/jquery.ui.theme.css +249 -0
  340. data/public/css/humanity/images/ui-bg_flat_75_aaaaaa_40x100.png +0 -0
  341. data/public/css/humanity/images/ui-bg_glass_100_f5f0e5_1x400.png +0 -0
  342. data/public/css/humanity/images/ui-bg_glass_25_cb842e_1x400.png +0 -0
  343. data/public/css/humanity/images/ui-bg_glass_70_ede4d4_1x400.png +0 -0
  344. data/public/css/humanity/images/ui-bg_highlight-hard_100_f4f0ec_1x100.png +0 -0
  345. data/public/css/humanity/images/ui-bg_highlight-hard_65_fee4bd_1x100.png +0 -0
  346. data/public/css/humanity/images/ui-bg_highlight-hard_75_f5f5b5_1x100.png +0 -0
  347. data/public/css/humanity/images/ui-bg_inset-soft_100_f4f0ec_1x100.png +0 -0
  348. data/public/css/humanity/images/ui-icons_c47a23_256x240.png +0 -0
  349. data/public/css/humanity/images/ui-icons_cb672b_256x240.png +0 -0
  350. data/public/css/humanity/images/ui-icons_f08000_256x240.png +0 -0
  351. data/public/css/humanity/images/ui-icons_f35f07_256x240.png +0 -0
  352. data/public/css/humanity/images/ui-icons_ff7519_256x240.png +0 -0
  353. data/public/css/humanity/images/ui-icons_ffffff_256x240.png +0 -0
  354. data/public/css/humanity/jquery-ui.css +565 -0
  355. data/public/css/humanity/jquery.ui.accordion.css +19 -0
  356. data/public/css/humanity/jquery.ui.all.css +11 -0
  357. data/public/css/humanity/jquery.ui.autocomplete.css +53 -0
  358. data/public/css/humanity/jquery.ui.base.css +11 -0
  359. data/public/css/humanity/jquery.ui.button.css +38 -0
  360. data/public/css/humanity/jquery.ui.core.css +38 -0
  361. data/public/css/humanity/jquery.ui.datepicker.css +68 -0
  362. data/public/css/humanity/jquery.ui.dialog.css +21 -0
  363. data/public/css/humanity/jquery.ui.progressbar.css +11 -0
  364. data/public/css/humanity/jquery.ui.resizable.css +20 -0
  365. data/public/css/humanity/jquery.ui.selectable.css +10 -0
  366. data/public/css/humanity/jquery.ui.slider.css +24 -0
  367. data/public/css/humanity/jquery.ui.tabs.css +18 -0
  368. data/public/css/humanity/jquery.ui.theme.css +249 -0
  369. data/public/css/le-frog/images/ui-bg_diagonals-small_0_aaaaaa_40x40.png +0 -0
  370. data/public/css/le-frog/images/ui-bg_diagonals-thick_15_444444_40x40.png +0 -0
  371. data/public/css/le-frog/images/ui-bg_diagonals-thick_95_ffdc2e_40x40.png +0 -0
  372. data/public/css/le-frog/images/ui-bg_glass_55_fbf5d0_1x400.png +0 -0
  373. data/public/css/le-frog/images/ui-bg_highlight-hard_30_285c00_1x100.png +0 -0
  374. data/public/css/le-frog/images/ui-bg_highlight-soft_33_3a8104_1x100.png +0 -0
  375. data/public/css/le-frog/images/ui-bg_highlight-soft_50_4eb305_1x100.png +0 -0
  376. data/public/css/le-frog/images/ui-bg_highlight-soft_60_4ca20b_1x100.png +0 -0
  377. data/public/css/le-frog/images/ui-bg_inset-soft_10_285c00_1x100.png +0 -0
  378. data/public/css/le-frog/images/ui-icons_4eb305_256x240.png +0 -0
  379. data/public/css/le-frog/images/ui-icons_72b42d_256x240.png +0 -0
  380. data/public/css/le-frog/images/ui-icons_cd0a0a_256x240.png +0 -0
  381. data/public/css/le-frog/images/ui-icons_ffffff_256x240.png +0 -0
  382. data/public/css/le-frog/jquery-ui.css +565 -0
  383. data/public/css/le-frog/jquery.ui.accordion.css +19 -0
  384. data/public/css/le-frog/jquery.ui.all.css +11 -0
  385. data/public/css/le-frog/jquery.ui.autocomplete.css +53 -0
  386. data/public/css/le-frog/jquery.ui.base.css +11 -0
  387. data/public/css/le-frog/jquery.ui.button.css +38 -0
  388. data/public/css/le-frog/jquery.ui.core.css +38 -0
  389. data/public/css/le-frog/jquery.ui.datepicker.css +68 -0
  390. data/public/css/le-frog/jquery.ui.dialog.css +21 -0
  391. data/public/css/le-frog/jquery.ui.progressbar.css +11 -0
  392. data/public/css/le-frog/jquery.ui.resizable.css +20 -0
  393. data/public/css/le-frog/jquery.ui.selectable.css +10 -0
  394. data/public/css/le-frog/jquery.ui.slider.css +24 -0
  395. data/public/css/le-frog/jquery.ui.tabs.css +18 -0
  396. data/public/css/le-frog/jquery.ui.theme.css +249 -0
  397. data/public/css/mint-choc/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
  398. data/public/css/mint-choc/images/ui-bg_glass_15_5f391b_1x400.png +0 -0
  399. data/public/css/mint-choc/images/ui-bg_gloss-wave_20_1c160d_500x100.png +0 -0
  400. data/public/css/mint-choc/images/ui-bg_gloss-wave_25_453326_500x100.png +0 -0
  401. data/public/css/mint-choc/images/ui-bg_gloss-wave_30_44372c_500x100.png +0 -0
  402. data/public/css/mint-choc/images/ui-bg_highlight-soft_20_201913_1x100.png +0 -0
  403. data/public/css/mint-choc/images/ui-bg_highlight-soft_20_619226_1x100.png +0 -0
  404. data/public/css/mint-choc/images/ui-bg_inset-soft_10_201913_1x100.png +0 -0
  405. data/public/css/mint-choc/images/ui-icons_222222_256x240.png +0 -0
  406. data/public/css/mint-choc/images/ui-icons_9bcc60_256x240.png +0 -0
  407. data/public/css/mint-choc/images/ui-icons_add978_256x240.png +0 -0
  408. data/public/css/mint-choc/images/ui-icons_e3ddc9_256x240.png +0 -0
  409. data/public/css/mint-choc/images/ui-icons_f1fd86_256x240.png +0 -0
  410. data/public/css/mint-choc/images/ui-icons_ffffff_256x240.png +0 -0
  411. data/public/css/mint-choc/jquery-ui.css +565 -0
  412. data/public/css/mint-choc/jquery.ui.accordion.css +19 -0
  413. data/public/css/mint-choc/jquery.ui.all.css +11 -0
  414. data/public/css/mint-choc/jquery.ui.autocomplete.css +53 -0
  415. data/public/css/mint-choc/jquery.ui.base.css +11 -0
  416. data/public/css/mint-choc/jquery.ui.button.css +38 -0
  417. data/public/css/mint-choc/jquery.ui.core.css +38 -0
  418. data/public/css/mint-choc/jquery.ui.datepicker.css +68 -0
  419. data/public/css/mint-choc/jquery.ui.dialog.css +21 -0
  420. data/public/css/mint-choc/jquery.ui.progressbar.css +11 -0
  421. data/public/css/mint-choc/jquery.ui.resizable.css +20 -0
  422. data/public/css/mint-choc/jquery.ui.selectable.css +10 -0
  423. data/public/css/mint-choc/jquery.ui.slider.css +24 -0
  424. data/public/css/mint-choc/jquery.ui.tabs.css +18 -0
  425. data/public/css/mint-choc/jquery.ui.theme.css +249 -0
  426. data/public/css/overcast/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
  427. data/public/css/overcast/images/ui-bg_flat_0_eeeeee_40x100.png +0 -0
  428. data/public/css/overcast/images/ui-bg_flat_55_c0402a_40x100.png +0 -0
  429. data/public/css/overcast/images/ui-bg_flat_55_eeeeee_40x100.png +0 -0
  430. data/public/css/overcast/images/ui-bg_glass_100_f8f8f8_1x400.png +0 -0
  431. data/public/css/overcast/images/ui-bg_glass_35_dddddd_1x400.png +0 -0
  432. data/public/css/overcast/images/ui-bg_glass_60_eeeeee_1x400.png +0 -0
  433. data/public/css/overcast/images/ui-bg_inset-hard_75_999999_1x100.png +0 -0
  434. data/public/css/overcast/images/ui-bg_inset-soft_50_c9c9c9_1x100.png +0 -0
  435. data/public/css/overcast/images/ui-icons_3383bb_256x240.png +0 -0
  436. data/public/css/overcast/images/ui-icons_454545_256x240.png +0 -0
  437. data/public/css/overcast/images/ui-icons_70b2e1_256x240.png +0 -0
  438. data/public/css/overcast/images/ui-icons_999999_256x240.png +0 -0
  439. data/public/css/overcast/images/ui-icons_fbc856_256x240.png +0 -0
  440. data/public/css/overcast/jquery-ui.css +565 -0
  441. data/public/css/overcast/jquery.ui.accordion.css +19 -0
  442. data/public/css/overcast/jquery.ui.all.css +11 -0
  443. data/public/css/overcast/jquery.ui.autocomplete.css +53 -0
  444. data/public/css/overcast/jquery.ui.base.css +11 -0
  445. data/public/css/overcast/jquery.ui.button.css +38 -0
  446. data/public/css/overcast/jquery.ui.core.css +38 -0
  447. data/public/css/overcast/jquery.ui.datepicker.css +68 -0
  448. data/public/css/overcast/jquery.ui.dialog.css +21 -0
  449. data/public/css/overcast/jquery.ui.progressbar.css +11 -0
  450. data/public/css/overcast/jquery.ui.resizable.css +20 -0
  451. data/public/css/overcast/jquery.ui.selectable.css +10 -0
  452. data/public/css/overcast/jquery.ui.slider.css +24 -0
  453. data/public/css/overcast/jquery.ui.tabs.css +18 -0
  454. data/public/css/overcast/jquery.ui.theme.css +249 -0
  455. data/public/css/pepper-grinder/images/ui-bg_diagonal-maze_20_6e4f1c_10x10.png +0 -0
  456. data/public/css/pepper-grinder/images/ui-bg_diagonal-maze_40_000000_10x10.png +0 -0
  457. data/public/css/pepper-grinder/images/ui-bg_fine-grain_10_eceadf_60x60.png +0 -0
  458. data/public/css/pepper-grinder/images/ui-bg_fine-grain_10_f8f7f6_60x60.png +0 -0
  459. data/public/css/pepper-grinder/images/ui-bg_fine-grain_15_eceadf_60x60.png +0 -0
  460. data/public/css/pepper-grinder/images/ui-bg_fine-grain_15_f7f3de_60x60.png +0 -0
  461. data/public/css/pepper-grinder/images/ui-bg_fine-grain_15_ffffff_60x60.png +0 -0
  462. data/public/css/pepper-grinder/images/ui-bg_fine-grain_65_654b24_60x60.png +0 -0
  463. data/public/css/pepper-grinder/images/ui-bg_fine-grain_68_b83400_60x60.png +0 -0
  464. data/public/css/pepper-grinder/images/ui-icons_222222_256x240.png +0 -0
  465. data/public/css/pepper-grinder/images/ui-icons_3572ac_256x240.png +0 -0
  466. data/public/css/pepper-grinder/images/ui-icons_8c291d_256x240.png +0 -0
  467. data/public/css/pepper-grinder/images/ui-icons_b83400_256x240.png +0 -0
  468. data/public/css/pepper-grinder/images/ui-icons_fbdb93_256x240.png +0 -0
  469. data/public/css/pepper-grinder/images/ui-icons_ffffff_256x240.png +0 -0
  470. data/public/css/pepper-grinder/jquery-ui.css +565 -0
  471. data/public/css/pepper-grinder/jquery.ui.accordion.css +19 -0
  472. data/public/css/pepper-grinder/jquery.ui.all.css +11 -0
  473. data/public/css/pepper-grinder/jquery.ui.autocomplete.css +53 -0
  474. data/public/css/pepper-grinder/jquery.ui.base.css +11 -0
  475. data/public/css/pepper-grinder/jquery.ui.button.css +38 -0
  476. data/public/css/pepper-grinder/jquery.ui.core.css +38 -0
  477. data/public/css/pepper-grinder/jquery.ui.datepicker.css +68 -0
  478. data/public/css/pepper-grinder/jquery.ui.dialog.css +21 -0
  479. data/public/css/pepper-grinder/jquery.ui.progressbar.css +11 -0
  480. data/public/css/pepper-grinder/jquery.ui.resizable.css +20 -0
  481. data/public/css/pepper-grinder/jquery.ui.selectable.css +10 -0
  482. data/public/css/pepper-grinder/jquery.ui.slider.css +24 -0
  483. data/public/css/pepper-grinder/jquery.ui.tabs.css +18 -0
  484. data/public/css/pepper-grinder/jquery.ui.theme.css +249 -0
  485. data/public/css/redmond/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
  486. data/public/css/redmond/images/ui-bg_flat_55_fbec88_40x100.png +0 -0
  487. data/public/css/redmond/images/ui-bg_glass_75_d0e5f5_1x400.png +0 -0
  488. data/public/css/redmond/images/ui-bg_glass_85_dfeffc_1x400.png +0 -0
  489. data/public/css/redmond/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
  490. data/public/css/redmond/images/ui-bg_gloss-wave_55_5c9ccc_500x100.png +0 -0
  491. data/public/css/redmond/images/ui-bg_inset-hard_100_f5f8f9_1x100.png +0 -0
  492. data/public/css/redmond/images/ui-bg_inset-hard_100_fcfdfd_1x100.png +0 -0
  493. data/public/css/redmond/images/ui-icons_217bc0_256x240.png +0 -0
  494. data/public/css/redmond/images/ui-icons_2e83ff_256x240.png +0 -0
  495. data/public/css/redmond/images/ui-icons_469bdd_256x240.png +0 -0
  496. data/public/css/redmond/images/ui-icons_6da8d5_256x240.png +0 -0
  497. data/public/css/redmond/images/ui-icons_cd0a0a_256x240.png +0 -0
  498. data/public/css/redmond/images/ui-icons_d8e7f3_256x240.png +0 -0
  499. data/public/css/redmond/images/ui-icons_f9bd01_256x240.png +0 -0
  500. data/public/css/redmond/jquery-ui.css +565 -0
  501. data/public/css/redmond/jquery.ui.accordion.css +19 -0
  502. data/public/css/redmond/jquery.ui.all.css +11 -0
  503. data/public/css/redmond/jquery.ui.autocomplete.css +53 -0
  504. data/public/css/redmond/jquery.ui.base.css +11 -0
  505. data/public/css/redmond/jquery.ui.button.css +38 -0
  506. data/public/css/redmond/jquery.ui.core.css +38 -0
  507. data/public/css/redmond/jquery.ui.datepicker.css +68 -0
  508. data/public/css/redmond/jquery.ui.dialog.css +21 -0
  509. data/public/css/redmond/jquery.ui.progressbar.css +11 -0
  510. data/public/css/redmond/jquery.ui.resizable.css +20 -0
  511. data/public/css/redmond/jquery.ui.selectable.css +10 -0
  512. data/public/css/redmond/jquery.ui.slider.css +24 -0
  513. data/public/css/redmond/jquery.ui.tabs.css +18 -0
  514. data/public/css/redmond/jquery.ui.theme.css +249 -0
  515. data/public/css/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
  516. data/public/css/smoothness/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
  517. data/public/css/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
  518. data/public/css/smoothness/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
  519. data/public/css/smoothness/images/ui-bg_glass_75_dadada_1x400.png +0 -0
  520. data/public/css/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
  521. data/public/css/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
  522. data/public/css/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
  523. data/public/css/smoothness/images/ui-icons_222222_256x240.png +0 -0
  524. data/public/css/smoothness/images/ui-icons_2e83ff_256x240.png +0 -0
  525. data/public/css/smoothness/images/ui-icons_454545_256x240.png +0 -0
  526. data/public/css/smoothness/images/ui-icons_888888_256x240.png +0 -0
  527. data/public/css/smoothness/images/ui-icons_cd0a0a_256x240.png +0 -0
  528. data/public/css/smoothness/jquery-ui.css +565 -0
  529. data/public/css/smoothness/jquery.ui.accordion.css +19 -0
  530. data/public/css/smoothness/jquery.ui.all.css +11 -0
  531. data/public/css/smoothness/jquery.ui.autocomplete.css +53 -0
  532. data/public/css/smoothness/jquery.ui.base.css +11 -0
  533. data/public/css/smoothness/jquery.ui.button.css +38 -0
  534. data/public/css/smoothness/jquery.ui.core.css +38 -0
  535. data/public/css/smoothness/jquery.ui.datepicker.css +68 -0
  536. data/public/css/smoothness/jquery.ui.dialog.css +21 -0
  537. data/public/css/smoothness/jquery.ui.progressbar.css +11 -0
  538. data/public/css/smoothness/jquery.ui.resizable.css +20 -0
  539. data/public/css/smoothness/jquery.ui.selectable.css +10 -0
  540. data/public/css/smoothness/jquery.ui.slider.css +24 -0
  541. data/public/css/smoothness/jquery.ui.tabs.css +18 -0
  542. data/public/css/smoothness/jquery.ui.theme.css +249 -0
  543. data/public/css/south-street/images/ui-bg_glass_55_fcf0ba_1x400.png +0 -0
  544. data/public/css/south-street/images/ui-bg_gloss-wave_100_ece8da_500x100.png +0 -0
  545. data/public/css/south-street/images/ui-bg_highlight-hard_100_f5f3e5_1x100.png +0 -0
  546. data/public/css/south-street/images/ui-bg_highlight-hard_100_fafaf4_1x100.png +0 -0
  547. data/public/css/south-street/images/ui-bg_highlight-hard_15_459e00_1x100.png +0 -0
  548. data/public/css/south-street/images/ui-bg_highlight-hard_95_cccccc_1x100.png +0 -0
  549. data/public/css/south-street/images/ui-bg_highlight-soft_25_67b021_1x100.png +0 -0
  550. data/public/css/south-street/images/ui-bg_highlight-soft_95_ffedad_1x100.png +0 -0
  551. data/public/css/south-street/images/ui-bg_inset-soft_15_2b2922_1x100.png +0 -0
  552. data/public/css/south-street/images/ui-icons_808080_256x240.png +0 -0
  553. data/public/css/south-street/images/ui-icons_847e71_256x240.png +0 -0
  554. data/public/css/south-street/images/ui-icons_8dc262_256x240.png +0 -0
  555. data/public/css/south-street/images/ui-icons_cd0a0a_256x240.png +0 -0
  556. data/public/css/south-street/images/ui-icons_eeeeee_256x240.png +0 -0
  557. data/public/css/south-street/images/ui-icons_ffffff_256x240.png +0 -0
  558. data/public/css/south-street/jquery-ui.css +565 -0
  559. data/public/css/south-street/jquery.ui.accordion.css +19 -0
  560. data/public/css/south-street/jquery.ui.all.css +11 -0
  561. data/public/css/south-street/jquery.ui.autocomplete.css +53 -0
  562. data/public/css/south-street/jquery.ui.base.css +11 -0
  563. data/public/css/south-street/jquery.ui.button.css +38 -0
  564. data/public/css/south-street/jquery.ui.core.css +38 -0
  565. data/public/css/south-street/jquery.ui.datepicker.css +68 -0
  566. data/public/css/south-street/jquery.ui.dialog.css +21 -0
  567. data/public/css/south-street/jquery.ui.progressbar.css +11 -0
  568. data/public/css/south-street/jquery.ui.resizable.css +20 -0
  569. data/public/css/south-street/jquery.ui.selectable.css +10 -0
  570. data/public/css/south-street/jquery.ui.slider.css +24 -0
  571. data/public/css/south-street/jquery.ui.tabs.css +18 -0
  572. data/public/css/south-street/jquery.ui.theme.css +249 -0
  573. data/public/css/start/images/ui-bg_flat_55_999999_40x100.png +0 -0
  574. data/public/css/start/images/ui-bg_flat_75_aaaaaa_40x100.png +0 -0
  575. data/public/css/start/images/ui-bg_glass_45_0078ae_1x400.png +0 -0
  576. data/public/css/start/images/ui-bg_glass_55_f8da4e_1x400.png +0 -0
  577. data/public/css/start/images/ui-bg_glass_75_79c9ec_1x400.png +0 -0
  578. data/public/css/start/images/ui-bg_gloss-wave_45_e14f1c_500x100.png +0 -0
  579. data/public/css/start/images/ui-bg_gloss-wave_50_6eac2c_500x100.png +0 -0
  580. data/public/css/start/images/ui-bg_gloss-wave_75_2191c0_500x100.png +0 -0
  581. data/public/css/start/images/ui-bg_inset-hard_100_fcfdfd_1x100.png +0 -0
  582. data/public/css/start/images/ui-icons_0078ae_256x240.png +0 -0
  583. data/public/css/start/images/ui-icons_056b93_256x240.png +0 -0
  584. data/public/css/start/images/ui-icons_d8e7f3_256x240.png +0 -0
  585. data/public/css/start/images/ui-icons_e0fdff_256x240.png +0 -0
  586. data/public/css/start/images/ui-icons_f5e175_256x240.png +0 -0
  587. data/public/css/start/images/ui-icons_f7a50d_256x240.png +0 -0
  588. data/public/css/start/images/ui-icons_fcd113_256x240.png +0 -0
  589. data/public/css/start/jquery-ui.css +565 -0
  590. data/public/css/start/jquery.ui.accordion.css +19 -0
  591. data/public/css/start/jquery.ui.all.css +11 -0
  592. data/public/css/start/jquery.ui.autocomplete.css +53 -0
  593. data/public/css/start/jquery.ui.base.css +11 -0
  594. data/public/css/start/jquery.ui.button.css +38 -0
  595. data/public/css/start/jquery.ui.core.css +38 -0
  596. data/public/css/start/jquery.ui.datepicker.css +68 -0
  597. data/public/css/start/jquery.ui.dialog.css +21 -0
  598. data/public/css/start/jquery.ui.progressbar.css +11 -0
  599. data/public/css/start/jquery.ui.resizable.css +20 -0
  600. data/public/css/start/jquery.ui.selectable.css +10 -0
  601. data/public/css/start/jquery.ui.slider.css +24 -0
  602. data/public/css/start/jquery.ui.tabs.css +18 -0
  603. data/public/css/start/jquery.ui.theme.css +249 -0
  604. data/public/css/style.css +190 -0
  605. data/public/css/sunny/images/ui-bg_diagonals-medium_20_d34d17_40x40.png +0 -0
  606. data/public/css/sunny/images/ui-bg_flat_30_cccccc_40x100.png +0 -0
  607. data/public/css/sunny/images/ui-bg_flat_50_5c5c5c_40x100.png +0 -0
  608. data/public/css/sunny/images/ui-bg_gloss-wave_45_817865_500x100.png +0 -0
  609. data/public/css/sunny/images/ui-bg_gloss-wave_60_fece2f_500x100.png +0 -0
  610. data/public/css/sunny/images/ui-bg_gloss-wave_70_ffdd57_500x100.png +0 -0
  611. data/public/css/sunny/images/ui-bg_gloss-wave_90_fff9e5_500x100.png +0 -0
  612. data/public/css/sunny/images/ui-bg_highlight-soft_100_feeebd_1x100.png +0 -0
  613. data/public/css/sunny/images/ui-bg_inset-soft_30_ffffff_1x100.png +0 -0
  614. data/public/css/sunny/images/ui-icons_3d3d3d_256x240.png +0 -0
  615. data/public/css/sunny/images/ui-icons_bd7b00_256x240.png +0 -0
  616. data/public/css/sunny/images/ui-icons_d19405_256x240.png +0 -0
  617. data/public/css/sunny/images/ui-icons_eb990f_256x240.png +0 -0
  618. data/public/css/sunny/images/ui-icons_ed9f26_256x240.png +0 -0
  619. data/public/css/sunny/images/ui-icons_fadc7a_256x240.png +0 -0
  620. data/public/css/sunny/images/ui-icons_ffe180_256x240.png +0 -0
  621. data/public/css/sunny/jquery-ui.css +565 -0
  622. data/public/css/sunny/jquery.ui.accordion.css +19 -0
  623. data/public/css/sunny/jquery.ui.all.css +11 -0
  624. data/public/css/sunny/jquery.ui.autocomplete.css +53 -0
  625. data/public/css/sunny/jquery.ui.base.css +11 -0
  626. data/public/css/sunny/jquery.ui.button.css +38 -0
  627. data/public/css/sunny/jquery.ui.core.css +38 -0
  628. data/public/css/sunny/jquery.ui.datepicker.css +68 -0
  629. data/public/css/sunny/jquery.ui.dialog.css +21 -0
  630. data/public/css/sunny/jquery.ui.progressbar.css +11 -0
  631. data/public/css/sunny/jquery.ui.resizable.css +20 -0
  632. data/public/css/sunny/jquery.ui.selectable.css +10 -0
  633. data/public/css/sunny/jquery.ui.slider.css +24 -0
  634. data/public/css/sunny/jquery.ui.tabs.css +18 -0
  635. data/public/css/sunny/jquery.ui.theme.css +249 -0
  636. data/public/css/swanky-purse/images/ui-bg_diamond_10_4f4221_10x8.png +0 -0
  637. data/public/css/swanky-purse/images/ui-bg_diamond_20_372806_10x8.png +0 -0
  638. data/public/css/swanky-purse/images/ui-bg_diamond_25_675423_10x8.png +0 -0
  639. data/public/css/swanky-purse/images/ui-bg_diamond_25_d5ac5d_10x8.png +0 -0
  640. data/public/css/swanky-purse/images/ui-bg_diamond_8_261803_10x8.png +0 -0
  641. data/public/css/swanky-purse/images/ui-bg_diamond_8_443113_10x8.png +0 -0
  642. data/public/css/swanky-purse/images/ui-bg_flat_75_ddd4b0_40x100.png +0 -0
  643. data/public/css/swanky-purse/images/ui-bg_highlight-hard_65_fee4bd_1x100.png +0 -0
  644. data/public/css/swanky-purse/images/ui-icons_070603_256x240.png +0 -0
  645. data/public/css/swanky-purse/images/ui-icons_e8e2b5_256x240.png +0 -0
  646. data/public/css/swanky-purse/images/ui-icons_e9cd86_256x240.png +0 -0
  647. data/public/css/swanky-purse/images/ui-icons_efec9f_256x240.png +0 -0
  648. data/public/css/swanky-purse/images/ui-icons_f2ec64_256x240.png +0 -0
  649. data/public/css/swanky-purse/images/ui-icons_f9f2bd_256x240.png +0 -0
  650. data/public/css/swanky-purse/images/ui-icons_ff7519_256x240.png +0 -0
  651. data/public/css/swanky-purse/jquery-ui.css +565 -0
  652. data/public/css/swanky-purse/jquery.ui.accordion.css +19 -0
  653. data/public/css/swanky-purse/jquery.ui.all.css +11 -0
  654. data/public/css/swanky-purse/jquery.ui.autocomplete.css +53 -0
  655. data/public/css/swanky-purse/jquery.ui.base.css +11 -0
  656. data/public/css/swanky-purse/jquery.ui.button.css +38 -0
  657. data/public/css/swanky-purse/jquery.ui.core.css +38 -0
  658. data/public/css/swanky-purse/jquery.ui.datepicker.css +68 -0
  659. data/public/css/swanky-purse/jquery.ui.dialog.css +21 -0
  660. data/public/css/swanky-purse/jquery.ui.progressbar.css +11 -0
  661. data/public/css/swanky-purse/jquery.ui.resizable.css +20 -0
  662. data/public/css/swanky-purse/jquery.ui.selectable.css +10 -0
  663. data/public/css/swanky-purse/jquery.ui.slider.css +24 -0
  664. data/public/css/swanky-purse/jquery.ui.tabs.css +18 -0
  665. data/public/css/swanky-purse/jquery.ui.theme.css +249 -0
  666. data/public/css/trontastic/images/ui-bg_diagonals-small_50_262626_40x40.png +0 -0
  667. data/public/css/trontastic/images/ui-bg_flat_0_303030_40x100.png +0 -0
  668. data/public/css/trontastic/images/ui-bg_flat_0_4c4c4c_40x100.png +0 -0
  669. data/public/css/trontastic/images/ui-bg_glass_40_0a0a0a_1x400.png +0 -0
  670. data/public/css/trontastic/images/ui-bg_glass_55_f1fbe5_1x400.png +0 -0
  671. data/public/css/trontastic/images/ui-bg_glass_60_000000_1x400.png +0 -0
  672. data/public/css/trontastic/images/ui-bg_gloss-wave_55_000000_500x100.png +0 -0
  673. data/public/css/trontastic/images/ui-bg_gloss-wave_85_9fda58_500x100.png +0 -0
  674. data/public/css/trontastic/images/ui-bg_gloss-wave_95_f6ecd5_500x100.png +0 -0
  675. data/public/css/trontastic/images/ui-icons_000000_256x240.png +0 -0
  676. data/public/css/trontastic/images/ui-icons_1f1f1f_256x240.png +0 -0
  677. data/public/css/trontastic/images/ui-icons_9fda58_256x240.png +0 -0
  678. data/public/css/trontastic/images/ui-icons_b8ec79_256x240.png +0 -0
  679. data/public/css/trontastic/images/ui-icons_cd0a0a_256x240.png +0 -0
  680. data/public/css/trontastic/images/ui-icons_ffffff_256x240.png +0 -0
  681. data/public/css/trontastic/jquery-ui.css +565 -0
  682. data/public/css/trontastic/jquery.ui.accordion.css +19 -0
  683. data/public/css/trontastic/jquery.ui.all.css +11 -0
  684. data/public/css/trontastic/jquery.ui.autocomplete.css +53 -0
  685. data/public/css/trontastic/jquery.ui.base.css +11 -0
  686. data/public/css/trontastic/jquery.ui.button.css +38 -0
  687. data/public/css/trontastic/jquery.ui.core.css +38 -0
  688. data/public/css/trontastic/jquery.ui.datepicker.css +68 -0
  689. data/public/css/trontastic/jquery.ui.dialog.css +21 -0
  690. data/public/css/trontastic/jquery.ui.progressbar.css +11 -0
  691. data/public/css/trontastic/jquery.ui.resizable.css +20 -0
  692. data/public/css/trontastic/jquery.ui.selectable.css +10 -0
  693. data/public/css/trontastic/jquery.ui.slider.css +24 -0
  694. data/public/css/trontastic/jquery.ui.tabs.css +18 -0
  695. data/public/css/trontastic/jquery.ui.theme.css +249 -0
  696. data/public/css/ui-darkness/images/ui-bg_flat_30_cccccc_40x100.png +0 -0
  697. data/public/css/ui-darkness/images/ui-bg_flat_50_5c5c5c_40x100.png +0 -0
  698. data/public/css/ui-darkness/images/ui-bg_glass_20_555555_1x400.png +0 -0
  699. data/public/css/ui-darkness/images/ui-bg_glass_40_0078a3_1x400.png +0 -0
  700. data/public/css/ui-darkness/images/ui-bg_glass_40_ffc73d_1x400.png +0 -0
  701. data/public/css/ui-darkness/images/ui-bg_gloss-wave_25_333333_500x100.png +0 -0
  702. data/public/css/ui-darkness/images/ui-bg_highlight-soft_80_eeeeee_1x100.png +0 -0
  703. data/public/css/ui-darkness/images/ui-bg_inset-soft_25_000000_1x100.png +0 -0
  704. data/public/css/ui-darkness/images/ui-bg_inset-soft_30_f58400_1x100.png +0 -0
  705. data/public/css/ui-darkness/images/ui-icons_222222_256x240.png +0 -0
  706. data/public/css/ui-darkness/images/ui-icons_4b8e0b_256x240.png +0 -0
  707. data/public/css/ui-darkness/images/ui-icons_a83300_256x240.png +0 -0
  708. data/public/css/ui-darkness/images/ui-icons_cccccc_256x240.png +0 -0
  709. data/public/css/ui-darkness/images/ui-icons_ffffff_256x240.png +0 -0
  710. data/public/css/ui-darkness/jquery-ui.css +565 -0
  711. data/public/css/ui-darkness/jquery.ui.accordion.css +19 -0
  712. data/public/css/ui-darkness/jquery.ui.all.css +11 -0
  713. data/public/css/ui-darkness/jquery.ui.autocomplete.css +53 -0
  714. data/public/css/ui-darkness/jquery.ui.base.css +11 -0
  715. data/public/css/ui-darkness/jquery.ui.button.css +38 -0
  716. data/public/css/ui-darkness/jquery.ui.core.css +38 -0
  717. data/public/css/ui-darkness/jquery.ui.datepicker.css +68 -0
  718. data/public/css/ui-darkness/jquery.ui.dialog.css +21 -0
  719. data/public/css/ui-darkness/jquery.ui.progressbar.css +11 -0
  720. data/public/css/ui-darkness/jquery.ui.resizable.css +20 -0
  721. data/public/css/ui-darkness/jquery.ui.selectable.css +10 -0
  722. data/public/css/ui-darkness/jquery.ui.slider.css +24 -0
  723. data/public/css/ui-darkness/jquery.ui.tabs.css +18 -0
  724. data/public/css/ui-darkness/jquery.ui.theme.css +249 -0
  725. data/public/css/ui-lightness/images/ui-bg_diagonals-thick_18_b81900_40x40.png +0 -0
  726. data/public/css/ui-lightness/images/ui-bg_diagonals-thick_20_666666_40x40.png +0 -0
  727. data/public/css/ui-lightness/images/ui-bg_flat_10_000000_40x100.png +0 -0
  728. data/public/css/ui-lightness/images/ui-bg_glass_100_f6f6f6_1x400.png +0 -0
  729. data/public/css/ui-lightness/images/ui-bg_glass_100_fdf5ce_1x400.png +0 -0
  730. data/public/css/ui-lightness/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
  731. data/public/css/ui-lightness/images/ui-bg_gloss-wave_35_f6a828_500x100.png +0 -0
  732. data/public/css/ui-lightness/images/ui-bg_highlight-soft_100_eeeeee_1x100.png +0 -0
  733. data/public/css/ui-lightness/images/ui-bg_highlight-soft_75_ffe45c_1x100.png +0 -0
  734. data/public/css/ui-lightness/images/ui-icons_222222_256x240.png +0 -0
  735. data/public/css/ui-lightness/images/ui-icons_228ef1_256x240.png +0 -0
  736. data/public/css/ui-lightness/images/ui-icons_ef8c08_256x240.png +0 -0
  737. data/public/css/ui-lightness/images/ui-icons_ffd27a_256x240.png +0 -0
  738. data/public/css/ui-lightness/images/ui-icons_ffffff_256x240.png +0 -0
  739. data/public/css/ui-lightness/jquery-ui.css +565 -0
  740. data/public/css/ui-lightness/jquery.ui.accordion.css +19 -0
  741. data/public/css/ui-lightness/jquery.ui.all.css +11 -0
  742. data/public/css/ui-lightness/jquery.ui.autocomplete.css +53 -0
  743. data/public/css/ui-lightness/jquery.ui.base.css +11 -0
  744. data/public/css/ui-lightness/jquery.ui.button.css +38 -0
  745. data/public/css/ui-lightness/jquery.ui.core.css +38 -0
  746. data/public/css/ui-lightness/jquery.ui.datepicker.css +68 -0
  747. data/public/css/ui-lightness/jquery.ui.dialog.css +21 -0
  748. data/public/css/ui-lightness/jquery.ui.progressbar.css +11 -0
  749. data/public/css/ui-lightness/jquery.ui.resizable.css +20 -0
  750. data/public/css/ui-lightness/jquery.ui.selectable.css +10 -0
  751. data/public/css/ui-lightness/jquery.ui.slider.css +24 -0
  752. data/public/css/ui-lightness/jquery.ui.tabs.css +18 -0
  753. data/public/css/ui-lightness/jquery.ui.theme.css +249 -0
  754. data/public/css/vader/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
  755. data/public/css/vader/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
  756. data/public/css/vader/images/ui-bg_gloss-wave_16_121212_500x100.png +0 -0
  757. data/public/css/vader/images/ui-bg_highlight-hard_15_888888_1x100.png +0 -0
  758. data/public/css/vader/images/ui-bg_highlight-hard_55_555555_1x100.png +0 -0
  759. data/public/css/vader/images/ui-bg_highlight-soft_35_adadad_1x100.png +0 -0
  760. data/public/css/vader/images/ui-bg_highlight-soft_60_dddddd_1x100.png +0 -0
  761. data/public/css/vader/images/ui-bg_inset-soft_15_121212_1x100.png +0 -0
  762. data/public/css/vader/images/ui-icons_666666_256x240.png +0 -0
  763. data/public/css/vader/images/ui-icons_aaaaaa_256x240.png +0 -0
  764. data/public/css/vader/images/ui-icons_bbbbbb_256x240.png +0 -0
  765. data/public/css/vader/images/ui-icons_c98000_256x240.png +0 -0
  766. data/public/css/vader/images/ui-icons_cccccc_256x240.png +0 -0
  767. data/public/css/vader/images/ui-icons_cd0a0a_256x240.png +0 -0
  768. data/public/css/vader/images/ui-icons_f29a00_256x240.png +0 -0
  769. data/public/css/vader/jquery-ui.css +565 -0
  770. data/public/css/vader/jquery.ui.accordion.css +19 -0
  771. data/public/css/vader/jquery.ui.all.css +11 -0
  772. data/public/css/vader/jquery.ui.autocomplete.css +53 -0
  773. data/public/css/vader/jquery.ui.base.css +11 -0
  774. data/public/css/vader/jquery.ui.button.css +38 -0
  775. data/public/css/vader/jquery.ui.core.css +38 -0
  776. data/public/css/vader/jquery.ui.datepicker.css +68 -0
  777. data/public/css/vader/jquery.ui.dialog.css +21 -0
  778. data/public/css/vader/jquery.ui.progressbar.css +11 -0
  779. data/public/css/vader/jquery.ui.resizable.css +20 -0
  780. data/public/css/vader/jquery.ui.selectable.css +10 -0
  781. data/public/css/vader/jquery.ui.slider.css +24 -0
  782. data/public/css/vader/jquery.ui.tabs.css +18 -0
  783. data/public/css/vader/jquery.ui.theme.css +249 -0
  784. data/public/images/ui-anim_basic_16x16.gif +0 -0
  785. data/public/js/autocomplete.js +183 -0
  786. data/public/js/dictionary.js +93 -0
  787. data/public/js/index.js +217 -0
  788. data/public/js/jquery-1.7.1.min.js +4 -0
  789. data/public/js/jquery-ui-1.8.18.custom.min.js +356 -0
  790. data/test/helper.rb +30 -0
  791. data/test/unit/test_activity.rb +287 -0
  792. data/test/unit/test_application.rb +126 -0
  793. data/test/unit/test_database.rb +21 -0
  794. data/test/unit/test_hourglass.rb +9 -0
  795. data/views/_activity.erb +17 -0
  796. data/views/_current.erb +19 -0
  797. data/views/_today.erb +5 -0
  798. data/views/_week.erb +15 -0
  799. data/views/form.erb +35 -0
  800. data/views/index.erb +39 -0
  801. data/views/layout.erb +21 -0
  802. data/views/popup.erb +48 -0
  803. metadata +1012 -0
@@ -0,0 +1,183 @@
1
+ var activities, tags, projects;
2
+
3
+ function getActivities() {
4
+ $.get('/activities', function(data) {
5
+ var d = new Dictionary();
6
+ $.each(data, function(i, object) {
7
+ d.add(object);
8
+ });
9
+ activities = d;
10
+ }, 'json');
11
+ }
12
+
13
+ function getTags() {
14
+ $.get('/tags', function(data) {
15
+ var d = new Dictionary();
16
+ $.each(data, function(i, name) {
17
+ d.add(name);
18
+ });
19
+ tags = d;
20
+ }, 'json');
21
+ }
22
+
23
+ function splitTags(val) {
24
+ return val.split(/,\s*/);
25
+ }
26
+
27
+ function extractLastTag(term) {
28
+ return splitTags(term).pop();
29
+ }
30
+
31
+ function getProjects() {
32
+ $.get('/projects', function(data) {
33
+ var d = new Dictionary();
34
+ $.each(data, function(i, name) {
35
+ d.add(name);
36
+ });
37
+ projects = d;
38
+ }, 'json');
39
+ }
40
+
41
+ $(function() {
42
+ // these return immediately
43
+ getActivities();
44
+ getTags();
45
+ getProjects();
46
+
47
+ $('input.activity-name').autocomplete({
48
+ minLength: 0,
49
+ delay: 0,
50
+ source: function(request, response) {
51
+ var result = [];
52
+ var parts = request.term.split('@');
53
+ if (parts.length == 2) {
54
+ if (projects != null) {
55
+ var values = projects.match(parts[1]);
56
+ if (values != null) {
57
+ result = values;
58
+ }
59
+ }
60
+ }
61
+ else {
62
+ if (activities != null) {
63
+ var values = activities.match(request.term);
64
+ if (values != null) {
65
+ result = values;
66
+ }
67
+ }
68
+ }
69
+ response(result);
70
+ },
71
+ focus: function(event, ui) {
72
+ var item = ui.item;
73
+ var obj = $(event.target);
74
+ var parts = obj.val().split('@');
75
+
76
+ if (parts.length == 2) {
77
+ /* autocomplete only the project */
78
+ obj.val(parts[0] + '@' + item.value);
79
+ }
80
+ else {
81
+ obj.val(item.value);
82
+ }
83
+
84
+ return false;
85
+ },
86
+ select: function(event, ui) {
87
+ return false;
88
+ }
89
+ });
90
+
91
+ $('input.activity-tags')
92
+ // don't navigate away from the field on tab when selecting an item
93
+ .bind("keydown", function(event) {
94
+ if (event.keyCode === $.ui.keyCode.TAB && $(this).data("autocomplete").menu.active) {
95
+ event.preventDefault();
96
+ }
97
+ })
98
+ .autocomplete({
99
+ minLength: 0,
100
+ delay: 0,
101
+ source: function(request, response) {
102
+ var result = [];
103
+ var term = extractLastTag(request.term);
104
+ if (tags != null) {
105
+ var values = tags.match(term);
106
+ if (values != null) {
107
+ result = values;
108
+ }
109
+ }
110
+ response(result);
111
+ },
112
+ focus: function() {
113
+ // prevent value inserted on focus
114
+ return false;
115
+ },
116
+ select: function(event, ui) {
117
+ var terms = splitTags(this.value);
118
+
119
+ // remove the current input
120
+ terms.pop();
121
+
122
+ // add the selected item
123
+ terms.push(ui.item.value);
124
+
125
+ // add placeholder to get the comma-and-space at the end
126
+ terms.push("");
127
+
128
+ this.value = terms.join(", ");
129
+ return false;
130
+ }
131
+ });
132
+
133
+ var times = []
134
+ for (var h = 0; h < 24; h++) {
135
+ if (h < 10) {
136
+ times.push('0'+h+':00', '0'+h+':15', '0'+h+':30', '0'+h+':45');
137
+ }
138
+ else {
139
+ times.push(h+':00', h+':15', h+':30', h+':45');
140
+ }
141
+ }
142
+ $('.activity-started-at-date, .activity-ended-at-date').datepicker();
143
+ var timeInputs = $('.activity-started-at-time, .activity-ended-at-time').autocomplete({
144
+ minLength: 0,
145
+ delay: 0,
146
+ source: function(request, response) {
147
+ response(times);
148
+ /* get the closest time and highlight it */
149
+ var parts = request.term.split(":");
150
+ if (parts[1]) {
151
+ var min;
152
+ if (parts[1].length == 1) {
153
+ min = parseInt(parts[1]) * 10;
154
+ }
155
+ else if (parts[1].substr(0, 1) == "0") {
156
+ min = parseInt(parts[1].substr(1, 1));
157
+ }
158
+ else {
159
+ min = parseInt(parts[1]);
160
+ }
161
+ min = Math.round(min / 15) * 15;
162
+
163
+ if (min == 0) {
164
+ parts[1] = '00';
165
+ }
166
+ else {
167
+ parts[1] = min;
168
+ }
169
+ }
170
+ else {
171
+ parts[1] = '00';
172
+ }
173
+ var target = parts.join(':');
174
+ var index = times.indexOf(target);
175
+ if (index >= 0) {
176
+ this.menu.activate(new $.Event('mouseover'),
177
+ this.menu.element.find('li:nth-child('+(index+1)+')'));
178
+ }
179
+ },
180
+ }).each(function() {
181
+ $(this).data('autocomplete').menu.element.addClass('activity-time');
182
+ });
183
+ });
@@ -0,0 +1,93 @@
1
+ function Dictionary(attr) {
2
+ this.attr = typeof(attr) == 'undefined' ? null : attr;
3
+ this.entries = {all: []};
4
+ }
5
+
6
+ Dictionary.prototype.getObjectString = function(object) {
7
+ return (this.attr ? object[this.attr] : object).toLowerCase();
8
+ }
9
+
10
+ Dictionary.prototype.add = function(object) {
11
+ var str = this.getObjectString(object);
12
+ return this._add(this.entries, str, 0, object);
13
+ };
14
+
15
+ /* Recursive method to prevent duplicate items from being added
16
+ *
17
+ * NOTE: This does shallow comparisons, so different objects will always
18
+ * be "different" */
19
+ Dictionary.prototype._add = function(entries, str, index, object) {
20
+ var result;
21
+ if (index < str.length) {
22
+ var c = str.charAt(index);
23
+ if (!entries.hasOwnProperty(c)) {
24
+ entries[c] = {all: []};
25
+ }
26
+ result = this._add(entries[c], str, index + 1, object);
27
+ }
28
+ else {
29
+ /* Check to see if we've recorded this value yet. */
30
+ result = (entries.all.indexOf(object) == -1);
31
+ }
32
+
33
+ if (result) {
34
+ entries.all.push(object);
35
+ }
36
+ return result;
37
+ }
38
+
39
+ Dictionary.prototype.remove = function(object) {
40
+ var str = this.getObjectString(object);
41
+ return this._remove(this.entries, str, 0, object);
42
+ }
43
+
44
+ /* Same thing as _add, except remove :) */
45
+ /* DO IT! */
46
+ Dictionary.prototype._remove = function(entries, str, index, object) {
47
+ var result;
48
+ if (index < str.length) {
49
+ var c = str.charAt(index);
50
+ if (!entries.hasOwnProperty(c)) {
51
+ return false;
52
+ }
53
+ else {
54
+ result = this._remove(entries[c], str, index + 1, object);
55
+ if (result) {
56
+ if (entries[c].all.length == 0) {
57
+ /* prune! */
58
+ delete entries[c];
59
+ }
60
+
61
+ var index = entries.all.indexOf(object);
62
+ entries.all.splice(index, 1);
63
+ }
64
+ return result;
65
+ }
66
+ }
67
+ else {
68
+ /* Check to see if the value's in the dictionary. */
69
+ var index = entries.all.indexOf(object);
70
+ if (index >= 0) {
71
+ entries.all.splice(index, 1);
72
+ return true;
73
+ }
74
+ else {
75
+ return false;
76
+ }
77
+ }
78
+ }
79
+
80
+ Dictionary.prototype.match = function(str) {
81
+ var cur = this.entries;
82
+ var all = cur.all;
83
+ var str = str.toLowerCase();
84
+ for (var i = 0; i < str.length; i++) {
85
+ var c = str.charAt(i);
86
+ if (!cur.hasOwnProperty(c)) {
87
+ return null;
88
+ }
89
+ all = cur[c].all;
90
+ cur = cur[c];
91
+ }
92
+ return all;
93
+ }
@@ -0,0 +1,217 @@
1
+ var buttonWidth = 0;
2
+
3
+ function resizeUI() {
4
+ var h = $(window).height();
5
+ var w = $(window).width();
6
+ var t = $('#tabs');
7
+ var outerH = h - t.offset().top - t.next().outerHeight(true);
8
+ t.outerHeight(outerH);
9
+
10
+ var paneH = t.height() - t.find('.ui-tabs-nav').outerHeight(true);
11
+ t.find('.ui-tabs-panel').outerHeight(paneH);
12
+ }
13
+ function isSameDay(one, two) {
14
+ return one.getFullYear() == two.getFullYear() &&
15
+ one.getMonth() == two.getMonth() &&
16
+ one.getDate() == two.getDate()
17
+ }
18
+ function updateUI(data) {
19
+ $('#current-activity').html(data.current);
20
+ $('.stop-tracking').button().find('span').width(buttonWidth);
21
+ $('#today-tab').html(data.today);
22
+ $('#week-tab').html(data.week);
23
+
24
+ if (typeof(activities) == "object") {
25
+ /* add autocomplete stuff */
26
+ if (data.changes) {
27
+ var c = data.changes;
28
+ if (c.new_activity) {
29
+ activities.add(c.new_activity);
30
+ }
31
+ if (c.new_project) {
32
+ projects.add(c.new_project);
33
+ }
34
+ if (c.new_tags) {
35
+ $.each(c.new_tags, function() {
36
+ tags.add(this);
37
+ });
38
+ }
39
+ if (c.delete_activity) {
40
+ activities.remove(c.delete_activity);
41
+ }
42
+ }
43
+ }
44
+ }
45
+ function millisecondsToWords(num) {
46
+ var total_minutes = Math.floor(num / 60000);
47
+ if (total_minutes == 0) {
48
+ return("0min");
49
+ }
50
+
51
+ var minutes = total_minutes % 60;
52
+ var total_hours = Math.floor(total_minutes / 60);
53
+ var hours = total_hours % 24;
54
+ var days = Math.floor(hours / 24);
55
+
56
+ var strings = [];
57
+ if (days > 0) {
58
+ strings.push(days+'d');
59
+ }
60
+ if (hours > 0) {
61
+ strings.push(hours+'h');
62
+ }
63
+ if (minutes > 0) {
64
+ strings.push(minutes+'min');
65
+ }
66
+
67
+ return(strings.join(" "));
68
+ }
69
+ function updateCurrent() {
70
+ var now = new Date();
71
+ $('.activity-duration.activity-running').each(function() {
72
+ var obj = $(this);
73
+ var startedAt = obj.data('startedAt');
74
+ if (typeof(startedAt) == 'undefined') {
75
+ startedAt = new Date(obj.attr('title'));
76
+ obj.data('startedAt', startedAt);
77
+ }
78
+ var diff = now - startedAt;
79
+ obj.html(millisecondsToWords(diff));
80
+ });
81
+ }
82
+
83
+ $(function() {
84
+ $('#tabs').tabs();
85
+
86
+ $('#new-activity-form').submit(function(e) {
87
+ e.preventDefault();
88
+
89
+ var form = $(this);
90
+ var name = form.find('.activity-name');
91
+ var tags = form.find('.activity-tags');
92
+ var data = {
93
+ 'activity[name_with_project]': (name.hasClass('empty') ? "" : name.val()),
94
+ 'activity[tag_names]': (tags.hasClass('empty') ? "" : tags.val()),
95
+ 'activity[running]': 'true'
96
+ };
97
+ $.post('/activities', data, function(data, status) {
98
+ if (data && !data.errors) {
99
+ updateUI(data);
100
+ form.find('.activity-name').val('').blur();
101
+ form.find('.activity-tags').val('').blur();
102
+ }
103
+ }, 'json');
104
+ });
105
+
106
+ $('#new-activity-form .activity-name').focus(function() {
107
+ var obj = $(this);
108
+ if (obj.val() == "Activity") {
109
+ obj.val('');
110
+ }
111
+ obj.removeClass('empty');
112
+ }).blur(function() {
113
+ var obj = $(this);
114
+ if (!obj.val()) {
115
+ obj.val('Activity');
116
+ obj.addClass('empty');
117
+ }
118
+ }).blur();
119
+
120
+ $('#new-activity-form .activity-tags').focus(function() {
121
+ var obj = $(this);
122
+ if (obj.val() == "Tags") {
123
+ obj.val('');
124
+ }
125
+ obj.removeClass('empty');
126
+ }).blur(function() {
127
+ var obj = $(this);
128
+ if (!obj.val()) {
129
+ obj.val('Tags');
130
+ obj.addClass('empty');
131
+ }
132
+ }).blur();
133
+
134
+ $('#activity-dialog').dialog({
135
+ autoOpen: false,
136
+ width: 'auto',
137
+ title: 'Add earlier activity',
138
+ buttons: {
139
+ "Cancel": function() {
140
+ $(this).dialog('close');
141
+ },
142
+ "Save": function() {
143
+ $(this).find('form').submit();
144
+ }
145
+ }
146
+ }).find('form').submit(function(e) {
147
+ e.preventDefault();
148
+ f.parent().dialog('close');
149
+ }).find('input').keydown(function(e) {
150
+ if (e.keyCode == 13) {
151
+ $(this).closest('form').submit();
152
+ }
153
+ });
154
+
155
+ $('.stop-tracking').live('click', function(e) {
156
+ e.preventDefault();
157
+ $.get('/activities/current/stop', function(data) {
158
+ updateUI(data);
159
+ }, 'json')
160
+ });
161
+
162
+ $('#add-earlier-activity').click(function(e) {
163
+ var button = $(this);
164
+ var popup = window.open("/activities/new", '_blank');
165
+ /*
166
+ var popupInterval = setInterval(function() {
167
+ if (popup.closed) {
168
+ clearTimeout(popupInterval);
169
+ button.attr('disabled', false);
170
+ }
171
+ }, 200);
172
+ */
173
+ });
174
+
175
+ var resizeTimer = null;
176
+ $(window).bind('resize', function() {
177
+ if (resizeTimer) clearTimeout(resizeTimer);
178
+ resizeTimer = setTimeout(resizeUI, 100);
179
+ });
180
+ resizeUI();
181
+
182
+ $('button').button();
183
+ buttonWidth = $('.start-tracking span').width();
184
+ $('.stop-tracking span').width(buttonWidth);
185
+
186
+ $('.activity .ui-icon-pencil').live('click', function(e) {
187
+ var icon = $(this);
188
+ var activityId = icon.closest('.activity').attr('class').match(/activity-(\d+)/)[1];
189
+ var popup = window.open("/activities/" + activityId + "/edit", '_blank');
190
+ });
191
+
192
+ var confirmationDialog = $('#confirmation-dialog').dialog({
193
+ autoOpen: false,
194
+ resizable: false,
195
+ modal: true,
196
+ buttons: {
197
+ "Delete": function() {
198
+ var obj = $(this);
199
+ var activityId = obj.data('activityId');
200
+ $.get("/activities/" + activityId + "/delete", function(data) {
201
+ updateUI(data);
202
+ }, 'json');
203
+ obj.dialog("close");
204
+ },
205
+ Cancel: function() {
206
+ $(this).dialog("close");
207
+ }
208
+ }
209
+ });
210
+
211
+ $('.activity .ui-icon-trash').live('click', function(e) {
212
+ var icon = $(this);
213
+ var activityId = icon.closest('.activity').attr('class').match(/activity-(\d+)/)[1];
214
+ confirmationDialog.data('activityId', activityId).dialog('open'); });
215
+
216
+ var updateInterval = setInterval(updateCurrent, 60000);
217
+ });