xrono 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (520) hide show
  1. data/.gitignore +19 -0
  2. data/.rspec +1 -0
  3. data/.travis.yml +20 -0
  4. data/Gemfile +30 -0
  5. data/Gemfile.lock +336 -0
  6. data/LICENSE +21 -0
  7. data/README.md +64 -0
  8. data/RELEASE_NOTES.md +83 -0
  9. data/Rakefile +15 -0
  10. data/XRONO.md +64 -0
  11. data/app/assets/images/chosen-sprite.png +0 -0
  12. data/app/assets/images/grid.png +0 -0
  13. data/app/assets/images/isotope_logo.png +0 -0
  14. data/app/assets/images/logo.png +0 -0
  15. data/app/assets/images/logo_122x40.png +0 -0
  16. data/app/assets/images/logo_97x40.png +0 -0
  17. data/app/assets/images/main_bg.jpg +0 -0
  18. data/app/assets/images/nav_bg.jpg +0 -0
  19. data/app/assets/images/rails.png +0 -0
  20. data/app/assets/images/top_bg.jpg +0 -0
  21. data/app/assets/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
  22. data/app/assets/images/ui-bg_flat_0_fbf9ee_40x100.png +0 -0
  23. data/app/assets/images/ui-bg_flat_55_fbec88_40x100.png +0 -0
  24. data/app/assets/images/ui-bg_flat_65_ffffff_40x100.png +0 -0
  25. data/app/assets/images/ui-bg_flat_75_cccccc_40x100.png +0 -0
  26. data/app/assets/images/ui-bg_flat_75_dadada_40x100.png +0 -0
  27. data/app/assets/images/ui-bg_flat_75_e6e6e6_40x100.png +0 -0
  28. data/app/assets/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
  29. data/app/assets/images/ui-bg_flat_95_fef1ec_40x100.png +0 -0
  30. data/app/assets/images/ui-bg_glass_75_d0e5f5_1x400.png +0 -0
  31. data/app/assets/images/ui-bg_glass_85_dfeffc_1x400.png +0 -0
  32. data/app/assets/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
  33. data/app/assets/images/ui-bg_gloss-wave_55_5c9ccc_500x100.png +0 -0
  34. data/app/assets/images/ui-bg_inset-hard_100_f5f8f9_1x100.png +0 -0
  35. data/app/assets/images/ui-bg_inset-hard_100_fcfdfd_1x100.png +0 -0
  36. data/app/assets/images/ui-icons_217bc0_256x240.png +0 -0
  37. data/app/assets/images/ui-icons_222222_256x240.png +0 -0
  38. data/app/assets/images/ui-icons_2e83ff_256x240.png +0 -0
  39. data/app/assets/images/ui-icons_454545_256x240.png +0 -0
  40. data/app/assets/images/ui-icons_469bdd_256x240.png +0 -0
  41. data/app/assets/images/ui-icons_6da8d5_256x240.png +0 -0
  42. data/app/assets/images/ui-icons_888888_256x240.png +0 -0
  43. data/app/assets/images/ui-icons_cd0a0a_256x240.png +0 -0
  44. data/app/assets/images/ui-icons_d8e7f3_256x240.png +0 -0
  45. data/app/assets/images/ui-icons_f9bd01_256x240.png +0 -0
  46. data/app/assets/javascripts/add_taxonomy.js.erb +307 -0
  47. data/app/assets/javascripts/admin_invoices.js +15 -0
  48. data/app/assets/javascripts/api/v1/clients.js.coffee +3 -0
  49. data/app/assets/javascripts/api/v1/tokens.js.coffee +3 -0
  50. data/app/assets/javascripts/application.js.erb +25 -0
  51. data/app/assets/javascripts/bootstrap-dropdown.js +92 -0
  52. data/app/assets/javascripts/bootstrap-tabs.js +80 -0
  53. data/app/assets/javascripts/bootstrap.js.coffee +4 -0
  54. data/app/assets/javascripts/calendar.js +25 -0
  55. data/app/assets/javascripts/chosen.jquery.js +898 -0
  56. data/app/assets/javascripts/client_login/clients.js.coffee +3 -0
  57. data/app/assets/javascripts/client_login/reports.js.coffee +3 -0
  58. data/app/assets/javascripts/comments.js +16 -0
  59. data/app/assets/javascripts/css_browser_selector.js +8 -0
  60. data/app/assets/javascripts/dashboard.js +3 -0
  61. data/app/assets/javascripts/data_vaults.js.coffee +3 -0
  62. data/app/assets/javascripts/file_attachments.js +9 -0
  63. data/app/assets/javascripts/jquery-tagselector.js +50 -0
  64. data/app/assets/javascripts/jquery-ui-1.8.16.custom.min.js +791 -0
  65. data/app/assets/javascripts/jquery.jeditable.js +543 -0
  66. data/app/assets/javascripts/jquery_ujs.js +336 -0
  67. data/app/assets/javascripts/schedule_modal.js +25 -0
  68. data/app/assets/javascripts/specify_project.js +21 -0
  69. data/app/assets/javascripts/ticket_board.js +104 -0
  70. data/app/assets/stylesheets/_jquery-ui-1.8.16.custom.css +568 -0
  71. data/app/assets/stylesheets/application.css +7 -0
  72. data/app/assets/stylesheets/bootstrap_and_overrides.css.scss +41 -0
  73. data/app/assets/stylesheets/chosen.css +367 -0
  74. data/app/assets/stylesheets/client_login/clients.css.scss +3 -0
  75. data/app/assets/stylesheets/client_login/reports.css.scss +3 -0
  76. data/app/assets/stylesheets/data_vaults.css.scss +3 -0
  77. data/app/assets/stylesheets/jquery-tagselector.css +49 -0
  78. data/app/assets/stylesheets/responsive.scss +650 -0
  79. data/app/assets/stylesheets/screen.scss +303 -0
  80. data/app/controllers/admin/base_controller.rb +18 -0
  81. data/app/controllers/admin/invoices_controller.rb +42 -0
  82. data/app/controllers/admin/payroll_controller.rb +29 -0
  83. data/app/controllers/admin/site_settings_controller.rb +19 -0
  84. data/app/controllers/admin/unentered_time_report_controller.rb +26 -0
  85. data/app/controllers/admin/users_controller.rb +86 -0
  86. data/app/controllers/admin/weekly_time_report_controller.rb +11 -0
  87. data/app/controllers/api/base_controller.rb +14 -0
  88. data/app/controllers/api/v1/base_controller.rb +2 -0
  89. data/app/controllers/api/v1/clients_controller.rb +10 -0
  90. data/app/controllers/api/v1/credentials_controller.rb +10 -0
  91. data/app/controllers/api/v1/projects_controller.rb +27 -0
  92. data/app/controllers/api/v1/tickets_controller.rb +46 -0
  93. data/app/controllers/api/v1/tokens_controller.rb +30 -0
  94. data/app/controllers/api/v1/work_units_controller.rb +23 -0
  95. data/app/controllers/client_login/base_controller.rb +3 -0
  96. data/app/controllers/client_login/clients_controller.rb +35 -0
  97. data/app/controllers/client_login/contacts_controller.rb +53 -0
  98. data/app/controllers/client_login/projects_controller.rb +24 -0
  99. data/app/controllers/client_login/reports_controller.rb +23 -0
  100. data/app/controllers/client_login/tickets_controller.rb +41 -0
  101. data/app/controllers/client_login/work_units_controller.rb +11 -0
  102. data/app/controllers/clients_controller.rb +103 -0
  103. data/app/controllers/comments_controller.rb +75 -0
  104. data/app/controllers/contacts_controller.rb +54 -0
  105. data/app/controllers/dashboard/base_controller.rb +79 -0
  106. data/app/controllers/data_vaults_controller.rb +12 -0
  107. data/app/controllers/doorkeeper/application_controller.rb +33 -0
  108. data/app/controllers/file_attachments_controller.rb +60 -0
  109. data/app/controllers/projects_controller.rb +62 -0
  110. data/app/controllers/tickets_controller.rb +48 -0
  111. data/app/controllers/users_controller.rb +57 -0
  112. data/app/controllers/work_units_controller.rb +114 -0
  113. data/app/controllers/xrono/application_controller.rb +65 -0
  114. data/app/helpers/admin/unentered_time_report_helper.rb +9 -0
  115. data/app/helpers/admin_base_helper.rb +14 -0
  116. data/app/helpers/clients_helper.rb +5 -0
  117. data/app/helpers/dashboard_helper.rb +9 -0
  118. data/app/helpers/gravatar_helper.rb +5 -0
  119. data/app/helpers/refurl_helper.rb +9 -0
  120. data/app/helpers/xrono/application_helper.rb +54 -0
  121. data/app/mailers/notifier.rb +18 -0
  122. data/app/models/chart_data.rb +20 -0
  123. data/app/models/client.rb +98 -0
  124. data/app/models/comment.rb +8 -0
  125. data/app/models/contact.rb +10 -0
  126. data/app/models/data_vault.rb +6 -0
  127. data/app/models/file_attachment.rb +8 -0
  128. data/app/models/project.rb +76 -0
  129. data/app/models/role.rb +3 -0
  130. data/app/models/roles_user.rb +4 -0
  131. data/app/models/site_settings.rb +4 -0
  132. data/app/models/ticket.rb +85 -0
  133. data/app/models/user.rb +147 -0
  134. data/app/models/weekly_time_report.rb +26 -0
  135. data/app/models/work_unit.rb +99 -0
  136. data/app/models/work_unit/finders.rb +67 -0
  137. data/app/views/admin/_nav.html.haml +1 -0
  138. data/app/views/admin/base/index.html.haml +3 -0
  139. data/app/views/admin/base/reports.html.haml +3 -0
  140. data/app/views/admin/invoices/index.html.haml +19 -0
  141. data/app/views/admin/invoices/show.html.haml +57 -0
  142. data/app/views/admin/payroll/index.html.haml +18 -0
  143. data/app/views/admin/payroll/show.html.haml +56 -0
  144. data/app/views/admin/site_settings/edit.html.haml +32 -0
  145. data/app/views/admin/unentered_time_report/_week_navigation.html.haml +6 -0
  146. data/app/views/admin/unentered_time_report/show.html.haml +16 -0
  147. data/app/views/admin/users/_form.html.haml +48 -0
  148. data/app/views/admin/users/_locked_users.html.haml +31 -0
  149. data/app/views/admin/users/_users_table.html.haml +25 -0
  150. data/app/views/admin/users/edit.html.haml +1 -0
  151. data/app/views/admin/users/index.html.haml +14 -0
  152. data/app/views/admin/users/locked_clients.html.haml +13 -0
  153. data/app/views/admin/users/locked_users.html.haml +13 -0
  154. data/app/views/admin/users/new.html.haml +1 -0
  155. data/app/views/admin/users/projects.html.haml +25 -0
  156. data/app/views/admin/users/unlocked_clients.html.haml +13 -0
  157. data/app/views/admin/weekly_time_report/_week_pagination.html.haml +11 -0
  158. data/app/views/admin/weekly_time_report/show.html.haml +41 -0
  159. data/app/views/client_login/_work_unit_index.haml +16 -0
  160. data/app/views/client_login/base/index.html.haml +18 -0
  161. data/app/views/client_login/clients/show.html.haml +32 -0
  162. data/app/views/client_login/contacts/_form.html.haml +34 -0
  163. data/app/views/client_login/contacts/edit.html.haml +4 -0
  164. data/app/views/client_login/contacts/index.html.haml +30 -0
  165. data/app/views/client_login/contacts/new.html.haml +5 -0
  166. data/app/views/client_login/contacts/show.html.haml +26 -0
  167. data/app/views/client_login/projects/_tickets.html.haml +31 -0
  168. data/app/views/client_login/projects/show.html.haml +8 -0
  169. data/app/views/client_login/reports/index.html.haml +4 -0
  170. data/app/views/client_login/reports/work_units.html.haml +96 -0
  171. data/app/views/client_login/tickets/_form.html.haml +33 -0
  172. data/app/views/client_login/tickets/new.html.haml +1 -0
  173. data/app/views/client_login/tickets/show.html.haml +23 -0
  174. data/app/views/client_login/work_units/show.html.haml +18 -0
  175. data/app/views/clients/_breadcrumbs.html.haml +2 -0
  176. data/app/views/clients/_clients_table.html.haml +24 -0
  177. data/app/views/clients/_form.html.haml +34 -0
  178. data/app/views/clients/_projects.html.haml +31 -0
  179. data/app/views/clients/edit.html.haml +1 -0
  180. data/app/views/clients/inactive_clients.html.haml +9 -0
  181. data/app/views/clients/index.html.haml +8 -0
  182. data/app/views/clients/new.html.haml +1 -0
  183. data/app/views/clients/show.html.haml +34 -0
  184. data/app/views/clients/suspended_clients.html.haml +8 -0
  185. data/app/views/comments/_comment.html.haml +46 -0
  186. data/app/views/comments/_comment_form.haml +29 -0
  187. data/app/views/comments/_comments.html.haml +3 -0
  188. data/app/views/contacts/_form.html.haml +34 -0
  189. data/app/views/contacts/edit.html.haml +1 -0
  190. data/app/views/contacts/index.html.haml +23 -0
  191. data/app/views/contacts/new.html.haml +1 -0
  192. data/app/views/contacts/show.html.haml +26 -0
  193. data/app/views/dashboard/base/_two_week_time_report.html.haml +13 -0
  194. data/app/views/dashboard/base/_week_pagination.html.haml +10 -0
  195. data/app/views/dashboard/base/calendar.html.haml +1 -0
  196. data/app/views/dashboard/base/calendar.js.erb +3 -0
  197. data/app/views/dashboard/base/index.html.haml +18 -0
  198. data/app/views/devise/confirmations/new.html.haml +9 -0
  199. data/app/views/devise/mailer/confirmation_instructions.html.haml +4 -0
  200. data/app/views/devise/mailer/reset_password_instructions.html.haml +6 -0
  201. data/app/views/devise/mailer/unlock_instructions.html.haml +5 -0
  202. data/app/views/devise/passwords/edit.html.haml +17 -0
  203. data/app/views/devise/passwords/new.html.haml +12 -0
  204. data/app/views/devise/registrations/edit.html.haml +36 -0
  205. data/app/views/devise/registrations/new.html.haml +32 -0
  206. data/app/views/devise/sessions/new.html.haml +22 -0
  207. data/app/views/devise/shared/_links.haml +15 -0
  208. data/app/views/devise/unlocks/new.html.haml +9 -0
  209. data/app/views/file_attachments/_file_attachment.html.haml +10 -0
  210. data/app/views/file_attachments/_file_attachment_combined.html.haml +30 -0
  211. data/app/views/file_attachments/_file_attachments.html.haml +5 -0
  212. data/app/views/file_attachments/new.html.haml +17 -0
  213. data/app/views/layouts/application.html.haml +32 -0
  214. data/app/views/layouts/doorkeeper.html.haml +31 -0
  215. data/app/views/notifier/daily.text.erb +8 -0
  216. data/app/views/notifier/work_unit_notification.text.erb +17 -0
  217. data/app/views/projects/_breadcrumbs.html.haml +5 -0
  218. data/app/views/projects/_form.html.haml +94 -0
  219. data/app/views/projects/_pie_chart_metrics.html.haml +4 -0
  220. data/app/views/projects/_specify.html.haml +11 -0
  221. data/app/views/projects/_ticket_table.html.haml +36 -0
  222. data/app/views/projects/edit.html.haml +2 -0
  223. data/app/views/projects/new.html.haml +2 -0
  224. data/app/views/projects/show.html.haml +57 -0
  225. data/app/views/shared/_calendar.html.haml +86 -0
  226. data/app/views/shared/_data_vault.html.haml +16 -0
  227. data/app/views/shared/_files_and_comments.html.haml +21 -0
  228. data/app/views/shared/_flashes.html.haml +10 -0
  229. data/app/views/shared/_javascripts.html.haml +8 -0
  230. data/app/views/shared/_menu.html.haml +14 -0
  231. data/app/views/shared/_user_roles.html.haml +7 -0
  232. data/app/views/shared/_work_unit_index.html.haml +24 -0
  233. data/app/views/tickets/_add_ticket.html.haml +27 -0
  234. data/app/views/tickets/_breadcrumbs.html.haml +8 -0
  235. data/app/views/tickets/_form.html.haml +40 -0
  236. data/app/views/tickets/_ticket_detail.html.haml +18 -0
  237. data/app/views/tickets/edit.html.haml +2 -0
  238. data/app/views/tickets/modal_new.html.haml +28 -0
  239. data/app/views/tickets/new.html.haml +1 -0
  240. data/app/views/tickets/show.html.haml +28 -0
  241. data/app/views/tickets/ticket_detail.html.haml +18 -0
  242. data/app/views/users/_change_password_form.haml +13 -0
  243. data/app/views/users/_user_head.html.haml +7 -0
  244. data/app/views/users/edit.haml +34 -0
  245. data/app/views/users/historical_time.html.haml +5 -0
  246. data/app/views/users/index.html.haml +18 -0
  247. data/app/views/users/show.html.haml +13 -0
  248. data/app/views/work_units/_add_work_unit.html.haml +81 -0
  249. data/app/views/work_units/_breadcrumbs.html.haml +11 -0
  250. data/app/views/work_units/_dashboard_line.html.haml +6 -0
  251. data/app/views/work_units/_edit_work_unit.haml +44 -0
  252. data/app/views/work_units/_shared_form.haml +40 -0
  253. data/app/views/work_units/edit.html.haml +2 -0
  254. data/app/views/work_units/index.html.haml +7 -0
  255. data/app/views/work_units/new.html.haml +6 -0
  256. data/app/views/work_units/show.html.haml +25 -0
  257. data/app/workers/daily_notifier_worker.rb +7 -0
  258. data/app/workers/work_unit_notifier_worker.rb +7 -0
  259. data/config.ru +7 -0
  260. data/config/admin_navigation.rb +71 -0
  261. data/config/admin_reports_navigation.rb +6 -0
  262. data/config/boot.rb +6 -0
  263. data/config/client_navigation.rb +64 -0
  264. data/config/cucumber.yml +8 -0
  265. data/config/initializers/00_requirements.rb +2 -0
  266. data/config/initializers/backtrace_silencers.rb +7 -0
  267. data/config/initializers/devise.rb +144 -0
  268. data/config/initializers/doorkeeper.rb +32 -0
  269. data/config/initializers/doorkeeper_monkeypatch.rb +66 -0
  270. data/config/initializers/github_concern.rb +4 -0
  271. data/config/initializers/haml.rb +13 -0
  272. data/config/initializers/inflections.rb +10 -0
  273. data/config/initializers/load_controller_mixins.rb +1 -0
  274. data/config/initializers/mime_types.rb +5 -0
  275. data/config/initializers/paper_clip.rb +1 -0
  276. data/config/initializers/simple_navigation.rb +1 -0
  277. data/config/initializers/wrap_parameters.rb +14 -0
  278. data/config/locales/devise.en.yml +39 -0
  279. data/config/locales/doorkeeper.en.yml +23 -0
  280. data/config/locales/en.yml +201 -0
  281. data/config/locales/faker.en.yml +48 -0
  282. data/config/navigation.rb +78 -0
  283. data/config/rackspace_cloudfiles.yml +14 -0
  284. data/config/routes.rb +113 -0
  285. data/config/secondary_navigation.rb +65 -0
  286. data/config/trinidad.yml +4 -0
  287. data/config/warble.rb +144 -0
  288. data/db/migrate/20100825165612_create_clients.rb +14 -0
  289. data/db/migrate/20100825185313_create_projects.rb +14 -0
  290. data/db/migrate/20100825223943_create_tickets.rb +16 -0
  291. data/db/migrate/20100902174920_create_work_units.rb +14 -0
  292. data/db/migrate/20100902190129_add_missing_fields_to_work_units.rb +13 -0
  293. data/db/migrate/20100904173839_add_guid_to_clients_projects_tickets_and_work_orders.rb +13 -0
  294. data/db/migrate/20100922181642_create_comments.rb +19 -0
  295. data/db/migrate/20100927180254_devise_create_users.rb +32 -0
  296. data/db/migrate/20100927184505_add_details_to_users.rb +13 -0
  297. data/db/migrate/20100927191329_add_user_to_work_units.rb +9 -0
  298. data/db/migrate/20100928163356_create_roles.rb +22 -0
  299. data/db/migrate/20100928203745_create_addresses.rb +19 -0
  300. data/db/migrate/20100928204544_create_contacts.rb +17 -0
  301. data/db/migrate/20101007175626_add_lockable_to_users.rb +11 -0
  302. data/db/migrate/20101020162216_add_paid_at_to_work_units_table.rb +9 -0
  303. data/db/migrate/20101020162516_add_check_number_to_work_units_table.rb +9 -0
  304. data/db/migrate/20101020215135_add_paid_field_to_work_units_table.rb +9 -0
  305. data/db/migrate/20101020215226_add_invoiced_field_to_work_units_table.rb +9 -0
  306. data/db/migrate/20101020215457_remove_paid_at_from_work_units_table.rb +9 -0
  307. data/db/migrate/20101020215624_remove_check_number_from_work_units_table.rb +9 -0
  308. data/db/migrate/20101025161443_add_invoiced_at_to_work_units_table.rb +9 -0
  309. data/db/migrate/20101026151900_add_initials_to_clients.rb +9 -0
  310. data/db/migrate/20101029145059_create_file_attachments.rb +18 -0
  311. data/db/migrate/20101030142615_add_guid_to_users.rb +9 -0
  312. data/db/migrate/20101102145137_add_paid_at_to_work_units.rb +9 -0
  313. data/db/migrate/20101112151337_add_active_to_comments.rb +9 -0
  314. data/db/migrate/20101119172727_add_recieves_email_to_contact.rb +10 -0
  315. data/db/migrate/20101122225423_projects_users.rb +11 -0
  316. data/db/migrate/20101129214537_remove_projects_users_table.rb +11 -0
  317. data/db/migrate/20101130225328_contact_receives_email.rb +9 -0
  318. data/db/migrate/20101202203051_add_address_to_contacts.rb +19 -0
  319. data/db/migrate/20101202214746_remove_address_table.rb +17 -0
  320. data/db/migrate/20101216214304_add_hours_type_to_work_unit.rb +9 -0
  321. data/db/migrate/20101217152455_add_effective_hours_to_work_units.rb +9 -0
  322. data/db/migrate/20101228154820_add_overtime_multiplier_to_clients_table.rb +9 -0
  323. data/db/migrate/20101228154951_add_overtime_multiplier_to_projects_table.rb +9 -0
  324. data/db/migrate/20101228155122_create_site_settings_table.rb +11 -0
  325. data/db/migrate/20110107190927_add_site_logo_columns_to_site_settings.rb +15 -0
  326. data/db/migrate/20110111155513_add_total_yearly_pto_per_user_to_site_settings.rb +9 -0
  327. data/db/migrate/20110111220015_add_not_valid_to_file_attachment.rb +9 -0
  328. data/db/migrate/20110125153818_add_fullwidth_to_users.rb +9 -0
  329. data/db/migrate/20110222162404_add_daily_target_hours_to_users.rb +9 -0
  330. data/db/migrate/20110310021732_add_client_to_site_settings.rb +9 -0
  331. data/db/migrate/20110630194044_add_expanded_calendar_to_user.rb +9 -0
  332. data/db/migrate/20110922175742_add_state_to_tickets.rb +9 -0
  333. data/db/migrate/20111212193345_add_estimated_hours_to_tickets.rb +5 -0
  334. data/db/migrate/20111216152557_add_client_boolean_to_user.rb +5 -0
  335. data/db/migrate/20111220193307_add_repo_and_branch_to_projects_and_ticket.rb +6 -0
  336. data/db/migrate/20111220193619_create_git_pushes.rb +9 -0
  337. data/db/migrate/20111220193620_create_git_commits.rb +10 -0
  338. data/db/migrate/20111220193621_add_user_id_to_git_push.rb +5 -0
  339. data/db/migrate/20111220193622_create_github_concernable_git_pushes.rb +11 -0
  340. data/db/migrate/20111227140859_add_token_to_user.rb +7 -0
  341. data/db/migrate/20120102185406_add_completed_boolean_to_ticket.rb +5 -0
  342. data/db/migrate/20120104132121_add_completed_to_project.rb +5 -0
  343. data/db/migrate/20120124184915_modify_project_for_new_git_integration.rb +11 -0
  344. data/db/migrate/20120125145833_add_rates_to_project.rb +6 -0
  345. data/db/migrate/20120126151009_create_data_vaults.rb +11 -0
  346. data/db/migrate/20120126151341_create_versions.rb +18 -0
  347. data/db/migrate/20120126154403_rename_column_data_to_encrypted_data.rb +8 -0
  348. data/db/migrate/20120221193022_add_index_to_user_id_on_work_units.rb +5 -0
  349. data/db/migrate/20120221195345_acts_as_taggable_on_migration.rb +30 -0
  350. data/db/migrate/20120320212313_remove_timestamps_from_roles_users_table.rb +11 -0
  351. data/db/migrate/20120710034831_create_doorkeeper_tables.rb +42 -0
  352. data/db/migrate/20121021122002_add_missing_indices.rb +21 -0
  353. data/doc/website/favicon.ico +0 -0
  354. data/doc/website/images/clock_box.png +0 -0
  355. data/doc/website/images/demo.png +0 -0
  356. data/doc/website/images/download.png +0 -0
  357. data/doc/website/images/fork_me.png +0 -0
  358. data/doc/website/images/lightbox-blank.gif +0 -0
  359. data/doc/website/images/lightbox-btn-close.gif +0 -0
  360. data/doc/website/images/lightbox-btn-next.gif +0 -0
  361. data/doc/website/images/lightbox-btn-prev.gif +0 -0
  362. data/doc/website/images/lightbox-ico-loading.gif +0 -0
  363. data/doc/website/images/main_bg.png +0 -0
  364. data/doc/website/images/nav_bg.png +0 -0
  365. data/doc/website/images/screen_1.png +0 -0
  366. data/doc/website/images/screen_2.png +0 -0
  367. data/doc/website/images/screen_3.png +0 -0
  368. data/doc/website/images/screen_4.png +0 -0
  369. data/doc/website/images/screen_5.png +0 -0
  370. data/doc/website/images/screen_6.png +0 -0
  371. data/doc/website/images/support.png +0 -0
  372. data/doc/website/images/thumb_1.png +0 -0
  373. data/doc/website/images/thumb_2.png +0 -0
  374. data/doc/website/images/thumb_3.png +0 -0
  375. data/doc/website/images/thumb_4.png +0 -0
  376. data/doc/website/images/thumb_5.png +0 -0
  377. data/doc/website/images/thumb_6.png +0 -0
  378. data/doc/website/images/xrono_logo.png +0 -0
  379. data/doc/website/index.html +274 -0
  380. data/doc/website/javascripts/application.js +18 -0
  381. data/doc/website/javascripts/greyscalebasic_regular.typeface.js +1 -0
  382. data/doc/website/javascripts/jquery.lightbox-0.5.min.js +42 -0
  383. data/doc/website/javascripts/jquery.min.js +32 -0
  384. data/doc/website/javascripts/jquery.tweet.js +181 -0
  385. data/doc/website/javascripts/typeface.js +873 -0
  386. data/doc/website/javascripts/verdana_regular.typeface.js +1 -0
  387. data/doc/website/stylesheets/jquery.lightbox.css +104 -0
  388. data/doc/website/stylesheets/jquery.tweet.css +38 -0
  389. data/doc/website/stylesheets/reset-fonts-grids.css +32 -0
  390. data/doc/website/stylesheets/screen.css +228 -0
  391. data/doc/xrono_dash.png +0 -0
  392. data/doc/xrono_ticket.png +0 -0
  393. data/features/admin/invoices.feature +37 -0
  394. data/features/admin/manage_users.feature +17 -0
  395. data/features/admin/payroll.feature +64 -0
  396. data/features/admin/roles.feature +9 -0
  397. data/features/admin/site_settings.feature +19 -0
  398. data/features/admin/unentered_time_report.feature +38 -0
  399. data/features/admin/weekly_time_report.feature +14 -0
  400. data/features/api/v1/clients_controller.feature +58 -0
  401. data/features/authorization-admin.feature +34 -0
  402. data/features/authorization-non-admin.feature +38 -0
  403. data/features/client_login.feature +15 -0
  404. data/features/collaborative_work_units.feature +112 -0
  405. data/features/daily_emails.feature +11 -0
  406. data/features/dashboard.feature +74 -0
  407. data/features/manage_clients.feature +116 -0
  408. data/features/manage_comments.feature +30 -0
  409. data/features/manage_contacts.feature +56 -0
  410. data/features/manage_file_attachments.feature +51 -0
  411. data/features/manage_projects.feature +92 -0
  412. data/features/manage_self.feature +48 -0
  413. data/features/manage_tickets.feature +74 -0
  414. data/features/manage_users.feature +76 -0
  415. data/features/manage_work_units.feature +115 -0
  416. data/features/mockups/images/asset-tracker-client-show.png +0 -0
  417. data/features/mockups/images/asset-tracker.png +0 -0
  418. data/features/mockups/images/ixi - asset tracker v3 homepage - no time entered modal.png +0 -0
  419. data/features/mockups/images/ixi - asset tracker v3 homepage - schedule on modal.png +0 -0
  420. data/features/mockups/images/ixi - asset tracker v3 homepage.png +0 -0
  421. data/features/mockups/ixi - asset tracker v3 homepage - no time entered modal.bmml +194 -0
  422. data/features/mockups/ixi - asset tracker v3 homepage - schedule on modal.bmml +208 -0
  423. data/features/mockups/ixi - asset tracker v3 homepage.bmml +172 -0
  424. data/features/project_assignment.feature +69 -0
  425. data/features/search_work_units.feature +38 -0
  426. data/features/step_definitions/calendar_expansion_steps.rb +7 -0
  427. data/features/step_definitions/client_login_steps.rb +8 -0
  428. data/features/step_definitions/client_steps.rb +29 -0
  429. data/features/step_definitions/comment_steps.rb +4 -0
  430. data/features/step_definitions/contact_steps.rb +22 -0
  431. data/features/step_definitions/debug_steps.rb +5 -0
  432. data/features/step_definitions/devise_steps.rb +26 -0
  433. data/features/step_definitions/email_steps.rb +74 -0
  434. data/features/step_definitions/file_attachment_steps.rb +8 -0
  435. data/features/step_definitions/modified_web_steps.rb +25 -0
  436. data/features/step_definitions/pickle_steps.rb +101 -0
  437. data/features/step_definitions/project_steps.rb +32 -0
  438. data/features/step_definitions/search_steps.rb +3 -0
  439. data/features/step_definitions/ticket_board_steps.rb +39 -0
  440. data/features/step_definitions/ticket_detail_steps.rb +9 -0
  441. data/features/step_definitions/ticket_steps.rb +12 -0
  442. data/features/step_definitions/unentered_time_report_steps.rb +3 -0
  443. data/features/step_definitions/user_steps.rb +43 -0
  444. data/features/step_definitions/web_steps.rb +274 -0
  445. data/features/step_definitions/weekly_time_report_steps.rb +7 -0
  446. data/features/step_definitions/work_unit_index_steps.rb +8 -0
  447. data/features/step_definitions/work_unit_steps.rb +39 -0
  448. data/features/support/email.rb +21 -0
  449. data/features/support/env.rb +80 -0
  450. data/features/support/paths.rb +96 -0
  451. data/features/support/pickle.rb +26 -0
  452. data/features/support/selectors.rb +51 -0
  453. data/features/support/xrono.rb +19 -0
  454. data/features/work_unit_notifier.feature +11 -0
  455. data/lib/controller_mixins.rb +5 -0
  456. data/lib/controller_mixins/authorization.rb +15 -0
  457. data/lib/controller_mixins/contacts.rb +37 -0
  458. data/lib/controller_mixins/generic.rb +15 -0
  459. data/lib/controller_mixins/tickets.rb +35 -0
  460. data/lib/controller_mixins/work_units.rb +13 -0
  461. data/lib/date_ext.rb +16 -0
  462. data/lib/guid_referenced.rb +19 -0
  463. data/lib/tasks/.gitkeep +0 -0
  464. data/lib/tasks/acts_as_commentable_tasks.rake +4 -0
  465. data/lib/tasks/cucumber.rake +65 -0
  466. data/lib/tasks/git_repo_tasks.rake +47 -0
  467. data/lib/tasks/notifications.rake +8 -0
  468. data/lib/tasks/paperclip_tasks.rake +79 -0
  469. data/lib/xrono.rb +1 -0
  470. data/lib/xrono/engine.rb +45 -0
  471. data/public/404.html +26 -0
  472. data/public/422.html +26 -0
  473. data/public/500.html +26 -0
  474. data/public/favicon.ico +0 -0
  475. data/public/favicon.psd +0 -0
  476. data/public/robots.txt +5 -0
  477. data/public/stylesheets/.gitkeep +0 -0
  478. data/public/stylesheets/ie.css +53 -0
  479. data/public/stylesheets/print.css +57 -0
  480. data/public/stylesheets/screen.css +182 -0
  481. data/script/cucumber +10 -0
  482. data/script/rails +6 -0
  483. data/spec/blueprints.rb +86 -0
  484. data/spec/controllers/api/v1/clients_controller_spec.rb +41 -0
  485. data/spec/controllers/api/v1/projects_controller_spec.rb +54 -0
  486. data/spec/controllers/api/v1/tickets_controller_spec.rb +122 -0
  487. data/spec/controllers/api/v1/tokens_controller_spec.rb +52 -0
  488. data/spec/controllers/client_login/clients_controller_spec.rb +5 -0
  489. data/spec/controllers/client_login/reports_controller_spec.rb +5 -0
  490. data/spec/controllers/data_vaults_controller_spec.rb +5 -0
  491. data/spec/internal/app/controllers/application_controller.rb +5 -0
  492. data/spec/internal/config/admin_navigation.rb +71 -0
  493. data/spec/internal/config/database.yml +14 -0
  494. data/spec/internal/config/database.yml.example +20 -0
  495. data/spec/internal/config/database.yml.mysql +20 -0
  496. data/spec/internal/config/database.yml.mysql.jruby +20 -0
  497. data/spec/internal/config/database.yml.postgres +20 -0
  498. data/spec/internal/config/database.yml.postgres.jruby +20 -0
  499. data/spec/internal/config/navigation.rb +80 -0
  500. data/spec/internal/config/routes.rb +3 -0
  501. data/spec/internal/config/secondary_navigation.rb +65 -0
  502. data/spec/internal/db/schema.rb +296 -0
  503. data/spec/internal/log/.gitignore +1 -0
  504. data/spec/internal/public/favicon.ico +0 -0
  505. data/spec/internal/public/system/attachment_files/2/original/tmp.txt +1 -0
  506. data/spec/internal/public/system/attachment_files/3/original/tmp.txt +1 -0
  507. data/spec/lib/date_ext_spec.rb +40 -0
  508. data/spec/mailers/notifier_spec.rb +9 -0
  509. data/spec/models/client_spec.rb +167 -0
  510. data/spec/models/contact_spec.rb +29 -0
  511. data/spec/models/data_vault_spec.rb +5 -0
  512. data/spec/models/project_spec.rb +115 -0
  513. data/spec/models/ticket_spec.rb +223 -0
  514. data/spec/models/user_spec.rb +258 -0
  515. data/spec/models/work_unit_spec.rb +467 -0
  516. data/spec/spec_helper.rb +44 -0
  517. data/spec/support/xrono/macros.rb +15 -0
  518. data/vendor/plugins/.gitkeep +0 -0
  519. data/xrono.gemspec +50 -0
  520. metadata +1209 -0
