taskjuggler 3.1.0 → 3.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (410) hide show
  1. data/CHANGELOG +44 -0
  2. data/bin/tj3webd +4 -0
  3. data/data/css/tjreport.css +14 -5
  4. data/data/tjp.vim +22 -7
  5. data/examples/Fedora-20/reports.tji +2 -4
  6. data/examples/Scrum/Product Burndown.csv +26 -0
  7. data/examples/Scrum/Sprint 1 Burndown.csv +26 -0
  8. data/examples/Scrum/Sprint 2 Burndown.csv +26 -0
  9. data/examples/Scrum/Sprint 3 Burndown.csv +26 -0
  10. data/examples/Scrum/scrum.tjp +141 -0
  11. data/examples/Tutorial/tutorial.tjp +13 -7
  12. data/lib/taskjuggler/Attributes.rb +2 -3
  13. data/lib/taskjuggler/HTMLDocument.rb +25 -18
  14. data/lib/taskjuggler/Journal.rb +85 -65
  15. data/lib/taskjuggler/KeywordDocumentation.rb +25 -13
  16. data/lib/taskjuggler/LeaveList.rb +1 -1
  17. data/lib/taskjuggler/Limits.rb +3 -5
  18. data/lib/taskjuggler/MessageHandler.rb +173 -19
  19. data/lib/taskjuggler/Painter.rb +75 -0
  20. data/lib/taskjuggler/Painter/BasicShapes.rb +76 -0
  21. data/lib/taskjuggler/Painter/Color.rb +273 -0
  22. data/lib/taskjuggler/Painter/Element.rb +56 -0
  23. data/lib/taskjuggler/Painter/FontData.rb +221 -0
  24. data/lib/taskjuggler/Painter/FontMetrics.rb +125 -0
  25. data/lib/taskjuggler/Painter/FontMetricsData.rb +151 -0
  26. data/lib/taskjuggler/Painter/Group.rb +77 -0
  27. data/lib/taskjuggler/Painter/Points.rb +47 -0
  28. data/lib/taskjuggler/Painter/Primitives.rb +100 -0
  29. data/lib/taskjuggler/Painter/SVGSupport.rb +36 -0
  30. data/lib/taskjuggler/Painter/Text.rb +36 -0
  31. data/lib/taskjuggler/Project.rb +46 -29
  32. data/lib/taskjuggler/ProjectFileParser.rb +24 -22
  33. data/lib/taskjuggler/ProjectFileScanner.rb +2 -2
  34. data/lib/taskjuggler/PropertyTreeNode.rb +26 -34
  35. data/lib/taskjuggler/Query.rb +8 -5
  36. data/lib/taskjuggler/RealFormat.rb +3 -0
  37. data/lib/taskjuggler/Resource.rb +3 -5
  38. data/lib/taskjuggler/ResourceScenario.rb +19 -7
  39. data/lib/taskjuggler/RichText.rb +4 -6
  40. data/lib/taskjuggler/RichText/FunctionExample.rb +1 -1
  41. data/lib/taskjuggler/RichText/FunctionHandler.rb +5 -6
  42. data/lib/taskjuggler/RichText/Parser.rb +4 -6
  43. data/lib/taskjuggler/RichText/RTFNavigator.rb +1 -1
  44. data/lib/taskjuggler/RichText/RTFQuery.rb +2 -3
  45. data/lib/taskjuggler/RichText/RTFReport.rb +1 -1
  46. data/lib/taskjuggler/RichText/RTFReportLink.rb +1 -2
  47. data/lib/taskjuggler/RichText/RTFWithQuerySupport.rb +1 -1
  48. data/lib/taskjuggler/RichText/Scanner.rb +6 -6
  49. data/lib/taskjuggler/RichText/Snip.rb +1 -2
  50. data/lib/taskjuggler/RuntimeConfig.rb +9 -6
  51. data/lib/taskjuggler/ScenarioData.rb +4 -3
  52. data/lib/taskjuggler/Scoreboard.rb +6 -0
  53. data/lib/taskjuggler/SheetHandlerBase.rb +25 -8
  54. data/lib/taskjuggler/SimpleQueryExpander.rb +14 -5
  55. data/lib/taskjuggler/SyntaxReference.rb +1 -2
  56. data/lib/taskjuggler/TableColumnSorter.rb +84 -0
  57. data/lib/taskjuggler/Task.rb +3 -5
  58. data/lib/taskjuggler/TaskJuggler.rb +36 -29
  59. data/lib/taskjuggler/TaskScenario.rb +154 -66
  60. data/lib/taskjuggler/TextParser.rb +24 -17
  61. data/lib/taskjuggler/TextParser/Scanner.rb +16 -11
  62. data/lib/taskjuggler/TextParser/SourceFileInfo.rb +20 -15
  63. data/lib/taskjuggler/TimeSheets.rb +6 -12
  64. data/lib/taskjuggler/Tj3AppBase.rb +35 -16
  65. data/lib/taskjuggler/Tj3Config.rb +1 -1
  66. data/lib/taskjuggler/TjpSyntaxRules.rb +239 -49
  67. data/lib/taskjuggler/XMLElement.rb +9 -2
  68. data/lib/taskjuggler/apps/Tj3.rb +43 -37
  69. data/lib/taskjuggler/apps/Tj3Client.rb +62 -112
  70. data/lib/taskjuggler/apps/Tj3Daemon.rb +66 -29
  71. data/lib/taskjuggler/apps/Tj3Man.rb +5 -5
  72. data/lib/taskjuggler/apps/Tj3SsReceiver.rb +10 -13
  73. data/lib/taskjuggler/apps/Tj3SsSender.rb +13 -16
  74. data/lib/taskjuggler/apps/Tj3TsReceiver.rb +10 -13
  75. data/lib/taskjuggler/apps/Tj3TsSender.rb +12 -15
  76. data/lib/taskjuggler/apps/Tj3TsSummary.rb +12 -15
  77. data/lib/taskjuggler/apps/Tj3WebD.rb +99 -0
  78. data/lib/taskjuggler/daemon/Daemon.rb +50 -10
  79. data/lib/taskjuggler/daemon/DaemonConnector.rb +127 -0
  80. data/lib/taskjuggler/daemon/ProcessIntercom.rb +36 -21
  81. data/lib/taskjuggler/daemon/ProjectBroker.rb +122 -112
  82. data/lib/taskjuggler/daemon/ProjectServer.rb +78 -46
  83. data/lib/taskjuggler/daemon/ReportServer.rb +52 -28
  84. data/lib/taskjuggler/daemon/ReportServlet.rb +92 -21
  85. data/lib/taskjuggler/daemon/WebServer.rb +75 -22
  86. data/lib/taskjuggler/daemon/WelcomePage.rb +1 -0
  87. data/lib/taskjuggler/reports/AccountListRE.rb +3 -3
  88. data/lib/taskjuggler/reports/CSVFile.rb +9 -2
  89. data/lib/taskjuggler/reports/ChartPlotter.rb +453 -0
  90. data/lib/taskjuggler/reports/Navigator.rb +1 -0
  91. data/lib/taskjuggler/reports/NikuReport.rb +4 -4
  92. data/lib/taskjuggler/reports/Report.rb +6 -18
  93. data/lib/taskjuggler/reports/ReportBase.rb +9 -9
  94. data/lib/taskjuggler/reports/ReportContext.rb +2 -2
  95. data/lib/taskjuggler/reports/StatusSheetReport.rb +6 -6
  96. data/lib/taskjuggler/reports/TableReport.rb +24 -15
  97. data/lib/taskjuggler/reports/TimeSheetReport.rb +5 -5
  98. data/lib/taskjuggler/reports/TraceReport.rb +251 -0
  99. data/lib/tj3webd.rb +17 -0
  100. data/manual/Day_To_Day_Juggling +10 -3
  101. data/manual/Installation +38 -19
  102. data/manual/Software +25 -19
  103. data/manual/Tutorial +119 -110
  104. data/manual/html/Day_To_Day_Juggling.html +7 -5
  105. data/manual/html/Getting_Started.html +4 -4
  106. data/manual/html/How_To_Contribute.html +4 -4
  107. data/manual/html/Installation.html +19 -11
  108. data/manual/html/Intro.html +4 -4
  109. data/manual/html/Reporting_Bugs.html +4 -4
  110. data/manual/html/Rich_Text_Attributes.html +4 -4
  111. data/manual/html/Software.html +15 -11
  112. data/manual/html/TaskJuggler_2x_Migration.html +4 -4
  113. data/manual/html/TaskJuggler_Internals.html +4 -4
  114. data/manual/html/The_TaskJuggler_Syntax.html +4 -4
  115. data/manual/html/Tutorial.html +41 -32
  116. data/manual/html/account.html +4 -4
  117. data/manual/html/account.task.html +4 -4
  118. data/manual/html/accountprefix.html +4 -4
  119. data/manual/html/accountreport.html +27 -9
  120. data/manual/html/accountroot.html +5 -5
  121. data/manual/html/active.html +4 -4
  122. data/manual/html/adopt.task.html +4 -4
  123. data/manual/html/aggregate.html +4 -4
  124. data/manual/html/alert.html +4 -4
  125. data/manual/html/alertlevels.html +4 -4
  126. data/manual/html/allocate.html +5 -5
  127. data/manual/html/alphabet.html +4 -4
  128. data/manual/html/alternative.html +4 -4
  129. data/manual/html/author.html +4 -4
  130. data/manual/html/balance.html +5 -5
  131. data/manual/html/booking.resource.html +4 -4
  132. data/manual/html/booking.task.html +4 -4
  133. data/manual/html/caption.html +5 -5
  134. data/manual/html/cellcolor.column.html +43 -8
  135. data/manual/html/celltext.column.html +4 -4
  136. data/manual/html/center.html +5 -5
  137. data/manual/html/charge.html +4 -4
  138. data/manual/html/chargeset.html +4 -4
  139. data/manual/html/columnid.html +27 -15
  140. data/manual/html/columns.html +5 -5
  141. data/manual/html/complete.html +4 -4
  142. data/manual/html/copyright.html +4 -4
  143. data/manual/html/credits.html +4 -4
  144. data/manual/html/css/tjreport.css +14 -5
  145. data/manual/html/currency.html +4 -4
  146. data/manual/html/currencyformat.html +5 -5
  147. data/manual/html/dailymax.html +5 -5
  148. data/manual/html/dailymin.html +5 -5
  149. data/manual/html/dailyworkinghours.html +4 -4
  150. data/manual/html/date.extend.html +4 -4
  151. data/manual/html/date.html +5 -5
  152. data/manual/html/definitions.html +4 -4
  153. data/manual/html/depends.html +4 -4
  154. data/manual/html/details.html +4 -4
  155. data/manual/html/disabled.html +4 -4
  156. data/manual/html/duration.html +4 -4
  157. data/manual/html/efficiency.html +4 -4
  158. data/manual/html/effort.html +4 -4
  159. data/manual/html/email.html +4 -4
  160. data/manual/html/enabled.html +4 -4
  161. data/manual/html/end.column.html +4 -4
  162. data/manual/html/end.html +4 -4
  163. data/manual/html/end.limit.html +4 -4
  164. data/manual/html/end.report.html +5 -5
  165. data/manual/html/end.timesheet.html +4 -4
  166. data/manual/html/endcredit.html +4 -4
  167. data/manual/html/epilog.html +5 -5
  168. data/manual/html/export.html +4 -4
  169. data/manual/html/extend.html +4 -4
  170. data/manual/html/fail.html +43 -8
  171. data/manual/html/fdl.html +4 -4
  172. data/manual/html/flags.account.html +4 -4
  173. data/manual/html/flags.html +4 -4
  174. data/manual/html/flags.journalentry.html +4 -4
  175. data/manual/html/flags.report.html +5 -5
  176. data/manual/html/flags.resource.html +4 -4
  177. data/manual/html/flags.statussheet.html +4 -4
  178. data/manual/html/flags.task.html +4 -4
  179. data/manual/html/flags.timesheet.html +4 -4
  180. data/manual/html/fontcolor.column.html +43 -8
  181. data/manual/html/footer.html +5 -5
  182. data/manual/html/formats.html +5 -5
  183. data/manual/html/functions.html +4 -4
  184. data/manual/html/gapduration.html +4 -4
  185. data/manual/html/gaplength.html +4 -4
  186. data/manual/html/halign.center.html +4 -4
  187. data/manual/html/halign.column.html +43 -8
  188. data/manual/html/halign.left.html +4 -4
  189. data/manual/html/halign.right.html +4 -4
  190. data/manual/html/hasalert.html +4 -4
  191. data/manual/html/header.html +5 -5
  192. data/manual/html/headline.html +7 -7
  193. data/manual/html/height.html +72 -0
  194. data/manual/html/hideaccount.html +46 -11
  195. data/manual/html/hidejournalentry.html +5 -5
  196. data/manual/html/hidereport.html +43 -8
  197. data/manual/html/hideresource.html +44 -9
  198. data/manual/html/hidetask.html +44 -9
  199. data/manual/html/icalreport.html +4 -4
  200. data/manual/html/include.macro.html +4 -4
  201. data/manual/html/include.project.html +4 -4
  202. data/manual/html/include.properties.html +4 -4
  203. data/manual/html/index.html +2 -1
  204. data/manual/html/inherit.extend.html +4 -4
  205. data/manual/html/interval1.html +4 -4
  206. data/manual/html/interval2.html +4 -4
  207. data/manual/html/interval3.html +4 -4
  208. data/manual/html/interval4.html +4 -4
  209. data/manual/html/isactive.html +4 -4
  210. data/manual/html/ischildof.html +4 -4
  211. data/manual/html/isdependencyof.html +4 -4
  212. data/manual/html/isdutyof.html +4 -4
  213. data/manual/html/isfeatureof.html +4 -4
  214. data/manual/html/isleaf.html +4 -4
  215. data/manual/html/ismilestone.html +4 -4
  216. data/manual/html/isongoing.html +4 -4
  217. data/manual/html/isresource.html +4 -4
  218. data/manual/html/isresponsibilityof.html +4 -4
  219. data/manual/html/istask.html +4 -4
  220. data/manual/html/journalattributes.html +11 -7
  221. data/manual/html/journalentry.html +4 -4
  222. data/manual/html/journalmode.html +5 -5
  223. data/manual/html/leaveallowance.html +5 -5
  224. data/manual/html/leaves.html +5 -6
  225. data/manual/html/left.html +5 -5
  226. data/manual/html/length.html +4 -4
  227. data/manual/html/limits.allocate.html +4 -4
  228. data/manual/html/limits.html +4 -4
  229. data/manual/html/limits.resource.html +4 -4
  230. data/manual/html/limits.task.html +4 -4
  231. data/manual/html/listitem.column.html +4 -4
  232. data/manual/html/listtype.column.html +4 -4
  233. data/manual/html/loadunit.html +5 -5
  234. data/manual/html/logicalexpression.html +8 -44
  235. data/manual/html/logicalflagexpression.html +4 -4
  236. data/manual/html/macro.html +4 -4
  237. data/manual/html/managers.html +4 -4
  238. data/manual/html/mandatory.html +4 -4
  239. data/manual/html/maxend.html +4 -4
  240. data/manual/html/maximum.html +5 -5
  241. data/manual/html/maxstart.html +4 -4
  242. data/manual/html/milestone.html +4 -4
  243. data/manual/html/minend.html +4 -4
  244. data/manual/html/minimum.html +5 -5
  245. data/manual/html/minstart.html +4 -4
  246. data/manual/html/monthlymax.html +5 -5
  247. data/manual/html/monthlymin.html +5 -5
  248. data/manual/html/navbar.html +10 -4
  249. data/manual/html/navigator.html +4 -4
  250. data/manual/html/newtask.html +4 -4
  251. data/manual/html/nikureport.html +4 -4
  252. data/manual/html/note.task.html +4 -4
  253. data/manual/html/now.html +4 -4
  254. data/manual/html/numberformat.html +5 -5
  255. data/manual/html/onend.html +4 -4
  256. data/manual/html/onstart.html +4 -4
  257. data/manual/html/opennodes.html +5 -5
  258. data/manual/html/overtime.booking.html +4 -4
  259. data/manual/html/period.column.html +4 -4
  260. data/manual/html/period.limit.html +4 -4
  261. data/manual/html/period.report.html +5 -5
  262. data/manual/html/period.task.html +4 -4
  263. data/manual/html/persistent.html +4 -4
  264. data/manual/html/precedes.html +4 -4
  265. data/manual/html/priority.html +4 -4
  266. data/manual/html/priority.timesheet.html +4 -4
  267. data/manual/html/project.html +4 -4
  268. data/manual/html/projectid.html +4 -4
  269. data/manual/html/projectid.task.html +4 -4
  270. data/manual/html/projectids.html +4 -4
  271. data/manual/html/projection.html +5 -7
  272. data/manual/html/prolog.html +5 -5
  273. data/manual/html/properties.html +11 -5
  274. data/manual/html/purge.html +5 -5
  275. data/manual/html/rate.html +4 -4
  276. data/manual/html/rate.resource.html +4 -4
  277. data/manual/html/reference.extend.html +4 -4
  278. data/manual/html/remaining.html +4 -4
  279. data/manual/html/replace.html +4 -4
  280. data/manual/html/reportprefix.html +4 -4
  281. data/manual/html/resource.html +4 -10
  282. data/manual/html/resourceattributes.html +4 -4
  283. data/manual/html/resourceprefix.html +4 -4
  284. data/manual/html/resourcereport.html +28 -10
  285. data/manual/html/resourceroot.html +5 -5
  286. data/manual/html/resources.limit.html +4 -4
  287. data/manual/html/responsible.html +4 -4
  288. data/manual/html/richtext.extend.html +4 -4
  289. data/manual/html/right.html +5 -5
  290. data/manual/html/rollupaccount.html +44 -9
  291. data/manual/html/rollupresource.html +44 -9
  292. data/manual/html/rolluptask.html +44 -9
  293. data/manual/html/scale.column.html +4 -4
  294. data/manual/html/scenario.html +4 -22
  295. data/manual/html/scenario.ical.html +4 -4
  296. data/manual/html/scenarios.export.html +4 -4
  297. data/manual/html/scenarios.html +5 -5
  298. data/manual/html/scenariospecific.extend.html +4 -4
  299. data/manual/html/scheduled.html +4 -4
  300. data/manual/html/scheduling.html +4 -4
  301. data/manual/html/select.html +4 -4
  302. data/manual/html/selfcontained.html +5 -5
  303. data/manual/html/shift.allocate.html +4 -4
  304. data/manual/html/shift.html +4 -4
  305. data/manual/html/shift.resource.html +5 -5
  306. data/manual/html/shift.task.html +4 -4
  307. data/manual/html/shift.timesheet.html +4 -4
  308. data/manual/html/shifts.allocate.html +4 -4
  309. data/manual/html/shifts.resource.html +4 -4
  310. data/manual/html/shifts.task.html +4 -4
  311. data/manual/html/shorttimeformat.html +4 -4
  312. data/manual/html/sloppy.booking.html +4 -4
  313. data/manual/html/sloppy.projection.html +5 -5
  314. data/manual/html/sortaccounts.html +5 -5
  315. data/manual/html/sortjournalentries.html +5 -5
  316. data/manual/html/sortresources.html +5 -5
  317. data/manual/html/sorttasks.html +5 -5
  318. data/manual/html/start.column.html +4 -4
  319. data/manual/html/start.html +4 -4
  320. data/manual/html/start.limit.html +4 -4
  321. data/manual/html/start.report.html +5 -5
  322. data/manual/html/startcredit.html +4 -4
  323. data/manual/html/status.statussheet.html +4 -4
  324. data/manual/html/status.timesheet.html +4 -4
  325. data/manual/html/statussheet.html +4 -4
  326. data/manual/html/statussheetreport.html +4 -4
  327. data/manual/html/strict.projection.html +5 -5
  328. data/manual/html/summary.html +4 -4
  329. data/manual/html/supplement.html +4 -4
  330. data/manual/html/supplement.resource.html +4 -10
  331. data/manual/html/supplement.task.html +4 -28
  332. data/manual/html/tagfile.html +4 -4
  333. data/manual/html/task.html +4 -28
  334. data/manual/html/task.statussheet.html +4 -4
  335. data/manual/html/task.timesheet.html +4 -4
  336. data/manual/html/taskattributes.html +4 -4
  337. data/manual/html/taskprefix.html +4 -4
  338. data/manual/html/taskreport.html +28 -10
  339. data/manual/html/taskroot.html +5 -5
  340. data/manual/html/text.extend.html +4 -4
  341. data/manual/html/textreport.html +27 -9
  342. data/manual/html/timeformat.html +5 -5
  343. data/manual/html/timeoff.nikureport.html +4 -4
  344. data/manual/html/timesheet.html +4 -4
  345. data/manual/html/timesheetreport.html +23 -5
  346. data/manual/html/timezone.export.html +4 -4
  347. data/manual/html/timezone.html +4 -4
  348. data/manual/html/timezone.report.html +5 -5
  349. data/manual/html/timezone.shift.html +4 -4
  350. data/manual/html/timingresolution.html +4 -4
  351. data/manual/html/title.column.html +4 -4
  352. data/manual/html/title.html +5 -5
  353. data/manual/html/toc.html +207 -179
  354. data/manual/html/tooltip.column.html +45 -10
  355. data/manual/html/tracereport.html +405 -0
  356. data/manual/html/trackingscenario.html +6 -6
  357. data/manual/html/treelevel.html +4 -4
  358. data/manual/html/vacation.html +4 -4
  359. data/manual/html/vacation.resource.html +4 -4
  360. data/manual/html/vacation.shift.html +4 -4
  361. data/manual/html/warn.html +43 -8
  362. data/manual/html/weeklymax.html +5 -5
  363. data/manual/html/weeklymin.html +5 -5
  364. data/manual/html/weekstartsmonday.html +4 -4
  365. data/manual/html/weekstartssunday.html +6 -6
  366. data/manual/html/width.column.html +6 -6
  367. data/manual/html/width.html +72 -0
  368. data/manual/html/work.html +4 -4
  369. data/manual/html/workinghours.project.html +4 -4
  370. data/manual/html/workinghours.resource.html +4 -4
  371. data/manual/html/workinghours.shift.html +4 -4
  372. data/manual/html/yearlyworkingdays.html +4 -4
  373. data/spec/Color_spec.rb +60 -0
  374. data/spec/ProjectBroker_spec.rb +3 -2
  375. data/spec/StatusSheets_spec.rb +5 -4
  376. data/spec/TableColumnSorter_spec.rb +78 -0
  377. data/spec/TimeSheets_spec.rb +6 -2
  378. data/spec/Tj3Daemon_spec.rb +2 -2
  379. data/spec/TraceReport_spec.rb +117 -0
  380. data/taskjuggler.gemspec +1 -1
  381. data/test/MessageChecker.rb +3 -1
  382. data/test/ReferenceGenerator.rb +1 -1
  383. data/test/TestSuite/CSV-Reports/Leave.tjp +1 -1
  384. data/test/TestSuite/CSV-Reports/refs/resourcereport_with_tasks.csv +3 -0
  385. data/test/TestSuite/CSV-Reports/refs/taskcounter.csv +9 -0
  386. data/test/TestSuite/CSV-Reports/refs/taskreport_with_resources.csv +19 -16
  387. data/test/TestSuite/CSV-Reports/refs/weekly.csv +1 -0
  388. data/test/TestSuite/Export-Reports/refs/LogicalExpression.tjp +14 -2
  389. data/test/TestSuite/Export-Reports/refs/tutorial.tjp +98 -86
  390. data/test/TestSuite/Scheduler/Correct/Leaves.tjp +25 -0
  391. data/test/TestSuite/Syntax/Correct/Leave.tjp +1 -1
  392. data/test/TestSuite/Syntax/Correct/LogicalExpression.tjp +9 -1
  393. data/test/TestSuite/Syntax/Correct/TraceReport.tjp +10 -0
  394. data/test/TestSuite/Syntax/Correct/tutorial.tjp +10 -4
  395. data/test/test_CSV-Reports.rb +3 -3
  396. data/test/test_Export-Reports.rb +91 -86
  397. data/test/test_Journal.rb +15 -12
  398. data/test/test_Limits.rb +3 -3
  399. data/test/test_Project.rb +1 -2
  400. data/test/test_ProjectFileScanner.rb +1 -1
  401. data/test/test_PropertySet.rb +1 -1
  402. data/test/test_Query.rb +5 -6
  403. data/test/test_ReportGenerator.rb +15 -7
  404. data/test/test_RichText.rb +4 -3
  405. data/test/test_Scheduler.rb +19 -7
  406. data/test/test_ShiftAssignments.rb +2 -2
  407. data/test/test_SimpleQueryExpander.rb +29 -2
  408. data/test/test_Syntax.rb +14 -5
  409. metadata +49 -10
  410. data/lib/taskjuggler/LogFile.rb +0 -73
