taskjuggler 0.1.1 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (563) hide show
  1. data/CHANGELOG +37 -5
  2. data/README.rdoc +4 -2
  3. data/benchmarks/UTF-8-Strings.rb +58 -0
  4. data/benchmarks/css/tjmanual.css +0 -1
  5. data/benchmarks/htmltaskreport-1.html +47702 -0
  6. data/benchmarks/htmltaskreport-2.html +23345 -0
  7. data/benchmarks/htmltaskreport-3.html +23265 -0
  8. data/benchmarks/htmltaskreport-4.html +22135 -0
  9. data/benchmarks/profile.clt +36082 -0
  10. data/benchmarks/tj3.profile +0 -0
  11. data/benchmarks/tj3.profile.grind +6185 -0
  12. data/benchmarks/tj3.profile.symbols +432 -0
  13. data/benchmarks/tj3.profile.txt +448 -0
  14. data/data/tjp.vim +689 -0
  15. data/doc/AppConfig.html +26 -2
  16. data/doc/CHANGELOG.html +60 -8
  17. data/doc/COPYING.html +26 -2
  18. data/doc/Diff/Hunk.html +26 -2
  19. data/doc/Diff.html +26 -2
  20. data/doc/Diffable.html +26 -2
  21. data/doc/DiffableString.html +26 -2
  22. data/doc/Object.html +26 -104
  23. data/doc/README_rdoc.html +39 -7
  24. data/doc/RuntimeConfig.html +26 -2
  25. data/doc/String.html +26 -2
  26. data/doc/TaskJuggler/Account.html +27 -3
  27. data/doc/TaskJuggler/AccountAttribute.html +30 -6
  28. data/doc/TaskJuggler/AccountScenario.html +28 -4
  29. data/doc/TaskJuggler/Allocation.html +33 -9
  30. data/doc/TaskJuggler/AllocationAttribute.html +31 -7
  31. data/doc/TaskJuggler/AttributeBase.html +162 -111
  32. data/doc/TaskJuggler/AttributeDefinition.html +26 -2
  33. data/doc/TaskJuggler/AttributeOverwrite.html +26 -2
  34. data/doc/TaskJuggler/BatchProcessor.html +26 -2
  35. data/doc/TaskJuggler/Booking.html +29 -5
  36. data/doc/TaskJuggler/BookingListAttribute.html +29 -5
  37. data/doc/TaskJuggler/BooleanAttribute.html +30 -6
  38. data/doc/TaskJuggler/CSVFile.html +26 -2
  39. data/doc/TaskJuggler/CellSettingPattern.html +26 -2
  40. data/doc/TaskJuggler/CellSettingPatternList.html +26 -2
  41. data/doc/TaskJuggler/Charge.html +30 -6
  42. data/doc/TaskJuggler/ChargeListAttribute.html +29 -5
  43. data/doc/TaskJuggler/ChargeSet.html +26 -2
  44. data/doc/TaskJuggler/ChargeSetListAttribute.html +30 -6
  45. data/doc/TaskJuggler/CollisionDetector.html +26 -2
  46. data/doc/TaskJuggler/ColumnListAttribute.html +28 -4
  47. data/doc/TaskJuggler/ColumnTable.html +26 -2
  48. data/doc/TaskJuggler/Daemon.html +26 -2
  49. data/doc/TaskJuggler/DataCache.html +26 -2
  50. data/doc/TaskJuggler/DataCacheEntry.html +26 -2
  51. data/doc/TaskJuggler/DateAttribute.html +30 -6
  52. data/doc/TaskJuggler/DefinitionListAttribute.html +28 -4
  53. data/doc/TaskJuggler/DependencyListAttribute.html +30 -6
  54. data/doc/TaskJuggler/DurationAttribute.html +31 -7
  55. data/doc/TaskJuggler/FileList.html +26 -2
  56. data/doc/TaskJuggler/FileRecord.html +26 -2
  57. data/doc/TaskJuggler/FixnumAttribute.html +28 -4
  58. data/doc/TaskJuggler/FlagListAttribute.html +30 -6
  59. data/doc/TaskJuggler/FloatAttribute.html +29 -5
  60. data/doc/TaskJuggler/FormatListAttribute.html +29 -5
  61. data/doc/TaskJuggler/GanttChart.html +26 -2
  62. data/doc/TaskJuggler/GanttContainer.html +26 -2
  63. data/doc/TaskJuggler/GanttHeader.html +26 -2
  64. data/doc/TaskJuggler/GanttHeaderScaleItem.html +26 -2
  65. data/doc/TaskJuggler/GanttLine.html +27 -3
  66. data/doc/TaskJuggler/GanttLoadStack.html +26 -2
  67. data/doc/TaskJuggler/GanttMilestone.html +26 -2
  68. data/doc/TaskJuggler/GanttRouter.html +26 -2
  69. data/doc/TaskJuggler/GanttTaskBar.html +26 -2
  70. data/doc/TaskJuggler/HTMLDocument.html +26 -2
  71. data/doc/TaskJuggler/HTMLElements.html +623 -0
  72. data/doc/TaskJuggler/HTMLGraphics.html +26 -2
  73. data/doc/TaskJuggler/ICalReport.html +864 -0
  74. data/doc/TaskJuggler/ICalendar/Component.html +969 -0
  75. data/doc/TaskJuggler/ICalendar/Event.html +742 -0
  76. data/doc/TaskJuggler/ICalendar/Journal.html +722 -0
  77. data/doc/TaskJuggler/ICalendar/Person.html +633 -0
  78. data/doc/TaskJuggler/ICalendar/Todo.html +789 -0
  79. data/doc/TaskJuggler/ICalendar.html +1035 -0
  80. data/doc/TaskJuggler/Interval.html +99 -172
  81. data/doc/TaskJuggler/IntervalList.html +31 -7
  82. data/doc/TaskJuggler/JobInfo.html +26 -2
  83. data/doc/TaskJuggler/Journal.html +26 -2
  84. data/doc/TaskJuggler/JournalEntry.html +26 -2
  85. data/doc/TaskJuggler/JournalEntryList.html +26 -2
  86. data/doc/TaskJuggler/KeywordArray.html +26 -2
  87. data/doc/TaskJuggler/KeywordDocumentation.html +26 -2
  88. data/doc/TaskJuggler/Limits/Limit.html +124 -49
  89. data/doc/TaskJuggler/Limits.html +139 -156
  90. data/doc/TaskJuggler/LimitsAttribute.html +39 -14
  91. data/doc/TaskJuggler/ListAttributeBase.html +35 -11
  92. data/doc/TaskJuggler/Log.html +26 -2
  93. data/doc/TaskJuggler/LogFile.html +26 -2
  94. data/doc/TaskJuggler/LogicalAttribute.html +26 -2
  95. data/doc/TaskJuggler/LogicalExpression.html +26 -2
  96. data/doc/TaskJuggler/LogicalExpressionAttribute.html +35 -11
  97. data/doc/TaskJuggler/LogicalExpressionListAttribute.html +35 -11
  98. data/doc/TaskJuggler/LogicalFlag.html +26 -2
  99. data/doc/TaskJuggler/LogicalFunction.html +28 -4
  100. data/doc/TaskJuggler/LogicalOperation.html +26 -2
  101. data/doc/TaskJuggler/ManagerResponsibilities.html +26 -2
  102. data/doc/TaskJuggler/ManagerStatusRecord.html +26 -2
  103. data/doc/TaskJuggler/Message.html +26 -2
  104. data/doc/TaskJuggler/MessageHandler.html +108 -62
  105. data/doc/TaskJuggler/Navigator.html +26 -2
  106. data/doc/TaskJuggler/NavigatorElement.html +26 -2
  107. data/doc/TaskJuggler/NikuProject.html +26 -2
  108. data/doc/TaskJuggler/NikuReport.html +27 -3
  109. data/doc/TaskJuggler/NikuResource.html +26 -2
  110. data/doc/TaskJuggler/NodeListAttribute.html +31 -7
  111. data/doc/TaskJuggler/PlaceHolderCell.html +26 -2
  112. data/doc/TaskJuggler/ProcessIntercom.html +26 -2
  113. data/doc/TaskJuggler/ProcessIntercomIface.html +26 -2
  114. data/doc/TaskJuggler/Project.html +1236 -973
  115. data/doc/TaskJuggler/ProjectBroker.html +26 -2
  116. data/doc/TaskJuggler/ProjectBrokerIface.html +26 -2
  117. data/doc/TaskJuggler/ProjectFileParser.html +29 -4
  118. data/doc/TaskJuggler/ProjectFileScanner.html +56 -31
  119. data/doc/TaskJuggler/ProjectRecord.html +26 -2
  120. data/doc/TaskJuggler/ProjectServer.html +26 -2
  121. data/doc/TaskJuggler/ProjectServerIface.html +26 -2
  122. data/doc/TaskJuggler/PropertyAttribute.html +35 -11
  123. data/doc/TaskJuggler/PropertyList.html +26 -2
  124. data/doc/TaskJuggler/PropertySet.html +126 -106
  125. data/doc/TaskJuggler/PropertyTreeNode.html +595 -551
  126. data/doc/TaskJuggler/Query.html +127 -100
  127. data/doc/TaskJuggler/RTFHandlers.html +26 -2
  128. data/doc/TaskJuggler/RTFNavigator.html +26 -2
  129. data/doc/TaskJuggler/RTFQuery.html +28 -4
  130. data/doc/TaskJuggler/RTFReport.html +26 -2
  131. data/doc/TaskJuggler/RTFReportLink.html +26 -2
  132. data/doc/TaskJuggler/RTFWithQuerySupport.html +26 -2
  133. data/doc/TaskJuggler/RealFormat.html +26 -2
  134. data/doc/TaskJuggler/RealFormatAttribute.html +31 -7
  135. data/doc/TaskJuggler/ReferenceAttribute.html +58 -34
  136. data/doc/TaskJuggler/Report.html +427 -284
  137. data/doc/TaskJuggler/ReportBase.html +28 -102
  138. data/doc/TaskJuggler/ReportContext.html +26 -2
  139. data/doc/TaskJuggler/ReportScenario.html +633 -0
  140. data/doc/TaskJuggler/ReportServer.html +26 -2
  141. data/doc/TaskJuggler/ReportServerIface.html +26 -2
  142. data/doc/TaskJuggler/ReportServerRecord.html +26 -2
  143. data/doc/TaskJuggler/ReportServlet.html +26 -2
  144. data/doc/TaskJuggler/ReportTable.html +26 -2
  145. data/doc/TaskJuggler/ReportTableCell.html +26 -2
  146. data/doc/TaskJuggler/ReportTableColumn.html +26 -2
  147. data/doc/TaskJuggler/ReportTableLegend.html +26 -2
  148. data/doc/TaskJuggler/ReportTableLine.html +26 -2
  149. data/doc/TaskJuggler/Resource.html +225 -163
  150. data/doc/TaskJuggler/ResourceListAttribute.html +71 -47
  151. data/doc/TaskJuggler/ResourceListRE.html +26 -2
  152. data/doc/TaskJuggler/ResourceScenario.html +645 -603
  153. data/doc/TaskJuggler/RichText.html +26 -2
  154. data/doc/TaskJuggler/RichTextAttribute.html +53 -29
  155. data/doc/TaskJuggler/RichTextDocument.html +26 -2
  156. data/doc/TaskJuggler/RichTextElement.html +26 -2
  157. data/doc/TaskJuggler/RichTextFunctionExample.html +26 -2
  158. data/doc/TaskJuggler/RichTextFunctionHandler.html +26 -2
  159. data/doc/TaskJuggler/RichTextImage.html +26 -2
  160. data/doc/TaskJuggler/RichTextIntermediate.html +29 -5
  161. data/doc/TaskJuggler/RichTextParser.html +26 -2
  162. data/doc/TaskJuggler/RichTextScanner.html +26 -2
  163. data/doc/TaskJuggler/RichTextSnip.html +26 -2
  164. data/doc/TaskJuggler/RichTextSyntaxRules.html +26 -2
  165. data/doc/TaskJuggler/Scenario.html +26 -2
  166. data/doc/TaskJuggler/ScenarioData.html +95 -28
  167. data/doc/TaskJuggler/ScenarioListAttribute.html +39 -15
  168. data/doc/TaskJuggler/Scoreboard.html +137 -73
  169. data/doc/TaskJuggler/ScoreboardInterval.html +1116 -0
  170. data/doc/TaskJuggler/SheetHandlerBase.html +26 -2
  171. data/doc/TaskJuggler/SheetReceiver.html +26 -2
  172. data/doc/TaskJuggler/SheetSender.html +26 -2
  173. data/doc/TaskJuggler/Shift.html +27 -3
  174. data/doc/TaskJuggler/ShiftAssignment.html +27 -3
  175. data/doc/TaskJuggler/ShiftAssignments.html +174 -149
  176. data/doc/TaskJuggler/ShiftAssignmentsAttribute.html +41 -16
  177. data/doc/TaskJuggler/ShiftScenario.html +26 -2
  178. data/doc/TaskJuggler/SimpleQueryExpander.html +26 -2
  179. data/doc/TaskJuggler/SortListAttribute.html +35 -11
  180. data/doc/TaskJuggler/StatusSheetReceiver.html +26 -2
  181. data/doc/TaskJuggler/StatusSheetReport.html +26 -2
  182. data/doc/TaskJuggler/StatusSheetSender.html +26 -2
  183. data/doc/TaskJuggler/StdIoWrapper.html +26 -2
  184. data/doc/TaskJuggler/StringAttribute.html +39 -15
  185. data/doc/TaskJuggler/SymbolAttribute.html +35 -11
  186. data/doc/TaskJuggler/SyntaxReference.html +26 -2
  187. data/doc/TaskJuggler/TOCEntry.html +26 -2
  188. data/doc/TaskJuggler/TSResourceRecord.html +26 -2
  189. data/doc/TaskJuggler/TSTaskRecord.html +26 -2
  190. data/doc/TaskJuggler/TableColumnDefinition.html +26 -2
  191. data/doc/TaskJuggler/TableOfContents.html +26 -2
  192. data/doc/TaskJuggler/TableReport.html +239 -214
  193. data/doc/TaskJuggler/TagFile/TagFileEntry.html +841 -0
  194. data/doc/TaskJuggler/TagFile.html +817 -0
  195. data/doc/TaskJuggler/Task.html +27 -3
  196. data/doc/TaskJuggler/TaskDepListAttribute.html +47 -23
  197. data/doc/TaskJuggler/TaskDependency.html +26 -2
  198. data/doc/TaskJuggler/TaskListAttribute.html +47 -23
  199. data/doc/TaskJuggler/TaskListRE.html +26 -2
  200. data/doc/TaskJuggler/TaskScenario.html +2235 -2178
  201. data/doc/TaskJuggler/TernarySearchTree.html +26 -2
  202. data/doc/TaskJuggler/TextFormatter.html +26 -2
  203. data/doc/TaskJuggler/TextParser/Macro.html +26 -2
  204. data/doc/TaskJuggler/TextParser/MacroTable.html +26 -2
  205. data/doc/TaskJuggler/TextParser/Pattern.html +26 -2
  206. data/doc/TaskJuggler/TextParser/Rule.html +26 -2
  207. data/doc/TaskJuggler/TextParser/Scanner/BufferStreamHandle.html +32 -8
  208. data/doc/TaskJuggler/TextParser/Scanner/FileStreamHandle.html +39 -15
  209. data/doc/TaskJuggler/TextParser/Scanner/MacroStackEntry.html +26 -2
  210. data/doc/TaskJuggler/TextParser/Scanner/StreamHandle.html +119 -86
  211. data/doc/TaskJuggler/TextParser/Scanner.html +317 -291
  212. data/doc/TaskJuggler/TextParser/SourceFileInfo.html +26 -2
  213. data/doc/TaskJuggler/TextParser/StackElement.html +26 -2
  214. data/doc/TaskJuggler/TextParser/State.html +26 -2
  215. data/doc/TaskJuggler/TextParser/StateTransition.html +26 -2
  216. data/doc/TaskJuggler/TextParser/TextParserResultArray.html +26 -2
  217. data/doc/TaskJuggler/TextParser/TokenDoc.html +26 -2
  218. data/doc/TaskJuggler/TextParser.html +85 -61
  219. data/doc/TaskJuggler/TextReport.html +26 -2
  220. data/doc/TaskJuggler/TimeInterval.html +841 -0
  221. data/doc/TaskJuggler/{IntervalListAttribute.html → TimeIntervalListAttribute.html} +33 -9
  222. data/doc/TaskJuggler/TimeSheet.html +26 -2
  223. data/doc/TaskJuggler/TimeSheetReceiver.html +26 -2
  224. data/doc/TaskJuggler/TimeSheetRecord.html +27 -3
  225. data/doc/TaskJuggler/TimeSheetReport.html +29 -5
  226. data/doc/TaskJuggler/TimeSheetSender.html +26 -2
  227. data/doc/TaskJuggler/TimeSheetSummary.html +26 -2
  228. data/doc/TaskJuggler/TimeSheets.html +26 -2
  229. data/doc/TaskJuggler/Tj3.html +150 -111
  230. data/doc/TaskJuggler/Tj3AppBase.html +26 -2
  231. data/doc/TaskJuggler/Tj3Client.html +26 -2
  232. data/doc/TaskJuggler/Tj3Daemon.html +26 -2
  233. data/doc/TaskJuggler/Tj3Man.html +26 -2
  234. data/doc/TaskJuggler/Tj3SheetAppBase.html +26 -2
  235. data/doc/TaskJuggler/Tj3SsReceiver.html +26 -2
  236. data/doc/TaskJuggler/Tj3SsSender.html +26 -2
  237. data/doc/TaskJuggler/Tj3TsReceiver.html +26 -2
  238. data/doc/TaskJuggler/Tj3TsSender.html +26 -2
  239. data/doc/TaskJuggler/Tj3TsSummary.html +26 -2
  240. data/doc/TaskJuggler/TjException.html +26 -2
  241. data/doc/TaskJuggler/TjRuntimeError.html +26 -2
  242. data/doc/TaskJuggler/TjTime.html +539 -477
  243. data/doc/TaskJuggler/TjpExample.html +26 -2
  244. data/doc/TaskJuggler/TjpExportRE.html +240 -161
  245. data/doc/TaskJuggler/TjpSyntaxRules.html +4236 -3844
  246. data/doc/TaskJuggler/URLParameter.html +26 -2
  247. data/doc/TaskJuggler/UserManual.html +26 -2
  248. data/doc/TaskJuggler/VimSyntax.html +31 -7
  249. data/doc/TaskJuggler/WebServer.html +26 -2
  250. data/doc/TaskJuggler/WelcomePage.html +26 -2
  251. data/doc/TaskJuggler/WorkingHours.html +227 -152
  252. data/doc/TaskJuggler/WorkingHoursAttribute.html +62 -38
  253. data/doc/TaskJuggler/XMLBlob.html +26 -2
  254. data/doc/TaskJuggler/XMLComment.html +26 -2
  255. data/doc/TaskJuggler/XMLDocument.html +26 -2
  256. data/doc/TaskJuggler/XMLElement.html +26 -2
  257. data/doc/TaskJuggler/XMLNamedText.html +26 -2
  258. data/doc/TaskJuggler/XMLText.html +26 -2
  259. data/doc/TaskJuggler.html +486 -427
  260. data/doc/index.html +801 -659
  261. data/doc/lib/taskjuggler/AccountScenario_rb.html +1 -1
  262. data/doc/lib/taskjuggler/Account_rb.html +1 -1
  263. data/doc/lib/taskjuggler/AlgorithmDiff_rb.html +1 -1
  264. data/doc/lib/taskjuggler/Allocation_rb.html +1 -1
  265. data/doc/lib/taskjuggler/AppConfig_rb.html +1 -1
  266. data/doc/lib/taskjuggler/AttributeBase_rb.html +1 -1
  267. data/doc/lib/taskjuggler/AttributeDefinition_rb.html +1 -1
  268. data/doc/lib/taskjuggler/Attributes_rb.html +1 -1
  269. data/doc/lib/taskjuggler/BatchProcessor_rb.html +1 -1
  270. data/doc/lib/taskjuggler/Booking_rb.html +1 -1
  271. data/doc/lib/taskjuggler/ChargeSet_rb.html +1 -1
  272. data/doc/lib/taskjuggler/Charge_rb.html +1 -1
  273. data/doc/lib/taskjuggler/DataCache_rb.html +1 -1
  274. data/doc/lib/taskjuggler/FileList_rb.html +1 -1
  275. data/doc/lib/taskjuggler/HTMLDocument_rb.html +1 -1
  276. data/doc/lib/{ruby-signal-bug_rb.html → taskjuggler/HTMLElements_rb.html} +9 -9
  277. data/doc/lib/{exchangebug_rb.html → taskjuggler/ICalendar_rb.html} +9 -9
  278. data/doc/lib/taskjuggler/IntervalList_rb.html +1 -1
  279. data/doc/lib/taskjuggler/Interval_rb.html +1 -1
  280. data/doc/lib/taskjuggler/Journal_rb.html +1 -1
  281. data/doc/lib/taskjuggler/KeywordArray_rb.html +1 -1
  282. data/doc/lib/taskjuggler/KeywordDocumentation_rb.html +1 -1
  283. data/doc/lib/taskjuggler/Limits_rb.html +1 -1
  284. data/doc/lib/taskjuggler/LogFile_rb.html +1 -1
  285. data/doc/lib/taskjuggler/Log_rb.html +1 -1
  286. data/doc/lib/taskjuggler/LogicalExpression_rb.html +1 -1
  287. data/doc/lib/taskjuggler/LogicalFunction_rb.html +1 -1
  288. data/doc/lib/taskjuggler/LogicalOperation_rb.html +1 -1
  289. data/doc/lib/taskjuggler/MessageHandler_rb.html +1 -1
  290. data/doc/lib/taskjuggler/ProjectFileParser_rb.html +1 -1
  291. data/doc/lib/taskjuggler/ProjectFileScanner_rb.html +1 -1
  292. data/doc/lib/taskjuggler/Project_rb.html +1 -1
  293. data/doc/lib/taskjuggler/PropertyList_rb.html +1 -1
  294. data/doc/lib/taskjuggler/PropertySet_rb.html +1 -1
  295. data/doc/lib/taskjuggler/PropertyTreeNode_rb.html +1 -1
  296. data/doc/lib/taskjuggler/Query_rb.html +1 -1
  297. data/doc/lib/taskjuggler/RealFormat_rb.html +1 -1
  298. data/doc/lib/taskjuggler/ResourceScenario_rb.html +1 -1
  299. data/doc/lib/taskjuggler/Resource_rb.html +1 -1
  300. data/doc/lib/taskjuggler/RichText/Document_rb.html +1 -1
  301. data/doc/lib/taskjuggler/RichText/Element_rb.html +1 -1
  302. data/doc/lib/taskjuggler/RichText/FunctionExample_rb.html +1 -1
  303. data/doc/lib/taskjuggler/RichText/FunctionHandler_rb.html +1 -1
  304. data/doc/lib/taskjuggler/RichText/Parser_rb.html +1 -1
  305. data/doc/lib/taskjuggler/RichText/RTFHandlers_rb.html +1 -1
  306. data/doc/lib/taskjuggler/RichText/RTFNavigator_rb.html +1 -1
  307. data/doc/lib/taskjuggler/RichText/RTFQuery_rb.html +1 -1
  308. data/doc/lib/taskjuggler/RichText/RTFReportLink_rb.html +1 -1
  309. data/doc/lib/taskjuggler/RichText/RTFReport_rb.html +1 -1
  310. data/doc/lib/taskjuggler/RichText/RTFWithQuerySupport_rb.html +1 -1
  311. data/doc/lib/taskjuggler/RichText/Scanner_rb.html +1 -1
  312. data/doc/lib/taskjuggler/RichText/Snip_rb.html +1 -1
  313. data/doc/lib/taskjuggler/RichText/SyntaxRules_rb.html +1 -1
  314. data/doc/lib/taskjuggler/RichText/TOCEntry_rb.html +1 -1
  315. data/doc/lib/taskjuggler/RichText/TableOfContents_rb.html +1 -1
  316. data/doc/lib/taskjuggler/RichText_rb.html +1 -1
  317. data/doc/lib/taskjuggler/RuntimeConfig_rb.html +1 -1
  318. data/doc/lib/taskjuggler/ScenarioData_rb.html +1 -1
  319. data/doc/lib/taskjuggler/Scenario_rb.html +1 -1
  320. data/doc/lib/taskjuggler/Scoreboard_rb.html +1 -1
  321. data/doc/lib/taskjuggler/SheetHandlerBase_rb.html +1 -1
  322. data/doc/lib/taskjuggler/SheetReceiver_rb.html +1 -1
  323. data/doc/lib/taskjuggler/SheetSender_rb.html +1 -1
  324. data/doc/lib/taskjuggler/ShiftAssignments_rb.html +1 -1
  325. data/doc/lib/taskjuggler/ShiftScenario_rb.html +1 -1
  326. data/doc/lib/taskjuggler/Shift_rb.html +1 -1
  327. data/doc/lib/taskjuggler/SimpleQueryExpander_rb.html +1 -1
  328. data/doc/lib/taskjuggler/StatusSheetReceiver_rb.html +1 -1
  329. data/doc/lib/taskjuggler/StatusSheetSender_rb.html +1 -1
  330. data/doc/lib/taskjuggler/StdIoWrapper_rb.html +1 -1
  331. data/doc/lib/taskjuggler/SyntaxReference_rb.html +1 -1
  332. data/doc/lib/taskjuggler/TableColumnDefinition_rb.html +1 -1
  333. data/doc/lib/taskjuggler/TaskDependency_rb.html +1 -1
  334. data/doc/lib/taskjuggler/TaskJuggler_rb.html +1 -1
  335. data/doc/lib/taskjuggler/TaskScenario_rb.html +1 -1
  336. data/doc/lib/taskjuggler/Task_rb.html +1 -1
  337. data/doc/lib/taskjuggler/TernarySearchTree_rb.html +1 -1
  338. data/doc/lib/taskjuggler/TextFormatter_rb.html +1 -1
  339. data/doc/lib/taskjuggler/TextParser/MacroTable_rb.html +1 -1
  340. data/doc/lib/taskjuggler/TextParser/Pattern_rb.html +1 -1
  341. data/doc/lib/taskjuggler/TextParser/Rule_rb.html +1 -1
  342. data/doc/lib/taskjuggler/TextParser/Scanner_rb.html +1 -1
  343. data/doc/lib/taskjuggler/TextParser/SourceFileInfo_rb.html +1 -1
  344. data/doc/lib/taskjuggler/TextParser/StackElement_rb.html +1 -1
  345. data/doc/lib/taskjuggler/TextParser/State_rb.html +1 -1
  346. data/doc/lib/taskjuggler/TextParser/TokenDoc_rb.html +1 -1
  347. data/doc/lib/taskjuggler/TextParser_rb.html +1 -1
  348. data/doc/lib/taskjuggler/TimeSheetReceiver_rb.html +1 -1
  349. data/doc/lib/taskjuggler/TimeSheetSender_rb.html +1 -1
  350. data/doc/lib/taskjuggler/TimeSheetSummary_rb.html +1 -1
  351. data/doc/lib/taskjuggler/TimeSheets_rb.html +1 -1
  352. data/doc/lib/taskjuggler/Tj3AppBase_rb.html +1 -1
  353. data/doc/lib/taskjuggler/Tj3Config_rb.html +1 -1
  354. data/doc/lib/taskjuggler/Tj3SheetAppBase_rb.html +1 -1
  355. data/doc/lib/taskjuggler/TjException_rb.html +1 -1
  356. data/doc/lib/taskjuggler/TjTime_rb.html +1 -1
  357. data/doc/lib/taskjuggler/TjpExample_rb.html +1 -1
  358. data/doc/lib/taskjuggler/TjpSyntaxRules_rb.html +1 -1
  359. data/doc/lib/taskjuggler/URLParameter_rb.html +1 -1
  360. data/doc/lib/taskjuggler/UTF8String_rb.html +1 -1
  361. data/doc/lib/taskjuggler/UserManual_rb.html +1 -1
  362. data/doc/lib/taskjuggler/VimSyntax_rb.html +1 -1
  363. data/doc/lib/taskjuggler/WorkingHours_rb.html +1 -1
  364. data/doc/lib/taskjuggler/XMLDocument_rb.html +1 -1
  365. data/doc/lib/taskjuggler/XMLElement_rb.html +1 -1
  366. data/doc/lib/taskjuggler/apps/Tj3Client_rb.html +1 -1
  367. data/doc/lib/taskjuggler/apps/Tj3Daemon_rb.html +1 -1
  368. data/doc/lib/taskjuggler/apps/Tj3Man_rb.html +1 -1
  369. data/doc/lib/taskjuggler/apps/Tj3SsReceiver_rb.html +1 -1
  370. data/doc/lib/taskjuggler/apps/Tj3SsSender_rb.html +1 -1
  371. data/doc/lib/taskjuggler/apps/Tj3TsReceiver_rb.html +1 -1
  372. data/doc/lib/taskjuggler/apps/Tj3TsSender_rb.html +1 -1
  373. data/doc/lib/taskjuggler/apps/Tj3TsSummary_rb.html +1 -1
  374. data/doc/lib/taskjuggler/apps/Tj3_rb.html +1 -1
  375. data/doc/lib/taskjuggler/daemon/Daemon_rb.html +1 -1
  376. data/doc/lib/taskjuggler/daemon/ProcessIntercom_rb.html +1 -1
  377. data/doc/lib/taskjuggler/daemon/ProjectBroker_rb.html +1 -1
  378. data/doc/lib/taskjuggler/daemon/ProjectServer_rb.html +1 -1
  379. data/doc/lib/taskjuggler/daemon/ReportServer_rb.html +1 -1
  380. data/doc/lib/taskjuggler/daemon/ReportServlet_rb.html +1 -1
  381. data/doc/lib/taskjuggler/daemon/WebServer_rb.html +1 -1
  382. data/doc/lib/taskjuggler/daemon/WelcomePage_rb.html +1 -1
  383. data/doc/lib/taskjuggler/deep_copy_rb.html +1 -1
  384. data/doc/lib/taskjuggler/reports/CSVFile_rb.html +1 -1
  385. data/doc/lib/taskjuggler/reports/CollisionDetector_rb.html +1 -1
  386. data/doc/lib/taskjuggler/reports/ColumnTable_rb.html +1 -1
  387. data/doc/lib/taskjuggler/reports/GanttChart_rb.html +1 -1
  388. data/doc/lib/taskjuggler/reports/GanttContainer_rb.html +1 -1
  389. data/doc/lib/taskjuggler/reports/GanttHeaderScaleItem_rb.html +1 -1
  390. data/doc/lib/taskjuggler/reports/GanttHeader_rb.html +1 -1
  391. data/doc/lib/taskjuggler/reports/GanttLine_rb.html +1 -1
  392. data/doc/lib/taskjuggler/reports/GanttLoadStack_rb.html +1 -1
  393. data/doc/lib/taskjuggler/reports/GanttMilestone_rb.html +1 -1
  394. data/doc/lib/taskjuggler/reports/GanttRouter_rb.html +1 -1
  395. data/doc/lib/taskjuggler/reports/GanttTaskBar_rb.html +1 -1
  396. data/doc/lib/taskjuggler/reports/HTMLGraphics_rb.html +1 -1
  397. data/doc/lib/taskjuggler/reports/ICalReport_rb.html +71 -0
  398. data/doc/lib/taskjuggler/reports/Navigator_rb.html +1 -1
  399. data/doc/lib/taskjuggler/reports/NikuReport_rb.html +1 -1
  400. data/doc/lib/taskjuggler/reports/ReportBase_rb.html +1 -1
  401. data/doc/lib/taskjuggler/reports/ReportContext_rb.html +1 -1
  402. data/doc/lib/taskjuggler/reports/ReportTableCell_rb.html +1 -1
  403. data/doc/lib/taskjuggler/reports/ReportTableColumn_rb.html +1 -1
  404. data/doc/lib/taskjuggler/reports/ReportTableLegend_rb.html +1 -1
  405. data/doc/lib/taskjuggler/reports/ReportTableLine_rb.html +1 -1
  406. data/doc/lib/taskjuggler/reports/ReportTable_rb.html +1 -1
  407. data/doc/lib/taskjuggler/reports/Report_rb.html +5 -1
  408. data/doc/lib/taskjuggler/reports/ResourceListRE_rb.html +1 -1
  409. data/doc/lib/taskjuggler/reports/StatusSheetReport_rb.html +1 -1
  410. data/doc/lib/taskjuggler/reports/TableReport_rb.html +1 -1
  411. data/doc/lib/taskjuggler/reports/TagFile_rb.html +71 -0
  412. data/doc/lib/taskjuggler/reports/TaskListRE_rb.html +1 -1
  413. data/doc/lib/taskjuggler/reports/TextReport_rb.html +1 -1
  414. data/doc/lib/taskjuggler/reports/TimeSheetReport_rb.html +1 -1
  415. data/doc/lib/taskjuggler/reports/TjpExportRE_rb.html +1 -1
  416. data/doc/lib/tj3_rb.html +1 -1
  417. data/doc/lib/tj3client_rb.html +1 -1
  418. data/doc/lib/tj3d_rb.html +1 -1
  419. data/doc/lib/tj3man_rb.html +1 -1
  420. data/doc/lib/tj3ss_receiver_rb.html +1 -1
  421. data/doc/lib/tj3ss_sender_rb.html +1 -1
  422. data/doc/lib/tj3ts_receiver_rb.html +1 -1
  423. data/doc/lib/tj3ts_sender_rb.html +1 -1
  424. data/doc/lib/tj3ts_summary_rb.html +1 -1
  425. data/lib/taskjuggler/Account.rb +1 -1
  426. data/lib/taskjuggler/AccountScenario.rb +1 -1
  427. data/lib/taskjuggler/Allocation.rb +5 -5
  428. data/lib/taskjuggler/AttributeBase.rb +30 -22
  429. data/lib/taskjuggler/Attributes.rb +80 -78
  430. data/lib/taskjuggler/Booking.rb +2 -2
  431. data/lib/taskjuggler/Charge.rb +3 -3
  432. data/lib/taskjuggler/ICalendar.rb +251 -0
  433. data/lib/taskjuggler/Interval.rb +215 -53
  434. data/lib/taskjuggler/IntervalList.rb +5 -5
  435. data/lib/taskjuggler/Limits.rb +79 -69
  436. data/lib/taskjuggler/LogicalFunction.rb +2 -2
  437. data/lib/taskjuggler/MessageHandler.rb +11 -6
  438. data/lib/taskjuggler/Project.rb +208 -95
  439. data/lib/taskjuggler/ProjectFileParser.rb +2 -2
  440. data/lib/taskjuggler/ProjectFileScanner.rb +7 -6
  441. data/lib/taskjuggler/PropertySet.rb +1 -5
  442. data/lib/taskjuggler/PropertyTreeNode.rb +21 -16
  443. data/lib/taskjuggler/Query.rb +10 -7
  444. data/lib/taskjuggler/Resource.rb +6 -1
  445. data/lib/taskjuggler/ResourceScenario.rb +85 -69
  446. data/lib/taskjuggler/RichText/RTFQuery.rb +2 -2
  447. data/lib/taskjuggler/ScenarioData.rb +11 -1
  448. data/lib/taskjuggler/Scoreboard.rb +8 -1
  449. data/lib/taskjuggler/Shift.rb +1 -1
  450. data/lib/taskjuggler/ShiftAssignments.rb +22 -20
  451. data/lib/taskjuggler/Task.rb +1 -1
  452. data/lib/taskjuggler/TaskJuggler.rb +65 -51
  453. data/lib/taskjuggler/TaskScenario.rb +486 -419
  454. data/lib/taskjuggler/TextParser/Scanner.rb +22 -11
  455. data/lib/taskjuggler/TimeSheets.rb +1 -1
  456. data/lib/taskjuggler/Tj3Config.rb +1 -1
  457. data/lib/taskjuggler/TjTime.rb +7 -3
  458. data/lib/taskjuggler/TjpSyntaxRules.rb +157 -23
  459. data/lib/taskjuggler/VimSyntax.rb +18 -0
  460. data/lib/taskjuggler/WorkingHours.rb +20 -4
  461. data/lib/taskjuggler/apps/Tj3.rb +16 -1
  462. data/lib/taskjuggler/reports/GanttLine.rb +1 -1
  463. data/lib/taskjuggler/reports/ICalReport.rb +136 -0
  464. data/lib/taskjuggler/reports/NikuReport.rb +1 -1
  465. data/lib/taskjuggler/reports/Report.rb +59 -0
  466. data/lib/taskjuggler/reports/ReportBase.rb +2 -67
  467. data/lib/taskjuggler/reports/TableReport.rb +9 -8
  468. data/lib/taskjuggler/reports/TagFile.rb +120 -0
  469. data/lib/taskjuggler/reports/TimeSheetReport.rb +3 -3
  470. data/lib/taskjuggler/reports/TjpExportRE.rb +33 -9
  471. data/manual/Installation +126 -0
  472. data/spec/ICalendar_spec.rb +45 -0
  473. data/spec/IntervalList_spec.rb +11 -11
  474. data/tasks/changelog.rake +150 -60
  475. data/tasks/gem.rake +1 -0
  476. data/tasks/vim.rake +2 -2
  477. data/test/TestSuite/Export-Reports/refs/Booking.tjp +1 -1
  478. data/test/TestSuite/Export-Reports/refs/CompletedWork.tji.tjp +40 -0
  479. data/test/TestSuite/Export-Reports/refs/Macro-2.tjp +10 -1
  480. data/test/TestSuite/Export-Reports/refs/TaskPrefix.tjp +1 -1
  481. data/test/TestSuite/HTML-Reports/Alerts.html +160 -412
  482. data/test/TestSuite/HTML-Reports/CellText.html +758 -0
  483. data/test/TestSuite/HTML-Reports/ColumnPeriods.html +156 -0
  484. data/test/TestSuite/HTML-Reports/IsOngoing.html +172 -0
  485. data/test/TestSuite/HTML-Reports/LogicalFunctions.html +245 -0
  486. data/test/TestSuite/HTML-Reports/Query.html +31 -0
  487. data/test/TestSuite/HTML-Reports/css/tjmanual.css +0 -20
  488. data/test/TestSuite/HTML-Reports/css/tjreport.css +6 -7
  489. data/test/TestSuite/HTML-Reports/depArrows.html +851 -0
  490. data/test/TestSuite/HTML-Reports/profile.html +37581 -0
  491. data/test/TestSuite/{Scheduler/Correct → HTML-Reports/scripts}/scripts/wz_tooltip.js +20 -20
  492. data/test/TestSuite/Scheduler/Correct/Booking.tjp +3 -3
  493. data/test/TestSuite/Scheduler/Correct/Duration.tjp +3 -3
  494. data/test/TestSuite/Scheduler/Errors/R.html +113 -0
  495. data/test/TestSuite/Scheduler/Errors/allocate_no_assigned.tjp +15 -0
  496. data/test/TestSuite/{ReportGenerator/Correct → Scheduler/Errors}/css/tjmanual.css +0 -1
  497. data/test/TestSuite/{ReportGenerator/Correct → Scheduler/Errors}/css/tjreport.css +0 -0
  498. data/test/TestSuite/{ReportGenerator/Correct → Scheduler/Errors}/icons/details.png +0 -0
  499. data/test/TestSuite/{ReportGenerator/Correct → Scheduler/Errors}/icons/flag-green.png +0 -0
  500. data/test/TestSuite/{ReportGenerator/Correct → Scheduler/Errors}/icons/flag-red.png +0 -0
  501. data/test/TestSuite/{ReportGenerator/Correct → Scheduler/Errors}/icons/flag-yellow.png +0 -0
  502. data/test/TestSuite/{ReportGenerator/Correct → Scheduler/Errors}/icons/resource.png +0 -0
  503. data/test/TestSuite/{ReportGenerator/Correct → Scheduler/Errors}/icons/resourcegroup.png +0 -0
  504. data/test/TestSuite/{ReportGenerator/Correct → Scheduler/Errors}/icons/task.png +0 -0
  505. data/test/TestSuite/{ReportGenerator/Correct → Scheduler/Errors}/icons/taskgroup.png +0 -0
  506. data/test/TestSuite/{ReportGenerator/Correct → Scheduler/Errors}/icons/trend-down.png +0 -0
  507. data/test/TestSuite/{ReportGenerator/Correct → Scheduler/Errors}/icons/trend-flat.png +0 -0
  508. data/test/TestSuite/{ReportGenerator/Correct → Scheduler/Errors}/icons/trend-up.png +0 -0
  509. data/test/TestSuite/Scheduler/Errors/overbooked_duration.tjp +11 -0
  510. data/test/TestSuite/Scheduler/Errors/overbooked_effort.tjp +11 -0
  511. data/test/TestSuite/Scheduler/Errors/overbooked_length.tjp +13 -0
  512. data/test/TestSuite/{ReportGenerator/Correct → Scheduler/Errors}/scripts/wz_tooltip.js +0 -0
  513. data/test/TestSuite/StatusSheets/dev2.tji +22 -0
  514. data/test/TestSuite/Syntax/Correct/CompletedWork.tji.tjp +38 -0
  515. data/test/TestSuite/Syntax/Correct/Macro-2.tjp +5 -2
  516. data/test/TestSuite/Syntax/Errors/scenario_after_tracking.tjp +8 -0
  517. data/test/TestSuite/TimeSheets/resrep.tji +7 -0
  518. data/test/TestSuite/TimeSheets/ts.tji +351 -0
  519. data/test/TestSuite/TimeSheets/tsdef.tji +2 -0
  520. data/test/test_Limits.rb +38 -30
  521. data/test/test_Scheduler.rb +2 -2
  522. data/test/test_ShiftAssignments.rb +8 -8
  523. data/test/test_WorkingHours.rb +4 -4
  524. metadata +1015 -1005
  525. data/lib/exchangebug.rb +0 -42
  526. data/lib/ruby-signal-bug.rb +0 -55
  527. data/test/TestSuite/Export-Reports/refs/DST.tjp +0 -60
  528. data/test/TestSuite/Export-Reports/refs/ReleasePlan.tjp +0 -80
  529. data/test/TestSuite/HTML-Reports/TimeSheet.html +0 -79
  530. data/test/TestSuite/HTML-Reports/reference.html +0 -51
  531. data/test/TestSuite/ReportGenerator/Correct/Alerts-1.csv +0 -412
  532. data/test/TestSuite/ReportGenerator/Correct/Alerts-1.html +0 -680
  533. data/test/TestSuite/ReportGenerator/Correct/DependencyList.csv +0 -4
  534. data/test/TestSuite/ReportGenerator/Correct/DependencyList.tjp +0 -25
  535. data/test/TestSuite/ReportGenerator/Correct/Journal-1.csv +0 -8
  536. data/test/TestSuite/ReportGenerator/Correct/Journal-2.csv +0 -8
  537. data/test/TestSuite/ReportGenerator/Correct/Journal-3.html +0 -28
  538. data/test/TestSuite/ReportGenerator/Correct/LogicalFunctions2.csv +0 -3
  539. data/test/TestSuite/ReportGenerator/Correct/opennodes-1.csv +0 -2
  540. data/test/TestSuite/ReportGenerator/Correct/opennodes.csv +0 -2
  541. data/test/TestSuite/ReportGenerator/Correct/opennodes.tjp +0 -26
  542. data/test/TestSuite/ReportGenerator/Correct/refs/opennodes-1.csv +0 -2
  543. data/test/TestSuite/Scheduler/' +0 -23
  544. data/test/TestSuite/Scheduler/Correct/css/tjmanual.css +0 -86
  545. data/test/TestSuite/Scheduler/Correct/css/tjreport.css +0 -413
  546. data/test/TestSuite/Scheduler/Correct/icons/details.png +0 -0
  547. data/test/TestSuite/Scheduler/Correct/icons/flag-green.png +0 -0
  548. data/test/TestSuite/Scheduler/Correct/icons/flag-red.png +0 -0
  549. data/test/TestSuite/Scheduler/Correct/icons/flag-yellow.png +0 -0
  550. data/test/TestSuite/Scheduler/Correct/icons/resource.png +0 -0
  551. data/test/TestSuite/Scheduler/Correct/icons/resourcegroup.png +0 -0
  552. data/test/TestSuite/Scheduler/Correct/icons/task.png +0 -0
  553. data/test/TestSuite/Scheduler/Correct/icons/taskgroup.png +0 -0
  554. data/test/TestSuite/Scheduler/Correct/icons/trend-down.png +0 -0
  555. data/test/TestSuite/Scheduler/Correct/icons/trend-flat.png +0 -0
  556. data/test/TestSuite/Scheduler/Correct/icons/trend-up.png +0 -0
  557. data/test/TestSuite/StatusSheetTemplates/project.tji +0 -35
  558. data/test/TestSuite/StatusSheetTemplates/project.tjp +0 -56
  559. data/test/TestSuite/StatusSheets/TimeSheets/2002-03-01/resource1_2002-03-01.tji +0 -0
  560. data/test/TestSuite/Syntax/Correct/DST.tjp +0 -11
  561. data/test/TestSuite/Syntax/Correct/ReleasePlan.tjp +0 -32
  562. data/test/TestSuite/TimeSheets/receiver.log.mod +0 -1056
  563. data/test/TestSuite/TimeSheets/uu.txt +0 -29
