backlog 0.7.12 → 0.8.0

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 (444) hide show
  1. data/History.txt +9 -0
  2. data/Rakefile +2 -2
  3. data/app/controllers/estimates_controller.rb +20 -3
  4. data/app/controllers/task_files_controller.rb +19 -0
  5. data/app/controllers/tasks_controller.rb +7 -2
  6. data/app/helpers/task_files_helper.rb +2 -0
  7. data/app/models/task.rb +3 -3
  8. data/app/models/task_file.rb +7 -0
  9. data/app/views/layouts/_left_top.rhtml +12 -2
  10. data/app/views/tasks/_form.rhtml +16 -1
  11. data/app/views/tasks/edit.rhtml +1 -1
  12. data/db/migrate/020_create_task_files.rb +17 -0
  13. data/db/schema.rb +11 -21
  14. data/doc/classes/ActiveRecord/Base.html +40 -40
  15. data/doc/classes/ActiveRecord/Base.src/M000432.html +13 -56
  16. data/doc/classes/ActiveRecord/Base.src/M000433.html +14 -3
  17. data/doc/classes/ActiveRecord/Base.src/{M000428.html → M000434.html} +0 -0
  18. data/doc/classes/ActiveRecord/Base.src/{M000429.html → M000435.html} +0 -0
  19. data/doc/classes/ActiveRecord/Base.src/{M000426.html → M000436.html} +0 -0
  20. data/doc/classes/ActiveRecord/Base.src/{M000427.html → M000437.html} +0 -0
  21. data/doc/classes/ActiveRecord/Base.src/M000438.html +72 -0
  22. data/doc/classes/ActiveRecord/Base.src/M000439.html +16 -0
  23. data/doc/classes/ApplicationController.html +18 -18
  24. data/doc/classes/ApplicationController.src/{M000318.html → M000322.html} +0 -0
  25. data/doc/classes/ApplicationController.src/{M000319.html → M000323.html} +0 -0
  26. data/doc/classes/ApplicationHelper.html +91 -91
  27. data/doc/classes/ApplicationHelper.src/M000440.html +7 -4
  28. data/doc/classes/ApplicationHelper.src/M000441.html +4 -8
  29. data/doc/classes/ApplicationHelper.src/M000442.html +11 -15
  30. data/doc/classes/ApplicationHelper.src/M000443.html +6 -7
  31. data/doc/classes/ApplicationHelper.src/M000444.html +6 -4
  32. data/doc/classes/ApplicationHelper.src/M000445.html +7 -11
  33. data/doc/classes/ApplicationHelper.src/M000446.html +4 -6
  34. data/doc/classes/ApplicationHelper.src/M000447.html +8 -6
  35. data/doc/classes/ApplicationHelper.src/M000448.html +15 -7
  36. data/doc/classes/ApplicationHelper.src/M000449.html +7 -4
  37. data/doc/classes/ApplicationHelper.src/M000450.html +4 -8
  38. data/doc/classes/ApplicationHelper.src/M000451.html +11 -15
  39. data/doc/classes/ApplicationHelper.src/{M000437.html → M000452.html} +0 -0
  40. data/doc/classes/ApplicationHelper.src/{M000438.html → M000453.html} +0 -0
  41. data/doc/classes/ApplicationHelper.src/{M000439.html → M000454.html} +0 -0
  42. data/doc/classes/ApplicationHelper.src/M000455.html +18 -0
  43. data/doc/classes/ApplicationHelper.src/M000456.html +22 -0
  44. data/doc/classes/ApplicationHelper.src/M000457.html +30 -0
  45. data/doc/classes/Backlog.html +1 -1
  46. data/doc/classes/BacklogsHelper.html +1 -1
  47. data/doc/classes/BigDecimal.html +10 -10
  48. data/doc/classes/BigDecimal.src/{M000364.html → M000366.html} +0 -0
  49. data/doc/classes/BigDecimal.src/{M000365.html → M000367.html} +0 -0
  50. data/doc/classes/Chart.html +1 -1
  51. data/doc/classes/Clock.html +30 -30
  52. data/doc/classes/Clock.src/{M000394.html → M000400.html} +0 -0
  53. data/doc/classes/Clock.src/{M000395.html → M000401.html} +0 -0
  54. data/doc/classes/Clock.src/{M000396.html → M000402.html} +0 -0
  55. data/doc/classes/Clock.src/{M000397.html → M000403.html} +0 -0
  56. data/doc/classes/Clock.src/{M000398.html → M000404.html} +0 -0
  57. data/doc/classes/Clock.src/{M000399.html → M000405.html} +0 -0
  58. data/doc/classes/Estimate.html +11 -11
  59. data/doc/classes/Estimate.src/{M000400.html → M000406.html} +0 -0
  60. data/doc/classes/Estimate.src/{M000401.html → M000407.html} +0 -0
  61. data/doc/classes/EstimatesController.html +10 -10
  62. data/doc/classes/EstimatesController.src/M000398.html +39 -0
  63. data/doc/classes/EstimatesController.src/M000399.html +39 -0
  64. data/doc/classes/EstimatesHelper.html +1 -1
  65. data/doc/classes/Group.html +1 -1
  66. data/doc/classes/GroupsController.html +80 -80
  67. data/doc/classes/GroupsController.src/M000324.html +5 -4
  68. data/doc/classes/GroupsController.src/M000325.html +4 -10
  69. data/doc/classes/GroupsController.src/M000326.html +4 -7
  70. data/doc/classes/GroupsController.src/M000327.html +8 -8
  71. data/doc/classes/GroupsController.src/M000328.html +7 -5
  72. data/doc/classes/GroupsController.src/M000329.html +7 -9
  73. data/doc/classes/GroupsController.src/M000330.html +5 -5
  74. data/doc/classes/GroupsController.src/M000331.html +12 -4
  75. data/doc/classes/GroupsController.src/M000332.html +5 -4
  76. data/doc/classes/GroupsController.src/M000333.html +4 -10
  77. data/doc/classes/GroupsController.src/M000334.html +4 -7
  78. data/doc/classes/GroupsController.src/M000335.html +8 -8
  79. data/doc/classes/GroupsController.src/M000336.html +7 -5
  80. data/doc/classes/GroupsController.src/M000337.html +7 -9
  81. data/doc/classes/GroupsController.src/{M000323.html → M000338.html} +5 -4
  82. data/doc/classes/GroupsController.src/M000339.html +26 -0
  83. data/doc/classes/GroupsHelper.html +1 -1
  84. data/doc/classes/Localization.html +30 -30
  85. data/doc/classes/Localization.src/{M000414.html → M000420.html} +0 -0
  86. data/doc/classes/Localization.src/{M000415.html → M000421.html} +0 -0
  87. data/doc/classes/Localization.src/{M000416.html → M000422.html} +0 -0
  88. data/doc/classes/Localization.src/{M000417.html → M000423.html} +0 -0
  89. data/doc/classes/Localization.src/{M000418.html → M000424.html} +0 -0
  90. data/doc/classes/Localization.src/{M000419.html → M000425.html} +0 -0
  91. data/doc/classes/Localization/LString.html +20 -20
  92. data/doc/classes/Localization/LString.src/{M000420.html → M000426.html} +0 -0
  93. data/doc/classes/Localization/LString.src/{M000421.html → M000427.html} +0 -0
  94. data/doc/classes/Localization/LString.src/{M000422.html → M000428.html} +0 -0
  95. data/doc/classes/Localization/LString.src/{M000423.html → M000429.html} +0 -0
  96. data/doc/classes/PartiesHelper.html +1 -1
  97. data/doc/classes/Party.html +41 -41
  98. data/doc/classes/Party.src/M000340.html +4 -4
  99. data/doc/classes/Party.src/M000341.html +4 -11
  100. data/doc/classes/Party.src/M000342.html +4 -4
  101. data/doc/classes/Party.src/M000343.html +11 -4
  102. data/doc/classes/Party.src/M000344.html +4 -4
  103. data/doc/classes/Party.src/M000345.html +4 -11
  104. data/doc/classes/Party.src/{M000338.html → M000346.html} +4 -4
  105. data/doc/classes/Party.src/M000347.html +25 -0
  106. data/doc/classes/Period.html +1 -1
  107. data/doc/classes/PeriodsController.html +130 -130
  108. data/doc/classes/PeriodsController.src/M000372.html +9 -8
  109. data/doc/classes/PeriodsController.src/M000373.html +19 -6
  110. data/doc/classes/PeriodsController.src/M000374.html +5 -4
  111. data/doc/classes/PeriodsController.src/M000375.html +15 -4
  112. data/doc/classes/PeriodsController.src/M000376.html +11 -4
  113. data/doc/classes/PeriodsController.src/M000377.html +3 -5
  114. data/doc/classes/PeriodsController.src/M000378.html +8 -6
  115. data/doc/classes/PeriodsController.src/M000379.html +6 -11
  116. data/doc/classes/PeriodsController.src/M000380.html +4 -19
  117. data/doc/classes/PeriodsController.src/M000381.html +4 -5
  118. data/doc/classes/PeriodsController.src/M000382.html +4 -15
  119. data/doc/classes/PeriodsController.src/M000383.html +6 -11
  120. data/doc/classes/PeriodsController.src/M000384.html +8 -4
  121. data/doc/classes/PeriodsController.src/M000385.html +9 -8
  122. data/doc/classes/PeriodsController.src/M000386.html +19 -6
  123. data/doc/classes/PeriodsController.src/M000387.html +5 -4
  124. data/doc/classes/PeriodsController.src/M000388.html +15 -4
  125. data/doc/classes/PeriodsController.src/M000389.html +11 -4
  126. data/doc/classes/PeriodsController.src/M000390.html +3 -5
  127. data/doc/classes/PeriodsController.src/M000391.html +8 -6
  128. data/doc/classes/PeriodsController.src/M000392.html +20 -0
  129. data/doc/classes/{GroupsController.src/M000322.html → PeriodsController.src/M000393.html} +4 -5
  130. data/doc/classes/PeriodsController.src/{M000371.html → M000394.html} +4 -4
  131. data/doc/classes/{Party.src/M000339.html → PeriodsController.src/M000395.html} +4 -4
  132. data/doc/classes/PeriodsController.src/M000396.html +20 -0
  133. data/doc/classes/PeriodsController.src/M000397.html +22 -0
  134. data/doc/classes/PeriodsHelper.html +1 -1
  135. data/doc/classes/SearchHelper.html +1 -1
  136. data/doc/classes/SearchResult.html +11 -11
  137. data/doc/classes/SearchResult.src/{M000239.html → M000241.html} +0 -0
  138. data/doc/classes/SearchResult.src/{M000240.html → M000242.html} +0 -0
  139. data/doc/classes/Task.html +385 -385
  140. data/doc/classes/Task.src/M000243.html +7 -14
  141. data/doc/classes/Task.src/M000244.html +4 -4
  142. data/doc/classes/Task.src/M000245.html +16 -4
  143. data/doc/classes/Task.src/M000246.html +4 -24
  144. data/doc/classes/Task.src/M000247.html +4 -4
  145. data/doc/classes/Task.src/M000248.html +24 -11
  146. data/doc/classes/Task.src/M000249.html +4 -6
  147. data/doc/classes/Task.src/M000250.html +11 -12
  148. data/doc/classes/Task.src/M000251.html +6 -10
  149. data/doc/classes/Task.src/M000252.html +9 -40
  150. data/doc/classes/Task.src/M000253.html +8 -10
  151. data/doc/classes/Task.src/M000254.html +42 -7
  152. data/doc/classes/Task.src/M000255.html +12 -4
  153. data/doc/classes/Task.src/M000256.html +8 -4
  154. data/doc/classes/Task.src/M000257.html +4 -4
  155. data/doc/classes/Task.src/M000258.html +4 -4
  156. data/doc/classes/Task.src/M000259.html +4 -4
  157. data/doc/classes/Task.src/M000260.html +4 -4
  158. data/doc/classes/Task.src/M000261.html +4 -4
  159. data/doc/classes/Task.src/M000262.html +4 -6
  160. data/doc/classes/Task.src/M000263.html +4 -4
  161. data/doc/classes/Task.src/M000264.html +6 -4
  162. data/doc/classes/Task.src/M000265.html +4 -4
  163. data/doc/classes/Task.src/M000266.html +4 -4
  164. data/doc/classes/Task.src/M000267.html +4 -4
  165. data/doc/classes/Task.src/M000268.html +4 -4
  166. data/doc/classes/Task.src/M000269.html +4 -4
  167. data/doc/classes/Task.src/M000270.html +4 -4
  168. data/doc/classes/Task.src/M000271.html +4 -10
  169. data/doc/classes/Task.src/M000272.html +4 -19
  170. data/doc/classes/Task.src/M000273.html +9 -9
  171. data/doc/classes/Task.src/M000274.html +17 -18
  172. data/doc/classes/Task.src/M000275.html +10 -4
  173. data/doc/classes/Task.src/M000276.html +20 -4
  174. data/doc/classes/Task.src/M000277.html +4 -4
  175. data/doc/classes/Task.src/M000278.html +4 -9
  176. data/doc/classes/Task.src/M000279.html +4 -9
  177. data/doc/classes/Task.src/M000280.html +9 -4
  178. data/doc/classes/Task.src/M000281.html +7 -14
  179. data/doc/classes/Task.src/M000282.html +4 -4
  180. data/doc/classes/Task.src/M000283.html +16 -4
  181. data/doc/classes/Task.src/M000284.html +4 -24
  182. data/doc/classes/Task.src/M000285.html +4 -4
  183. data/doc/classes/Task.src/M000286.html +24 -11
  184. data/doc/classes/Task.src/M000287.html +4 -6
  185. data/doc/classes/Task.src/M000288.html +11 -12
  186. data/doc/classes/Task.src/M000289.html +6 -10
  187. data/doc/classes/Task.src/M000290.html +9 -40
  188. data/doc/classes/Task.src/M000291.html +8 -10
  189. data/doc/classes/Task.src/M000292.html +42 -7
  190. data/doc/classes/Task.src/M000293.html +12 -4
  191. data/doc/classes/Task.src/M000294.html +8 -4
  192. data/doc/classes/Task.src/M000295.html +4 -4
  193. data/doc/classes/Task.src/M000296.html +4 -4
  194. data/doc/classes/Task.src/M000297.html +4 -4
  195. data/doc/classes/Task.src/M000298.html +4 -4
  196. data/doc/classes/Task.src/M000299.html +4 -4
  197. data/doc/classes/Task.src/M000300.html +4 -6
  198. data/doc/classes/Task.src/M000301.html +4 -4
  199. data/doc/classes/Task.src/M000302.html +6 -4
  200. data/doc/classes/Task.src/M000303.html +4 -4
  201. data/doc/classes/Task.src/M000304.html +4 -4
  202. data/doc/classes/Task.src/M000305.html +4 -4
  203. data/doc/classes/Task.src/M000306.html +4 -4
  204. data/doc/classes/Task.src/M000307.html +4 -4
  205. data/doc/classes/Task.src/M000308.html +18 -0
  206. data/doc/classes/Task.src/M000309.html +4 -4
  207. data/doc/classes/Task.src/M000311.html +4 -19
  208. data/doc/classes/Task.src/M000312.html +9 -9
  209. data/doc/classes/Task.src/M000313.html +17 -18
  210. data/doc/classes/Task.src/M000314.html +10 -4
  211. data/doc/classes/Task.src/M000315.html +20 -4
  212. data/doc/classes/Task.src/M000316.html +4 -4
  213. data/doc/classes/Task.src/M000317.html +4 -9
  214. data/doc/classes/Task.src/M000318.html +18 -0
  215. data/doc/classes/Task.src/M000319.html +23 -0
  216. data/doc/classes/TaskFile.html +165 -0
  217. data/doc/classes/TaskFile.src/M000239.html +18 -0
  218. data/doc/classes/TaskFile.src/M000240.html +18 -0
  219. data/doc/classes/TaskFilesController.html +195 -0
  220. data/doc/classes/TaskFilesController.src/M000368.html +22 -0
  221. data/doc/classes/TaskFilesController.src/M000369.html +24 -0
  222. data/doc/classes/TaskFilesController.src/M000370.html +22 -0
  223. data/doc/classes/TaskFilesController.src/M000371.html +24 -0
  224. data/doc/classes/TaskFilesHelper.html +115 -0
  225. data/doc/classes/TasksController.src/M000107.html +6 -1
  226. data/doc/classes/TasksController.src/M000108.html +1 -1
  227. data/doc/classes/TasksController.src/M000109.html +1 -1
  228. data/doc/classes/TasksController.src/M000110.html +1 -1
  229. data/doc/classes/TasksController.src/M000111.html +1 -1
  230. data/doc/classes/TasksController.src/M000112.html +1 -1
  231. data/doc/classes/TasksController.src/M000113.html +1 -1
  232. data/doc/classes/TasksController.src/M000114.html +1 -1
  233. data/doc/classes/TasksController.src/M000115.html +1 -1
  234. data/doc/classes/TasksController.src/M000116.html +1 -1
  235. data/doc/classes/TasksController.src/M000117.html +1 -1
  236. data/doc/classes/TasksController.src/M000118.html +1 -1
  237. data/doc/classes/TasksController.src/M000119.html +1 -1
  238. data/doc/classes/TasksController.src/M000120.html +1 -1
  239. data/doc/classes/TasksController.src/M000121.html +2 -2
  240. data/doc/classes/TasksController.src/M000122.html +1 -1
  241. data/doc/classes/TasksController.src/M000127.html +6 -1
  242. data/doc/classes/TasksController.src/M000128.html +1 -1
  243. data/doc/classes/TasksController.src/M000129.html +1 -1
  244. data/doc/classes/TasksController.src/M000130.html +1 -1
  245. data/doc/classes/TasksController.src/M000131.html +1 -1
  246. data/doc/classes/TasksController.src/M000132.html +1 -1
  247. data/doc/classes/TasksController.src/M000133.html +1 -1
  248. data/doc/classes/TasksController.src/M000134.html +1 -1
  249. data/doc/classes/TasksController.src/M000135.html +1 -1
  250. data/doc/classes/TasksController.src/M000136.html +1 -1
  251. data/doc/classes/TasksController.src/M000137.html +1 -1
  252. data/doc/classes/TasksController.src/M000138.html +1 -1
  253. data/doc/classes/TasksController.src/M000139.html +1 -1
  254. data/doc/classes/TasksController.src/M000140.html +1 -1
  255. data/doc/classes/TasksController.src/M000141.html +2 -2
  256. data/doc/classes/TasksController.src/M000142.html +1 -1
  257. data/doc/classes/TasksHelper.html +1 -1
  258. data/doc/classes/Time.html +1 -1
  259. data/doc/classes/User.html +1 -1
  260. data/doc/classes/UserHelper.html +55 -55
  261. data/doc/classes/UserHelper.src/{M000402.html → M000414.html} +0 -0
  262. data/doc/classes/UserHelper.src/{M000403.html → M000415.html} +0 -0
  263. data/doc/classes/UserHelper.src/{M000404.html → M000416.html} +0 -0
  264. data/doc/classes/UserHelper.src/{M000405.html → M000417.html} +0 -0
  265. data/doc/classes/UserHelper.src/{M000406.html → M000418.html} +0 -0
  266. data/doc/classes/UserHelper.src/{M000407.html → M000419.html} +0 -0
  267. data/doc/classes/UserNotify.html +1 -1
  268. data/doc/classes/UserSystem.html +56 -56
  269. data/doc/classes/UserSystem.src/{M000452.html → M000464.html} +0 -0
  270. data/doc/classes/UserSystem.src/{M000453.html → M000465.html} +0 -0
  271. data/doc/classes/UserSystem.src/{M000454.html → M000466.html} +0 -0
  272. data/doc/classes/UserSystem.src/{M000455.html → M000467.html} +0 -0
  273. data/doc/classes/UserSystem.src/{M000456.html → M000468.html} +0 -0
  274. data/doc/classes/UserSystem.src/{M000457.html → M000469.html} +0 -0
  275. data/doc/classes/Work.html +91 -91
  276. data/doc/classes/Work.src/M000348.html +4 -14
  277. data/doc/classes/Work.src/M000349.html +4 -24
  278. data/doc/classes/Work.src/M000350.html +14 -4
  279. data/doc/classes/Work.src/M000351.html +24 -4
  280. data/doc/classes/Work.src/M000352.html +4 -7
  281. data/doc/classes/Work.src/M000353.html +4 -4
  282. data/doc/classes/Work.src/M000354.html +5 -5
  283. data/doc/classes/Work.src/M000355.html +4 -4
  284. data/doc/classes/Work.src/M000356.html +7 -4
  285. data/doc/classes/Work.src/M000357.html +4 -14
  286. data/doc/classes/Work.src/M000358.html +4 -24
  287. data/doc/classes/Work.src/M000359.html +14 -4
  288. data/doc/classes/Work.src/M000360.html +24 -4
  289. data/doc/classes/Work.src/M000361.html +4 -7
  290. data/doc/classes/Work.src/M000362.html +4 -4
  291. data/doc/classes/Work.src/M000363.html +5 -5
  292. data/doc/classes/Work.src/{M000346.html → M000364.html} +4 -4
  293. data/doc/classes/Work.src/M000365.html +21 -0
  294. data/doc/classes/WorksHelper.html +11 -11
  295. data/doc/classes/WorksHelper.src/{M000424.html → M000430.html} +0 -0
  296. data/doc/classes/WorksHelper.src/{M000425.html → M000431.html} +0 -0
  297. data/doc/created.rid +1 -1
  298. data/doc/dot/f_0.png +0 -0
  299. data/doc/dot/f_1.png +0 -0
  300. data/doc/dot/f_2.png +0 -0
  301. data/doc/dot/f_24.png +0 -0
  302. data/doc/dot/f_25.png +0 -0
  303. data/doc/dot/f_26.png +0 -0
  304. data/doc/dot/f_27.png +0 -0
  305. data/doc/dot/f_28.png +0 -0
  306. data/doc/dot/f_29.png +0 -0
  307. data/doc/dot/f_3.png +0 -0
  308. data/doc/dot/f_30.png +0 -0
  309. data/doc/dot/f_31.png +0 -0
  310. data/doc/dot/f_32.png +0 -0
  311. data/doc/dot/f_33.png +0 -0
  312. data/doc/dot/f_34.dot +32 -0
  313. data/doc/dot/f_34.png +0 -0
  314. data/doc/dot/f_4.png +0 -0
  315. data/doc/dot/f_46.dot +4 -4
  316. data/doc/dot/f_46.png +0 -0
  317. data/doc/dot/f_47.dot +4 -18
  318. data/doc/dot/f_47.png +0 -0
  319. data/doc/dot/f_48.dot +4 -13
  320. data/doc/dot/f_48.png +0 -0
  321. data/doc/dot/f_49.dot +18 -4
  322. data/doc/dot/f_49.png +0 -0
  323. data/doc/dot/f_5.png +0 -0
  324. data/doc/dot/f_50.dot +13 -4
  325. data/doc/dot/f_50.png +0 -0
  326. data/doc/dot/f_51.dot +4 -4
  327. data/doc/dot/f_51.png +0 -0
  328. data/doc/dot/f_52.dot +4 -4
  329. data/doc/dot/f_52.png +0 -0
  330. data/doc/dot/f_53.dot +4 -4
  331. data/doc/dot/f_53.png +0 -0
  332. data/doc/dot/{f_44.dot → f_54.dot} +4 -4
  333. data/doc/dot/f_54.png +0 -0
  334. data/doc/dot/{f_65.dot → f_55.dot} +4 -4
  335. data/doc/dot/f_55.png +0 -0
  336. data/doc/dot/{f_45.dot → f_56.dot} +4 -4
  337. data/doc/dot/f_56.png +0 -0
  338. data/doc/dot/f_6.png +0 -0
  339. data/doc/dot/f_68.dot +4 -4
  340. data/doc/dot/f_68.png +0 -0
  341. data/doc/dot/f_69.dot +15 -31
  342. data/doc/dot/f_69.png +0 -0
  343. data/doc/dot/f_7.png +0 -0
  344. data/doc/dot/f_70.dot +12 -3
  345. data/doc/dot/f_70.png +0 -0
  346. data/doc/dot/f_71.dot +7 -7
  347. data/doc/dot/f_71.png +0 -0
  348. data/doc/dot/f_72.dot +4 -4
  349. data/doc/dot/f_72.png +0 -0
  350. data/doc/dot/f_73.dot +9 -9
  351. data/doc/dot/f_73.png +0 -0
  352. data/doc/dot/f_74.dot +3 -12
  353. data/doc/dot/f_74.png +0 -0
  354. data/doc/dot/{f_64.dot → f_75.dot} +4 -4
  355. data/doc/dot/f_75.png +0 -0
  356. data/doc/dot/{f_67.dot → f_76.dot} +7 -7
  357. data/doc/dot/f_76.png +0 -0
  358. data/doc/dot/f_77.dot +32 -0
  359. data/doc/dot/f_77.png +0 -0
  360. data/doc/dot/f_78.dot +46 -0
  361. data/doc/dot/f_78.png +0 -0
  362. data/doc/dot/{f_66.dot → f_79.dot} +4 -4
  363. data/doc/dot/f_79.png +0 -0
  364. data/doc/dot/{m_48_0.dot → m_50_0.dot} +0 -0
  365. data/doc/dot/{m_48_0.png → m_50_0.png} +0 -0
  366. data/doc/files/History_txt.html +23 -2
  367. data/doc/files/app/controllers/estimates_controller_rb.html +1 -1
  368. data/doc/files/app/controllers/task_files_controller_rb.html +108 -0
  369. data/doc/files/app/controllers/tasks_controller_rb.html +1 -1
  370. data/doc/files/app/helpers/application_helper_rb.html +1 -1
  371. data/doc/files/app/helpers/backlogs_helper_rb.html +1 -1
  372. data/doc/files/app/helpers/estimates_helper_rb.html +1 -1
  373. data/doc/files/app/helpers/groups_helper_rb.html +1 -1
  374. data/doc/files/app/helpers/parties_helper_rb.html +1 -1
  375. data/doc/files/app/helpers/periods_helper_rb.html +1 -1
  376. data/doc/files/app/helpers/search_helper_rb.html +1 -1
  377. data/doc/files/app/helpers/task_files_helper_rb.html +107 -0
  378. data/doc/files/app/helpers/tasks_helper_rb.html +1 -1
  379. data/doc/files/app/helpers/user_helper_rb.html +1 -1
  380. data/doc/files/app/helpers/works_helper_rb.html +1 -1
  381. data/doc/files/app/models/backlog_rb.html +1 -1
  382. data/doc/files/app/models/chart_rb.html +1 -1
  383. data/doc/files/app/models/estimate_rb.html +1 -1
  384. data/doc/files/app/models/group_rb.html +1 -1
  385. data/doc/files/app/models/party_rb.html +1 -1
  386. data/doc/files/app/models/period_rb.html +1 -1
  387. data/doc/files/app/models/search_result_rb.html +1 -1
  388. data/doc/files/app/models/task_file_rb.html +108 -0
  389. data/doc/files/app/models/task_rb.html +2 -2
  390. data/doc/files/app/models/user_notify_rb.html +1 -1
  391. data/doc/files/app/models/user_rb.html +1 -1
  392. data/doc/files/app/models/work_rb.html +1 -1
  393. data/doc/fr_class_index.html +3 -0
  394. data/doc/fr_file_index.html +6 -0
  395. data/doc/fr_method_index.html +295 -289
  396. data/doc/index.html +2 -2
  397. data/lang/en.yaml +2 -0
  398. data/lang/no.yaml +2 -0
  399. data/post-clean.rb +12 -0
  400. data/post-install.rb +51 -0
  401. data/post-setup.rb +254 -0
  402. data/public/500.html +2 -1
  403. data/public/images/text-x-generic.png +0 -0
  404. data/public/stylesheets/backlog.css +15 -2
  405. data/public/stylesheets/mwrt002.css +1 -1
  406. data/public/stylesheets/user.css +1 -1
  407. data/test/fixtures/task_files.yml +13 -0
  408. data/test/functional/backlogs_controller_test.rb +2 -1
  409. data/test/functional/estimates_controller_test.rb +2 -0
  410. data/test/functional/groups_controller_test.rb +1 -1
  411. data/test/functional/periods_controller_test.rb +1 -1
  412. data/test/functional/task_files_controller_test.rb +29 -0
  413. data/test/functional/tasks_controller_test.rb +2 -2
  414. data/test/functional/user_controller_test.rb +1 -1
  415. data/test/functional/works_controller_test.rb +1 -1
  416. data/test/unit/estimate_test.rb +1 -1
  417. data/test/unit/period_test.rb +1 -1
  418. data/test/unit/task_file_test.rb +10 -0
  419. data/test/unit/task_test.rb +1 -1
  420. metadata +115 -88
  421. data/doc/classes/ActiveRecord/Base.src/M000430.html +0 -29
  422. data/doc/classes/ActiveRecord/Base.src/M000431.html +0 -27
  423. data/doc/classes/ApplicationHelper.src/M000434.html +0 -21
  424. data/doc/classes/ApplicationHelper.src/M000435.html +0 -18
  425. data/doc/classes/ApplicationHelper.src/M000436.html +0 -26
  426. data/doc/classes/EstimatesController.src/M000392.html +0 -22
  427. data/doc/classes/EstimatesController.src/M000393.html +0 -22
  428. data/doc/classes/PeriodsController.src/M000366.html +0 -25
  429. data/doc/classes/PeriodsController.src/M000367.html +0 -33
  430. data/doc/classes/PeriodsController.src/M000368.html +0 -19
  431. data/doc/classes/PeriodsController.src/M000369.html +0 -29
  432. data/doc/classes/PeriodsController.src/M000370.html +0 -25
  433. data/doc/classes/Task.src/M000241.html +0 -23
  434. data/doc/classes/Task.src/M000242.html +0 -18
  435. data/doc/classes/Task.src/M000310.html +0 -24
  436. data/doc/classes/Work.src/M000347.html +0 -18
  437. data/doc/dot/f_44.png +0 -0
  438. data/doc/dot/f_45.png +0 -0
  439. data/doc/dot/f_64.png +0 -0
  440. data/doc/dot/f_65.png +0 -0
  441. data/doc/dot/f_66.png +0 -0
  442. data/doc/dot/f_67.png +0 -0
  443. data/vendor/plugins/activerecord_foreign_key_extensions/init.rb +0 -2
  444. data/vendor/plugins/activerecord_foreign_key_extensions/lib/active_record_extensions.rb +0 -215