@@ -36,8 +36,7 @@ class TestJournal < Test::Unit::TestCase
36
36
  end
37
37
 
38
38
  def setup
39
- @p = TaskJuggler::Project.new('hello', 'Hello World', '1.0',
40
- MessageHandler.new(true))
39
+ @p = TaskJuggler::Project.new('hello', 'Hello World', '1.0')
41
40
  @p['start'] = tm('2009-11-01')
42
41
  @p['end'] = tm('2009-12-31')
43
42
  @j = @p['journal']
@@ -109,62 +108,66 @@ class TestJournal < Test::Unit::TestCase
109
108
 
110
109
  def test_currentEntries
111
110
  createTaskTree
111
+ q = Query.new
112
+ q.scenarioIdx = 0
112
113
  # Set a 0 alert for a task
113
114
  a1 = addAlert('2009-11-29', 0, t = task('p1.m1.l1'))
114
- ce = @j.currentEntriesR(tm('2009-12-05'), t)
115
+ ce = @j.currentEntriesR(tm('2009-12-05'), t, 0, nil, q)
115
116
  assert_equal(1, ce.count)
116
117
  assert_equal(a1, ce[0])
117
118
 
118
119
  # Add a later alert for the same task
119
120
  a2 = addAlert('2009-11-30', 0, t = task('p1.m1.l1'))
