taskjuggler 3.6.0 → 3.7.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (434) hide show
  1. checksums.yaml +5 -5
  2. data/CHANGELOG +69 -0
  3. data/Rakefile +4 -1
  4. data/data/css/tjreport.css +4 -0
  5. data/data/tjp.vim +9 -3
  6. data/examples/ProjectTemplate/template.tjp +10 -10
  7. data/examples/Tutorial/tutorial.tjp +4 -4
  8. data/lib/taskjuggler/Allocation.rb +1 -1
  9. data/lib/taskjuggler/AppConfig.rb +1 -1
  10. data/lib/taskjuggler/AttributeBase.rb +10 -4
  11. data/lib/taskjuggler/Attributes.rb +2 -2
  12. data/lib/taskjuggler/BatchProcessor.rb +69 -58
  13. data/lib/taskjuggler/FileList.rb +1 -1
  14. data/lib/taskjuggler/Interval.rb +10 -12
  15. data/lib/taskjuggler/Journal.rb +2 -2
  16. data/lib/taskjuggler/LogicalFunction.rb +1 -1
  17. data/lib/taskjuggler/LogicalOperation.rb +7 -4
  18. data/lib/taskjuggler/MessageHandler.rb +1 -2
  19. data/lib/taskjuggler/PTNProxy.rb +1 -1
  20. data/lib/taskjuggler/Project.rb +27 -22
  21. data/lib/taskjuggler/PropertyList.rb +7 -1
  22. data/lib/taskjuggler/PropertySet.rb +1 -1
  23. data/lib/taskjuggler/PropertyTreeNode.rb +5 -3
  24. data/lib/taskjuggler/Query.rb +3 -3
  25. data/lib/taskjuggler/RealFormat.rb +1 -1
  26. data/lib/taskjuggler/Resource.rb +2 -2
  27. data/lib/taskjuggler/ResourceScenario.rb +66 -6
  28. data/lib/taskjuggler/RichText/Snip.rb +1 -1
  29. data/lib/taskjuggler/RuntimeConfig.rb +2 -2
  30. data/lib/taskjuggler/Scoreboard.rb +5 -2
  31. data/lib/taskjuggler/SheetHandlerBase.rb +5 -4
  32. data/lib/taskjuggler/Shift.rb +2 -2
  33. data/lib/taskjuggler/ShiftAssignments.rb +1 -1
  34. data/lib/taskjuggler/StatusSheetReceiver.rb +2 -2
  35. data/lib/taskjuggler/StatusSheetSender.rb +1 -1
  36. data/lib/taskjuggler/TaskJuggler.rb +4 -4
  37. data/lib/taskjuggler/TaskScenario.rb +7 -2
  38. data/lib/taskjuggler/TextParser/Scanner.rb +4 -4
  39. data/lib/taskjuggler/TextParser.rb +1 -1
  40. data/lib/taskjuggler/TimeSheetReceiver.rb +2 -2
  41. data/lib/taskjuggler/TimeSheetSender.rb +1 -1
  42. data/lib/taskjuggler/TimeSheets.rb +5 -4
  43. data/lib/taskjuggler/Tj3AppBase.rb +23 -9
  44. data/lib/taskjuggler/Tj3Config.rb +5 -3
  45. data/lib/taskjuggler/TjpExample.rb +3 -1
  46. data/lib/taskjuggler/TjpSyntaxRules.rb +166 -133
  47. data/lib/taskjuggler/UTF8String.rb +3 -3
  48. data/lib/taskjuggler/WorkingHours.rb +3 -3
  49. data/lib/taskjuggler/XMLDocument.rb +1 -1
  50. data/lib/taskjuggler/XMLElement.rb +12 -1
  51. data/lib/taskjuggler/apps/Tj3.rb +3 -1
  52. data/lib/taskjuggler/apps/Tj3Client.rb +3 -2
  53. data/lib/taskjuggler/apps/Tj3Daemon.rb +5 -3
  54. data/lib/taskjuggler/apps/Tj3Man.rb +4 -2
  55. data/lib/taskjuggler/apps/Tj3SsReceiver.rb +3 -1
  56. data/lib/taskjuggler/apps/Tj3SsSender.rb +3 -1
  57. data/lib/taskjuggler/apps/Tj3TsReceiver.rb +3 -1
  58. data/lib/taskjuggler/apps/Tj3TsSender.rb +3 -1
  59. data/lib/taskjuggler/apps/Tj3TsSummary.rb +3 -1
  60. data/lib/taskjuggler/apps/Tj3WebD.rb +4 -2
  61. data/lib/taskjuggler/daemon/ProjectServer.rb +2 -2
  62. data/lib/taskjuggler/deep_copy.rb +1 -1
  63. data/lib/taskjuggler/reports/CSVFile.rb +4 -4
  64. data/lib/taskjuggler/reports/ChartPlotter.rb +1 -1
  65. data/lib/taskjuggler/reports/GanttChart.rb +8 -2
  66. data/lib/taskjuggler/reports/GanttHeader.rb +11 -1
  67. data/lib/taskjuggler/reports/GanttLine.rb +6 -0
  68. data/lib/taskjuggler/reports/ICalReport.rb +1 -1
  69. data/lib/taskjuggler/reports/MspXmlRE.rb +5 -3
  70. data/lib/taskjuggler/reports/Report.rb +6 -6
  71. data/lib/taskjuggler/reports/ReportTableCell.rb +1 -1
  72. data/lib/taskjuggler/reports/TableReport.rb +7 -12
  73. data/lib/taskjuggler/reports/TjpExportRE.rb +1 -5
  74. data/lib/taskjuggler/reports/TraceReport.rb +2 -2
  75. data/lib/taskjuggler/version.rb +1 -0
  76. data/man/tj3.1 +130 -0
  77. data/man/tj3client.1 +145 -0
  78. data/man/tj3d.1 +93 -0
  79. data/man/tj3man.1 +76 -0
  80. data/man/tj3ss_receiver.1 +86 -0
  81. data/man/tj3ss_sender.1 +100 -0
  82. data/man/tj3ts_receiver.1 +86 -0
  83. data/man/tj3ts_sender.1 +92 -0
  84. data/man/tj3ts_summary.1 +104 -0
  85. data/man/tj3webd.1 +86 -0
  86. data/manual/Day_To_Day_Juggling +8 -8
  87. data/manual/Installation +6 -6
  88. data/manual/List_Attributes +1 -1
  89. data/manual/Rich_Text_Attributes +6 -5
  90. data/manual/Software +6 -6
  91. data/manual/TaskJuggler_Internals +4 -4
  92. data/manual/The_TaskJuggler_Syntax +5 -5
  93. data/manual/Tutorial +13 -11
  94. data/manual/html/Day_To_Day_Juggling.html +9 -9
  95. data/manual/html/Getting_Started.html +2 -2
  96. data/manual/html/How_To_Contribute.html +2 -2
  97. data/manual/html/Installation.html +8 -8
  98. data/manual/html/Intro.html +2 -2
  99. data/manual/html/List_Attributes.html +3 -3
  100. data/manual/html/Reporting_Bugs.html +2 -2
  101. data/manual/html/Rich_Text_Attributes.html +5 -5
  102. data/manual/html/Software.html +7 -7
  103. data/manual/html/TaskJuggler_2x_Migration.html +2 -2
  104. data/manual/html/TaskJuggler_Internals.html +6 -6
  105. data/manual/html/The_TaskJuggler_Syntax.html +6 -6
  106. data/manual/html/Tutorial.html +17 -14
  107. data/manual/html/account.html +3 -3
  108. data/manual/html/account.task.html +2 -2
  109. data/manual/html/accountprefix.html +2 -2
  110. data/manual/html/accountreport.html +3 -3
  111. data/manual/html/accountroot.html +2 -2
  112. data/manual/html/active.html +3 -3
  113. data/manual/html/adopt.task.html +2 -2
  114. data/manual/html/aggregate.html +2 -2
  115. data/manual/html/alert.html +3 -3
  116. data/manual/html/alertlevels.html +2 -2
  117. data/manual/html/allocate.html +3 -3
  118. data/manual/html/alphabet.html +1 -1
  119. data/manual/html/alternative.html +2 -2
  120. data/manual/html/author.html +2 -2
  121. data/manual/html/auxdir.html +2 -2
  122. data/manual/html/auxdir.report.html +2 -2
  123. data/manual/html/balance.html +2 -2
  124. data/manual/html/booking.resource.html +4 -4
  125. data/manual/html/booking.task.html +4 -4
  126. data/manual/html/caption.html +2 -2
  127. data/manual/html/cellcolor.column.html +3 -3
  128. data/manual/html/celltext.column.html +3 -3
  129. data/manual/html/center.html +2 -2
  130. data/manual/html/charge.html +2 -2
  131. data/manual/html/chargeset.html +2 -2
  132. data/manual/html/columnid.html +21 -14
  133. data/manual/html/columns.html +2 -2
  134. data/manual/html/complete.html +2 -2
  135. data/manual/html/copyright.html +2 -2
  136. data/manual/html/credits.html +2 -2
  137. data/manual/html/css/tjreport.css +4 -0
  138. data/manual/html/currency.html +2 -2
  139. data/manual/html/currencyformat.html +3 -3
  140. data/manual/html/dailymax.html +2 -2
  141. data/manual/html/dailymin.html +3 -3
  142. data/manual/html/dailyworkinghours.html +2 -2
  143. data/manual/html/date.extend.html +2 -2
  144. data/manual/html/date.html +5 -5
  145. data/manual/html/definitions.html +4 -4
  146. data/manual/html/depends.html +4 -4
  147. data/manual/html/details.html +2 -2
  148. data/manual/html/disabled.html +2 -2
  149. data/manual/html/duration.html +2 -2
  150. data/manual/html/efficiency.html +3 -3
  151. data/manual/html/effort.html +2 -2
  152. data/manual/html/effortdone.html +2 -2
  153. data/manual/html/effortleft.html +2 -2
  154. data/manual/html/email.html +2 -2
  155. data/manual/html/enabled.html +2 -2
  156. data/manual/html/end.column.html +3 -3
  157. data/manual/html/end.html +4 -4
  158. data/manual/html/end.limit.html +2 -2
  159. data/manual/html/end.report.html +2 -2
  160. data/manual/html/end.timesheet.html +3 -3
  161. data/manual/html/endcredit.html +3 -3
  162. data/manual/html/epilog.html +2 -2
  163. data/manual/html/export.html +3 -3
  164. data/manual/html/extend.html +3 -3
  165. data/manual/html/fail.html +3 -3
  166. data/manual/html/fdl.html +2 -2
  167. data/manual/html/flags.account.html +2 -2
  168. data/manual/html/flags.html +2 -2
  169. data/manual/html/flags.journalentry.html +2 -2
  170. data/manual/html/flags.report.html +2 -2
  171. data/manual/html/flags.resource.html +2 -2
  172. data/manual/html/flags.statussheet.html +2 -2
  173. data/manual/html/flags.task.html +2 -2
  174. data/manual/html/flags.timesheet.html +2 -2
  175. data/manual/html/fontcolor.column.html +3 -3
  176. data/manual/html/footer.html +2 -2
  177. data/manual/html/formats.export.html +3 -3
  178. data/manual/html/formats.html +3 -3
  179. data/manual/html/functions.html +5 -5
  180. data/manual/html/gapduration.html +2 -2
  181. data/manual/html/gaplength.html +2 -2
  182. data/manual/html/halign.center.html +2 -2
  183. data/manual/html/halign.column.html +3 -3
  184. data/manual/html/halign.left.html +2 -2
  185. data/manual/html/halign.right.html +2 -2
  186. data/manual/html/hasalert.html +2 -2
  187. data/manual/html/header.html +2 -2
  188. data/manual/html/headline.html +2 -2
  189. data/manual/html/height.html +3 -3
  190. data/manual/html/hideaccount.html +3 -3
  191. data/manual/html/hidejournalentry.html +2 -2
  192. data/manual/html/hidereport.html +3 -3
  193. data/manual/html/hideresource.html +3 -3
  194. data/manual/html/hidetask.html +3 -3
  195. data/manual/html/icalreport.html +9 -3
  196. data/manual/html/include.macro.html +3 -3
  197. data/manual/html/include.project.html +3 -3
  198. data/manual/html/include.properties.html +3 -3
  199. data/manual/html/index.html +1 -1
  200. data/manual/html/inherit.extend.html +3 -3
  201. data/manual/html/interval1.html +3 -3
  202. data/manual/html/interval2.html +3 -3
  203. data/manual/html/interval3.html +2 -2
  204. data/manual/html/interval4.html +2 -2
  205. data/manual/html/isactive.html +2 -2
  206. data/manual/html/ischildof.html +2 -2
  207. data/manual/html/isdependencyof.html +2 -2
  208. data/manual/html/isdutyof.html +2 -2
  209. data/manual/html/isfeatureof.html +2 -2
  210. data/manual/html/isleaf.html +2 -2
  211. data/manual/html/ismilestone.html +2 -2
  212. data/manual/html/isongoing.html +3 -3
  213. data/manual/html/isresource.html +2 -2
  214. data/manual/html/isresponsibilityof.html +2 -2
  215. data/manual/html/istask.html +2 -2
  216. data/manual/html/isvalid.html +2 -2
  217. data/manual/html/journalattributes.html +2 -2
  218. data/manual/html/journalentry.html +3 -3
  219. data/manual/html/journalmode.html +3 -3
  220. data/manual/html/leaveallowance.html +3 -3
  221. data/manual/html/leaves.html +3 -3
  222. data/manual/html/left.html +2 -2
  223. data/manual/html/length.html +3 -3
  224. data/manual/html/limits.allocate.html +2 -2
  225. data/manual/html/limits.html +2 -2
  226. data/manual/html/limits.resource.html +2 -2
  227. data/manual/html/limits.task.html +2 -2
  228. data/manual/html/listitem.column.html +3 -3
  229. data/manual/html/listtype.column.html +2 -2
  230. data/manual/html/loadunit.html +2 -2
  231. data/manual/html/logicalexpression.html +4 -4
  232. data/manual/html/logicalflagexpression.html +4 -4
  233. data/manual/html/macro.html +4 -4
  234. data/manual/html/managers.html +2 -2
  235. data/manual/html/mandatory.html +4 -4
  236. data/manual/html/markdate.html +69 -0
  237. data/manual/html/maxend.html +4 -4
  238. data/manual/html/maximum.html +2 -2
  239. data/manual/html/maxstart.html +2 -2
  240. data/manual/html/milestone.html +3 -3
  241. data/manual/html/minend.html +2 -2
  242. data/manual/html/minimum.html +2 -2
  243. data/manual/html/minstart.html +2 -2
  244. data/manual/html/monthlymax.html +2 -2
  245. data/manual/html/monthlymin.html +3 -3
  246. data/manual/html/navbar.html +5 -1
  247. data/manual/html/navigator.html +2 -2
  248. data/manual/html/newtask.html +3 -3
  249. data/manual/html/nikureport.html +2 -2
  250. data/manual/html/note.task.html +4 -4
  251. data/manual/html/novevents.html +68 -0
  252. data/manual/html/now.html +4 -4
  253. data/manual/html/number.extend.html +2 -2
  254. data/manual/html/numberformat.html +2 -2
  255. data/manual/html/onend.html +2 -2
  256. data/manual/html/onstart.html +2 -2
  257. data/manual/html/opennodes.html +2 -2
  258. data/manual/html/outputdir.html +3 -3
  259. data/manual/html/overtime.booking.html +2 -2
  260. data/manual/html/period.column.html +2 -2
  261. data/manual/html/period.limit.html +2 -2
  262. data/manual/html/period.report.html +2 -2
  263. data/manual/html/period.task.html +2 -2
  264. data/manual/html/persistent.html +3 -3
  265. data/manual/html/precedes.html +5 -5
  266. data/manual/html/priority.html +4 -4
  267. data/manual/html/priority.timesheet.html +3 -3
  268. data/manual/html/project.html +4 -4
  269. data/manual/html/projectid.html +2 -2
  270. data/manual/html/projectid.task.html +3 -3
  271. data/manual/html/projectids.html +2 -2
  272. data/manual/html/projection.html +2 -2
  273. data/manual/html/prolog.html +2 -2
  274. data/manual/html/properties.html +3 -3
  275. data/manual/html/purge.html +2 -2
  276. data/manual/html/rate.html +2 -2
  277. data/manual/html/rate.resource.html +2 -2
  278. data/manual/html/rawhtmlhead.html +3 -3
  279. data/manual/html/reference.extend.html +2 -2
  280. data/manual/html/remaining.html +3 -3
  281. data/manual/html/replace.html +2 -2
  282. data/manual/html/reportprefix.html +2 -2
  283. data/manual/html/resource.html +3 -3
  284. data/manual/html/resourceattributes.html +2 -2
  285. data/manual/html/resourceprefix.html +2 -2
  286. data/manual/html/resourcereport.html +4 -4
  287. data/manual/html/resourceroot.html +3 -3
  288. data/manual/html/resources.limit.html +2 -2
  289. data/manual/html/responsible.html +2 -2
  290. data/manual/html/richtext.extend.html +2 -2
  291. data/manual/html/right.html +2 -2
  292. data/manual/html/rollupaccount.html +3 -3
  293. data/manual/html/rollupresource.html +3 -3
  294. data/manual/html/rolluptask.html +3 -3
  295. data/manual/html/scale.column.html +2 -2
  296. data/manual/html/scenario.html +3 -3
  297. data/manual/html/scenario.ical.html +3 -3
  298. data/manual/html/scenarios.export.html +2 -2
  299. data/manual/html/scenarios.html +2 -2
  300. data/manual/html/scenariospecific.extend.html +2 -2
  301. data/manual/html/scheduled.html +2 -2
  302. data/manual/html/scheduling.html +6 -6
  303. data/manual/html/schedulingmode.html +2 -2
  304. data/manual/html/select.html +4 -4
  305. data/manual/html/selfcontained.html +2 -2
  306. data/manual/html/shift.allocate.html +2 -2
  307. data/manual/html/shift.html +3 -3
  308. data/manual/html/shift.resource.html +4 -4
  309. data/manual/html/shift.task.html +2 -2
  310. data/manual/html/shift.timesheet.html +2 -2
  311. data/manual/html/shifts.allocate.html +2 -2
  312. data/manual/html/shifts.resource.html +2 -2
  313. data/manual/html/shifts.task.html +3 -3
  314. data/manual/html/shorttimeformat.html +3 -3
  315. data/manual/html/sloppy.booking.html +2 -2
  316. data/manual/html/sloppy.projection.html +2 -2
  317. data/manual/html/sortaccounts.html +2 -2
  318. data/manual/html/sortjournalentries.html +2 -2
  319. data/manual/html/sortresources.html +2 -2
  320. data/manual/html/sorttasks.html +2 -2
  321. data/manual/html/start.column.html +3 -3
  322. data/manual/html/start.html +4 -4
  323. data/manual/html/start.limit.html +2 -2
  324. data/manual/html/start.report.html +2 -2
  325. data/manual/html/startcredit.html +3 -3
  326. data/manual/html/status.statussheet.html +2 -2
  327. data/manual/html/status.timesheet.html +2 -2
  328. data/manual/html/statussheet.html +2 -2
  329. data/manual/html/statussheetreport.html +3 -3
  330. data/manual/html/strict.projection.html +2 -2
  331. data/manual/html/summary.html +2 -2
  332. data/manual/html/supplement.html +2 -2
  333. data/manual/html/supplement.resource.html +2 -2
  334. data/manual/html/supplement.task.html +2 -2
  335. data/manual/html/tagfile.html +3 -3
  336. data/manual/html/task.html +3 -3
  337. data/manual/html/task.statussheet.html +3 -3
  338. data/manual/html/task.timesheet.html +2 -2
  339. data/manual/html/taskattributes.html +2 -2
  340. data/manual/html/taskprefix.html +2 -2
  341. data/manual/html/taskreport.html +4 -4
  342. data/manual/html/taskroot.export.html +2 -2
  343. data/manual/html/taskroot.html +2 -2
  344. data/manual/html/text.extend.html +2 -2
  345. data/manual/html/textreport.html +4 -4
  346. data/manual/html/timeformat.html +3 -3
  347. data/manual/html/timeformat1.html +2 -2
  348. data/manual/html/timeformat2.html +2 -2
  349. data/manual/html/timeoff.nikureport.html +2 -2
  350. data/manual/html/timesheet.html +3 -3
  351. data/manual/html/timesheetreport.html +3 -3
  352. data/manual/html/timezone.export.html +2 -2
  353. data/manual/html/timezone.html +2 -2
  354. data/manual/html/timezone.report.html +2 -2
  355. data/manual/html/timezone.shift.html +2 -2
  356. data/manual/html/timingresolution.html +2 -2
  357. data/manual/html/title.column.html +2 -2
  358. data/manual/html/title.html +2 -2
  359. data/manual/html/toc.html +157 -143
  360. data/manual/html/tooltip.column.html +3 -3
  361. data/manual/html/tracereport.html +7 -7
  362. data/manual/html/trackingscenario.html +3 -3
  363. data/manual/html/treelevel.html +2 -2
  364. data/manual/html/vacation.html +2 -2
  365. data/manual/html/vacation.resource.html +2 -2
  366. data/manual/html/vacation.shift.html +2 -2
  367. data/manual/html/warn.html +4 -4
  368. data/manual/html/weeklymax.html +2 -2
  369. data/manual/html/weeklymin.html +3 -3
  370. data/manual/html/weekstartsmonday.html +2 -2
  371. data/manual/html/weekstartssunday.html +2 -2
  372. data/manual/html/width.column.html +2 -2
  373. data/manual/html/width.html +3 -3
  374. data/manual/html/work.html +3 -3
  375. data/manual/html/workinghours.project.html +3 -3
  376. data/manual/html/workinghours.resource.html +2 -2
  377. data/manual/html/workinghours.shift.html +2 -2
  378. data/manual/html/yearlyworkingdays.html +2 -2
  379. data/spec/ProjectBroker_spec.rb +6 -6
  380. data/spec/StatusSheets_spec.rb +1 -1
  381. data/spec/TimeSheets_spec.rb +1 -1
  382. data/spec/TraceReport_spec.rb +1 -1
  383. data/spec/support/DaemonControl.rb +2 -3
  384. data/taskjuggler.gemspec +7 -10
  385. data/tasks/changelog.rake +2 -0
  386. data/tasks/gem.rake +3 -1
  387. data/tasks/help2man.rake +18 -0
  388. data/tasks/kate.rake +2 -0
  389. data/tasks/manual.rake +3 -1
  390. data/tasks/test.rake +5 -0
  391. data/tasks/vim.rake +2 -0
  392. data/test/TestSuite/CSV-Reports/quotes.tjp +20 -0
  393. data/test/TestSuite/CSV-Reports/refs/quotes.csv +5 -0
  394. data/test/TestSuite/Export-Reports/refs/AccountReport.tjp +0 -1
  395. data/test/TestSuite/Export-Reports/refs/AdoptedTasks.tjp +0 -2
  396. data/test/TestSuite/Export-Reports/refs/AlertLevels.tjp +0 -1
  397. data/test/TestSuite/Export-Reports/refs/Allocate-1.tjp +0 -1
  398. data/test/TestSuite/Export-Reports/refs/AutoID.tjp +0 -1
  399. data/test/TestSuite/Export-Reports/refs/AutoMacros.tjp +0 -1
  400. data/test/TestSuite/Export-Reports/refs/Currencyformat.tjp +0 -1
  401. data/test/TestSuite/Export-Reports/refs/CustomAttributes.tjp +0 -2
  402. data/test/TestSuite/Export-Reports/refs/Depends1.tjp +0 -1
  403. data/test/TestSuite/Export-Reports/refs/Durations.tjp +0 -1
  404. data/test/TestSuite/Export-Reports/refs/Efficiency.tjp +0 -1
  405. data/test/TestSuite/Export-Reports/refs/Gap.tjp +0 -3
  406. data/test/TestSuite/Export-Reports/refs/Include.tjp +0 -1
  407. data/test/TestSuite/Export-Reports/refs/Journal.tjp +0 -1
  408. data/test/TestSuite/Export-Reports/refs/Macro-1.tjp +0 -1
  409. data/test/TestSuite/Export-Reports/refs/Macro-2.tjp +0 -2
  410. data/test/TestSuite/Export-Reports/refs/Macro-3.tjp +0 -1
  411. data/test/TestSuite/Export-Reports/refs/Manager.tjp +0 -1
  412. data/test/TestSuite/Export-Reports/refs/Milestone.tjp +0 -2
  413. data/test/TestSuite/Export-Reports/refs/Numberformat.tjp +0 -1
  414. data/test/TestSuite/Export-Reports/refs/Precedes1.tjp +0 -1
  415. data/test/TestSuite/Export-Reports/refs/Project.tjp +0 -1
  416. data/test/TestSuite/Export-Reports/refs/ProjectIDs.tjp +0 -3
  417. data/test/TestSuite/Export-Reports/refs/Reports.tjp +0 -1
  418. data/test/TestSuite/Export-Reports/refs/Resource.tjp +0 -1
  419. data/test/TestSuite/Export-Reports/refs/ResourceRoot.tjp +0 -1
  420. data/test/TestSuite/Export-Reports/refs/RollupResource.tjp +0 -1
  421. data/test/TestSuite/Export-Reports/refs/Scenario.tjp +0 -2
  422. data/test/TestSuite/Export-Reports/refs/Timezone.tjp +0 -1
  423. data/test/TestSuite/Export-Reports/refs/Vacation.tjp +0 -1
  424. data/test/TestSuite/Export-Reports/refs/navigator.tjp +0 -4
  425. data/test/TestSuite/Export-Reports/refs/template.tjp +0 -6
  426. data/test/TestSuite/Export-Reports/refs/textreport.tjp +0 -1
  427. data/test/TestSuite/Export-Reports/refs/tutorial.tjp +0 -8
  428. data/test/TestSuite/Syntax/Correct/Booking.tjp +1 -1
  429. data/test/TestSuite/Syntax/Correct/Currencyformat.tjp +1 -1
  430. data/test/TestSuite/Syntax/Correct/template.tjp +3 -3
  431. data/test/TestSuite/Syntax/Correct/tutorial.tjp +8 -3
  432. data/test/test_BatchProcessor.rb +6 -3
  433. data/test/test_ProjectFileScanner.rb +8 -8
  434. metadata +47 -11