@@ -71,6 +71,8 @@
71
71
 
72
72
  <li><a href="#method-c-new">::new</a></li>
73
73
 
74
+ <li><a href="#method-i-book">#book</a></li>
75
+
74
76
  <li><a href="#method-i-dashboard">#dashboard</a></li>
75
77
 
76
78
  <li><a href="#method-i-journalText">#journalText</a></li>
@@ -217,12 +219,24 @@
217
219
 
218
220
  <li><a href="../TaskJuggler/HTMLGraphics.html">TaskJuggler::HTMLGraphics</a></li>
219
221
 
222
+ <li><a href="../TaskJuggler/ICalReport.html">TaskJuggler::ICalReport</a></li>
223
+
224
+ <li><a href="../TaskJuggler/ICalendar.html">TaskJuggler::ICalendar</a></li>
225
+
226
+ <li><a href="../TaskJuggler/ICalendar/Component.html">TaskJuggler::ICalendar::Component</a></li>
227
+
228
+ <li><a href="../TaskJuggler/ICalendar/Event.html">TaskJuggler::ICalendar::Event</a></li>
229
+
230
+ <li><a href="../TaskJuggler/ICalendar/Journal.html">TaskJuggler::ICalendar::Journal</a></li>
231
+
232
+ <li><a href="../TaskJuggler/ICalendar/Person.html">TaskJuggler::ICalendar::Person</a></li>
233
+
234
+ <li><a href="../TaskJuggler/ICalendar/Todo.html">TaskJuggler::ICalendar::Todo</a></li>
235
+
220
236
  <li><a href="../TaskJuggler/Interval.html">TaskJuggler::Interval</a></li>
