taskjuggler 0.0.6 → 0.0.7

Sign up to get free protection for your applications and to get access to all the features.
Files changed (545) hide show
  1. data/CHANGELOG +160 -0
  2. data/benchmarks/UTF-8-Strings.rb +58 -0
  3. data/data/css/tjreport.css +7 -2
  4. data/doc/AppConfig.html +10 -4
  5. data/doc/Arguments.html +10 -4
  6. data/doc/CHANGELOG.html +171 -5
  7. data/doc/COPYING.html +10 -4
  8. data/doc/Object.html +11 -107
  9. data/doc/README.html +10 -4
  10. data/doc/RuntimeConfig.html +10 -4
  11. data/doc/String.html +16 -11
  12. data/doc/StringIO.html +10 -4
  13. data/doc/TaskJuggler.html +506 -435
  14. data/doc/TaskJuggler/Account.html +10 -4
  15. data/doc/TaskJuggler/AccountAttribute.html +10 -4
  16. data/doc/TaskJuggler/AccountScenario.html +10 -4
  17. data/doc/TaskJuggler/Allocation.html +69 -60
  18. data/doc/TaskJuggler/AllocationAttribute.html +10 -4
  19. data/doc/TaskJuggler/AttributeBase.html +10 -4
  20. data/doc/TaskJuggler/AttributeDefinition.html +10 -4
  21. data/doc/TaskJuggler/BatchProcessor.html +202 -192
  22. data/doc/TaskJuggler/Booking.html +10 -4
  23. data/doc/TaskJuggler/BookingListAttribute.html +10 -4
  24. data/doc/TaskJuggler/BooleanAttribute.html +10 -4
  25. data/doc/TaskJuggler/CSVFile.html +10 -4
  26. data/doc/TaskJuggler/CellSettingPattern.html +10 -4
  27. data/doc/TaskJuggler/CellSettingPatternList.html +10 -4
  28. data/doc/TaskJuggler/Charge.html +10 -4
  29. data/doc/TaskJuggler/ChargeListAttribute.html +10 -4
  30. data/doc/TaskJuggler/ChargeSet.html +10 -4
  31. data/doc/TaskJuggler/ChargeSetListAttribute.html +10 -4
  32. data/doc/TaskJuggler/ColumnListAttribute.html +10 -4
  33. data/doc/TaskJuggler/ColumnTable.html +10 -4
  34. data/doc/TaskJuggler/Daemon.html +71 -52
  35. data/doc/TaskJuggler/DateAttribute.html +10 -4
  36. data/doc/TaskJuggler/DefinitionListAttribute.html +10 -4
  37. data/doc/TaskJuggler/DependencyListAttribute.html +10 -4
  38. data/doc/TaskJuggler/DurationAttribute.html +10 -4
  39. data/doc/TaskJuggler/{MacroParser.html → FileList.html} +58 -173
  40. data/doc/TaskJuggler/{RichTextException.html → FileRecord.html} +59 -80
  41. data/doc/TaskJuggler/FixnumAttribute.html +10 -4
  42. data/doc/TaskJuggler/FlagListAttribute.html +10 -4
  43. data/doc/TaskJuggler/FloatAttribute.html +10 -4
  44. data/doc/TaskJuggler/FormatListAttribute.html +10 -4
  45. data/doc/TaskJuggler/GanttChart.html +10 -4
  46. data/doc/TaskJuggler/GanttContainer.html +14 -8
  47. data/doc/TaskJuggler/GanttHeader.html +10 -4
  48. data/doc/TaskJuggler/GanttHeaderScaleItem.html +10 -4
  49. data/doc/TaskJuggler/GanttLine.html +29 -24
  50. data/doc/TaskJuggler/GanttLoadStack.html +10 -4
  51. data/doc/TaskJuggler/GanttMilestone.html +10 -4
  52. data/doc/TaskJuggler/GanttRouter.html +10 -4
  53. data/doc/TaskJuggler/GanttTaskBar.html +20 -10
  54. data/doc/TaskJuggler/HTMLDocument.html +10 -4
  55. data/doc/TaskJuggler/HTMLGraphics.html +10 -4
  56. data/doc/TaskJuggler/Interval.html +10 -4
  57. data/doc/TaskJuggler/IntervalListAttribute.html +10 -4
  58. data/doc/TaskJuggler/JobInfo.html +10 -4
  59. data/doc/TaskJuggler/Journal.html +227 -160
  60. data/doc/TaskJuggler/JournalEntry.html +10 -4
  61. data/doc/TaskJuggler/JournalEntryList.html +158 -72
  62. data/doc/TaskJuggler/KeywordArray.html +21 -9
  63. data/doc/TaskJuggler/KeywordDocumentation.html +612 -475
  64. data/doc/TaskJuggler/Limits.html +13 -8
  65. data/doc/TaskJuggler/Limits/Limit.html +10 -4
  66. data/doc/TaskJuggler/LimitsAttribute.html +10 -4
  67. data/doc/TaskJuggler/ListAttributeBase.html +10 -4
  68. data/doc/TaskJuggler/Log.html +10 -4
  69. data/doc/TaskJuggler/LogFile.html +10 -4
  70. data/doc/TaskJuggler/LogicalAttribute.html +10 -4
  71. data/doc/TaskJuggler/LogicalExpression.html +11 -5
  72. data/doc/TaskJuggler/LogicalExpressionAttribute.html +10 -4
  73. data/doc/TaskJuggler/LogicalFlag.html +10 -4
  74. data/doc/TaskJuggler/LogicalFunction.html +132 -124
  75. data/doc/TaskJuggler/LogicalOperation.html +10 -4
  76. data/doc/TaskJuggler/Macro.html +16 -10
  77. data/doc/TaskJuggler/MacroTable.html +44 -38
  78. data/doc/TaskJuggler/ManagerResponsibilities.html +10 -4
  79. data/doc/TaskJuggler/ManagerStatusRecord.html +10 -4
  80. data/doc/TaskJuggler/Message.html +92 -68
  81. data/doc/TaskJuggler/MessageHandler.html +349 -28
  82. data/doc/TaskJuggler/Navigator.html +10 -4
  83. data/doc/TaskJuggler/NavigatorElement.html +10 -4
  84. data/doc/TaskJuggler/NikuProject.html +10 -4
  85. data/doc/TaskJuggler/NikuReport.html +10 -4
  86. data/doc/TaskJuggler/NikuResource.html +10 -4
  87. data/doc/TaskJuggler/NodeListAttribute.html +10 -4
  88. data/doc/TaskJuggler/OnShiftCache.html +10 -4
  89. data/doc/TaskJuggler/ProcessIntercom.html +118 -111
  90. data/doc/TaskJuggler/ProcessIntercomIface.html +75 -22
  91. data/doc/TaskJuggler/Project.html +886 -913
  92. data/doc/TaskJuggler/ProjectBroker.html +442 -331
  93. data/doc/TaskJuggler/ProjectBrokerIface.html +95 -38
  94. data/doc/TaskJuggler/ProjectFileParser.html +320 -317
  95. data/doc/TaskJuggler/ProjectFileScanner.html +336 -339
  96. data/doc/TaskJuggler/ProjectRecord.html +119 -56
  97. data/doc/TaskJuggler/ProjectServer.html +282 -237
  98. data/doc/TaskJuggler/ProjectServerIface.html +45 -39
  99. data/doc/TaskJuggler/PropertyAttribute.html +10 -4
  100. data/doc/TaskJuggler/PropertyList.html +177 -173
  101. data/doc/TaskJuggler/PropertySet.html +11 -5
  102. data/doc/TaskJuggler/PropertyTreeNode.html +194 -191
  103. data/doc/TaskJuggler/Query.html +280 -256
  104. data/doc/TaskJuggler/RTFHandlers.html +10 -4
  105. data/doc/TaskJuggler/RTFNavigator.html +33 -26
  106. data/doc/TaskJuggler/RTFQuery.html +135 -169
  107. data/doc/TaskJuggler/RTFReport.html +63 -56
  108. data/doc/TaskJuggler/RTFReportLink.html +58 -47
  109. data/doc/TaskJuggler/RTFWithQuerySupport.html +666 -0
  110. data/doc/TaskJuggler/RealFormat.html +10 -4
  111. data/doc/TaskJuggler/RealFormatAttribute.html +10 -4
  112. data/doc/TaskJuggler/ReferenceAttribute.html +10 -4
  113. data/doc/TaskJuggler/Report.html +333 -290
  114. data/doc/TaskJuggler/ReportBase.html +182 -174
  115. data/doc/TaskJuggler/ReportContext.html +10 -4
  116. data/doc/TaskJuggler/ReportServer.html +144 -126
  117. data/doc/TaskJuggler/ReportServerIface.html +50 -44
  118. data/doc/TaskJuggler/ReportServerRecord.html +38 -32
  119. data/doc/TaskJuggler/ReportServlet.html +144 -137
  120. data/doc/TaskJuggler/ReportTable.html +10 -4
  121. data/doc/TaskJuggler/ReportTableCell.html +169 -164
  122. data/doc/TaskJuggler/ReportTableColumn.html +10 -4
  123. data/doc/TaskJuggler/ReportTableLegend.html +10 -4
  124. data/doc/TaskJuggler/ReportTableLine.html +10 -4
  125. data/doc/TaskJuggler/Resource.html +121 -115
  126. data/doc/TaskJuggler/ResourceListAttribute.html +10 -4
  127. data/doc/TaskJuggler/ResourceListRE.html +10 -4
  128. data/doc/TaskJuggler/ResourceScenario.html +13 -7
  129. data/doc/TaskJuggler/RichText.html +61 -37
  130. data/doc/TaskJuggler/RichTextAttribute.html +10 -4
  131. data/doc/TaskJuggler/RichTextDocument.html +91 -81
  132. data/doc/TaskJuggler/RichTextElement.html +378 -317
  133. data/doc/TaskJuggler/RichTextFunctionExample.html +10 -4
  134. data/doc/TaskJuggler/RichTextFunctionHandler.html +16 -11
  135. data/doc/TaskJuggler/RichTextImage.html +10 -4
  136. data/doc/TaskJuggler/RichTextIntermediate.html +138 -70
  137. data/doc/TaskJuggler/RichTextParser.html +48 -40
  138. data/doc/TaskJuggler/RichTextScanner.html +328 -906
  139. data/doc/TaskJuggler/RichTextSnip.html +59 -57
  140. data/doc/TaskJuggler/RichTextSyntaxRules.html +458 -369
  141. data/doc/TaskJuggler/Scenario.html +10 -4
  142. data/doc/TaskJuggler/ScenarioData.html +33 -30
  143. data/doc/TaskJuggler/ScenarioListAttribute.html +10 -4
  144. data/doc/TaskJuggler/Scoreboard.html +10 -4
  145. data/doc/TaskJuggler/SheetHandlerBase.html +315 -191
  146. data/doc/TaskJuggler/SheetReceiver.html +334 -313
  147. data/doc/TaskJuggler/SheetSender.html +10 -4
  148. data/doc/TaskJuggler/Shift.html +10 -4
  149. data/doc/TaskJuggler/ShiftAssignment.html +10 -4
  150. data/doc/TaskJuggler/ShiftAssignments.html +10 -4
  151. data/doc/TaskJuggler/ShiftAssignmentsAttribute.html +10 -4
  152. data/doc/TaskJuggler/ShiftScenario.html +10 -4
  153. data/doc/TaskJuggler/SimpleQueryExpander.html +697 -0
  154. data/doc/TaskJuggler/SortListAttribute.html +10 -4
  155. data/doc/TaskJuggler/SourceFileInfo.html +10 -4
  156. data/doc/TaskJuggler/StatusSheetReceiver.html +10 -4
  157. data/doc/TaskJuggler/StatusSheetReport.html +10 -4
  158. data/doc/TaskJuggler/StatusSheetSender.html +10 -4
  159. data/doc/TaskJuggler/StringAttribute.html +10 -4
  160. data/doc/TaskJuggler/SymbolAttribute.html +10 -4
  161. data/doc/TaskJuggler/SyntaxReference.html +260 -230
  162. data/doc/TaskJuggler/TOCEntry.html +99 -42
  163. data/doc/TaskJuggler/TSResourceRecord.html +10 -4
  164. data/doc/TaskJuggler/TSTaskRecord.html +10 -4
  165. data/doc/TaskJuggler/TableColumnDefinition.html +10 -4
  166. data/doc/TaskJuggler/TableOfContents.html +54 -12
  167. data/doc/TaskJuggler/TableReport.html +877 -872
  168. data/doc/TaskJuggler/Task.html +117 -68
  169. data/doc/TaskJuggler/TaskDependency.html +10 -4
  170. data/doc/TaskJuggler/TaskListAttribute.html +10 -4
  171. data/doc/TaskJuggler/TaskListRE.html +10 -4
  172. data/doc/TaskJuggler/TaskScenario.html +1681 -1563
  173. data/doc/TaskJuggler/TextFormatter.html +10 -4
  174. data/doc/TaskJuggler/TextParser.html +567 -534
  175. data/doc/TaskJuggler/TextParser/Pattern.html +128 -118
  176. data/doc/TaskJuggler/TextParser/Rule.html +26 -15
  177. data/doc/TaskJuggler/TextParser/StackElement.html +10 -4
  178. data/doc/TaskJuggler/TextParser/TextParserResultArray.html +22 -16
  179. data/doc/TaskJuggler/TextParser/TokenDoc.html +10 -4
  180. data/doc/TaskJuggler/TextReport.html +15 -6
  181. data/doc/TaskJuggler/TextScanner.html +319 -287
  182. data/doc/TaskJuggler/TextScanner/BufferStreamHandle.html +16 -10
  183. data/doc/TaskJuggler/TextScanner/FileStreamHandle.html +23 -17
  184. data/doc/TaskJuggler/TextScanner/MacroStackEntry.html +17 -11
  185. data/doc/TaskJuggler/TextScanner/StreamHandle.html +102 -96
  186. data/doc/TaskJuggler/TimeSheet.html +138 -175
  187. data/doc/TaskJuggler/TimeSheetReceiver.html +10 -4
  188. data/doc/TaskJuggler/TimeSheetRecord.html +65 -58
  189. data/doc/TaskJuggler/TimeSheetReport.html +47 -42
  190. data/doc/TaskJuggler/TimeSheetSender.html +10 -4
  191. data/doc/TaskJuggler/TimeSheetSummary.html +91 -83
  192. data/doc/TaskJuggler/TimeSheets.html +22 -16
  193. data/doc/TaskJuggler/Tj3AppBase.html +10 -4
  194. data/doc/TaskJuggler/Tj3Client.html +399 -365
  195. data/doc/TaskJuggler/Tj3Daemon.html +107 -94
  196. data/doc/TaskJuggler/Tj3SheetAppBase.html +10 -4
  197. data/doc/TaskJuggler/Tj3SsReceiver.html +10 -4
  198. data/doc/TaskJuggler/Tj3SsSender.html +10 -4
  199. data/doc/TaskJuggler/Tj3TsReceiver.html +10 -4
  200. data/doc/TaskJuggler/Tj3TsSender.html +10 -4
  201. data/doc/TaskJuggler/Tj3TsSummary.html +10 -4
  202. data/doc/TaskJuggler/TjException.html +10 -4
  203. data/doc/TaskJuggler/TjTime.html +145 -140
  204. data/doc/TaskJuggler/TjpExample.html +10 -4
  205. data/doc/TaskJuggler/TjpExportRE.html +122 -118
  206. data/doc/TaskJuggler/TjpSyntaxRules.html +4065 -4052
  207. data/doc/TaskJuggler/URLParameter.html +10 -4
  208. data/doc/TaskJuggler/UserManual.html +162 -155
  209. data/doc/TaskJuggler/VimSyntax.html +1028 -0
  210. data/doc/TaskJuggler/WebServer.html +45 -27
  211. data/doc/TaskJuggler/WorkingHours.html +10 -4
  212. data/doc/TaskJuggler/WorkingHoursAttribute.html +10 -4
  213. data/doc/TaskJuggler/XMLBlob.html +10 -4
  214. data/doc/TaskJuggler/XMLComment.html +10 -4
  215. data/doc/TaskJuggler/XMLDocument.html +10 -4
  216. data/doc/TaskJuggler/XMLElement.html +10 -4
  217. data/doc/TaskJuggler/XMLNamedText.html +10 -4
  218. data/doc/TaskJuggler/XMLText.html +10 -4
  219. data/doc/index.html +735 -677
  220. data/doc/lib/AccountScenario_rb.html +1 -1
  221. data/doc/lib/Account_rb.html +1 -1
  222. data/doc/lib/Allocation_rb.html +1 -1
  223. data/doc/lib/AppConfig_rb.html +1 -1
  224. data/doc/lib/AttributeBase_rb.html +1 -1
  225. data/doc/lib/AttributeDefinition_rb.html +1 -1
  226. data/doc/lib/Attributes_rb.html +1 -1
  227. data/doc/lib/BatchProcessor_rb.html +1 -1
  228. data/doc/lib/Booking_rb.html +1 -1
  229. data/doc/lib/ChargeSet_rb.html +1 -1
  230. data/doc/lib/Charge_rb.html +1 -1
  231. data/doc/lib/{Message_rb.html → FileList_rb.html} +3 -5
  232. data/doc/lib/HTMLDocument_rb.html +1 -1
  233. data/doc/lib/Interval_rb.html +1 -1
  234. data/doc/lib/Journal_rb.html +1 -1
  235. data/doc/lib/KeywordArray_rb.html +1 -1
  236. data/doc/lib/KeywordDocumentation_rb.html +1 -1
  237. data/doc/lib/Limits_rb.html +1 -1
  238. data/doc/lib/LogFile_rb.html +1 -1
  239. data/doc/lib/Log_rb.html +1 -1
  240. data/doc/lib/LogicalExpression_rb.html +1 -1
  241. data/doc/lib/LogicalFunction_rb.html +1 -1
  242. data/doc/lib/LogicalOperation_rb.html +1 -1
  243. data/doc/lib/MacroTable_rb.html +1 -3
  244. data/doc/lib/MessageHandler_rb.html +1 -1
  245. data/doc/lib/ProjectFileParser_rb.html +1 -1
  246. data/doc/lib/ProjectFileScanner_rb.html +1 -1
  247. data/doc/lib/Project_rb.html +4 -2
  248. data/doc/lib/PropertyList_rb.html +1 -1
  249. data/doc/lib/PropertySet_rb.html +1 -1
  250. data/doc/lib/PropertyTreeNode_rb.html +1 -1
  251. data/doc/lib/Query_rb.html +1 -1
  252. data/doc/lib/RTFHandlers_rb.html +1 -1
  253. data/doc/lib/RTFNavigator_rb.html +1 -1
  254. data/doc/lib/RTFQuery_rb.html +2 -2
  255. data/doc/lib/RTFReportLink_rb.html +4 -2
  256. data/doc/lib/RTFReport_rb.html +1 -1
  257. data/doc/lib/{MacroParser_rb.html → RTFWithQuerySupport_rb.html} +4 -6
  258. data/doc/lib/RealFormat_rb.html +1 -1
  259. data/doc/lib/ResourceScenario_rb.html +1 -1
  260. data/doc/lib/Resource_rb.html +1 -1
  261. data/doc/lib/RichTextDocument_rb.html +1 -1
  262. data/doc/lib/RichTextElement_rb.html +1 -1
  263. data/doc/lib/RichTextFunctionExample_rb.html +1 -1
  264. data/doc/lib/RichTextFunctionHandler_rb.html +1 -1
  265. data/doc/lib/RichTextParser_rb.html +1 -1
  266. data/doc/lib/RichTextScanner_rb.html +3 -1
  267. data/doc/lib/RichTextSnip_rb.html +1 -1
  268. data/doc/lib/RichTextSyntaxRules_rb.html +1 -1
  269. data/doc/lib/RichText_rb.html +3 -1
  270. data/doc/lib/RuntimeConfig_rb.html +1 -1
  271. data/doc/lib/ScenarioData_rb.html +2 -2
  272. data/doc/lib/Scenario_rb.html +1 -1
  273. data/doc/lib/Scoreboard_rb.html +1 -1
  274. data/doc/lib/SheetHandlerBase_rb.html +5 -1
  275. data/doc/lib/SheetReceiver_rb.html +3 -1
  276. data/doc/lib/SheetSender_rb.html +1 -1
  277. data/doc/lib/ShiftAssignments_rb.html +1 -1
  278. data/doc/lib/ShiftScenario_rb.html +1 -1
  279. data/doc/lib/Shift_rb.html +1 -1
  280. data/doc/lib/SimpleQueryExpander_rb.html +67 -0
  281. data/doc/lib/SourceFileInfo_rb.html +1 -1
  282. data/doc/lib/StatusSheetReceiver_rb.html +1 -1
  283. data/doc/lib/StatusSheetSender_rb.html +1 -1
  284. data/doc/lib/SyntaxReference_rb.html +1 -1
  285. data/doc/lib/TOCEntry_rb.html +1 -1
  286. data/doc/lib/TableColumnDefinition_rb.html +1 -1
  287. data/doc/lib/TableOfContents_rb.html +1 -1
  288. data/doc/lib/TaskDependency_rb.html +1 -1
  289. data/doc/lib/TaskJuggler_rb.html +1 -1
  290. data/doc/lib/TaskScenario_rb.html +1 -1
  291. data/doc/lib/Task_rb.html +1 -1
  292. data/doc/lib/TextFormatter_rb.html +1 -1
  293. data/doc/lib/TextParser/Pattern_rb.html +1 -1
  294. data/doc/lib/TextParser/Rule_rb.html +1 -1
  295. data/doc/lib/TextParser/StackElement_rb.html +1 -1
  296. data/doc/lib/TextParser/TokenDoc_rb.html +1 -1
  297. data/doc/lib/TextParser_rb.html +3 -1
  298. data/doc/lib/TextScanner_rb.html +1 -3
  299. data/doc/lib/TimeSheetReceiver_rb.html +1 -1
  300. data/doc/lib/TimeSheetSender_rb.html +1 -1
  301. data/doc/lib/TimeSheetSummary_rb.html +1 -1
  302. data/doc/lib/TimeSheets_rb.html +1 -1
  303. data/doc/lib/Tj3AppBase_rb.html +1 -1
  304. data/doc/lib/Tj3Config_rb.html +1 -1
  305. data/doc/lib/Tj3SheetAppBase_rb.html +1 -1
  306. data/doc/lib/TjException_rb.html +1 -1
  307. data/doc/lib/TjTime_rb.html +1 -1
  308. data/doc/lib/TjpExample_rb.html +1 -1
  309. data/doc/lib/TjpSyntaxRules_rb.html +1 -1
  310. data/doc/lib/URLParameter_rb.html +1 -1
  311. data/doc/lib/UTF8String_rb.html +1 -1
  312. data/doc/lib/UserManual_rb.html +1 -1
  313. data/doc/lib/{ruby-signal-bug_rb.html → VimSyntax_rb.html} +17 -4
  314. data/doc/lib/WorkingHours_rb.html +1 -1
  315. data/doc/lib/XMLDocument_rb.html +1 -1
  316. data/doc/lib/XMLElement_rb.html +1 -1
  317. data/doc/lib/daemon/Daemon_rb.html +1 -1
  318. data/doc/lib/daemon/ProcessIntercom_rb.html +1 -1
  319. data/doc/lib/daemon/ProjectBroker_rb.html +1 -1
  320. data/doc/lib/daemon/ProjectServer_rb.html +1 -1
  321. data/doc/lib/daemon/ReportServer_rb.html +1 -3
  322. data/doc/lib/daemon/WebServer_rb.html +1 -1
  323. data/doc/lib/deep_copy_rb.html +1 -1
  324. data/doc/lib/reports/CSVFile_rb.html +1 -1
  325. data/doc/lib/reports/ColumnTable_rb.html +1 -1
  326. data/doc/lib/reports/GanttChart_rb.html +1 -1
  327. data/doc/lib/reports/GanttContainer_rb.html +1 -1
  328. data/doc/lib/reports/GanttHeaderScaleItem_rb.html +1 -1
  329. data/doc/lib/reports/GanttHeader_rb.html +1 -1
  330. data/doc/lib/reports/GanttLine_rb.html +1 -1
  331. data/doc/lib/reports/GanttLoadStack_rb.html +1 -1
  332. data/doc/lib/reports/GanttMilestone_rb.html +1 -1
  333. data/doc/lib/reports/GanttRouter_rb.html +1 -1
  334. data/doc/lib/reports/GanttTaskBar_rb.html +1 -1
  335. data/doc/lib/reports/HTMLGraphics_rb.html +1 -1
  336. data/doc/lib/reports/Navigator_rb.html +1 -1
  337. data/doc/lib/reports/NikuReport_rb.html +1 -1
  338. data/doc/lib/reports/ReportBase_rb.html +1 -1
  339. data/doc/lib/reports/ReportContext_rb.html +1 -1
  340. data/doc/lib/reports/ReportTableCell_rb.html +1 -1
  341. data/doc/lib/reports/ReportTableColumn_rb.html +1 -1
  342. data/doc/lib/reports/ReportTableLegend_rb.html +1 -1
  343. data/doc/lib/reports/ReportTableLine_rb.html +1 -1
  344. data/doc/lib/reports/ReportTable_rb.html +1 -1
  345. data/doc/lib/reports/Report_rb.html +1 -1
  346. data/doc/lib/reports/ResourceListRE_rb.html +1 -1
  347. data/doc/lib/reports/StatusSheetReport_rb.html +1 -1
  348. data/doc/lib/reports/TableReport_rb.html +1 -1
  349. data/doc/lib/reports/TaskListRE_rb.html +1 -1
  350. data/doc/lib/reports/TextReport_rb.html +1 -1
  351. data/doc/lib/reports/TimeSheetReport_rb.html +1 -1
  352. data/doc/lib/reports/TjpExportRE_rb.html +1 -1
  353. data/doc/lib/taskjuggler3_rb.html +1 -1
  354. data/doc/lib/tj3client_rb.html +1 -1
  355. data/doc/lib/tj3d_rb.html +1 -1
  356. data/doc/lib/tj3man_rb.html +1 -1
  357. data/doc/lib/tj3ss_receiver_rb.html +1 -1
  358. data/doc/lib/tj3ss_sender_rb.html +1 -1
  359. data/doc/lib/tj3ts_receiver_rb.html +1 -1
  360. data/doc/lib/tj3ts_sender_rb.html +1 -1
  361. data/doc/lib/tj3ts_summary_rb.html +1 -1
  362. data/lib/Allocation.rb +8 -5
  363. data/lib/BatchProcessor.rb +7 -3
  364. data/lib/FileList.rb +58 -0
  365. data/lib/Journal.rb +73 -33
  366. data/lib/KeywordArray.rb +4 -0
  367. data/lib/KeywordDocumentation.rb +45 -11
  368. data/lib/Limits.rb +0 -1
  369. data/lib/LogicalExpression.rb +1 -1
  370. data/lib/LogicalFunction.rb +14 -12
  371. data/lib/MacroTable.rb +3 -4
  372. data/lib/MessageHandler.rb +136 -7
  373. data/lib/Project.rb +72 -86
  374. data/lib/ProjectFileParser.rb +30 -33
  375. data/lib/ProjectFileScanner.rb +7 -16
  376. data/lib/PropertyList.rb +25 -27
  377. data/lib/PropertySet.rb +1 -1
  378. data/lib/PropertyTreeNode.rb +9 -12
  379. data/lib/Query.rb +5 -4
  380. data/lib/RTFNavigator.rb +2 -1
  381. data/lib/RTFQuery.rb +4 -11
  382. data/lib/RTFReport.rb +2 -1
  383. data/lib/RTFReportLink.rb +10 -4
  384. data/lib/RTFWithQuerySupport.rb +45 -0
  385. data/lib/Resource.rb +20 -20
  386. data/lib/ResourceScenario.rb +3 -3
  387. data/lib/RichText.rb +15 -7
  388. data/lib/RichTextDocument.rb +8 -4
  389. data/lib/RichTextElement.rb +35 -12
  390. data/lib/RichTextFunctionHandler.rb +11 -12
  391. data/lib/RichTextParser.rb +5 -3
  392. data/lib/RichTextScanner.rb +144 -565
  393. data/lib/RichTextSnip.rb +3 -7
  394. data/lib/RichTextSyntaxRules.rb +51 -32
  395. data/lib/ScenarioData.rb +16 -25
  396. data/lib/SheetHandlerBase.rb +59 -2
  397. data/lib/SheetReceiver.rb +36 -18
  398. data/lib/SimpleQueryExpander.rb +58 -0
  399. data/lib/SyntaxReference.rb +9 -5
  400. data/lib/TOCEntry.rb +2 -0
  401. data/lib/TableOfContents.rb +4 -0
  402. data/lib/Task.rb +23 -12
  403. data/lib/TaskJuggler.rb +72 -33
  404. data/lib/TaskScenario.rb +131 -53
  405. data/lib/TextParser.rb +43 -30
  406. data/lib/TextParser/Pattern.rb +17 -13
  407. data/lib/TextParser/Rule.rb +5 -0
  408. data/lib/TextScanner.rb +46 -25
  409. data/lib/TimeSheetSummary.rb +9 -7
  410. data/lib/TimeSheets.rb +14 -23
  411. data/lib/Tj3Config.rb +1 -1
  412. data/lib/TjTime.rb +1 -2
  413. data/lib/TjpSyntaxRules.rb +128 -104
  414. data/lib/UTF8String.rb +0 -1
  415. data/lib/UserManual.rb +5 -4
  416. data/lib/VimSyntax.rb +223 -0
  417. data/lib/daemon/Daemon.rb +9 -0
  418. data/lib/daemon/ProcessIntercom.rb +19 -4
  419. data/lib/daemon/ProjectBroker.rb +149 -68
  420. data/lib/daemon/ProjectServer.rb +119 -79
  421. data/lib/daemon/ReportServer.rb +42 -31
  422. data/lib/daemon/WebServer.rb +21 -2
  423. data/lib/deep_copy.rb +1 -1
  424. data/lib/reports/GanttContainer.rb +2 -2
  425. data/lib/reports/GanttLine.rb +2 -3
  426. data/lib/reports/GanttTaskBar.rb +7 -3
  427. data/lib/reports/Report.rb +62 -57
  428. data/lib/reports/ReportBase.rb +6 -4
  429. data/lib/reports/ReportTableCell.rb +13 -14
  430. data/lib/reports/TableReport.rb +2 -1
  431. data/lib/reports/TextReport.rb +3 -0
  432. data/lib/reports/TimeSheetReport.rb +2 -3
  433. data/lib/reports/TjpExportRE.rb +0 -2
  434. data/lib/tj3client.rb +31 -3
  435. data/lib/tj3d.rb +8 -1
  436. data/manual/Day_To_Day_Juggling +2 -95
  437. data/manual/How_To_Contribute +2 -1
  438. data/manual/Rich_Text_Attributes +37 -3
  439. data/manual/Software +203 -0
  440. data/test/MessageChecker.rb +4 -4
  441. data/test/TestSuite/HTML-Reports/Alerts.html +172 -0
  442. data/test/TestSuite/HTML-Reports/CellText.html +758 -0
  443. data/test/TestSuite/HTML-Reports/ColumnPeriods.html +156 -0
  444. data/test/TestSuite/HTML-Reports/IsOngoing.html +172 -0
  445. data/test/TestSuite/HTML-Reports/LogicalFunctions.html +245 -0
  446. data/test/TestSuite/HTML-Reports/Query.html +31 -0
  447. data/test/TestSuite/HTML-Reports/css/tjmanual.css +14 -0
  448. data/test/TestSuite/HTML-Reports/css/tjreport.css +233 -21
  449. data/test/TestSuite/HTML-Reports/depArrows.html +842 -0
  450. data/test/TestSuite/HTML-Reports/scripts/scripts/wz_tooltip.js +1301 -0
  451. data/test/TestSuite/HTML-Reports/scripts/wz_tooltip.js +20 -20
  452. data/test/TestSuite/ReportGenerator/Correct/Alerts.tjp +48 -0
  453. data/test/TestSuite/ReportGenerator/Correct/Macros.tjp +57 -0
  454. data/test/TestSuite/ReportGenerator/Correct/refs/Alerts-1.csv +386 -0
  455. data/test/TestSuite/ReportGenerator/Correct/refs/Macros-1.csv +6 -0
  456. data/test/TestSuite/ReportGenerator/{Correct → Errors}/css/tjmanual.css +0 -0
  457. data/test/TestSuite/ReportGenerator/{Correct → Errors}/css/tjreport.css +0 -0
  458. data/test/TestSuite/ReportGenerator/{Correct → Errors}/icons/details.png +0 -0
  459. data/test/TestSuite/ReportGenerator/{Correct → Errors}/icons/flag-green.png +0 -0
  460. data/test/TestSuite/ReportGenerator/{Correct → Errors}/icons/flag-red.png +0 -0
  461. data/test/TestSuite/ReportGenerator/{Correct → Errors}/icons/flag-yellow.png +0 -0
  462. data/test/TestSuite/ReportGenerator/{Correct → Errors}/icons/resource.png +0 -0
  463. data/test/TestSuite/ReportGenerator/{Correct → Errors}/icons/resourcegroup.png +0 -0
  464. data/test/TestSuite/ReportGenerator/{Correct → Errors}/icons/task.png +0 -0
  465. data/test/TestSuite/ReportGenerator/{Correct → Errors}/icons/taskgroup.png +0 -0
  466. data/test/TestSuite/ReportGenerator/{Correct → Errors}/icons/trend-down.png +0 -0
  467. data/test/TestSuite/ReportGenerator/{Correct → Errors}/icons/trend-flat.png +0 -0
  468. data/test/TestSuite/ReportGenerator/{Correct → Errors}/icons/trend-up.png +0 -0
  469. data/test/TestSuite/ReportGenerator/Errors/rtp_report_recursion.html +26 -0
  470. data/test/TestSuite/ReportGenerator/{Correct → Errors}/scripts/wz_tooltip.js +0 -0
  471. data/test/TestSuite/Scheduler/Correct/Allocate.html +3210 -0
  472. data/test/TestSuite/Scheduler/Correct/Allocate.tjp +19 -0
  473. data/test/TestSuite/Scheduler/Correct/Container.html +22 -22
  474. data/test/TestSuite/Scheduler/Correct/Limits.html +4964 -0
  475. data/test/TestSuite/Scheduler/Correct/Shift.html +1707 -417
  476. data/test/TestSuite/Scheduler/Correct/Shift2.html +9 -9
  477. data/test/TestSuite/Scheduler/Correct/css/tjreport.css +6 -2
  478. data/test/TestSuite/Scheduler/Errors/css/tjmanual.css +66 -0
  479. data/test/TestSuite/Scheduler/Errors/css/tjreport.css +407 -0
  480. data/test/TestSuite/Scheduler/Errors/icons/details.png +0 -0
  481. data/test/TestSuite/Scheduler/Errors/icons/flag-green.png +0 -0
  482. data/test/TestSuite/Scheduler/Errors/icons/flag-red.png +0 -0
  483. data/test/TestSuite/Scheduler/Errors/icons/flag-yellow.png +0 -0
  484. data/test/TestSuite/Scheduler/Errors/icons/resource.png +0 -0
  485. data/test/TestSuite/Scheduler/Errors/icons/resourcegroup.png +0 -0
  486. data/test/TestSuite/Scheduler/Errors/icons/task.png +0 -0
  487. data/test/TestSuite/Scheduler/Errors/icons/taskgroup.png +0 -0
  488. data/test/TestSuite/Scheduler/Errors/icons/trend-down.png +0 -0
  489. data/test/TestSuite/Scheduler/Errors/icons/trend-flat.png +0 -0
  490. data/test/TestSuite/Scheduler/Errors/icons/trend-up.png +0 -0
  491. data/test/TestSuite/Scheduler/Errors/loop_detected_1.tjp +1 -1
  492. data/test/TestSuite/Scheduler/Errors/loop_detected_10.tjp +1 -1
  493. data/test/TestSuite/Scheduler/Errors/loop_detected_11.tjp +1 -1
  494. data/test/TestSuite/Scheduler/Errors/loop_detected_12.tjp +1 -1
  495. data/test/TestSuite/Scheduler/Errors/loop_detected_13.tjp +1 -1
  496. data/test/TestSuite/Scheduler/Errors/loop_detected_14.tjp +1 -1
  497. data/test/TestSuite/Scheduler/Errors/loop_detected_2.tjp +1 -1
  498. data/test/TestSuite/Scheduler/Errors/loop_detected_3.tjp +1 -1
  499. data/test/TestSuite/Scheduler/Errors/loop_detected_4.tjp +1 -1
  500. data/test/TestSuite/Scheduler/Errors/loop_detected_5.tjp +1 -1
  501. data/test/TestSuite/Scheduler/Errors/loop_detected_6.tjp +1 -1
  502. data/test/TestSuite/Scheduler/Errors/loop_detected_7.tjp +1 -1
  503. data/test/TestSuite/Scheduler/Errors/loop_detected_8.tjp +1 -1
  504. data/test/TestSuite/Scheduler/Errors/loop_detected_9.tjp +1 -1
  505. data/test/TestSuite/Scheduler/Errors/scripts/wz_tooltip.js +1301 -0
  506. data/test/TestSuite/Scheduler/Errors/task_pred_before.tjp +11 -0
  507. data/test/TestSuite/Scheduler/Errors/task_pred_before_gd.tjp +11 -0
  508. data/test/TestSuite/Scheduler/Errors/task_pred_before_gl.tjp +11 -0
  509. data/test/TestSuite/Scheduler/Errors/task_succ_after.tjp +12 -0
  510. data/test/TestSuite/Scheduler/Errors/task_succ_after_gd.tjp +12 -0
  511. data/test/TestSuite/Scheduler/Errors/task_succ_after_gl.tjp +12 -0
  512. data/test/TestSuite/StatusSheets/dev2.tji +22 -0
  513. data/test/TestSuite/StatusSheets/resrep.tji +7 -0
  514. data/test/TestSuite/StatusSheets/run +6 -4
  515. data/test/TestSuite/StatusSheets/tj3d.log +312 -0
  516. data/test/TestSuite/Syntax/Correct/Managers.html +263 -0
  517. data/test/TestSuite/Syntax/Correct/tutorial.tjp +1 -2
  518. data/test/TestSuite/Syntax/Errors/empty.tjp +1 -1
  519. data/test/TestSuite/Syntax/Errors/macro_stack_overflow.tjp +1 -1
  520. data/test/TestSuite/TimeSheets/acceptable_intervals +1 -0
  521. data/test/TestSuite/TimeSheets/resrep.tji +7 -0
  522. data/test/TestSuite/TimeSheets/run +6 -5
  523. data/test/TestSuite/TimeSheets/statussheets.log +1 -0
  524. data/test/TestSuite/TimeSheets/ts.tji +351 -0
  525. data/test/TestSuite/TimeSheets/tsdef.tji +2 -0
  526. data/test/test_PropertySet.rb +2 -2
  527. data/test/test_RichText.rb +178 -387
  528. data/test/test_SimpleQueryExpander.rb +55 -0
  529. data/test/test_deep_copy.rb +2 -2
  530. metadata +854 -834
  531. data/lib/MacroParser.rb +0 -77
  532. data/lib/Message.rb +0 -56
  533. data/lib/ruby-signal-bug.rb +0 -43
  534. data/test/TestSuite/HTML-Reports/TimeSheet.html +0 -79
  535. data/test/TestSuite/HTML-Reports/reference.html +0 -51
  536. data/test/TestSuite/ReportGenerator/Correct/Journal.html +0 -63
  537. data/test/TestSuite/ReportGenerator/Correct/LogicalFunctions2.csv +0 -3
  538. data/test/TestSuite/ReportGenerator/Correct/opennodes.csv +0 -2
  539. data/test/TestSuite/ReportGenerator/Correct/opennodes.tjp +0 -26
  540. data/test/TestSuite/ReportGenerator/Correct/refs/opennodes-1.csv +0 -2
  541. data/test/TestSuite/Scheduler/Correct/Booking2.html +0 -603
  542. data/test/TestSuite/Scheduler/Correct/TimeSheet2.html +0 -108
  543. data/test/TestSuite/StatusSheetTemplates/project.tji +0 -35
  544. data/test/TestSuite/StatusSheetTemplates/project.tjp +0 -56
  545. data/test/TestSuite/Syntax/Correct/ResourcePrefix.html +0 -32