@@ -3,7 +3,7 @@
3
3
  #
4
4
  # = TjpSyntaxRules.rb -- The TaskJuggler III Project Management Software
5
5
  #
6
- # Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014
6
+ # Copyright (c) 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2020
7
7
  # by Chris Schlaeger <cs@taskjuggler.org>
8
8
  #
9
9
  # This program is free software; you can redistribute it and/or modify
@@ -76,7 +76,7 @@ EOT
76
76
  def rule_accountHeader
77
77
  pattern(%w( _account !optionalID $STRING ), lambda {
78
78
  if @property.nil? && !@accountprefix.empty?
79
- @property = @project.accout(@accountprefix)
79
+ @property = @project.account(@accountprefix)
80
80
  end
81
81
  if @val[1] && @project.account(@val[1])
82
82
  error('account_exists', "Account #{@val[1]} has already been defined.",
@@ -239,7 +239,7 @@ certain maximum per time period. The purge statement can be used to remove
239
239
  inherited allocations or flags.
240
240
 
241
241
  For effort-based tasks the task duration is clipped to only extend from the
242
- begining of the first allocation to the end of the last allocation. This is
242
+ beginning of the first allocation to the end of the last allocation. This is
243
243
  done to optimize for an overall minimum project duration as dependent tasks
244
244
  can potentially use the unallocated, clipped slots.
245
245
  EOT
@@ -287,7 +287,7 @@ EOT
287
287
  @allocate.setSelectionMode(@val[1])
288
288
  })
289
289
  doc('select', <<'EOT'
290
- The select functions controls which resource is picked from an allocation and
290
+ The select function controls which resource is picked from an allocation and
291
291
  it's alternatives. The selection is re-evaluated each time the resource used
292
292
  in the previous time slot becomes unavailable.
293
293
 
@@ -301,7 +301,7 @@ EOT
301
301
  @allocate.persistent = true
302
302
  })
