taskjuggler 3.5.0 → 3.6.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 (547) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGELOG +31 -0
  3. data/COPYING +72 -13
  4. data/README.rdoc +8 -8
  5. data/bin/tj3 +1 -1
  6. data/bin/tj3client +1 -1
  7. data/bin/tj3d +1 -1
  8. data/bin/tj3man +1 -1
  9. data/bin/tj3ss_receiver +1 -1
  10. data/bin/tj3ss_sender +1 -1
  11. data/bin/tj3ts_receiver +1 -1
  12. data/bin/tj3ts_sender +1 -1
  13. data/bin/tj3ts_summary +1 -1
  14. data/bin/tj3webd +1 -1
  15. data/data/tjp.vim +13 -5
  16. data/examples/Fedora-20/f-20.tjp +15 -15
  17. data/examples/ProjectTemplate/template.tjp +2 -2
  18. data/lib/header.tmpl +2 -2
  19. data/lib/taskjuggler/Account.rb +2 -2
  20. data/lib/taskjuggler/AccountCredit.rb +2 -2
  21. data/lib/taskjuggler/AccountScenario.rb +2 -2
  22. data/lib/taskjuggler/AlertLevelDefinitions.rb +2 -2
  23. data/lib/taskjuggler/AlgorithmDiff.rb +4 -4
  24. data/lib/taskjuggler/Allocation.rb +2 -2
  25. data/lib/taskjuggler/AppConfig.rb +3 -3
  26. data/lib/taskjuggler/AttributeBase.rb +12 -4
  27. data/lib/taskjuggler/AttributeDefinition.rb +2 -2
  28. data/lib/taskjuggler/Attributes.rb +3 -3
  29. data/lib/taskjuggler/BatchProcessor.rb +2 -2
  30. data/lib/taskjuggler/Booking.rb +2 -2
  31. data/lib/taskjuggler/Charge.rb +2 -2
  32. data/lib/taskjuggler/ChargeSet.rb +2 -2
  33. data/lib/taskjuggler/DataCache.rb +2 -2
  34. data/lib/taskjuggler/FileList.rb +2 -2
  35. data/lib/taskjuggler/HTMLDocument.rb +2 -2
  36. data/lib/taskjuggler/HTMLElements.rb +3 -3
  37. data/lib/taskjuggler/ICalendar.rb +2 -2
  38. data/lib/taskjuggler/Interval.rb +2 -2
  39. data/lib/taskjuggler/IntervalList.rb +2 -2
  40. data/lib/taskjuggler/Journal.rb +2 -2
  41. data/lib/taskjuggler/KateSyntax.rb +2 -2
  42. data/lib/taskjuggler/KeywordArray.rb +2 -2
  43. data/lib/taskjuggler/KeywordDocumentation.rb +55 -33
  44. data/lib/taskjuggler/LeaveList.rb +4 -3
  45. data/lib/taskjuggler/Limits.rb +2 -2
  46. data/lib/taskjuggler/Log.rb +2 -2
  47. data/lib/taskjuggler/LogicalExpression.rb +2 -2
  48. data/lib/taskjuggler/LogicalFunction.rb +15 -3
  49. data/lib/taskjuggler/LogicalOperation.rb +15 -10
  50. data/lib/taskjuggler/MessageHandler.rb +2 -2
  51. data/lib/taskjuggler/PTNProxy.rb +2 -2
  52. data/lib/taskjuggler/Painter.rb +2 -2
  53. data/lib/taskjuggler/Project.rb +8 -2
  54. data/lib/taskjuggler/ProjectFileParser.rb +3 -3
  55. data/lib/taskjuggler/ProjectFileScanner.rb +2 -2
  56. data/lib/taskjuggler/PropertyList.rb +8 -15
  57. data/lib/taskjuggler/PropertySet.rb +6 -2
  58. data/lib/taskjuggler/PropertyTreeNode.rb +20 -2
  59. data/lib/taskjuggler/Query.rb +9 -4
  60. data/lib/taskjuggler/RealFormat.rb +2 -2
  61. data/lib/taskjuggler/Resource.rb +2 -2
  62. data/lib/taskjuggler/ResourceScenario.rb +45 -33
  63. data/lib/taskjuggler/RichText.rb +2 -2
  64. data/lib/taskjuggler/RichText/Document.rb +2 -2
  65. data/lib/taskjuggler/RichText/Element.rb +2 -2
  66. data/lib/taskjuggler/RichText/FunctionExample.rb +2 -2
  67. data/lib/taskjuggler/RichText/FunctionHandler.rb +2 -2
  68. data/lib/taskjuggler/RichText/Parser.rb +2 -2
  69. data/lib/taskjuggler/RichText/RTFHandlers.rb +2 -2
  70. data/lib/taskjuggler/RichText/RTFNavigator.rb +2 -2
  71. data/lib/taskjuggler/RichText/RTFQuery.rb +2 -2
  72. data/lib/taskjuggler/RichText/RTFReport.rb +2 -2
  73. data/lib/taskjuggler/RichText/RTFReportLink.rb +2 -2
  74. data/lib/taskjuggler/RichText/RTFWithQuerySupport.rb +2 -2
  75. data/lib/taskjuggler/RichText/Scanner.rb +2 -2
  76. data/lib/taskjuggler/RichText/Snip.rb +2 -2
  77. data/lib/taskjuggler/RichText/SyntaxRules.rb +2 -2
  78. data/lib/taskjuggler/RichText/TOCEntry.rb +2 -2
  79. data/lib/taskjuggler/RichText/TableOfContents.rb +2 -2
  80. data/lib/taskjuggler/RuntimeConfig.rb +4 -4
  81. data/lib/taskjuggler/Scenario.rb +2 -2
  82. data/lib/taskjuggler/ScenarioData.rb +2 -2
  83. data/lib/taskjuggler/Scoreboard.rb +2 -2
  84. data/lib/taskjuggler/SheetHandlerBase.rb +3 -3
  85. data/lib/taskjuggler/SheetReceiver.rb +2 -2
  86. data/lib/taskjuggler/SheetSender.rb +2 -2
  87. data/lib/taskjuggler/Shift.rb +2 -2
  88. data/lib/taskjuggler/ShiftAssignments.rb +2 -2
  89. data/lib/taskjuggler/ShiftScenario.rb +2 -2
  90. data/lib/taskjuggler/SimpleQueryExpander.rb +2 -2
  91. data/lib/taskjuggler/StatusSheetReceiver.rb +2 -2
  92. data/lib/taskjuggler/StatusSheetSender.rb +4 -4
  93. data/lib/taskjuggler/StdIoWrapper.rb +2 -2
  94. data/lib/taskjuggler/SyntaxReference.rb +3 -3
  95. data/lib/taskjuggler/TableColumnDefinition.rb +2 -2
  96. data/lib/taskjuggler/TableColumnSorter.rb +2 -2
  97. data/lib/taskjuggler/Task.rb +2 -2
  98. data/lib/taskjuggler/TaskDependency.rb +2 -2
  99. data/lib/taskjuggler/TaskJuggler.rb +3 -4
  100. data/lib/taskjuggler/TaskScenario.rb +138 -60
  101. data/lib/taskjuggler/TernarySearchTree.rb +2 -2
  102. data/lib/taskjuggler/TextFormatter.rb +2 -2
  103. data/lib/taskjuggler/TextParser.rb +2 -2
  104. data/lib/taskjuggler/TextParser/MacroTable.rb +2 -2
  105. data/lib/taskjuggler/TextParser/Pattern.rb +2 -2
  106. data/lib/taskjuggler/TextParser/Rule.rb +2 -2
  107. data/lib/taskjuggler/TextParser/Scanner.rb +3 -3
  108. data/lib/taskjuggler/TextParser/SourceFileInfo.rb +2 -2
  109. data/lib/taskjuggler/TextParser/StackElement.rb +2 -2
  110. data/lib/taskjuggler/TextParser/State.rb +2 -2
  111. data/lib/taskjuggler/TextParser/TokenDoc.rb +2 -2
  112. data/lib/taskjuggler/TimeSheetReceiver.rb +2 -2
  113. data/lib/taskjuggler/TimeSheetSender.rb +2 -2
  114. data/lib/taskjuggler/TimeSheetSummary.rb +3 -3
  115. data/lib/taskjuggler/TimeSheets.rb +2 -2
  116. data/lib/taskjuggler/Tj3AppBase.rb +2 -2
  117. data/lib/taskjuggler/Tj3Config.rb +5 -5
  118. data/lib/taskjuggler/Tj3SheetAppBase.rb +2 -2
  119. data/lib/taskjuggler/TjException.rb +2 -2
  120. data/lib/taskjuggler/TjTime.rb +2 -2
  121. data/lib/taskjuggler/TjpExample.rb +2 -2
  122. data/lib/taskjuggler/TjpSyntaxRules.rb +206 -52
  123. data/lib/taskjuggler/URLParameter.rb +2 -2
  124. data/lib/taskjuggler/UTF8String.rb +2 -2
  125. data/lib/taskjuggler/UserManual.rb +3 -2
  126. data/lib/taskjuggler/VimSyntax.rb +4 -4
  127. data/lib/taskjuggler/WorkingHours.rb +2 -2
  128. data/lib/taskjuggler/XMLDocument.rb +2 -2
  129. data/lib/taskjuggler/XMLElement.rb +2 -2
  130. data/lib/taskjuggler/apps/Tj3.rb +2 -2
  131. data/lib/taskjuggler/apps/Tj3Client.rb +2 -2
  132. data/lib/taskjuggler/apps/Tj3Daemon.rb +7 -3
  133. data/lib/taskjuggler/apps/Tj3Man.rb +3 -3
  134. data/lib/taskjuggler/apps/Tj3SsReceiver.rb +2 -2
  135. data/lib/taskjuggler/apps/Tj3SsSender.rb +2 -2
  136. data/lib/taskjuggler/apps/Tj3TsReceiver.rb +2 -2
  137. data/lib/taskjuggler/apps/Tj3TsSender.rb +2 -2
  138. data/lib/taskjuggler/apps/Tj3TsSummary.rb +2 -2
  139. data/lib/taskjuggler/apps/Tj3WebD.rb +7 -3
  140. data/lib/taskjuggler/daemon/Daemon.rb +2 -2
  141. data/lib/taskjuggler/daemon/DaemonConnector.rb +2 -2
  142. data/lib/taskjuggler/daemon/ProcessIntercom.rb +4 -3
  143. data/lib/taskjuggler/daemon/ProjectBroker.rb +2 -2
  144. data/lib/taskjuggler/daemon/ProjectServer.rb +2 -2
  145. data/lib/taskjuggler/daemon/ReportServer.rb +2 -2
  146. data/lib/taskjuggler/daemon/ReportServlet.rb +22 -11
  147. data/lib/taskjuggler/daemon/WebServer.rb +2 -2
  148. data/lib/taskjuggler/daemon/WelcomePage.rb +2 -2
  149. data/lib/taskjuggler/deep_copy.rb +2 -2
  150. data/lib/taskjuggler/reports/AccountListRE.rb +2 -2
  151. data/lib/taskjuggler/reports/CSVFile.rb +2 -2
  152. data/lib/taskjuggler/reports/ChartPlotter.rb +2 -2
  153. data/lib/taskjuggler/reports/CollisionDetector.rb +2 -2
  154. data/lib/taskjuggler/reports/ColumnTable.rb +2 -2
  155. data/lib/taskjuggler/reports/ExportRE.rb +2 -2
  156. data/lib/taskjuggler/reports/GanttChart.rb +2 -2
  157. data/lib/taskjuggler/reports/GanttContainer.rb +2 -2
  158. data/lib/taskjuggler/reports/GanttHeader.rb +2 -2
  159. data/lib/taskjuggler/reports/GanttHeaderScaleItem.rb +2 -2
  160. data/lib/taskjuggler/reports/GanttLine.rb +8 -5
  161. data/lib/taskjuggler/reports/GanttLoadStack.rb +2 -2
  162. data/lib/taskjuggler/reports/GanttMilestone.rb +2 -2
  163. data/lib/taskjuggler/reports/GanttRouter.rb +2 -2
  164. data/lib/taskjuggler/reports/GanttTaskBar.rb +2 -2
  165. data/lib/taskjuggler/reports/HTMLGraphics.rb +2 -2
  166. data/lib/taskjuggler/reports/ICalReport.rb +2 -2
  167. data/lib/taskjuggler/reports/MspXmlRE.rb +6 -3
  168. data/lib/taskjuggler/reports/Navigator.rb +2 -2
  169. data/lib/taskjuggler/reports/NikuReport.rb +2 -2
  170. data/lib/taskjuggler/reports/Report.rb +6 -6
  171. data/lib/taskjuggler/reports/ReportBase.rb +2 -2
  172. data/lib/taskjuggler/reports/ReportContext.rb +2 -2
  173. data/lib/taskjuggler/reports/ReportTable.rb +2 -2
  174. data/lib/taskjuggler/reports/ReportTableCell.rb +2 -2
  175. data/lib/taskjuggler/reports/ReportTableColumn.rb +2 -2
  176. data/lib/taskjuggler/reports/ReportTableLegend.rb +2 -2
  177. data/lib/taskjuggler/reports/ReportTableLine.rb +2 -2
  178. data/lib/taskjuggler/reports/ResourceListRE.rb +2 -2
  179. data/lib/taskjuggler/reports/StatusSheetReport.rb +2 -2
  180. data/lib/taskjuggler/reports/TableReport.rb +22 -19
  181. data/lib/taskjuggler/reports/TableReportColumn.rb +2 -2
  182. data/lib/taskjuggler/reports/TagFile.rb +2 -2
  183. data/lib/taskjuggler/reports/TaskListRE.rb +2 -2
  184. data/lib/taskjuggler/reports/TextReport.rb +2 -2
  185. data/lib/taskjuggler/reports/TimeSheetReport.rb +2 -2
  186. data/lib/taskjuggler/reports/TjpExportRE.rb +2 -2
  187. data/lib/taskjuggler/reports/TraceReport.rb +3 -3
  188. data/lib/tj3.rb +2 -2
  189. data/lib/tj3client.rb +2 -2
  190. data/lib/tj3d.rb +2 -2
  191. data/lib/tj3man.rb +2 -2
  192. data/lib/tj3ss_receiver.rb +2 -2
  193. data/lib/tj3ss_sender.rb +2 -2
  194. data/lib/tj3ts_receiver.rb +2 -2
  195. data/lib/tj3ts_sender.rb +2 -2
  196. data/lib/tj3ts_summary.rb +2 -2
  197. data/lib/tj3webd.rb +2 -2
  198. data/manual/Day_To_Day_Juggling +7 -7
  199. data/manual/Getting_Started +2 -2
  200. data/manual/Installation +4 -4
  201. data/manual/Intro +1 -1
  202. data/manual/List_Attributes +45 -0
  203. data/manual/Rich_Text_Attributes +5 -5
  204. data/manual/Software +1 -1
  205. data/manual/TaskJuggler_2x_Migration +2 -2
  206. data/manual/html/Day_To_Day_Juggling.html +9 -9
  207. data/manual/html/Getting_Started.html +3 -3
  208. data/manual/html/How_To_Contribute.html +2 -2
  209. data/manual/html/Installation.html +6 -6
  210. data/manual/html/Intro.html +3 -3
  211. data/manual/html/List_Attributes.html +76 -0
  212. data/manual/html/Reporting_Bugs.html +2 -2
  213. data/manual/html/Rich_Text_Attributes.html +9 -9
  214. data/manual/html/Software.html +5 -5
  215. data/manual/html/TaskJuggler_2x_Migration.html +4 -4
  216. data/manual/html/TaskJuggler_Internals.html +2 -2
  217. data/manual/html/The_TaskJuggler_Syntax.html +2 -2
  218. data/manual/html/Tutorial.html +2 -2
  219. data/manual/html/account.html +5 -3
  220. data/manual/html/account.task.html +5 -3
  221. data/manual/html/accountprefix.html +5 -3
  222. data/manual/html/accountreport.html +5 -3
  223. data/manual/html/accountroot.html +5 -3
  224. data/manual/html/active.html +5 -3
  225. data/manual/html/adopt.task.html +5 -3
  226. data/manual/html/aggregate.html +5 -3
  227. data/manual/html/alert.html +5 -3
  228. data/manual/html/alertlevels.html +5 -3
  229. data/manual/html/allocate.html +6 -3
  230. data/manual/html/alphabet.html +1 -1
  231. data/manual/html/alternative.html +5 -3
  232. data/manual/html/author.html +5 -3
  233. data/manual/html/auxdir.html +5 -3
  234. data/manual/html/auxdir.report.html +5 -3
  235. data/manual/html/balance.html +5 -3
  236. data/manual/html/booking.resource.html +6 -4
  237. data/manual/html/booking.task.html +7 -4
  238. data/manual/html/caption.html +5 -3
  239. data/manual/html/cellcolor.column.html +5 -3
  240. data/manual/html/celltext.column.html +5 -3
  241. data/manual/html/center.html +5 -3
  242. data/manual/html/charge.html +6 -3
  243. data/manual/html/chargeset.html +6 -3
  244. data/manual/html/columnid.html +24 -15
  245. data/manual/html/columns.html +6 -3
  246. data/manual/html/complete.html +5 -3
  247. data/manual/html/copyright.html +5 -3
  248. data/manual/html/credits.html +6 -3
  249. data/manual/html/currency.html +5 -3
  250. data/manual/html/currencyformat.html +5 -3
  251. data/manual/html/dailymax.html +5 -3
  252. data/manual/html/dailymin.html +5 -3
  253. data/manual/html/dailyworkinghours.html +5 -3
  254. data/manual/html/date.extend.html +5 -3
  255. data/manual/html/date.html +5 -3
  256. data/manual/html/definitions.html +5 -3
  257. data/manual/html/depends.html +6 -3
  258. data/manual/html/details.html +5 -3
  259. data/manual/html/disabled.html +5 -3
  260. data/manual/html/duration.html +5 -3
  261. data/manual/html/efficiency.html +5 -3
  262. data/manual/html/effort.html +7 -5
  263. data/manual/html/effortdone.html +105 -0
  264. data/manual/html/effortleft.html +105 -0
  265. data/manual/html/email.html +7 -5
  266. data/manual/html/enabled.html +5 -3
  267. data/manual/html/end.column.html +5 -3
  268. data/manual/html/end.html +5 -3
  269. data/manual/html/end.limit.html +5 -3
  270. data/manual/html/end.report.html +5 -3
  271. data/manual/html/end.timesheet.html +5 -3
  272. data/manual/html/endcredit.html +5 -3
  273. data/manual/html/epilog.html +5 -3
  274. data/manual/html/export.html +5 -3
  275. data/manual/html/extend.html +5 -3
  276. data/manual/html/fail.html +6 -3
  277. data/manual/html/fdl.html +2 -2
  278. data/manual/html/flags.account.html +6 -3
  279. data/manual/html/flags.html +5 -3
  280. data/manual/html/flags.journalentry.html +5 -3
  281. data/manual/html/flags.report.html +6 -3
  282. data/manual/html/flags.resource.html +6 -3
  283. data/manual/html/flags.statussheet.html +5 -3
  284. data/manual/html/flags.task.html +6 -3
  285. data/manual/html/flags.timesheet.html +5 -3
  286. data/manual/html/fontcolor.column.html +5 -3
  287. data/manual/html/footer.html +5 -3
  288. data/manual/html/formats.export.html +6 -4
  289. data/manual/html/formats.html +6 -3
  290. data/manual/html/functions.html +5 -3
  291. data/manual/html/gapduration.html +6 -4
  292. data/manual/html/gaplength.html +6 -4
  293. data/manual/html/halign.center.html +5 -3
  294. data/manual/html/halign.column.html +5 -3
  295. data/manual/html/halign.left.html +5 -3
  296. data/manual/html/halign.right.html +5 -3
  297. data/manual/html/hasalert.html +5 -3
  298. data/manual/html/header.html +5 -3
  299. data/manual/html/headline.html +5 -3
  300. data/manual/html/height.html +5 -3
  301. data/manual/html/hideaccount.html +5 -3
  302. data/manual/html/hidejournalentry.html +5 -3
  303. data/manual/html/hidereport.html +5 -3
  304. data/manual/html/hideresource.html +5 -3
  305. data/manual/html/hidetask.html +5 -3
  306. data/manual/html/icalreport.html +5 -3
  307. data/manual/html/include.macro.html +5 -3
  308. data/manual/html/include.project.html +5 -3
  309. data/manual/html/include.properties.html +5 -3
  310. data/manual/html/index.html +1 -1
  311. data/manual/html/inherit.extend.html +5 -3
  312. data/manual/html/interval1.html +5 -3
  313. data/manual/html/interval2.html +5 -3
  314. data/manual/html/interval3.html +5 -3
  315. data/manual/html/interval4.html +5 -3
  316. data/manual/html/isactive.html +5 -3
  317. data/manual/html/ischildof.html +5 -3
  318. data/manual/html/isdependencyof.html +5 -3
  319. data/manual/html/isdutyof.html +5 -3
  320. data/manual/html/isfeatureof.html +5 -3
  321. data/manual/html/isleaf.html +5 -3
  322. data/manual/html/ismilestone.html +5 -3
  323. data/manual/html/isongoing.html +5 -3
  324. data/manual/html/isresource.html +5 -3
  325. data/manual/html/isresponsibilityof.html +5 -3
  326. data/manual/html/istask.html +5 -3
  327. data/manual/html/isvalid.html +5 -3
  328. data/manual/html/journalattributes.html +5 -3
  329. data/manual/html/journalentry.html +5 -3
  330. data/manual/html/journalmode.html +5 -3
  331. data/manual/html/leaveallowance.html +5 -3
  332. data/manual/html/leaves.html +13 -6
  333. data/manual/html/left.html +5 -3
  334. data/manual/html/length.html +5 -3
  335. data/manual/html/limits.allocate.html +5 -3
  336. data/manual/html/limits.html +5 -3
  337. data/manual/html/limits.resource.html +5 -3
  338. data/manual/html/limits.task.html +5 -3
  339. data/manual/html/listitem.column.html +5 -3
  340. data/manual/html/listtype.column.html +5 -3
  341. data/manual/html/loadunit.html +5 -3
  342. data/manual/html/logicalexpression.html +6 -4
  343. data/manual/html/logicalflagexpression.html +5 -3
  344. data/manual/html/macro.html +5 -3
  345. data/manual/html/managers.html +6 -3
  346. data/manual/html/mandatory.html +5 -3
  347. data/manual/html/maxend.html +5 -3
  348. data/manual/html/maximum.html +5 -3
  349. data/manual/html/maxstart.html +5 -3
  350. data/manual/html/milestone.html +5 -3
  351. data/manual/html/minend.html +5 -3
  352. data/manual/html/minimum.html +5 -3
  353. data/manual/html/minstart.html +5 -3
  354. data/manual/html/monthlymax.html +5 -3
  355. data/manual/html/monthlymin.html +5 -3
  356. data/manual/html/navbar.html +7 -1
  357. data/manual/html/navigator.html +5 -3
  358. data/manual/html/newtask.html +5 -3
  359. data/manual/html/nikureport.html +5 -3
  360. data/manual/html/note.task.html +5 -3
  361. data/manual/html/now.html +5 -3
  362. data/manual/html/number.extend.html +5 -3
  363. data/manual/html/numberformat.html +5 -3
  364. data/manual/html/onend.html +5 -3
  365. data/manual/html/onstart.html +5 -3
  366. data/manual/html/opennodes.html +5 -3
  367. data/manual/html/outputdir.html +5 -3
  368. data/manual/html/overtime.booking.html +5 -3
  369. data/manual/html/period.column.html +5 -3
  370. data/manual/html/period.limit.html +5 -3
  371. data/manual/html/period.report.html +5 -3
  372. data/manual/html/period.task.html +5 -3
  373. data/manual/html/persistent.html +5 -3
  374. data/manual/html/precedes.html +6 -3
  375. data/manual/html/priority.html +5 -3
  376. data/manual/html/priority.timesheet.html +5 -3
  377. data/manual/html/project.html +5 -3
  378. data/manual/html/projectid.html +5 -3
  379. data/manual/html/projectid.task.html +5 -3
  380. data/manual/html/projectids.html +5 -3
  381. data/manual/html/projection.html +5 -3
  382. data/manual/html/prolog.html +5 -3
  383. data/manual/html/properties.html +5 -3
  384. data/manual/html/purge.html +5 -3
  385. data/manual/html/rate.html +5 -3
  386. data/manual/html/rate.resource.html +5 -3
  387. data/manual/html/rawhtmlhead.html +5 -3
  388. data/manual/html/reference.extend.html +5 -3
  389. data/manual/html/remaining.html +5 -3
  390. data/manual/html/replace.html +5 -3
  391. data/manual/html/reportprefix.html +5 -3
  392. data/manual/html/resource.html +5 -3
  393. data/manual/html/resourceattributes.html +5 -3
  394. data/manual/html/resourceprefix.html +5 -3
  395. data/manual/html/resourcereport.html +5 -3
  396. data/manual/html/resourceroot.html +5 -3
  397. data/manual/html/resources.limit.html +5 -3
  398. data/manual/html/responsible.html +6 -3
  399. data/manual/html/richtext.extend.html +5 -3
  400. data/manual/html/right.html +5 -3
  401. data/manual/html/rollupaccount.html +5 -3
  402. data/manual/html/rollupresource.html +5 -3
  403. data/manual/html/rolluptask.html +5 -3
  404. data/manual/html/scale.column.html +5 -3
  405. data/manual/html/scenario.html +5 -3
  406. data/manual/html/scenario.ical.html +5 -3
  407. data/manual/html/scenarios.export.html +5 -3
  408. data/manual/html/scenarios.html +6 -3
  409. data/manual/html/scenariospecific.extend.html +5 -3
  410. data/manual/html/scheduled.html +6 -4
  411. data/manual/html/scheduling.html +7 -5
  412. data/manual/html/schedulingmode.html +74 -0
  413. data/manual/html/select.html +7 -5
  414. data/manual/html/selfcontained.html +5 -3
  415. data/manual/html/shift.allocate.html +5 -3
  416. data/manual/html/shift.html +5 -3
  417. data/manual/html/shift.resource.html +5 -3
  418. data/manual/html/shift.task.html +5 -3
  419. data/manual/html/shift.timesheet.html +5 -3
  420. data/manual/html/shifts.allocate.html +5 -3
  421. data/manual/html/shifts.resource.html +5 -3
  422. data/manual/html/shifts.task.html +6 -4
  423. data/manual/html/shorttimeformat.html +5 -3
  424. data/manual/html/sloppy.booking.html +5 -3
  425. data/manual/html/sloppy.projection.html +5 -3
  426. data/manual/html/sortaccounts.html +6 -4
  427. data/manual/html/sortjournalentries.html +5 -3
  428. data/manual/html/sortresources.html +6 -4
  429. data/manual/html/sorttasks.html +6 -4
  430. data/manual/html/start.column.html +5 -3
  431. data/manual/html/start.html +5 -3
  432. data/manual/html/start.limit.html +5 -3
  433. data/manual/html/start.report.html +5 -3
  434. data/manual/html/startcredit.html +5 -3
  435. data/manual/html/status.statussheet.html +5 -3
  436. data/manual/html/status.timesheet.html +5 -3
  437. data/manual/html/statussheet.html +5 -3
  438. data/manual/html/statussheetreport.html +5 -3
  439. data/manual/html/strict.projection.html +5 -3
  440. data/manual/html/summary.html +5 -3
  441. data/manual/html/supplement.html +5 -3
  442. data/manual/html/supplement.resource.html +5 -3
  443. data/manual/html/supplement.task.html +24 -4
  444. data/manual/html/tagfile.html +5 -3
  445. data/manual/html/task.html +24 -4
  446. data/manual/html/task.statussheet.html +5 -3
  447. data/manual/html/task.timesheet.html +5 -3
  448. data/manual/html/taskattributes.html +5 -3
  449. data/manual/html/taskprefix.html +5 -3
  450. data/manual/html/taskreport.html +5 -3
  451. data/manual/html/taskroot.export.html +5 -3
  452. data/manual/html/taskroot.html +5 -3
  453. data/manual/html/text.extend.html +5 -3
  454. data/manual/html/textreport.html +5 -3
  455. data/manual/html/timeformat.html +5 -3
  456. data/manual/html/timeformat1.html +5 -3
  457. data/manual/html/timeformat2.html +5 -3
  458. data/manual/html/timeoff.nikureport.html +5 -3
  459. data/manual/html/timesheet.html +5 -3
  460. data/manual/html/timesheetreport.html +5 -3
  461. data/manual/html/timezone.export.html +5 -3
  462. data/manual/html/timezone.html +5 -3
  463. data/manual/html/timezone.report.html +5 -3
  464. data/manual/html/timezone.shift.html +5 -3
  465. data/manual/html/timingresolution.html +5 -3
  466. data/manual/html/title.column.html +5 -3
  467. data/manual/html/title.html +5 -3
  468. data/manual/html/toc.html +251 -223
  469. data/manual/html/tooltip.column.html +5 -3
  470. data/manual/html/tracereport.html +6 -3
  471. data/manual/html/trackingscenario.html +5 -3
  472. data/manual/html/treelevel.html +5 -3
  473. data/manual/html/vacation.html +5 -3
  474. data/manual/html/vacation.resource.html +5 -3
  475. data/manual/html/vacation.shift.html +5 -3
  476. data/manual/html/warn.html +6 -3
  477. data/manual/html/weeklymax.html +5 -3
  478. data/manual/html/weeklymin.html +5 -3
  479. data/manual/html/weekstartsmonday.html +5 -3
  480. data/manual/html/weekstartssunday.html +5 -3
  481. data/manual/html/width.column.html +5 -3
  482. data/manual/html/width.html +5 -3
  483. data/manual/html/work.html +5 -3
  484. data/manual/html/workinghours.project.html +5 -3
  485. data/manual/html/workinghours.resource.html +5 -3
  486. data/manual/html/workinghours.shift.html +5 -3
  487. data/manual/html/yearlyworkingdays.html +5 -3
  488. data/spec/Color_spec.rb +6 -2
  489. data/spec/ICalendar_spec.rb +6 -2
  490. data/spec/IntervalList_spec.rb +7 -3
  491. data/spec/ProjectBroker_spec.rb +6 -2
  492. data/spec/StatusSheets_spec.rb +6 -2
  493. data/spec/TableColumnSorter_spec.rb +6 -2
  494. data/spec/TernarySearchTree_spec.rb +8 -4
  495. data/spec/TimeSheets_spec.rb +6 -2
  496. data/spec/Tj3Daemon_spec.rb +6 -2
  497. data/spec/Tj3_spec.rb +6 -2
  498. data/spec/TraceReport_spec.rb +2 -2
  499. data/spec/support/DaemonControl.rb +2 -2
  500. data/spec/support/spec_helper.rb +2 -2
  501. data/taskjuggler.gemspec +1 -1
  502. data/test/MessageChecker.rb +2 -2
  503. data/test/ReferenceGenerator.rb +2 -2
  504. data/test/TestSuite/CSV-Reports/headcount.tjp +1 -0
  505. data/test/TestSuite/ReportGenerator/Correct/JournalMode.tjp +1 -1
  506. data/test/TestSuite/ReportGenerator/Correct/refs/JournalMode-1.csv +9 -9
  507. data/test/TestSuite/ReportGenerator/Correct/refs/JournalMode-2.csv +46 -48
  508. data/test/TestSuite/Scheduler/Correct/Depends.tjp +17 -0
  509. data/test/TestSuite/Scheduler/Correct/Precedes.tjp +17 -0
  510. data/test/TestSuite/Scheduler/Correct/Scheduled.tjp +11 -0
  511. data/test/TestSuite/Scheduler/Correct/SchedulingMode.tjp +45 -0
  512. data/test/TestSuite/{Syntax → Scheduler}/Errors/not_scheduled.tjp +1 -1
  513. data/test/TestSuite/Syntax/Correct/Booking.tjp +1 -1
  514. data/test/TestSuite/Syntax/Correct/ListAttributes.tjp +48 -0
  515. data/test/TestSuite/Syntax/Correct/LogicalExpression.tjp +1 -1
  516. data/test/TestSuite/Syntax/Errors/working_duration_too_small.tjp +6 -0
  517. data/test/TjpGen.rb +2 -2
  518. data/test/all.rb +2 -2
  519. data/test/test_AlgorithmDiff.rb +2 -2
  520. data/test/test_BatchProcessor.rb +2 -2
  521. data/test/test_CSV-Reports.rb +2 -2
  522. data/test/test_CSVFile.rb +2 -2
  523. data/test/test_CollisionDetector.rb +2 -2
  524. data/test/test_Export-Reports.rb +2 -2
  525. data/test/test_Journal.rb +2 -2
  526. data/test/test_Limits.rb +2 -2
  527. data/test/test_LogicalExpression.rb +2 -2
  528. data/test/test_MacroTable.rb +2 -2
  529. data/test/test_Project.rb +2 -2
  530. data/test/test_ProjectFileScanner.rb +2 -2
  531. data/test/test_PropertySet.rb +2 -2
  532. data/test/test_Query.rb +2 -2
  533. data/test/test_RealFormat.rb +2 -2
  534. data/test/test_ReportGenerator.rb +2 -2
  535. data/test/test_RichText.rb +2 -2
  536. data/test/test_Scheduler.rb +2 -2
  537. data/test/test_ShiftAssignments.rb +2 -2
  538. data/test/test_SimpleQueryExpander.rb +2 -2
  539. data/test/test_Syntax.rb +2 -2
  540. data/test/test_TextFormatter.rb +2 -2
  541. data/test/test_TjTime.rb +2 -2
  542. data/test/test_TjpExample.rb +2 -2
  543. data/test/test_URLParameter.rb +2 -2
  544. data/test/test_UTF8String.rb +2 -2
  545. data/test/test_WorkingHours.rb +2 -2
  546. data/test/test_deep_copy.rb +2 -2
  547. metadata +346 -350