120
- ce = @j.currentEntriesR(tm('2009-12-05'), t)
121
+ ce = @j.currentEntriesR(tm('2009-12-05'), t, 0, nil, q)
121
122
  assert_equal(1, ce.count)
122
123
  assert_equal(a2, ce[0])
123
124
 
124
125
  # Add another alert to the sister task and check parent
125
126
  a3 = addAlert('2009-11-30', 0, t = task('p1.m1.l2'))
126
- ce = @j.currentEntriesR(tm('2009-12-05'), task('p1.m1'))
127
+ ce = @j.currentEntriesR(tm('2009-12-05'), task('p1.m1'), 0, nil, q)
127
128
  assert_equal(2, ce.count)
128
129
  assert_equal(a2, ce[0])
129
130
  assert_equal(a3, ce[1])
130
131
 
131
132
  # Check root task
132
- ce = @j.currentEntriesR(tm('2009-12-05'), task('p1'))
133
+ ce = @j.currentEntriesR(tm('2009-12-05'), task('p1'), 0, nil, q)
133
134
  assert_equal(2, ce.count)
134
135
  assert_equal(a2, ce[0])
135
136
  assert_equal(a3, ce[1])
136
137
 
137
138
  # Add old override alert to p1.m1
138
139
  addAlert('2009-11-29', 0, t = task('p1.m1'))