303
303
  doc('persistent', <<'EOT'
304
- Specifies that once a resource is picked from the list of alternatives this
304
+ Specifies that once a resource is picked from the list of alternatives, this
305
305
  resource is used for the whole task. This is useful when several alternative
306
306
  resources have been specified. Normally the selected resource can change after
307
307
  each break. A break is an interval of at least one timeslot where no resources
@@ -389,7 +389,7 @@ EOT
389
389
  descr(<<'EOT'
390
390
  Pick the resource that has the smallest allocation factor. The
391
391
  allocation factor is calculated from the various allocations of the resource
392
- across the tasks. This is the default setting.)
392
+ across the tasks. This is the default setting.
393
393
  EOT
394
394
  )
395
395
 
@@ -673,7 +673,7 @@ EOT
673
673
  def rule_color
674
674
  pattern(%w( $STRING ), lambda {
675
675
  col = @val[0]
676
- unless /#[0-9A-Fa-f]{3}/ =~ col || /#[0-9A-Fa-f]{3}/ =~ col
676
+ unless /#[0-9A-Fa-f]{3}/ =~ col || /#[0-9A-Fa-f]{6}/ =~ col
677
677
  error('bad_color',
678
678
  "Color values must be specified as '#RGB' or '#RRGGBB' values",
679
679
  @sourceFileInfo[0])
@@ -748,7 +748,7 @@ EOT
748
748
  Normally, columns with calculated values take the specified report period into
749
749
  account when calculating their values. With this attribute, the user can
750
750
  specify an end date for the period that should be used when calculating the
751
- values of this column. It does not have an impact on column with time
751
+ values of this column. It does not have an impact on columns with time
752
752
  invariant values.
753
753
  EOT
754
754
  )
@@ -781,7 +781,7 @@ EOT
781
781
  @column.listItem = @val[1]
782
782
  })
783
783
  doc('listitem.column', <<'EOT'
784
- Specifies a RichText pattern that is used to generate the text for the list
784
+ Specifies a [[Rich_Text_Attributes|Rich Text]] pattern that is used to generate the text for the list
785
785
  items. The pattern should contain at least one ''''<nowiki><</nowiki>-query
786
786
  attribute='XXX'->'''' element that will be replaced with the value of
787
787
  attribute XXX. For the replacement, the property of the query will be the list
@@ -824,7 +824,7 @@ EOT
824
824
  Normally, columns with calculated values take the specified report period into
825
825
  account when calculating their values. With this attribute, the user can
826
826
  specify a start date for the period that should be used when calculating the
827
- values of this column. It does not have an impact on column with time
827
+ values of this column. It does not have an impact on columns with time
828
828
  invariant values.
829
829
  EOT
830
830
  )
@@ -930,19 +930,19 @@ are set to 0. ''''TIMEZONE'''' must be an offset to GMT or UTC, specified as
930
930
  ''''+HHMM'''' or ''''-HHMM''''. Dates must always be aligned with the
931
931
  [[timingresolution]].
932
932
 
933
- TaskJuggler also supports simple date calculations. You can add or substract a
933
+ TaskJuggler also supports simple date calculations. You can add or subtract a
934
934
  given interval from a fixed date.
935
935
 
936
936
  %{2009-11-01 + 8m}
937
937
 
938
- This will result in an actual date of around 2009-07-01. Keep in mind that due
938
+ This will result in an actual date of around 2010-07-01. Keep in mind that due
939
939
  to the varying lengths of months TaskJuggler cannot add exactly 8 calendar
940
940
  months. The date calculation functionality makes most sense when used with
941
941
  macros.
942
942
 
943
943
  %{${now} - 2w}
944
944
 
945
- This is result in a date 2 weeks earlier than the current (or specified) date.
945
+ This results in a date 2 weeks earlier than the current (or specified) date.
946
946
  See [[duration]] for a complete list of supported time intervals. Don't forget
947
947
  to put at least one space character after the date to prevent TaskJuggler from
948
948
  interpreting the interval as an hour.