@@ -3,8 +3,8 @@
3
3
  #
4
4
  # = CSVFile.rb -- The TaskJuggler III Project Management Software
5
5
  #
6
- # Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013
7
- # by Chris Schlaeger <chris@linux.com>
6
+ # Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014
7
+ # by Chris Schlaeger <cs@taskjuggler.org>
8
8
  #
9
9
  # This program is free software; you can redistribute it and/or modify
10
10
  # it under the terms of version 2 of the GNU General Public License as
@@ -3,8 +3,8 @@
3
3
  #
4
4
  # = ChartPlotter.rb -- The TaskJuggler III Project Management Software
5
5
  #
6
- # Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013
7
- # by Chris Schlaeger <chris@linux.com>
6
+ # Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014
7
+ # by Chris Schlaeger <cs@taskjuggler.org>
8
8
  #
9
9
  # This program is free software; you can redistribute it and/or modify
10
10
  # it under the terms of version 2 of the GNU General Public License as
@@ -3,8 +3,8 @@
3
3
  #
4
4
  # = CollisionDetector.rb -- The TaskJuggler III Project Management Software
5
5
  #
6
- # Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013
7
- # by Chris Schlaeger <chris@linux.com>
6
+ # Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014
7
+ # by Chris Schlaeger <cs@taskjuggler.org>
8
8
  #
