taskjuggler 0.0.5 → 0.0.6
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.
- data/CHANGELOG +2086 -0
- data/benchmarks/666tasks.tjp +3183 -0
- data/benchmarks/booking.tjp +14 -10
- data/doc/AppConfig.html +95 -73
- data/doc/Arguments.html +22 -2
- data/doc/CHANGELOG.html +2587 -0
- data/doc/COPYING.html +21 -1
- data/doc/Object.html +161 -122
- data/doc/README.html +21 -1
- data/doc/RuntimeConfig.html +26 -6
- data/doc/String.html +38 -18
- data/doc/StringIO.html +579 -0
- data/doc/TaskJuggler.html +251 -143
- data/doc/TaskJuggler/Account.html +26 -6
- data/doc/TaskJuggler/AccountAttribute.html +28 -8
- data/doc/TaskJuggler/AccountScenario.html +24 -4
- data/doc/TaskJuggler/Allocation.html +30 -10
- data/doc/TaskJuggler/AllocationAttribute.html +28 -8
- data/doc/TaskJuggler/AttributeBase.html +46 -26
- data/doc/TaskJuggler/AttributeDefinition.html +22 -2
- data/doc/TaskJuggler/BatchProcessor.html +40 -20
- data/doc/TaskJuggler/Booking.html +26 -6
- data/doc/TaskJuggler/BookingListAttribute.html +28 -8
- data/doc/TaskJuggler/BooleanAttribute.html +28 -8
- data/doc/TaskJuggler/CSVFile.html +308 -146
- data/doc/TaskJuggler/CellSettingPattern.html +22 -2
- data/doc/TaskJuggler/CellSettingPatternList.html +26 -6
- data/doc/TaskJuggler/Charge.html +26 -6
- data/doc/TaskJuggler/ChargeListAttribute.html +26 -6
- data/doc/TaskJuggler/ChargeSet.html +33 -13
- data/doc/TaskJuggler/ChargeSetListAttribute.html +28 -8
- data/doc/TaskJuggler/ColumnListAttribute.html +26 -6
- data/doc/TaskJuggler/ColumnTable.html +24 -4
- data/doc/TaskJuggler/Daemon.html +26 -6
- data/doc/TaskJuggler/DateAttribute.html +26 -6
- data/doc/TaskJuggler/DefinitionListAttribute.html +22 -2
- data/doc/TaskJuggler/DependencyListAttribute.html +28 -8
- data/doc/TaskJuggler/DurationAttribute.html +28 -8
- data/doc/TaskJuggler/FixnumAttribute.html +24 -4
- data/doc/TaskJuggler/FlagListAttribute.html +28 -8
- data/doc/TaskJuggler/FloatAttribute.html +26 -6
- data/doc/TaskJuggler/FormatListAttribute.html +24 -4
- data/doc/TaskJuggler/GanttChart.html +147 -126
- data/doc/TaskJuggler/GanttContainer.html +34 -14
- data/doc/TaskJuggler/GanttHeader.html +28 -8
- data/doc/TaskJuggler/GanttHeaderScaleItem.html +24 -4
- data/doc/TaskJuggler/GanttLine.html +38 -18
- data/doc/TaskJuggler/GanttLoadStack.html +26 -6
- data/doc/TaskJuggler/GanttMilestone.html +34 -14
- data/doc/TaskJuggler/GanttRouter.html +50 -30
- data/doc/TaskJuggler/GanttTaskBar.html +34 -14
- data/doc/TaskJuggler/HTMLDocument.html +26 -6
- data/doc/TaskJuggler/HTMLGraphics.html +30 -10
- data/doc/TaskJuggler/Interval.html +40 -22
- data/doc/TaskJuggler/IntervalListAttribute.html +28 -8
- data/doc/TaskJuggler/JobInfo.html +24 -4
- data/doc/TaskJuggler/Journal.html +226 -147
- data/doc/TaskJuggler/JournalEntry.html +22 -2
- data/doc/TaskJuggler/JournalEntryList.html +129 -112
- data/doc/TaskJuggler/KeywordArray.html +26 -6
- data/doc/TaskJuggler/KeywordDocumentation.html +46 -26
- data/doc/TaskJuggler/Limits.html +152 -123
- data/doc/TaskJuggler/Limits/Limit.html +149 -70
- data/doc/TaskJuggler/LimitsAttribute.html +36 -51
- data/doc/TaskJuggler/ListAttributeBase.html +24 -4
- data/doc/TaskJuggler/Log.html +50 -32
- data/doc/TaskJuggler/LogFile.html +37 -17
- data/doc/TaskJuggler/LogicalAttribute.html +53 -33
- data/doc/TaskJuggler/LogicalExpression.html +26 -6
- data/doc/TaskJuggler/LogicalExpressionAttribute.html +32 -12
- data/doc/TaskJuggler/LogicalFlag.html +42 -22
- data/doc/TaskJuggler/LogicalFunction.html +204 -140
- data/doc/TaskJuggler/LogicalOperation.html +135 -111
- data/doc/TaskJuggler/Macro.html +22 -2
- data/doc/TaskJuggler/MacroParser.html +32 -12
- data/doc/TaskJuggler/MacroTable.html +32 -12
- data/doc/TaskJuggler/ManagerResponsibilities.html +24 -4
- data/doc/TaskJuggler/ManagerStatusRecord.html +24 -4
- data/doc/TaskJuggler/Message.html +24 -4
- data/doc/TaskJuggler/MessageHandler.html +24 -4
- data/doc/TaskJuggler/Navigator.html +104 -71
- data/doc/TaskJuggler/NavigatorElement.html +32 -12
- data/doc/TaskJuggler/NikuProject.html +22 -2
- data/doc/TaskJuggler/NikuReport.html +310 -228
- data/doc/TaskJuggler/NikuResource.html +22 -2
- data/doc/TaskJuggler/NodeListAttribute.html +615 -0
- data/doc/TaskJuggler/OnShiftCache.html +32 -12
- data/doc/TaskJuggler/ProcessIntercom.html +205 -78
- data/doc/TaskJuggler/ProcessIntercomIface.html +26 -6
- data/doc/TaskJuggler/Project.html +708 -660
- data/doc/TaskJuggler/ProjectBroker.html +506 -304
- data/doc/TaskJuggler/ProjectBrokerIface.html +61 -41
- data/doc/TaskJuggler/ProjectFileParser.html +429 -373
- data/doc/TaskJuggler/ProjectFileScanner.html +1790 -0
- data/doc/TaskJuggler/ProjectRecord.html +80 -60
- data/doc/TaskJuggler/ProjectServer.html +312 -237
- data/doc/TaskJuggler/ProjectServerIface.html +101 -43
- data/doc/TaskJuggler/PropertyAttribute.html +32 -12
- data/doc/TaskJuggler/PropertyList.html +166 -145
- data/doc/TaskJuggler/PropertySet.html +254 -224
- data/doc/TaskJuggler/PropertyTreeNode.html +670 -536
- data/doc/TaskJuggler/Query.html +169 -148
- data/doc/TaskJuggler/RTFHandlers.html +622 -0
- data/doc/TaskJuggler/RTFNavigator.html +28 -8
- data/doc/TaskJuggler/RTFQuery.html +40 -20
- data/doc/TaskJuggler/RTFReport.html +62 -25
- data/doc/TaskJuggler/RTFReportLink.html +765 -0
- data/doc/TaskJuggler/RealFormat.html +26 -6
- data/doc/TaskJuggler/RealFormatAttribute.html +26 -6
- data/doc/TaskJuggler/ReferenceAttribute.html +59 -39
- data/doc/TaskJuggler/Report.html +402 -251
- data/doc/TaskJuggler/ReportBase.html +162 -137
- data/doc/TaskJuggler/ReportContext.html +112 -29
- data/doc/TaskJuggler/ReportServer.html +89 -64
- data/doc/TaskJuggler/ReportServerIface.html +75 -55
- data/doc/TaskJuggler/ReportServerRecord.html +54 -31
- data/doc/TaskJuggler/ReportServlet.html +980 -0
- data/doc/TaskJuggler/ReportTable.html +41 -21
- data/doc/TaskJuggler/ReportTableCell.html +214 -170
- data/doc/TaskJuggler/ReportTableColumn.html +30 -10
- data/doc/TaskJuggler/ReportTableLegend.html +36 -16
- data/doc/TaskJuggler/ReportTableLine.html +32 -12
- data/doc/TaskJuggler/Resource.html +99 -87
- data/doc/TaskJuggler/ResourceListAttribute.html +59 -39
- data/doc/TaskJuggler/ResourceListRE.html +47 -26
- data/doc/TaskJuggler/ResourceScenario.html +403 -437
- data/doc/TaskJuggler/RichText.html +26 -6
- data/doc/TaskJuggler/RichTextAttribute.html +50 -30
- data/doc/TaskJuggler/RichTextDocument.html +37 -17
- data/doc/TaskJuggler/RichTextElement.html +475 -413
- data/doc/TaskJuggler/RichTextException.html +22 -2
- data/doc/TaskJuggler/RichTextFunctionExample.html +28 -8
- data/doc/TaskJuggler/RichTextFunctionHandler.html +24 -4
- data/doc/TaskJuggler/RichTextImage.html +22 -2
- data/doc/TaskJuggler/RichTextIntermediate.html +38 -18
- data/doc/TaskJuggler/RichTextParser.html +56 -34
- data/doc/TaskJuggler/RichTextScanner.html +82 -61
- data/doc/TaskJuggler/RichTextSnip.html +34 -14
- data/doc/TaskJuggler/RichTextSyntaxRules.html +507 -353
- data/doc/TaskJuggler/Scenario.html +22 -2
- data/doc/TaskJuggler/ScenarioData.html +30 -46
- data/doc/TaskJuggler/ScenarioListAttribute.html +38 -18
- data/doc/TaskJuggler/Scoreboard.html +42 -22
- data/doc/TaskJuggler/SheetHandlerBase.html +40 -20
- data/doc/TaskJuggler/SheetReceiver.html +333 -295
- data/doc/TaskJuggler/SheetSender.html +253 -230
- data/doc/TaskJuggler/Shift.html +26 -6
- data/doc/TaskJuggler/ShiftAssignment.html +89 -73
- data/doc/TaskJuggler/ShiftAssignments.html +226 -234
- data/doc/TaskJuggler/ShiftAssignmentsAttribute.html +39 -54
- data/doc/TaskJuggler/ShiftScenario.html +28 -8
- data/doc/TaskJuggler/SortListAttribute.html +34 -14
- data/doc/TaskJuggler/SourceFileInfo.html +24 -4
- data/doc/TaskJuggler/StatusSheetReceiver.html +24 -3
- data/doc/TaskJuggler/StatusSheetReport.html +168 -153
- data/doc/TaskJuggler/StatusSheetSender.html +24 -3
- data/doc/TaskJuggler/StringAttribute.html +38 -18
- data/doc/TaskJuggler/SymbolAttribute.html +32 -12
- data/doc/TaskJuggler/SyntaxReference.html +40 -20
- data/doc/TaskJuggler/TOCEntry.html +26 -6
- data/doc/TaskJuggler/TSResourceRecord.html +22 -2
- data/doc/TaskJuggler/TSTaskRecord.html +22 -2
- data/doc/TaskJuggler/TableColumnDefinition.html +59 -22
- data/doc/TaskJuggler/TableOfContents.html +26 -6
- data/doc/TaskJuggler/TableReport.html +937 -904
- data/doc/TaskJuggler/Task.html +55 -36
- data/doc/TaskJuggler/TaskDependency.html +24 -4
- data/doc/TaskJuggler/TaskListAttribute.html +50 -30
- data/doc/TaskJuggler/TaskListRE.html +27 -7
- data/doc/TaskJuggler/TaskScenario.html +1273 -1153
- data/doc/TaskJuggler/TextFormatter.html +28 -8
- data/doc/TaskJuggler/TextParser.html +585 -338
- data/doc/TaskJuggler/TextParser/Pattern.html +54 -34
- data/doc/TaskJuggler/TextParser/Rule.html +95 -73
- data/doc/TaskJuggler/TextParser/StackElement.html +39 -17
- data/doc/TaskJuggler/TextParser/TextParserResultArray.html +24 -4
- data/doc/TaskJuggler/TextParser/TokenDoc.html +22 -2
- data/doc/TaskJuggler/TextReport.html +28 -8
- data/doc/TaskJuggler/TextScanner.html +400 -1404
- data/doc/TaskJuggler/TextScanner/BufferStreamHandle.html +28 -240
- data/doc/TaskJuggler/TextScanner/FileStreamHandle.html +37 -184
- data/doc/TaskJuggler/TextScanner/MacroStackEntry.html +682 -0
- data/doc/TaskJuggler/TextScanner/StreamHandle.html +342 -67
- data/doc/TaskJuggler/TimeSheet.html +48 -28
- data/doc/TaskJuggler/TimeSheetReceiver.html +24 -3
- data/doc/TaskJuggler/TimeSheetRecord.html +47 -27
- data/doc/TaskJuggler/TimeSheetReport.html +154 -133
- data/doc/TaskJuggler/TimeSheetSender.html +24 -3
- data/doc/TaskJuggler/TimeSheetSummary.html +137 -91
- data/doc/TaskJuggler/TimeSheets.html +26 -6
- data/doc/TaskJuggler/Tj3AppBase.html +85 -58
- data/doc/TaskJuggler/Tj3Client.html +292 -238
- data/doc/TaskJuggler/Tj3Daemon.html +159 -74
- data/doc/TaskJuggler/Tj3SheetAppBase.html +26 -6
- data/doc/TaskJuggler/Tj3SsReceiver.html +26 -6
- data/doc/TaskJuggler/Tj3SsSender.html +53 -26
- data/doc/TaskJuggler/Tj3TsReceiver.html +28 -7
- data/doc/TaskJuggler/Tj3TsSender.html +26 -6
- data/doc/TaskJuggler/Tj3TsSummary.html +26 -6
- data/doc/TaskJuggler/TjException.html +22 -2
- data/doc/TaskJuggler/TjTime.html +216 -160
- data/doc/TaskJuggler/TjpExample.html +34 -14
- data/doc/TaskJuggler/TjpExportRE.html +403 -407
- data/doc/TaskJuggler/TjpSyntaxRules.html +4805 -4408
- data/doc/TaskJuggler/URLParameter.html +649 -0
- data/doc/TaskJuggler/UserManual.html +42 -22
- data/doc/TaskJuggler/WebServer.html +702 -0
- data/doc/TaskJuggler/WorkingHours.html +38 -18
- data/doc/TaskJuggler/WorkingHoursAttribute.html +61 -41
- data/doc/TaskJuggler/XMLBlob.html +24 -4
- data/doc/TaskJuggler/XMLComment.html +24 -4
- data/doc/TaskJuggler/XMLDocument.html +30 -10
- data/doc/TaskJuggler/XMLElement.html +34 -14
- data/doc/TaskJuggler/XMLNamedText.html +22 -2
- data/doc/TaskJuggler/XMLText.html +24 -4
- data/doc/index.html +1841 -1666
- data/doc/lib/AccountScenario_rb.html +1 -1
- data/doc/lib/Account_rb.html +1 -1
- data/doc/lib/Allocation_rb.html +1 -1
- data/doc/lib/AppConfig_rb.html +2 -2
- data/doc/lib/AttributeBase_rb.html +1 -1
- data/doc/lib/AttributeDefinition_rb.html +1 -1
- data/doc/lib/Attributes_rb.html +2 -2
- data/doc/lib/BatchProcessor_rb.html +1 -1
- data/doc/lib/Booking_rb.html +1 -1
- data/doc/lib/ChargeSet_rb.html +1 -1
- data/doc/lib/Charge_rb.html +1 -1
- data/doc/lib/HTMLDocument_rb.html +1 -1
- data/doc/lib/Interval_rb.html +1 -1
- data/doc/lib/Journal_rb.html +2 -2
- data/doc/lib/KeywordArray_rb.html +1 -1
- data/doc/lib/KeywordDocumentation_rb.html +1 -1
- data/doc/lib/Limits_rb.html +2 -2
- data/doc/lib/LogFile_rb.html +2 -2
- data/doc/lib/Log_rb.html +1 -1
- data/doc/lib/LogicalExpression_rb.html +1 -1
- data/doc/lib/LogicalFunction_rb.html +2 -2
- data/doc/lib/LogicalOperation_rb.html +2 -2
- data/doc/lib/MacroParser_rb.html +1 -1
- data/doc/lib/MacroTable_rb.html +1 -1
- data/doc/lib/MessageHandler_rb.html +1 -1
- data/doc/lib/Message_rb.html +1 -1
- data/doc/lib/ProjectFileParser_rb.html +4 -8
- data/doc/lib/ProjectFileScanner_rb.html +67 -0
- data/doc/lib/Project_rb.html +2 -2
- data/doc/lib/PropertyList_rb.html +2 -2
- data/doc/lib/PropertySet_rb.html +2 -2
- data/doc/lib/PropertyTreeNode_rb.html +2 -2
- data/doc/lib/Query_rb.html +2 -2
- data/doc/lib/RTFHandlers_rb.html +73 -0
- data/doc/lib/RTFNavigator_rb.html +1 -1
- data/doc/lib/RTFQuery_rb.html +1 -1
- data/doc/lib/RTFReportLink_rb.html +71 -0
- data/doc/lib/RTFReport_rb.html +2 -2
- data/doc/lib/RealFormat_rb.html +1 -1
- data/doc/lib/ResourceScenario_rb.html +2 -2
- data/doc/lib/Resource_rb.html +2 -2
- data/doc/lib/RichTextDocument_rb.html +1 -1
- data/doc/lib/RichTextElement_rb.html +2 -2
- data/doc/lib/RichTextFunctionExample_rb.html +1 -1
- data/doc/lib/RichTextFunctionHandler_rb.html +1 -1
- data/doc/lib/RichTextParser_rb.html +2 -2
- data/doc/lib/RichTextScanner_rb.html +2 -2
- data/doc/lib/RichTextSnip_rb.html +1 -1
- data/doc/lib/RichTextSyntaxRules_rb.html +2 -2
- data/doc/lib/RichText_rb.html +1 -1
- data/doc/lib/RuntimeConfig_rb.html +1 -1
- data/doc/lib/ScenarioData_rb.html +2 -2
- data/doc/lib/Scenario_rb.html +1 -1
- data/doc/lib/Scoreboard_rb.html +1 -1
- data/doc/lib/SheetHandlerBase_rb.html +1 -1
- data/doc/lib/SheetReceiver_rb.html +2 -2
- data/doc/lib/SheetSender_rb.html +4 -2
- data/doc/lib/ShiftAssignments_rb.html +4 -2
- data/doc/lib/ShiftScenario_rb.html +1 -1
- data/doc/lib/Shift_rb.html +1 -1
- data/doc/lib/SourceFileInfo_rb.html +1 -1
- data/doc/lib/StatusSheetReceiver_rb.html +2 -2
- data/doc/lib/StatusSheetSender_rb.html +2 -2
- data/doc/lib/SyntaxReference_rb.html +1 -1
- data/doc/lib/TOCEntry_rb.html +1 -1
- data/doc/lib/TableColumnDefinition_rb.html +2 -2
- data/doc/lib/TableOfContents_rb.html +1 -1
- data/doc/lib/TaskDependency_rb.html +1 -1
- data/doc/lib/TaskJuggler_rb.html +2 -2
- data/doc/lib/TaskScenario_rb.html +2 -2
- data/doc/lib/Task_rb.html +2 -2
- data/doc/lib/TextFormatter_rb.html +1 -1
- data/doc/lib/TextParser/Pattern_rb.html +1 -1
- data/doc/lib/TextParser/Rule_rb.html +2 -2
- data/doc/lib/TextParser/StackElement_rb.html +2 -2
- data/doc/lib/TextParser/TokenDoc_rb.html +1 -1
- data/doc/lib/TextParser_rb.html +2 -2
- data/doc/lib/TextScanner_rb.html +6 -2
- data/doc/lib/TimeSheetReceiver_rb.html +2 -2
- data/doc/lib/TimeSheetSender_rb.html +2 -2
- data/doc/lib/TimeSheetSummary_rb.html +2 -2
- data/doc/lib/TimeSheets_rb.html +2 -2
- data/doc/lib/Tj3AppBase_rb.html +2 -2
- data/doc/lib/Tj3Config_rb.html +2 -2
- data/doc/lib/Tj3SheetAppBase_rb.html +2 -2
- data/doc/lib/TjException_rb.html +1 -1
- data/doc/lib/TjTime_rb.html +2 -2
- data/doc/lib/TjpExample_rb.html +1 -1
- data/doc/lib/TjpSyntaxRules_rb.html +2 -2
- data/doc/lib/URLParameter_rb.html +67 -0
- data/doc/lib/UTF8String_rb.html +1 -1
- data/doc/lib/UserManual_rb.html +1 -1
- data/doc/lib/WorkingHours_rb.html +1 -1
- data/doc/lib/XMLDocument_rb.html +2 -2
- data/doc/lib/XMLElement_rb.html +1 -1
- data/doc/lib/daemon/Daemon_rb.html +1 -1
- data/doc/lib/daemon/ProcessIntercom_rb.html +2 -2
- data/doc/lib/daemon/ProjectBroker_rb.html +4 -2
- data/doc/lib/daemon/ProjectServer_rb.html +2 -2
- data/doc/lib/daemon/ReportServer_rb.html +2 -2
- data/doc/lib/daemon/WebServer_rb.html +75 -0
- data/doc/lib/deep_copy_rb.html +2 -2
- data/doc/lib/reports/CSVFile_rb.html +2 -2
- data/doc/lib/reports/ColumnTable_rb.html +1 -1
- data/doc/lib/reports/GanttChart_rb.html +2 -2
- data/doc/lib/reports/GanttContainer_rb.html +1 -1
- data/doc/lib/reports/GanttHeaderScaleItem_rb.html +1 -1
- data/doc/lib/reports/GanttHeader_rb.html +1 -1
- data/doc/lib/reports/GanttLine_rb.html +1 -1
- data/doc/lib/reports/GanttLoadStack_rb.html +1 -1
- data/doc/lib/reports/GanttMilestone_rb.html +1 -1
- data/doc/lib/reports/GanttRouter_rb.html +1 -1
- data/doc/lib/reports/GanttTaskBar_rb.html +1 -1
- data/doc/lib/reports/HTMLGraphics_rb.html +1 -1
- data/doc/lib/reports/Navigator_rb.html +2 -2
- data/doc/lib/reports/NikuReport_rb.html +2 -2
- data/doc/lib/reports/ReportBase_rb.html +2 -2
- data/doc/lib/reports/ReportContext_rb.html +2 -2
- data/doc/lib/reports/ReportTableCell_rb.html +2 -2
- data/doc/lib/reports/ReportTableColumn_rb.html +1 -1
- data/doc/lib/reports/ReportTableLegend_rb.html +1 -1
- data/doc/lib/reports/ReportTableLine_rb.html +1 -1
- data/doc/lib/reports/ReportTable_rb.html +2 -2
- data/doc/lib/reports/Report_rb.html +2 -2
- data/doc/lib/reports/ResourceListRE_rb.html +2 -2
- data/doc/lib/reports/StatusSheetReport_rb.html +2 -2
- data/doc/lib/reports/TableReport_rb.html +2 -2
- data/doc/lib/reports/TaskListRE_rb.html +2 -2
- data/doc/lib/reports/TextReport_rb.html +1 -1
- data/doc/lib/reports/TimeSheetReport_rb.html +2 -2
- data/doc/lib/reports/TjpExportRE_rb.html +2 -2
- data/doc/lib/ruby-signal-bug_rb.html +1 -1
- data/doc/lib/taskjuggler3_rb.html +2 -2
- data/doc/lib/tj3client_rb.html +2 -2
- data/doc/lib/tj3d_rb.html +2 -2
- data/doc/lib/tj3man_rb.html +1 -1
- data/doc/lib/tj3ss_receiver_rb.html +1 -1
- data/doc/lib/tj3ss_sender_rb.html +2 -2
- data/doc/lib/tj3ts_receiver_rb.html +2 -2
- data/doc/lib/tj3ts_sender_rb.html +1 -1
- data/doc/lib/tj3ts_summary_rb.html +1 -1
- data/doc/rdoc.css +9 -4
- data/examples/tutorial.tjp +17 -15
- data/gem_spec.rb +3 -0
- data/lib/AppConfig.rb +3 -1
- data/lib/Attributes.rb +10 -8
- data/lib/Journal.rb +55 -20
- data/lib/Limits.rb +72 -46
- data/lib/LogFile.rb +3 -3
- data/lib/LogicalFunction.rb +19 -6
- data/lib/LogicalOperation.rb +5 -1
- data/lib/Project.rb +37 -9
- data/lib/ProjectFileParser.rb +25 -22
- data/lib/ProjectFileScanner.rb +365 -0
- data/lib/PropertyList.rb +2 -1
- data/lib/PropertySet.rb +14 -4
- data/lib/PropertyTreeNode.rb +42 -29
- data/lib/Query.rb +3 -1
- data/lib/RTFHandlers.rb +35 -0
- data/lib/RTFReport.rb +23 -6
- data/lib/RTFReportLink.rb +72 -0
- data/lib/Resource.rb +8 -16
- data/lib/ResourceScenario.rb +1 -22
- data/lib/RichTextElement.rb +42 -0
- data/lib/RichTextParser.rb +6 -4
- data/lib/RichTextScanner.rb +5 -5
- data/lib/RichTextSyntaxRules.rb +48 -10
- data/lib/ScenarioData.rb +5 -3
- data/lib/SheetReceiver.rb +24 -6
- data/lib/SheetSender.rb +17 -13
- data/lib/ShiftAssignments.rb +56 -52
- data/lib/StatusSheetReceiver.rb +1 -0
- data/lib/StatusSheetSender.rb +1 -0
- data/lib/TableColumnDefinition.rb +4 -2
- data/lib/Task.rb +8 -9
- data/lib/TaskJuggler.rb +21 -11
- data/lib/TaskScenario.rb +61 -26
- data/lib/TextParser.rb +268 -106
- data/lib/TextParser/Rule.rb +4 -2
- data/lib/TextParser/StackElement.rb +6 -4
- data/lib/TextScanner.rb +283 -700
- data/lib/TimeSheetReceiver.rb +1 -0
- data/lib/TimeSheetSender.rb +1 -0
- data/lib/TimeSheetSummary.rb +51 -26
- data/lib/TimeSheets.rb +1 -1
- data/lib/Tj3AppBase.rb +8 -1
- data/lib/Tj3Config.rb +1 -1
- data/lib/TjTime.rb +5 -0
- data/lib/TjpSyntaxRules.rb +360 -144
- data/lib/URLParameter.rb +30 -0
- data/lib/XMLDocument.rb +2 -2
- data/lib/daemon/ProcessIntercom.rb +50 -9
- data/lib/daemon/ProjectBroker.rb +63 -10
- data/lib/daemon/ProjectServer.rb +47 -16
- data/lib/daemon/ReportServer.rb +9 -4
- data/lib/daemon/WebServer.rb +204 -0
- data/lib/deep_copy.rb +4 -1
- data/lib/reports/CSVFile.rb +150 -66
- data/lib/reports/GanttChart.rb +2 -1
- data/lib/reports/Navigator.rb +18 -5
- data/lib/reports/NikuReport.rb +32 -2
- data/lib/reports/Report.rb +65 -37
- data/lib/reports/ReportBase.rb +14 -9
- data/lib/reports/ReportContext.rb +19 -4
- data/lib/reports/ReportTable.rb +2 -2
- data/lib/reports/ReportTableCell.rb +54 -30
- data/lib/reports/ResourceListRE.rb +4 -3
- data/lib/reports/StatusSheetReport.rb +8 -13
- data/lib/reports/TableReport.rb +47 -32
- data/lib/reports/TaskListRE.rb +3 -3
- data/lib/reports/TimeSheetReport.rb +14 -5
- data/lib/reports/TjpExportRE.rb +14 -19
- data/lib/taskjuggler3.rb +15 -0
- data/lib/tj3client.rb +9 -7
- data/lib/tj3d.rb +38 -10
- data/lib/tj3ss_sender.rb +7 -0
- data/lib/tj3ts_receiver.rb +1 -0
- data/manual/Day_To_Day_Juggling +1 -1
- data/manual/Rich_Text_Attributes +8 -0
- data/manual/TaskJuggler_2x_Migration +7 -0
- data/manual/The_TaskJuggler_Syntax +20 -6
- data/prj_cfg.rb +3 -2
- data/tasks/changelog.rake +36 -0
- data/tasks/csts.rake +2 -3
- data/tasks/gem.rake +10 -0
- data/tasks/missing.rake +0 -17
- data/test/TestSuite/ReportGenerator/Correct/Journal.html +63 -0
- data/test/TestSuite/ReportGenerator/Correct/Journal.tjp +14 -0
- data/test/TestSuite/{HTML-Reports/LogicalFunctions.tjp → ReportGenerator/Correct/LogicalFunctions1.tjp} +2 -2
- data/test/TestSuite/ReportGenerator/Correct/LogicalFunctions2.csv +3 -0
- data/test/TestSuite/ReportGenerator/Correct/LogicalFunctions2.tjp +19 -0
- data/test/TestSuite/ReportGenerator/Correct/css/tjmanual.css +66 -0
- data/test/TestSuite/ReportGenerator/Correct/css/tjreport.css +407 -0
- data/test/TestSuite/ReportGenerator/Correct/icons/details.png +0 -0
- data/test/TestSuite/ReportGenerator/Correct/icons/flag-green.png +0 -0
- data/test/TestSuite/ReportGenerator/Correct/icons/flag-red.png +0 -0
- data/test/TestSuite/ReportGenerator/Correct/icons/flag-yellow.png +0 -0
- data/test/TestSuite/ReportGenerator/Correct/icons/resource.png +0 -0
- data/test/TestSuite/ReportGenerator/Correct/icons/resourcegroup.png +0 -0
- data/test/TestSuite/ReportGenerator/Correct/icons/task.png +0 -0
- data/test/TestSuite/ReportGenerator/Correct/icons/taskgroup.png +0 -0
- data/test/TestSuite/ReportGenerator/Correct/icons/trend-down.png +0 -0
- data/test/TestSuite/ReportGenerator/Correct/icons/trend-flat.png +0 -0
- data/test/TestSuite/ReportGenerator/Correct/icons/trend-up.png +0 -0
- data/test/TestSuite/ReportGenerator/Correct/opennodes.csv +2 -0
- data/test/TestSuite/ReportGenerator/Correct/opennodes.tjp +26 -0
- data/test/TestSuite/ReportGenerator/Correct/refs/Journal-1.csv +6 -0
- data/test/TestSuite/ReportGenerator/Correct/refs/LogicalFunctions1-1.csv +7 -0
- data/test/TestSuite/ReportGenerator/Correct/refs/LogicalFunctions2-1.csv +2 -0
- data/test/TestSuite/ReportGenerator/Correct/refs/opennodes-1.csv +2 -0
- data/test/TestSuite/ReportGenerator/Correct/scripts/wz_tooltip.js +1301 -0
- data/test/TestSuite/ReportGenerator/Errors/rtp_report_recursion.tjp +20 -0
- data/test/TestSuite/Scheduler/Correct/Container.html +349 -0
- data/test/TestSuite/Scheduler/Correct/Limits.tjp +11 -4
- data/test/TestSuite/Scheduler/Correct/Shift2.html +464 -150
- data/test/TestSuite/Scheduler/Correct/TimeSheet2.html +108 -0
- data/test/TestSuite/Scheduler/Correct/TimeSheet2.tjp +7 -0
- data/test/TestSuite/Scheduler/Correct/css/tjmanual.css +14 -0
- data/test/TestSuite/Scheduler/Correct/css/tjreport.css +233 -21
- data/test/TestSuite/Scheduler/Correct/scripts/wz_tooltip.js +20 -20
- data/test/TestSuite/StatusSheetTemplates/project.tji +35 -0
- data/test/TestSuite/StatusSheetTemplates/project.tjp +56 -0
- data/test/TestSuite/StatusSheets/run +3 -2
- data/test/TestSuite/Syntax/Correct/Include.tjp +1 -1
- data/test/TestSuite/Syntax/Correct/Macro-1.tjp +1 -1
- data/test/TestSuite/Syntax/Correct/Macro-2.tjp +6 -0
- data/test/TestSuite/Syntax/Correct/Macro-3.tjp +14 -0
- data/test/TestSuite/Syntax/Correct/ResourcePrefix.html +32 -0
- data/test/TestSuite/Syntax/Correct/css/tjmanual.css +66 -0
- data/test/TestSuite/Syntax/Correct/css/tjreport.css +407 -0
- data/test/TestSuite/Syntax/Correct/icons/details.png +0 -0
- data/test/TestSuite/Syntax/Correct/icons/flag-green.png +0 -0
- data/test/TestSuite/Syntax/Correct/icons/flag-red.png +0 -0
- data/test/TestSuite/Syntax/Correct/icons/flag-yellow.png +0 -0
- data/test/TestSuite/Syntax/Correct/icons/resource.png +0 -0
- data/test/TestSuite/Syntax/Correct/icons/resourcegroup.png +0 -0
- data/test/TestSuite/Syntax/Correct/icons/task.png +0 -0
- data/test/TestSuite/Syntax/Correct/icons/taskgroup.png +0 -0
- data/test/TestSuite/Syntax/Correct/icons/trend-down.png +0 -0
- data/test/TestSuite/Syntax/Correct/icons/trend-flat.png +0 -0
- data/test/TestSuite/Syntax/Correct/icons/trend-up.png +0 -0
- data/test/TestSuite/Syntax/Correct/include/dir1/file2.tji +3 -0
- data/test/TestSuite/Syntax/Correct/include/dir1/file5.tji +2 -0
- data/test/TestSuite/Syntax/Correct/include/dir3/all.tji +3 -0
- data/test/TestSuite/Syntax/Correct/include/dir3/file1.tji +2 -0
- data/test/TestSuite/Syntax/Correct/include/dir3/file2.tji +1 -0
- data/test/TestSuite/Syntax/Correct/scripts/wz_tooltip.js +1301 -0
- data/test/TestSuite/Syntax/Correct/tutorial.tjp +13 -13
- data/test/TestSuite/Syntax/Errors/empty.tjp +1 -1
- data/test/TestSuite/Syntax/Errors/include_recursion.tjp +1 -0
- data/test/TestSuite/Syntax/Errors/macro_stack_overflow.tjp +2 -1
- data/test/TestSuite/Syntax/Errors/{eof_in_istring1.tjp → no_token_match1.tjp} +2 -2
- data/test/TestSuite/Syntax/Errors/{eof_in_istring2.tjp → no_token_match2.tjp} +2 -2
- data/test/TestSuite/Syntax/Errors/{eof_in_istring3.tjp → no_token_match3.tjp} +1 -1
- data/test/TestSuite/Syntax/Errors/{eof_in_istring4.tjp → no_token_match4.tjp} +1 -1
- data/test/TestSuite/Syntax/Errors/{eof_in_istring5.tjp → no_token_match5.tjp} +1 -1
- data/test/TestSuite/Syntax/Errors/not_scheduled.tjp +13 -0
- data/test/TestSuite/Syntax/Errors/unsupported_token.tjp +1 -1
- data/test/TestSuite/TimeSheets/run +5 -5
- data/test/test_CSVFile.rb +75 -0
- data/test/test_Limits.rb +63 -5
- data/test/test_ProjectFileScanner.rb +163 -0
- data/test/test_ReportGenerator.rb +81 -0
- data/test/test_RichText.rb +21 -3
- data/test/test_Scheduler.rb +1 -1
- data/test/test_ShiftAssignments.rb +4 -4
- data/test/test_Syntax.rb +1 -1
- data/test/test_URLParameter.rb +30 -0
- metadata +126 -32
- data/test/TestSuite/Scheduler/Errors/not_scheduled.tjp +0 -8
- data/test/TestSuite/Syntax/Errors/bad_comment.tjp +0 -7
- data/test/TestSuite/TimeSheets/TimeSheetTemplates/2002-03-01/boss_2002-03-01.tji +0 -36
- data/test/TestSuite/TimeSheets/TimeSheetTemplates/2002-03-01/dev1_2002-03-01.tji +0 -48
- data/test/TestSuite/TimeSheets/TimeSheetTemplates/2002-03-01/dev2_2002-03-01.tji +0 -67
- data/test/TestSuite/TimeSheets/TimeSheetTemplates/2002-03-01/dev3_2002-03-01.tji +0 -67
- data/test/TestSuite/TimeSheets/TimeSheetTemplates/2002-03-01/doc_2002-03-01.tji +0 -48
- data/test/TestSuite/TimeSheets/TimeSheetTemplates/2002-03-01/resources.yml +0 -31
- data/test/TestSuite/TimeSheets/TimeSheetTemplates/2002-03-01/test_2002-03-01.tji +0 -36
- data/test/TestSuite/TimeSheets/TimeSheetTemplates/acceptable_intervals +0 -1
- data/test/TestSuite/TimeSheets/TimeSheets/2002-03-01/all.tji +0 -1
- data/test/TestSuite/TimeSheets/TimeSheets/2002-03-01/dev2_2002-03-01.tji +0 -54
- data/test/TestSuite/TimeSheets/TimeSheets/all.tji +0 -2
- data/test/TestSuite/TimeSheets/receiver.log +0 -102
- data/test/TestSuite/TimeSheets/sender.log +0 -794
- data/test/TestSuite/TimeSheets/summary.log +0 -884
- data/test/TestSuite/TimeSheets/timesheets.log +0 -45
- data/test/TestSuite/TimeSheets/tj3d.log +0 -292
- data/test/test_TextScanner.rb +0 -95
data/doc/lib/tj3client_rb.html
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
<head>
|
|
7
7
|
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
|
|
8
8
|
|
|
9
|
-
<title>File: tj3client.rb [
|
|
9
|
+
<title>File: tj3client.rb [TaskJuggler III API documentation]</title>
|
|
10
10
|
|
|
11
11
|
<link type="text/css" media="screen" href="../rdoc.css" rel="stylesheet" />
|
|
12
12
|
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
<div id="metadata">
|
|
25
25
|
<dl>
|
|
26
26
|
<dt class="modified-date">Last Modified</dt>
|
|
27
|
-
<dd class="modified-date">2010-
|
|
27
|
+
<dd class="modified-date">2010-06-29 13:54:30 +0200</dd>
|
|
28
28
|
|
|
29
29
|
|
|
30
30
|
<dt class="requires">Requires</dt>
|
data/doc/lib/tj3d_rb.html
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
<head>
|
|
7
7
|
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
|
|
8
8
|
|
|
9
|
-
<title>File: tj3d.rb [
|
|
9
|
+
<title>File: tj3d.rb [TaskJuggler III API documentation]</title>
|
|
10
10
|
|
|
11
11
|
<link type="text/css" media="screen" href="../rdoc.css" rel="stylesheet" />
|
|
12
12
|
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
<div id="metadata">
|
|
25
25
|
<dl>
|
|
26
26
|
<dt class="modified-date">Last Modified</dt>
|
|
27
|
-
<dd class="modified-date">2010-
|
|
27
|
+
<dd class="modified-date">2010-06-01 09:25:24 +0200</dd>
|
|
28
28
|
|
|
29
29
|
|
|
30
30
|
<dt class="requires">Requires</dt>
|
data/doc/lib/tj3man_rb.html
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
<head>
|
|
7
7
|
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
|
|
8
8
|
|
|
9
|
-
<title>File: tj3man.rb [
|
|
9
|
+
<title>File: tj3man.rb [TaskJuggler III API documentation]</title>
|
|
10
10
|
|
|
11
11
|
<link type="text/css" media="screen" href="../rdoc.css" rel="stylesheet" />
|
|
12
12
|
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
<head>
|
|
7
7
|
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
|
|
8
8
|
|
|
9
|
-
<title>File: tj3ss_receiver.rb [
|
|
9
|
+
<title>File: tj3ss_receiver.rb [TaskJuggler III API documentation]</title>
|
|
10
10
|
|
|
11
11
|
<link type="text/css" media="screen" href="../rdoc.css" rel="stylesheet" />
|
|
12
12
|
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
<head>
|
|
7
7
|
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
|
|
8
8
|
|
|
9
|
-
<title>File: tj3ss_sender.rb [
|
|
9
|
+
<title>File: tj3ss_sender.rb [TaskJuggler III API documentation]</title>
|
|
10
10
|
|
|
11
11
|
<link type="text/css" media="screen" href="../rdoc.css" rel="stylesheet" />
|
|
12
12
|
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
<div id="metadata">
|
|
25
25
|
<dl>
|
|
26
26
|
<dt class="modified-date">Last Modified</dt>
|
|
27
|
-
<dd class="modified-date">2010-03
|
|
27
|
+
<dd class="modified-date">2010-05-03 13:17:48 +0200</dd>
|
|
28
28
|
|
|
29
29
|
|
|
30
30
|
<dt class="requires">Requires</dt>
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
<head>
|
|
7
7
|
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
|
|
8
8
|
|
|
9
|
-
<title>File: tj3ts_receiver.rb [
|
|
9
|
+
<title>File: tj3ts_receiver.rb [TaskJuggler III API documentation]</title>
|
|
10
10
|
|
|
11
11
|
<link type="text/css" media="screen" href="../rdoc.css" rel="stylesheet" />
|
|
12
12
|
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
<div id="metadata">
|
|
25
25
|
<dl>
|
|
26
26
|
<dt class="modified-date">Last Modified</dt>
|
|
27
|
-
<dd class="modified-date">2010-
|
|
27
|
+
<dd class="modified-date">2010-05-20 14:29:08 +0200</dd>
|
|
28
28
|
|
|
29
29
|
|
|
30
30
|
<dt class="requires">Requires</dt>
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
<head>
|
|
7
7
|
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
|
|
8
8
|
|
|
9
|
-
<title>File: tj3ts_sender.rb [
|
|
9
|
+
<title>File: tj3ts_sender.rb [TaskJuggler III API documentation]</title>
|
|
10
10
|
|
|
11
11
|
<link type="text/css" media="screen" href="../rdoc.css" rel="stylesheet" />
|
|
12
12
|
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
<head>
|
|
7
7
|
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
|
|
8
8
|
|
|
9
|
-
<title>File: tj3ts_summary.rb [
|
|
9
|
+
<title>File: tj3ts_summary.rb [TaskJuggler III API documentation]</title>
|
|
10
10
|
|
|
11
11
|
<link type="text/css" media="screen" href="../rdoc.css" rel="stylesheet" />
|
|
12
12
|
|
data/doc/rdoc.css
CHANGED
|
@@ -103,9 +103,7 @@ body.file p {
|
|
|
103
103
|
list-style: none;
|
|
104
104
|
}
|
|
105
105
|
.indexpage ul :link,
|
|
106
|
-
.indexpage ul :visited
|
|
107
|
-
.file #documentation ul :link,
|
|
108
|
-
.file #documentation ul :visited {
|
|
106
|
+
.indexpage ul :visited {
|
|
109
107
|
font-size: 16px;
|
|
110
108
|
}
|
|
111
109
|
|
|
@@ -270,8 +268,12 @@ ul.link-list .type {
|
|
|
270
268
|
margin: 1em 0.4em;
|
|
271
269
|
}
|
|
272
270
|
|
|
271
|
+
#description li p {
|
|
272
|
+
margin: 0;
|
|
273
|
+
}
|
|
274
|
+
|
|
273
275
|
#description ul {
|
|
274
|
-
margin-left:
|
|
276
|
+
margin-left: 1.5em;
|
|
275
277
|
}
|
|
276
278
|
#description ul li {
|
|
277
279
|
line-height: 1.4em;
|
|
@@ -401,6 +403,9 @@ ul.link-list .type {
|
|
|
401
403
|
#documentation .method-description p + p {
|
|
402
404
|
margin-bottom: 0.5em;
|
|
403
405
|
}
|
|
406
|
+
#documentation .method-description ul {
|
|
407
|
+
margin-left: 1.5em;
|
|
408
|
+
}
|
|
404
409
|
|
|
405
410
|
#documentation .attribute-method-heading {
|
|
406
411
|
background: url(images/tag_green.png) no-repeat left bottom;
|
data/examples/tutorial.tjp
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* TaskJuggler. Please see the TaskJuggler manual for a more detailed
|
|
6
6
|
* description of the various syntax elements.
|
|
7
7
|
*/
|
|
8
|
-
project "Accounting Software" 2002-01-16 +4m {
|
|
8
|
+
project acso "Accounting Software" 2002-01-16 +4m {
|
|
9
9
|
# Hide the clock time. Only show the date.
|
|
10
10
|
timeformat "%Y-%m-%d"
|
|
11
11
|
# Use US format for numbers
|
|
@@ -26,7 +26,6 @@ project "Accounting Software" 2002-01-16 +4m {
|
|
|
26
26
|
scenario delayed "Delayed"
|
|
27
27
|
}
|
|
28
28
|
extend resource {
|
|
29
|
-
text Email "Email"
|
|
30
29
|
text Phone "Phone"
|
|
31
30
|
}
|
|
32
31
|
}
|
|
@@ -63,22 +62,22 @@ account rev "Payments"
|
|
|
63
62
|
balance cost rev
|
|
64
63
|
|
|
65
64
|
resource boss "Paul Henry Bullock" {
|
|
66
|
-
|
|
65
|
+
email "phb@crappysoftware.com"
|
|
67
66
|
Phone "x100"
|
|
68
67
|
rate 480
|
|
69
68
|
}
|
|
70
69
|
resource dev "Developers" {
|
|
71
70
|
resource dev1 "Paul Smith" {
|
|
72
|
-
|
|
71
|
+
email "paul@crappysoftware.com"
|
|
73
72
|
Phone "x362"
|
|
74
73
|
rate 350.0
|
|
75
74
|
}
|
|
76
75
|
resource dev2 "Sébastien Bono" {
|
|
77
|
-
|
|
76
|
+
email "SBono@crappysoftware.com"
|
|
78
77
|
Phone "x234"
|
|
79
78
|
}
|
|
80
79
|
resource dev3 "Klaus Müller" {
|
|
81
|
-
|
|
80
|
+
email "Klaus.Mueller@crappysoftware.com"
|
|
82
81
|
Phone "x490"
|
|
83
82
|
vacation 2002-02-01 - 2002-02-05
|
|
84
83
|
}
|
|
@@ -87,13 +86,13 @@ resource dev "Developers" {
|
|
|
87
86
|
}
|
|
88
87
|
resource misc "The Others" {
|
|
89
88
|
resource test "Peter Murphy" {
|
|
90
|
-
|
|
89
|
+
email "murphy@crappysoftware.com"
|
|
91
90
|
Phone "x666"
|
|
92
91
|
limits { dailymax 6.4h }
|
|
93
92
|
rate 310.0
|
|
94
93
|
}
|
|
95
94
|
resource doc "Dim Sung" {
|
|
96
|
-
|
|
95
|
+
email "sung@crappysoftware.com"
|
|
97
96
|
Phone "x482"
|
|
98
97
|
rate 300.0
|
|
99
98
|
vacation 2002-03-11 - 2002-03-16
|
|
@@ -115,6 +114,7 @@ task AcSo "Accounting Software" {
|
|
|
115
114
|
# For the duration of the project we have running cost that are not
|
|
116
115
|
# included in the labor cost.
|
|
117
116
|
charge 170 perday
|
|
117
|
+
responsible boss
|
|
118
118
|
|
|
119
119
|
task spec "Specification" {
|
|
120
120
|
# The effort to finish this task is 20 man-days.
|
|
@@ -144,6 +144,7 @@ task AcSo "Accounting Software" {
|
|
|
144
144
|
# All subtasks depend on the specification task.
|
|
145
145
|
depends !spec
|
|
146
146
|
|
|
147
|
+
responsible dev1
|
|
147
148
|
task database "Database coupling" {
|
|
148
149
|
effort 20d
|
|
149
150
|
allocate dev1, dev2
|
|
@@ -305,7 +306,7 @@ macro TaskTip [
|
|
|
305
306
|
->8-
|
|
306
307
|
]
|
|
307
308
|
|
|
308
|
-
textreport "" {
|
|
309
|
+
textreport frame "" {
|
|
309
310
|
header -8<-
|
|
310
311
|
== Accounting Software Project ==
|
|
311
312
|
----
|
|
@@ -313,7 +314,7 @@ textreport "" {
|
|
|
313
314
|
----
|
|
314
315
|
->8-
|
|
315
316
|
footer "----"
|
|
316
|
-
textreport "Overview" {
|
|
317
|
+
textreport index "Overview" {
|
|
317
318
|
formats html
|
|
318
319
|
center '<[report id="overview"]>'
|
|
319
320
|
}
|
|
@@ -331,7 +332,7 @@ textreport "" {
|
|
|
331
332
|
->8-
|
|
332
333
|
}
|
|
333
334
|
|
|
334
|
-
textreport "Development" {
|
|
335
|
+
textreport development "Development" {
|
|
335
336
|
formats html
|
|
336
337
|
center '<[report id="development"]>'
|
|
337
338
|
}
|
|
@@ -361,7 +362,7 @@ taskreport overview "" {
|
|
|
361
362
|
The project is structured into 3 phases.
|
|
362
363
|
|
|
363
364
|
# Specification
|
|
364
|
-
#
|
|
365
|
+
# <-reportlink id='frame.development'->
|
|
365
366
|
# Testing
|
|
366
367
|
|
|
367
368
|
=== Original Project Plan ===
|
|
@@ -400,7 +401,8 @@ macro AlertColor [
|
|
|
400
401
|
]
|
|
401
402
|
|
|
402
403
|
taskreport status "" {
|
|
403
|
-
columns wbs, name, start, end, effort, alert
|
|
404
|
+
columns wbs, name, start, end, effort, alert { tooltip plan.journal
|
|
405
|
+
!= '' "<-query attribute='journal'->" }, status
|
|
404
406
|
scenarios delayed
|
|
405
407
|
|
|
406
408
|
taskreport dashboard "" {
|
|
@@ -409,7 +411,7 @@ taskreport status "" {
|
|
|
409
411
|
resources { width 200 ${AlertColor}
|
|
410
412
|
start ${projectstart} end ${projectend} },
|
|
411
413
|
alerttrend { title "Trend" ${AlertColor} },
|
|
412
|
-
|
|
414
|
+
journalmessages { width 260 ${AlertColor} }
|
|
413
415
|
hidetask ~hasalert(0)
|
|
414
416
|
sorttasks alert.down, delayed.end.up
|
|
415
417
|
period %{${now} - 1w} +1w
|
|
@@ -453,7 +455,7 @@ resourcereport contactList "" {
|
|
|
453
455
|
scenarios delayed
|
|
454
456
|
headline "Contact list and duty plan"
|
|
455
457
|
columns name,
|
|
456
|
-
|
|
458
|
+
email { celltext 1 "[mailto:<-email-> <-email->]" },
|
|
457
459
|
Phone,
|
|
458
460
|
chart { scale day }
|
|
459
461
|
hideresource ~isleaf()
|
data/gem_spec.rb
CHANGED
|
@@ -16,6 +16,9 @@ GEM_SPEC = Gem::Specification.new { |s|
|
|
|
16
16
|
s.has_rdoc = true
|
|
17
17
|
s.extra_rdoc_files = RDOC_FILES
|
|
18
18
|
#s.rdoc_options = GENERAL_RDOC_OPTS.to_a.flatten
|
|
19
|
+
DEPENDENCIES.each do |package, version|
|
|
20
|
+
s.add_dependency(package, version)
|
|
21
|
+
end
|
|
19
22
|
s.date = Time.now
|
|
20
23
|
if HAVE_EXT
|
|
21
24
|
s.extensions = EXT_CONF_FILES
|
data/lib/AppConfig.rb
CHANGED
|
@@ -111,7 +111,9 @@ class AppConfig
|
|
|
111
111
|
|
|
112
112
|
dirs = []
|
|
113
113
|
if ENV['TASKJUGGLER_DATA_PATH']
|
|
114
|
-
|
|
114
|
+
ENV['TASKJUGGLER_DATA_PATH'].split(':').each do |path|
|
|
115
|
+
dirs << path + "/#{baseDir}/"
|
|
116
|
+
end
|
|
115
117
|
end
|
|
116
118
|
# This hopefully works for all setups. Otherwise we have to add more
|
|
117
119
|
# alternative pathes.
|
data/lib/Attributes.rb
CHANGED
|
@@ -344,10 +344,7 @@ class TaskJuggler
|
|
|
344
344
|
|
|
345
345
|
def initialize(property, type)
|
|
346
346
|
super
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
def setProject(project)
|
|
350
|
-
@value.setProject(project)
|
|
347
|
+
@value.setProject(property.project) if @value
|
|
351
348
|
end
|
|
352
349
|
|
|
353
350
|
def LimitsAttribute::tjpId
|
|
@@ -372,6 +369,14 @@ class TaskJuggler
|
|
|
372
369
|
|
|
373
370
|
end
|
|
374
371
|
|
|
372
|
+
class NodeListAttribute < AttributeBase
|
|
373
|
+
def initialize(propery, type)
|
|
374
|
+
super
|
|
375
|
+
|
|
376
|
+
@value = nil
|
|
377
|
+
end
|
|
378
|
+
end
|
|
379
|
+
|
|
375
380
|
class PropertyAttribute < AttributeBase
|
|
376
381
|
def initialize(property, type)
|
|
377
382
|
super
|
|
@@ -495,10 +500,7 @@ class TaskJuggler
|
|
|
495
500
|
|
|
496
501
|
def initialize(property, type)
|
|
497
502
|
super
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
def setProject(project)
|
|
501
|
-
@value.setProject(project)
|
|
503
|
+
@value.project = property.project if @value
|
|
502
504
|
end
|
|
503
505
|
|
|
504
506
|
def ShiftAssignmentsAttribute::tjpId
|
data/lib/Journal.rb
CHANGED
|
@@ -54,7 +54,8 @@ class TaskJuggler
|
|
|
54
54
|
|
|
55
55
|
# Just for debugging
|
|
56
56
|
def to_s # :nodoc:
|
|
57
|
-
@headline
|
|
57
|
+
puts "Headline: #{@headline}"
|
|
58
|
+
puts "Property: #{@property.class}"
|
|
58
59
|
end
|
|
59
60
|
|
|
60
61
|
end
|
|
@@ -80,26 +81,33 @@ class TaskJuggler
|
|
|
80
81
|
@sorted = false
|
|
81
82
|
end
|
|
82
83
|
|
|
84
|
+
# This function is probably obsolete!
|
|
83
85
|
# Add a list of JournalEntry objects to the existing list. The list will
|
|
84
86
|
# be marked unsorted.
|
|
85
|
-
def +(list)
|
|
86
|
-
|
|
87
|
-
|
|
87
|
+
#def +(list)
|
|
88
|
+
# @entries += list
|
|
89
|
+
# @sorted = false
|
|
90
|
+
#end
|
|
88
91
|
|
|
89
92
|
# Return the _index_-th entry.
|
|
90
93
|
def[](index)
|
|
91
|
-
sort
|
|
94
|
+
sort!
|
|
92
95
|
@entries[index]
|
|
93
96
|
end
|
|
94
97
|
|
|
95
98
|
# The well known iterator. The list will be sorted first.
|
|
96
99
|
def each
|
|
97
|
-
sort
|
|
100
|
+
sort!
|
|
98
101
|
@entries.each do |entry|
|
|
99
102
|
yield entry
|
|
100
103
|
end
|
|
101
104
|
end
|
|
102
105
|
|
|
106
|
+
# Like Array::empty?
|
|
107
|
+
def empty?
|
|
108
|
+
@entries.empty?
|
|
109
|
+
end
|
|
110
|
+
|
|
103
111
|
# Like Array::include?
|
|
104
112
|
def include?(entry)
|
|
105
113
|
@entries.include?(entry)
|
|
@@ -112,7 +120,7 @@ class TaskJuggler
|
|
|
112
120
|
# will be empty.
|
|
113
121
|
def last(date = nil)
|
|
114
122
|
result = []
|
|
115
|
-
sort
|
|
123
|
+
sort!
|
|
116
124
|
# If we have no date, return the latest entry.
|
|
117
125
|
return [ @entries.last ] unless date
|
|
118
126
|
|
|
@@ -128,19 +136,21 @@ class TaskJuggler
|
|
|
128
136
|
result
|
|
129
137
|
end
|
|
130
138
|
|
|
131
|
-
private
|
|
132
|
-
|
|
133
139
|
# Sort the list of entries. First by ascending by date, than by alertLevel
|
|
134
140
|
# and finally by PropertyTreeNode sequence number.
|
|
135
|
-
def sort
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
141
|
+
def sort!
|
|
142
|
+
if block_given?
|
|
143
|
+
@entries.sort! { |a, b| yield(a, b) }
|
|
144
|
+
else
|
|
145
|
+
return if @sorted
|
|
146
|
+
|
|
147
|
+
@entries.sort! { |a, b| a.date != b.date ?
|
|
148
|
+
a.date <=> b.date :
|
|
149
|
+
(a.alertLevel != b.alertLevel ?
|
|
150
|
+
a.alertLevel <=> b.alertLevel :
|
|
151
|
+
a.property.sequenceNo <=>
|
|
152
|
+
b.property.sequenceNo) }
|
|
153
|
+
end
|
|
144
154
|
@sorted = true
|
|
145
155
|
end
|
|
146
156
|
|
|
@@ -241,6 +251,25 @@ class TaskJuggler
|
|
|
241
251
|
maxLevel
|
|
242
252
|
end
|
|
243
253
|
|
|
254
|
+
# Return the list of JournalEntry objects that are dated at or before
|
|
255
|
+
# _date_, are for _property_ or any of its childs, have at least _level_
|
|
256
|
+
# alert and are after _minDate_.
|
|
257
|
+
def alertEntries(date, property, minLevel, minDate)
|
|
258
|
+
maxLevel = 0
|
|
259
|
+
entries = []
|
|
260
|
+
# Gather all the current (as of the specified _date_) JournalEntry
|
|
261
|
+
# objects for the property and than find the highest level.
|
|
262
|
+
currentEntriesR(date, property, minLevel, minDate).each do |e|
|
|
263
|
+
if maxLevel < e.alertLevel
|
|
264
|
+
maxLevel = e.alertLevel
|
|
265
|
+
entries = [ e ]
|
|
266
|
+
elsif maxLevel == e.alertLevel
|
|
267
|
+
entries << e
|
|
268
|
+
end
|
|
269
|
+
end
|
|
270
|
+
entries
|
|
271
|
+
end
|
|
272
|
+
|
|
244
273
|
# This function returns a list of entries that have all the exact same
|
|
245
274
|
# date and are the last entries before the deadline _date_. Only messages
|
|
246
275
|
# with at least the required alert level _minLevel_ are returned. Messages
|
|
@@ -277,7 +306,7 @@ class TaskJuggler
|
|
|
277
306
|
# property unless there is a property in the sub-tree specified by the
|
|
278
307
|
# root _property_ with more up-to-date entries. The result is a
|
|
279
308
|
# JournalEntryList.
|
|
280
|
-
def currentEntriesR(date, property)
|
|
309
|
+
def currentEntriesR(date, property, minLevel = 0, minDate = nil)
|
|
281
310
|
# See if this property has any current JournalEntry objects.
|
|
282
311
|
pEntries = @propertyToEntries[property] ?
|
|
283
312
|
@propertyToEntries[property].last(date) : []
|
|
@@ -289,6 +318,8 @@ class TaskJuggler
|
|
|
289
318
|
property.children.each do |p|
|
|
290
319
|
currentEntriesR(date, p).each do |e|
|
|
291
320
|
latestDate = e.date if latestDate.nil? || e.date > latestDate
|
|
321
|
+
next if e.headline.empty? || e.alertLevel < minLevel ||
|
|
322
|
+
(e.alertLevel == minLevel && minDate && e.date < minDate)
|
|
292
323
|
entries << e
|
|
293
324
|
end
|
|
294
325
|
end
|
|
@@ -298,7 +329,11 @@ class TaskJuggler
|
|
|
298
329
|
if !pEntries.empty? && (latestDate.nil? ||
|
|
299
330
|
pEntries.first.date >= latestDate)
|
|
300
331
|
entries = JournalEntryList.new
|
|
301
|
-
|
|
332
|
+
pEntries.each do |e|
|
|
333
|
+
next if e.headline.empty? || e.alertLevel < minLevel ||
|
|
334
|
+
(e.alertLevel == minLevel && minDate && e.date < minDate)
|
|
335
|
+
entries << e
|
|
336
|
+
end
|
|
302
337
|
end
|
|
303
338
|
# Otherwise return the list provided by the childen.
|
|
304
339
|
entries
|