@@ -27,9 +27,10 @@ class TaskJuggler
27
27
  @mandatoryArgs = '[<tjp file> [<tji file> ...] ...]'
28
28
 
29
29
  @log = LogFile.instance
30
- @log.logFile = Dir.getwd + "/#{AppConfig.appName}.log"
30
+ @log.logFile = File.join(Dir.getwd, "/#{AppConfig.appName}.log")
31
31
  @log.appName = AppConfig.appName
32
32
  @daemonize = true
33
+ @uriFile = File.join(Dir.getwd, '.tj3d.uri')
33
34
  @port = nil
34
35
  @webServer = false
35
36
  @webServerPort = nil
@@ -52,6 +53,11 @@ EOT
52
53
  'requests (Default: 8474).')) do |arg|
53
54
  @port = arg
54
55
  end
56
+ @opts.on('--urifile', String,
57
+ format('If the port is 0, use this file to store the URI ' +
58
+ 'of the server.')) do |arg|
59
+ @uriFile = arg
60
+ end
55
61
  @opts.on('-w', '--webserver',
56
62
  format('Start a web server that serves the reports of ' +
57
63
  'the loaded projects.')) do
@@ -76,6 +82,7 @@ EOT
76
82
  # Set some config variables if corresponding data was provided via the
77
83
  # command line.