139
- ce = @j.currentEntriesR(tm('2009-12-05'), task('p1'))
140
+ ce = @j.currentEntriesR(tm('2009-12-05'), task('p1'), 0, nil, q)
140
141
  assert_equal(2, ce.count)
141
142
  assert_equal(a2, ce[0])
142
143
  assert_equal(a3, ce[1])
143
144
 
144
145
  # Add new override alert to p1.m1
145
146
  a4 = addAlert('2009-12-01', 0, t = task('p1.m1'))
146
- ce = @j.currentEntriesR(tm('2009-12-05'), task('p1'))
147
+ ce = @j.currentEntriesR(tm('2009-12-05'), task('p1'), 0, nil, q)
147
148
  assert_equal(1, ce.count)
148
149
  assert_equal(a4, ce[0])
149
150
  end
150
151
 
151
152
  def test_alertSimple
152
153
  createTaskTree
154
+ q = Query.new
155
+ q.scenarioIdx = 0
153
156
  # Set a 0 alert for a task
154
157
  addAlert('2009-11-29', 0, t = task('p1.m1.l1'))
155
- assert_equal(0, @j.alertLevel(tm('2009-12-01'), t, nil))
158
+ assert_equal(0, @j.alertLevel(tm('2009-12-01'), t, q))
156
159
 
157
160
  # Now add a later 1 alert
158
161
  addAlert('2009-12-01', 1, t)
159
- assert_equal(1, @j.alertLevel(tm('2009-12-02'), t, nil))
162
+ assert_equal(1, @j.alertLevel(tm('2009-12-02'), t, q))
160
163
 
161
164
  # Set a 2 alert for p1.m1.l2
162
165
  addAlert('2009-11-29', 2, task('p1.m1.l2'))