@@ -1065,11 +1065,11 @@ EOT
1065
1065
  @property.set('definitions', @val[1])
1066
1066
  })
1067
1067
  doc('definitions', <<"EOT"
1068
- This attributes controls what definitions will be contained in the report. If
1068
+ This attribute controls what definitions will be contained in the report. If
1069
1069
  the list includes ''project'', the generated file will have a ''''.tjp''''
1070
1070
  extension. Otherwise it will have a ''''.tji'''' extension.
1071
1071
 
1072
- By default, the report contains everything and the generated files has a ''''.tjp'''' extension.
1072
+ By default, the report contains everything and the generated files have a ''''.tjp'''' extension.
1073
1073
  EOT
1074
1074
  )
1075
1075
  allOrNothingListRule('exportDefinitions',
@@ -1188,13 +1188,13 @@ EOT
1188
1188
  descr(<<'EOT'
1189
1189
  Export of the scheduled project in Microsoft Project XML format. This will
1190
1190
  export the data of the fully scheduled project. The exported data include the
1191
- tasks, resources and the assignments of resources to task. This is only a
1191
+ tasks, resources and the assignments of resources to tasks. This is only a
1192
1192
  small subset of the data that TaskJuggler can manage. This export is intended
1193
1193
  to share resource assignment data with other teams using Microsoft Project.
1194
- TaskJuggler manages assignments with a larger accuracy than the Microsft
1194
+ TaskJuggler manages assignments with a larger accuracy than the Microsoft
1195
1195
  Project XML format can represent. This will inevitably lead to some rounding
1196
1196
  errors and different interpretation of the data. The numbers you will see in
1197
- Project are not necessarily an exact match of the numbers you see in
1197
+ Microsoft Project are not necessarily an exact match of the numbers you see in
1198
1198
  TaskJuggler. The XML file format requires the sequence of the tasks in the
1199
1199
  file to follow the work breakdown structure. Hence all user provided sorting
1200
1200
  directions will be ignored for this format.
@@ -1385,7 +1385,7 @@ EOT
1385
1385
 
1386
1386
  singlePattern('_inherit')
1387
1387
  doc('inherit.extend', <<'EOT'
1388
- If the this attribute is used, the property extension will be inherited by
1388
+ If this attribute is used, the property extension will be inherited by
1389
1389
  child properties from their parent property.
1390
1390
  EOT
1391
1391
  )
@@ -1457,7 +1457,7 @@ A logical flag expression is a combination of operands and mathematical
1457
1457
  operations. The final result of a logical expression is always true or false.
1458
1458
  Logical expressions are used the reduce the properties in a report to a
1459
1459
  certain subset or to select alternatives for the cell content of a table. When
1460
- used with attributes like [[hidejournalentry]] the logical expression
1460
+ the logical expression is used with attributes like [[hidejournalentry]] and
1461
1461
  evaluates to true for a certain property, this property is hidden or rolled-up
1462
1462
  in the report.
1463
1463
 
@@ -1507,7 +1507,7 @@ EOT
1507
1507
  })
1508
1508
  arg(0, 'operand', <<'EOT'
1509
1509
  An operand is a declared flag. An operand can be a negated operand by
1510
- prefixing a ~ charater or it can be another logical expression enclosed in
1510
+ prefixing a ~ character or it can be another logical expression enclosed in
1511
1511
  braces.
1512
1512
  EOT
1513
1513
  )
@@ -1527,7 +1527,7 @@ EOT
1527
1527
  })
1528
1528
  arg(1, 'operand', <<'EOT'
1529
1529
  An operand is a declared flag. An operand can be a negated operand by
1530
- prefixing a ~ charater or it can be another logical expression enclosed in
1530
+ prefixing a ~ character or it can be another logical expression enclosed in
1531
1531
  braces.
1532
1532
  EOT
1533
1533
  )
@@ -1582,18 +1582,18 @@ the evaluation, implicit and explicit parameters are used.
1582
1582
 
1583
1583
  All functions may operate on the current property and the scope property. The
1584
1584
  scope property is the enclosing property in reports with nested properties.
1585
- Imagine e. g a task report with nested resources. When the function is called
1585
+ Imagine e. g. a task report with nested resources. When the function is called
1586
1586
  for a task line, the task is the property and we don't have a scope property.
1587
1587
  When the function is called for a resource line, the resource is the property
1588
1588
  and the enclosing task is the scope property.
1589
1589
 
1590
- These number of arguments that are passed in brackets to the function depends
1590
+ The number of arguments that are passed in brackets to the function depends
1591
1591
  on the specific function. See the reference for details on each function.
1592
1592
 
1593
1593
  All functions can be suffixed with an underscore character. In that case, the
1594
1594
  function is operating on the scope property as if it were the property. The
1595
1595
  original property is ignored in that case. In our task report example from
1596
- above, calling a function with an appended dash would mean that a task
1596
+ above, calling a function with an appended underscore would mean that a task
1597
1597
  line would be evaluated for the enclosing resource.
1598
1598
 
1599
1599
  In the example below you can see how this can be used. To generate a task
@@ -1684,7 +1684,7 @@ EOT
1684
1684
 
1685
1685
  pattern(%w( _isongoing _( $ID _) ))
1686
1686
  doc('isongoing', <<'EOT'
1687
- Will evaluate to true for tasks that overlap with the report period in given
1687
+ Will evaluate to true for tasks that overlap with the report period in the given
1688
1688
  scenario.
1689
1689
  EOT
1690
1690
  )
@@ -1825,6 +1825,11 @@ EOT
1825
1825
  pattern(%w( !reportStart ))
1826
1826
  pattern(%w( !rollupresource ))
1827
1827
  pattern(%w( !rolluptask ))
1828
+ pattern(%w( _novevents), lambda { @property.set('novevents', [ true ]) })
1829
+ doc('novevents', <<'EOT'
1830
+ Don't add VEVENT entries to generated [[icalreport]]s.
1831
+ EOT
1832
+ )
1828
1833
 
1829
1834
  pattern(%w( _scenario !scenarioId ), lambda {
1830
1835
  # Don't include disabled scenarios in the report
@@ -1837,8 +1842,8 @@ EOT
1837
1842
  end
1838
1843
  })
1839
1844
  doc('scenario.ical', <<'EOT'
1840
- Id of the scenario that should be included in the report. By default, the
1841
- top-level scenario will be included. This attribute can be used select another
1845
+ ID of the scenario that should be included in the report. By default, the
1846
+ top-level scenario will be included. This attribute can be used to select another
1842
1847
  scenario.
1843
1848
  EOT
1844
1849
  )
@@ -1863,6 +1868,8 @@ EOT
1863
1868
  # Show all journal entries.
1864
1869
  @property.set('hideJournalEntry',
1865
1870
  LogicalExpression.new(LogicalOperation.new(0)))
1871
+ # Add VEVENT entries to icalreports by default
1872
+ @property.set('novevents', [ false ])
1866
1873
  end
1867
1874
  })
1868
1875
  arg(1, 'file name', <<'EOT'
@@ -2021,7 +2028,7 @@ dates without a time specification! Date specifications are 0 extended. An
2021
2028
  end date without a time is expanded to midnight that day. So the day of the
2022
2029
  end date is not included in the interval! The start and end dates must be separated by a hyphen character.
2023
2030
 
2024
- In the second form specifies the start date and an interval duration. The
2031
+ The second form specifies the start date and an interval duration. The
2025
2032
  duration must be prefixed by a plus character.
2026
2033
  EOT
2027
2034
  )
@@ -2161,7 +2168,7 @@ EOT
2161
2168
  pattern(%w( _alerts_dep ), lambda { :alerts_dep })
2162
2169
  descr(<<'EOT'
2163
2170
  In this mode only the last entries before the report end date for the context
2164
- property and all its sub-properties and their dependencies is included. If
2171
+ property and all its sub-properties and their dependencies are included. If
2165
2172
  there are multiple entries at the exact same date, then all these entries are
2166
2173
  included. In contrast to the ''''status_down'''' mode, only entries with an
2167
2174
  alert level above the default level, and only those with the highest overall
@@ -2190,7 +2197,7 @@ used to record events, decisions or news that happened at a particular moment
2190
2197
  during the project. Depending on the context, a journal entry may or may not
2191
2198
  be associated with a specific property or author.
2192
2199
 
2193
- A journal entry can consists of up to three parts. The headline is mandatory
2200
+ A journal entry can consist of up to three parts. The headline is mandatory
2194
2201
  and should be only 5 to 10 words long. The introduction is optional and should
2195
2202
  be only one or two sentences long. All other details should be put into the
2196
2203
  third part.
@@ -2209,7 +2216,7 @@ EOT
2209
2216
  @journalEntry.alertLevel = @val[1]
2210
2217
  })
2211
2218
  doc('alert', <<'EOT'
2212
- Specify the alert level for this entry. This attribute is inteded to be used for
2219
+ Specify the alert level for this entry. This attribute is intended to be used for
2213
2220
  status reporting. When used for a journal entry that is associated with a
2214
2221
  property, the value can be reported in the alert column. When multiple entries
2215
2222
  have been specified for the property, the entry with the date closest to the
@@ -2330,7 +2337,7 @@ allowances. The ''''leaveallowancebalance'''' report [[columns|column]] can be
2330
2337
  used to report the current annual leave balance.
2331
2338
 
2332
2339
  Leaves outside of the project period are silently ignored and will not be
2333
- considered in the leave balance calculation. Therefor, leave allowances are
2340
+ considered in the leave balance calculation. Therefore, leave allowances are
2334
2341
  only allowed within the project period.
2335
2342
  EOT
2336
2343
  )
@@ -2352,7 +2359,7 @@ Leaves can be defined at global level, at resource level and at shift level
2352
2359
  and intervals may overlap. The leave types have different priorities. A higher
2353
2360
  priority leave type can overwrite a lower priority type. This means that
2354
2361
  resource level leaves can overwrite global leaves when they have a higher
2355
- priority. A sub resource can overwrite a leave of a enclosing resource.
2362
+ priority. A sub resource can overwrite a leave of an enclosing resource.
2356
2363
 
2357
2364
  Leave periods outside of the project interval are silently ignored. For leave
2358
2365
  periods that are partially outside of the project period only the part inside
@@ -2469,7 +2476,7 @@ EOT
2469
2476
  doc('dailymin', <<'EOT'
2470
2477
  Minimum required effort for any calendar day. This value cannot be guaranteed by
2471
2478
  the scheduler. It is only checked after the schedule is complete. In case the
2472
- minium required amount has not been reached, a warning will be generated.
2479
+ minimum required amount has not been reached, a warning will be generated.
2473
2480
  EOT
2474
2481
  )
2475
2482
  example('Limits-1', '4')