221
237
 
222
238
  <li><a href="../TaskJuggler/IntervalList.html">TaskJuggler::IntervalList</a></li>
223
239
 
224
- <li><a href="../TaskJuggler/IntervalListAttribute.html">TaskJuggler::IntervalListAttribute</a></li>
225
-
226
240
  <li><a href="../TaskJuggler/JobInfo.html">TaskJuggler::JobInfo</a></li>
227
241
 
228
242
  <li><a href="../TaskJuggler/Journal.html">TaskJuggler::Journal</a></li>
@@ -337,6 +351,8 @@
337
351
 
338
352
  <li><a href="../TaskJuggler/ReportContext.html">TaskJuggler::ReportContext</a></li>
339
353
 
354
+ <li><a href="../TaskJuggler/ReportScenario.html">TaskJuggler::ReportScenario</a></li>
355
+
340
356
  <li><a href="../TaskJuggler/ReportServer.html">TaskJuggler::ReportServer</a></li>
341
357
 
342
358
  <li><a href="../TaskJuggler/ReportServerIface.html">TaskJuggler::ReportServerIface</a></li>
@@ -395,6 +411,8 @@
395
411
 
396
412
  <li><a href="../TaskJuggler/Scoreboard.html">TaskJuggler::Scoreboard</a></li>
