taskjuggler 3.5.0 → 3.6.0

Sign up to get free protection for your applications and to get access to all the features.
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