@@ -2506,7 +2513,7 @@ EOT
2506
2513
  doc('monthlymin', <<'EOT'
2507
2514
  Minimum required effort for any calendar month. This value cannot be
2508
2515
  guaranteed by the scheduler. It is only checked after the schedule is
2509
- complete. In case the minium required amount has not been reached, a warning
2516
+ complete. In case the minimum required amount has not been reached, a warning
2510
2517
  will be generated.
2511
2518
  EOT
2512
2519
  )
@@ -2525,7 +2532,7 @@ EOT
2525
2532
  doc('weeklymin', <<'EOT'
2526
2533
  Minimum required effort for any calendar week. This value cannot be guaranteed by
2527
2534
  the scheduler. It is only checked after the schedule is complete. In case the
2528
- minium required amount has not been reached, a warning will be generated.
2535
+ minimum required amount has not been reached, a warning will be generated.
2529
2536
  EOT
2530
2537
  )
2531
2538
  end
@@ -2632,8 +2639,8 @@ EOT
2632
2639
  A logical expression is a combination of operands and mathematical operations.
2633
2640
  The final result of a logical expression is always true or false. Logical
2634
2641
  expressions are used the reduce the properties in a report to a certain subset
2635
- or to select alternatives for the cell content of a table. When used with
2636
- attributes like [[hidetask]] or [[hideresource]] the logical expression
2642
+ or to select alternatives for the cell content of a table. When the
2643
+ logical expression is used with attributes like [[hidetask]] or [[hideresource]] and
2637
2644
  evaluates to true for a certain property, this property is hidden or rolled-up
2638
2645
  in the report.
2639
2646
 
@@ -2655,7 +2662,7 @@ be undefined. To use such an attribute in a comparison, you need to test for
2655
2662
  the validity first. E. g. to compare the end date of the ''''plan''''
2656
2663
  scenario with the ''''maxend'''' value use ''''isvalid(plan.maxend) &
2657
2664
  (plan.end > plan.maxend)''''. The ''''&'''' and ''''|'''' operators are lazy.
2658
- If the result is already known after evaluation the first operand, the second
2665
+ If the result is already known after evaluation of the first operand, the second
2659
2666
  operand will not be evaluated any more.
2660
2667
  EOT
2661
2668
  )
@@ -2690,9 +2697,9 @@ numbers as names. The number specifies the index of the argument.
2690
2697
  will expand to ''''This stupid text'''' if called as ''''${FOO "stupid"}''''.
2691
2698
  Macros may call other macros. All macro arguments must be enclosed by double
2692
2699
  quotes. In case the argument contains a double quote, it must be escaped by a
2693
- slash (''''/'''').
2700
+ backslash (''''\'''').
2694
2701
 
2695
- User defined macro IDs must have at least one uppercase letter as all
2702
+ User defined macro IDs should start with one uppercase letter as all
2696
2703
  lowercase letter IDs are reserved for built-in macros.
2697
2704
 
2698
2705
  To terminate the macro definition, the ''''<nowiki>]</nowiki>'''' must be the
@@ -3018,7 +3025,7 @@ them from flags. See [[columnid]] for a list of available attributes. The use
3018
3025
  of list attributes is not recommended. User defined attributes are available
3019
3026
  as well.
3020
3027
 
3021
- An operand can be a negated operand by prefixing a ~ charater or it can be
3028
+ An operand can be a negated operand by prefixing a ~ character or it can be
3022
3029
  another logical expression enclosed in braces.
3023
3030
  EOT
3024
3031
  )
@@ -3037,7 +3044,7 @@ EOT
3037
3044
  [ @val[0], @val[1] ]
3038
3045
  })
3039
3046
  arg(1, 'operand', <<'EOT'
3040
- An operand can consist of a date, a text string or a numerical value. It can also be the name of a declared flag. Finally, an operand can be a negated operand by prefixing a ~ charater or it can be another operation enclosed in braces.
3047
+ An operand can consist of a date, a text string or a numerical value. It can also be the name of a declared flag. Finally, an operand can be a negated operand by prefixing a ~ character or it can be another operation enclosed in braces.
3041
3048
  EOT
3042
3049
  )
3043
3050
  end
@@ -3075,7 +3082,7 @@ EOT
3075
3082
  })
3076
3083
  arg(0, 'id', <<"EOT"
3077
3084
  An optional ID. If you ever want to reference this property, you must specify
3078
- your own unique ID. If no ID is specified one will be automatically generated.
3085
+ your own unique ID. If no ID is specified, one will be automatically generated.
3079
3086
  These IDs may become visible in reports, but may change at any time. You may
3080
3087
  never rely on automatically generated IDs.
3081
3088
  EOT
@@ -3140,7 +3147,7 @@ EOT
3140
3147
  pattern(%w( _niku ), lambda {
3141
3148
  :niku
3142
3149
  })
3143
- descr('Generate a XOG XML file to be used with Clarity.')
3150
+ descr('Generate an XOG XML file to be used with Clarity.')
3144
3151
  end
3145
3152
 
3146
3153
  def rule_outputFormats
@@ -3238,7 +3245,7 @@ EOT
3238
3245
  doc('extend', <<'EOT'
3239
3246
  Often it is desirable to collect more information in the project file than is
3240
3247
  necessary for task scheduling and resource allocation. To add such information
3241
- to tasks, resources or accounts the user can extend these properties with
3248
+ to tasks, resources or accounts, the user can extend these properties with
3242
3249
  user-defined attributes. The new attributes can be of various types such as
3243
3250
  text, date or reference to capture various types of data. Optionally the user
3244
3251
  can specify if the attribute value should be inherited from the enclosing
@@ -3267,6 +3274,21 @@ EOT
3267
3274
  arg(1, 'date', 'Alternative date to be used as current date for all ' +
3268
3275
  'computations')
3269
3276
 
3277
+ pattern(%w( _markdate !date ), lambda {
3278
+ @project['markdate'] = @val[1]
3279
+ @scanner.addMacro(TextParser::Macro.new('markdate', @val[1].to_s,
3280
+ @sourceFileInfo[0]))
3281
+ @scanner.addMacro(TextParser::Macro.new(
3282
+ 'today', @val[1].to_s(@project['timeFormat']), @sourceFileInfo[0]))
3283
+ })
3284
+ doc('markdate', <<'EOT'
3285
+ Specify the reference date that TaskJuggler uses as date that can be specified
3286
+ and set by the user. It can be used as additional point in time to help with
3287
+ tracking tasks. If no value is specified, the current value of the system clock is used.
3288
+ EOT
3289
+ )
3290
+ arg(1, 'date', 'Alternative date to be used as custom date specified by the user')
3291
+
3270
3292
  pattern(%w( !numberFormat ), lambda {
3271
3293
  @project['numberFormat'] = @val[0]
3272
3294
  })
@@ -3285,8 +3307,8 @@ EOT
3285
3307
  })
3286
3308
  doc('outputdir',
3287
3309
  'Specifies the directory into which the reports should be generated. ' +
3288
- 'This will not affect reports whos name start with a slash. This ' +
3289
- 'setting can be overwritten by the command line option.')
3310
+ 'This will not affect reports whose name start with a slash. This ' +
3311
+ 'setting can be overwritten by the command line option -o or --output-dir.')
3290
3312
  arg(1, 'directory', 'Path to an existing directory')
3291
3313
 
3292
3314
  pattern(%w( !scenario ))
@@ -3294,8 +3316,8 @@ EOT
3294
3316
  @project['shortTimeFormat'] = @val[1]
3295
3317
  })
3296
3318
  doc('shorttimeformat',
3297
- 'Specifies time format for time short specifications. This is normal' +
3298
- 'just the hour and minutes.')
3319
+ 'Specifies time format for short time specifications. This is normal ' +
3320
+ 'just hours and minutes.')
3299
3321
  arg(1, 'format', 'strftime like format string')
3300
3322
 