397
413
 
414
+ <li><a href="../TaskJuggler/ScoreboardInterval.html">TaskJuggler::ScoreboardInterval</a></li>
415
+
398
416
  <li><a href="../TaskJuggler/SheetHandlerBase.html">TaskJuggler::SheetHandlerBase</a></li>
399
417
 
400
418
  <li><a href="../TaskJuggler/SheetReceiver.html">TaskJuggler::SheetReceiver</a></li>
@@ -441,6 +459,10 @@
441
459
 
442
460
  <li><a href="../TaskJuggler/TableReport.html">TaskJuggler::TableReport</a></li>
443
461
 
462
+ <li><a href="../TaskJuggler/TagFile.html">TaskJuggler::TagFile</a></li>
463
+
464
+ <li><a href="../TaskJuggler/TagFile/TagFileEntry.html">TaskJuggler::TagFile::TagFileEntry</a></li>
465
+
444
466
  <li><a href="../TaskJuggler/Task.html">TaskJuggler::Task</a></li>
445
467
 
446
468
  <li><a href="../TaskJuggler/TaskDepListAttribute.html">TaskJuggler::TaskDepListAttribute</a></li>
@@ -491,6 +513,10 @@
491
513
 
492
514
  <li><a href="../TaskJuggler/TextReport.html">TaskJuggler::TextReport</a></li>