163
- assert_equal(2, @j.alertLevel(tm('2009-12-01'), task('p1'), nil))
166
+ assert_equal(2, @j.alertLevel(tm('2009-12-01'), task('p1'), q))
164
167
 
165
168
  # Overide p1.m1 with 0 alert
166
169
  addAlert('2009-12-01', 0, task('p1.m1'))
167
- assert_equal(0, @j.alertLevel(tm('2009-12-01'), task('p1'), nil))
170
+ assert_equal(0, @j.alertLevel(tm('2009-12-01'), task('p1'), q))
168
171
  end
169
172
 
170
173
  private
@@ -24,7 +24,7 @@ class TaskJuggler
24
24
  class TestLimits < Test::Unit::TestCase
25
25
 
26
26
  def setup
27
- @p = Project.new('p1', 'p 1', '1.0', MessageHandler.new)
27
+ @p = Project.new('p1', 'p 1', '1.0')
28
28
  @p['start'] = TjTime.new('2009-01-21')
29
29
  @p['end'] = TjTime.new('2009-03-01')
30
30
  end
@@ -102,7 +102,7 @@ class TestLimits < Test::Unit::TestCase
102
102
  assert(l.ok?)
103
103
  l.inc(dateToIdx('2009-02-01-13:00'))
104
104
  assert(!l.ok?)
105
- assert(l.ok?(nil, true, r))
105
+ assert(!l.ok?(nil, true, r))
106
106
  end
107
107
 
108
108
  def test_with_resource_2
@@ -154,7 +154,7 @@ class TestLimits < Test::Unit::TestCase
154
154
  assert(!l.ok?)
155
155
  l.inc(dateToIdx('2009-02-01-12:00'), r)
156
156
  assert(!l.ok?)
157
- assert(l.ok?(nil, true, r))
157
+ assert(!l.ok?(nil, true, r))
158
158
  l.inc(dateToIdx('2009-02-01-13:00'), r)
159
159
  assert(!l.ok?)
160
160
  assert(!l.ok?(nil, true, r))
@@ -28,8 +28,7 @@ class TestProject < Test::Unit::TestCase
28
28
  end
29
29
 
30
30
  def test_helloWorld
31
- p = TaskJuggler::Project.new('hello', 'Hello World', '1.0',
32
- MessageHandler.new(true))
31
+ p = TaskJuggler::Project.new('hello', 'Hello World', '1.0')
33
32
  p['start'] = TjTime.new('2008-07-24')
34
33
  p['end'] = TjTime.new('2008-08-31')
35
34
 
@@ -177,7 +177,7 @@ EOT
177
177
  end
178
178
 
179
179
  def check(text, ref, macros = [])
180
- s = TaskJuggler::ProjectFileScanner.new(text, MessageHandler.new(true))
180
+ s = TaskJuggler::ProjectFileScanner.new(text)
181
181
  s.open(true)
182
182
 
183
183
  macros.each do |macro|
@@ -28,7 +28,7 @@ class TestPropertySet < Test::Unit::TestCase
28
28
  end
29
29
 
30
30
  def test_index
31
- p = TaskJuggler::Project.new('p', 'Project', '1.0', MessageHandler.new(true))
31
+ p = TaskJuggler::Project.new('p', 'Project', '1.0')
32
32
  p['start'] = TjTime.new('2008-07-29')
33
33
  p['end'] = TjTime.new('2008-08-31')
34
34
 
@@ -23,8 +23,7 @@ class TaskJuggler
23
23
  class TestQuery < Test::Unit::TestCase
24
24
 
25
25
  def setup
26
- @mh = MessageHandler.new
27
- @p = TaskJuggler::Project.new('id', 'name', 'ver', @mh)
26
+ @p = TaskJuggler::Project.new('id', 'name', 'ver')
28
27
  @p['start'] = TjTime.new('2010-09-25')
29
28
  @p['end'] = TjTime.new('2010-09-25')
30
29
  end
@@ -42,7 +41,7 @@ class TestQuery < Test::Unit::TestCase
42
41
  [ 2.0, '2880.0', '48.0', '2.0', '0.3', '0.1', '2.0d'],
43
42
  [ 3.0, '4320.0', '72.0', '3.0', '0.4', '0.1', '3.0d'],
44
43
  [ 4.0, '5760.0', '96.0', '4.0', '0.6', '0.1', '4.0d'],
45
- [ 7.0, '10080.0', '168.0', '7.0', '1.0', '0.2', '1.0w'],
44
+ [ 7.0, '10080.0', '168.0', '7.0', '1.0', '0.2', '7.0d'],
46
45
  [ 14.0, '20160.0', '336.0', '14.0', '2.0', '0.5', '2.0w'],
47
46
  [ 28.0, '40320.0', '672.0', '28.0', '4.0', '0.9', '4.0w']
48
47
  ]
@@ -62,12 +61,12 @@ class TestQuery < Test::Unit::TestCase
62
61
  # Inp mins hours days weeks months shortauto
63
62
  [ 0.0, '0.0', '0.0', '0.0', '0.0', '0.0', '0.0d'],
64
63
  [ 0.25, '120.0', '2.0', '0.3', '0.1', '0.0', '2.0h'],
65
- [ 0.1, '48.0', '0.8', '0.1', '0.0', '0.0', '48.0min'],
66
- [ 0.5, '240.0', '4.0', '0.5', '0.1', '0.0', '4.0h'],
64
+ [ 0.1, '48.0', '0.8', '0.1', '0.0', '0.0', '0.1d'],
65
+ [ 0.5, '240.0', '4.0', '0.5', '0.1', '0.0', '0.5d'],
67
66
  [ 1.0, '480.0', '8.0', '1.0', '0.2', '0.0', '1.0d'],
68
67
  [ 1.5, '720.0', '12.0', '1.5', '0.3', '0.1', '1.5d'],
69
68
  [ 2.0, '960.0', '16.0', '2.0', '0.4', '0.1', '2.0d'],
70
- [ 5.0, '2400.0', '40.0', '5.0', '1.0', '0.2', '1.0w'],
69
+ [ 5.0, '2400.0', '40.0', '5.0', '1.0', '0.2', '5.0d'],
71
70
  [ 10.0, '4800.0', '80.0', '10.0', '2.0', '0.5', '2.0w']
72
71
  ]
73
72
  vals.each do |inp, *out|
@@ -41,11 +41,17 @@ class TestReportGenerator < Test::Unit::TestCase
41
41
  path = File.dirname(__FILE__) + '/'
42
42
  Dir.glob(path + 'TestSuite/ReportGenerator/Errors/*.tjp').each do |f|
43
43
  ENV['TZ'] = 'Europe/Berlin'
44
- tj = TaskJuggler.new(false)
45
- assert(tj.parse([ f ]), "Parser failed for #{f}")
46
- assert(tj.schedule, "Scheduler failed for #{f}")
47
- tj.warnTsDeltas = true
48
- tj.generateReports(@tmpDir)
44
+ (mh = TaskJuggler::MessageHandlerInstance.instance).reset
45
+ mh.outputLevel = :none
46
+ mh.trapSetup = true
47
+ begin
48
+ tj = TaskJuggler.new
49
+ assert(tj.parse([ f ]), "Parser failed for #{f}")
50
+ assert(tj.schedule, "Scheduler failed for #{f}")
51
+ tj.warnTsDeltas = true
52
+ tj.generateReports(@tmpDir)
53
+ rescue TaskJuggler::TjRuntimeError
54
+ end
49
55
  checkMessages(tj, f)