3301
3323
  pattern(%w( !timeformat ), lambda {
@@ -3352,7 +3374,7 @@ the project. All sub-scenarios of this scenario inherit the bookings of the
3352
3374
  tracking scenario and may not have any bookings of their own. The tracking
3353
3375
  scenario must also be specified to use time and status sheet reports.
3354
3376
 
3355
- The tracking scenario must be defined after all scenario have been defined.
3377
+ The tracking scenario must be defined after all scenarios have been defined.
3356
3378
 
3357
3379
  The tracking scenario and all scenarios derived from it will be scheduled in
3358
3380
  projection mode. This means that the scheduler will only add bookings after
@@ -3472,7 +3494,7 @@ EOT
3472
3494
  # documentation.
3473
3495
  pattern(%w( !projectPropertiesBody ))
3474
3496
  doc('properties', <<'EOT'
3475
- The project properties. Every project must consists of at least one task. The other properties are optional. To save the scheduled data at least one output generating property should be used.
3497
+ The project properties. Every project must consist of at least one task. The other properties are optional. To save the scheduled data at least one output generating property should be used.
3476
3498
  EOT
3477
3499
  )
3478
3500
  end
@@ -3489,7 +3511,7 @@ EOT
3489
3511
  doc('include.project', <<'EOT'
3490
3512
  Includes the specified file name as if its contents would be written
3491
3513
  instead of the include property. When the included files contains other
3492
- include statements or report definitions, the filenames are relative to file
3514
+ include statements or report definitions, the filenames are relative to the file
3493
3515
  where they are defined in.
3494
3516
 
3495
3517
  This version of the include directive may only be used inside the [[project]]
@@ -3506,7 +3528,7 @@ EOT
3506
3528
  Includes the specified file name as if its contents would be written
3507
3529
  instead of the include property. The only exception is the include
3508
3530
  statement itself. When the included files contains other include
3509
- statements or report definitions, the filenames are relative to file
3531
+ statements or report definitions, the filenames are relative to the file
3510
3532
  where they are defined in.
3511
3533
 
3512
3534
  The included file may only contain macro definitions. This version of the
@@ -3667,7 +3689,7 @@ EOT
3667
3689
  Includes the specified file name as if its contents would be written
3668
3690
  instead of the include property. The only exception is the include
3669
3691
  statement itself. When the included files contains other include
3670
- statements or report definitions, the filenames are relative to file
3692
+ statements or report definitions, the filenames are relative to the file
3671
3693
  where they are defined in. include commands can be used in the project
3672
3694
  header, at global scope or between property declarations of tasks,
3673
3695
  resources, and accounts.
@@ -3689,13 +3711,11 @@ EOT
3689
3711
  end
3690
3712
  if attributeDefinition.scenarioSpecific
3691
3713
  @scenarioIdx = 0 unless @val[1]
3692
- attr = @property[attrId, 0]
3693
3714
  else
3694
3715
  if @val[1]
3695
3716
  error('purge_non_sc_spec_attr',
3696
3717
  'Scenario specified for a non-scenario specific attribute')
3697
3718
  end
3698
- attr = @property.get(attrId)
3699
3719
  end
3700
3720
  if @property.attributeDefinition(attrId).scenarioSpecific
3701
3721
  @property.getAttribute(attrId, @scenarioIdx).reset
@@ -3776,6 +3796,13 @@ EOT
3776
3796
  descr(<<'EOT'
3777
3797
  The balance of the annual leave at the end of the reporting interval. The unit
3778
3798
  can be adjusted with [[loadunit]].
3799
+ EOT
3800
+ )
3801
+
3802
+ singlePattern('_annualleavelist')
3803
+ descr(<<'EOT'
3804
+ A list with all annual leave intervals. The list can be customized with the
3805
+ [[listtype.column|listtype]] attribute.
3779
3806
  EOT
3780
3807
  )
3781
3808
 
@@ -3802,7 +3829,7 @@ EOT
3802
3829
  singlePattern('_alerttrend')
3803
3830
  descr(<<'EOT'
3804
3831
  Shows how the alert level at the end of the report period compares to the
3805
- alert level at the begining of the report period. Possible values are
3832
+ alert level at the beginning of the report period. Possible values are
3806
3833
  ''''Up'''', ''''Down'''' or ''''Flat''''.
3807
3834
  EOT
3808
3835
  )
@@ -3839,7 +3866,7 @@ EOT
3839
3866
  singlePattern('_closedtasks')
3840
3867
  descr(<<'EOT'
3841
3868
  The number of sub-tasks (including the current task) that have been closed
3842
- during the reported time period. Closed means that they have and end date
3869
+ during the reported time period. Closed means that they have an end date
3843
3870
  before the current time or [[now]] date.
3844
3871
  EOT
3845
3872
  )
@@ -3860,12 +3887,12 @@ EOT
3860
3887
  singlePattern('_complete')
3861
3888
  descr(<<'EOT'
3862
3889
  The completion degree of a task. Unless a completion degree is manually
3863
- provided, this is a computed value relative the [[now]] date of the project. A
3890
+ provided, this is a computed value relative to the [[now]] date of the project. A
3864
3891
  task that has ended before the now date is always 100% complete. A task that
3865
- starts at or after the now date is always 0%. For [[effort]] based task the
3892
+ starts at or after the now date is always 0%. For [[effort]] based tasks the
3866
3893
  computation degree is the percentage of done effort of the overall effort. For
3867
- other leaf task, the completion degree is the percentage of the already passed
3868
- duration of the overall task duration. For container task, it's always the
3894
+ other leaf tasks, the completion degree is the percentage of the already passed
3895
+ duration of the overall task duration. For container tasks, it's always the
3869
3896
  average of the direct sub tasks. If the sub tasks consist of a mixture of
3870
3897
  effort and non-effort tasks, the completion value is only of limited value.
3871
3898
  EOT
@@ -3879,8 +3906,8 @@ EOT
3879
3906
  descr('Deprecated alias for complete')
3880
3907
 
3881
3908
  singlePattern('_criticalness')
3882
- descr('A measure for how much effort the resource is allocated for, or' +
3883
- 'how strained the allocated resources of a task are')
3909
+ descr('A measure for how much effort the resource is allocated for, or ' +
3910
+ 'how strained the allocated resources of a task are.')
3884
3911
 
3885
3912
  singlePattern('_cost')
3886
3913
  descr(<<'EOT'
@@ -3905,7 +3932,13 @@ EOT
3905
3932
  descr('The duration of a task')
3906
3933
 
3907
3934
  singlePattern('_duties')
3908
- descr('List of tasks that the resource is allocated to')
3935
+ descr(<<'EOT'
3936
+ List of tasks that the resource is allocated to
3937
+
3938
+ The list can be customized by the [[listitem.column|listitem]] and
3939
+ [[listtype.column|listtype]] attribute.
3940
+ EOT
3941
+ )
3909
3942
 
3910
3943
  singlePattern('_efficiency')
3911
3944
  descr('Measure for how efficient a resource can perform tasks')
@@ -3932,7 +3965,7 @@ EOT
3932
3965
  descr(<<'EOT'
3933
3966
  A list of tasks that depend on the current task. The list contains the names,
3934
3967
  the IDs, the date and the type of dependency. For the type the following
3935
- symbols are used for <nowiki><dep></nowiki>.
3968
+ symbols are used for <nowiki><dep></nowiki>:
3936
3969
 
3937
3970
  * '''<nowiki>]->[</nowiki>''': End-to-Start dependency
3938
3971
  * '''<nowiki>[->[</nowiki>''': Start-to-Start dependency
@@ -3941,7 +3974,7 @@ symbols are used for <nowiki><dep></nowiki>.
3941
3974
 
3942
3975
  The list can be customized by the [[listitem.column|listitem]] and
3943
3976
  [[listtype.column]] attributes. The dependency symbol can be generated via
3944
- the ''''dependency'''' attribute inthe query, the target date via the
3977
+ the ''''dependency'''' attribute in the query, the target date via the
3945
3978
  ''''date'''' attribute.
3946
3979
  EOT
3947
3980
  )
@@ -4019,7 +4052,7 @@ EOT
4019
4052
  singlePattern('_journal')
4020
4053
  descr(<<'EOT'
4021
4054
  The journal entries for the task or resource for the reported interval. The
4022
- generated text can be customized with the [[journalmode]],
4055
+ generated text can be customized with [[journalmode]],
4023
4056
  [[journalattributes]], [[hidejournalentry]] and [[sortjournalentries]]. If
4024
4057
  used in queries without a property context, the journal for the complete
4025
4058
  project is generated.
@@ -4080,7 +4113,7 @@ EOT
4080
4113
  singlePattern('_opentasks')
4081
4114
  descr(<<'EOT'
4082
4115
  The number of sub-tasks (including the current task) that have not yet been
4083
- closed during the reported time period. Closed means that they have and end
4116
+ closed during the reported time period. Closed means that they have an end
4084
4117
  date before the current time or [[now]] date.
4085
4118
  EOT
4086
4119
  )
@@ -4102,7 +4135,7 @@ are used
4102
4135
 
4103
4136
  The list can be customized by the [[listitem.column|listitem]] and
4104
4137
  [[listtype.column|listtype]] attributes. The dependency symbol can be
4105
- generated via the ''''dependency'''' attribute inthe query, the target date
4138
+ generated via the ''''dependency'''' attribute in the query, the target date
4106
4139
  via the ''''date'''' attribute.
4107
4140
  EOT
4108
4141
  )
@@ -4364,7 +4397,7 @@ EOT
4364
4397
  })
4365
4398
  doc('height', <<'EOT'
4366
4399
  Set the height of the report in pixels. This attribute is only used for
4367
- reports that cannot determine the height based on the content. Such report can
4400
+ reports that cannot determine the height based on the content. Such reports can
4368
4401
  be freely resized to fit in. The vast majority of reports can determine their
4369
4402
  height based on the provided content. These reports will simply ignore this
4370
4403
  setting.
@@ -4421,7 +4454,7 @@ EOT
4421
4454
  @property.set('rawHtmlHead', @val[1])
4422
4455
  })
4423
4456
  doc('rawhtmlhead', <<'EOT'
4424
- Define a HTML fragment that will be inserted at the end of the HTML head
4457
+ Define an HTML fragment that will be inserted at the end of the HTML head
4425
4458
  section.
4426
4459
  EOT
4427
4460
  )
@@ -4485,7 +4518,7 @@ EOT
4485
4518
  doc('resourceroot', <<'EOT'
4486
4519
  Only resources below the specified root-level resources are exported. The
4487
4520
  exported resources will have the ID of the root-level resource stripped from
4488
- their ID, so that the sub-resourcess of the root-level resource become
4521
+ their ID, so that the sub-resources of the root-level resource become
4489
4522
  top-level resources in the report file.
4490
4523
  EOT
4491
4524
  )
@@ -4534,7 +4567,7 @@ EOT
4534
4567
  })
4535
4568
  doc('width', <<'EOT'
4536
4569
  Set the width of the report in pixels. This attribute is only used for
4537
- reports that cannot determine the width based on the content. Such report can
4570
+ reports that cannot determine the width based on the content. Such reports can
4538
4571
  be freely resized to fit in. The vast majority of reports can determine their
4539
4572
  width based on the provided content. These reports will simply ignore this
4540
4573
  setting.
@@ -4796,9 +4829,9 @@ EOT
4796
4829
  })
4797
4830
  doc('resourcereport', <<'EOT'
4798
4831
  The report lists resources and their respective values in a table. The task
4799
- that are the resources are allocated to can be listed as well. To reduce the
4832
+ that the resources are allocated to can be listed as well. To reduce the
4800
4833
  list of included resources, you can use the [[hideresource]],
4801
- [[rollupresource]] or [[resourceroot]] attributes. The order of the task can
4834
+ [[rollupresource]] or [[resourceroot]] attributes. The order of the tasks can
4802
4835
  be controlled with [[sortresources]]. If the first sorting criteria is tree
4803
4836
  sorting, the parent resources will always be included to form the tree.
4804
4837
  Tree sorting is the default. You need to change it if you do not want certain
@@ -4857,7 +4890,7 @@ it as a crude way to model a team. A team of 5 people should have an
4857
4890
  efficiency of 5.0. Keep in mind that you cannot track the members of the team
4858
4891
  individually if you use this feature. They always act as a group.
4859
4892
 
4860
- The other use is to model performance variations between your resources. Again, this is a fairly crude mechanism and should be used with care. A resource that isn't every good at some task might be pretty good at another. This can't be taken into account as the resource efficiency can only set globally for all tasks.
4893
+ The other use is to model performance variations between your resources. Again, this is a fairly crude mechanism and should be used with care. A resource that isn't very good at some task might be pretty good at another. This can't be taken into account as the resource efficiency can only be set globally for all tasks.
4861
4894
 
4862
4895
  All resources that do not contribute effort to the task, should have an
4863
4896
  efficiency of 0.0. A typical example would be a conference room. It's necessary for a meeting, but it does not contribute any work.
@@ -4874,7 +4907,7 @@ EOT
4874
4907
  pattern(%w( _booking !resourceBooking ))
4875
4908
  doc('booking.resource', <<'EOT'
4876
4909
  The booking attribute can be used to report actually completed work. A task
4877
- with bookings must be [[scheduling|scheduled]] in ''''asap'''' mode. If the
4910
+ with bookings must be [[scheduling|scheduled]] in ''''ASAP'''' mode. If the
4878
4911
  scenario is not the [[trackingscenario|tracking scenario]] or derived from it,
4879
4912
  the scheduler will not allocate resources prior to the current date or the
4880
4913
  date specified with [[now]] when a task has at least one booking.
@@ -4960,7 +4993,7 @@ EOT
4960
4993
  @shiftAssignments = nil
4961
4994
  })
4962
4995
  level(:deprecated)