@@ -0,0 +1,44 @@
1
+ # Simplecov Setup
2
+ if RUBY_VERSION >= '1.9.2'
3
+ require 'simplecov'
4
+ require 'simplecov-rcov'
5
+ SimpleCov.formatter = SimpleCov::Formatter::RcovFormatter
6
+ SimpleCov.start 'rails' do
7
+ add_filter '/vendor/'
8
+ end
9
+ end
10
+
11
+ ENV["RAILS_ENV"] ||= 'test'
12
+
13
+ require 'xrono'
14
+ require 'combustion'
15
+ Combustion.initialize!
16
+
17
+ require File.expand_path(File.dirname(__FILE__) + "/blueprints")
18
+
19
+ require 'rspec/rails'
20
+ require 'devise/test_helpers'
21
+
22
+ require 'sidekiq/testing'
23
+ require 'shoulda-matchers'
24
+ require 'database_cleaner'
25
+
26
+ # Requires supporting ruby files with custom matchers and macros, etc,
27
+ # in spec/support/ and its subdirectories.
28
+ Dir[Rails.root.join("spec/support/**/*.rb")].each {|f| require f}
29
+ load 'spec/support/xrono/macros.rb'
30
+
31
+ DatabaseCleaner.strategy = :truncation
32
+ DatabaseCleaner.clean
33
+
34
+ RSpec.configure do |config|
35
+ config.mock_with :rspec
36
+ config.include Devise::TestHelpers, :type => :controller
37
+
38
+ config.fixture_path = "#{::Rails.root}/spec/fixtures"
39
+
40
+ config.before(:all) { Sham.reset(:before_all) }
41
+ config.before(:each) { Sham.reset(:before_each) }
42
+
43
+ config.use_transactional_fixtures = true
44
+ end
@@ -0,0 +1,15 @@
1
+ module XronoTestHelper
2
+ module Macros
3
+ def authenticate_user!
4
+ before(:each) do
5
+ request.env['warden'].stub :authenticate! => user
6
+ controller.stub :current_user => user
7
+ user.ensure_authentication_token!
8
+ end
9
+ end
10
+ end
11
+ end
12
+
13
+ RSpec.configure do |config|
14
+ config.extend XronoTestHelper::Macros, :type => :controller
15
+ end
File without changes
@@ -0,0 +1,50 @@
1
+ Gem::Specification.new do |s|
2
+ s.name = 'xrono'
3
+ s.authors = ['Josh Adams', 'Adam Dill', 'Adam Gamble']
4
+ s.summary = 'An asset and time tracking application for consultants and consulting companies.'
5
+ s.description = 'Xrono is an asset and time tracking application for consultants and consulting companies.'
6
+ s.files = `git ls-files`.split("\n")
7
+ s.version = %q(1.0.0)
8
+
9
+ s.add_dependency 'rails', '~> 3.2.8'
10
+ s.add_dependency 'acl9', '~> 0.12.0'
11
+ s.add_dependency 'devise', '~> 1.4.9'
12
+ s.add_dependency 'gravtastic', '~> 3.2.6'
13
+ s.add_dependency 'haml', '~> 3.1.3'
14
+ s.add_dependency 'paperclip', '~> 2.3'
15
+ s.add_dependency 'uuid', '~> 2.3.1'
16
+ s.add_dependency 'jquery-rails', '~> 1.0.17'
17
+ s.add_dependency 'rake', '~> 10.0'
18
+ s.add_dependency 'state_machine', '~> 1.0.2'
19
+ s.add_dependency 'googlecharts', '~> 1.6.8'
20
+ s.add_dependency 'github_concern', '~> 0.1'
21
+ s.add_dependency 'css3-progress-bar-rails', '~> 0.2.2'
22
+ s.add_dependency 'grit', '~> 2.4.0'
23
+ s.add_dependency 'paper_trail', '~> 2.6.0'
24
+ s.add_dependency 'attr_encrypted', '~> 1.2.0'
25
+ s.add_dependency 'acts-as-taggable-on', '~> 2.2.2'
26
+ s.add_dependency 'acts_as_commentable', '~> 3.0.1'
27
+ s.add_dependency 'dynamic_form', '~> 1.0.0'
28
+ s.add_dependency 'kramdown'
29
+ s.add_dependency 'doorkeeper', '~> 0.4.2'
30
+ s.add_dependency 'oauth2'
31
+ s.add_dependency 'sidekiq', '2.0.3'
32
+ s.add_dependency 'simple-navigation-bootstrap'
33
+ s.add_dependency 'sass-rails', '~> 3.2.0'
34
+
35
+ s.add_development_dependency 'capistrano', '~> 2.8.0'
36
+ s.add_development_dependency 'capybara', '~> 1.1.1'
37
+ s.add_development_dependency 'cucumber', '~> 1.1.4'
38
+ s.add_development_dependency 'database_cleaner', '~> 0.7.1'
39
+ s.add_development_dependency 'faker', '~> 0.9.5'
40
+ s.add_development_dependency 'forgery', '= 0.3.10'
41
+ s.add_development_dependency 'launchy', '~> 0.3.7'
42
+ s.add_development_dependency 'machinist', '~> 1.0.6'
43
+ s.add_development_dependency 'pickle', '= 0.4.8'
44
+ s.add_development_dependency 'shoulda-matchers', '~> 1.0'
45
+ s.add_development_dependency 'simplecov', '~> 0.5.0'
46
+ s.add_development_dependency 'simplecov-rcov'
47
+ s.add_development_dependency 'spork', '0.9.0.rc9'
48
+ s.add_development_dependency 'ci_reporter'
49
+ s.add_development_dependency 'rspec-rails'
50
+ end
metadata ADDED
@@ -0,0 +1,1209 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: xrono
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.0
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Josh Adams
9
+ - Adam Dill
10
+ - Adam Gamble
11
+ autorequire:
12
+ bindir: bin
13
+ cert_chain: []
14
+ date: 2012-12-29 00:00:00.000000000 Z
15
+ dependencies:
16
+ - !ruby/object:Gem::Dependency
17
+ name: rails
18
+ requirement: !ruby/object:Gem::Requirement
19
+ none: false
20
+ requirements:
21
+ - - ~>
22
+ - !ruby/object:Gem::Version
23
+ version: 3.2.8
24
+ type: :runtime
25
+ prerelease: false
26
+ version_requirements: !ruby/object:Gem::Requirement
27
+ none: false
28
+ requirements:
29
+ - - ~>
30
+ - !ruby/object:Gem::Version
31
+ version: 3.2.8
32
+ - !ruby/object:Gem::Dependency
33
+ name: acl9
34
+ requirement: !ruby/object:Gem::Requirement
35
+ none: false
36
+ requirements:
37
+ - - ~>
38
+ - !ruby/object:Gem::Version
39
+ version: 0.12.0
40
+ type: :runtime
41
+ prerelease: false
42
+ version_requirements: !ruby/object:Gem::Requirement
43
+ none: false
44
+ requirements:
45
+ - - ~>
46
+ - !ruby/object:Gem::Version
47
+ version: 0.12.0
48
+ - !ruby/object:Gem::Dependency
49
+ name: devise
50
+ requirement: !ruby/object:Gem::Requirement
51
+ none: false
52
+ requirements:
53
+ - - ~>
54
+ - !ruby/object:Gem::Version
55
+ version: 1.4.9
56
+ type: :runtime
57
+ prerelease: false
58
+ version_requirements: !ruby/object:Gem::Requirement
59
+ none: false
60
+ requirements:
61
+ - - ~>
62
+ - !ruby/object:Gem::Version
63
+ version: 1.4.9
64
+ - !ruby/object:Gem::Dependency
65
+ name: gravtastic
66
+ requirement: !ruby/object:Gem::Requirement
67
+ none: false
68
+ requirements:
69
+ - - ~>
70
+ - !ruby/object:Gem::Version
71
+ version: 3.2.6
72
+ type: :runtime
73
+ prerelease: false
74
+ version_requirements: !ruby/object:Gem::Requirement
75
+ none: false
76
+ requirements:
77
+ - - ~>
78
+ - !ruby/object:Gem::Version
79
+ version: 3.2.6
80
+ - !ruby/object:Gem::Dependency
81
+ name: haml
82
+ requirement: !ruby/object:Gem::Requirement
83
+ none: false
84
+ requirements:
85
+ - - ~>
86
+ - !ruby/object:Gem::Version
87
+ version: 3.1.3
88
+ type: :runtime
89
+ prerelease: false
90
+ version_requirements: !ruby/object:Gem::Requirement
91
+ none: false
92
+ requirements:
93
+ - - ~>
94
+ - !ruby/object:Gem::Version
95
+ version: 3.1.3
96
+ - !ruby/object:Gem::Dependency
97
+ name: paperclip
98
+ requirement: !ruby/object:Gem::Requirement
99
+ none: false
100
+ requirements:
101
+ - - ~>
102
+ - !ruby/object:Gem::Version
103
+ version: '2.3'
104
+ type: :runtime
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ none: false
108
+ requirements:
109
+ - - ~>
110
+ - !ruby/object:Gem::Version
111
+ version: '2.3'
112
+ - !ruby/object:Gem::Dependency
113
+ name: uuid
114
+ requirement: !ruby/object:Gem::Requirement
115
+ none: false
116
+ requirements:
117
+ - - ~>
118
+ - !ruby/object:Gem::Version
119
+ version: 2.3.1
120
+ type: :runtime
121
+ prerelease: false
122
+ version_requirements: !ruby/object:Gem::Requirement
123
+ none: false
124
+ requirements:
125
+ - - ~>
126
+ - !ruby/object:Gem::Version
127
+ version: 2.3.1
128
+ - !ruby/object:Gem::Dependency
129
+ name: jquery-rails
130
+ requirement: !ruby/object:Gem::Requirement
131
+ none: false
132
+ requirements:
133
+ - - ~>
134
+ - !ruby/object:Gem::Version
135
+ version: 1.0.17
136
+ type: :runtime
137
+ prerelease: false
138
+ version_requirements: !ruby/object:Gem::Requirement
139
+ none: false
140
+ requirements:
141
+ - - ~>
142
+ - !ruby/object:Gem::Version
143
+ version: 1.0.17
144
+ - !ruby/object:Gem::Dependency
145
+ name: rake
146
+ requirement: !ruby/object:Gem::Requirement
147
+ none: false
148
+ requirements:
149
+ - - ~>
150
+ - !ruby/object:Gem::Version
151
+ version: '10.0'
152
+ type: :runtime
153
+ prerelease: false
154
+ version_requirements: !ruby/object:Gem::Requirement
155
+ none: false
156
+ requirements:
157
+ - - ~>
158
+ - !ruby/object:Gem::Version
159
+ version: '10.0'
160
+ - !ruby/object:Gem::Dependency
161
+ name: state_machine
162
+ requirement: !ruby/object:Gem::Requirement
163
+ none: false
164
+ requirements:
165
+ - - ~>
166
+ - !ruby/object:Gem::Version
167
+ version: 1.0.2
168
+ type: :runtime
169
+ prerelease: false
170
+ version_requirements: !ruby/object:Gem::Requirement
171
+ none: false
172
+ requirements:
173
+ - - ~>
174
+ - !ruby/object:Gem::Version
175
+ version: 1.0.2
176
+ - !ruby/object:Gem::Dependency
177
+ name: googlecharts
178
+ requirement: !ruby/object:Gem::Requirement
179
+ none: false
180
+ requirements:
181
+ - - ~>
182
+ - !ruby/object:Gem::Version
183
+ version: 1.6.8
184
+ type: :runtime
185
+ prerelease: false
186
+ version_requirements: !ruby/object:Gem::Requirement
187
+ none: false
188
+ requirements:
189
+ - - ~>
190
+ - !ruby/object:Gem::Version
191
+ version: 1.6.8
192
+ - !ruby/object:Gem::Dependency
193
+ name: github_concern
194
+ requirement: !ruby/object:Gem::Requirement
195
+ none: false
196
+ requirements:
197
+ - - ~>
198
+ - !ruby/object:Gem::Version
199
+ version: '0.1'
200
+ type: :runtime
201
+ prerelease: false
202
+ version_requirements: !ruby/object:Gem::Requirement
203
+ none: false
204
+ requirements:
205
+ - - ~>
206
+ - !ruby/object:Gem::Version
207
+ version: '0.1'
208
+ - !ruby/object:Gem::Dependency
209
+ name: css3-progress-bar-rails
210
+ requirement: !ruby/object:Gem::Requirement
211
+ none: false
212
+ requirements:
213
+ - - ~>
214
+ - !ruby/object:Gem::Version
215
+ version: 0.2.2
216
+ type: :runtime
217
+ prerelease: false
218
+ version_requirements: !ruby/object:Gem::Requirement
219
+ none: false
220
+ requirements:
221
+ - - ~>
222
+ - !ruby/object:Gem::Version
223
+ version: 0.2.2
224
+ - !ruby/object:Gem::Dependency
225
+ name: grit
226
+ requirement: !ruby/object:Gem::Requirement
227
+ none: false
228
+ requirements:
229
+ - - ~>
230
+ - !ruby/object:Gem::Version
231
+ version: 2.4.0
232
+ type: :runtime
233
+ prerelease: false
234
+ version_requirements: !ruby/object:Gem::Requirement
235
+ none: false
236
+ requirements:
237
+ - - ~>
238
+ - !ruby/object:Gem::Version
239
+ version: 2.4.0
240
+ - !ruby/object:Gem::Dependency
241
+ name: paper_trail
242
+ requirement: !ruby/object:Gem::Requirement
243
+ none: false
244
+ requirements:
245
+ - - ~>
246
+ - !ruby/object:Gem::Version
247
+ version: 2.6.0
248
+ type: :runtime
249
+ prerelease: false
250
+ version_requirements: !ruby/object:Gem::Requirement
251
+ none: false
252
+ requirements:
253
+ - - ~>
254
+ - !ruby/object:Gem::Version
255
+ version: 2.6.0
256
+ - !ruby/object:Gem::Dependency
257
+ name: attr_encrypted
258
+ requirement: !ruby/object:Gem::Requirement
259
+ none: false
260
+ requirements:
261
+ - - ~>
262
+ - !ruby/object:Gem::Version
263
+ version: 1.2.0
264
+ type: :runtime
265
+ prerelease: false
266
+ version_requirements: !ruby/object:Gem::Requirement
267
+ none: false
268
+ requirements:
269
+ - - ~>
270
+ - !ruby/object:Gem::Version
271
+ version: 1.2.0
272
+ - !ruby/object:Gem::Dependency
273
+ name: acts-as-taggable-on
274
+ requirement: !ruby/object:Gem::Requirement
275
+ none: false
276
+ requirements:
277
+ - - ~>
278
+ - !ruby/object:Gem::Version
279
+ version: 2.2.2
280
+ type: :runtime
281
+ prerelease: false
282
+ version_requirements: !ruby/object:Gem::Requirement
283
+ none: false
284
+ requirements:
285
+ - - ~>
286
+ - !ruby/object:Gem::Version
287
+ version: 2.2.2
288
+ - !ruby/object:Gem::Dependency
289
+ name: acts_as_commentable
290
+ requirement: !ruby/object:Gem::Requirement
291
+ none: false
292
+ requirements:
293
+ - - ~>
294
+ - !ruby/object:Gem::Version
295
+ version: 3.0.1
296
+ type: :runtime
297
+ prerelease: false
298
+ version_requirements: !ruby/object:Gem::Requirement
299
+ none: false
300
+ requirements:
301
+ - - ~>
302
+ - !ruby/object:Gem::Version
303
+ version: 3.0.1
304
+ - !ruby/object:Gem::Dependency
305
+ name: dynamic_form
306
+ requirement: !ruby/object:Gem::Requirement
307
+ none: false
308
+ requirements:
309
+ - - ~>
310
+ - !ruby/object:Gem::Version
311
+ version: 1.0.0
312
+ type: :runtime
313
+ prerelease: false
314
+ version_requirements: !ruby/object:Gem::Requirement
315
+ none: false
316
+ requirements:
317
+ - - ~>
318
+ - !ruby/object:Gem::Version
319
+ version: 1.0.0
320
+ - !ruby/object:Gem::Dependency
321
+ name: kramdown
322
+ requirement: !ruby/object:Gem::Requirement
323
+ none: false
324
+ requirements:
325
+ - - ! '>='
326
+ - !ruby/object:Gem::Version
327
+ version: '0'
328
+ type: :runtime
329
+ prerelease: false
330
+ version_requirements: !ruby/object:Gem::Requirement
331
+ none: false
332
+ requirements:
333
+ - - ! '>='
334
+ - !ruby/object:Gem::Version
335
+ version: '0'
336
+ - !ruby/object:Gem::Dependency
337
+ name: doorkeeper
338
+ requirement: !ruby/object:Gem::Requirement
339
+ none: false
340
+ requirements:
341
+ - - ~>
342
+ - !ruby/object:Gem::Version
343
+ version: 0.4.2
344
+ type: :runtime
345
+ prerelease: false
346
+ version_requirements: !ruby/object:Gem::Requirement
347
+ none: false
348
+ requirements:
349
+ - - ~>
350
+ - !ruby/object:Gem::Version
351
+ version: 0.4.2
352
+ - !ruby/object:Gem::Dependency
353
+ name: oauth2
354
+ requirement: !ruby/object:Gem::Requirement
355
+ none: false
356
+ requirements:
357
+ - - ! '>='
358
+ - !ruby/object:Gem::Version
359
+ version: '0'
360
+ type: :runtime
361
+ prerelease: false
362
+ version_requirements: !ruby/object:Gem::Requirement
363
+ none: false
364
+ requirements:
365
+ - - ! '>='
366
+ - !ruby/object:Gem::Version
367
+ version: '0'
368
+ - !ruby/object:Gem::Dependency
369
+ name: sidekiq
370
+ requirement: !ruby/object:Gem::Requirement
371
+ none: false
372
+ requirements:
373
+ - - '='
374
+ - !ruby/object:Gem::Version
375
+ version: 2.0.3
376
+ type: :runtime
377
+ prerelease: false
378
+ version_requirements: !ruby/object:Gem::Requirement
379
+ none: false
380
+ requirements:
381
+ - - '='
382
+ - !ruby/object:Gem::Version
383
+ version: 2.0.3
384
+ - !ruby/object:Gem::Dependency
385
+ name: simple-navigation-bootstrap
386
+ requirement: !ruby/object:Gem::Requirement
387
+ none: false
388
+ requirements:
389
+ - - ! '>='
390
+ - !ruby/object:Gem::Version
391
+ version: '0'
392
+ type: :runtime
393
+ prerelease: false
394
+ version_requirements: !ruby/object:Gem::Requirement
395
+ none: false
396
+ requirements:
397
+ - - ! '>='
398
+ - !ruby/object:Gem::Version
399
+ version: '0'
400
+ - !ruby/object:Gem::Dependency
401
+ name: sass-rails
402
+ requirement: !ruby/object:Gem::Requirement
403
+ none: false
404
+ requirements:
405
+ - - ~>
406
+ - !ruby/object:Gem::Version
407
+ version: 3.2.0
408
+ type: :runtime
409
+ prerelease: false
410
+ version_requirements: !ruby/object:Gem::Requirement
411
+ none: false
412
+ requirements:
413
+ - - ~>
414
+ - !ruby/object:Gem::Version
415
+ version: 3.2.0
416
+ - !ruby/object:Gem::Dependency
417
+ name: capistrano
418
+ requirement: !ruby/object:Gem::Requirement
419
+ none: false
420
+ requirements:
421
+ - - ~>
422
+ - !ruby/object:Gem::Version
423
+ version: 2.8.0
424
+ type: :development
425
+ prerelease: false
426
+ version_requirements: !ruby/object:Gem::Requirement
427
+ none: false
428
+ requirements:
429
+ - - ~>
430
+ - !ruby/object:Gem::Version
431
+ version: 2.8.0
432
+ - !ruby/object:Gem::Dependency
433
+ name: capybara
434
+ requirement: !ruby/object:Gem::Requirement
435
+ none: false
436
+ requirements:
437
+ - - ~>
438
+ - !ruby/object:Gem::Version
439
+ version: 1.1.1
440
+ type: :development
441
+ prerelease: false
442
+ version_requirements: !ruby/object:Gem::Requirement
443
+ none: false
444
+ requirements:
445
+ - - ~>
446
+ - !ruby/object:Gem::Version
447
+ version: 1.1.1
448
+ - !ruby/object:Gem::Dependency
449
+ name: cucumber
450
+ requirement: !ruby/object:Gem::Requirement
451
+ none: false
452
+ requirements:
453
+ - - ~>
454
+ - !ruby/object:Gem::Version
455
+ version: 1.1.4
456
+ type: :development
457
+ prerelease: false
458
+ version_requirements: !ruby/object:Gem::Requirement
459
+ none: false
460
+ requirements:
461
+ - - ~>
462
+ - !ruby/object:Gem::Version
463
+ version: 1.1.4
464
+ - !ruby/object:Gem::Dependency
465
+ name: database_cleaner
466
+ requirement: !ruby/object:Gem::Requirement
467
+ none: false
468
+ requirements:
469
+ - - ~>
470
+ - !ruby/object:Gem::Version
471
+ version: 0.7.1
472
+ type: :development
473
+ prerelease: false
474
+ version_requirements: !ruby/object:Gem::Requirement
475
+ none: false
476
+ requirements:
477
+ - - ~>
478
+ - !ruby/object:Gem::Version
479
+ version: 0.7.1
480
+ - !ruby/object:Gem::Dependency
481
+ name: faker
482
+ requirement: !ruby/object:Gem::Requirement
483
+ none: false
484
+ requirements:
485
+ - - ~>
486
+ - !ruby/object:Gem::Version
487
+ version: 0.9.5
488
+ type: :development
489
+ prerelease: false
490
+ version_requirements: !ruby/object:Gem::Requirement
491
+ none: false
492
+ requirements:
493
+ - - ~>
494
+ - !ruby/object:Gem::Version
495
+ version: 0.9.5
496
+ - !ruby/object:Gem::Dependency
497
+ name: forgery
498
+ requirement: !ruby/object:Gem::Requirement
499
+ none: false
500
+ requirements:
501
+ - - '='
502
+ - !ruby/object:Gem::Version
503
+ version: 0.3.10
504
+ type: :development
505
+ prerelease: false
506
+ version_requirements: !ruby/object:Gem::Requirement
507
+ none: false
508
+ requirements:
509
+ - - '='
510
+ - !ruby/object:Gem::Version
511
+ version: 0.3.10
512
+ - !ruby/object:Gem::Dependency
513
+ name: launchy
514
+ requirement: !ruby/object:Gem::Requirement
515
+ none: false
516
+ requirements:
517
+ - - ~>
518
+ - !ruby/object:Gem::Version
519
+ version: 0.3.7
520
+ type: :development
521
+ prerelease: false
522
+ version_requirements: !ruby/object:Gem::Requirement
523
+ none: false
524
+ requirements:
525
+ - - ~>
526
+ - !ruby/object:Gem::Version
527
+ version: 0.3.7
528
+ - !ruby/object:Gem::Dependency
529
+ name: machinist
530
+ requirement: !ruby/object:Gem::Requirement
531
+ none: false
532
+ requirements:
533
+ - - ~>
534
+ - !ruby/object:Gem::Version
535
+ version: 1.0.6
536
+ type: :development
537
+ prerelease: false
538
+ version_requirements: !ruby/object:Gem::Requirement
539
+ none: false
540
+ requirements:
541
+ - - ~>
542
+ - !ruby/object:Gem::Version
543
+ version: 1.0.6
544
+ - !ruby/object:Gem::Dependency
545
+ name: pickle
546
+ requirement: !ruby/object:Gem::Requirement
547
+ none: false
548
+ requirements:
549
+ - - '='
550
+ - !ruby/object:Gem::Version
551
+ version: 0.4.8
552
+ type: :development
553
+ prerelease: false
554
+ version_requirements: !ruby/object:Gem::Requirement
555
+ none: false
556
+ requirements:
557
+ - - '='
558
+ - !ruby/object:Gem::Version
559
+ version: 0.4.8
560
+ - !ruby/object:Gem::Dependency
561
+ name: shoulda-matchers
562
+ requirement: !ruby/object:Gem::Requirement
563
+ none: false
564
+ requirements:
565
+ - - ~>
566
+ - !ruby/object:Gem::Version
567
+ version: '1.0'
568
+ type: :development
569
+ prerelease: false
570
+ version_requirements: !ruby/object:Gem::Requirement
571
+ none: false
572
+ requirements:
573
+ - - ~>
574
+ - !ruby/object:Gem::Version
575
+ version: '1.0'
576
+ - !ruby/object:Gem::Dependency
577
+ name: simplecov
578
+ requirement: !ruby/object:Gem::Requirement
579
+ none: false
580
+ requirements:
581
+ - - ~>
582
+ - !ruby/object:Gem::Version
583
+ version: 0.5.0
584
+ type: :development
585
+ prerelease: false
586
+ version_requirements: !ruby/object:Gem::Requirement
587
+ none: false
588
+ requirements:
589
+ - - ~>
590
+ - !ruby/object:Gem::Version
591
+ version: 0.5.0
592
+ - !ruby/object:Gem::Dependency
593
+ name: simplecov-rcov
594
+ requirement: !ruby/object:Gem::Requirement
595
+ none: false
596
+ requirements:
597
+ - - ! '>='
598
+ - !ruby/object:Gem::Version
599
+ version: '0'
600
+ type: :development
601
+ prerelease: false
602
+ version_requirements: !ruby/object:Gem::Requirement
603
+ none: false
604
+ requirements:
605
+ - - ! '>='
606
+ - !ruby/object:Gem::Version
607
+ version: '0'
608
+ - !ruby/object:Gem::Dependency
609
+ name: spork
610
+ requirement: !ruby/object:Gem::Requirement
611
+ none: false
612
+ requirements:
613
+ - - '='
614
+ - !ruby/object:Gem::Version
615
+ version: 0.9.0.rc9
616
+ type: :development
617
+ prerelease: false
618
+ version_requirements: !ruby/object:Gem::Requirement
619
+ none: false
620
+ requirements:
621
+ - - '='
622
+ - !ruby/object:Gem::Version
623
+ version: 0.9.0.rc9
624
+ - !ruby/object:Gem::Dependency
625
+ name: ci_reporter
626
+ requirement: !ruby/object:Gem::Requirement
627
+ none: false
628
+ requirements:
629
+ - - ! '>='
630
+ - !ruby/object:Gem::Version
631
+ version: '0'
632
+ type: :development
633
+ prerelease: false
634
+ version_requirements: !ruby/object:Gem::Requirement
635
+ none: false
636
+ requirements:
637
+ - - ! '>='
638
+ - !ruby/object:Gem::Version
639
+ version: '0'
640
+ - !ruby/object:Gem::Dependency
641
+ name: rspec-rails
642
+ requirement: !ruby/object:Gem::Requirement
643
+ none: false
644
+ requirements:
645
+ - - ! '>='
646
+ - !ruby/object:Gem::Version
647
+ version: '0'
648
+ type: :development
649
+ prerelease: false
650
+ version_requirements: !ruby/object:Gem::Requirement
651
+ none: false
652
+ requirements:
653
+ - - ! '>='
654
+ - !ruby/object:Gem::Version
655
+ version: '0'
656
+ description: Xrono is an asset and time tracking application for consultants and consulting
657
+ companies.
658
+ email:
659
+ executables: []
660
+ extensions: []
661
+ extra_rdoc_files: []
662
+ files:
663
+ - .gitignore
664
+ - .rspec
665
+ - .travis.yml
666
+ - Gemfile
667
+ - Gemfile.lock
668
+ - LICENSE
669
+ - README.md
670
+ - RELEASE_NOTES.md
671
+ - Rakefile
672
+ - XRONO.md
673
+ - app/assets/images/chosen-sprite.png
674
+ - app/assets/images/grid.png
675
+ - app/assets/images/isotope_logo.png
676
+ - app/assets/images/logo.png
677
+ - app/assets/images/logo_122x40.png
678
+ - app/assets/images/logo_97x40.png
679
+ - app/assets/images/main_bg.jpg
680
+ - app/assets/images/nav_bg.jpg
681
+ - app/assets/images/rails.png
682
+ - app/assets/images/top_bg.jpg
683
+ - app/assets/images/ui-bg_flat_0_aaaaaa_40x100.png
684
+ - app/assets/images/ui-bg_flat_0_fbf9ee_40x100.png
685
+ - app/assets/images/ui-bg_flat_55_fbec88_40x100.png
686
+ - app/assets/images/ui-bg_flat_65_ffffff_40x100.png
687
+ - app/assets/images/ui-bg_flat_75_cccccc_40x100.png
688
+ - app/assets/images/ui-bg_flat_75_dadada_40x100.png
689
+ - app/assets/images/ui-bg_flat_75_e6e6e6_40x100.png
690
+ - app/assets/images/ui-bg_flat_75_ffffff_40x100.png
691
+ - app/assets/images/ui-bg_flat_95_fef1ec_40x100.png
692
+ - app/assets/images/ui-bg_glass_75_d0e5f5_1x400.png
693
+ - app/assets/images/ui-bg_glass_85_dfeffc_1x400.png
694
+ - app/assets/images/ui-bg_glass_95_fef1ec_1x400.png
695
+ - app/assets/images/ui-bg_gloss-wave_55_5c9ccc_500x100.png
696
+ - app/assets/images/ui-bg_inset-hard_100_f5f8f9_1x100.png
697
+ - app/assets/images/ui-bg_inset-hard_100_fcfdfd_1x100.png
698
+ - app/assets/images/ui-icons_217bc0_256x240.png
699
+ - app/assets/images/ui-icons_222222_256x240.png
700
+ - app/assets/images/ui-icons_2e83ff_256x240.png
701
+ - app/assets/images/ui-icons_454545_256x240.png
702
+ - app/assets/images/ui-icons_469bdd_256x240.png
703
+ - app/assets/images/ui-icons_6da8d5_256x240.png
704
+ - app/assets/images/ui-icons_888888_256x240.png
705
+ - app/assets/images/ui-icons_cd0a0a_256x240.png
706
+ - app/assets/images/ui-icons_d8e7f3_256x240.png
707
+ - app/assets/images/ui-icons_f9bd01_256x240.png
708
+ - app/assets/javascripts/add_taxonomy.js.erb
709
+ - app/assets/javascripts/admin_invoices.js
710
+ - app/assets/javascripts/api/v1/clients.js.coffee
711
+ - app/assets/javascripts/api/v1/tokens.js.coffee
712
+ - app/assets/javascripts/application.js.erb
713
+ - app/assets/javascripts/bootstrap-dropdown.js
714
+ - app/assets/javascripts/bootstrap-tabs.js
715
+ - app/assets/javascripts/bootstrap.js.coffee
716
+ - app/assets/javascripts/calendar.js
717
+ - app/assets/javascripts/chosen.jquery.js
718
+ - app/assets/javascripts/client_login/clients.js.coffee
719
+ - app/assets/javascripts/client_login/reports.js.coffee
720
+ - app/assets/javascripts/comments.js
721
+ - app/assets/javascripts/css_browser_selector.js
722
+ - app/assets/javascripts/dashboard.js
723
+ - app/assets/javascripts/data_vaults.js.coffee
724
+ - app/assets/javascripts/file_attachments.js
725
+ - app/assets/javascripts/jquery-tagselector.js
726
+ - app/assets/javascripts/jquery-ui-1.8.16.custom.min.js
727
+ - app/assets/javascripts/jquery.jeditable.js
728
+ - app/assets/javascripts/jquery_ujs.js
729
+ - app/assets/javascripts/schedule_modal.js
730
+ - app/assets/javascripts/specify_project.js
731
+ - app/assets/javascripts/ticket_board.js
732
+ - app/assets/stylesheets/_jquery-ui-1.8.16.custom.css
733
+ - app/assets/stylesheets/application.css
734
+ - app/assets/stylesheets/bootstrap_and_overrides.css.scss
735
+ - app/assets/stylesheets/chosen.css
736
+ - app/assets/stylesheets/client_login/clients.css.scss
737
+ - app/assets/stylesheets/client_login/reports.css.scss
738
+ - app/assets/stylesheets/data_vaults.css.scss
739
+ - app/assets/stylesheets/jquery-tagselector.css
740
+ - app/assets/stylesheets/responsive.scss
741
+ - app/assets/stylesheets/screen.scss
742
+ - app/controllers/admin/base_controller.rb
743
+ - app/controllers/admin/invoices_controller.rb
744
+ - app/controllers/admin/payroll_controller.rb
745
+ - app/controllers/admin/site_settings_controller.rb
746
+ - app/controllers/admin/unentered_time_report_controller.rb
747
+ - app/controllers/admin/users_controller.rb
748
+ - app/controllers/admin/weekly_time_report_controller.rb
749
+ - app/controllers/api/base_controller.rb
750
+ - app/controllers/api/v1/base_controller.rb
751
+ - app/controllers/api/v1/clients_controller.rb
752
+ - app/controllers/api/v1/credentials_controller.rb
753
+ - app/controllers/api/v1/projects_controller.rb
754
+ - app/controllers/api/v1/tickets_controller.rb
755
+ - app/controllers/api/v1/tokens_controller.rb
756
+ - app/controllers/api/v1/work_units_controller.rb
757
+ - app/controllers/client_login/base_controller.rb
758
+ - app/controllers/client_login/clients_controller.rb
759
+ - app/controllers/client_login/contacts_controller.rb
760
+ - app/controllers/client_login/projects_controller.rb
761
+ - app/controllers/client_login/reports_controller.rb
762
+ - app/controllers/client_login/tickets_controller.rb
763
+ - app/controllers/client_login/work_units_controller.rb
764
+ - app/controllers/clients_controller.rb
765
+ - app/controllers/comments_controller.rb
766
+ - app/controllers/contacts_controller.rb
767
+ - app/controllers/dashboard/base_controller.rb
768
+ - app/controllers/data_vaults_controller.rb
769
+ - app/controllers/doorkeeper/application_controller.rb
770
+ - app/controllers/file_attachments_controller.rb
771
+ - app/controllers/projects_controller.rb
772
+ - app/controllers/tickets_controller.rb
773
+ - app/controllers/users_controller.rb
774
+ - app/controllers/work_units_controller.rb
775
+ - app/controllers/xrono/application_controller.rb
776
+ - app/helpers/admin/unentered_time_report_helper.rb
777
+ - app/helpers/admin_base_helper.rb
778
+ - app/helpers/clients_helper.rb
779
+ - app/helpers/dashboard_helper.rb
780
+ - app/helpers/gravatar_helper.rb
781
+ - app/helpers/refurl_helper.rb
782
+ - app/helpers/xrono/application_helper.rb
783
+ - app/mailers/notifier.rb
784
+ - app/models/chart_data.rb
785
+ - app/models/client.rb
786
+ - app/models/comment.rb
787
+ - app/models/contact.rb
788
+ - app/models/data_vault.rb
789
+ - app/models/file_attachment.rb
790
+ - app/models/project.rb
791
+ - app/models/role.rb
792
+ - app/models/roles_user.rb
793
+ - app/models/site_settings.rb
794
+ - app/models/ticket.rb
795
+ - app/models/user.rb
796
+ - app/models/weekly_time_report.rb
797
+ - app/models/work_unit.rb
798
+ - app/models/work_unit/finders.rb
799
+ - app/views/admin/_nav.html.haml
800
+ - app/views/admin/base/index.html.haml
801
+ - app/views/admin/base/reports.html.haml
802
+ - app/views/admin/invoices/index.html.haml
803
+ - app/views/admin/invoices/show.html.haml
804
+ - app/views/admin/payroll/index.html.haml
805
+ - app/views/admin/payroll/show.html.haml
806
+ - app/views/admin/site_settings/edit.html.haml
807
+ - app/views/admin/unentered_time_report/_week_navigation.html.haml
808
+ - app/views/admin/unentered_time_report/show.html.haml
809
+ - app/views/admin/users/_form.html.haml
810
+ - app/views/admin/users/_locked_users.html.haml
811
+ - app/views/admin/users/_users_table.html.haml
812
+ - app/views/admin/users/edit.html.haml
813
+ - app/views/admin/users/index.html.haml
814
+ - app/views/admin/users/locked_clients.html.haml
815
+ - app/views/admin/users/locked_users.html.haml
816
+ - app/views/admin/users/new.html.haml
817
+ - app/views/admin/users/projects.html.haml
818
+ - app/views/admin/users/unlocked_clients.html.haml
819
+ - app/views/admin/weekly_time_report/_week_pagination.html.haml
820
+ - app/views/admin/weekly_time_report/show.html.haml
821
+ - app/views/client_login/_work_unit_index.haml
822
+ - app/views/client_login/base/index.html.haml
823
+ - app/views/client_login/clients/show.html.haml
824
+ - app/views/client_login/contacts/_form.html.haml
825
+ - app/views/client_login/contacts/edit.html.haml
826
+ - app/views/client_login/contacts/index.html.haml
827
+ - app/views/client_login/contacts/new.html.haml
828
+ - app/views/client_login/contacts/show.html.haml
829
+ - app/views/client_login/projects/_tickets.html.haml
830
+ - app/views/client_login/projects/show.html.haml
831
+ - app/views/client_login/reports/index.html.haml
832
+ - app/views/client_login/reports/work_units.html.haml
833
+ - app/views/client_login/tickets/_form.html.haml
834
+ - app/views/client_login/tickets/new.html.haml
835
+ - app/views/client_login/tickets/show.html.haml
836
+ - app/views/client_login/work_units/show.html.haml
837
+ - app/views/clients/_breadcrumbs.html.haml
838
+ - app/views/clients/_clients_table.html.haml
839
+ - app/views/clients/_form.html.haml
840
+ - app/views/clients/_projects.html.haml
841
+ - app/views/clients/edit.html.haml
842
+ - app/views/clients/inactive_clients.html.haml
843
+ - app/views/clients/index.html.haml
844
+ - app/views/clients/new.html.haml
845
+ - app/views/clients/show.html.haml
846
+ - app/views/clients/suspended_clients.html.haml
847
+ - app/views/comments/_comment.html.haml
848
+ - app/views/comments/_comment_form.haml
849
+ - app/views/comments/_comments.html.haml
850
+ - app/views/contacts/_form.html.haml
851
+ - app/views/contacts/edit.html.haml
852
+ - app/views/contacts/index.html.haml
853
+ - app/views/contacts/new.html.haml
854
+ - app/views/contacts/show.html.haml
855
+ - app/views/dashboard/base/_two_week_time_report.html.haml
856
+ - app/views/dashboard/base/_week_pagination.html.haml
857
+ - app/views/dashboard/base/calendar.html.haml
858
+ - app/views/dashboard/base/calendar.js.erb
859
+ - app/views/dashboard/base/index.html.haml
860
+ - app/views/devise/confirmations/new.html.haml
861
+ - app/views/devise/mailer/confirmation_instructions.html.haml
862
+ - app/views/devise/mailer/reset_password_instructions.html.haml
863
+ - app/views/devise/mailer/unlock_instructions.html.haml
864
+ - app/views/devise/passwords/edit.html.haml
865
+ - app/views/devise/passwords/new.html.haml
866
+ - app/views/devise/registrations/edit.html.haml
867
+ - app/views/devise/registrations/new.html.haml
868
+ - app/views/devise/sessions/new.html.haml
869
+ - app/views/devise/shared/_links.haml
870
+ - app/views/devise/unlocks/new.html.haml
871
+ - app/views/file_attachments/_file_attachment.html.haml
872
+ - app/views/file_attachments/_file_attachment_combined.html.haml
873
+ - app/views/file_attachments/_file_attachments.html.haml
874
+ - app/views/file_attachments/new.html.haml
875
+ - app/views/layouts/application.html.haml
876
+ - app/views/layouts/doorkeeper.html.haml
877
+ - app/views/notifier/daily.text.erb
878
+ - app/views/notifier/work_unit_notification.text.erb
879
+ - app/views/projects/_breadcrumbs.html.haml
880
+ - app/views/projects/_form.html.haml
881
+ - app/views/projects/_pie_chart_metrics.html.haml
882
+ - app/views/projects/_specify.html.haml
883
+ - app/views/projects/_ticket_table.html.haml
884
+ - app/views/projects/edit.html.haml
885
+ - app/views/projects/new.html.haml
886
+ - app/views/projects/show.html.haml
887
+ - app/views/shared/_calendar.html.haml
888
+ - app/views/shared/_data_vault.html.haml
889
+ - app/views/shared/_files_and_comments.html.haml
890
+ - app/views/shared/_flashes.html.haml
891
+ - app/views/shared/_javascripts.html.haml
892
+ - app/views/shared/_menu.html.haml
893
+ - app/views/shared/_user_roles.html.haml
894
+ - app/views/shared/_work_unit_index.html.haml
895
+ - app/views/tickets/_add_ticket.html.haml
896
+ - app/views/tickets/_breadcrumbs.html.haml
897
+ - app/views/tickets/_form.html.haml
898
+ - app/views/tickets/_ticket_detail.html.haml
899
+ - app/views/tickets/edit.html.haml
900
+ - app/views/tickets/modal_new.html.haml
901
+ - app/views/tickets/new.html.haml
902
+ - app/views/tickets/show.html.haml
903
+ - app/views/tickets/ticket_detail.html.haml
904
+ - app/views/users/_change_password_form.haml
905
+ - app/views/users/_user_head.html.haml
906
+ - app/views/users/edit.haml
907
+ - app/views/users/historical_time.html.haml
908
+ - app/views/users/index.html.haml
909
+ - app/views/users/show.html.haml
910
+ - app/views/work_units/_add_work_unit.html.haml
911
+ - app/views/work_units/_breadcrumbs.html.haml
912
+ - app/views/work_units/_dashboard_line.html.haml
913
+ - app/views/work_units/_edit_work_unit.haml
914
+ - app/views/work_units/_shared_form.haml
915
+ - app/views/work_units/edit.html.haml
916
+ - app/views/work_units/index.html.haml
917
+ - app/views/work_units/new.html.haml
918
+ - app/views/work_units/show.html.haml
919
+ - app/workers/daily_notifier_worker.rb
920
+ - app/workers/work_unit_notifier_worker.rb
921
+ - config.ru
922
+ - config/admin_navigation.rb
923
+ - config/admin_reports_navigation.rb
924
+ - config/boot.rb
925
+ - config/client_navigation.rb
926
+ - config/cucumber.yml
927
+ - config/initializers/00_requirements.rb
928
+ - config/initializers/backtrace_silencers.rb
929
+ - config/initializers/devise.rb
930
+ - config/initializers/doorkeeper.rb
931
+ - config/initializers/doorkeeper_monkeypatch.rb
932
+ - config/initializers/github_concern.rb
933
+ - config/initializers/haml.rb
934
+ - config/initializers/inflections.rb
935
+ - config/initializers/load_controller_mixins.rb
936
+ - config/initializers/mime_types.rb
937
+ - config/initializers/paper_clip.rb
938
+ - config/initializers/simple_navigation.rb
939
+ - config/initializers/wrap_parameters.rb
940
+ - config/locales/devise.en.yml
941
+ - config/locales/doorkeeper.en.yml
942
+ - config/locales/en.yml
943
+ - config/locales/faker.en.yml
944
+ - config/navigation.rb
945
+ - config/rackspace_cloudfiles.yml
946
+ - config/routes.rb
947
+ - config/secondary_navigation.rb
948
+ - config/trinidad.yml
949
+ - config/warble.rb
950
+ - db/migrate/20100825165612_create_clients.rb
951
+ - db/migrate/20100825185313_create_projects.rb
952
+ - db/migrate/20100825223943_create_tickets.rb
953
+ - db/migrate/20100902174920_create_work_units.rb
954
+ - db/migrate/20100902190129_add_missing_fields_to_work_units.rb
955
+ - db/migrate/20100904173839_add_guid_to_clients_projects_tickets_and_work_orders.rb
956
+ - db/migrate/20100922181642_create_comments.rb
957
+ - db/migrate/20100927180254_devise_create_users.rb
958
+ - db/migrate/20100927184505_add_details_to_users.rb
959
+ - db/migrate/20100927191329_add_user_to_work_units.rb
960
+ - db/migrate/20100928163356_create_roles.rb
961
+ - db/migrate/20100928203745_create_addresses.rb
962
+ - db/migrate/20100928204544_create_contacts.rb
963
+ - db/migrate/20101007175626_add_lockable_to_users.rb
964
+ - db/migrate/20101020162216_add_paid_at_to_work_units_table.rb
965
+ - db/migrate/20101020162516_add_check_number_to_work_units_table.rb
966
+ - db/migrate/20101020215135_add_paid_field_to_work_units_table.rb
967
+ - db/migrate/20101020215226_add_invoiced_field_to_work_units_table.rb
968
+ - db/migrate/20101020215457_remove_paid_at_from_work_units_table.rb
969
+ - db/migrate/20101020215624_remove_check_number_from_work_units_table.rb
970
+ - db/migrate/20101025161443_add_invoiced_at_to_work_units_table.rb
971
+ - db/migrate/20101026151900_add_initials_to_clients.rb
972
+ - db/migrate/20101029145059_create_file_attachments.rb
973
+ - db/migrate/20101030142615_add_guid_to_users.rb
974
+ - db/migrate/20101102145137_add_paid_at_to_work_units.rb
975
+ - db/migrate/20101112151337_add_active_to_comments.rb
976
+ - db/migrate/20101119172727_add_recieves_email_to_contact.rb
977
+ - db/migrate/20101122225423_projects_users.rb
978
+ - db/migrate/20101129214537_remove_projects_users_table.rb
979
+ - db/migrate/20101130225328_contact_receives_email.rb
980
+ - db/migrate/20101202203051_add_address_to_contacts.rb
981
+ - db/migrate/20101202214746_remove_address_table.rb
982
+ - db/migrate/20101216214304_add_hours_type_to_work_unit.rb
983
+ - db/migrate/20101217152455_add_effective_hours_to_work_units.rb
984
+ - db/migrate/20101228154820_add_overtime_multiplier_to_clients_table.rb
985
+ - db/migrate/20101228154951_add_overtime_multiplier_to_projects_table.rb
986
+ - db/migrate/20101228155122_create_site_settings_table.rb
987
+ - db/migrate/20110107190927_add_site_logo_columns_to_site_settings.rb
988
+ - db/migrate/20110111155513_add_total_yearly_pto_per_user_to_site_settings.rb
989
+ - db/migrate/20110111220015_add_not_valid_to_file_attachment.rb
990
+ - db/migrate/20110125153818_add_fullwidth_to_users.rb
991
+ - db/migrate/20110222162404_add_daily_target_hours_to_users.rb
992
+ - db/migrate/20110310021732_add_client_to_site_settings.rb
993
+ - db/migrate/20110630194044_add_expanded_calendar_to_user.rb
994
+ - db/migrate/20110922175742_add_state_to_tickets.rb
995
+ - db/migrate/20111212193345_add_estimated_hours_to_tickets.rb
996
+ - db/migrate/20111216152557_add_client_boolean_to_user.rb
997
+ - db/migrate/20111220193307_add_repo_and_branch_to_projects_and_ticket.rb
998
+ - db/migrate/20111220193619_create_git_pushes.rb
999
+ - db/migrate/20111220193620_create_git_commits.rb
1000
+ - db/migrate/20111220193621_add_user_id_to_git_push.rb
1001
+ - db/migrate/20111220193622_create_github_concernable_git_pushes.rb
1002
+ - db/migrate/20111227140859_add_token_to_user.rb
1003
+ - db/migrate/20120102185406_add_completed_boolean_to_ticket.rb
1004
+ - db/migrate/20120104132121_add_completed_to_project.rb
1005
+ - db/migrate/20120124184915_modify_project_for_new_git_integration.rb
1006
+ - db/migrate/20120125145833_add_rates_to_project.rb
1007
+ - db/migrate/20120126151009_create_data_vaults.rb
1008
+ - db/migrate/20120126151341_create_versions.rb
1009
+ - db/migrate/20120126154403_rename_column_data_to_encrypted_data.rb
1010
+ - db/migrate/20120221193022_add_index_to_user_id_on_work_units.rb
1011
+ - db/migrate/20120221195345_acts_as_taggable_on_migration.rb
1012
+ - db/migrate/20120320212313_remove_timestamps_from_roles_users_table.rb
1013
+ - db/migrate/20120710034831_create_doorkeeper_tables.rb
1014
+ - db/migrate/20121021122002_add_missing_indices.rb
1015
+ - db/seeds.rb
1016
+ - doc/website/favicon.ico
1017
+ - doc/website/images/clock_box.png
1018
+ - doc/website/images/demo.png
1019
+ - doc/website/images/download.png
1020
+ - doc/website/images/fork_me.png
1021
+ - doc/website/images/lightbox-blank.gif
1022
+ - doc/website/images/lightbox-btn-close.gif
1023
+ - doc/website/images/lightbox-btn-next.gif
1024
+ - doc/website/images/lightbox-btn-prev.gif
1025
+ - doc/website/images/lightbox-ico-loading.gif
1026
+ - doc/website/images/main_bg.png
1027
+ - doc/website/images/nav_bg.png
1028
+ - doc/website/images/screen_1.png
1029
+ - doc/website/images/screen_2.png
1030
+ - doc/website/images/screen_3.png
1031
+ - doc/website/images/screen_4.png
1032
+ - doc/website/images/screen_5.png
1033
+ - doc/website/images/screen_6.png
1034
+ - doc/website/images/support.png
1035
+ - doc/website/images/thumb_1.png
1036
+ - doc/website/images/thumb_2.png
1037
+ - doc/website/images/thumb_3.png
1038
+ - doc/website/images/thumb_4.png
1039
+ - doc/website/images/thumb_5.png
1040
+ - doc/website/images/thumb_6.png
1041
+ - doc/website/images/xrono_logo.png
1042
+ - doc/website/index.html
1043
+ - doc/website/javascripts/application.js
1044
+ - doc/website/javascripts/greyscalebasic_regular.typeface.js
1045
+ - doc/website/javascripts/jquery.lightbox-0.5.min.js
1046
+ - doc/website/javascripts/jquery.min.js
1047
+ - doc/website/javascripts/jquery.tweet.js
1048
+ - doc/website/javascripts/typeface.js
1049
+ - doc/website/javascripts/verdana_regular.typeface.js
1050
+ - doc/website/stylesheets/jquery.lightbox.css
1051
+ - doc/website/stylesheets/jquery.tweet.css
1052
+ - doc/website/stylesheets/reset-fonts-grids.css
1053
+ - doc/website/stylesheets/screen.css
1054
+ - doc/xrono_dash.png
1055
+ - doc/xrono_ticket.png
1056
+ - features/admin/invoices.feature
1057
+ - features/admin/manage_users.feature
1058
+ - features/admin/payroll.feature
1059
+ - features/admin/roles.feature
1060
+ - features/admin/site_settings.feature
1061
+ - features/admin/unentered_time_report.feature
1062
+ - features/admin/weekly_time_report.feature
1063
+ - features/api/v1/clients_controller.feature
1064
+ - features/authorization-admin.feature
1065
+ - features/authorization-non-admin.feature
1066
+ - features/client_login.feature
1067
+ - features/collaborative_work_units.feature
1068
+ - features/daily_emails.feature
1069
+ - features/dashboard.feature
1070
+ - features/manage_clients.feature
1071
+ - features/manage_comments.feature
1072
+ - features/manage_contacts.feature
1073
+ - features/manage_file_attachments.feature
1074
+ - features/manage_projects.feature
1075
+ - features/manage_self.feature
1076
+ - features/manage_tickets.feature
1077
+ - features/manage_users.feature
1078
+ - features/manage_work_units.feature
1079
+ - features/mockups/images/asset-tracker-client-show.png
1080
+ - features/mockups/images/asset-tracker.png
1081
+ - features/mockups/images/ixi - asset tracker v3 homepage - no time entered modal.png
1082
+ - features/mockups/images/ixi - asset tracker v3 homepage - schedule on modal.png
1083
+ - features/mockups/images/ixi - asset tracker v3 homepage.png
1084
+ - features/mockups/ixi - asset tracker v3 homepage - no time entered modal.bmml
1085
+ - features/mockups/ixi - asset tracker v3 homepage - schedule on modal.bmml
1086
+ - features/mockups/ixi - asset tracker v3 homepage.bmml
1087
+ - features/project_assignment.feature
1088
+ - features/search_work_units.feature
1089
+ - features/step_definitions/calendar_expansion_steps.rb
1090
+ - features/step_definitions/client_login_steps.rb
1091
+ - features/step_definitions/client_steps.rb
1092
+ - features/step_definitions/comment_steps.rb
1093
+ - features/step_definitions/contact_steps.rb
1094
+ - features/step_definitions/debug_steps.rb
1095
+ - features/step_definitions/devise_steps.rb
1096
+ - features/step_definitions/email_steps.rb
1097
+ - features/step_definitions/file_attachment_steps.rb
1098
+ - features/step_definitions/modified_web_steps.rb
1099
+ - features/step_definitions/pickle_steps.rb
1100
+ - features/step_definitions/project_steps.rb
1101
+ - features/step_definitions/search_steps.rb
1102
+ - features/step_definitions/ticket_board_steps.rb
1103
+ - features/step_definitions/ticket_detail_steps.rb
1104
+ - features/step_definitions/ticket_steps.rb
1105
+ - features/step_definitions/unentered_time_report_steps.rb
1106
+ - features/step_definitions/user_steps.rb
1107
+ - features/step_definitions/web_steps.rb
1108
+ - features/step_definitions/weekly_time_report_steps.rb
1109
+ - features/step_definitions/work_unit_index_steps.rb
1110
+ - features/step_definitions/work_unit_steps.rb
1111
+ - features/support/email.rb
1112
+ - features/support/env.rb
1113
+ - features/support/paths.rb
1114
+ - features/support/pickle.rb
1115
+ - features/support/selectors.rb
1116
+ - features/support/xrono.rb
1117
+ - features/work_unit_notifier.feature
1118
+ - lib/controller_mixins.rb
1119
+ - lib/controller_mixins/authorization.rb
1120
+ - lib/controller_mixins/contacts.rb
1121
+ - lib/controller_mixins/generic.rb
1122
+ - lib/controller_mixins/tickets.rb
1123
+ - lib/controller_mixins/work_units.rb
1124
+ - lib/date_ext.rb
1125
+ - lib/guid_referenced.rb
1126
+ - lib/tasks/.gitkeep
1127
+ - lib/tasks/acts_as_commentable_tasks.rake
1128
+ - lib/tasks/cucumber.rake
1129
+ - lib/tasks/git_repo_tasks.rake
1130
+ - lib/tasks/notifications.rake
1131
+ - lib/tasks/paperclip_tasks.rake
1132
+ - lib/xrono.rb
1133
+ - lib/xrono/engine.rb
1134
+ - public/404.html
1135
+ - public/422.html
1136
+ - public/500.html
1137
+ - public/favicon.ico
1138
+ - public/favicon.psd
1139
+ - public/images/.DS_Store
1140
+ - public/robots.txt
1141
+ - public/stylesheets/.gitkeep
1142
+ - public/stylesheets/ie.css
1143
+ - public/stylesheets/print.css
1144
+ - public/stylesheets/screen.css
1145
+ - script/cucumber
1146
+ - script/rails
1147
+ - spec/blueprints.rb
1148
+ - spec/controllers/api/v1/clients_controller_spec.rb
1149
+ - spec/controllers/api/v1/projects_controller_spec.rb
1150
+ - spec/controllers/api/v1/tickets_controller_spec.rb
1151
+ - spec/controllers/api/v1/tokens_controller_spec.rb
1152
+ - spec/controllers/client_login/clients_controller_spec.rb
1153
+ - spec/controllers/client_login/reports_controller_spec.rb
1154
+ - spec/controllers/data_vaults_controller_spec.rb
1155
+ - spec/internal/app/controllers/application_controller.rb
1156
+ - spec/internal/config/admin_navigation.rb
1157
+ - spec/internal/config/database.yml
1158
+ - spec/internal/config/database.yml.example
1159
+ - spec/internal/config/database.yml.mysql
1160
+ - spec/internal/config/database.yml.mysql.jruby
1161
+ - spec/internal/config/database.yml.postgres
1162
+ - spec/internal/config/database.yml.postgres.jruby
1163
+ - spec/internal/config/navigation.rb
1164
+ - spec/internal/config/routes.rb
1165
+ - spec/internal/config/secondary_navigation.rb
1166
+ - spec/internal/db/schema.rb
1167
+ - spec/internal/log/.gitignore
1168
+ - spec/internal/public/favicon.ico
1169
+ - spec/internal/public/system/attachment_files/2/original/tmp.txt
1170
+ - spec/internal/public/system/attachment_files/3/original/tmp.txt
1171
+ - spec/lib/date_ext_spec.rb
1172
+ - spec/mailers/notifier_spec.rb
1173
+ - spec/models/client_spec.rb
1174
+ - spec/models/contact_spec.rb
1175
+ - spec/models/data_vault_spec.rb
1176
+ - spec/models/project_spec.rb
1177
+ - spec/models/ticket_spec.rb
1178
+ - spec/models/user_spec.rb
1179
+ - spec/models/work_unit_spec.rb
1180
+ - spec/spec_helper.rb
1181
+ - spec/support/xrono/macros.rb
1182
+ - tmp/.gitkeep
1183
+ - vendor/plugins/.gitkeep
1184
+ - xrono.gemspec
1185
+ homepage:
1186
+ licenses: []
1187
+ post_install_message:
1188
+ rdoc_options: []
1189
+ require_paths:
1190
+ - lib
1191
+ required_ruby_version: !ruby/object:Gem::Requirement
1192
+ none: false
1193
+ requirements:
1194
+ - - ! '>='
1195
+ - !ruby/object:Gem::Version
1196
+ version: '0'
1197
+ required_rubygems_version: !ruby/object:Gem::Requirement
1198
+ none: false
1199
+ requirements:
1200
+ - - ! '>='
1201
+ - !ruby/object:Gem::Version
1202
+ version: '0'
1203
+ requirements: []
1204
+ rubyforge_project:
1205
+ rubygems_version: 1.8.23
1206
+ signing_key:
1207
+ specification_version: 3
1208
+ summary: An asset and time tracking application for consultants and consulting companies.
1209
+ test_files: []