50
56
  end
51
57
  end
@@ -54,11 +60,13 @@ class TestReportGenerator < Test::Unit::TestCase
54
60
  path = File.dirname(__FILE__) + '/'
55
61
  Dir.glob(path + 'TestSuite/ReportGenerator/Correct/*.tjp').each do |f|
56
62
  ENV['TZ'] = 'Europe/Berlin'
57
- tj = TaskJuggler.new(true)
63
+ (mh = TaskJuggler::MessageHandlerInstance.instance).reset
64
+ mh.outputLevel = :none
65
+ tj = TaskJuggler.new
58
66
  assert(tj.parse([ f ]), "Parser failed for #{f}")
59
67
  assert(tj.schedule, "Scheduler failed for #{f}")
60
68
  assert(tj.generateReports(@tmpDir), "Report generator failed for #{f}")
61
- assert(tj.messageHandler.messages.empty?, "Unexpected error in #{f}")
69
+ assert(mh.messages.empty?, "Unexpected error in #{f}")
62
70
 
63
71
  checkReports(f)
64
72
  end
@@ -22,7 +22,7 @@ require 'taskjuggler/MessageHandler'
22
22
  class RTFDummy < TaskJuggler::RichTextFunctionHandler
23
23
 
24
24
  def initialize()
25
- super(nil, 'dummy')
25
+ super('dummy')
26
26
  @blockFunction = true
27
27
  end
28
28
 
@@ -936,8 +936,9 @@ EOT
936
936
 
937
937
 
938
938
  def newRichText(text)
939
- mh = TaskJuggler::MessageHandler.new(true)
940
- rText = TaskJuggler::RichText.new(text, [ RTFDummy.new ], mh)
939
+ mh = TaskJuggler::MessageHandlerInstance.instance
940
+ mh.outputLevel = :none
941
+ rText = TaskJuggler::RichText.new(text, [ RTFDummy.new ])
941
942
  assert(rti = rText.generateIntermediateFormat, mh.to_s)
942
943
  rti.linkTarget = '_blank'
943
944
  rti
@@ -27,10 +27,16 @@ class TestScheduler < Test::Unit::TestCase
27
27
  path = File.dirname(__FILE__) + '/'
28
28
  Dir.glob(path + 'TestSuite/Scheduler/Errors/*.tjp').each do |f|
29
29
  ENV['TZ'] = 'Europe/Berlin'
30
- tj = TaskJuggler.new(false)
31
- assert(tj.parse([ f ]), "Parser failed for #{f}")
32
- tj.warnTsDeltas = true
33
- tj.schedule
30
+ (mh = TaskJuggler::MessageHandlerInstance.instance).reset
31
+ mh.outputLevel = :none
32
+ mh.trapSetup = true
33
+ begin
34
+ tj = TaskJuggler.new
35
+ assert(tj.parse([ f ]), "Parser failed for #{f}")
36
+ tj.warnTsDeltas = true
37
+ tj.schedule
38
+ rescue TaskJuggler::TjRuntimeError
39
+ end
34
40
  checkMessages(tj, f)
35
41
  end
36
42
  end
@@ -39,9 +45,15 @@ class TestScheduler < Test::Unit::TestCase
39
45
  path = File.dirname(__FILE__) + '/'
40
46
  Dir.glob(path + 'TestSuite/Scheduler/Correct/*.tjp').each do |f|
41
47
  ENV['TZ'] = 'Europe/Berlin'
42
- tj = TaskJuggler.new(false)
43
- assert(tj.parse([ f ]), "Parser failed for #{f}")
44
- assert(tj.schedule, "Scheduler failed for #{f}")
48
+ (mh = TaskJuggler::MessageHandlerInstance.instance).reset
49
+ mh.outputLevel = :none
50
+ mh.trapSetup = true
51
+ begin
52
+ tj = TaskJuggler.new
53
+ assert(tj.parse([ f ]), "Parser failed for #{f}")
54
+ assert(tj.schedule, "Scheduler failed for #{f}")
55
+ rescue TaskJuggler::TjRuntimeError
56
+ end
45
57
  checkMessages(tj, f)
46
58
  end
47
59
  end
@@ -21,8 +21,8 @@ class TestPropertySet < Test::Unit::TestCase
21
21
 
22
22
  def setup
23
23
  TaskJuggler::ShiftAssignments.sbClear
24
- @p = TaskJuggler::Project.new('p', 'Project', '1.0',
25
- TaskJuggler::MessageHandler.new(true))
24
+ TaskJuggler::MessageHandlerInstance.instance.reset
25
+ @p = TaskJuggler::Project.new('p', 'Project', '1.0')
26
26
  @p['start'] = TaskJuggler::TjTime.new('2008-07-29')
27
27
  @p['end'] = TaskJuggler::TjTime.new('2008-08-31')
28
28
  @s1 = TaskJuggler::Shift.new(@p, 's1', "Shift2", nil).scenario(0)
@@ -20,6 +20,25 @@ require 'taskjuggler/MessageHandler'
20
20
 
21
21
  class TestSimpleQueryExpander < Test::Unit::TestCase
22
22
 
23
+ class Scenario
24
+
25
+ def id
26
+ 'scId'
27
+ end
28
+
29
+ end
30
+
31
+ class Project
32
+
33
+ def initialize
34
+ end
35
+
36
+ def scenario(foo)
37
+ Scenario.new
38
+ end
39
+
40
+ end
41
+
23
42
  class Query
24
43
 
25
44
  def initialize
@@ -28,6 +47,14 @@ class TestSimpleQueryExpander < Test::Unit::TestCase
28
47
  def process
29
48
  end
30
49
 
50
+ def project
51
+ Project.new
52
+ end
53
+
54
+ def scenarioIdx
55
+ 0
56
+ end
57
+
31
58
  def attributeId=(value)
32
59
  end
33
60
 
@@ -38,6 +65,7 @@ class TestSimpleQueryExpander < Test::Unit::TestCase
38
65
  def to_s
39
66
  'XXX'
40
67
  end
68
+
41
69
  end
42
70
 
43
71
  def setup
@@ -48,8 +76,7 @@ class TestSimpleQueryExpander < Test::Unit::TestCase
48
76
 
49
77
  def test_expand
50
78
  exp = TaskJuggler::SimpleQueryExpander.new('foo <-bar-> foo',
51
- Query.new,
52
- nil, nil)
79
+ Query.new, nil)
53
80
  assert_equal('foo XXX foo', exp.expand)
54
81
  end
55
82
 
@@ -16,8 +16,8 @@ $:.unshift File.dirname(__FILE__)
16
16
 
17
17
  require 'test/unit'
18
18
 
19
- require 'MessageChecker'
20
19
  require 'taskjuggler/TaskJuggler'
20
+ require 'MessageChecker'
21
21
 
22
22
  class TestSyntax < Test::Unit::TestCase
23
23
 
@@ -30,9 +30,12 @@ class TestSyntax < Test::Unit::TestCase
30
30
  path = File.dirname(__FILE__) + '/'
31
31
  Dir.glob(path + 'TestSuite/Syntax/Correct/*.tjp').each do |f|
32
32
  ENV['TZ'] = 'Europe/Berlin'