4963
- also('shift.resource')
4996
+ also('shifts.resource')
4964
4997
  doc('shift.resource', <<'EOT'
4965
4998
  This keyword has been deprecated. Please use [[shifts.resource|shifts
4966
4999
  (resource)]] instead.
@@ -5070,10 +5103,10 @@ that are listed as scenario specific may differ between the various
5070
5103
  scenarios. A nested scenario uses all attributes from the enclosing scenario
5071
5104
  unless the user has specified a different value for this attribute.
5072
5105
 
5073
- By default, the scheduler assigns resources to task beginning with the project
5106
+ By default, the scheduler assigns resources to tasks beginning with the project
5074
5107
  start date. If the scenario is switched to projection mode, no assignments
5075
5108
  will be made prior to the current date or the date specified by [[now]]. In
5076
- this case, TaskJuggler assumes, that all assignements prior to the
5109
+ this case, TaskJuggler assumes, that all assignments prior to the
5077
5110
  current date have been provided by [[booking.task]] statements.
5078
5111
  EOT
5079
5112
  )
@@ -5088,7 +5121,7 @@ EOT
5088
5121
  })
5089
5122
  doc('active', <<'EOT'
5090
5123
  Enable the scenario to be scheduled or not. By default, all scenarios will be
5091
- scheduled. If a scenario is marked as inactive, it not be scheduled and will
5124
+ scheduled. If a scenario is marked as inactive, it cannot be scheduled and will
5092
5125
  be ignored in the reports.
5093
5126
  EOT
5094
5127
  )
@@ -5703,7 +5736,7 @@ EOT
5703
5736
  @property = @propertyStack.pop
5704
5737
  })
5705
5738
  doc('task.statussheet', <<'EOT'
5706
- Opens the task with the specified ID to add a status report. Child task can be
5739
+ Opens the task with the specified ID to add a status report. Child tasks can be
5707
5740
  opened inside this context by specifying their relative ID to this parent.
5708
5741
  EOT
5709
5742
  )
@@ -6043,7 +6076,7 @@ EOT
6043
6076
  )
6044
6077
 
6045
6078
  singlePattern('$ID')
6046
- arg(0, 'ID', 'Just the ID of the task without and parent IDs.')
6079
+ arg(0, 'ID', 'Just the ID of the task without any parent IDs.')
6047
6080
 
6048
6081
  pattern(%w( !relativeId ), lambda {
6049
6082
  task = @property
@@ -6159,7 +6192,7 @@ EOT
6159
6192
  doc('taskreport', <<'EOT'
6160
6193
  The report lists tasks and their respective values in a table. To reduce the
6161
6194
  list of included tasks, you can use the [[hidetask]], [[rolluptask]] or
6162
- [[taskroot]] attributes. The order of the task can be controlled with
6195
+ [[taskroot]] attributes. The order of the tasks can be controlled with
6163
6196
  [[sorttasks]]. If the first sorting criteria is tree sorting, the parent tasks
6164
6197
  will always be included to form the tree. Tree sorting is the default. You
6165
6198
  need to change it if you do not want certain parent tasks to be included in
@@ -6218,7 +6251,7 @@ EOT
6218
6251
  pattern(%w( _booking !taskBooking ))
6219
6252
  doc('booking.task', <<'EOT'
6220
6253
  The booking attribute can be used to report actually completed work. A task
6221
- with bookings must be [[scheduling|scheduled]] in ''''asap'''' mode. If the
6254
+ with bookings must be [[scheduling|scheduled]] in ''''ASAP'''' mode. If the
6222
6255
  scenario is not the [[trackingscenario|tracking scenario]] or derived from it,
6223
6256
  the scheduler will not allocate resources prior to the current date or the
6224
6257
  date specified with [[now]] when a task has at least one booking.
@@ -6321,7 +6354,7 @@ Specifies that the task cannot start before the specified tasks have been
6321
6354
  finished.
6322
6355
 
6323
6356
  By using the 'depends' attribute, the scheduling policy is automatically set
6324
- to asap. If both depends and precedes are used, the last policy counts.
6357
+ to ASAP. If both depends and precedes are used, the last policy counts.
6325
6358
  EOT
6326
6359
  )
6327
6360
  example('Depends1')
@@ -6418,10 +6451,10 @@ EOT
6418
6451
  The end attribute provides a guideline to the scheduler when the task should
6419
6452
  end. It will never end later, but it may end earlier when allocated
6420
6453
  resources are not available that long. When an end date is provided for a
6421
- container task, it will be passed down to ALAP task that don't have a well
6454
+ container task, it will be passed down to ALAP tasks that don't have a well
6422
6455
  defined end criteria.
6423
6456
 
6424
- Setting an end date will implicitely set the scheduling policy for this task
6457
+ Setting an end date will implicitly set the scheduling policy for this task
6425
6458
  to ALAP.
6426
6459
  EOT
6427
6460
  )
@@ -6434,7 +6467,7 @@ EOT
6434
6467
  level(:deprecated)
6435
6468
  doc('endcredit', <<'EOT'
6436
6469
  Specifies an amount that is credited to the accounts specified by the
6437
- [[chargeset]] attributes at the moment the tasks ends.
6470
+ [[chargeset]] attributes at the moment the task ends.
6438
6471
  EOT
6439
6472
  )
6440
6473
  also('charge')
@@ -6466,7 +6499,7 @@ and global working hours are defined accordingly.
6466
6499
  For the length calculation, the global working hours and the global leaves
6467
6500
  matter unless the task has [[shifts.task|shifts]] assigned. In the latter case
6468
6501
  the working hours and leaves of the shift apply for the specified period to
6469
- determine if a slot is working time or not. If a resource has additinal
6502
+ determine if a slot is working time or not. If a resource has additional
6470
6503
  working hours defined, it's quite possible that a task with a length of 5d
6471
6504
  will have an allocated effort larger than 40 hours. Resource working hours
6472
6505
  only have an impact on whether an allocation is made or not for a particular
@@ -6514,7 +6547,7 @@ EOT
6514
6547
  })
6515
6548
  doc('milestone', <<'EOT'
6516
6549
  Turns the task into a special task that has no duration. You may not specify a
6517
- duration, length, effort or subtasks for a milestone task.
6550
+ duration, length, effort or subtask for a milestone task.
6518
6551
 
6519
6552
  A task that only has a start or an end specification and no duration
6520
6553
  specification, inherited start or end dates, no dependencies or sub tasks,
@@ -6551,7 +6584,7 @@ EOT
6551
6584
  level(:deprecated)
6552
6585
  doc('startcredit', <<'EOT'
6553
6586
  Specifies an amount that is credited to the account specified by the
6554
- [[chargeset]] attributes at the moment the tasks starts.
6587
+ [[chargeset]] attributes at the moment the task starts.
6555
6588
  EOT
6556
6589
  )
6557
6590
  also('charge')
@@ -6566,14 +6599,14 @@ EOT
6566
6599
  end
6567
6600
  })
6568
6601
  doc('precedes', <<'EOT'
6569
- Specifies that the tasks with the specified IDs cannot start before the task
6602
+ Specifies that the tasks with the specified IDs cannot start before this task
6570
6603
  has been finished. If multiple IDs are specified, they must be separated by
6571
6604
  commas. IDs must be either global or relative. A relative ID starts with a
6572
6605
  number of '!'. Each '!' moves the scope to the parent task. Global IDs do not
6573
6606
  contain '!', but have IDs separated by dots.
6574
6607
 
6575
6608
  By using the 'precedes' attribute, the scheduling policy is automatically set
6576
- to alap. If both depends and precedes are used within a task, the last policy
6609
+ to ALAP. If both depends and precedes are used within a task, the last policy
6577
6610
  counts.
6578
6611
  EOT
6579
6612
  )
@@ -6589,13 +6622,13 @@ EOT
6589
6622
  Specifies the priority of the task. A task with higher priority is more
6590
6623
  likely to get the requested resources. The default priority value of all tasks
6591
6624
  is 500. Don't confuse the priority of a tasks with the importance or urgency
6592
- of a task. It only increases the chances that the tasks gets the requested
6625
+ of a task. It only increases the chances that the task gets the requested
6593
6626
  resources. It does not mean that the task happens earlier, though that is
6594
6627
  usually the effect you will see. It also does not have any effect on tasks
6595
6628
  that don't have any resources assigned (e.g. milestones).
6596
6629
 
6597
- For milestones it will raise or lower the chances that task leading up the
6598
- milestone will get their resources over task with equal priority that compete
6630
+ For milestones, it will raise or lower the chances that tasks leading up the
6631
+ milestone will get their resources over tasks with equal priority that compete
6599
6632
  for the same resources.
6600
6633
 
6601
6634
  This attribute is inherited by subtasks if specified prior to the definition
@@ -6613,12 +6646,12 @@ EOT
6613
6646
  begin
6614
6647
  @property['projectid', @scenarioIdx] = @val[1]
6615
6648
  rescue AttributeOverwrite
6616
- # This attribute always overwrites the implicitely provided ID.
6649
+ # This attribute always overwrites the implicitly provided ID.
6617
6650
  end
6618
6651
  })
6619
6652
  doc('projectid.task', <<'EOT'
6620
- In larger projects it may be desireable to work with different project IDs for
6621
- parts of the project. This attribute assignes a new project ID to this task an
6653
+ In larger projects it may be desirable to work with different project IDs for
6654
+ parts of the project. This attribute assignes a new project ID to this task and
6622
6655
  all subsequently defined sub tasks. The project ID needs to be declared first using [[projectid]] or [[projectids]].
6623
6656
  EOT
6624
6657
  )
@@ -6662,8 +6695,8 @@ EOT
6662
6695
  })