9
9
  # This program is free software; you can redistribute it and/or modify
10
10
  # it under the terms of version 2 of the GNU General Public License as
@@ -3,8 +3,8 @@
3
3
  #
4
4
  # = ColumnTable.rb -- The TaskJuggler III Project Management Software
5
5
  #
6
- # Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013
7
- # by Chris Schlaeger <chris@linux.com>
6
+ # Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014
7
+ # by Chris Schlaeger <cs@taskjuggler.org>
8
8
  #
9
9
  # This program is free software; you can redistribute it and/or modify
10
10
  # it under the terms of version 2 of the GNU General Public License as
@@ -3,8 +3,8 @@
3
3
  #
4
4
  # = ExportRE.rb -- The TaskJuggler III Project Management Software
5
5
  #
6
- # Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013
7
- # by Chris Schlaeger <chris@linux.com>
6
+ # Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014
7
+ # by Chris Schlaeger <cs@taskjuggler.org>
8
8
  #
9
9
  # This program is free software; you can redistribute it and/or modify
10
10
  # it under the terms of version 2 of the GNU General Public License as
@@ -3,8 +3,8 @@
3
3
  #
4
4
  # = GanttChart.rb -- The TaskJuggler III Project Management Software
5
5
  #
6
- # Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013
7
- # by Chris Schlaeger <chris@linux.com>
6
+ # Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014
7
+ # by Chris Schlaeger <cs@taskjuggler.org>
8
8
  #