33
- tj = TaskJuggler.new(false)
33
+ (mh = TaskJuggler::MessageHandlerInstance.instance).reset
34
+ mh.outputLevel = :none
35
+ mh.trapSetup = true
36
+ tj = TaskJuggler.new
34
37
  assert(tj.parse([ f ]), "Parser failed for #{f}")
35
- assert(tj.messageHandler.messages.empty?, "Unexpected error in #{f}")
38
+ assert(mh.messages.empty?, "Unexpected error in #{f}")
36
39
  end
37
40
  end
38
41
 
@@ -40,8 +43,14 @@ class TestSyntax < Test::Unit::TestCase
40
43
  path = File.dirname(__FILE__) + '/'
41
44
  Dir.glob(path + 'TestSuite/Syntax/Errors/*.tjp').each do |f|
42
45
  ENV['TZ'] = 'Europe/Berlin'
43
- tj = TaskJuggler.new(false)
44
- assert(!tj.parse([ f ]), "Parser succedded for #{f}")
46
+ (mh = TaskJuggler::MessageHandlerInstance.instance).reset
47
+ mh.outputLevel = :none
48
+ mh.trapSetup = true
49
+ begin
50
+ tj = TaskJuggler.new
51
+ assert(!tj.parse([ f ]), "Parser succedded for #{f}")
52
+ rescue TaskJuggler::TjRuntimeError
53
+ end
45
54
  checkMessages(tj, f)
46
55
  end
47
56
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: taskjuggler
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.1.0
4
+ version: 3.2.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,22 +9,22 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-01-11 00:00:00.000000000 Z
12
+ date: 2012-04-30 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: mail
16
- requirement: &38476660 !ruby/object:Gem::Requirement
16
+ requirement: &19022880 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
20
20
  - !ruby/object:Gem::Version
21
- version: 2.2.15
21
+ version: 2.4.3
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *38476660
24
+ version_requirements: *19022880
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: term-ansicolor
27
- requirement: &38475380 !ruby/object:Gem::Requirement
27
+ requirement: &19022400 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: 1.0.7
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *38475380
35
+ version_requirements: *19022400
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: rspec
38
- requirement: &38472780 !ruby/object:Gem::Requirement
38
+ requirement: &19021940 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,7 +43,7 @@ dependencies:
43
43
  version: 2.5.0
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *38472780
46
+ version_requirements: *19021940
47
47
  description: ! 'TaskJuggler is a modern and powerful, Free and Open Source Software
48
48
  project
49
49
 
@@ -74,6 +74,7 @@ executables:
74
74
  - tj3ts_receiver
75
75
  - tj3ts_sender
76
76
  - tj3ts_summary
77
+ - tj3webd
77
78
  extensions: []
78
79
  extra_rdoc_files:
79
80
  - README.rdoc
@@ -108,12 +109,23 @@ files:
108
109
  - lib/taskjuggler/LeaveList.rb
109
110
  - lib/taskjuggler/Limits.rb
110
111
  - lib/taskjuggler/Log.rb
111
- - lib/taskjuggler/LogFile.rb
112
112
  - lib/taskjuggler/LogicalExpression.rb
113
113
  - lib/taskjuggler/LogicalFunction.rb
114
114
  - lib/taskjuggler/LogicalOperation.rb
115
115
  - lib/taskjuggler/MessageHandler.rb
116
116
  - lib/taskjuggler/PTNProxy.rb
117
+ - lib/taskjuggler/Painter.rb
118
+ - lib/taskjuggler/Painter/BasicShapes.rb
119
+ - lib/taskjuggler/Painter/Color.rb
120
+ - lib/taskjuggler/Painter/Element.rb
121
+ - lib/taskjuggler/Painter/FontData.rb
122
+ - lib/taskjuggler/Painter/FontMetrics.rb
123
+ - lib/taskjuggler/Painter/FontMetricsData.rb
124
+ - lib/taskjuggler/Painter/Group.rb
125
+ - lib/taskjuggler/Painter/Points.rb
126
+ - lib/taskjuggler/Painter/Primitives.rb
127
+ - lib/taskjuggler/Painter/SVGSupport.rb
128
+ - lib/taskjuggler/Painter/Text.rb
117
129
  - lib/taskjuggler/Project.rb
118
130
  - lib/taskjuggler/ProjectFileParser.rb
119
131
  - lib/taskjuggler/ProjectFileScanner.rb
@@ -157,6 +169,7 @@ files:
157
169
  - lib/taskjuggler/StdIoWrapper.rb
158
170
  - lib/taskjuggler/SyntaxReference.rb
159
171
  - lib/taskjuggler/TableColumnDefinition.rb
172
+ - lib/taskjuggler/TableColumnSorter.rb
160
173
  - lib/taskjuggler/Task.rb
161
174
  - lib/taskjuggler/TaskDependency.rb
162
175
  - lib/taskjuggler/TaskJuggler.rb
@@ -199,7 +212,9 @@ files:
199
212
  - lib/taskjuggler/apps/Tj3TsReceiver.rb
200
213
  - lib/taskjuggler/apps/Tj3TsSender.rb
201
214
  - lib/taskjuggler/apps/Tj3TsSummary.rb
215
+ - lib/taskjuggler/apps/Tj3WebD.rb
202
216
  - lib/taskjuggler/daemon/Daemon.rb
217
+ - lib/taskjuggler/daemon/DaemonConnector.rb
203
218
  - lib/taskjuggler/daemon/ProcessIntercom.rb
204
219
  - lib/taskjuggler/daemon/ProjectBroker.rb
205
220
  - lib/taskjuggler/daemon/ProjectServer.rb
@@ -210,6 +225,7 @@ files:
210
225
  - lib/taskjuggler/deep_copy.rb
211
226
  - lib/taskjuggler/reports/AccountListRE.rb
212
227
  - lib/taskjuggler/reports/CSVFile.rb
228
+ - lib/taskjuggler/reports/ChartPlotter.rb
213
229
  - lib/taskjuggler/reports/CollisionDetector.rb
214
230
  - lib/taskjuggler/reports/ColumnTable.rb
215
231
  - lib/taskjuggler/reports/GanttChart.rb
@@ -242,6 +258,7 @@ files:
242
258
  - lib/taskjuggler/reports/TextReport.rb
243
259
  - lib/taskjuggler/reports/TimeSheetReport.rb
244
260
  - lib/taskjuggler/reports/TjpExportRE.rb
261
+ - lib/taskjuggler/reports/TraceReport.rb
245
262
  - lib/tj3.rb
246
263
  - lib/tj3client.rb
247
264
  - lib/tj3d.rb
@@ -251,6 +268,7 @@ files:
251
268
  - lib/tj3ts_receiver.rb
252
269
  - lib/tj3ts_sender.rb
253
270
  - lib/tj3ts_summary.rb
271
+ - lib/tj3webd.rb
254
272
  - lib/updateheader.sh
255
273
  - data/css/tjmanual.css
256
274
  - data/css/tjreport.css
@@ -283,6 +301,11 @@ files:
283
301
  - examples/Fedora-20/icons/fedoralogo.png
284
302
  - examples/Fedora-20/reports.tji
285
303
  - examples/ProjectTemplate/template.tjp
304
+ - examples/Scrum/Product Burndown.csv
305
+ - examples/Scrum/Sprint 1 Burndown.csv
306
+ - examples/Scrum/Sprint 2 Burndown.csv
307
+ - examples/Scrum/Sprint 3 Burndown.csv
308
+ - examples/Scrum/scrum.tjp
286
309
  - examples/ToDo-List/todolist.tjp