493
515
 
516
+ <li><a href="../TaskJuggler/TimeInterval.html">TaskJuggler::TimeInterval</a></li>
517
+
518
+ <li><a href="../TaskJuggler/TimeIntervalListAttribute.html">TaskJuggler::TimeIntervalListAttribute</a></li>
519
+
494
520
  <li><a href="../TaskJuggler/TimeSheet.html">TaskJuggler::TimeSheet</a></li>
495
521
 
496
522
  <li><a href="../TaskJuggler/TimeSheetReceiver.html">TaskJuggler::TimeSheetReceiver</a></li>
@@ -635,7 +661,7 @@
635
661
  24:
636
662
  25: <span class="ruby-ivar">@data</span> = <span class="ruby-constant">Array</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@project</span>.<span class="ruby-identifier">scenarioCount</span>, <span class="ruby-keyword kw">nil</span>)
637
663
  26: <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">scenarioCount</span>.<span class="ruby-identifier">times</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">i</span><span class="ruby-operator">|</span>
638
- 27: <span class="ruby-ivar">@data</span>[<span class="ruby-identifier">i</span>] = <span class="ruby-constant">ResourceScenario</span>.<span class="ruby-identifier">new</span>(<span class="ruby-keyword kw">self</span>, <span class="ruby-identifier">i</span>, <span class="ruby-ivar">@scenarioAttributes</span>[<span class="ruby-identifier">i</span>])
664
+ 27: <span class="ruby-constant">ResourceScenario</span>.<span class="ruby-identifier">new</span>(<span class="ruby-keyword kw">self</span>, <span class="ruby-identifier">i</span>, <span class="ruby-ivar">@scenarioAttributes</span>[<span class="ruby-identifier">i</span>])
639
665
  28: <span class="ruby-keyword kw">end</span>
640
666
  29: <span class="ruby-keyword kw">end</span></pre>
641
667
  </div>
@@ -654,6 +680,42 @@
654
680
  <h3 class="section-header">Public Instance Methods</h3>
655
681
 
656
682
 
683
+ <div id="book-method" class="method-detail ">
684
+ <a name="method-i-book"></a>
685
+
686
+ <div class="method-heading">
687
+
688
+ <span class="method-name">book</span><span
689
+ class="method-args">(scenarioIdx, sbIdx, task)</span>
690
+ <span class="method-click-advice">click to toggle source</span>
691
+
692
+ </div>
693
+
694
+ <div class="method-description">
695
+
696
+ <p>
697
+ Just a shortcut to avoid the slower calls via method_missing.
698
+ </p>
699
+
700
+
701
+
702
+ <div class="method-source-code"
703
+ id="book-source">
704
+ <pre>
705
+ <span class="ruby-comment cmt"># File lib/taskjuggler/Resource.rb, line 32</span>
706
+ 32: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">book</span>(<span class="ruby-identifier">scenarioIdx</span>, <span class="ruby-identifier">sbIdx</span>, <span class="ruby-identifier">task</span>)
707
+ 33: <span class="ruby-ivar">@data</span>[<span class="ruby-identifier">scenarioIdx</span>].<span class="ruby-identifier">book</span>(<span class="ruby-identifier">sbIdx</span>, <span class="ruby-identifier">task</span>)
708
+ 34: <span class="ruby-keyword kw">end</span></pre>
709
+ </div>
710
+
711
+ </div>
712
+
713
+
714
+
715
+
716
+ </div>
717
+
718
+
657
719
  <div id="method-missing-method" class="method-detail ">
658
720
  <a name="method-i-method_missing"></a>
659
721
 
@@ -680,10 +742,10 @@ we try to find it in <a href="ResourceScenario.html">ResourceScenario</a>.
680
742
  <div class="method-source-code"
681
743
  id="method-missing-source">
682
744
  <pre>
683
- <span class="ruby-comment cmt"># File lib/taskjuggler/Resource.rb, line 35</span>
684
- 35: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">method_missing</span>(<span class="ruby-identifier">func</span>, <span class="ruby-identifier">scenarioIdx</span>, *<span class="ruby-identifier">args</span>)
685
- 36: <span class="ruby-ivar">@data</span>[<span class="ruby-identifier">scenarioIdx</span>].<span class="ruby-identifier">method</span>(<span class="ruby-identifier">func</span>).<span class="ruby-identifier">call</span>(*<span class="ruby-identifier">args</span>)
686
- 37: <span class="ruby-keyword kw">end</span></pre>
745
+ <span class="ruby-comment cmt"># File lib/taskjuggler/Resource.rb, line 40</span>
746
+ 40: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">method_missing</span>(<span class="ruby-identifier">func</span>, <span class="ruby-identifier">scenarioIdx</span>, *<span class="ruby-identifier">args</span>)
747
+ 41: <span class="ruby-ivar">@data</span>[<span class="ruby-identifier">scenarioIdx</span>].<span class="ruby-identifier">method</span>(<span class="ruby-identifier">func</span>).<span class="ruby-identifier">call</span>(*<span class="ruby-identifier">args</span>)
748
+ 42: <span class="ruby-keyword kw">end</span></pre>
687
749
  </div>
688
750
 
689
751
  </div>
@@ -714,10 +776,10 @@ we try to find it in <a href="ResourceScenario.html">ResourceScenario</a>.
714
776
  <div class="method-source-code"
715
777
  id="query-dashboard-source">
716
778
  <pre>
717
- <span class="ruby-comment cmt"># File lib/taskjuggler/Resource.rb, line 43</span>
718
- 43: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">query_dashboard</span>(<span class="ruby-identifier">query</span>)
719
- 44: <span class="ruby-identifier">dashboard</span>(<span class="ruby-identifier">query</span>)
720
- 45: <span class="ruby-keyword kw">end</span></pre>
779
+ <span class="ruby-comment cmt"># File lib/taskjuggler/Resource.rb, line 48</span>
780
+ 48: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">query_dashboard</span>(<span class="ruby-identifier">query</span>)
781
+ 49: <span class="ruby-identifier">dashboard</span>(<span class="ruby-identifier">query</span>)
782
+ 50: <span class="ruby-keyword kw">end</span></pre>
721
783
  </div>
722
784
 
723
785
  </div>
@@ -748,10 +810,10 @@ we try to find it in <a href="ResourceScenario.html">ResourceScenario</a>.
748
810
  <div class="method-source-code"
749
811
  id="query-journal-source">
750
812
  <pre>
751
- <span class="ruby-comment cmt"># File lib/taskjuggler/Resource.rb, line 39</span>
752
- 39: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">query_journal</span>(<span class="ruby-identifier">query</span>)
753
- 40: <span class="ruby-identifier">journalText</span>(<span class="ruby-identifier">query</span>, <span class="ruby-keyword kw">true</span>)
754
- 41: <span class="ruby-keyword kw">end</span></pre>
813
+ <span class="ruby-comment cmt"># File lib/taskjuggler/Resource.rb, line 44</span>
814
+ 44: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">query_journal</span>(<span class="ruby-identifier">query</span>)
815
+ 45: <span class="ruby-identifier">journalText</span>(<span class="ruby-identifier">query</span>, <span class="ruby-keyword kw">true</span>)
816
+ 46: <span class="ruby-keyword kw">end</span></pre>
755
817
  </div>
756
818
 
757
819
  </div>
@@ -790,56 +852,56 @@ Create a dashboard-like list of all task that have a current alert status.
790
852
  <div class="method-source-code"
791
853
  id="dashboard-source">
792
854
  <pre>