9
9
  # This program is free software; you can redistribute it and/or modify
10
10
  # it under the terms of version 2 of the GNU General Public License as
@@ -3,8 +3,8 @@
3
3
  #
4
4
  # = GanttContainer.rb -- The TaskJuggler III Project Management Software
5
5
  #
6
- # Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013
7
- # by Chris Schlaeger <chris@linux.com>
6
+ # Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014
7
+ # by Chris Schlaeger <cs@taskjuggler.org>
8
8
  #
9
9
  # This program is free software; you can redistribute it and/or modify
10
10
  # it under the terms of version 2 of the GNU General Public License as
@@ -3,8 +3,8 @@
3
3
  #
4
4
  # = GanttHeader.rb -- The TaskJuggler III Project Management Software
5
5
  #
6
- # Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013
7
- # by Chris Schlaeger <chris@linux.com>
6
+ # Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014
7
+ # by Chris Schlaeger <cs@taskjuggler.org>
8
8
  #
9
9
  # This program is free software; you can redistribute it and/or modify
10
10
  # it under the terms of version 2 of the GNU General Public License as
@@ -3,8 +3,8 @@
3
3
  #
4
4
  # = GanttHeaderScaleItem.rb -- The TaskJuggler III Project Management Software
5
5
  #
6
- # Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013
7
- # by Chris Schlaeger <chris@linux.com>
6
+ # Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014
7
+ # by Chris Schlaeger <cs@taskjuggler.org>
8
8
  #