data/doc/index.html CHANGED
@@ -5,12 +5,12 @@
5
5
 
6
6
  <!--
7
7
 
8
- backlog's backlog-0.7.12 Documentation
8
+ backlog's backlog-0.8.0 Documentation
9
9
 
10
10
  -->
11
11
  <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
12
12
  <head>
13
- <title> backlog's backlog-0.7.12 Documentation</title>
13
+ <title> backlog's backlog-0.8.0 Documentation</title>
14
14
  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
15
15
  </head>
16
16
  <frameset rows="20%, 80%">
data/lang/en.yaml CHANGED
@@ -16,6 +16,7 @@ completed: Completed
16
16
  completed_at: Ended at
17
17
  completed_tasks: Completed Tasks
18
18
  confirmation: Are you sure?
19
+ customer: Customer
19
20
  daily_work_sheet: Daily work sheet
20
21
  delete: Delete
21
22
  done: Done
@@ -29,6 +30,7 @@ end_on: End on
29
30
  end_work: Stop
30
31
  estimate: Estimate
31
32
  experimental: Experimental!
33
+ files: Files
32
34
  friday: Friday
33
35
  group: Group
34
36
  groups: Groups
data/lang/no.yaml CHANGED
@@ -16,6 +16,7 @@ completed: Fullført
16
16
  completed_at: Stop tid