287
310
  - examples/Tutorial/tutorial.tjp
288
311
  - tasks/changelog.rake
@@ -301,6 +324,7 @@ files:
301
324
  - manual/html/aggregate.html
302
325
  - manual/html/accountreport.html
303
326
  - manual/html/length.html
327
+ - manual/html/tracereport.html
304
328
  - manual/html/purge.html
305
329
  - manual/html/mandatory.html
306
330
  - manual/html/precedes.html
@@ -408,6 +432,7 @@ files:
408
432
  - manual/html/scenarios.export.html
409
433
  - manual/html/priority.timesheet.html
410
434
  - manual/html/milestone.html
435
+ - manual/html/width.html
411
436
  - manual/html/TaskJuggler_2x_Migration.html
412
437
  - manual/html/extend.html
413
438
  - manual/html/note.task.html
@@ -485,6 +510,7 @@ files:
485
510
  - manual/html/caption.html
486
511
  - manual/html/projectids.html
487
512
  - manual/html/tagfile.html
513
+ - manual/html/height.html
488
514
  - manual/html/Installation.html
489
515
  - manual/html/include.project.html
490
516
  - manual/html/flags.task.html
@@ -590,6 +616,7 @@ files:
590
616
  - test/TestSuite/CSV-Reports/refs/sortBy_effort.up.csv
591
617
  - test/TestSuite/CSV-Reports/refs/sortBy_plan.start.down.csv
592
618
  - test/TestSuite/CSV-Reports/refs/targets.csv
619
+ - test/TestSuite/CSV-Reports/refs/taskcounter.csv
593
620
  - test/TestSuite/CSV-Reports/refs/taskreport.csv
594
621
  - test/TestSuite/CSV-Reports/refs/taskreport_with_resources.csv
595
622
  - test/TestSuite/CSV-Reports/refs/weekly.csv
@@ -717,6 +744,7 @@ files:
717
744
  - test/TestSuite/Scheduler/Correct/Duration.tjp
718
745
  - test/TestSuite/Scheduler/Correct/InheritStartEnd.tjp
719
746
  - test/TestSuite/Scheduler/Correct/InheritedAttributes.tjp
747
+ - test/TestSuite/Scheduler/Correct/Leaves.tjp
720
748
  - test/TestSuite/Scheduler/Correct/Limits.tjp
721
749
  - test/TestSuite/Scheduler/Correct/Manager.tjp
722
750
  - test/TestSuite/Scheduler/Correct/Mandatory.tjp
@@ -870,6 +898,7 @@ files:
870
898
  - test/TestSuite/Syntax/Correct/TimeFrame.tjp
871
899
  - test/TestSuite/Syntax/Correct/TimeSheet1.tjp
872
900
  - test/TestSuite/Syntax/Correct/Timezone.tjp
901
+ - test/TestSuite/Syntax/Correct/TraceReport.tjp
873
902
  - test/TestSuite/Syntax/Correct/Vacation.tjp
874
903
  - test/TestSuite/Syntax/Correct/include/dir1/file2.tji
875
904
  - test/TestSuite/Syntax/Correct/include/dir1/file5.tji
@@ -1007,14 +1036,17 @@ files:
1007
1036
  - test/test_UTF8String.rb
1008
1037
  - test/test_WorkingHours.rb
1009
1038
  - test/test_deep_copy.rb
1039
+ - spec/Color_spec.rb
1010
1040
  - spec/ICalendar_spec.rb
1011
1041
  - spec/IntervalList_spec.rb
1012
1042
  - spec/ProjectBroker_spec.rb
1013
1043
  - spec/StatusSheets_spec.rb
1044
+ - spec/TableColumnSorter_spec.rb
1014
1045
  - spec/TernarySearchTree_spec.rb
1015
1046
  - spec/TimeSheets_spec.rb
1016
1047
  - spec/Tj3Daemon_spec.rb
1017
1048
  - spec/Tj3_spec.rb
1049
+ - spec/TraceReport_spec.rb
1018
1050
  - spec/support/DaemonControl.rb
1019
1051
  - spec/support/spec_helper.rb
1020
1052
  - bin/tj3
@@ -1026,6 +1058,7 @@ files:
1026
1058
  - bin/tj3ts_receiver
1027
1059
  - bin/tj3ts_sender
1028
1060
  - bin/tj3ts_summary
1061
+ - bin/tj3webd
1029
1062
  homepage: http://www.taskjuggler.org
1030
1063
  licenses: []
1031
1064
  post_install_message:
@@ -1075,6 +1108,7 @@ test_files:
1075
1108
  - test/TestSuite/CSV-Reports/refs/sortBy_effort.up.csv
1076
1109
  - test/TestSuite/CSV-Reports/refs/sortBy_plan.start.down.csv
1077
1110
  - test/TestSuite/CSV-Reports/refs/targets.csv
1111
+ - test/TestSuite/CSV-Reports/refs/taskcounter.csv
1078
1112
  - test/TestSuite/CSV-Reports/refs/taskreport.csv
1079
1113
  - test/TestSuite/CSV-Reports/refs/taskreport_with_resources.csv
1080
1114
  - test/TestSuite/CSV-Reports/refs/weekly.csv
@@ -1202,6 +1236,7 @@ test_files:
1202
1236
  - test/TestSuite/Scheduler/Correct/Duration.tjp
1203
1237
  - test/TestSuite/Scheduler/Correct/InheritStartEnd.tjp
1204
1238
  - test/TestSuite/Scheduler/Correct/InheritedAttributes.tjp
1239
+ - test/TestSuite/Scheduler/Correct/Leaves.tjp
1205
1240
  - test/TestSuite/Scheduler/Correct/Limits.tjp
1206
1241
  - test/TestSuite/Scheduler/Correct/Manager.tjp
1207
1242
  - test/TestSuite/Scheduler/Correct/Mandatory.tjp
@@ -1355,6 +1390,7 @@ test_files:
1355
1390
  - test/TestSuite/Syntax/Correct/TimeFrame.tjp
1356
1391
  - test/TestSuite/Syntax/Correct/TimeSheet1.tjp
1357
1392
  - test/TestSuite/Syntax/Correct/Timezone.tjp
1393
+ - test/TestSuite/Syntax/Correct/TraceReport.tjp
1358
1394
  - test/TestSuite/Syntax/Correct/Vacation.tjp
1359
1395
  - test/TestSuite/Syntax/Correct/include/dir1/file2.tji
1360
1396
  - test/TestSuite/Syntax/Correct/include/dir1/file5.tji
@@ -1492,13 +1528,16 @@ test_files:
1492
1528
  - test/test_UTF8String.rb
1493
1529
  - test/test_WorkingHours.rb
1494
1530
  - test/test_deep_copy.rb
1531
+ - spec/Color_spec.rb
1495
1532
  - spec/ICalendar_spec.rb
1496
1533
  - spec/IntervalList_spec.rb
1497
1534
  - spec/ProjectBroker_spec.rb
1498
1535
  - spec/StatusSheets_spec.rb
1536
+ - spec/TableColumnSorter_spec.rb
1499
1537
  - spec/TernarySearchTree_spec.rb
1500
1538
  - spec/TimeSheets_spec.rb
1501
1539
  - spec/Tj3Daemon_spec.rb
1502
1540
  - spec/Tj3_spec.rb
1541
+ - spec/TraceReport_spec.rb
1503
1542
  - spec/support/DaemonControl.rb
1504
1543
  - spec/support/spec_helper.rb