9
9
  # This program is free software; you can redistribute it and/or modify
10
10
  # it under the terms of version 2 of the GNU General Public License as
@@ -3,8 +3,8 @@
3
3
  #
4
4
  # = GanttLine.rb -- The TaskJuggler III Project Management Software
5
5
  #
6
- # Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013
7
- # by Chris Schlaeger <chris@linux.com>
6
+ # Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014
7
+ # by Chris Schlaeger <cs@taskjuggler.org>
8
8
  #
9
9
  # This program is free software; you can redistribute it and/or modify
10
10
  # it under the terms of version 2 of the GNU General Public License as
@@ -32,7 +32,7 @@ class TaskJuggler
32
32
  attr_reader :y, :height, :query
33
33
 
34
34
  # Create a GanttLine object and generate the abstract representation.
35
- def initialize(chart, query, y, height, tooltip)
35
+ def initialize(chart, query, y, height, lineIndex, tooltip)
36
36
  # A reference to the chart that the line belongs to.
37
37
  @chart = chart
38
38
  # Register the line with the chart.
@@ -49,6 +49,9 @@ class TaskJuggler
49
49
  @y = y + chart.header.height + 1
50
50
  # The height of the line in screen pixels.
51
51
  @height = height
52
+ # The index of the line in the chart. It starts with 0 and is
53
+ # incremented for each line by one.
54
+ @lineIndex = lineIndex
52
55
  # The x coordinates of the time-off zones. It's an Array of [ startX, endX