78
84
  broker.port = @port if @port
85
+ broker.uriFile = @uriFile.untaint
79
86
  broker.enableWebServer = @webServer
80
87
  broker.webServerPort = @webServerPort if @webServerPort
81
88
  broker.projectFiles = sortInputFiles(files) unless files.empty?
@@ -216,101 +216,8 @@ another source code management system and even another operating
216
216
  system like Windows or MacOS. This is all possible, but not the scope
217
217
  of this manual.
218
218
 
219
- ==== The TaskJuggler Server ====
220
-
221
- Depending on the size of your project the scheduling time can take
222
- several minutes or more. Since all operations need to be done on the
223
- data of a scheduled project, it makes sense to have this data readily
224
- available. This is the job of the TaskJuggler server or daemon in
225
- Linux lingo. The program is called ''''tj3d''''. When started, it
226
- automatically disconnects from the terminal and runs in the
227
- background. All interactions with the server are done via the TCP/IP
228
- protocol. For security reasons, only connections from the same
229
- machine (localhost) are accepted. To get access all clients must
230
- provide an authentication key. A TaskJuggler server can serve any
231
- number of projects. Once a project has been loaded successfully,
232
- clients can retrieve the data in form of reports. Projects are
233
- identified by their project ID. If a newly added project has the same
234
- ID such as an already loaded project, the new project will replace
235
- the old project once it was scheduled successfully. Before you start
236
- the server, you need to provide a configuration file with some basic
237
- settings.
238
-
239
- All taskjuggler components can use the same TaskJuggler configuration
240
- file. The format is a simple plain text format that follows the
241
- [http://www.yaml.org/ YAML specification]. The file should be called
242
- ''''.taskjuglerrc'''' or ''''taskjuggler.rc''''. The settings are
243
- structured by sections. Section names always start with an underscore.
244
-
245
- _global:
246
- authKey: topsecret
247
- _log:
248
- logLevel: 3
249
- outputLevel: 3
250
-
251
- This file sets the authentication key for all TaskJuggler components.
252
- You must replace ''topsecret'' with your own random character
253
- sequence.
254
-
255
- For the purpose of this documentation we assume you have a local user
256
- called ''taskjuggler'' and your project data in
257
- ''''/home/taskjuggler/project/prj''''. Your TaskJuggler configuration
258
- should then be put into
259
- ''''/home/taskjuggler/project/prj/.taskjugglerrc''''.
260
-
261
- The log section controls the content of the log file. Since the
262
- daemon does not have a terminal attached to it, all messages are
263
- stored in a file called ''''tj3d.log''''. For debugging purposes, you
264
- can use the ''''-d'''' option to prevent the daemon from
265
- disconnecting from the terminal. In this case the ''''outputLevel''''
266
- configuration option controls the amount of details to be printed out.
267
-
268
- * 0: No output
269
- * 1: Only fatal errors
270
- * 2: Fatal and normal errors
271
- * 3: Like 2, but additionally with information messages
272
- * 4: Like 3, but additionally with debug messages
273
-
274
- The configuration file will be searched in the current directory,
275
- the current user's home directory or ''''/etc''''. You can also
276
- explicitly tell the server where to find the configuration file with
277
- the ''''-c'''' option. See
278
-
279
- tj3d --help
280
-
281
- for details.
282
-
283
- ==== The TaskJuggler Client ====
284
-
285
- To control the TaskJuggler server, you need to use the TaskJuggler
286
- client. You can use the client to add or remove projects from the
287
- server, inquire the status of loaded projects. It can also be used to
288
- show the available reports for each project and to generate report or
289
- check time or status sheets.
290
-
291
- The client must provide the correct authentication key to the server.
292
- You need to ensure that it can find the proper configuration file
293
- with the authentication key.
294
-
295
- tj3client --help
296
-
297
- will provide a full lust of supported commands. To load a project
298
- simply type
299
-
300
- tj3client add yourproject.tjp
301
-
302
- In case there were no errors
303
-
304
- tj3client status
305
-
306
- should now list your project.
307
-
308
- tj3client list-reports <project_id>
309
-
310
- shows a list of available reports for the project with the provided
311
- ID. To generate a report, you can type
312
-
313
- tj3client report <project_id> <report_id>
219
+ To use the tracking system, you need to setup the
220
+ [[Software#tj3d|taskjuggler server]] to serve your project.
314
221
 
315
222
  ==== The Time Sheet Template Sender ====
316
223
 
@@ -32,7 +32,8 @@ Live (or bootable) CD/DVD or use a VmWare Player image of a Linux
32
32
  distribution.
33
33
 
34
34
  Make sure you have followed the steps described in the
35
- [Installation#Installation_Steps_for_Developers] chapter.
35
+ [Installation.html#Installation_Steps_for_Developers Installation
36
+ Steps for Developers] chapter.
36
37
 
37
38
  If you have never used Git before, you need to configure it first. You
38
39
  need to set your name and email address. This information will be
@@ -84,13 +84,23 @@ create the URL.
84
84
 
85
85
  Images can be added with a similar syntax.
86
86
 
87
- [[image.jpg]]
88
- [[image.jpg|alt=An image]]
87
+ [[File:image.jpg]]
88
+ [[File:image.jpg|alt=An image]]
89
89
 
90
90
  This first version will be replaced with the file ''''image.jpg''''
91
91
  when the output format supports this. Otherwise a blank space will be
92
92
  inserted. The second version inserts the text ''''An image'''' if the
93
- output format does not support images.
93
+ output format does not support images. The following image types are
94
+ supported and detected by their file name extensions: ''''.jpg'''',
95
+ ''''.gif'''', ''''.png'''' and ''''.svg''''.
96
+
97
+ The vertical positioning of the embedded file can be controlled with
98
+ additional attributes.
99
+
100
+ [[File:image.svg|text-bottom]]
101
+
102
+ The following attributes are supported: ''''top, middle, bottom,
103
+ baseline, sub, super, text-top, text-bottom''''.
94
104
 
95
105
  In some situations, it is desirable to not interpret certain markup
96
106
  sequences and reproduce the text verbatim. Such text must be enclosed
@@ -147,6 +157,30 @@ Paramters:
147
157
 
148
158
  * ''''id'''' : ID of a defined [[report]]
149
159
 
160
+ * ''''attributes'''': A set of attributes that override the original
161
+ attributes of the referenced report. All [[report|report attributes]]
162
+ are supported. Since the value of attributes already must be enclosed
163
+ by single or double quotes, all single or double quotes contained in
164
+ the string must be escaped with backslashes. This feature enables
165
+ reports with content that is customized based on where they have been
166
+ referenced from. It requires the reports to be dynamically generated
167
+ and is only available when used with the ''''tj3d'''' web server.
168
+ The ''''tj3'''' application will ignore the attributes setting.
169
+
170
+ taskreport "All" {
171
+ formats html
172
+ columns name {
173
+ celltext 1 -8<-
174
+ <-query attribute="name"-> <-reportlink id="taskRep"
175
+ attributes="hidetask plan.id != \"<-id->\""->
176
+ ->8-
177
+ }, start, end
178
+ }
179
+
180
+ taskreport taskRep "Task" {
181
+ formats html
182
+ }
183
+
150
184
  The report link generator inserts a link to the referenced report.
151
185
  ----
152
186
  '''Inline Generator''' ''''query''''
@@ -0,0 +1,203 @@
1
+ == The TaskJuggler Software ==
2
+
3
+ After the installation of a software package the first questions that
4
+ most users have is ''"How do I run it?"''. Many users expect to find
5
+ an icon on their desktop or an entry in the start menu hierarchy.
6
+ Don't bother looking for them, you won't find any for TaskJuggler. As
7
+ we have mentioned before, TaskJuggler is a command line program. All
8
+ the components are started from a shell by typing in the command name.
9
+
10
+ This chapter describes the most important TaskJuggler commands and
11
+ how to use them. If you haven't used command line programs before,
12
+ don't worry - you will quickly get used to it.
13
+
14
+ === ''''tj3'''' ===
15
+
16
+ ''''tj3'''' is the main program that you will probably use the
17
+ most. It reads in your project files and schedules them. In case
18
+ there are no errors, it will also generate all the reports that you
19
+ have defined in your project files. It requires at least one
20
+ parameter, the name of your main project file. In case your main
21
+ project file is called ''''tutorial.tjp'''' you can process it by typing
22
+
23
+ tj3 tutorial.tjp
24
+
25
+ You will see an output similar to the one below.
26
+
27
+ > tj3 tutorial.tjp
28
+ TaskJuggler III v0.0.6 - A Project Management Software
29
+
30
+ Copyright (c) 2006, 2007, 2008, 2009, 2010 by Chris Schlaeger <cs(a)kde.org>
31
+
32
+ This program is free software; you can redistribute it and/or modify it under
33
+ the terms of version 2 of the GNU General Public License as published by the
34
+ Free Software Foundation.
35
+
36
+ Reading file tutorial.tjp [ Done ]
37
+ Preparing scenario Plan [ Done ]
38
+ Scheduling scenario Plan [ Done ]
39
+ Checking scenario Plan [ Done ]
40
+ Preparing scenario Delayed [ Done ]
41
+ Scheduling scenario Delayed [ Done ]
42
+ Checking scenario Delayed [ Done ]
43
+ Report Overview [ Done ]
44
+ Report Status [ Done ]
45
+ Report Development [ Done ]
46
+ Report Deliveries [ Done ]
47
+ Report ContactList [ Done ]
48
+ Report ResourceGraph [ Done ]
49
+
50
+ ''''tj3'''' support a number of runtime options that control the
51
+ behavior. Please use the ''''--help'''' option to get more details.
52
+
53
+ tj3 --help
54
+
55
+ === ''''tj3man'''' ===
56
+
57
+ ''''tj3man'''' provides you with a quick access to the syntax
58
+ reference. If you run it without further parameters it will print a
59
+ list of all syntax keywords. In some cases, keywords can be used in
60
+ different contexts with different meanings. These keywords are listed
61
+ multiple times with the context identifier appended separated by a
62
+ dot. E. g. the ''''shift'''' keyword can be used in the global
63
+ context, in the [[resource]], [[task]] and [[timesheet]] context. It
64
+ will be listed as
65
+
66
+ shift
67
+ shift.resource
68
+ shift.task
69
+ shift.timesheet
70
+
71
+ To get more information about a specific keyword you need to provide
72
+ it as parameter to ''''tj3man''''.
73
+
74
+ tj3man shift.task
75
+
76
+ === ''''tj3d'''' ===
77
+
78
+ ''''tj3d'''' is the TaskJuggler daemon. It is a program that runs
79
+ in the background, disconnected from your shell to provide certain
80
+ services. It can generate reports on demand and sever them as web
81
+ pages to a web browser. It's also used to process incoming time
82
+ sheets.
83
+
84
+ Depending on the size of your project the scheduling time can take
85
+ several minutes or more. Since all operations need to be done on the
86
+ data of a scheduled project, it makes sense to have this data readily
87
+ available. This is the job of the TaskJuggler server or daemon in
88
+ Linux lingo. The program is called ''''tj3d''''. When started, it
89
+ automatically disconnects from the terminal and runs in the
90
+ background. All interactions with the server are done via the TCP/IP
91
+ protocol. For security reasons, only connections from the same
92
+ machine (localhost) are accepted. To get access all clients must
93
+ provide an authentication key. A TaskJuggler server can serve any
94
+ number of projects. Once a project has been loaded successfully,
95
+ clients can retrieve the data in form of reports. Projects are
96
+ identified by their project ID. If a newly added project has the same
97
+ ID such as an already loaded project, the new project will replace
98
+ the old project once it was scheduled successfully. Before you start
99
+ the server, you need to provide a configuration file with some basic
100
+ settings.
101
+
102
+ All taskjuggler components can use the same TaskJuggler configuration
103
+ file. The format is a simple plain text format that follows the
104
+ [http://www.yaml.org/ YAML specification]. The file should be called
105
+ ''''.taskjuglerrc'''' or ''''taskjuggler.rc''''. The settings are
106
+ structured by sections. Section names always start with an underscore.
107
+
108
+ _global:
109
+ authKey: topsecret
110
+ _log:
111
+ logLevel: 3
112
+ outputLevel: 3
113
+
114
+ This file sets the authentication key for all TaskJuggler components.
115
+ You must replace ''topsecret'' with your own random character
116
+ sequence.
117
+
118
+ For the purpose of this documentation we assume you have a local user
119
+ called ''taskjuggler'' and your project data in
120
+ ''''/home/taskjuggler/project/prj''''. Your TaskJuggler configuration
121
+ should then be put into
122
+ ''''/home/taskjuggler/project/prj/.taskjugglerrc''''.
123
+
124
+ The log section controls the content of the log file. Since the
125
+ daemon does not have a terminal attached to it, all messages are
126
+ stored in a file called ''''tj3d.log''''. For debugging purposes, you
127
+ can use the ''''-d'''' option to prevent the daemon from
128
+ disconnecting from the terminal. In this case the ''''outputLevel''''
129
+ configuration option controls the amount of details to be printed out.
130
+
131
+ * 0: No output
132
+ * 1: Only fatal errors
133
+ * 2: Fatal and normal errors
134
+ * 3: Like 2, but additionally with information messages
135
+ * 4: Like 3, but additionally with debug messages
136
+
137
+ The configuration file will be searched in the current directory,
138
+ the current user's home directory or ''''/etc''''. You can also
139
+ explicitly tell the server where to find the configuration file with
140
+ the ''''-c'''' option. See
141
+
142
+ tj3d --help
143
+
144
+ for details.
145
+
146
+ The daemon can also be turned into a web server that serves the HTML
147
+ reports of one or more projects. To enable the web server, start the
148
+ daemon with the ''''-w'''' option. By default, the web server is
149
+ listening on port 8080. This can be changed in the ''''_global''''
150
+ section of the config file.
151
+
152
+ _global:
153
+ authKey: topsecret
154
+ webServerPort: 8080
155
+
156
+ To access the HTML reports point your web browser to
157
+ ''''http://localhost:8080/taskjuggler''''. This assumes that the
158
+ server is running on your local machine. You will then see a list of
159
+ all loaded projects. Click on the project name to get a list of all
160
+ reports for this project.
161
+
162
+ So far, the daemon has not received any kind of security review. We
163
+ strongly advise you to only use the daemon in a trusted environment
164
+ with only trusted users!
165
+
166
+ === ''''tj3client'''' ===
167
+
168
+ To control the TaskJuggler server, you need to use the TaskJuggler
169
+ client. You can use the client to add or remove projects from the
170
+ server, inquire the status of loaded projects. It can also be used to
171
+ show the available reports for each project and to generate report or
172
+ check time or status sheets.
173
+
174
+ The client must provide the correct authentication key to the server.
175
+ You need to ensure that it can find the proper configuration file
176
+ with the authentication key.
177
+
178
+ tj3client --help
179
+
180
+ will provide a full lust of supported commands. To load a project
181
+ simply type
182
+
183
+ tj3client add yourproject.tjp
184
+
185
+ In case there were no errors
186
+
187
+ tj3client status
188
+
189
+ should now list your project.
190
+
191
+ tj3client list-reports <project_id>
192
+
193
+ shows a list of available reports for the project with the provided
194
+ ID. To generate a report, you can type
195
+
196
+ tj3client report <project_id> <report_id>
197
+
198
+ A server that is running can be terminated with the following command.
199
+
200
+ tj3client terminate
201
+
202
+
203
+
@@ -17,9 +17,9 @@ module MessageChecker
17
17
  def checkMessages(tj, file)
18
18
  refMessages = collectMessages(file)
19
19
  tj.messageHandler.messages.each do |message|
20
- assert(ref = refMessages.pop, "Unexpected #{message.level} #{message.id}: #{message}")
21
- assert_equal(ref[0], message.level,
22
- "Error in #{file}: Got #{message.level} instead of #{ref[0]}")
20
+ assert(ref = refMessages.pop, "Unexpected #{message.type.to_s} #{message.id}: #{message}")
21
+ assert_equal(ref[0], message.type.to_s,
22
+ "Error in #{file}: Got #{message.type.to_s} instead of #{ref[0]}")
23
23
  assert_equal(ref[2], message.id,
24
24
  "Error in #{file}: Got #{message.id} instead of #{ref[2]}")
25
25
  if message.sourceFileInfo
@@ -34,7 +34,7 @@ module MessageChecker
34
34
 
35
35
  # All files that generate messages have comments in them that specify the
36
36
  # expected messages. The comments have the following form:
37
- # MARK: <level> <lineNo> <message Id>
37
+ # MARK: <type> <lineNo> <message Id>
38
38
  # We collect all these reference messages to compare them with the
39
39
  # generated messages after the test has been run.
40
40
  def collectMessages(file)
@@ -0,0 +1,172 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
+ <!-- This file has been generated by taskjuggler3 v0.0.3-->
4
+ <html lang="en" xml:lang="en" xmlns="http://www.w3.org/1999/xhtml">
5
+ <head>
6
+ <title>TaskJuggler Report - Alerts</title>
7
+ <link href="css/tjreport.css" rel="stylesheet" type="text/css"/>
8
+ </head>
9
+ <body>
10
+ <script src="scripts/wz_tooltip.js" type="text/javascript"></script>
11
+ <noscript><div style="text-align:center; color:#FF0000">This page requires Javascript for full functionality. Please enable it
12
+ in your browser settings!
13
+ </div></noscript>
14
+ <div style="margin: 35px 5% 25px 5%; ">
15
+ <table align="center" border="0" cellpadding="0" cellspacing="2" class="tjtable" summary="Report Table"><tbody>
16
+ <tr><td><table align="center" cellpadding="2" cellspacing="1" class="tabback" width="100%"><tbody>
17
+ <tr class="tabhead" style="height:19px; font-size:15px;">
18
+ <td class="tabcell" rowspan="2"><div class="headercelldiv" style="text-align:center; padding-left:5px; padding-right:5px; font-weight:bold; ">Name</div></td>
19
+ <td class="tabcell" rowspan="2"><div class="headercelldiv" style="text-align:center; padding-left:5px; padding-right:5px; font-weight:bold; ">Alert</div></td>
20
+ </tr>
21
+ <tr class="tabhead" style="height:19px; font-size:15px;"/>
22
+ <tr class="tabline" style="font-size:12px; ">
23
+ <td class="taskcell1"><div class="celldiv" style="text-align:left; ">
24
+ <img align="top" src="icons/task.png" style="margin-right:3px;margin-bottom:2px"/>Red</div></td>
25
+ <td class="taskcell1"><div class="celldiv" style="text-align:left; color:#C00000; ">
26
+ <img align="top" src="icons/flag-red.png" style="margin-right:3px;margin-bottom:2px"/>Red</div></td>
27
+ </tr>
28
+ <tr class="tabline" style="font-size:12px; ">
29
+ <td class="taskcell2"><div class="celldiv" style="text-align:left; ">
30
+ <img align="top" src="icons/taskgroup.png" style="margin-right:3px;margin-bottom:2px"/>Inherit Red</div></td>
31
+ <td class="taskcell2"><div class="celldiv" style="text-align:left; color:#C00000; ">
32
+ <img align="top" src="icons/flag-red.png" style="margin-right:3px;margin-bottom:2px"/>Red</div></td>
33
+ </tr>
34
+ <tr class="tabline" style="font-size:12px; ">
35
+ <td class="taskcell1"><div class="celldiv" style="text-align:left; ">
36
+ <img align="top" src="icons/task.png" style="margin-right:3px;margin-bottom:2px"/>Red</div></td>
37
+ <td class="taskcell1"><div class="celldiv" style="text-align:left; color:#C00000; ">
38
+ <img align="top" src="icons/flag-red.png" style="margin-right:3px;margin-bottom:2px"/>Red</div></td>
39
+ </tr>
40
+ <tr class="tabline" style="font-size:12px; ">
41
+ <td class="taskcell2"><div class="celldiv" style="text-align:left; ">
42
+ <img align="top" src="icons/taskgroup.png" style="margin-right:3px;margin-bottom:2px"/>Overwrite Red</div></td>
43
+ <td class="taskcell2"><div class="celldiv" style="text-align:left; color:#C00000; ">
44
+ <img align="top" src="icons/flag-red.png" style="margin-right:3px;margin-bottom:2px"/>Red</div></td>
45
+ </tr>
46
+ <tr class="tabline" style="font-size:12px; ">
47
+ <td class="taskcell1"><div class="celldiv" style="text-align:left; ">
48
+ <img align="top" src="icons/task.png" style="margin-right:3px;margin-bottom:2px"/>Red</div></td>
49
+ <td class="taskcell1"><div class="celldiv" style="text-align:left; color:#C00000; ">
50
+ <img align="top" src="icons/flag-red.png" style="margin-right:3px;margin-bottom:2px"/>Red</div></td>
51
+ </tr>
52
+ <tr class="tabline" style="font-size:12px; ">
53
+ <td class="taskcell2"><div class="celldiv" style="text-align:left; ">
54
+ <img align="top" src="icons/taskgroup.png" style="margin-right:3px;margin-bottom:2px"/>Inherit Red</div></td>
55
+ <td class="taskcell2"><div class="celldiv" style="text-align:left; color:#C00000; ">
56
+ <img align="top" src="icons/flag-red.png" style="margin-right:3px;margin-bottom:2px"/>Red</div></td>
57
+ </tr>
58
+ <tr class="tabline" style="font-size:12px; ">
59
+ <td class="taskcell1"><div class="celldiv" style="text-align:left; ">
60
+ <img align="top" src="icons/taskgroup.png" style="margin-right:3px;margin-bottom:2px"/>Inherit Red</div></td>
61
+ <td class="taskcell1"><div class="celldiv" style="text-align:left; color:#C00000; ">
62
+ <img align="top" src="icons/flag-red.png" style="margin-right:3px;margin-bottom:2px"/>Red</div></td>
63
+ </tr>
64
+ <tr class="tabline" style="font-size:12px; ">
65
+ <td class="taskcell2"><div class="celldiv" style="text-align:left; ">
66
+ <img align="top" src="icons/taskgroup.png" style="margin-right:3px;margin-bottom:2px"/>Inherit Yellow</div></td>
67
+ <td class="taskcell2"><div class="celldiv" style="text-align:left; color:#BEA800; ">
68
+ <img align="top" src="icons/flag-yellow.png" style="margin-right:3px;margin-bottom:2px"/>Yellow</div></td>
69
+ </tr>
70
+ <tr class="tabline" style="font-size:12px; ">
71
+ <td class="taskcell1"><div class="celldiv" style="text-align:left; ">
72
+ <img align="top" src="icons/task.png" style="margin-right:3px;margin-bottom:2px"/>Yellow</div></td>
73
+ <td class="taskcell1"><div class="celldiv" style="text-align:left; color:#BEA800; ">
74
+ <img align="top" src="icons/flag-yellow.png" style="margin-right:3px;margin-bottom:2px"/>Yellow</div></td>
75
+ </tr>
76
+ <tr class="tabline" style="font-size:12px; ">
77
+ <td class="taskcell2"><div class="celldiv" style="text-align:left; ">
78
+ <img align="top" src="icons/task.png" style="margin-right:3px;margin-bottom:2px"/>Yellow</div></td>
79
+ <td class="taskcell2"><div class="celldiv" style="text-align:left; color:#BEA800; ">
80
+ <img align="top" src="icons/flag-yellow.png" style="margin-right:3px;margin-bottom:2px"/>Yellow</div></td>
81
+ </tr>
82
+ <tr class="tabline" style="font-size:12px; ">
83
+ <td class="taskcell1"><div class="celldiv" style="text-align:left; ">
84
+ <img align="top" src="icons/taskgroup.png" style="margin-right:3px;margin-bottom:2px"/>Inherit Yellow</div></td>
85
+ <td class="taskcell1"><div class="celldiv" style="text-align:left; color:#BEA800; ">
86
+ <img align="top" src="icons/flag-yellow.png" style="margin-right:3px;margin-bottom:2px"/>Yellow</div></td>
87
+ </tr>
88
+ <tr class="tabline" style="font-size:12px; ">
89
+ <td class="taskcell2"><div class="celldiv" style="text-align:left; ">
90
+ <img align="top" src="icons/task.png" style="margin-right:3px;margin-bottom:2px"/>Yellow</div></td>
91
+ <td class="taskcell2"><div class="celldiv" style="text-align:left; color:#BEA800; ">
92
+ <img align="top" src="icons/flag-yellow.png" style="margin-right:3px;margin-bottom:2px"/>Yellow</div></td>
93
+ </tr>
94
+ <tr class="tabline" style="font-size:12px; ">
95
+ <td class="taskcell1"><div class="celldiv" style="text-align:left; ">
96
+ <img align="top" src="icons/task.png" style="margin-right:3px;margin-bottom:2px"/>Yellow</div></td>
97
+ <td class="taskcell1"><div class="celldiv" style="text-align:left; color:#BEA800; ">
98
+ <img align="top" src="icons/flag-yellow.png" style="margin-right:3px;margin-bottom:2px"/>Yellow</div></td>
99
+ </tr>
100
+ <tr class="tabline" style="font-size:12px; ">
101
+ <td class="taskcell2"><div class="celldiv" style="text-align:left; ">
102
+ <img align="top" src="icons/taskgroup.png" style="margin-right:3px;margin-bottom:2px"/>Inherit Yellow</div></td>
103
+ <td class="taskcell2"><div class="celldiv" style="text-align:left; color:#BEA800; ">
104
+ <img align="top" src="icons/flag-yellow.png" style="margin-right:3px;margin-bottom:2px"/>Yellow</div></td>
105
+ </tr>
106
+ <tr class="tabline" style="font-size:12px; ">
107
+ <td class="taskcell1"><div class="celldiv" style="text-align:left; ">
108
+ <img align="top" src="icons/taskgroup.png" style="margin-right:3px;margin-bottom:2px"/>Overwrite Yellow</div></td>
109
+ <td class="taskcell1"><div class="celldiv" style="text-align:left; color:#BEA800; ">
110
+ <img align="top" src="icons/flag-yellow.png" style="margin-right:3px;margin-bottom:2px"/>Yellow</div></td>
111
+ </tr>
112
+ <tr class="tabline" style="font-size:12px; ">
113
+ <td class="taskcell2"><div class="celldiv" style="text-align:left; ">
114
+ <img align="top" src="icons/task.png" style="margin-right:3px;margin-bottom:2px"/>Green</div></td>
115
+ <td class="taskcell2"><div class="celldiv" style="text-align:left; color:#008000; ">
116
+ <img align="top" src="icons/flag-green.png" style="margin-right:3px;margin-bottom:2px"/>Green</div></td>
117
+ </tr>
118
+ <tr class="tabline" style="font-size:12px; ">
119
+ <td class="taskcell1"><div class="celldiv" style="text-align:left; ">
120
+ <img align="top" src="icons/task.png" style="margin-right:3px;margin-bottom:2px"/>Green</div></td>
121
+ <td class="taskcell1"><div class="celldiv" style="text-align:left; color:#008000; ">
122
+ <img align="top" src="icons/flag-green.png" style="margin-right:3px;margin-bottom:2px"/>Green</div></td>
123
+ </tr>
124
+ <tr class="tabline" style="font-size:12px; ">
125
+ <td class="taskcell2"><div class="celldiv" style="text-align:left; ">
126
+ <img align="top" src="icons/task.png" style="margin-right:3px;margin-bottom:2px"/>Green</div></td>
127
+ <td class="taskcell2"><div class="celldiv" style="text-align:left; color:#008000; ">
128
+ <img align="top" src="icons/flag-green.png" style="margin-right:3px;margin-bottom:2px"/>Green</div></td>
129
+ </tr>
130
+ <tr class="tabline" style="font-size:12px; ">
131
+ <td class="taskcell1"><div class="celldiv" style="text-align:left; ">
132
+ <img align="top" src="icons/task.png" style="margin-right:3px;margin-bottom:2px"/>Green</div></td>
133
+ <td class="taskcell1"><div class="celldiv" style="text-align:left; color:#008000; ">
134
+ <img align="top" src="icons/flag-green.png" style="margin-right:3px;margin-bottom:2px"/>Green</div></td>
135
+ </tr>
136
+ <tr class="tabline" style="font-size:12px; ">
137
+ <td class="taskcell2"><div class="celldiv" style="text-align:left; ">
138
+ <img align="top" src="icons/taskgroup.png" style="margin-right:3px;margin-bottom:2px"/>Inherit Green</div></td>
139
+ <td class="taskcell2"><div class="celldiv" style="text-align:left; color:#008000; ">
140
+ <img align="top" src="icons/flag-green.png" style="margin-right:3px;margin-bottom:2px"/>Green</div></td>
141
+ </tr>
142
+ <tr class="tabline" style="font-size:12px; ">
143
+ <td class="taskcell1"><div class="celldiv" style="text-align:left; ">
144
+ <img align="top" src="icons/task.png" style="margin-right:3px;margin-bottom:2px"/>Green</div></td>
145
+ <td class="taskcell1"><div class="celldiv" style="text-align:left; color:#008000; ">
146
+ <img align="top" src="icons/flag-green.png" style="margin-right:3px;margin-bottom:2px"/>Green</div></td>
147
+ </tr>
148
+ <tr class="tabline" style="font-size:12px; ">
149
+ <td class="taskcell2"><div class="celldiv" style="text-align:left; ">
150
+ <img align="top" src="icons/task.png" style="margin-right:3px;margin-bottom:2px"/>Green</div></td>
151
+ <td class="taskcell2"><div class="celldiv" style="text-align:left; color:#008000; ">
152
+ <img align="top" src="icons/flag-green.png" style="margin-right:3px;margin-bottom:2px"/>Green</div></td>
153
+ </tr>
154
+ <tr class="tabline" style="font-size:12px; ">
155
+ <td class="taskcell1"><div class="celldiv" style="text-align:left; ">
156
+ <img align="top" src="icons/task.png" style="margin-right:3px;margin-bottom:2px"/>Green</div></td>
157
+ <td class="taskcell1"><div class="celldiv" style="text-align:left; color:#008000; ">
158
+ <img align="top" src="icons/flag-green.png" style="margin-right:3px;margin-bottom:2px"/>Green</div></td>
159
+ </tr>
160
+ <tr class="tabline" style="font-size:12px; ">
161
+ <td class="taskcell2"><div class="celldiv" style="text-align:left; ">
162
+ <img align="top" src="icons/task.png" style="margin-right:3px;margin-bottom:2px"/>Green</div></td>
163
+ <td class="taskcell2"><div class="celldiv" style="text-align:left; color:#008000; ">
164
+ <img align="top" src="icons/flag-green.png" style="margin-right:3px;margin-bottom:2px"/>Green</div></td>
165
+ </tr>
166
+ </tbody></table></td></tr>
167
+ <tr style="font-size:10px;"><td style="padding-left:1px; padding-right:1px;"/></tr>
168
+ </tbody></table>
169
+ <div class="copyright">Project: Alerts Version: 1.0 - Created on 2009-12-03 08:47:14 with <a href="http://www.taskjuggler.org">TaskJuggler III</a> v0.0.3</div>
170
+ </div>
171
+ </body>
172
+ </html>