17
17
  completed_tasks: Fullførte Oppgaver
18
18
  confirmation: Er du sikker?
19
+ customer: Kunde
19
20
  daily_work_sheet: Timeføringsskjema
20
21
  delete: Slett
21
22
  done: Utført
@@ -29,6 +30,7 @@ end_on: Avslutt på
29
30
  end_work: Stopp
30
31
  estimate: Estimat
31
32
  experimental: Eksperimentell!
33
+ files: Files
32
34
  friday: Fredag
33
35
  group: Gruppe
34
36
  groups: Grupper
data/post-clean.rb ADDED
@@ -0,0 +1,12 @@
1
+ # delete RMagick documentation created by post-setup.rb
2
+ # doc/*.rb.html
3
+ # doc/ex/* (!rb)
4
+ # Bug #246: Don't use chdir!
5
+ require 'ftools'
6
+
7
+ targets = Dir['doc/*.rb.html']
8
+ File.safe_unlink(*targets) unless targets.empty?
9
+
10
+ targets = Dir['doc/ex/*']
11
+ targets.delete_if { |entry| File.directory?(entry) || %r{\.rb\z}.match(entry) }
12
+ File.safe_unlink(*targets) unless targets.empty?
data/post-install.rb ADDED
@@ -0,0 +1,51 @@
1
+ # install RMagick documentation
2
+
3
+ require 'ftools'
4
+ require 'find'
5
+
6
+ if defined?(Installer) && self.class == Installer
7
+
8
+ BUILD_HTMLDOC = get_config('disable-htmldoc') != 'yes'
9
+
10
+ $docdir = nil
11
+
12
+ # Where to install the documentation
13
+ def docdir
14
+ return $docdir if $docdir
15
+ dir = get_config('doc-dir')+'/'
16
+ dir.sub!(/\A$prefix/, get_config('prefix'))
17
+ $docdir = dir
18
+ end
19
+ else
20
+
21
+ BUILD_HTMLDOC = true
22
+
23
+ def docdir
24
+ return ARGV[0]
25
+ end
26
+ end
27
+
28
+ if BUILD_HTMLDOC
29
+
30
+ puts "\npost-install.rb: installing documentation..."
31
+
32
+ Find.find('doc') do |file|
33
+ next if FileTest.directory? file
34
+ target = file.sub(/^doc\//,docdir())
35
+ unless FileTest.exists? File.dirname(target)
36
+ File.makedirs(File.dirname(target), true)
37
+ # Mark this directory as one we created so
38
+ # that uninstall.rb knows it's okay to delete
39
+ f = File.new("#{File.dirname(target)}/.rmagick", "w")
40
+ f.close
41
+ end
42
+ File.install(file, target, 0644)
43
+ end
44
+
45
+ else
46
+
47
+ puts "\npost-install.rb: --disable-htmldoc specified. No documentation will be installed."
48
+
49
+ end
50
+
51
+ exit
data/post-setup.rb ADDED
@@ -0,0 +1,254 @@
1
+ #===============================================================================
2
+ # post-setup.rb - setup documentation
3
+ #===============================================================================
4
+
5
+ EXAMPLES = '.examples'
6
+ STD_URI = 'http:\/\/www.imagemagick.org'
7
+ STD_URI_RE = /"#{STD_URI}/
8
+ DONT_RUN = ['fonts.rb'] # never run these examples
9
+ ENTITY = Hash['&' => '&amp;', '>' => '&gt;', '<' => '&lt;']
10
+
11
+ if defined?(Installer) && self.class == Installer
12
+
13
+ RUBYPROG = get_config('ruby-prog')
14
+ SRCDIR = curr_srcdir()
15
+ ALLOW_EXAMPLE_ERRORS = get_config('allow-example-errors') == 'yes'
16
+ BUILD_HTMLDOC = get_config('disable-htmldoc') != 'yes'
17
+
18
+ else
19
+
20
+ RUBYPROG = 'ruby'
21
+ SRCDIR = '.'
22
+ ALLOW_EXAMPLE_ERRORS = true
23
+ BUILD_HTMLDOC = true
24
+
25
+ end
26
+
27
+
28
+ #
29
+ # A set of example programs in a directory and the output image each example produces.
30
+ #
31
+
32
+ class ExampleSet
33
+ def initialize(of)
34
+ @status_quo = get_status_quo()
35
+ @errs = 0
36
+ begin
37
+ File.open(EXAMPLES) do |f|
38
+ @targets = Marshal.load(f)
39
+ end
40
+ rescue
41
+ @targets = Hash.new
42
+ @n = 0
43
+ @of = of
44
+ @first_time = true
45
+ else
46
+ @first_time = false
47
+ end
48
+ end
49
+
50
+ def persist
51
+ File.open(EXAMPLES, 'w') do |f|
52
+ Marshal.dump(@targets, f)
53
+ end
54
+ end
55
+
56
+ def targets(example)
57
+ @targets[example] || Array.new
58
+ end
59
+
60
+ def get_status_quo
61
+ sq = Dir["*"]
62
+ sq.delete_if { |entry| File.directory?(entry) }
63
+ end
64
+
65
+ def update_targets(example, new)
66
+ t = targets(example) + new
67
+ @targets[example] = t.uniq
68
+ end
69
+
70
+ def update_status_quo(example)
71
+ new_status_quo = get_status_quo()
72
+ new = new_status_quo - @status_quo
73
+ update_targets(example, new)
74
+ @status_quo = new_status_quo
75
+ end
76
+
77
+ def build(example)
78
+ cmd = "#{RUBYPROG} -I #{SRCDIR}/lib -I #{SRCDIR}/ext/RMagick #{example}"
79
+ print cmd
80
+ print " (example #{@n += 1} of #{@of})" if @first_time
81
+ puts
82
+ system cmd
83
+
84
+ if $? != 0 then
85
+ puts("post-setup.rb: #{example} example returned error code #{$?}")
86
+ @errs += 1 unless ALLOW_EXAMPLE_ERRORS
87
+ if @errs > 4
88
+ err(<<-END_EXFAIL
89
+ Too many examples failed. Search for "Help!" at
90
+ http://rmagick.rubyforge.org/install-faq.html.
91
+ END_EXFAIL
92
+ )
93
+ end
94
+ end
95
+
96
+ update_status_quo(example)
97
+ end
98
+
99
+ def update(example)
100
+ targets = targets(example)
101
+ up_to_date = ! targets.empty?
102
+ targets.each do |target|
103
+ up_to_date &&= File.exists?(target) && (File.stat(target) >= File.stat(example))
104
+ end
105
+ build(example) unless up_to_date
106
+ end
107
+
108
+ #
109
+ # print message and exit
110
+ #
111
+ def err(msg)
112
+ $stderr.puts "#{$0}: #{msg}"
113
+ exit 1
114
+ end
115
+
116
+ end
117
+
118
+
119
+ #
120
+ # Modify file lines via proc. If no lines changed, discard new version.
121
+ #
122
+ def filter(filename, backup=nil, &filter)
123
+ if ! File.writable? filename then
124
+ raise ArgumentError, "`#{filename}' is write-protected"
125
+ end
126
+
127
+ backup_name = filename + '.' + (backup || 'old')
128
+ File.rename(filename, backup_name)
129
+ changed = false
130
+ begin
131
+ File.open(filename, 'w') do |output|
132
+ File.foreach(backup_name) do |line|
133
+ old = line
134
+ line = filter.call(line)
135
+ output.puts(line)
136
+ changed ||= line != old
137
+ end
138
+ end
139
+ rescue
140
+ File.rename(backup_name, filename)
141
+ raise
142
+ end
143
+
144
+ if !changed
145
+ newname = filename + '.xxx'
146
+ File.rename(filename, newname)
147
+ File.rename(backup_name, filename)
148
+ File.unlink(newname)
149
+ elsif !backup
150
+ # Don't remove old copy if a backup extension was specified
151
+ File.unlink(backup_name) rescue nil
152
+ end
153
+ end
154
+
155
+
156
+ #
157
+ # Copy an example to the doc directory, wrap in HTML tags
158
+ #
159
+ def filetoHTML(file, html)
160
+ return if File.exists?(html) && File.stat(html) >= File.stat(file)
161
+
162
+ File.open(file) do |src|
163
+ File.open(html, 'w') do |dest|
164
+ dest.puts <<-END_EXHTMLHEAD
165
+ <!DOCTYPE public PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
166
+ <html xmlns="http://www.w3.org/1999/xhtml">
167
+ <head>
168
+ <meta name="generator" content="ex2html.rb" />
169
+ <meta http-equiv="Content-Type" content=
170
+ "text/html; charset=us-ascii" />
171
+ <link rel="stylesheet" type="text/css" href="css/popup.css" />
172
+
173
+ <title>RMagick example: #{file}</title>
174
+ </head>
175
+
176
+ <body>
177
+ <h1>#{file}</h1>
178
+ <div class="bodybox">
179
+ <div class="bodyfloat">
180
+ <pre>
181
+ END_EXHTMLHEAD
182
+
183
+ src.each do |line|
184
+ line.gsub!(/[&><]/) { |s| ENTITY[s] }
185
+ dest.puts(line)
186
+ end
187
+
188
+ dest.puts <<-END_EXHTMLTAIL
189
+ </pre>
190
+ </div>
191
+ </div>
192
+ <div id="close"><a href="javascript:window.close();">Close window</a></div>
193
+ </body>
194
+ </html>
195
+ END_EXHTMLTAIL
196
+ end
197
+ File.chmod(0644, html)
198
+ end
199
+
200
+ end
201
+
202
+ puts "setup.rb: entering post-setup phase..."
203
+
204
+
205
+ if BUILD_HTMLDOC
206
+
207
+ #
208
+ # Don't bother if we're in the sandbox
209
+ #
210
+ if File.exists? 'CVS/Entries'
211
+ puts "post-setup.rb: in CVS sandbox - stopping..."
212
+ exit
213
+ end
214
+
215
+ puts "post-setup.rb: setting up documentation..."
216
+
217
+ # We're in the source directory. Process the doc in-place. The post-install.rb
218
+ # script moves the generated documentation to the ultimate installation directories.
219
+
220
+ cwd = Dir.getwd()
221
+ Dir.chdir('doc') # need to work with 1.6.x, can't use block form
222
+ begin
223
+
224
+ # Step 1A: edit the shebang line in the examples
225
+ Dir.chdir('ex')
226
+ files = Dir['*.rb']
227
+ files.each do |file|
228
+ filter(file) { |line| line.sub(/\A\#!\s*\S*ruby\s/, '#!'+RUBYPROG+' ') }
229
+
230
+ # Step 1B: Make a copy of the example as HTML in the doc directory
231
+ filetoHTML(file, "../#{file}.html")
232
+ end
233
+
234
+ # Step 2: run the examples
235
+ examples = Dir['*.rb'].sort
236
+ examples -= DONT_RUN
237
+ es = ExampleSet.new(examples.length)
238
+ begin
239
+ examples.each { |example| es.update(example) }
240
+ ensure
241
+ es.persist
242
+ end
243
+
244
+ ensure
245
+ Dir.chdir(cwd)
246
+ end
247
+
248
+ else
249
+
250
+ puts "post-setup.rb: --disable-htmldoc specified. No documentation will be set up."
251
+
252
+ end
253
+
254
+ exit
data/public/500.html CHANGED
@@ -3,6 +3,7 @@
3
3
  <html>
4
4
  <body>
5
5
  <h1>Application error</h1>
6
- <p>Change this error message for exceptions thrown outside of an action (like in Dispatcher setups or broken Ruby code) in public/500.html</p>
6
+
7
+ <p>An error prevented the request from being served.</p>
7
8
  </body>
8
9
  </html>
Binary file
@@ -1,3 +1,5 @@
1
+ textarea {font-family:Arial, Helvetica, sans-serif; font-size:10.8pt;}
2
+
1
3
  .task_description { width: 300px; }
2
4
  .task_hours { width: 32px; }
3
5
  .task_time { width: 40px }
@@ -15,18 +17,29 @@ table.input td {vertical-align: top; margin: 0; border: 0; padding: 0 1px;}
15
17
  .dragable-hover {background: yellow; border: 1px solid black;}
16
18
  .dropzone-hover {background: yellow; border: 1px solid black;}
17
19
  th.hours {text-align: right;}
18
- #q { font-size: 10px;margin-left: 1em; border: 1px solid black; text-align: center; width: 5em}
20
+ #q { font-size: 10px;margin-left: 1em; border: 1px solid black; text-align: center; width: 5em}
19
21
  .fieldWithErrors {
20
22
  padding: 2px;
21
23
  background-color: red;
22
24
  display: table;
23
25
  }
24
26
 
27
+ #notice {
28
+ border: 2px solid green;
29
+ padding: 7px;
30
+ padding-bottom: 12px;
31
+ margin: 1em;
32
+ margin-left: 0px;
33
+ background: transparent;
34
+ float: right;
35
+ }
36
+
25
37
  #errorExplanation {
26
38
  border: 2px solid red;
27
39
  padding: 7px;
28
40
  padding-bottom: 12px;
29
- margin-bottom: 20px;
41
+ margin: 1em;
42
+ margin-left: 0px;
30
43
  background: transparent;
31
44
  float: right;
32
45
  }
@@ -1,4 +1,4 @@
1
- body {/*background-attachment:fixed;*/ background-color:#5B7C7C; background-image:url(/images/pagebak.jpg); background-position:top left; background-repeat:no-repeat; color:#FFFFFF; font-family:Arial, Helvetica, sans-serif; font-size:12px; text-align:left; margin:0px; padding:0px 0px 5px 0px;}
1
+ body {background-attachment:fixed; background-color:#5B7C7C; background-image:url(/images/pagebak.jpg); background-position:top left; background-repeat:no-repeat; color:#FFFFFF; font-family:Arial, Helvetica, sans-serif; font-size:12px; text-align:left; margin:0px; padding:0px 0px 5px 0px;}
2
2
  h1 {font-size:36px; font-weight:bold; margin:0px; padding:0px;}
3
3
  h2 {font-size:24px;font-weight:bold; margin:0px; padding:0px;}
4
4
  h3 {font-size:18px; font-weight:bold; margin:0px; padding:0px;}
@@ -62,7 +62,7 @@ div.progressBar {
62
62
 
63
63
  div.progressBar div.border {
64
64
  background-color: #fff;
65
- border: 1px solid grey;
65
+ border: 1px solid gray;
66
66
  width: 100%;
67
67
  }
68
68
 
@@ -0,0 +1,13 @@
1
+ # Read about fixtures at http://ar.rubyonrails.org/classes/Fixtures.html
2
+ one:
3
+ id: 1
4
+ task_id: 2
5
+ name: text_file.txt
6
+ content_type: text/plain
7
+ content_data: data1
8
+ two:
9
+ id: 2
10
+ task_id: 2
11
+ name: image.png
12
+ content_type: image/png
13
+ content_data: data2