53
56
  # ] touples.
54
57
  @timeOffZones = []
@@ -133,7 +136,7 @@ class TaskJuggler
133
136
  # appear in the scope of a resource.
134
137
  def generateTask
135
138
  # Set the background color
136
- @category = "taskcell#{(@query.property.get('index') + 1) % 2 + 1}"
139
+ @category = "taskcell#{(@lineIndex + 1) % 2 + 1}"
137
140
 
138
141
  project = @query.project
139
142
  property = @query.property
@@ -228,7 +231,7 @@ class TaskJuggler
228
231
  # line or appear in the scope of a task.
229
232
  def generateResource
230
233
  # Set the alternating background color
231
- @category = "resourcecell#{(@query.property.get('index') + 1) % 2 + 1}"
234
+ @category = "resourcecell#{(@lineIndex + 1) % 2 + 1}"
232
235
 
233
236
  # The cellStartDate Array contains the end of the final cell as last
234
237
  # element. We need to use a shift mechanism to start and end
@@ -3,8 +3,8 @@
3
3
  #
4
4
  # = GanttLoadStack.rb -- The TaskJuggler III Project Management Software
5
5
  #
6
- # Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013
7
- # by Chris Schlaeger <chris@linux.com>
6
+ # Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014
7
+ # by Chris Schlaeger <cs@taskjuggler.org>
8
8
  #
9
9
  # This program is free software; you can redistribute it and/or modify
10
10
  # it under the terms of version 2 of the GNU General Public License as
@@ -3,8 +3,8 @@
3
3
  #
4
4
  # = GanttMilestone.rb -- The TaskJuggler III Project Management Software
5
5
  #
6
- # Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013
7
- # by Chris Schlaeger <chris@linux.com>
6
+ # Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014
7
+ # by Chris Schlaeger <cs@taskjuggler.org>
8
8
  #
9
9
  # This program is free software; you can redistribute it and/or modify
10
10
  # it under the terms of version 2 of the GNU General Public License as
@@ -3,8 +3,8 @@
3
3
  #
4
4
  # = GanttRouter.rb -- The TaskJuggler III Project Management Software
5
5
  #
6
- # Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013
7
- # by Chris Schlaeger <chris@linux.com>
6
+ # Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014
7
+ # by Chris Schlaeger <cs@taskjuggler.org>
8
8
  #
9
9
  # This program is free software; you can redistribute it and/or modify
10
10
  # it under the terms of version 2 of the GNU General Public License as
@@ -3,8 +3,8 @@
3
3
  #
4
4
  # = GanttTaskBar.rb -- The TaskJuggler III Project Management Software
5
5
  #
6
- # Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013
7
- # by Chris Schlaeger <chris@linux.com>
6
+ # Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014
7
+ # by Chris Schlaeger <cs@taskjuggler.org>
8
8
  #
9
9
  # This program is free software; you can redistribute it and/or modify
10
10
  # it under the terms of version 2 of the GNU General Public License as
@@ -3,8 +3,8 @@
3
3
  #
4
4
  # = HTMLGraphics.rb -- The TaskJuggler III Project Management Software
5
5
  #
6
- # Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013
7
- # by Chris Schlaeger <chris@linux.com>
6
+ # Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014
7
+ # by Chris Schlaeger <cs@taskjuggler.org>
8
8
  #
9
9
  # This program is free software; you can redistribute it and/or modify
10
10
  # it under the terms of version 2 of the GNU General Public License as
@@ -3,8 +3,8 @@
3
3
  #
4
4
  # = ICalReport.rb -- The TaskJuggler III Project Management Software
5
5
  #
6
- # Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013
7
- # by Chris Schlaeger <chris@linux.com>
6
+ # Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014
7
+ # by Chris Schlaeger <cs@taskjuggler.org>
8
8
  #
9
9
  # This program is free software; you can redistribute it and/or modify
10
10
  # it under the terms of version 2 of the GNU General Public License as
@@ -3,8 +3,8 @@
3
3
  #
4
4
  # = MspXmlRE.rb -- The TaskJuggler III Project Management Software
5
5
  #
6
- # Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013
7
- # by Chris Schlaeger <chris@linux.com>
6
+ # Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014
7
+ # by Chris Schlaeger <cs@taskjuggler.org>
8
8
  #
9
9
  # This program is free software; you can redistribute it and/or modify
10
10
  # it under the terms of version 2 of the GNU General Public License as
@@ -53,7 +53,10 @@ class TaskJuggler
53
53
  # Prepare the task list.
54
54
  @taskList = PropertyList.new(@project.tasks)
55
55
  @taskList.includeAdopted
56
- @taskList.setSorting(a('sortTasks'))
56
+ # The MSP XML format requires that the tasks are listed in 'tree' order.
57
+ # We purposely ignore the user provided sorting criteria.
58
+ @taskList.setSorting([ [ 'tree', true, -1 ],
59
+ [ 'seqno', true, -1 ] ])
57
60
  @taskList = filterTaskList(@taskList, nil, a('hideTask'), a('rollupTask'),
58
61
  a('openNodes'))
59
62
  @taskList.sort!