793
- <span class="ruby-comment cmt"># File lib/taskjuggler/Resource.rb, line 150</span>
794
- 150: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">dashboard</span>(<span class="ruby-identifier">query</span>)
795
- 151: <span class="ruby-identifier">scenarioIdx</span> = <span class="ruby-ivar">@project</span>[<span class="ruby-value str">'trackingScenarioIdx'</span>]
796
- 152: <span class="ruby-identifier">taskList</span> = []
797
- 153: <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">scenarioIdx</span>
798
- 154: <span class="ruby-identifier">rText</span> = <span class="ruby-value str">&quot;No 'trackingscenario' defined.&quot;</span>
799
- 155: <span class="ruby-keyword kw">else</span>
800
- 156: <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">tasks</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">task</span><span class="ruby-operator">|</span>
801
- 157: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">task</span>[<span class="ruby-value str">'responsible'</span>, <span class="ruby-identifier">scenarioIdx</span>].<span class="ruby-identifier">include?</span>(<span class="ruby-keyword kw">self</span>) <span class="ruby-operator">&amp;&amp;</span>
802
- 158: <span class="ruby-operator">!</span><span class="ruby-ivar">@project</span>[<span class="ruby-value str">'journal'</span>].<span class="ruby-identifier">currentEntries</span>(<span class="ruby-identifier">query</span>.<span class="ruby-identifier">end</span>, <span class="ruby-identifier">task</span>,
803
- 159: <span class="ruby-value">0</span>, <span class="ruby-identifier">query</span>.<span class="ruby-identifier">start</span>,
804
- 160: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">hideJournalEntry</span>).<span class="ruby-identifier">empty?</span>
805
- 161: <span class="ruby-identifier">taskList</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">task</span>
806
- 162: <span class="ruby-keyword kw">end</span>
807
- 163: <span class="ruby-keyword kw">end</span>
808
- 164: <span class="ruby-keyword kw">end</span>
809
- 165:
810
- 166: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">taskList</span>.<span class="ruby-identifier">empty?</span>
811
- 167: <span class="ruby-identifier">rText</span> = <span class="ruby-node">&quot;We have no current status for any task that #{name} &quot;</span> <span class="ruby-operator">+</span>
812
- 168: <span class="ruby-value str">&quot;is responsible for.&quot;</span>
813
- 169: <span class="ruby-keyword kw">else</span>
814
- 170: <span class="ruby-comment cmt"># The components of the message are either UTF-8 text or RichText. For</span>
815
- 171: <span class="ruby-comment cmt"># the RichText components, we use the originally provided markup since</span>
816
- 172: <span class="ruby-comment cmt"># we compose the result as RichText markup first.</span>
817
- 173: <span class="ruby-identifier">rText</span> = <span class="ruby-value str">''</span>
818
- 174:
819
- 175: <span class="ruby-identifier">taskList</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">task</span><span class="ruby-operator">|</span>
820
- 176: <span class="ruby-identifier">rText</span> <span class="ruby-operator">+=</span> <span class="ruby-value str">&quot;=== &lt;nowiki&gt;[&lt;/nowiki&gt;&quot;</span> <span class="ruby-operator">+</span>
821
- 177: <span class="ruby-node">&quot;#{task.query_alert(query).richText.inputText}&quot;</span> <span class="ruby-operator">+</span>
822
- 178: <span class="ruby-node">&quot;&lt;nowiki&gt;] Task: #{task.name}&lt;/nowiki&gt; &quot;</span> <span class="ruby-operator">+</span>
823
- 179: <span class="ruby-node">&quot;(#{task.fullId}) ===\n\n&quot;</span>
824
- 180: <span class="ruby-identifier">rText</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">task</span>.<span class="ruby-identifier">query_journalmessages</span>(<span class="ruby-identifier">query</span>).<span class="ruby-identifier">richText</span>.<span class="ruby-identifier">inputText</span> <span class="ruby-operator">+</span> <span class="ruby-value str">&quot;\n\n&quot;</span>
825
- 181: <span class="ruby-keyword kw">end</span>
826
- 182: <span class="ruby-keyword kw">end</span>
827
- 183:
828
- 184: <span class="ruby-comment cmt"># Now convert the RichText markup String into RichTextIntermediate</span>
829
- 185: <span class="ruby-comment cmt"># format.</span>
830
- 186: <span class="ruby-keyword kw">unless</span> (<span class="ruby-identifier">rti</span> = <span class="ruby-constant">RichText</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">rText</span>, <span class="ruby-constant">RTFHandlers</span>.<span class="ruby-identifier">create</span>(<span class="ruby-ivar">@project</span>),
831
- 187: <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">messageHandler</span>).
832
- 188: <span class="ruby-identifier">generateIntermediateFormat</span>)
833
- 189: <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">messageHandler</span>.<span class="ruby-identifier">warning</span>(
834
- 190: <span class="ruby-value str">'res_dashboard'</span>, <span class="ruby-value str">'Syntax error in dashboard text'</span>)
835
- 191: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span>
836
- 192: <span class="ruby-keyword kw">end</span>
837
- 193: <span class="ruby-comment cmt"># No section numbers, please!</span>
838
- 194: <span class="ruby-identifier">rti</span>.<span class="ruby-identifier">sectionNumbers</span> = <span class="ruby-keyword kw">false</span>
839
- 195: <span class="ruby-comment cmt"># We use a special class to allow CSS formating.</span>
840
- 196: <span class="ruby-identifier">rti</span>.<span class="ruby-identifier">cssClass</span> = <span class="ruby-value str">'tj_journal'</span>
841
- 197: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">rti</span> = <span class="ruby-identifier">rti</span>
842
- 198: <span class="ruby-keyword kw">end</span></pre>
855
+ <span class="ruby-comment cmt"># File lib/taskjuggler/Resource.rb, line 155</span>
856
+ 155: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">dashboard</span>(<span class="ruby-identifier">query</span>)
857
+ 156: <span class="ruby-identifier">scenarioIdx</span> = <span class="ruby-ivar">@project</span>[<span class="ruby-value str">'trackingScenarioIdx'</span>]
858
+ 157: <span class="ruby-identifier">taskList</span> = []
859
+ 158: <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">scenarioIdx</span>
860
+ 159: <span class="ruby-identifier">rText</span> = <span class="ruby-value str">&quot;No 'trackingscenario' defined.&quot;</span>
861
+ 160: <span class="ruby-keyword kw">else</span>
862
+ 161: <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">tasks</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">task</span><span class="ruby-operator">|</span>
863
+ 162: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">task</span>[<span class="ruby-value str">'responsible'</span>, <span class="ruby-identifier">scenarioIdx</span>].<span class="ruby-identifier">include?</span>(<span class="ruby-keyword kw">self</span>) <span class="ruby-operator">&amp;&amp;</span>
864
+ 163: <span class="ruby-operator">!</span><span class="ruby-ivar">@project</span>[<span class="ruby-value str">'journal'</span>].<span class="ruby-identifier">currentEntries</span>(<span class="ruby-identifier">query</span>.<span class="ruby-identifier">end</span>, <span class="ruby-identifier">task</span>,
865
+ 164: <span class="ruby-value">0</span>, <span class="ruby-identifier">query</span>.<span class="ruby-identifier">start</span>,
866
+ 165: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">hideJournalEntry</span>).<span class="ruby-identifier">empty?</span>
867
+ 166: <span class="ruby-identifier">taskList</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">task</span>
868
+ 167: <span class="ruby-keyword kw">end</span>
869
+ 168: <span class="ruby-keyword kw">end</span>
870
+ 169: <span class="ruby-keyword kw">end</span>
871
+ 170:
872
+ 171: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">taskList</span>.<span class="ruby-identifier">empty?</span>
873
+ 172: <span class="ruby-identifier">rText</span> = <span class="ruby-node">&quot;We have no current status for any task that #{name} &quot;</span> <span class="ruby-operator">+</span>
874
+ 173: <span class="ruby-value str">&quot;is responsible for.&quot;</span>
875
+ 174: <span class="ruby-keyword kw">else</span>
876
+ 175: <span class="ruby-comment cmt"># The components of the message are either UTF-8 text or RichText. For</span>
877
+ 176: <span class="ruby-comment cmt"># the RichText components, we use the originally provided markup since</span>
878
+ 177: <span class="ruby-comment cmt"># we compose the result as RichText markup first.</span>
879
+ 178: <span class="ruby-identifier">rText</span> = <span class="ruby-value str">''</span>
880
+ 179:
881
+ 180: <span class="ruby-identifier">taskList</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">task</span><span class="ruby-operator">|</span>
882
+ 181: <span class="ruby-identifier">rText</span> <span class="ruby-operator">+=</span> <span class="ruby-value str">&quot;=== &lt;nowiki&gt;[&lt;/nowiki&gt;&quot;</span> <span class="ruby-operator">+</span>
883
+ 182: <span class="ruby-node">&quot;#{task.query_alert(query).richText.inputText}&quot;</span> <span class="ruby-operator">+</span>
884
+ 183: <span class="ruby-node">&quot;&lt;nowiki&gt;] Task: #{task.name}&lt;/nowiki&gt; &quot;</span> <span class="ruby-operator">+</span>
885
+ 184: <span class="ruby-node">&quot;(#{task.fullId}) ===\n\n&quot;</span>
886
+ 185: <span class="ruby-identifier">rText</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">task</span>.<span class="ruby-identifier">query_journalmessages</span>(<span class="ruby-identifier">query</span>).<span class="ruby-identifier">richText</span>.<span class="ruby-identifier">inputText</span> <span class="ruby-operator">+</span> <span class="ruby-value str">&quot;\n\n&quot;</span>
887
+ 186: <span class="ruby-keyword kw">end</span>
888
+ 187: <span class="ruby-keyword kw">end</span>
889
+ 188:
890
+ 189: <span class="ruby-comment cmt"># Now convert the RichText markup String into RichTextIntermediate</span>
891
+ 190: <span class="ruby-comment cmt"># format.</span>
892
+ 191: <span class="ruby-keyword kw">unless</span> (<span class="ruby-identifier">rti</span> = <span class="ruby-constant">RichText</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">rText</span>, <span class="ruby-constant">RTFHandlers</span>.<span class="ruby-identifier">create</span>(<span class="ruby-ivar">@project</span>),
893
+ 192: <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">messageHandler</span>).
894
+ 193: <span class="ruby-identifier">generateIntermediateFormat</span>)
895
+ 194: <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">messageHandler</span>.<span class="ruby-identifier">warning</span>(
896
+ 195: <span class="ruby-value str">'res_dashboard'</span>, <span class="ruby-value str">'Syntax error in dashboard text'</span>)
897
+ 196: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span>
898
+ 197: <span class="ruby-keyword kw">end</span>
899
+ 198: <span class="ruby-comment cmt"># No section numbers, please!</span>
900
+ 199: <span class="ruby-identifier">rti</span>.<span class="ruby-identifier">sectionNumbers</span> = <span class="ruby-keyword kw">false</span>
901
+ 200: <span class="ruby-comment cmt"># We use a special class to allow CSS formating.</span>
902
+ 201: <span class="ruby-identifier">rti</span>.<span class="ruby-identifier">cssClass</span> = <span class="ruby-value str">'tj_journal'</span>
903
+ 202: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">rti</span> = <span class="ruby-identifier">rti</span>
904
+ 203: <span class="ruby-keyword kw">end</span></pre>
843
905
  </div>
844
906
 
845
907
  </div>
@@ -873,104 +935,104 @@ href="Query.html">Query</a>.
873
935
  <div class="method-source-code"
874
936
  id="journal-ext-source">
875
937
  <pre>
876
- <span class="ruby-comment cmt"># File lib/taskjuggler/Resource.rb, line 50</span>
877
- 50: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">journalText</span>(<span class="ruby-identifier">query</span>, <span class="ruby-identifier">longVersion</span>)
878
- 51: <span class="ruby-comment cmt"># The components of the message are either UTF-8 text or RichText. For</span>
879
- 52: <span class="ruby-comment cmt"># the RichText components, we use the originally provided markup since</span>
880
- 53: <span class="ruby-comment cmt"># we compose the result as RichText markup first.</span>
881
- 54: <span class="ruby-identifier">rText</span> = <span class="ruby-value str">''</span>
882
- 55: <span class="ruby-identifier">list</span> = <span class="ruby-ivar">@project</span>[<span class="ruby-value str">'journal'</span>].<span class="ruby-identifier">entriesByResource</span>(<span class="ruby-keyword kw">self</span>, <span class="ruby-identifier">query</span>.<span class="ruby-identifier">start</span>, <span class="ruby-identifier">query</span>.<span class="ruby-identifier">end</span>,
883
- 56: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">hideJournalEntry</span>)
884
- 57: <span class="ruby-comment cmt"># Sort all entries in buckets by their alert level.</span>
885
- 58: <span class="ruby-identifier">numberOfLevels</span> = <span class="ruby-identifier">project</span>[<span class="ruby-value str">'alertLevels'</span>].<span class="ruby-identifier">length</span>
886
- 59: <span class="ruby-identifier">listByLevel</span> = []
887
- 60: <span class="ruby-identifier">numberOfLevels</span>.<span class="ruby-identifier">times</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">i</span><span class="ruby-operator">|</span> <span class="ruby-identifier">listByLevel</span>[<span class="ruby-identifier">i</span>] = [] }
888
- 61: <span class="ruby-identifier">list</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">entry</span><span class="ruby-operator">|</span>
889
- 62: <span class="ruby-identifier">listByLevel</span>[<span class="ruby-identifier">entry</span>.<span class="ruby-identifier">alertLevel</span>] <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">entry</span>
890
- 63: <span class="ruby-keyword kw">end</span>
891
- 64: (<span class="ruby-identifier">numberOfLevels</span> <span class="ruby-operator">-</span> <span class="ruby-value">1</span>).<span class="ruby-identifier">downto</span>(<span class="ruby-value">0</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">level</span><span class="ruby-operator">|</span>
892
- 65: <span class="ruby-identifier">levelList</span> = <span class="ruby-identifier">listByLevel</span>[<span class="ruby-identifier">level</span>]
893
- 66: <span class="ruby-identifier">levelRecord</span> = <span class="ruby-ivar">@project</span>[<span class="ruby-value str">'alertLevels'</span>][<span class="ruby-identifier">level</span>]
894
- 67: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">query</span>.<span class="ruby-identifier">selfContained</span>
895
- 68: <span class="ruby-identifier">alertName</span> = <span class="ruby-node">&quot;&lt;nowiki&gt;[&lt;/nowiki&gt;&lt;fcol:#{levelRecord[0]}&gt;&quot;</span> <span class="ruby-operator">+</span>
896
- 69: <span class="ruby-node">&quot;#{levelRecord[1]}&lt;/fcol&gt;&lt;nowiki&gt;]&lt;/nowiki&gt;&quot;</span>
897
- 70: <span class="ruby-keyword kw">else</span>
898
- 71: <span class="ruby-identifier">alertName</span> = <span class="ruby-node">&quot;[[File:icons/flag-#{levelRecord[0]}.png|&quot;</span> <span class="ruby-operator">+</span>
899
- 72: <span class="ruby-node">&quot;alt=[#{levelRecord[1]}]|text-bottom]]&quot;</span>
900
- 73: <span class="ruby-keyword kw">end</span>
901
- 74: <span class="ruby-identifier">levelList</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">entry</span><span class="ruby-operator">|</span>
902
- 75: <span class="ruby-identifier">tsRecord</span> = <span class="ruby-identifier">entry</span>.<span class="ruby-identifier">timeSheetRecord</span>
903
- 76:
904
- 77: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">entry</span>.<span class="ruby-identifier">property</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Task</span>)
905
- 78: <span class="ruby-identifier">rText</span> <span class="ruby-operator">+=</span> <span class="ruby-node">&quot;=== #{alertName} &lt;nowiki&gt;#{entry.property.name}&quot;</span> <span class="ruby-operator">+</span>
906
- 79: <span class="ruby-node">&quot;&lt;/nowiki&gt; (ID: #{entry.property.fullId}) ===\n\n&quot;</span>
907
- 80: <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">entry</span>.<span class="ruby-identifier">flags</span>.<span class="ruby-identifier">empty?</span>
908
- 81: <span class="ruby-identifier">rText</span> <span class="ruby-operator">+=</span> <span class="ruby-node">&quot;'''Flags:''' #{entry.flags.join(', ')}\n\n&quot;</span>
909
- 82: <span class="ruby-keyword kw">end</span>
910
- 83: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">tsRecord</span>
911
- 84: <span class="ruby-identifier">rText</span> <span class="ruby-operator">+=</span> <span class="ruby-node">&quot;'''Work:''' #{tsRecord.actualWorkPercent.to_i}% &quot;</span>
912
- 85: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">tsRecord</span>.<span class="ruby-identifier">actualWorkPercent</span> <span class="ruby-operator">!=</span> <span class="ruby-identifier">tsRecord</span>.<span class="ruby-identifier">planWorkPercent</span>
913
- 86: <span class="ruby-identifier">rText</span> <span class="ruby-operator">+=</span> <span class="ruby-node">&quot;(#{tsRecord.planWorkPercent.to_i}%) &quot;</span>
914
- 87: <span class="ruby-keyword kw">end</span>
915
- 88: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">tsRecord</span>.<span class="ruby-identifier">remaining</span>
916
- 89: <span class="ruby-identifier">rText</span> <span class="ruby-operator">+=</span> <span class="ruby-node">&quot;'''Remaining:''' #{tsRecord.actualRemaining}d &quot;</span>
917
- 90: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">tsRecord</span>.<span class="ruby-identifier">actualRemaining</span> <span class="ruby-operator">!=</span> <span class="ruby-identifier">tsRecord</span>.<span class="ruby-identifier">planRemaining</span>
918
- 91: <span class="ruby-identifier">rText</span> <span class="ruby-operator">+=</span> <span class="ruby-node">&quot;(#{tsRecord.planRemaining}d) &quot;</span>
919
- 92: <span class="ruby-keyword kw">end</span>
920
- 93: <span class="ruby-keyword kw">else</span>
921
- 94: <span class="ruby-identifier">rText</span> <span class="ruby-operator">+=</span> <span class="ruby-value str">&quot;'''End:''' &quot;</span> <span class="ruby-operator">+</span>
922
- 95: <span class="ruby-node">&quot;#{tsRecord.actualEnd.to_s(query.timeFormat)} &quot;</span>
923
- 96: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">tsRecord</span>.<span class="ruby-identifier">actualEnd</span> <span class="ruby-operator">!=</span> <span class="ruby-identifier">tsRecord</span>.<span class="ruby-identifier">planEnd</span>
924
- 97: <span class="ruby-identifier">rText</span> <span class="ruby-operator">+=</span> <span class="ruby-node">&quot;(#{tsRecord.planEnd.to_s(query.timeFormat)}) &quot;</span>
925
- 98: <span class="ruby-keyword kw">end</span>
926
- 99: <span class="ruby-keyword kw">end</span>
927
- 100: <span class="ruby-identifier">rText</span> <span class="ruby-operator">+=</span> <span class="ruby-value str">&quot;\n\n&quot;</span>
928
- 101: <span class="ruby-keyword kw">end</span>
929
- 102: <span class="ruby-keyword kw">elsif</span> <span class="ruby-operator">!</span>(<span class="ruby-identifier">tsRecord</span> = <span class="ruby-identifier">entry</span>.<span class="ruby-identifier">timeSheetRecord</span>).<span class="ruby-identifier">nil?</span> <span class="ruby-operator">&amp;&amp;</span>
930
- 103: <span class="ruby-identifier">entry</span>.<span class="ruby-identifier">timeSheetRecord</span>.<span class="ruby-identifier">task</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">String</span>)
931
- 104: <span class="ruby-identifier">rText</span> <span class="ruby-operator">+=</span> <span class="ruby-node">&quot;== #{alertName} &lt;nowiki&gt;[New Task] #{tsRecord.name} &quot;</span> <span class="ruby-operator">+</span>
932
- 105: <span class="ruby-value str">&quot;&lt;/nowiki&gt; &quot;</span><span class="ruby-operator">+</span>
933
- 106: <span class="ruby-node">&quot;(ID: #{tsRecord.task}) ==\n\n&quot;</span>
934
- 107: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">tsRecord</span>
935
- 108: <span class="ruby-identifier">rText</span> <span class="ruby-operator">+=</span> <span class="ruby-node">&quot;'''Work:''' #{tsRecord.actualWorkPercent}% &quot;</span>
936
- 109: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">tsRecord</span>.<span class="ruby-identifier">remaining</span>
937
- 110: <span class="ruby-identifier">rText</span> <span class="ruby-operator">+=</span> <span class="ruby-node">&quot;'''Remaining:''' #{tsRecord.actualRemaining}d &quot;</span>
938
- 111: <span class="ruby-keyword kw">else</span>
939
- 112: <span class="ruby-identifier">rText</span> <span class="ruby-operator">+=</span> <span class="ruby-value str">&quot;'''End:''' &quot;</span> <span class="ruby-operator">+</span>
940
- 113: <span class="ruby-node">&quot;#{tsRecord.actualEnd.to_s(query.timeFormat)} &quot;</span>
941
- 114: <span class="ruby-keyword kw">end</span>
942
- 115: <span class="ruby-identifier">rText</span> <span class="ruby-operator">+=</span> <span class="ruby-value str">&quot;\n\n&quot;</span>
943
- 116: <span class="ruby-keyword kw">end</span>
944
- 117: <span class="ruby-keyword kw">else</span>
945
- 118: <span class="ruby-identifier">rText</span> <span class="ruby-operator">+=</span> <span class="ruby-node">&quot;== #{alertName} Personal Notes ==\n\n&quot;</span>
946
- 119: <span class="ruby-keyword kw">end</span>
947
- 120: <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">entry</span>.<span class="ruby-identifier">headline</span>.<span class="ruby-identifier">empty?</span>
948
- 121: <span class="ruby-identifier">rText</span> <span class="ruby-operator">+=</span> <span class="ruby-node">&quot;'''&lt;nowiki&gt;#{entry.headline}&lt;/nowiki&gt;'''\n\n&quot;</span>
949
- 122: <span class="ruby-keyword kw">end</span>
950
- 123: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">entry</span>.<span class="ruby-identifier">summary</span>
951
- 124: <span class="ruby-identifier">rText</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">entry</span>.<span class="ruby-identifier">summary</span>.<span class="ruby-identifier">richText</span>.<span class="ruby-identifier">inputText</span> <span class="ruby-operator">+</span> <span class="ruby-value str">&quot;\n\n&quot;</span>
952
- 125: <span class="ruby-keyword kw">end</span>
953
- 126: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">longVersion</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">entry</span>.<span class="ruby-identifier">details</span>
954
- 127: <span class="ruby-identifier">rText</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">entry</span>.<span class="ruby-identifier">details</span>.<span class="ruby-identifier">richText</span>.<span class="ruby-identifier">inputText</span> <span class="ruby-operator">+</span> <span class="ruby-value str">&quot;\n\n&quot;</span>
955
- 128: <span class="ruby-keyword kw">end</span>
956
- 129: <span class="ruby-keyword kw">end</span>
957
- 130: <span class="ruby-keyword kw">end</span>
958
- 131:
959
- 132: <span class="ruby-comment cmt"># Now convert the RichText markup String into RichTextIntermediate</span>
960
- 133: <span class="ruby-comment cmt"># format.</span>
961
- 134: <span class="ruby-keyword kw">unless</span> (<span class="ruby-identifier">rti</span> = <span class="ruby-constant">RichText</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">rText</span>, <span class="ruby-constant">RTFHandlers</span>.<span class="ruby-identifier">create</span>(<span class="ruby-ivar">@project</span>),
962
- 135: <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">messageHandler</span>).
963
- 136: <span class="ruby-identifier">generateIntermediateFormat</span>)
964
- 137: <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">messageHandler</span>.<span class="ruby-identifier">warning</span>(
965
- 138: <span class="ruby-value str">'res_journal_text'</span>, <span class="ruby-value str">'Syntax error in journal text'</span>)
966
- 139: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span>
967
- 140: <span class="ruby-keyword kw">end</span>
968
- 141: <span class="ruby-comment cmt"># No section numbers, please!</span>
969
- 142: <span class="ruby-identifier">rti</span>.<span class="ruby-identifier">sectionNumbers</span> = <span class="ruby-keyword kw">false</span>
970
- 143: <span class="ruby-comment cmt"># We use a special class to allow CSS formating.</span>
971
- 144: <span class="ruby-identifier">rti</span>.<span class="ruby-identifier">cssClass</span> = <span class="ruby-value str">'tj_journal'</span>
972
- 145: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">rti</span> = <span class="ruby-identifier">rti</span>
973
- 146: <span class="ruby-keyword kw">end</span></pre>
938
+ <span class="ruby-comment cmt"># File lib/taskjuggler/Resource.rb, line 55</span>
939
+ 55: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">journalText</span>(<span class="ruby-identifier">query</span>, <span class="ruby-identifier">longVersion</span>)
940
+ 56: <span class="ruby-comment cmt"># The components of the message are either UTF-8 text or RichText. For</span>
941
+ 57: <span class="ruby-comment cmt"># the RichText components, we use the originally provided markup since</span>
942
+ 58: <span class="ruby-comment cmt"># we compose the result as RichText markup first.</span>
943
+ 59: <span class="ruby-identifier">rText</span> = <span class="ruby-value str">''</span>
944
+ 60: <span class="ruby-identifier">list</span> = <span class="ruby-ivar">@project</span>[<span class="ruby-value str">'journal'</span>].<span class="ruby-identifier">entriesByResource</span>(<span class="ruby-keyword kw">self</span>, <span class="ruby-identifier">query</span>.<span class="ruby-identifier">start</span>, <span class="ruby-identifier">query</span>.<span class="ruby-identifier">end</span>,
945
+ 61: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">hideJournalEntry</span>)
946
+ 62: <span class="ruby-comment cmt"># Sort all entries in buckets by their alert level.</span>
947
+ 63: <span class="ruby-identifier">numberOfLevels</span> = <span class="ruby-identifier">project</span>[<span class="ruby-value str">'alertLevels'</span>].<span class="ruby-identifier">length</span>
948
+ 64: <span class="ruby-identifier">listByLevel</span> = []
949
+ 65: <span class="ruby-identifier">numberOfLevels</span>.<span class="ruby-identifier">times</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">i</span><span class="ruby-operator">|</span> <span class="ruby-identifier">listByLevel</span>[<span class="ruby-identifier">i</span>] = [] }
950
+ 66: <span class="ruby-identifier">list</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">entry</span><span class="ruby-operator">|</span>
951
+ 67: <span class="ruby-identifier">listByLevel</span>[<span class="ruby-identifier">entry</span>.<span class="ruby-identifier">alertLevel</span>] <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">entry</span>
952
+ 68: <span class="ruby-keyword kw">end</span>
953
+ 69: (<span class="ruby-identifier">numberOfLevels</span> <span class="ruby-operator">-</span> <span class="ruby-value">1</span>).<span class="ruby-identifier">downto</span>(<span class="ruby-value">0</span>) <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">level</span><span class="ruby-operator">|</span>
954
+ 70: <span class="ruby-identifier">levelList</span> = <span class="ruby-identifier">listByLevel</span>[<span class="ruby-identifier">level</span>]
955
+ 71: <span class="ruby-identifier">levelRecord</span> = <span class="ruby-ivar">@project</span>[<span class="ruby-value str">'alertLevels'</span>][<span class="ruby-identifier">level</span>]
956
+ 72: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">query</span>.<span class="ruby-identifier">selfContained</span>
957
+ 73: <span class="ruby-identifier">alertName</span> = <span class="ruby-node">&quot;&lt;nowiki&gt;[&lt;/nowiki&gt;&lt;fcol:#{levelRecord[0]}&gt;&quot;</span> <span class="ruby-operator">+</span>
958
+ 74: <span class="ruby-node">&quot;#{levelRecord[1]}&lt;/fcol&gt;&lt;nowiki&gt;]&lt;/nowiki&gt;&quot;</span>
959
+ 75: <span class="ruby-keyword kw">else</span>
960
+ 76: <span class="ruby-identifier">alertName</span> = <span class="ruby-node">&quot;[[File:icons/flag-#{levelRecord[0]}.png|&quot;</span> <span class="ruby-operator">+</span>
961
+ 77: <span class="ruby-node">&quot;alt=[#{levelRecord[1]}]|text-bottom]]&quot;</span>
962
+ 78: <span class="ruby-keyword kw">end</span>
963
+ 79: <span class="ruby-identifier">levelList</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">entry</span><span class="ruby-operator">|</span>
964
+ 80: <span class="ruby-identifier">tsRecord</span> = <span class="ruby-identifier">entry</span>.<span class="ruby-identifier">timeSheetRecord</span>
965
+ 81:
966
+ 82: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">entry</span>.<span class="ruby-identifier">property</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Task</span>)
967
+ 83: <span class="ruby-identifier">rText</span> <span class="ruby-operator">+=</span> <span class="ruby-node">&quot;=== #{alertName} &lt;nowiki&gt;#{entry.property.name}&quot;</span> <span class="ruby-operator">+</span>
968
+ 84: <span class="ruby-node">&quot;&lt;/nowiki&gt; (ID: #{entry.property.fullId}) ===\n\n&quot;</span>
969
+ 85: <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">entry</span>.<span class="ruby-identifier">flags</span>.<span class="ruby-identifier">empty?</span>
970
+ 86: <span class="ruby-identifier">rText</span> <span class="ruby-operator">+=</span> <span class="ruby-node">&quot;'''Flags:''' #{entry.flags.join(', ')}\n\n&quot;</span>
971
+ 87: <span class="ruby-keyword kw">end</span>
972
+ 88: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">tsRecord</span>
973
+ 89: <span class="ruby-identifier">rText</span> <span class="ruby-operator">+=</span> <span class="ruby-node">&quot;'''Work:''' #{tsRecord.actualWorkPercent.to_i}% &quot;</span>
974
+ 90: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">tsRecord</span>.<span class="ruby-identifier">actualWorkPercent</span> <span class="ruby-operator">!=</span> <span class="ruby-identifier">tsRecord</span>.<span class="ruby-identifier">planWorkPercent</span>
975
+ 91: <span class="ruby-identifier">rText</span> <span class="ruby-operator">+=</span> <span class="ruby-node">&quot;(#{tsRecord.planWorkPercent.to_i}%) &quot;</span>
976
+ 92: <span class="ruby-keyword kw">end</span>
977
+ 93: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">tsRecord</span>.<span class="ruby-identifier">remaining</span>
978
+ 94: <span class="ruby-identifier">rText</span> <span class="ruby-operator">+=</span> <span class="ruby-node">&quot;'''Remaining:''' #{tsRecord.actualRemaining}d &quot;</span>
979
+ 95: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">tsRecord</span>.<span class="ruby-identifier">actualRemaining</span> <span class="ruby-operator">!=</span> <span class="ruby-identifier">tsRecord</span>.<span class="ruby-identifier">planRemaining</span>
980
+ 96: <span class="ruby-identifier">rText</span> <span class="ruby-operator">+=</span> <span class="ruby-node">&quot;(#{tsRecord.planRemaining}d) &quot;</span>
981
+ 97: <span class="ruby-keyword kw">end</span>
982
+ 98: <span class="ruby-keyword kw">else</span>
983
+ 99: <span class="ruby-identifier">rText</span> <span class="ruby-operator">+=</span> <span class="ruby-value str">&quot;'''End:''' &quot;</span> <span class="ruby-operator">+</span>
984
+ 100: <span class="ruby-node">&quot;#{tsRecord.actualEnd.to_s(query.timeFormat)} &quot;</span>
985
+ 101: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">tsRecord</span>.<span class="ruby-identifier">actualEnd</span> <span class="ruby-operator">!=</span> <span class="ruby-identifier">tsRecord</span>.<span class="ruby-identifier">planEnd</span>
986
+ 102: <span class="ruby-identifier">rText</span> <span class="ruby-operator">+=</span> <span class="ruby-node">&quot;(#{tsRecord.planEnd.to_s(query.timeFormat)}) &quot;</span>
987
+ 103: <span class="ruby-keyword kw">end</span>
988
+ 104: <span class="ruby-keyword kw">end</span>
989
+ 105: <span class="ruby-identifier">rText</span> <span class="ruby-operator">+=</span> <span class="ruby-value str">&quot;\n\n&quot;</span>
990
+ 106: <span class="ruby-keyword kw">end</span>
991
+ 107: <span class="ruby-keyword kw">elsif</span> <span class="ruby-operator">!</span>(<span class="ruby-identifier">tsRecord</span> = <span class="ruby-identifier">entry</span>.<span class="ruby-identifier">timeSheetRecord</span>).<span class="ruby-identifier">nil?</span> <span class="ruby-operator">&amp;&amp;</span>
992
+ 108: <span class="ruby-identifier">entry</span>.<span class="ruby-identifier">timeSheetRecord</span>.<span class="ruby-identifier">task</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">String</span>)
993
+ 109: <span class="ruby-identifier">rText</span> <span class="ruby-operator">+=</span> <span class="ruby-node">&quot;== #{alertName} &lt;nowiki&gt;[New Task] #{tsRecord.name} &quot;</span> <span class="ruby-operator">+</span>
994
+ 110: <span class="ruby-value str">&quot;&lt;/nowiki&gt; &quot;</span><span class="ruby-operator">+</span>
995
+ 111: <span class="ruby-node">&quot;(ID: #{tsRecord.task}) ==\n\n&quot;</span>
996
+ 112: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">tsRecord</span>
997
+ 113: <span class="ruby-identifier">rText</span> <span class="ruby-operator">+=</span> <span class="ruby-node">&quot;'''Work:''' #{tsRecord.actualWorkPercent}% &quot;</span>
998
+ 114: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">tsRecord</span>.<span class="ruby-identifier">remaining</span>
999
+ 115: <span class="ruby-identifier">rText</span> <span class="ruby-operator">+=</span> <span class="ruby-node">&quot;'''Remaining:''' #{tsRecord.actualRemaining}d &quot;</span>
1000
+ 116: <span class="ruby-keyword kw">else</span>
1001
+ 117: <span class="ruby-identifier">rText</span> <span class="ruby-operator">+=</span> <span class="ruby-value str">&quot;'''End:''' &quot;</span> <span class="ruby-operator">+</span>
1002
+ 118: <span class="ruby-node">&quot;#{tsRecord.actualEnd.to_s(query.timeFormat)} &quot;</span>
1003
+ 119: <span class="ruby-keyword kw">end</span>
1004
+ 120: <span class="ruby-identifier">rText</span> <span class="ruby-operator">+=</span> <span class="ruby-value str">&quot;\n\n&quot;</span>
1005
+ 121: <span class="ruby-keyword kw">end</span>
1006
+ 122: <span class="ruby-keyword kw">else</span>
1007
+ 123: <span class="ruby-identifier">rText</span> <span class="ruby-operator">+=</span> <span class="ruby-node">&quot;== #{alertName} Personal Notes ==\n\n&quot;</span>
1008
+ 124: <span class="ruby-keyword kw">end</span>
1009
+ 125: <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">entry</span>.<span class="ruby-identifier">headline</span>.<span class="ruby-identifier">empty?</span>
1010
+ 126: <span class="ruby-identifier">rText</span> <span class="ruby-operator">+=</span> <span class="ruby-node">&quot;'''&lt;nowiki&gt;#{entry.headline}&lt;/nowiki&gt;'''\n\n&quot;</span>
1011
+ 127: <span class="ruby-keyword kw">end</span>
1012
+ 128: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">entry</span>.<span class="ruby-identifier">summary</span>
1013
+ 129: <span class="ruby-identifier">rText</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">entry</span>.<span class="ruby-identifier">summary</span>.<span class="ruby-identifier">richText</span>.<span class="ruby-identifier">inputText</span> <span class="ruby-operator">+</span> <span class="ruby-value str">&quot;\n\n&quot;</span>
1014
+ 130: <span class="ruby-keyword kw">end</span>
1015
+ 131: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">longVersion</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">entry</span>.<span class="ruby-identifier">details</span>
1016
+ 132: <span class="ruby-identifier">rText</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">entry</span>.<span class="ruby-identifier">details</span>.<span class="ruby-identifier">richText</span>.<span class="ruby-identifier">inputText</span> <span class="ruby-operator">+</span> <span class="ruby-value str">&quot;\n\n&quot;</span>
1017
+ 133: <span class="ruby-keyword kw">end</span>
1018
+ 134: <span class="ruby-keyword kw">end</span>
1019
+ 135: <span class="ruby-keyword kw">end</span>
1020
+ 136:
1021
+ 137: <span class="ruby-comment cmt"># Now convert the RichText markup String into RichTextIntermediate</span>
1022
+ 138: <span class="ruby-comment cmt"># format.</span>
1023
+ 139: <span class="ruby-keyword kw">unless</span> (<span class="ruby-identifier">rti</span> = <span class="ruby-constant">RichText</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">rText</span>, <span class="ruby-constant">RTFHandlers</span>.<span class="ruby-identifier">create</span>(<span class="ruby-ivar">@project</span>),
1024
+ 140: <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">messageHandler</span>).
1025
+ 141: <span class="ruby-identifier">generateIntermediateFormat</span>)
1026
+ 142: <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">messageHandler</span>.<span class="ruby-identifier">warning</span>(
1027
+ 143: <span class="ruby-value str">'res_journal_text'</span>, <span class="ruby-value str">'Syntax error in journal text'</span>)
1028
+ 144: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span>
1029
+ 145: <span class="ruby-keyword kw">end</span>
1030
+ 146: <span class="ruby-comment cmt"># No section numbers, please!</span>
1031
+ 147: <span class="ruby-identifier">rti</span>.<span class="ruby-identifier">sectionNumbers</span> = <span class="ruby-keyword kw">false</span>
1032
+ 148: <span class="ruby-comment cmt"># We use a special class to allow CSS formating.</span>
1033
+ 149: <span class="ruby-identifier">rti</span>.<span class="ruby-identifier">cssClass</span> = <span class="ruby-value str">'tj_journal'</span>
1034
+ 150: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">rti</span> = <span class="ruby-identifier">rti</span>
1035
+ 151: <span class="ruby-keyword kw">end</span></pre>
974
1036
  </div>
975
1037
 
976
1038
  </div>