6663
6696
  doc('scheduling', <<'EOT'
6664
6697
  Specifies the scheduling policy for the task. A task can be scheduled from
6665
- start to end (As Soon As Possible, asap) or from end to start (As Late As
6666
- Possible, alap).
6698
+ start to end (As Soon As Possible, ASAP) or from end to start (As Late As
6699
+ Possible, ALAP).
6667
6700
 
6668
6701
  A task can be scheduled from start to end (ASAP mode) when it has a hard
6669
6702
  (start) or soft (depends) criteria for the start time. A task can be scheduled
@@ -6672,21 +6705,21 @@ criteria for the end time.
6672
6705
 
6673
6706
  Some task attributes set the scheduling policy implicitly. This attribute can
6674
6707
  be used to explicitly set the scheduling policy of the task to a certain
6675
- direction. To avoid it being overwritten again by an implicit attribute this
6708
+ direction. To avoid it being overwritten again by an implicit attribute, this
6676
6709
  attribute should always be the last attribute of the task.
6677
6710
 
6678
6711
  A random mixture of ASAP and ALAP tasks can have unexpected side effects on
6679
6712
  the scheduling of the project. It increases significantly the scheduling
6680
6713
  complexity and results in much longer scheduling times. Especially in projects
6681
- with many hundreds of tasks the scheduling time of a project with a mixture of
6682
- ASAP and ALAP times can be 2 to 10 times longer. When the projects contains
6683
- chains of ALAP and ASAP tasks the tasks further down the dependency chain will
6684
- be served much later than other non-chained task even when they have a much
6714
+ with many hundreds of tasks, the scheduling time of a project with a mixture of
6715
+ ASAP and ALAP times can be 2 to 10 times longer. When the project contains
6716
+ chains of ALAP and ASAP tasks, the tasks further down the dependency chain will
6717
+ be served much later than other non-chained tasks, even when they have a much
6685
6718
  higher priority. This can result in situations where high priority tasks do
6686
- not get their resources even though the parallel competing tasks have a much
6719
+ not get their resources, even though the parallel competing tasks have a much
6687
6720
  lower priority.
6688
6721
 
6689
- ALAP tasks may not have [[booking.task|bookings]] since the first booked slot
6722
+ ALAP tasks may not have [[booking.task|bookings]], since the first booked slot
6690
6723
  determines the start date of the task and prevents it from being scheduled
6691
6724
  from end to start.
6692
6725
 
@@ -6745,7 +6778,7 @@ EOT
6745
6778
  Limits the working time for this task during the specified interval
6746
6779
  to the working hours of the given shift. Multiple shifts can be defined, but
6747
6780
  shift intervals may not overlap. This is an additional working time
6748
- restriction ontop of the working hours of the allocated resources. It does not
6781
+ restriction on top of the working hours of the allocated resources. It does not
6749
6782
  replace the resource working hour restrictions. For a resource to be assigned
6750
6783
  to a time slot, both the respective task shift as well as the resource working
6751
6784
  hours must declare the time slot as duty slot.
@@ -6763,10 +6796,10 @@ EOT
6763
6796
  The start attribute provides a guideline to the scheduler when the task should
6764
6797
  start. It will never start earlier, but it may start later when allocated
6765
6798
  resources are not available immediately. When a start date is provided for a
6766
- container task, it will be passed down to ASAP task that don't have a well
6799
+ container task, it will be passed down to ASAP tasks that don't have a well
6767
6800
  defined start criteria.
6768
6801
 
6769
- Setting a start date will implicitely set the scheduling policy for this task
6802
+ Setting a start date will implicitly set the scheduling policy for this task
6770
6803
  to ASAP.
6771
6804
  EOT
6772
6805
  )
@@ -6794,7 +6827,7 @@ EOT
6794
6827
  @property = @property.parent
6795
6828
  })
6796
6829
  doc('textreport', <<'EOT'
6797
- This report consists of 5 RichText sections, a header, a center section with a
6830
+ This report consists of 5 [[Rich_Text_Attributes|Rich Text]] sections, a header, a center section with a
6798
6831
  left and right margin and a footer. The sections may contain the output of
6799
6832
  other defined reports.
6800
6833
  EOT
@@ -6819,7 +6852,7 @@ EOT
6819
6852
  arg(1, 'format', <<'EOT'
6820
6853
  Ordinary characters placed in the format string are copied without
6821
6854
  conversion. Conversion specifiers are introduced by a `%' character, and are
6822
- replaced in s as follows:
6855
+ replaced as follows:
6823
6856
 
6824
6857
  * ''''%a'''' The abbreviated weekday name according to the current locale.
6825
6858
 
@@ -6979,7 +7012,7 @@ The work is booked for the scenario specified by [[trackingscenario]].
6979
7012
 
6980
7013
  The intended use for time sheets is to have all resources report a time sheet
6981
7014
  every day, week or month. All time sheets can be added to the project plan.
6982
- The status information is always used to determin the current status of the
7015
+ The status information is always used to determine the current status of the
6983
7016
  project. The [[work]], [[remaining]] and [[end.timesheet|end]] attributes are
6984
7017
  ignored if there are also [[booking.task|bookings]] for the resource in the
6985
7018
  time sheet period. The non-ignored attributes of the time sheets will be
@@ -7014,7 +7047,7 @@ EOT
7014
7047
  })
7015
7048
  doc('newtask', <<'EOT'
7016
7049
  The keyword can be used to request a new task to the project. If the task ID
7017
- requires further parent task that don't exist yet, these tasks will be
7050
+ requires further parent tasks that don't exist yet, these tasks will be
7018
7051
  requested as well. If the task exists already, an error will be generated. The
7019
7052
  newly requested task can be used immediately to report progress and status
7020
7053
  against it. These tasks will not automatically be added to the project plan.
@@ -7148,14 +7181,14 @@ the [[columns]] attribute. This column set is then repeated for all properties
7148
7181
  that are not hidden by [[hideaccount]], [[hideresource]] and [[hidetask]]. By
7149
7182
  default, all properties are excluded. You must provide at least one of the
7150
7183
  ''''hide...'''' attributes to select the properties you want to have included
7151
- in the report. Please be aware that total number of columns is the product of
7184
+ in the report. Please be aware that the total number of columns is the product of
7152
7185
  attributes defined with [[columns]] times the number of included properties.
7153
- Select you values carefully or you will end up with very large reports.
7186
+ Select your values carefully or you will end up with very large reports.
7154
7187
 
7155
7188
  The column headers can be customized by using the [[title.column|title]]
7156
7189
  attribute. When you include multiple properties, these headers are not unique
7157
- unless you include mini-queries to modify them based on the property they
7158
- colum is represeting. You can use the queries
7190
+ unless you include mini-queries to modify them based on the property the
7191
+ column is representing. You can use the queries
7159
7192
  ''''<nowiki><-id-></nowiki>'''', ''''<nowiki><-name-></nowiki>'''',
7160
7193
  ''''<nowiki><-scenario-></nowiki>'''' and
7161
7194
  ''''<nowiki><-attribute-></nowiki>''''. ''''<nowiki><-id-></nowiki>'''' is
@@ -7170,12 +7203,12 @@ shows the tracked values over time will be generated. The CSV file may contain
7170
7203
  all kinds of values that are being tracked. Report formats that don't support
7171
7204
  a mix of different values will just show the values of the second column.
7172
7205
 
7173
- The values in the CSV files are fixed units and cannot be formated. Effort
7206
+ The values in the CSV files are fixed units and cannot be formatted. Effort
7174
7207
  values are always in resource-days. This allows other software to interpret
7175
7208
  the file without any need for additional context information.
7176
7209
 
7177
7210
  The HTML version generates SVG graphs that are embedded in the HTML page.
7178
- These graphs are only visble if the web browser supports HTML5. This is true
7211
+ These graphs are only visible if the web browser supports HTML5. This is true
7179
7212
  for the latest generation of browsers, but older browsers may not support this
7180
7213
  format.
7181
7214
  EOT
@@ -7187,7 +7220,7 @@ EOT
7187
7220
  pattern(%w( _tracereport !optionalID !reportName ), lambda {
7188
7221
  newReport(@val[1], @val[2], :tracereport, @sourceFileInfo[0]) do
7189
7222
  # The top-level always inherits the global timeFormat setting. This is
7190
- # not desireable in this case, so we ignore this.
7223
+ # not desirable in this case, so we ignore this.
7191
7224
  if (@property.level == 0 && !@property.provided('timeFormat')) ||
7192
7225
  (@property.level > 0 && !@property.modified?('timeFormat'))
7193
7226
  # CSV readers such of Libre-/OpenOffice can't deal with time zones. We
@@ -7370,7 +7403,7 @@ EOT
7370
7403
  })
7371
7404
  doc('end.timesheet', <<'EOT'
7372
7405
  The expected end date for the task. This can only be used for duration based
7373
- task. For effort based task [[remaining]] has to be used.
7406
+ tasks. For effort based tasks [[remaining]] has to be used.
7374
7407
  EOT
7375
7408
  )
7376
7409
  example('TimeSheet1', '5')
@@ -7386,7 +7419,7 @@ EOT
7386
7419
  })
7387
7420
  doc('priority.timesheet', <<'EOT'
7388
7421
  The priority is a value between 1 and 1000. It is used to determine the
7389
- sequence of task when converting [[work]] to [[booking.task|bookings]]. Tasks
7422
+ sequence of tasks when converting [[work]] to [[booking.task|bookings]]. Tasks
7390
7423
  that need to finish earlier in the period should have a high priority, tasks
7391
7424
  that end later in the period should have a low priority. For tasks that don't
7392
7425
  get finished in the reported period the priority should be set to 1.
@@ -7400,7 +7433,7 @@ EOT
7400
7433
  The remaining effort for the task. This value is ignored if there are
7401
7434
  [[booking.task|bookings]] for the resource that overlap with the time sheet
7402
7435
  period. If there are no bookings, the value is compared with the [[effort]]
7403
- specification of the task. If there a mismatch between the accumulated effort
7436
+ specification of the task. If there is a mismatch between the accumulated effort
7404
7437
  specified with bookings, [[work]] and [[remaining]] on one side and the
7405
7438
  specified [[effort]] on the other, a warning is generated.
7406
7439
 
@@ -7416,7 +7449,7 @@ EOT
7416
7449
  @timeSheetRecord.work = @val[1]
7417
7450
  })
7418
7451
  doc('work', <<'EOT'
7419
- The amount of time that the resource has spend with the task during the
7452
+ The amount of time that the resource has spent with the task during the
7420
7453
  reported period. This value is ignored when there are
7421
7454
  [[booking.task|bookings]] for the resource overlapping with the time sheet
7422
7455
  period. If there are no bookings, TaskJuggler will try to convert the work
@@ -7552,7 +7585,7 @@ specifications are 0 extended. An end date without a time is expanded to
7552
7585
  midnight that day. So the day of the end date is not included in the interval!
7553
7586
  The start and end dates must be separated by a hyphen character.
7554
7587
 
7555
- In the second form specifies the start date and an interval duration. The
7588
+ The second form specifies the start date and an interval duration. The
7556
7589
  duration must be prefixed by a plus character.
7557
7590
  EOT
7558
7591
  )
@@ -7572,7 +7605,7 @@ EOT
7572
7605
  doc('warn', <<'EOT'
7573
7606
  The warn attribute adds a [[logicalexpression|logical expression]] to the
7574
7607
  property. The condition described by the logical expression is checked after
7575
- the scheduling and an warning is generated if the condition evaluates to true.
7608
+ the scheduling and a warning is generated if the condition evaluates to true.
7576
7609
  This attribute is primarily intended for testing purposes.
7577
7610
  EOT
7578
7611
  )
@@ -7708,7 +7741,7 @@ EOT
7708
7741
  pattern(%w( !workinghours ))
7709
7742
  doc('workinghours.project', <<'EOT'
7710
7743
  Set the default working hours for all subsequent resource definitions. The
7711
- standard working hours are 9:00am - 12:00am, 1:00pm - 18:00pm, Monday to
7744
+ standard working hours are 9:00am - 12:00am, 1:00pm - 6:00pm, Monday to
7712
7745
  Friday. The working hours specification limits the availability of resources
7713
7746
  to certain time slots of week days.
7714
7747