@@ -3,8 +3,8 @@
3
3
  #
4
4
  # = Navigator.rb -- The TaskJuggler III Project Management Software
5
5
  #
6
- # Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013
7
- # by Chris Schlaeger <chris@linux.com>
6
+ # Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014
7
+ # by Chris Schlaeger <cs@taskjuggler.org>
8
8
  #
9
9
  # This program is free software; you can redistribute it and/or modify
10
10
  # it under the terms of version 2 of the GNU General Public License as
@@ -3,8 +3,8 @@
3
3
  #
4
4
  # = NikuReport.rb -- The TaskJuggler III Project Management Software
5
5
  #
6
- # Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013
7
- # by Chris Schlaeger <chris@linux.com>
6
+ # Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014
7
+ # by Chris Schlaeger <cs@taskjuggler.org>
8
8
  #
9
9
  # This program is free software; you can redistribute it and/or modify
10
10
  # it under the terms of version 2 of the GNU General Public License as
@@ -3,8 +3,8 @@
3
3
  #
4
4
  # = Report.rb -- The TaskJuggler III Project Management Software
5
5
  #
6
- # Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013
7
- # by Chris Schlaeger <chris@linux.com>
6
+ # Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014
7
+ # by Chris Schlaeger <cs@taskjuggler.org>
8
8
  #
9
9
  # This program is free software; you can redistribute it and/or modify
10
10
  # it under the terms of version 2 of the GNU General Public License as
@@ -187,7 +187,7 @@ class TaskJuggler
187
187
  auxSrcDir = AppConfig.dataDirs('data/css')[0]
188
188
  cssFileName = (auxSrcDir ? auxSrcDir + '/tjreport.css' : '')
189
189
  # Raise an error if we haven't found the data directory
190
- if auxSrcDir.nil? || !File.exists?(cssFileName)
190
+ if auxSrcDir.nil? || !File.exist?(cssFileName)
191
191
  dataDirError(cssFileName, AppConfig.dataSearchDirs('data/css'))
192
192
  end
193
193
  cssFile = IO.read(cssFileName)
@@ -403,7 +403,7 @@ EOT
403
403
  # Find the data directory that came with the TaskJuggler installation.
404
404
  auxSrcDir = AppConfig.dataDirs("data/#{dirName}")[0].untaint
405
405
  # Raise an error if we haven't found the data directory
406
- if auxSrcDir.nil? || !File.exists?(auxSrcDir)
406
+ if auxSrcDir.nil? || !File.exist?(auxSrcDir)
407
407
  dataDirError(dirName, AppConfig.dataSearchDirs("data/#{dirName}"))
408
408
  end
409
409
  # Don't copy directory if all files are up-to-date.
@@ -419,7 +419,7 @@ EOT
419
419
  end
420
420
 
421
421
  def directoryUpToDate?(auxSrcDir, auxDstDir)
422
- return false unless File.exists?(auxDstDir.untaint)
422
+ return false unless File.exist?(auxDstDir.untaint)
423
423
 
424
424
  Dir.entries(auxSrcDir).each do |file|
425
425
  next if file == '.' || file == '..'
@@ -466,7 +466,7 @@ EOT
466
466
 
467
467
  def absoluteFileName?(name)
468
468
  if windowsOS?
469
- name[0] =~ /a-zA-Z/ && name[1] == ?:
469
+ name[0] =~ /[a-zA-Z]/ && name[1] == ?:
470
470
  else
471
471
  name[0] == ?/
472
472
  end
@@ -3,8 +3,8 @@
3
3
  #
4
4
  # = ReportBase.rb -- The TaskJuggler III Project Management Software
5
5
  #
6
- # Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013
7
- # by Chris Schlaeger <chris@linux.com>
6
+ # Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014
7
+ # by Chris Schlaeger <cs@taskjuggler.org>
8
8
  #
9
9
  # This program is free software; you can redistribute it and/or modify
10
10
  # it under the terms of version 2 of the GNU General Public License as
@@ -3,8 +3,8 @@
3
3
  #
4
4
  # = ReportContext.rb -- The TaskJuggler III Project Management Software
5
5
  #
6
- # Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013
7
- # by Chris Schlaeger <chris@linux.com>
6
+ # Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014
7
+ # by Chris Schlaeger <cs@taskjuggler.org>
8
8
  #
9
9
  # This program is free software; you can redistribute it and/or modify
10
10
  # it under the terms of version 2 of the GNU General Public License as
@@ -3,8 +3,8 @@
3
3
  #
4
4
  # = ReportTable.rb -- The TaskJuggler III Project Management Software
5
5
  #
6
- # Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013
7
- # by Chris Schlaeger <chris@linux.com>
6
+ # Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014
7
+ # by Chris Schlaeger <cs@taskjuggler.org>
8
8
  #
9
9
  # This program is free software; you can redistribute it and/or modify
10
10
  # it under the terms of version 2 of the GNU General Public License as
@@ -3,8 +3,8 @@
3
3
  #
4
4
  # = ReportTableCell.rb -- The TaskJuggler III Project Management Software
5
5
  #
6
- # Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013
7
- # by Chris Schlaeger <chris@linux.com>
6
+ # Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014
7
+ # by Chris Schlaeger <cs@taskjuggler.org>
8
8
  #
9
9
  # This program is free software; you can redistribute it and/or modify
10
10
  # it under the terms of version 2 of the GNU General Public License as
@@ -3,8 +3,8 @@
3
3
  #
4
4
  # = ReportTableColumn.rb -- The TaskJuggler III Project Management Software
5
5
  #
6
- # Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013
7
- # by Chris Schlaeger <chris@linux.com>
6
+ # Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014
7
+ # by Chris Schlaeger <cs@taskjuggler.org>
8
8
  #
9
9
  # This program is free software; you can redistribute it and/or modify
10
10
  # it under the terms of version 2 of the GNU General Public License as
@@ -3,8 +3,8 @@
3
3
  #
4
4
  # = ReportTableLegend.rb -- The TaskJuggler III Project Management Software
5
5
  #
6
- # Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013
7
- # by Chris Schlaeger <chris@linux.com>
6
+ # Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014
7
+ # by Chris Schlaeger <cs@taskjuggler.org>
8
8
  #
9
9
  # This program is free software; you can redistribute it and/or modify
10
10
  # it under the terms of version 2 of the GNU General Public License as
@@ -3,8 +3,8 @@
3
3
  #
4
4
  # = ReportTableLine.rb -- The TaskJuggler III Project Management Software
5
5
  #
6
- # Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013
7
- # by Chris Schlaeger <chris@linux.com>
6
+ # Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014
7
+ # by Chris Schlaeger <cs@taskjuggler.org>
8
8
  #
9
9
  # This program is free software; you can redistribute it and/or modify
10
10
  # it under the terms of version 2 of the GNU General Public License as
@@ -3,8 +3,8 @@
3
3
  #
4
4
  # = ResourceListRE.rb -- The TaskJuggler III Project Management Software
5
5
  #
6
- # Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013
7
- # by Chris Schlaeger <chris@linux.com>
6
+ # Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014
7
+ # by Chris Schlaeger <cs@taskjuggler.org>
8
8
  #
9
9
  # This program is free software; you can redistribute it and/or modify
10
10
  # it under the terms of version 2 of the GNU General Public License as
@@ -3,8 +3,8 @@
3
3
  #
4
4
  # = StatusSheetReport.rb -- The TaskJuggler III Project Management Software
5
5
  #
6
- # Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013
7
- # by Chris Schlaeger <chris@linux.com>
6
+ # Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014
7
+ # by Chris Schlaeger <cs@taskjuggler.org>
8
8
  #
9
9
  # This program is free software; you can redistribute it and/or modify
10
10
  # it under the terms of version 2 of the GNU General Public License as
@@ -3,8 +3,8 @@
3
3
  #
4
4
  # = TableReport.rb -- The TaskJuggler III Project Management Software
5
5
  #
6
- # Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013
7
- # by Chris Schlaeger <chris@linux.com>
6
+ # Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014
7
+ # by Chris Schlaeger <cs@taskjuggler.org>
8
8
  #
9
9
  # This program is free software; you can redistribute it and/or modify
10
10
  # it under the terms of version 2 of the GNU General Public License as
@@ -38,6 +38,7 @@ class TaskJuggler
38
38
  'alerttrend' => [ 'Alert Trend', false, :left, false ],
39
39
  'balance' => [ 'Balance', true, :right, true ],
40
40
  'bsi' => [ 'BSI', false, :left, false ],
41
+ 'children' => [ 'Children' , false, :left, false ],
41
42
  'closedtasks' => [ 'Closed Tasks', true, :right, true ],
42
43
  'competitorcount' => [ 'Competitor count', true, :right, true ],
43
44
  'competitors' => [ 'Competitors', true, :left, true ],
@@ -162,7 +163,7 @@ class TaskJuggler
162
163
 
163
164
  # Return if the column values should be indented based on the _colId_ or the
164
165
  # _propertyType_.
165
- def indent(colId, propertyType)
166
+ def TableReport::indent(colId, propertyType)
166
167
  if @@propertiesById.has_key?(colId)
167
168
  return @@propertiesById[colId][1]
168
169
  elsif @@propertiesByType.has_key?(propertyType)
@@ -174,7 +175,7 @@ class TaskJuggler
174
175
 
175
176
  # Return the alignment of the column based on the _colId_ or the
176
177
  # _attributeType_.
177
- def alignment(colId, attributeType)
178
+ def TableReport::alignment(colId, attributeType)
178
179
  if @@propertiesById.has_key?(colId)
179
180
  return @@propertiesById[colId][2]
180
181
  elsif @@propertiesByType.has_key?(attributeType)
@@ -186,22 +187,22 @@ class TaskJuggler
186
187
 
187
188
  # This function returns true if the values for the _colId_ column need to be
188
189
  # calculated.
189
- def calculated?(colId)
190
+ def TableReport::calculated?(colId)
190
191
  return @@propertiesById.has_key?(colId)
191
192
  end
192
193
 
193
194
  # This functions returns true if the values for the _col_id_ column are
194
195
  # scenario specific.
195
- def scenarioSpecific?(colId)
196
+ def TableReport::scenarioSpecific?(colId)
196
197
  if @@propertiesById.has_key?(colId)
197
198
  return @@propertiesById[colId][3]
198
199
  end
199
200
  return false
200
201
  end
201
202
 
202
- def supportedColumns
203
- @@propertiesById.keys
204
- end
203
+ #def TableReport::supportedColumns
204
+ # @@propertiesById.keys
205
+ #end
205
206
 
206
207
  protected
207
208
 
@@ -650,7 +651,8 @@ class TaskJuggler
650
651
  # header.
651
652
  chart = columnDef.column.cell1.special
652
653
  GanttLine.new(chart, query, (line.subLineNo - 1) * (line.height + 1),
653
- line.height, a('selfcontained') ? nil : columnDef.tooltip)
654
+ line.height, line.subLineNo,
655
+ a('selfcontained') ? nil : columnDef.tooltip)
654
656
  return true
655
657
  # The calendar cells can be all generated by the same function. But we
656
658
  # need to use different parameters.
@@ -673,7 +675,7 @@ class TaskJuggler
673
675
  start = query.start.beginOfYear
674
676
  sameTimeNextFunc = :sameTimeNextYear
675
677
  else
676
- if calculated?(columnDef.id)
678
+ if TableReport.calculated?(columnDef.id)
677
679
  return genCalculatedCell(query, line, columnDef)
678
680
  else
679
681
  return genStandardCell(query, line, columnDef)
@@ -687,6 +689,7 @@ class TaskJuggler
687
689
  line.property, line.scopeLine)
688
690
 
689
691
  PlaceHolderCell.new(line, tcLine)
692
+ tcLine.subLineNo = line.subLineNo
690
693
  # Depending on the property type we use different generator functions.
691
694
  if query.property.is_a?(Task)
692
695
  genCalChartTaskCell(query, tcLine, columnDef, start, sameTimeNextFunc)
@@ -753,7 +756,7 @@ class TaskJuggler
753
756
  cell = newCell(query, line)
754
757
 
755
758
  unless setScenarioSettings(cell, query.scenarioIdx,
756
- scenarioSpecific?(columnDef.id))
759
+ TableReport.scenarioSpecific?(columnDef.id))
757
760
  return false
758
761
  end
759
762
 
@@ -924,7 +927,7 @@ class TaskJuggler
924
927
  # The cell is just filled with the background color.
925
928
  cell.category = 'taskcell'
926
929
  end
927
- cell.category += line.property.get('index') % 2 == 1 ? '1' : '2'
930
+ cell.category += line.subLineNo % 2 == 1 ? '1' : '2'
928
931
 
929
932
  setCustomCellAttributes(cell, columnDef, query)
930
933
  tryCellMerging(cell, line, firstCell)
@@ -1052,7 +1055,7 @@ class TaskJuggler
1052
1055
  'offduty'
1053
1056
  end
1054
1057
  end
1055
- cell.category += line.property.get('index') % 2 == 1 ? '1' : '2'
1058
+ cell.category += line.subLineNo % 2 == 1 ? '1' : '2'
1056
1059
 
1057
1060
  setCustomCellAttributes(cell, columnDef, query)
1058
1061
 
@@ -1072,20 +1075,20 @@ class TaskJuggler
1072
1075
  # alignment and background color.
1073
1076
  def setStandardCellAttributes(query, cell, columnDef, attributeType, line)
1074
1077
  # Determine whether it should be indented
1075
- if indent(columnDef.id, attributeType)
1078
+ if TableReport.indent(columnDef.id, attributeType)
1076
1079
  cell.indent = line.indentation
1077
1080
  end
1078
1081
 
1079
1082
  # Determine the cell alignment
1080
- cell.alignment = alignment(columnDef.id, attributeType)
1083
+ cell.alignment = TableReport.alignment(columnDef.id, attributeType)
1081
1084
 
1082
1085
  # Set background color
1083
1086
  if line.property.is_a?(Task)
1084
1087
  cell.category = 'taskcell'
1085
- cell.category += line.property.get('index') % 2 == 1 ? '1' : '2'
1088
+ cell.category += line.subLineNo % 2 == 1 ? '1' : '2'
1086
1089
  elsif line.property.is_a?(Resource)
1087
1090
  cell.category = 'resourcecell'
1088
- cell.category += line.property.get('index') % 2 == 1 ? '1' : '2'
1091
+ cell.category += line.subLineNo % 2 == 1 ? '1' : '2'
1089
1092
  elsif line.property.is_a?(Account)
1090
1093
  setAccountCellBgColor(query, line, cell)
1091
1094
  end
@@ -1173,7 +1176,7 @@ class TaskJuggler
1173
1176
  end
1174
1177
 
1175
1178
  cell.category = prefix + 'accountcell' +
1176
- (line.property.get('index') % 2 == 1 ? '1' : '2')
1179
+ (line.subLineNo % 2 == 1 ? '1' : '2')
1177
1180
  end
1178
1181
 
1179
1182
  # Make sure we have a valid cell text. If not, this is the result of an