taskjuggler 0.0.10 → 0.0.11
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG +115 -0
- data/README.rdoc +105 -0
- data/examples/tutorial.tjp +21 -16
- data/gem_spec.rb +1 -1
- data/lib/{Account.rb → taskjuggler/Account.rb} +2 -3
- data/lib/{AccountScenario.rb → taskjuggler/AccountScenario.rb} +1 -1
- data/lib/taskjuggler/AlgorithmDiff.rb +311 -0
- data/lib/{Allocation.rb → taskjuggler/Allocation.rb} +3 -3
- data/lib/{AppConfig.rb → taskjuggler/AppConfig.rb} +0 -1
- data/lib/{AttributeBase.rb → taskjuggler/AttributeBase.rb} +1 -1
- data/lib/{AttributeDefinition.rb → taskjuggler/AttributeDefinition.rb} +0 -0
- data/lib/{Attributes.rb → taskjuggler/Attributes.rb} +19 -9
- data/lib/{BatchProcessor.rb → taskjuggler/BatchProcessor.rb} +0 -0
- data/lib/{Booking.rb → taskjuggler/Booking.rb} +0 -0
- data/lib/{Charge.rb → taskjuggler/Charge.rb} +1 -1
- data/lib/{ChargeSet.rb → taskjuggler/ChargeSet.rb} +1 -1
- data/lib/{DataCache.rb → taskjuggler/DataCache.rb} +0 -0
- data/lib/{FileList.rb → taskjuggler/FileList.rb} +0 -0
- data/lib/{HTMLDocument.rb → taskjuggler/HTMLDocument.rb} +1 -1
- data/lib/{Interval.rb → taskjuggler/Interval.rb} +1 -1
- data/lib/{IntervalList.rb → taskjuggler/IntervalList.rb} +1 -1
- data/lib/{Journal.rb → taskjuggler/Journal.rb} +2 -2
- data/lib/{KeywordArray.rb → taskjuggler/KeywordArray.rb} +0 -0
- data/lib/{KeywordDocumentation.rb → taskjuggler/KeywordDocumentation.rb} +5 -5
- data/lib/{Limits.rb → taskjuggler/Limits.rb} +1 -1
- data/lib/{Log.rb → taskjuggler/Log.rb} +0 -0
- data/lib/{LogFile.rb → taskjuggler/LogFile.rb} +0 -0
- data/lib/{LogicalExpression.rb → taskjuggler/LogicalExpression.rb} +3 -3
- data/lib/{LogicalFunction.rb → taskjuggler/LogicalFunction.rb} +1 -1
- data/lib/{LogicalOperation.rb → taskjuggler/LogicalOperation.rb} +1 -1
- data/lib/{MessageHandler.rb → taskjuggler/MessageHandler.rb} +3 -1
- data/lib/{Project.rb → taskjuggler/Project.rb} +51 -48
- data/lib/{ProjectFileParser.rb → taskjuggler/ProjectFileParser.rb} +25 -9
- data/lib/{ProjectFileScanner.rb → taskjuggler/ProjectFileScanner.rb} +5 -5
- data/lib/{PropertyList.rb → taskjuggler/PropertyList.rb} +0 -0
- data/lib/{PropertySet.rb → taskjuggler/PropertySet.rb} +3 -4
- data/lib/{PropertyTreeNode.rb → taskjuggler/PropertyTreeNode.rb} +157 -11
- data/lib/{Query.rb → taskjuggler/Query.rb} +17 -7
- data/lib/{RealFormat.rb → taskjuggler/RealFormat.rb} +0 -0
- data/lib/{Resource.rb → taskjuggler/Resource.rb} +8 -6
- data/lib/{ResourceScenario.rb → taskjuggler/ResourceScenario.rb} +26 -65
- data/lib/{RichText.rb → taskjuggler/RichText.rb} +3 -3
- data/lib/{RichTextDocument.rb → taskjuggler/RichText/Document.rb} +3 -3
- data/lib/{RichTextElement.rb → taskjuggler/RichText/Element.rb} +10 -4
- data/lib/{RichTextFunctionExample.rb → taskjuggler/RichText/FunctionExample.rb} +3 -3
- data/lib/{RichTextFunctionHandler.rb → taskjuggler/RichText/FunctionHandler.rb} +0 -0
- data/lib/{RichTextParser.rb → taskjuggler/RichText/Parser.rb} +6 -4
- data/lib/{RTFHandlers.rb → taskjuggler/RichText/RTFHandlers.rb} +4 -4
- data/lib/{RTFNavigator.rb → taskjuggler/RichText/RTFNavigator.rb} +3 -3
- data/lib/{RTFQuery.rb → taskjuggler/RichText/RTFQuery.rb} +62 -39
- data/lib/{RTFReport.rb → taskjuggler/RichText/RTFReport.rb} +2 -2
- data/lib/{RTFReportLink.rb → taskjuggler/RichText/RTFReportLink.rb} +4 -4
- data/lib/{RTFWithQuerySupport.rb → taskjuggler/RichText/RTFWithQuerySupport.rb} +1 -1
- data/lib/{RichTextScanner.rb → taskjuggler/RichText/Scanner.rb} +18 -5
- data/lib/{RichTextSnip.rb → taskjuggler/RichText/Snip.rb} +2 -2
- data/lib/{RichTextSyntaxRules.rb → taskjuggler/RichText/SyntaxRules.rb} +14 -0
- data/lib/{TOCEntry.rb → taskjuggler/RichText/TOCEntry.rb} +2 -2
- data/lib/{TableOfContents.rb → taskjuggler/RichText/TableOfContents.rb} +2 -2
- data/lib/{RuntimeConfig.rb → taskjuggler/RuntimeConfig.rb} +18 -18
- data/lib/{Scenario.rb → taskjuggler/Scenario.rb} +1 -1
- data/lib/{ScenarioData.rb → taskjuggler/ScenarioData.rb} +2 -3
- data/lib/{Scoreboard.rb → taskjuggler/Scoreboard.rb} +4 -4
- data/lib/{SheetHandlerBase.rb → taskjuggler/SheetHandlerBase.rb} +3 -3
- data/lib/{SheetReceiver.rb → taskjuggler/SheetReceiver.rb} +2 -2
- data/lib/{SheetSender.rb → taskjuggler/SheetSender.rb} +5 -5
- data/lib/{Shift.rb → taskjuggler/Shift.rb} +2 -3
- data/lib/{ShiftAssignments.rb → taskjuggler/ShiftAssignments.rb} +1 -1
- data/lib/{ShiftScenario.rb → taskjuggler/ShiftScenario.rb} +1 -1
- data/lib/{SimpleQueryExpander.rb → taskjuggler/SimpleQueryExpander.rb} +0 -0
- data/lib/{StatusSheetReceiver.rb → taskjuggler/StatusSheetReceiver.rb} +1 -1
- data/lib/{StatusSheetSender.rb → taskjuggler/StatusSheetSender.rb} +1 -1
- data/lib/{SyntaxReference.rb → taskjuggler/SyntaxReference.rb} +4 -4
- data/lib/{TableColumnDefinition.rb → taskjuggler/TableColumnDefinition.rb} +0 -0
- data/lib/{Task.rb → taskjuggler/Task.rb} +2 -2
- data/lib/{TaskDependency.rb → taskjuggler/TaskDependency.rb} +8 -0
- data/lib/{TaskJuggler.rb → taskjuggler/TaskJuggler.rb} +6 -4
- data/lib/{TaskScenario.rb → taskjuggler/TaskScenario.rb} +211 -150
- data/lib/taskjuggler/TernarySearchTree.rb +203 -0
- data/lib/{TextFormatter.rb → taskjuggler/TextFormatter.rb} +1 -1
- data/lib/{TextParser.rb → taskjuggler/TextParser.rb} +6 -6
- data/lib/{MacroTable.rb → taskjuggler/TextParser/MacroTable.rb} +2 -12
- data/lib/{TextParser → taskjuggler/TextParser}/Pattern.rb +5 -2
- data/lib/{TextParser → taskjuggler/TextParser}/Rule.rb +1 -1
- data/lib/{TextScanner.rb → taskjuggler/TextParser/Scanner.rb} +34 -32
- data/lib/{SourceFileInfo.rb → taskjuggler/TextParser/SourceFileInfo.rb} +1 -1
- data/lib/{TextParser → taskjuggler/TextParser}/StackElement.rb +0 -2
- data/lib/{TextParser → taskjuggler/TextParser}/State.rb +0 -0
- data/lib/{TextParser → taskjuggler/TextParser}/TokenDoc.rb +0 -0
- data/lib/{TimeSheetReceiver.rb → taskjuggler/TimeSheetReceiver.rb} +1 -1
- data/lib/{TimeSheetSender.rb → taskjuggler/TimeSheetSender.rb} +1 -1
- data/lib/{TimeSheetSummary.rb → taskjuggler/TimeSheetSummary.rb} +1 -1
- data/lib/{TimeSheets.rb → taskjuggler/TimeSheets.rb} +23 -16
- data/lib/{Tj3AppBase.rb → taskjuggler/Tj3AppBase.rb} +19 -12
- data/lib/{Tj3Config.rb → taskjuggler/Tj3Config.rb} +3 -3
- data/lib/taskjuggler/Tj3Man.rb +78 -0
- data/lib/{Tj3SheetAppBase.rb → taskjuggler/Tj3SheetAppBase.rb} +2 -2
- data/lib/{TjException.rb → taskjuggler/TjException.rb} +0 -0
- data/lib/{TjTime.rb → taskjuggler/TjTime.rb} +279 -234
- data/lib/{TjpExample.rb → taskjuggler/TjpExample.rb} +0 -0
- data/lib/{TjpSyntaxRules.rb → taskjuggler/TjpSyntaxRules.rb} +253 -95
- data/lib/{URLParameter.rb → taskjuggler/URLParameter.rb} +0 -0
- data/lib/{UTF8String.rb → taskjuggler/UTF8String.rb} +0 -0
- data/lib/{UserManual.rb → taskjuggler/UserManual.rb} +6 -6
- data/lib/{VimSyntax.rb → taskjuggler/VimSyntax.rb} +6 -2
- data/lib/{WorkingHours.rb → taskjuggler/WorkingHours.rb} +14 -22
- data/lib/{XMLDocument.rb → taskjuggler/XMLDocument.rb} +1 -1
- data/lib/{XMLElement.rb → taskjuggler/XMLElement.rb} +1 -1
- data/lib/taskjuggler/apps/Tj3.rb +134 -0
- data/lib/taskjuggler/apps/Tj3Client.rb +467 -0
- data/lib/taskjuggler/apps/Tj3Daemon.rb +142 -0
- data/lib/taskjuggler/apps/Tj3SsReceiver.rb +56 -0
- data/lib/taskjuggler/apps/Tj3SsSender.rb +90 -0
- data/lib/taskjuggler/apps/Tj3TsReceiver.rb +59 -0
- data/lib/taskjuggler/apps/Tj3TsSender.rb +77 -0
- data/lib/taskjuggler/apps/Tj3TsSummary.rb +86 -0
- data/lib/{daemon → taskjuggler/daemon}/Daemon.rb +4 -3
- data/lib/{daemon → taskjuggler/daemon}/ProcessIntercom.rb +2 -2
- data/lib/{daemon → taskjuggler/daemon}/ProjectBroker.rb +5 -5
- data/lib/{daemon → taskjuggler/daemon}/ProjectServer.rb +16 -16
- data/lib/{daemon → taskjuggler/daemon}/ReportServer.rb +6 -6
- data/lib/{daemon → taskjuggler/daemon}/ReportServlet.rb +2 -2
- data/lib/{daemon → taskjuggler/daemon}/WebServer.rb +4 -4
- data/lib/{daemon → taskjuggler/daemon}/WelcomePage.rb +2 -1
- data/lib/{deep_copy.rb → taskjuggler/deep_copy.rb} +0 -0
- data/lib/{reports → taskjuggler/reports}/CSVFile.rb +2 -2
- data/lib/{reports → taskjuggler/reports}/CollisionDetector.rb +1 -1
- data/lib/{reports → taskjuggler/reports}/ColumnTable.rb +1 -1
- data/lib/{reports → taskjuggler/reports}/GanttChart.rb +4 -4
- data/lib/{reports → taskjuggler/reports}/GanttContainer.rb +1 -1
- data/lib/{reports → taskjuggler/reports}/GanttHeader.rb +1 -1
- data/lib/{reports → taskjuggler/reports}/GanttHeaderScaleItem.rb +0 -0
- data/lib/{reports → taskjuggler/reports}/GanttLine.rb +6 -6
- data/lib/{reports → taskjuggler/reports}/GanttLoadStack.rb +1 -1
- data/lib/{reports → taskjuggler/reports}/GanttMilestone.rb +1 -1
- data/lib/{reports → taskjuggler/reports}/GanttRouter.rb +1 -1
- data/lib/{reports → taskjuggler/reports}/GanttTaskBar.rb +1 -1
- data/lib/{reports → taskjuggler/reports}/HTMLGraphics.rb +0 -0
- data/lib/{reports → taskjuggler/reports}/Navigator.rb +1 -1
- data/lib/{reports → taskjuggler/reports}/NikuReport.rb +3 -6
- data/lib/{reports → taskjuggler/reports}/Report.rb +19 -14
- data/lib/{reports → taskjuggler/reports}/ReportBase.rb +0 -0
- data/lib/{reports → taskjuggler/reports}/ReportContext.rb +0 -0
- data/lib/{reports → taskjuggler/reports}/ReportTable.rb +2 -2
- data/lib/{reports → taskjuggler/reports}/ReportTableCell.rb +0 -0
- data/lib/{reports → taskjuggler/reports}/ReportTableColumn.rb +0 -0
- data/lib/{reports → taskjuggler/reports}/ReportTableLegend.rb +0 -0
- data/lib/{reports → taskjuggler/reports}/ReportTableLine.rb +1 -1
- data/lib/{reports → taskjuggler/reports}/ResourceListRE.rb +4 -4
- data/lib/{reports → taskjuggler/reports}/StatusSheetReport.rb +1 -1
- data/lib/{reports → taskjuggler/reports}/TableReport.rb +8 -7
- data/lib/{reports → taskjuggler/reports}/TaskListRE.rb +4 -4
- data/lib/{reports → taskjuggler/reports}/TextReport.rb +1 -1
- data/lib/{reports → taskjuggler/reports}/TimeSheetReport.rb +1 -1
- data/lib/{reports → taskjuggler/reports}/TjpExportRE.rb +87 -29
- data/lib/tj3.rb +2 -144
- data/lib/tj3client.rb +2 -442
- data/lib/tj3d.rb +1 -133
- data/lib/tj3man.rb +2 -75
- data/lib/tj3ss_receiver.rb +2 -42
- data/lib/tj3ss_sender.rb +1 -76
- data/lib/tj3ts_receiver.rb +1 -45
- data/lib/tj3ts_sender.rb +1 -63
- data/lib/tj3ts_summary.rb +1 -72
- data/manual/How_To_Contribute +19 -49
- data/manual/Installation +65 -6
- data/manual/Reporting_Bugs +6 -20
- data/manual/TaskJuggler_Internals +8 -1
- data/manual/Tutorial +16 -0
- data/prj_cfg.rb +2 -3
- data/spec/IntervalList_spec.rb +2 -1
- data/spec/ProjectBroker_spec.rb +1 -1
- data/spec/TernarySearchTree_spec.rb +131 -0
- data/spec/TimeSheets_spec.rb +129 -0
- data/spec/Tj3Daemon_spec.rb +51 -0
- data/spec/Tj3_spec.rb +36 -0
- data/spec/support/DaemonControl.rb +78 -0
- data/spec/support/StdIoWrapper.rb +43 -0
- data/spec/tj3client.log +23 -0
- data/tasks/changelog.rake +17 -2
- data/tasks/csts.rake +2 -2
- data/tasks/manual.rake +9 -5
- data/tasks/missing.rake +0 -4
- data/tasks/rdoc.rake +2 -2
- data/tasks/vim.rake +9 -0
- data/test/TestSuite/CSV-Reports/alert.tjp +9 -0
- data/test/TestSuite/CSV-Reports/celltext.tjp +1 -0
- data/test/TestSuite/CSV-Reports/inputs.tjp +19 -0
- data/test/TestSuite/CSV-Reports/project-1.tji +9 -0
- data/test/TestSuite/CSV-Reports/refs/alert.csv +15 -0
- data/test/TestSuite/CSV-Reports/refs/celltext.csv +1 -0
- data/test/TestSuite/CSV-Reports/refs/inputs.csv +6 -0
- data/test/TestSuite/CSV-Reports/refs/resourcereport.csv +4 -4
- data/test/TestSuite/CSV-Reports/refs/resourcereport_with_tasks.csv +22 -22
- data/test/TestSuite/CSV-Reports/refs/sortByTree.csv +1 -0
- data/test/TestSuite/CSV-Reports/refs/sortBy_duration.down.csv +1 -0
- data/test/TestSuite/CSV-Reports/refs/sortBy_effort.up.csv +1 -0
- data/test/TestSuite/CSV-Reports/refs/sortBy_plan.start.down.csv +14 -13
- data/test/TestSuite/CSV-Reports/refs/targets.csv +5 -0
- data/test/TestSuite/CSV-Reports/refs/taskreport.csv +15 -14
- data/test/TestSuite/CSV-Reports/refs/taskreport_with_resources.csv +33 -32
- data/test/TestSuite/CSV-Reports/resourcereport.tjp +1 -0
- data/test/TestSuite/CSV-Reports/resourcereport_with_tasks.tjp +1 -0
- data/test/TestSuite/CSV-Reports/sortByTree.tjp +1 -0
- data/test/TestSuite/CSV-Reports/sortBy_duration.down.tjp +1 -0
- data/test/TestSuite/CSV-Reports/sortBy_effort.up.tjp +1 -0
- data/test/TestSuite/CSV-Reports/sortBy_plan.start.down.tjp +2 -1
- data/test/TestSuite/CSV-Reports/targets.tjp +20 -0
- data/test/TestSuite/CSV-Reports/taskreport.tjp +2 -1
- data/test/TestSuite/CSV-Reports/taskreport_with_resources.tjp +2 -1
- data/test/TestSuite/CSV-Reports/weekly.tjp +5 -2
- data/test/TestSuite/Export-Reports/export.tji +6 -0
- data/test/TestSuite/Export-Reports/refs/Account.tjp +92 -0
- data/test/TestSuite/Export-Reports/refs/AdoptedTasks.tjp +38 -0
- data/test/TestSuite/Export-Reports/refs/Allocate-1.tjp +124 -0
- data/test/TestSuite/Export-Reports/refs/Alternative.tjp +50 -0
- data/test/TestSuite/Export-Reports/refs/AutoID.tjp +45 -0
- data/test/TestSuite/Export-Reports/refs/AutoMacros.tjp +18 -0
- data/test/TestSuite/Export-Reports/refs/Booking.tjp +48 -0
- data/test/TestSuite/Export-Reports/refs/Caption.tjp +65 -0
- data/test/TestSuite/Export-Reports/refs/Celltext.tjp +45 -0
- data/test/TestSuite/Export-Reports/refs/Comments.tjp +67 -0
- data/test/TestSuite/Export-Reports/refs/Complete.tjp +50 -0
- data/test/TestSuite/Export-Reports/refs/CriticalPath.tjp +41 -0
- data/test/TestSuite/Export-Reports/refs/Currencyformat.tjp +18 -0
- data/test/TestSuite/Export-Reports/refs/CustomAttributes.tjp +24 -0
- data/test/TestSuite/Export-Reports/refs/DST.tjp +89 -0
- data/test/TestSuite/Export-Reports/refs/Depends1.tjp +57 -0
- data/test/TestSuite/Export-Reports/refs/Durations.tjp +84 -0
- data/test/TestSuite/Export-Reports/refs/Efficiency.tjp +58 -0
- data/test/TestSuite/Export-Reports/refs/Flags.tjp +51 -0
- data/test/TestSuite/Export-Reports/refs/Gap.tjp +38 -0
- data/test/TestSuite/Export-Reports/refs/HtmlTaskReport.tjp +67 -0
- data/test/TestSuite/Export-Reports/refs/Include.tjp +58 -0
- data/test/TestSuite/Export-Reports/refs/Journal.tjp +28 -0
- data/test/TestSuite/Export-Reports/refs/Limits-1.tjp +283 -0
- data/test/TestSuite/Export-Reports/refs/LoadUnits.tjp +617 -0
- data/test/TestSuite/Export-Reports/refs/LogicalExpression.tjp +18 -0
- data/test/TestSuite/Export-Reports/refs/LogicalFunction.tjp +57 -0
- data/test/TestSuite/Export-Reports/refs/Macro-1.tjp +91 -0
- data/test/TestSuite/Export-Reports/refs/Macro-2.tjp +18 -0
- data/test/TestSuite/Export-Reports/refs/Macro-3.tjp +18 -0
- data/test/TestSuite/Export-Reports/refs/Manager.tjp +121 -0
- data/test/TestSuite/Export-Reports/refs/Mandatory.tjp +59 -0
- data/test/TestSuite/Export-Reports/refs/Milestone.tjp +27 -0
- data/test/TestSuite/Export-Reports/refs/MinMax.tjp +30 -0
- data/test/TestSuite/Export-Reports/refs/Niku.tjp +218 -0
- data/test/TestSuite/Export-Reports/refs/Numberformat.tjp +18 -0
- data/test/TestSuite/Export-Reports/refs/Period.tjp +25 -0
- data/test/TestSuite/Export-Reports/refs/Persistent.tjp +49 -0
- data/test/TestSuite/Export-Reports/refs/Precedes1.tjp +46 -0
- data/test/TestSuite/Export-Reports/refs/Priority.tjp +141 -0
- data/test/TestSuite/Export-Reports/refs/Project.tjp +18 -0
- data/test/TestSuite/Export-Reports/refs/ProjectIDs.tjp +36 -0
- data/test/TestSuite/Export-Reports/refs/Query.tjp +49 -0
- data/test/TestSuite/Export-Reports/refs/ReleasePlan.tjp +79 -0
- data/test/TestSuite/Export-Reports/refs/Reports.tjp +130 -0
- data/test/TestSuite/Export-Reports/refs/Resource.tjp +59 -0
- data/test/TestSuite/Export-Reports/refs/ResourcePrefix.tjp +67 -0
- data/test/TestSuite/Export-Reports/refs/ResourceRoot.tjp +90 -0
- data/test/TestSuite/Export-Reports/refs/Responsible.tjp +50 -0
- data/test/TestSuite/Export-Reports/refs/RollupResource.tjp +90 -0
- data/test/TestSuite/Export-Reports/refs/Scenario.tjp +25 -0
- data/test/TestSuite/Export-Reports/refs/Scheduling.tjp +55 -0
- data/test/TestSuite/Export-Reports/refs/Select.tjp +89 -0
- data/test/TestSuite/Export-Reports/refs/Shift.tjp +39 -0
- data/test/TestSuite/Export-Reports/refs/Simple.tjp +67 -0
- data/test/TestSuite/Export-Reports/refs/StatusSheet.tjp +95 -0
- data/test/TestSuite/Export-Reports/refs/String.tjp +33 -0
- data/test/TestSuite/Export-Reports/refs/Supplement.tjp +41 -0
- data/test/TestSuite/Export-Reports/refs/TaskPrefix.tjp +49 -0
- data/test/TestSuite/Export-Reports/refs/TaskRoot.tjp +75 -0
- data/test/TestSuite/Export-Reports/refs/TimeFrame.tjp +51 -0
- data/test/TestSuite/Export-Reports/refs/TimeSheet1.tjp +81 -0
- data/test/TestSuite/Export-Reports/refs/Timezone.tjp +18 -0
- data/test/TestSuite/Export-Reports/refs/Vacation.tjp +69 -0
- data/test/TestSuite/Export-Reports/refs/tutorial.tjp +1061 -0
- data/test/TestSuite/Scheduler/Correct/Container-2.tjp +3 -1
- data/test/TestSuite/Scheduler/Correct/InheritStartEnd.tjp +5 -3
- data/test/TestSuite/Scheduler/Correct/Precedes.tjp +19 -19
- data/test/TestSuite/Scheduler/Correct/PriorityInversion.tjp +32 -0
- data/test/TestSuite/Scheduler/Correct/Scenarios.tjp +19 -0
- data/test/TestSuite/Scheduler/Correct/TimeSheet2.tjp +11 -0
- data/test/TestSuite/Scheduler/Correct/WeakDeps.tjp +14 -14
- data/test/TestSuite/Scheduler/Correct/checks.tji +5 -0
- data/test/TestSuite/Scheduler/Correct/css/tjmanual.css +20 -0
- data/test/TestSuite/StatusSheets/boss_mail +1 -1
- data/test/TestSuite/StatusSheets/dev2_mail +1 -1
- data/test/TestSuite/StatusSheets/run +2 -3
- data/test/TestSuite/Syntax/Correct/Account.tjp +1 -0
- data/test/TestSuite/Syntax/Correct/AdoptedTasks.tjp +9 -0
- data/test/TestSuite/Syntax/Correct/Allocate-1.tjp +3 -1
- data/test/TestSuite/Syntax/Correct/Alternative.tjp +3 -1
- data/test/TestSuite/Syntax/Correct/AutoID.tjp +3 -1
- data/test/TestSuite/Syntax/Correct/Booking.tjp +1 -0
- data/test/TestSuite/Syntax/Correct/Caption.tjp +3 -1
- data/test/TestSuite/Syntax/Correct/Celltext.tjp +3 -1
- data/test/TestSuite/Syntax/Correct/Comments.tjp +3 -1
- data/test/TestSuite/Syntax/Correct/Complete.tjp +1 -0
- data/test/TestSuite/Syntax/Correct/CriticalPath.tjp +2 -1
- data/test/TestSuite/Syntax/Correct/Currencyformat.tjp +2 -1
- data/test/TestSuite/Syntax/Correct/CustomAttributes.tjp +3 -2
- data/test/TestSuite/Syntax/Correct/DST.tjp +11 -0
- data/test/TestSuite/Syntax/Correct/Depends1.tjp +6 -4
- data/test/TestSuite/Syntax/Correct/Durations.tjp +3 -1
- data/test/TestSuite/Syntax/Correct/Efficiency.tjp +4 -2
- data/test/TestSuite/Syntax/Correct/Export.tjp +6 -4
- data/test/TestSuite/Syntax/Correct/Flags.tjp +3 -1
- data/test/TestSuite/Syntax/Correct/Freeze.tjp +2 -2
- data/test/TestSuite/Syntax/Correct/Gap.tjp +3 -1
- data/test/TestSuite/Syntax/Correct/HtmlTaskReport.tjp +4 -2
- data/test/TestSuite/Syntax/Correct/Include.tjp +3 -1
- data/test/TestSuite/Syntax/Correct/Journal.tjp +2 -1
- data/test/TestSuite/Syntax/Correct/Limits-1.tjp +13 -9
- data/test/TestSuite/Syntax/Correct/LoadUnits.tjp +1 -0
- data/test/TestSuite/Syntax/Correct/LogicalExpression.tjp +3 -1
- data/test/TestSuite/Syntax/Correct/LogicalFunction.tjp +3 -1
- data/test/TestSuite/Syntax/Correct/Macro-1.tjp +3 -1
- data/test/TestSuite/Syntax/Correct/Macro-2.tjp +3 -1
- data/test/TestSuite/Syntax/Correct/Macro-3.tjp +1 -0
- data/test/TestSuite/Syntax/Correct/Manager.tjp +4 -2
- data/test/TestSuite/Syntax/Correct/Mandatory.tjp +3 -1
- data/test/TestSuite/Syntax/Correct/Milestone.tjp +3 -1
- data/test/TestSuite/Syntax/Correct/MinMax.tjp +3 -1
- data/test/TestSuite/Syntax/Correct/Niku.tjp +1 -0
- data/test/TestSuite/Syntax/Correct/Numberformat.tjp +3 -2
- data/test/TestSuite/Syntax/Correct/Period.tjp +1 -0
- data/test/TestSuite/Syntax/Correct/Persistent.tjp +3 -1
- data/test/TestSuite/Syntax/Correct/Precedes1.tjp +6 -4
- data/test/TestSuite/Syntax/Correct/Priority.tjp +4 -2
- data/test/TestSuite/Syntax/Correct/Project.tjp +5 -4
- data/test/TestSuite/Syntax/Correct/ProjectIDs.tjp +3 -2
- data/test/TestSuite/Syntax/Correct/Query.tjp +1 -0
- data/test/TestSuite/Syntax/Correct/ReleasePlan.tjp +3 -1
- data/test/TestSuite/Syntax/Correct/Reports.tjp +7 -5
- data/test/TestSuite/Syntax/Correct/Resource.tjp +4 -2
- data/test/TestSuite/Syntax/Correct/ResourcePrefix.tjp +4 -2
- data/test/TestSuite/Syntax/Correct/ResourceRoot.tjp +3 -1
- data/test/TestSuite/Syntax/Correct/Responsible.tjp +3 -1
- data/test/TestSuite/Syntax/Correct/RollupResource.tjp +3 -1
- data/test/TestSuite/Syntax/Correct/Scenario.tjp +2 -1
- data/test/TestSuite/Syntax/Correct/Scheduling.tjp +3 -1
- data/test/TestSuite/Syntax/Correct/Select.tjp +3 -1
- data/test/TestSuite/Syntax/Correct/Shift.tjp +4 -2
- data/test/TestSuite/Syntax/Correct/Simple.tjp +3 -1
- data/test/TestSuite/Syntax/Correct/StatusSheet.tjp +4 -2
- data/test/TestSuite/Syntax/Correct/String.tjp +3 -1
- data/test/TestSuite/Syntax/Correct/Supplement.tjp +3 -1
- data/test/TestSuite/Syntax/Correct/TaskPrefix.tjp +3 -2
- data/test/TestSuite/Syntax/Correct/TaskRoot.tjp +3 -1
- data/test/TestSuite/Syntax/Correct/TimeFrame.tjp +3 -1
- data/test/TestSuite/Syntax/Correct/TimeSheet1.tjp +4 -2
- data/test/TestSuite/Syntax/Correct/Vacation.tjp +5 -3
- data/test/TestSuite/Syntax/Correct/tutorial.tjp +23 -16
- data/test/TestSuite/Syntax/Errors/adopt_common_root.tjp +10 -0
- data/test/TestSuite/Syntax/Errors/adopt_duplicate_child.tjp +10 -0
- data/test/TestSuite/Syntax/Errors/adopt_duplicate_parent.tjp +10 -0
- data/test/TestSuite/{Scheduler/Errors/milestone_duration.tjp → Syntax/Errors/multiple_durations.tjp} +1 -1
- data/test/TestSuite/Syntax/Errors/operand_unkn_scen.tjp +6 -4
- data/test/TestSuite/Syntax/Errors/sorting_crit_exptd1.tjp +5 -3
- data/test/TestSuite/TimeSheets/dev2_mail1 +1 -1
- data/test/TestSuite/TimeSheets/dev2_mail2 +1 -1
- data/test/TestSuite/TimeSheets/run +2 -2
- data/test/TestSuite/TimeSheets/uu.txt +29 -0
- data/test/test_AlgorithmDiff.rb +139 -0
- data/test/test_BatchProcessor.rb +2 -1
- data/test/test_CSV-Reports.rb +30 -19
- data/test/test_CSVFile.rb +2 -1
- data/test/test_CollisionDetector.rb +2 -1
- data/test/test_Export-Reports.rb +128 -0
- data/test/test_Journal.rb +2 -1
- data/test/test_Limits.rb +4 -3
- data/test/test_LogicalExpression.rb +2 -1
- data/test/test_MacroTable.rb +8 -6
- data/test/test_Project.rb +2 -1
- data/test/test_ProjectFileScanner.rb +4 -3
- data/test/test_PropertySet.rb +2 -1
- data/test/test_Query.rb +3 -2
- data/test/test_RealFormat.rb +2 -1
- data/test/test_ReportGenerator.rb +3 -2
- data/test/test_RichText.rb +14 -3
- data/test/test_Scheduler.rb +2 -1
- data/test/test_ShiftAssignments.rb +3 -1
- data/test/test_SimpleQueryExpander.rb +3 -2
- data/test/test_Syntax.rb +2 -1
- data/test/test_TextFormatter.rb +2 -1
- data/test/test_TjTime.rb +15 -14
- data/test/test_TjpExample.rb +2 -1
- data/test/test_URLParameter.rb +2 -1
- data/test/test_UTF8String.rb +2 -1
- data/test/test_WorkingHours.rb +3 -2
- data/test/test_deep_copy.rb +2 -1
- metadata +250 -541
- data/README +0 -31
- data/benchmarks/allocatedSlots.csv +0 -334
- data/benchmarks/profile.clt +0 -42974
- data/benchmarks/profile.html +0 -61128
- data/doc/AppConfig.html +0 -1471
- data/doc/Arguments.html +0 -720
- data/doc/CHANGELOG.html +0 -1987
- data/doc/COPYING.html +0 -879
- data/doc/Object.html +0 -1056
- data/doc/README.html +0 -565
- data/doc/RuntimeConfig.html +0 -804
- data/doc/String.html +0 -913
- data/doc/TaskJuggler.html +0 -2512
- data/doc/TaskJuggler/Account.html +0 -733
- data/doc/TaskJuggler/AccountAttribute.html +0 -749
- data/doc/TaskJuggler/AccountScenario.html +0 -692
- data/doc/TaskJuggler/Allocation.html +0 -943
- data/doc/TaskJuggler/AllocationAttribute.html +0 -779
- data/doc/TaskJuggler/AttributeBase.html +0 -1308
- data/doc/TaskJuggler/AttributeDefinition.html +0 -795
- data/doc/TaskJuggler/AttributeOverwrite.html +0 -586
- data/doc/TaskJuggler/BatchProcessor.html +0 -1158
- data/doc/TaskJuggler/Booking.html +0 -839
- data/doc/TaskJuggler/BookingListAttribute.html +0 -749
- data/doc/TaskJuggler/BooleanAttribute.html +0 -749
- data/doc/TaskJuggler/CSVFile.html +0 -1108
- data/doc/TaskJuggler/CellSettingPattern.html +0 -680
- data/doc/TaskJuggler/CellSettingPatternList.html +0 -729
- data/doc/TaskJuggler/Charge.html +0 -757
- data/doc/TaskJuggler/ChargeListAttribute.html +0 -713
- data/doc/TaskJuggler/ChargeSet.html +0 -929
- data/doc/TaskJuggler/ChargeSetListAttribute.html +0 -758
- data/doc/TaskJuggler/CollisionDetector.html +0 -1069
- data/doc/TaskJuggler/ColumnListAttribute.html +0 -713
- data/doc/TaskJuggler/ColumnTable.html +0 -743
- data/doc/TaskJuggler/Daemon.html +0 -798
- data/doc/TaskJuggler/DataCache.html +0 -930
- data/doc/TaskJuggler/DataCacheEntry.html +0 -717
- data/doc/TaskJuggler/DateAttribute.html +0 -717
- data/doc/TaskJuggler/DefinitionListAttribute.html +0 -635
- data/doc/TaskJuggler/DependencyListAttribute.html +0 -753
- data/doc/TaskJuggler/DurationAttribute.html +0 -750
- data/doc/TaskJuggler/FileList.html +0 -731
- data/doc/TaskJuggler/FileRecord.html +0 -682
- data/doc/TaskJuggler/FixnumAttribute.html +0 -671
- data/doc/TaskJuggler/FlagListAttribute.html +0 -749
- data/doc/TaskJuggler/FloatAttribute.html +0 -713
- data/doc/TaskJuggler/FormatListAttribute.html +0 -677
- data/doc/TaskJuggler/GanttChart.html +0 -1467
- data/doc/TaskJuggler/GanttContainer.html +0 -925
- data/doc/TaskJuggler/GanttHeader.html +0 -928
- data/doc/TaskJuggler/GanttHeaderScaleItem.html +0 -742
- data/doc/TaskJuggler/GanttLine.html +0 -1305
- data/doc/TaskJuggler/GanttLoadStack.html +0 -808
- data/doc/TaskJuggler/GanttMilestone.html +0 -906
- data/doc/TaskJuggler/GanttRouter.html +0 -1118
- data/doc/TaskJuggler/GanttTaskBar.html +0 -927
- data/doc/TaskJuggler/HTMLDocument.html +0 -761
- data/doc/TaskJuggler/HTMLGraphics.html +0 -817
- data/doc/TaskJuggler/Interval.html +0 -1056
- data/doc/TaskJuggler/IntervalList.html +0 -777
- data/doc/TaskJuggler/IntervalListAttribute.html +0 -753
- data/doc/TaskJuggler/JobInfo.html +0 -923
- data/doc/TaskJuggler/Journal.html +0 -1158
- data/doc/TaskJuggler/JournalEntry.html +0 -821
- data/doc/TaskJuggler/JournalEntryList.html +0 -1071
- data/doc/TaskJuggler/KeywordArray.html +0 -676
- data/doc/TaskJuggler/KeywordDocumentation.html +0 -1838
- data/doc/TaskJuggler/Limits.html +0 -1016
- data/doc/TaskJuggler/Limits/Limit.html +0 -927
- data/doc/TaskJuggler/LimitsAttribute.html +0 -714
- data/doc/TaskJuggler/ListAttributeBase.html +0 -683
- data/doc/TaskJuggler/Log.html +0 -1143
- data/doc/TaskJuggler/LogFile.html +0 -960
- data/doc/TaskJuggler/LogicalAttribute.html +0 -740
- data/doc/TaskJuggler/LogicalExpression.html +0 -781
- data/doc/TaskJuggler/LogicalExpressionAttribute.html +0 -671
- data/doc/TaskJuggler/LogicalExpressionListAttribute.html +0 -671
- data/doc/TaskJuggler/LogicalFlag.html +0 -723
- data/doc/TaskJuggler/LogicalFunction.html +0 -1306
- data/doc/TaskJuggler/LogicalOperation.html +0 -1124
- data/doc/TaskJuggler/Macro.html +0 -688
- data/doc/TaskJuggler/MacroTable.html +0 -852
- data/doc/TaskJuggler/ManagerResponsibilities.html +0 -716
- data/doc/TaskJuggler/ManagerStatusRecord.html +0 -720
- data/doc/TaskJuggler/Message.html +0 -817
- data/doc/TaskJuggler/MessageHandler.html +0 -1036
- data/doc/TaskJuggler/Navigator.html +0 -922
- data/doc/TaskJuggler/NavigatorElement.html +0 -974
- data/doc/TaskJuggler/NikuProject.html +0 -704
- data/doc/TaskJuggler/NikuReport.html +0 -1449
- data/doc/TaskJuggler/NikuResource.html +0 -674
- data/doc/TaskJuggler/NodeListAttribute.html +0 -635
- data/doc/TaskJuggler/PlaceHolderCell.html +0 -728
- data/doc/TaskJuggler/ProcessIntercom.html +0 -997
- data/doc/TaskJuggler/ProcessIntercomIface.html +0 -753
- data/doc/TaskJuggler/Project.html +0 -3333
- data/doc/TaskJuggler/ProjectBroker.html +0 -1656
- data/doc/TaskJuggler/ProjectBrokerIface.html +0 -831
- data/doc/TaskJuggler/ProjectFileParser.html +0 -2033
- data/doc/TaskJuggler/ProjectFileScanner.html +0 -1816
- data/doc/TaskJuggler/ProjectRecord.html +0 -958
- data/doc/TaskJuggler/ProjectServer.html +0 -1229
- data/doc/TaskJuggler/ProjectServerIface.html +0 -848
- data/doc/TaskJuggler/PropertyAttribute.html +0 -671
- data/doc/TaskJuggler/PropertyList.html +0 -1379
- data/doc/TaskJuggler/PropertySet.html +0 -1799
- data/doc/TaskJuggler/PropertyTreeNode.html +0 -2579
- data/doc/TaskJuggler/Query.html +0 -1663
- data/doc/TaskJuggler/RTFHandlers.html +0 -644
- data/doc/TaskJuggler/RTFNavigator.html +0 -772
- data/doc/TaskJuggler/RTFQuery.html +0 -1040
- data/doc/TaskJuggler/RTFReport.html +0 -800
- data/doc/TaskJuggler/RTFReportLink.html +0 -792
- data/doc/TaskJuggler/RTFWithQuerySupport.html +0 -682
- data/doc/TaskJuggler/RealFormat.html +0 -785
- data/doc/TaskJuggler/RealFormatAttribute.html +0 -635
- data/doc/TaskJuggler/ReferenceAttribute.html +0 -824
- data/doc/TaskJuggler/Report.html +0 -1477
- data/doc/TaskJuggler/ReportBase.html +0 -1246
- data/doc/TaskJuggler/ReportContext.html +0 -816
- data/doc/TaskJuggler/ReportServer.html +0 -1048
- data/doc/TaskJuggler/ReportServerIface.html +0 -882
- data/doc/TaskJuggler/ReportServerRecord.html +0 -761
- data/doc/TaskJuggler/ReportServlet.html +0 -1024
- data/doc/TaskJuggler/ReportTable.html +0 -1159
- data/doc/TaskJuggler/ReportTableCell.html +0 -1646
- data/doc/TaskJuggler/ReportTableColumn.html +0 -870
- data/doc/TaskJuggler/ReportTableLegend.html +0 -1040
- data/doc/TaskJuggler/ReportTableLine.html +0 -1047
- data/doc/TaskJuggler/Resource.html +0 -972
- data/doc/TaskJuggler/ResourceListAttribute.html +0 -810
- data/doc/TaskJuggler/ResourceListRE.html +0 -717
- data/doc/TaskJuggler/ResourceScenario.html +0 -2599
- data/doc/TaskJuggler/RichText.html +0 -859
- data/doc/TaskJuggler/RichTextAttribute.html +0 -785
- data/doc/TaskJuggler/RichTextDocument.html +0 -1018
- data/doc/TaskJuggler/RichTextElement.html +0 -1754
- data/doc/TaskJuggler/RichTextFunctionExample.html +0 -779
- data/doc/TaskJuggler/RichTextFunctionHandler.html +0 -730
- data/doc/TaskJuggler/RichTextImage.html +0 -692
- data/doc/TaskJuggler/RichTextIntermediate.html +0 -1265
- data/doc/TaskJuggler/RichTextParser.html +0 -847
- data/doc/TaskJuggler/RichTextScanner.html +0 -1469
- data/doc/TaskJuggler/RichTextSnip.html +0 -980
- data/doc/TaskJuggler/RichTextSyntaxRules.html +0 -2018
- data/doc/TaskJuggler/Scenario.html +0 -636
- data/doc/TaskJuggler/ScenarioData.html +0 -818
- data/doc/TaskJuggler/ScenarioListAttribute.html +0 -713
- data/doc/TaskJuggler/Scoreboard.html +0 -1181
- data/doc/TaskJuggler/SheetHandlerBase.html +0 -1275
- data/doc/TaskJuggler/SheetReceiver.html +0 -1368
- data/doc/TaskJuggler/SheetSender.html +0 -1134
- data/doc/TaskJuggler/Shift.html +0 -731
- data/doc/TaskJuggler/ShiftAssignment.html +0 -988
- data/doc/TaskJuggler/ShiftAssignments.html +0 -1393
- data/doc/TaskJuggler/ShiftAssignmentsAttribute.html +0 -714
- data/doc/TaskJuggler/ShiftScenario.html +0 -762
- data/doc/TaskJuggler/SimpleQueryExpander.html +0 -713
- data/doc/TaskJuggler/SortListAttribute.html +0 -671
- data/doc/TaskJuggler/SourceFileInfo.html +0 -740
- data/doc/TaskJuggler/StatusSheetReceiver.html +0 -658
- data/doc/TaskJuggler/StatusSheetReport.html +0 -910
- data/doc/TaskJuggler/StatusSheetSender.html +0 -788
- data/doc/TaskJuggler/StringAttribute.html +0 -713
- data/doc/TaskJuggler/SymbolAttribute.html +0 -671
- data/doc/TaskJuggler/SyntaxReference.html +0 -1220
- data/doc/TaskJuggler/TOCEntry.html +0 -816
- data/doc/TaskJuggler/TSResourceRecord.html +0 -712
- data/doc/TaskJuggler/TSTaskRecord.html +0 -724
- data/doc/TaskJuggler/TableColumnDefinition.html +0 -928
- data/doc/TaskJuggler/TableOfContents.html +0 -770
- data/doc/TaskJuggler/TableReport.html +0 -2533
- data/doc/TaskJuggler/Task.html +0 -865
- data/doc/TaskJuggler/TaskDependency.html +0 -772
- data/doc/TaskJuggler/TaskListAttribute.html +0 -753
- data/doc/TaskJuggler/TaskListRE.html +0 -716
- data/doc/TaskJuggler/TaskScenario.html +0 -4959
- data/doc/TaskJuggler/TextFormatter.html +0 -953
- data/doc/TaskJuggler/TextParser.html +0 -1773
- data/doc/TaskJuggler/TextParser/Pattern.html +0 -1717
- data/doc/TaskJuggler/TextParser/Rule.html +0 -1399
- data/doc/TaskJuggler/TextParser/StackElement.html +0 -922
- data/doc/TaskJuggler/TextParser/State.html +0 -995
- data/doc/TaskJuggler/TextParser/StateTransition.html +0 -788
- data/doc/TaskJuggler/TextParser/TextParserResultArray.html +0 -691
- data/doc/TaskJuggler/TextParser/TokenDoc.html +0 -722
- data/doc/TaskJuggler/TextReport.html +0 -901
- data/doc/TaskJuggler/TextScanner.html +0 -1482
- data/doc/TaskJuggler/TextScanner/BufferStreamHandle.html +0 -641
- data/doc/TaskJuggler/TextScanner/FileStreamHandle.html +0 -707
- data/doc/TaskJuggler/TextScanner/MacroStackEntry.html +0 -704
- data/doc/TaskJuggler/TextScanner/StreamHandle.html +0 -1036
- data/doc/TaskJuggler/TimeSheet.html +0 -1232
- data/doc/TaskJuggler/TimeSheetReceiver.html +0 -655
- data/doc/TaskJuggler/TimeSheetRecord.html +0 -1395
- data/doc/TaskJuggler/TimeSheetReport.html +0 -991
- data/doc/TaskJuggler/TimeSheetSender.html +0 -680
- data/doc/TaskJuggler/TimeSheetSummary.html +0 -935
- data/doc/TaskJuggler/TimeSheets.html +0 -716
- data/doc/TaskJuggler/Tj3AppBase.html +0 -831
- data/doc/TaskJuggler/Tj3Client.html +0 -1477
- data/doc/TaskJuggler/Tj3Daemon.html +0 -884
- data/doc/TaskJuggler/Tj3SheetAppBase.html +0 -738
- data/doc/TaskJuggler/Tj3SsReceiver.html +0 -724
- data/doc/TaskJuggler/Tj3SsSender.html +0 -757
- data/doc/TaskJuggler/Tj3TsReceiver.html +0 -724
- data/doc/TaskJuggler/Tj3TsSender.html +0 -744
- data/doc/TaskJuggler/Tj3TsSummary.html +0 -752
- data/doc/TaskJuggler/TjException.html +0 -672
- data/doc/TaskJuggler/TjTime.html +0 -2807
- data/doc/TaskJuggler/TjpExample.html +0 -877
- data/doc/TaskJuggler/TjpExportRE.html +0 -1598
- data/doc/TaskJuggler/TjpSyntaxRules.html +0 -13611
- data/doc/TaskJuggler/URLParameter.html +0 -671
- data/doc/TaskJuggler/UserManual.html +0 -1188
- data/doc/TaskJuggler/VimSyntax.html +0 -1044
- data/doc/TaskJuggler/WebServer.html +0 -737
- data/doc/TaskJuggler/WelcomePage.html +0 -769
- data/doc/TaskJuggler/WorkingHours.html +0 -1207
- data/doc/TaskJuggler/WorkingHoursAttribute.html +0 -736
- data/doc/TaskJuggler/XMLBlob.html +0 -687
- data/doc/TaskJuggler/XMLComment.html +0 -682
- data/doc/TaskJuggler/XMLDocument.html +0 -774
- data/doc/TaskJuggler/XMLElement.html +0 -942
- data/doc/TaskJuggler/XMLNamedText.html +0 -643
- data/doc/TaskJuggler/XMLText.html +0 -697
- data/doc/index.html +0 -4127
- data/doc/lib/AccountScenario_rb.html +0 -69
- data/doc/lib/Account_rb.html +0 -71
- data/doc/lib/Allocation_rb.html +0 -71
- data/doc/lib/AppConfig_rb.html +0 -71
- data/doc/lib/AttributeBase_rb.html +0 -69
- data/doc/lib/AttributeDefinition_rb.html +0 -67
- data/doc/lib/Attributes_rb.html +0 -83
- data/doc/lib/BatchProcessor_rb.html +0 -71
- data/doc/lib/Booking_rb.html +0 -67
- data/doc/lib/ChargeSet_rb.html +0 -69
- data/doc/lib/Charge_rb.html +0 -69
- data/doc/lib/DataCache_rb.html +0 -71
- data/doc/lib/FileList_rb.html +0 -67
- data/doc/lib/HTMLDocument_rb.html +0 -69
- data/doc/lib/IntervalList_rb.html +0 -69
- data/doc/lib/Interval_rb.html +0 -69
- data/doc/lib/Journal_rb.html +0 -67
- data/doc/lib/KeywordArray_rb.html +0 -67
- data/doc/lib/KeywordDocumentation_rb.html +0 -77
- data/doc/lib/Limits_rb.html +0 -69
- data/doc/lib/LogFile_rb.html +0 -69
- data/doc/lib/Log_rb.html +0 -71
- data/doc/lib/LogicalExpression_rb.html +0 -73
- data/doc/lib/LogicalFunction_rb.html +0 -69
- data/doc/lib/LogicalOperation_rb.html +0 -69
- data/doc/lib/MacroTable_rb.html +0 -73
- data/doc/lib/MessageHandler_rb.html +0 -67
- data/doc/lib/ProjectFileParser_rb.html +0 -77
- data/doc/lib/ProjectFileScanner_rb.html +0 -69
- data/doc/lib/Project_rb.html +0 -113
- data/doc/lib/PropertyList_rb.html +0 -67
- data/doc/lib/PropertySet_rb.html +0 -71
- data/doc/lib/PropertyTreeNode_rb.html +0 -67
- data/doc/lib/Query_rb.html +0 -69
- data/doc/lib/RTFHandlers_rb.html +0 -75
- data/doc/lib/RTFNavigator_rb.html +0 -73
- data/doc/lib/RTFQuery_rb.html +0 -73
- data/doc/lib/RTFReportLink_rb.html +0 -75
- data/doc/lib/RTFReport_rb.html +0 -71
- data/doc/lib/RTFWithQuerySupport_rb.html +0 -69
- data/doc/lib/RealFormat_rb.html +0 -67
- data/doc/lib/ResourceScenario_rb.html +0 -69
- data/doc/lib/Resource_rb.html +0 -71
- data/doc/lib/RichTextDocument_rb.html +0 -73
- data/doc/lib/RichTextElement_rb.html +0 -75
- data/doc/lib/RichTextFunctionExample_rb.html +0 -73
- data/doc/lib/RichTextFunctionHandler_rb.html +0 -67
- data/doc/lib/RichTextParser_rb.html +0 -73
- data/doc/lib/RichTextScanner_rb.html +0 -71
- data/doc/lib/RichTextSnip_rb.html +0 -71
- data/doc/lib/RichTextSyntaxRules_rb.html +0 -67
- data/doc/lib/RichText_rb.html +0 -73
- data/doc/lib/RuntimeConfig_rb.html +0 -69
- data/doc/lib/ScenarioData_rb.html +0 -71
- data/doc/lib/Scenario_rb.html +0 -69
- data/doc/lib/Scoreboard_rb.html +0 -69
- data/doc/lib/SheetHandlerBase_rb.html +0 -75
- data/doc/lib/SheetReceiver_rb.html +0 -79
- data/doc/lib/SheetSender_rb.html +0 -77
- data/doc/lib/ShiftAssignments_rb.html +0 -71
- data/doc/lib/ShiftScenario_rb.html +0 -69
- data/doc/lib/Shift_rb.html +0 -71
- data/doc/lib/SimpleQueryExpander_rb.html +0 -69
- data/doc/lib/SourceFileInfo_rb.html +0 -67
- data/doc/lib/StatusSheetReceiver_rb.html +0 -69
- data/doc/lib/StatusSheetSender_rb.html +0 -69
- data/doc/lib/SyntaxReference_rb.html +0 -75
- data/doc/lib/TOCEntry_rb.html +0 -71
- data/doc/lib/TableColumnDefinition_rb.html +0 -67
- data/doc/lib/TableOfContents_rb.html +0 -71
- data/doc/lib/TaskDependency_rb.html +0 -67
- data/doc/lib/TaskJuggler_rb.html +0 -75
- data/doc/lib/TaskScenario_rb.html +0 -71
- data/doc/lib/Task_rb.html +0 -71
- data/doc/lib/TextFormatter_rb.html +0 -69
- data/doc/lib/TextParser/Pattern_rb.html +0 -71
- data/doc/lib/TextParser/Rule_rb.html +0 -69
- data/doc/lib/TextParser/StackElement_rb.html +0 -69
- data/doc/lib/TextParser/State_rb.html +0 -67
- data/doc/lib/TextParser/TokenDoc_rb.html +0 -67
- data/doc/lib/TextParser_rb.html +0 -79
- data/doc/lib/TextScanner_rb.html +0 -83
- data/doc/lib/TimeSheetReceiver_rb.html +0 -69
- data/doc/lib/TimeSheetSender_rb.html +0 -69
- data/doc/lib/TimeSheetSummary_rb.html +0 -69
- data/doc/lib/TimeSheets_rb.html +0 -67
- data/doc/lib/Tj3AppBase_rb.html +0 -79
- data/doc/lib/Tj3Config_rb.html +0 -71
- data/doc/lib/Tj3SheetAppBase_rb.html +0 -69
- data/doc/lib/TjException_rb.html +0 -67
- data/doc/lib/TjTime_rb.html +0 -71
- data/doc/lib/TjpExample_rb.html +0 -69
- data/doc/lib/TjpSyntaxRules_rb.html +0 -67
- data/doc/lib/URLParameter_rb.html +0 -69
- data/doc/lib/UTF8String_rb.html +0 -67
- data/doc/lib/UserManual_rb.html +0 -79
- data/doc/lib/VimSyntax_rb.html +0 -69
- data/doc/lib/WorkingHours_rb.html +0 -71
- data/doc/lib/XMLDocument_rb.html +0 -69
- data/doc/lib/XMLElement_rb.html +0 -69
- data/doc/lib/daemon/Daemon_rb.html +0 -69
- data/doc/lib/daemon/ProcessIntercom_rb.html +0 -71
- data/doc/lib/daemon/ProjectBroker_rb.html +0 -83
- data/doc/lib/daemon/ProjectServer_rb.html +0 -85
- data/doc/lib/daemon/ReportServer_rb.html +0 -73
- data/doc/lib/daemon/ReportServlet_rb.html +0 -69
- data/doc/lib/daemon/WebServer_rb.html +0 -81
- data/doc/lib/daemon/WelcomePage_rb.html +0 -71
- data/doc/lib/deep_copy_rb.html +0 -67
- data/doc/lib/exchangebug_rb.html +0 -69
- data/doc/lib/reports/CSVFile_rb.html +0 -69
- data/doc/lib/reports/CollisionDetector_rb.html +0 -69
- data/doc/lib/reports/ColumnTable_rb.html +0 -69
- data/doc/lib/reports/GanttChart_rb.html +0 -75
- data/doc/lib/reports/GanttContainer_rb.html +0 -69
- data/doc/lib/reports/GanttHeaderScaleItem_rb.html +0 -67
- data/doc/lib/reports/GanttHeader_rb.html +0 -69
- data/doc/lib/reports/GanttLine_rb.html +0 -79
- data/doc/lib/reports/GanttLoadStack_rb.html +0 -69
- data/doc/lib/reports/GanttMilestone_rb.html +0 -69
- data/doc/lib/reports/GanttRouter_rb.html +0 -69
- data/doc/lib/reports/GanttTaskBar_rb.html +0 -69
- data/doc/lib/reports/HTMLGraphics_rb.html +0 -67
- data/doc/lib/reports/Navigator_rb.html +0 -69
- data/doc/lib/reports/NikuReport_rb.html +0 -71
- data/doc/lib/reports/ReportBase_rb.html +0 -67
- data/doc/lib/reports/ReportContext_rb.html +0 -67
- data/doc/lib/reports/ReportTableCell_rb.html +0 -67
- data/doc/lib/reports/ReportTableColumn_rb.html +0 -67
- data/doc/lib/reports/ReportTableLegend_rb.html +0 -67
- data/doc/lib/reports/ReportTableLine_rb.html +0 -69
- data/doc/lib/reports/ReportTable_rb.html +0 -71
- data/doc/lib/reports/Report_rb.html +0 -93
- data/doc/lib/reports/ResourceListRE_rb.html +0 -75
- data/doc/lib/reports/StatusSheetReport_rb.html +0 -69
- data/doc/lib/reports/TableReport_rb.html +0 -77
- data/doc/lib/reports/TaskListRE_rb.html +0 -75
- data/doc/lib/reports/TextReport_rb.html +0 -69
- data/doc/lib/reports/TimeSheetReport_rb.html +0 -69
- data/doc/lib/reports/TjpExportRE_rb.html +0 -69
- data/doc/lib/ruby-signal-bug_rb.html +0 -69
- data/doc/lib/test_rb.html +0 -73
- data/doc/lib/tj3_rb.html +0 -75
- data/doc/lib/tj3client_rb.html +0 -75
- data/doc/lib/tj3d_rb.html +0 -75
- data/doc/lib/tj3man_rb.html +0 -75
- data/doc/lib/tj3ss_receiver_rb.html +0 -71
- data/doc/lib/tj3ss_sender_rb.html +0 -71
- data/doc/lib/tj3ts_receiver_rb.html +0 -71
- data/doc/lib/tj3ts_sender_rb.html +0 -71
- data/doc/lib/tj3ts_summary_rb.html +0 -71
- data/doc/rdoc.css +0 -706
- data/lib/test.rb +0 -19
- data/setup.rb +0 -1585
- data/test/TestSuite/CSV-Reports/genrefs +0 -6
- data/test/TestSuite/Scheduler/Correct/Allocate.html +0 -2922
- data/test/TestSuite/Scheduler/Correct/Booking2.html +0 -603
- data/test/TestSuite/Scheduler/Correct/Container.html +0 -513
- data/test/TestSuite/Scheduler/Correct/Precedes.html +0 -834
- data/test/TestSuite/Scheduler/Correct/Shift.html +0 -429
- data/test/TestSuite/Scheduler/Correct/Shift2.html +0 -476
- data/test/TestSuite/Scheduler/Correct/TimeSheet2.html +0 -108
- data/test/TestSuite/Scheduler/Errors/task_underspecified_2.tjp +0 -8
- data/test/TestSuite/Syntax/Correct/ReleasePlan.html +0 -160
- data/test/TestSuite/Syntax/Correct/ResourcePrefix.html +0 -32
- data/test/TestSuite/Syntax/Correct/ResourceRoot.html +0 -108
- data/test/TestSuite/Syntax/Correct/niku.html +0 -67
File without changes
|
@@ -18,6 +18,16 @@ class TaskJuggler
|
|
18
18
|
# necessary but make the file more readable and receptable to syntax folding.
|
19
19
|
module TjpSyntaxRules
|
20
20
|
|
21
|
+
def rule_absoluteTaskId
|
22
|
+
pattern(%w( !taskIdUnverifd ), lambda {
|
23
|
+
id = (@taskprefix.empty? ? '' : @taskprefix + '.') + @val[0]
|
24
|
+
if (task = @project.task(id)).nil?
|
25
|
+
error('unknown_abs_task', "Unknown task #{id}", @sourceFileInfo[0])
|
26
|
+
end
|
27
|
+
task
|
28
|
+
})
|
29
|
+
end
|
30
|
+
|
21
31
|
def rule_account
|
22
32
|
pattern(%w( !accountHeader !accountBody ), lambda {
|
23
33
|
@property = @property.parent
|
@@ -856,7 +866,19 @@ EOT
|
|
856
866
|
|
857
867
|
def rule_exportHeader
|
858
868
|
pattern(%w( _export !optionalID $STRING ), lambda {
|
859
|
-
newReport(@val[1], @val[2], :export, sourceFileInfo)
|
869
|
+
report = newReport(@val[1], @val[2], :export, sourceFileInfo)
|
870
|
+
|
871
|
+
# By default, we export all scenarios.
|
872
|
+
scenarios = Array.new(@project.scenarios.items) { |i| i }
|
873
|
+
scenarios.delete_if { |sc| !@project.scenario(sc).get('enabled') }
|
874
|
+
report.set('scenarios', scenarios)
|
875
|
+
# Show all tasks, sorted by seqno-up.
|
876
|
+
report.set('hideTask', LogicalExpression.new(LogicalOperation.new(0)))
|
877
|
+
report.set('sortTasks', [ [ 'seqno', true, -1 ] ])
|
878
|
+
# Show all resources, sorted by seqno-up.
|
879
|
+
report.set('hideResource',
|
880
|
+
LogicalExpression.new(LogicalOperation.new(0)))
|
881
|
+
report.set('sortResources', [ [ 'seqno', true, -1 ] ])
|
860
882
|
})
|
861
883
|
arg(1, 'file name', <<'EOT'
|
862
884
|
The name of the report file to generate. It must end with a .tjp or .tji
|
@@ -903,6 +925,18 @@ EOT
|
|
903
925
|
{ 'vacation' => 'Include vacations',
|
904
926
|
'workinghours' => 'Include working hours' })
|
905
927
|
|
928
|
+
pattern(%w( _scenarios !scenarioIdList ), lambda {
|
929
|
+
# Don't include disabled scenarios in the report
|
930
|
+
@val[1].delete_if { |sc| !@project.scenario(sc).get('enabled') }
|
931
|
+
@property.set('scenarios', @val[1])
|
932
|
+
})
|
933
|
+
doc('scenarios.export', <<'EOT'
|
934
|
+
List of scenarios that should be included in the report. By default, all
|
935
|
+
scenarios will be included. This attribute can be used to limit the included
|
936
|
+
scenarios to a defined list.
|
937
|
+
EOT
|
938
|
+
)
|
939
|
+
|
906
940
|
pattern(%w( _taskattributes !exportableTaskAttributes ), lambda {
|
907
941
|
@property.set('taskAttributes', @val[1])
|
908
942
|
})
|
@@ -922,6 +956,12 @@ EOT
|
|
922
956
|
'note' => 'Include notes',
|
923
957
|
'priority' => 'Include priorities',
|
924
958
|
'responsible' => 'Include responsible resource' })
|
959
|
+
|
960
|
+
pattern(%w( _timezone !validTimeZone ), lambda {
|
961
|
+
@property.set('timezone', @val[1])
|
962
|
+
})
|
963
|
+
doc('timezone.export',
|
964
|
+
"Set the time zone to be used for all dates in the report.")
|
925
965
|
end
|
926
966
|
|
927
967
|
def rule_exportBody
|
@@ -970,6 +1010,29 @@ EOT
|
|
970
1010
|
doc('reference.extend', <<'EOT'
|
971
1011
|
Extend the property with a new attribute of type reference. A reference is a
|
972
1012
|
URL and an optional text that will be shown instead of the URL if needed.
|
1013
|
+
EOT
|
1014
|
+
)
|
1015
|
+
arg(2, 'name', 'The name of the new attribute. It is used as header ' +
|
1016
|
+
'in report columns and the like.')
|
1017
|
+
|
1018
|
+
pattern(%w( _richtext !extendId $STRING !extendOptionsBody ), lambda {
|
1019
|
+
# Extend the propertySet definition and parser rules
|
1020
|
+
if extendPropertySetDefinition(RichTextAttribute, nil)
|
1021
|
+
@ruleToExtendWithScenario.addPattern(TextParser::Pattern.new(
|
1022
|
+
[ '_' + @val[1], '$STRING' ], lambda {
|
1023
|
+
@property[@val[0], @scenarioIdx] =
|
1024
|
+
newRichText(@val[1], @sourceFileInfo[1])
|
1025
|
+
}))
|
1026
|
+
else
|
1027
|
+
@ruleToExtend.addPattern(TextParser::Pattern.new(
|
1028
|
+
[ '_' + @val[1], '$STRING' ], lambda {
|
1029
|
+
@property.set(@val[0], newRichText(@val[1], @sourceFileInfo[1]))
|
1030
|
+
}))
|
1031
|
+
end
|
1032
|
+
})
|
1033
|
+
doc('richtext.extend', <<'EOT'
|
1034
|
+
Extend the property with a new attribute of type [[Rich_Text_Attributes|Rich
|
1035
|
+
Text]].
|
973
1036
|
EOT
|
974
1037
|
)
|
975
1038
|
arg(2, 'name', 'The name of the new attribute. It is used as header ' +
|
@@ -1090,8 +1153,11 @@ EOT
|
|
1090
1153
|
pattern(%w( _flags !flagList ), lambda {
|
1091
1154
|
@val[1].each do |flag|
|
1092
1155
|
unless @property['flags', @scenarioIdx].include?(flag)
|
1093
|
-
|
1094
|
-
|
1156
|
+
# We allow multiple instances of flag definitions.
|
1157
|
+
begin
|
1158
|
+
@property['flags', @scenarioIdx] += @val[1]
|
1159
|
+
rescue AttributeOverwrite
|
1160
|
+
end
|
1095
1161
|
end
|
1096
1162
|
end
|
1097
1163
|
})
|
@@ -1305,7 +1371,7 @@ EOT
|
|
1305
1371
|
optional
|
1306
1372
|
repeatable
|
1307
1373
|
|
1308
|
-
pattern(%w( _accountprefix !
|
1374
|
+
pattern(%w( _accountprefix !accountId ), lambda {
|
1309
1375
|
@accountprefix = @val[1].fullId
|
1310
1376
|
})
|
1311
1377
|
doc('accountprefix', <<'EOT'
|
@@ -1316,7 +1382,7 @@ EOT
|
|
1316
1382
|
)
|
1317
1383
|
arg(1, 'account ID', 'The absolute ID of an already defined account')
|
1318
1384
|
|
1319
|
-
pattern(%w( _reportprefix !
|
1385
|
+
pattern(%w( _reportprefix !reportId ), lambda {
|
1320
1386
|
@reportprefix = @val[1].fullId
|
1321
1387
|
})
|
1322
1388
|
doc('reportprefix', <<'EOT'
|
@@ -1828,7 +1894,8 @@ EOT
|
|
1828
1894
|
if @scanner.macroDefined?(@val[1])
|
1829
1895
|
warning('marco_redefinition', "Redefining macro #{@val[1]}")
|
1830
1896
|
end
|
1831
|
-
@scanner.addMacro(Macro.new(@val[1], @val[2],
|
1897
|
+
@scanner.addMacro(TextParser::Macro.new(@val[1], @val[2],
|
1898
|
+
@sourceFileInfo[0]))
|
1832
1899
|
})
|
1833
1900
|
doc('macro', <<'EOT'
|
1834
1901
|
Defines a text fragment that can later be inserted by using the specified ID.
|
@@ -2335,10 +2402,10 @@ EOT
|
|
2335
2402
|
|
2336
2403
|
pattern(%w( _now !date ), lambda {
|
2337
2404
|
@project['now'] = @val[1]
|
2338
|
-
@scanner.addMacro(Macro.new('now', @val[1].to_s,
|
2339
|
-
|
2340
|
-
@scanner.addMacro(Macro.new(
|
2341
|
-
|
2405
|
+
@scanner.addMacro(TextParser::Macro.new('now', @val[1].to_s,
|
2406
|
+
@sourceFileInfo[0]))
|
2407
|
+
@scanner.addMacro(TextParser::Macro.new(
|
2408
|
+
'today', @val[1].to_s(@project['timeFormat']), @sourceFileInfo[0]))
|
2342
2409
|
})
|
2343
2410
|
doc('now', <<'EOT'
|
2344
2411
|
Specify the date that TaskJuggler uses for calculation as current
|
@@ -2376,7 +2443,7 @@ EOT
|
|
2376
2443
|
})
|
2377
2444
|
|
2378
2445
|
pattern(%w( !timezone ), lambda {
|
2379
|
-
@
|
2446
|
+
@val[0]
|
2380
2447
|
})
|
2381
2448
|
|
2382
2449
|
pattern(%w( _timingresolution $INTEGER _min ), lambda {
|
@@ -2453,6 +2520,8 @@ EOT
|
|
2453
2520
|
The project property is mandatory and should be the first property
|
2454
2521
|
in a project file. It is used to capture basic attributes such as
|
2455
2522
|
the project id, name and the expected time frame.
|
2523
|
+
|
2524
|
+
Be aware that the dates for the project period default to UTC times. See [[interval2]] for details.
|
2456
2525
|
EOT
|
2457
2526
|
)
|
2458
2527
|
end
|
@@ -2724,7 +2793,7 @@ EOT
|
|
2724
2793
|
if attributeDefinition.scenarioSpecific
|
2725
2794
|
attr = @property[@val[1], 0]
|
2726
2795
|
else
|
2727
|
-
attr = @
|
2796
|
+
attr = @property.get(@val[1])
|
2728
2797
|
end
|
2729
2798
|
unless attr.is_a?(Array)
|
2730
2799
|
error('purge_no_list',
|
@@ -2966,6 +3035,26 @@ EOT
|
|
2966
3035
|
singlePattern('_index')
|
2967
3036
|
descr('The index of the item based on the nesting hierachy')
|
2968
3037
|
|
3038
|
+
singlePattern('_inputs')
|
3039
|
+
descr(<<'EOT'
|
3040
|
+
A list of milestones that are a prerequiste for the current task. For
|
3041
|
+
container tasks it will also include the inputs of the child tasks. Inputs may
|
3042
|
+
not have any predecessors.
|
3043
|
+
|
3044
|
+
The list can be customized by the [listmode.column listmode] attribute. The
|
3045
|
+
following modes are supported:
|
3046
|
+
|
3047
|
+
# ID
|
3048
|
+
# Name
|
3049
|
+
# Name (ID)
|
3050
|
+
# ID: Name
|
3051
|
+
# ID (Date)
|
3052
|
+
# Name (Date)
|
3053
|
+
# Name (ID) Date ''(This is the default)''
|
3054
|
+
# ID: Name Date
|
3055
|
+
EOT
|
3056
|
+
)
|
3057
|
+
|
2969
3058
|
singlePattern('_journal')
|
2970
3059
|
descr(<<'EOT'
|
2971
3060
|
The journal entries for the task or resource for the reported interval.
|
@@ -3144,7 +3233,8 @@ EOT
|
|
3144
3233
|
singlePattern('_targets')
|
3145
3234
|
descr(<<'EOT'
|
3146
3235
|
A list of milestones that depend on the current task. For container tasks it
|
3147
|
-
will also include the targets of the child tasks.
|
3236
|
+
will also include the targets of the child tasks. Targets may not have any
|
3237
|
+
follower tasks.
|
3148
3238
|
|
3149
3239
|
The list can be customized by the [listmode.column listmode] attribute. The
|
3150
3240
|
following modes are supported:
|
@@ -3154,8 +3244,8 @@ following modes are supported:
|
|
3154
3244
|
# Name (ID)
|
3155
3245
|
# ID: Name
|
3156
3246
|
# ID (Date)
|
3157
|
-
# Name (Date)
|
3158
|
-
# Name (ID) Date
|
3247
|
+
# Name (Date)
|
3248
|
+
# Name (ID) Date ''(This is the default)''
|
3159
3249
|
# ID: Name Date
|
3160
3250
|
EOT
|
3161
3251
|
)
|
@@ -3331,7 +3421,11 @@ EOT
|
|
3331
3421
|
@property.set('scenarios', @val[1])
|
3332
3422
|
})
|
3333
3423
|
doc('scenarios', <<'EOT'
|
3334
|
-
List of scenarios that should be included in the report.
|
3424
|
+
List of scenarios that should be included in the report. By default, only the
|
3425
|
+
top-level scenario will be included. You can use this attribute to include
|
3426
|
+
data from the defined set of scenarios. Not all reports support reporting data
|
3427
|
+
from multiple scenarios. They will only include data from the first one in the
|
3428
|
+
list.
|
3335
3429
|
EOT
|
3336
3430
|
)
|
3337
3431
|
|
@@ -3378,6 +3472,17 @@ EOT
|
|
3378
3472
|
@property.set('timeFormat', @val[0])
|
3379
3473
|
})
|
3380
3474
|
|
3475
|
+
pattern(%w( _timezone !validTimeZone ), lambda {
|
3476
|
+
@property.set('timezone', @val[1])
|
3477
|
+
})
|
3478
|
+
doc('timezone.report', <<'EOT'
|
3479
|
+
Sets the time zone used for all dates in the report. This setting is ignored
|
3480
|
+
if the report is embedded into another report. Embedded in this context means
|
3481
|
+
the report is part of another generated report. It does not mean that the
|
3482
|
+
report definition is a sub report of another report definition.
|
3483
|
+
EOT
|
3484
|
+
)
|
3485
|
+
|
3381
3486
|
pattern(%w( !reportTitle ))
|
3382
3487
|
end
|
3383
3488
|
|
@@ -3731,15 +3836,15 @@ EOT
|
|
3731
3836
|
)
|
3732
3837
|
|
3733
3838
|
pattern(%w( _booking !resourceBooking ))
|
3734
|
-
doc('booking', <<'EOT'
|
3839
|
+
doc('booking.resource', <<'EOT'
|
3735
3840
|
The booking attribute can be used to report completed work. This can be part
|
3736
3841
|
of the necessary effort or the whole effort. When the scenario is scheduled in
|
3737
3842
|
[[projection]] mode, TaskJuggler assumes that only the work reported with
|
3738
3843
|
bookings has been done up to now. It then schedules a plan for the still
|
3739
3844
|
missing effort. All task with bookings must be scheduled in ''''asap'''' mode.
|
3740
3845
|
|
3741
|
-
|
3742
|
-
|
3846
|
+
Bookings are only valid in the scenario they have been defined in. They will
|
3847
|
+
not be passed to any other scenario.
|
3743
3848
|
|
3744
3849
|
The sloppy attribute can be used when you want to skip non-working time or
|
3745
3850
|
other allocations automatically. If it's not given, all bookings must only
|
@@ -3750,9 +3855,14 @@ work. This attribute is not really intended to specify completed effort by
|
|
3750
3855
|
hand. Usually, booking statements are generated by [[export]] reports. The
|
3751
3856
|
[[sloppy.booking|sloppy]] and [[overtime.booking|overtime]] attributes are
|
3752
3857
|
only kludge for users who want to write them manually.
|
3858
|
+
Bookings can be used to report already completed work by specifying the exact
|
3859
|
+
time intervals a certain resource has worked on this task.
|
3860
|
+
|
3861
|
+
Bookings can be defined in the task or resource context. If you move tasks
|
3862
|
+
around very often, put your bookings in the task context.
|
3753
3863
|
EOT
|
3754
3864
|
)
|
3755
|
-
also(%w( scheduling ))
|
3865
|
+
also(%w( scheduling booking.task ))
|
3756
3866
|
example('Booking')
|
3757
3867
|
|
3758
3868
|
pattern(%w( !fail ))
|
@@ -3852,7 +3962,7 @@ By default, the scheduler assigns resources to task beginning with the project
|
|
3852
3962
|
start date. If the scenario is switched to projection mode, no assignments
|
3853
3963
|
will be made prior to the current date or the date specified by [[now]]. In
|
3854
3964
|
this case, TaskJuggler assumes, that all assignements prior to the
|
3855
|
-
current date have been provided by [[booking]] statements.
|
3965
|
+
current date have been provided by [[booking.task]] statements.
|
3856
3966
|
EOT
|
3857
3967
|
)
|
3858
3968
|
end
|
@@ -4487,6 +4597,25 @@ EOT
|
|
4487
4597
|
repeatable
|
4488
4598
|
optional
|
4489
4599
|
|
4600
|
+
pattern(%w( _adopt !taskList ), lambda {
|
4601
|
+
@val[1].each do |task|
|
4602
|
+
@property.adopt(task)
|
4603
|
+
end
|
4604
|
+
})
|
4605
|
+
doc('adopt.task', <<'EOT'
|
4606
|
+
Add a previously defined task to the sub-tasks of this task. This can be used
|
4607
|
+
to create virtual sub projects that contain of task trees that were defined as
|
4608
|
+
sub tasks of other tasks. Adopted tasks don't inherit anything from their step
|
4609
|
+
parents. However, the adopting task is scheduled to fit all adopted childs as
|
4610
|
+
well.
|
4611
|
+
|
4612
|
+
The adopting task and the adopted task must not share a common top-level task.
|
4613
|
+
Adopted tasks may not have overlaping sub trees.
|
4614
|
+
|
4615
|
+
'''This feature is experimental right now. Don't use it!'''.
|
4616
|
+
EOT
|
4617
|
+
)
|
4618
|
+
|
4490
4619
|
pattern(%w( !journalEntry ))
|
4491
4620
|
|
4492
4621
|
pattern(%w( _note $STRING ), lambda {
|
@@ -4686,6 +4815,10 @@ EOT
|
|
4686
4815
|
singlePattern('$ID')
|
4687
4816
|
end
|
4688
4817
|
|
4818
|
+
def rule_taskList
|
4819
|
+
listRule('moreTasks', '!absoluteTaskId')
|
4820
|
+
end
|
4821
|
+
|
4689
4822
|
def rule_taskPeriod
|
4690
4823
|
pattern(%w( _period !valInterval), lambda {
|
4691
4824
|
@property['start', @scenarioIdx] = @val[1].start
|
@@ -4730,10 +4863,33 @@ EOT
|
|
4730
4863
|
|
4731
4864
|
pattern(%w( _booking !taskBooking ))
|
4732
4865
|
doc('booking.task', <<'EOT'
|
4866
|
+
The booking attribute can be used to report completed work. This can be part
|
4867
|
+
of the necessary effort or the whole effort. When the scenario is scheduled in
|
4868
|
+
[[projection]] mode, TaskJuggler assumes that only the work reported with
|
4869
|
+
bookings has been done up to now. It then schedules a plan for the still
|
4870
|
+
missing effort. All task with bookings must be scheduled in ''''asap'''' mode.
|
4871
|
+
|
4872
|
+
Bookings are only valid in the scenario they have been defined in. They will
|
4873
|
+
not be passed to any other scenario.
|
4874
|
+
|
4875
|
+
The sloppy attribute can be used when you want to skip non-working time or
|
4876
|
+
other allocations automatically. If it's not given, all bookings must only
|
4877
|
+
cover working time for the resource.
|
4878
|
+
|
4879
|
+
The booking attributes is designed to capture the exact amount of completed
|
4880
|
+
work. This attribute is not really intended to specify completed effort by
|
4881
|
+
hand. Usually, booking statements are generated by [[export]] reports. The
|
4882
|
+
[[sloppy.booking|sloppy]] and [[overtime.booking|overtime]] attributes are
|
4883
|
+
only kludge for users who want to write them manually.
|
4733
4884
|
Bookings can be used to report already completed work by specifying the exact
|
4734
4885
|
time intervals a certain resource has worked on this task.
|
4886
|
+
|
4887
|
+
Bookings can be defined in the task or resource context. If you move tasks
|
4888
|
+
around very often, put your bookings in the task context.
|
4735
4889
|
EOT
|
4736
4890
|
)
|
4891
|
+
also(%w( booking.resource ))
|
4892
|
+
example('Booking')
|
4737
4893
|
|
4738
4894
|
pattern(%w( _charge !number !chargeMode ), lambda {
|
4739
4895
|
checkContainer('charge')
|
@@ -4760,9 +4916,12 @@ EOT
|
|
4760
4916
|
mode = :perDiem
|
4761
4917
|
amount = @val[1] / 7.0
|
4762
4918
|
end
|
4763
|
-
|
4764
|
-
|
4765
|
-
|
4919
|
+
# Multiple 'charge' attributes are allowed.
|
4920
|
+
begin
|
4921
|
+
@property['charge', @scenarioIdx] +=
|
4922
|
+
[ Charge.new(amount, mode, @property, @scenarioIdx) ]
|
4923
|
+
rescue AttributeOverwrite
|
4924
|
+
end
|
4766
4925
|
})
|
4767
4926
|
doc('charge', <<'EOT'
|
4768
4927
|
Specify a one-time or per-period charge to a certain account. The charge can
|
@@ -4796,9 +4955,9 @@ EOT
|
|
4796
4955
|
|
4797
4956
|
pattern(%w( _depends !taskDepList ), lambda {
|
4798
4957
|
checkContainer('depends')
|
4799
|
-
@property['depends', @scenarioIdx] =
|
4800
|
-
@property['depends', @scenarioIdx] + @val[1]
|
4801
4958
|
begin
|
4959
|
+
@property['depends', @scenarioIdx] =
|
4960
|
+
@property['depends', @scenarioIdx] + @val[1]
|
4802
4961
|
@property['forward', @scenarioIdx] = true
|
4803
4962
|
rescue AttributeOverwrite
|
4804
4963
|
end
|
@@ -4813,10 +4972,7 @@ EOT
|
|
4813
4972
|
)
|
4814
4973
|
example('Depends1')
|
4815
4974
|
pattern(%w( _duration !calendarDuration ), lambda {
|
4816
|
-
|
4817
|
-
@property['duration', @scenarioIdx] = @val[1]
|
4818
|
-
@property['effort', @scenarioIdx] = 0
|
4819
|
-
@property['length', @scenarioIdx] = 0
|
4975
|
+
setDurationAttribute('duration', @val[1])
|
4820
4976
|
})
|
4821
4977
|
doc('duration', <<'EOT'
|
4822
4978
|
Specifies the time the task should last. This is calendar time, not working
|
@@ -4832,14 +4988,11 @@ EOT
|
|
4832
4988
|
also(%w( effort length ))
|
4833
4989
|
|
4834
4990
|
pattern(%w( _effort !workingDuration ), lambda {
|
4835
|
-
checkContainer('effort')
|
4836
4991
|
if @val[1] <= 0.0
|
4837
4992
|
error('effort_zero', "Effort value must be larger than 0",
|
4838
4993
|
@sourceFileInfo[1], @property)
|
4839
4994
|
end
|
4840
|
-
|
4841
|
-
@property['duration', @scenarioIdx] = 0
|
4842
|
-
@property['length', @scenarioIdx] = 0
|
4995
|
+
setDurationAttribute('effort', @val[1])
|
4843
4996
|
})
|
4844
4997
|
doc('effort', <<'EOT'
|
4845
4998
|
Specifies the effort needed to complete the task. An effort of 4d can be done
|
@@ -4867,13 +5020,14 @@ EOT
|
|
4867
5020
|
end
|
4868
5021
|
})
|
4869
5022
|
doc('end', <<'EOT'
|
4870
|
-
The end
|
4871
|
-
|
4872
|
-
|
5023
|
+
The end attribute provides a guideline to the scheduler when the task should
|
5024
|
+
end. It will never end later, but it may end earlier when allocated
|
5025
|
+
resources are not available that long. When an end date is provided for a
|
5026
|
+
container task, it will be passed down to ALAP task that don't have a well
|
5027
|
+
defined end criteria.
|
4873
5028
|
|
4874
|
-
|
4875
|
-
|
4876
|
-
will be inherited from the enclosing tasks or the project end date.
|
5029
|
+
Setting an end date will implicitely set the scheduling policy for this task
|
5030
|
+
to ALAP.
|
4877
5031
|
EOT
|
4878
5032
|
)
|
4879
5033
|
example('Export', '1')
|
@@ -4899,23 +5053,29 @@ EOT
|
|
4899
5053
|
pattern(%w( !fail ))
|
4900
5054
|
|
4901
5055
|
pattern(%w( _length !workingDuration ), lambda {
|
4902
|
-
|
4903
|
-
@property['length', @scenarioIdx] = @val[1]
|
4904
|
-
@property['duration', @scenarioIdx] = 0
|
4905
|
-
@property['effort', @scenarioIdx] = 0
|
5056
|
+
setDurationAttribute('length', @val[1])
|
4906
5057
|
})
|
4907
5058
|
doc('length', <<'EOT'
|
4908
|
-
Specifies the time
|
4909
|
-
calendar time. 7d means 7 working days,
|
4910
|
-
|
4911
|
-
|
4912
|
-
|
4913
|
-
|
4914
|
-
|
4915
|
-
|
5059
|
+
Specifies the global working time to be used for this task. The value is
|
5060
|
+
specified in working time, not calendar time. 7d means 7 working days, or 7
|
5061
|
+
times 8 hours (assuming default settings), not one week.
|
5062
|
+
|
5063
|
+
A task with a length specification may have resource allocations. Resources
|
5064
|
+
are allocated when they are available. There is no guarantee that the task
|
5065
|
+
will get any resources allocated. The availability of resources has no impact
|
5066
|
+
on the duration of the task. A time slot where none of the specified resources
|
5067
|
+
is available is still considered working time, if there is no global vacation
|
5068
|
+
and global working hours are defined accordingly.
|
5069
|
+
|
5070
|
+
For the length calculation, only the global working hours and the global
|
5071
|
+
vacations matter. If a resource has additinal working hours defined, it's
|
5072
|
+
quite possible that a task with a length of 5d will have an allocated effort
|
5073
|
+
larger than 40 hours. Resource working hours only have an impact on whether an
|
5074
|
+
allocation is made or not for a particular time slot. They don't effect the
|
5075
|
+
resulting duration of the task.
|
4916
5076
|
|
4917
5077
|
Tasks may not have subtasks if this attribute is used. Setting this attribute
|
4918
|
-
will reset the [[duration]] and [[
|
5078
|
+
will reset the [[duration]], [[effort]] and [[milestone]] attributes.
|
4919
5079
|
EOT
|
4920
5080
|
)
|
4921
5081
|
also(%w( duration effort ))
|
@@ -4952,8 +5112,7 @@ EOT
|
|
4952
5112
|
)
|
4953
5113
|
|
4954
5114
|
pattern(%w( _milestone ), lambda {
|
4955
|
-
|
4956
|
-
@property['milestone', @scenarioIdx] = true
|
5115
|
+
setDurationAttribute('milestone')
|
4957
5116
|
})
|
4958
5117
|
doc('milestone', <<'EOT'
|
4959
5118
|
Turns the task into a special task that has no duration. You may not specify a
|
@@ -5002,9 +5161,9 @@ EOT
|
|
5002
5161
|
|
5003
5162
|
pattern(%w( _precedes !taskPredList ), lambda {
|
5004
5163
|
checkContainer('precedes')
|
5005
|
-
@property['precedes', @scenarioIdx] =
|
5006
|
-
@property['precedes', @scenarioIdx] + @val[1]
|
5007
5164
|
begin
|
5165
|
+
@property['precedes', @scenarioIdx] =
|
5166
|
+
@property['precedes', @scenarioIdx] + @val[1]
|
5008
5167
|
@property['forward', @scenarioIdx] = false
|
5009
5168
|
rescue AttributeOverwrite
|
5010
5169
|
end
|
@@ -5172,13 +5331,14 @@ EOT
|
|
5172
5331
|
end
|
5173
5332
|
})
|
5174
5333
|
doc('start', <<'EOT'
|
5175
|
-
The start
|
5176
|
-
|
5177
|
-
|
5334
|
+
The start attribute provides a guideline to the scheduler when the task should
|
5335
|
+
start. It will never start earlier, but it may start later when allocated
|
5336
|
+
resources are not available immediately. When a start date is provided for a
|
5337
|
+
container task, it will be passed down to ASAP task that don't have a well
|
5338
|
+
defined start criteria.
|
5178
5339
|
|
5179
|
-
|
5180
|
-
|
5181
|
-
will be inherited from the enclosing tasks or the project start date.
|
5340
|
+
Setting a start date will implicitely set the scheduling policy for this task
|
5341
|
+
to ASAP.
|
5182
5342
|
EOT
|
5183
5343
|
)
|
5184
5344
|
also(%w( end period.task maxstart minstart scheduling ))
|
@@ -5361,15 +5521,15 @@ The intended use for time sheets is to have all resources report a time sheet
|
|
5361
5521
|
every day, week or month. All time sheets can be added to the project plan.
|
5362
5522
|
The status information is always used to determin the current status of the
|
5363
5523
|
project. The [[work]], [[remaining]] and [[end.timesheet|end]] attributes are
|
5364
|
-
ignored if there are also [[booking|bookings]] for the resource in the
|
5365
|
-
sheet period. The non-ignored attributes of the time sheets
|
5366
|
-
|
5367
|
-
then be [[export|exported]] into a file which can then be added to the
|
5368
|
-
again. This way, you can use time sheets to incrementally record
|
5369
|
-
your project. There is a possibility that time sheets conflict
|
5370
|
-
in the plan. In case TaskJuggler cannot automatically resolve
|
5371
|
-
conflicts have to be manually resolved by either changing the plan
|
5372
|
-
sheet.
|
5524
|
+
ignored if there are also [[booking.task|bookings]] for the resource in the
|
5525
|
+
time sheet period. The non-ignored attributes of the time sheets will be
|
5526
|
+
converted into [[booking.task|booking]] statements internally. These bookings
|
5527
|
+
can then be [[export|exported]] into a file which can then be added to the
|
5528
|
+
project again. This way, you can use time sheets to incrementally record
|
5529
|
+
progress of your project. There is a possibility that time sheets conflict
|
5530
|
+
with other data in the plan. In case TaskJuggler cannot automatically resolve
|
5531
|
+
them, these conflicts have to be manually resolved by either changing the plan
|
5532
|
+
or the time sheet.
|
5373
5533
|
|
5374
5534
|
The status messages are interpreted as [[journalentry|journal entries]]. The
|
5375
5535
|
alert level will be evaluated and the current state of the project can be put
|
@@ -5474,19 +5634,16 @@ EOT
|
|
5474
5634
|
|
5475
5635
|
def rule_timezone
|
5476
5636
|
pattern(%w( _timezone !validTimeZone ), lambda{
|
5477
|
-
|
5637
|
+
TjTime.setTimeZone(@val[1])
|
5638
|
+
@project['timezone'] = @val[1]
|
5478
5639
|
})
|
5479
5640
|
doc('timezone', <<'EOT'
|
5480
|
-
Sets the default time zone of the project. All times that have no
|
5481
|
-
zones specified will be assumed to be in this time zone.
|
5482
|
-
|
5483
|
-
Linux systems have a command line utility called tzselect to lookup
|
5484
|
-
possible values.
|
5641
|
+
Sets the default time zone of the project. All dates and times that have no
|
5642
|
+
time zones specified will be assumed to be in this time zone. If no time zone
|
5643
|
+
is specified for the project, UTC is assumed.
|
5485
5644
|
|
5486
|
-
The project start and end time are not affected by this setting.
|
5487
|
-
|
5488
|
-
are assumed. Using the TZ environment variable is the recommended way to
|
5489
|
-
specify the time zone for your project.
|
5645
|
+
The project start and end time are not affected by this setting. They are
|
5646
|
+
always considered to be UTC unless specified differently.
|
5490
5647
|
|
5491
5648
|
In case the specified time zone is not hour-aligned with UTC, the
|
5492
5649
|
[[timingresolution]] will automatically be decreased accordingly. Do not
|
@@ -5629,10 +5786,10 @@ EOT
|
|
5629
5786
|
})
|
5630
5787
|
doc('priority.timesheet', <<'EOT'
|
5631
5788
|
The priority is a value between 1 and 1000. It is used to determine the
|
5632
|
-
sequence of task when converting [[work]] to [[booking|bookings]]. Tasks
|
5633
|
-
need to finish earlier in the period should have a high priority, tasks
|
5634
|
-
end later in the period should have a low priority. For tasks that don't
|
5635
|
-
finished in the reported period the priority should be set to 1.
|
5789
|
+
sequence of task when converting [[work]] to [[booking.task|bookings]]. Tasks
|
5790
|
+
that need to finish earlier in the period should have a high priority, tasks
|
5791
|
+
that end later in the period should have a low priority. For tasks that don't
|
5792
|
+
get finished in the reported period the priority should be set to 1.
|
5636
5793
|
EOT
|
5637
5794
|
)
|
5638
5795
|
|
@@ -5641,8 +5798,8 @@ EOT
|
|
5641
5798
|
})
|
5642
5799
|
doc('remaining', <<'EOT'
|
5643
5800
|
The remaining effort for the task. This value is ignored if there are
|
5644
|
-
[[booking|bookings]] for the resource that overlap with the time sheet
|
5645
|
-
If there are no bookings, the value is compared with the [[effort]]
|
5801
|
+
[[booking.task|bookings]] for the resource that overlap with the time sheet
|
5802
|
+
period. If there are no bookings, the value is compared with the [[effort]]
|
5646
5803
|
specification of the task. If there a mismatch between the accumulated effort
|
5647
5804
|
specified with bookings, [[work]] and [[remaining]] on one side and the
|
5648
5805
|
specified [[effort]] on the other, a warning is generated.
|
@@ -5660,10 +5817,11 @@ EOT
|
|
5660
5817
|
})
|
5661
5818
|
doc('work', <<'EOT'
|
5662
5819
|
The amount of time that the resource has spend with the task during the
|
5663
|
-
reported period. This value is ignored when there are
|
5664
|
-
the resource overlapping with the time sheet
|
5665
|
-
TaskJuggler will try to convert the work
|
5666
|
-
internally before the actual scheduling is
|
5820
|
+
reported period. This value is ignored when there are
|
5821
|
+
[[booking.task|bookings]] for the resource overlapping with the time sheet
|
5822
|
+
period. If there are no bookings, TaskJuggler will try to convert the work
|
5823
|
+
specification into bookings internally before the actual scheduling is
|
5824
|
+
started.
|
5667
5825
|
|
5668
5826
|
Every task listed in the time sheet needs to have a work attribute. The total
|
5669
5827
|
accumulated work time that is reported must match exactly the total working
|
@@ -5705,7 +5863,8 @@ EOT
|
|
5705
5863
|
def rule_valDate
|
5706
5864
|
pattern(%w( !date ), lambda {
|
5707
5865
|
if @val[0] < @project['start'] || @val[0] > @project['end']
|
5708
|
-
error('date_in_range',
|
5866
|
+
error('date_in_range',
|
5867
|
+
"Date #{@val[0]} must be within the project time frame " +
|
5709
5868
|
"#{@project['start']} - #{@project['end']}",
|
5710
5869
|
@sourceFileInfo[0])
|
5711
5870
|
end
|
@@ -5908,8 +6067,7 @@ EOT
|
|
5908
6067
|
@property['workinghours', @scenarioIdx] = wh
|
5909
6068
|
end
|
5910
6069
|
end
|
5911
|
-
wh.timezone = @
|
5912
|
-
@property['timezone', @scenarioIdx]
|
6070
|
+
wh.timezone = @project['timezone']
|
5913
6071
|
7.times { |i| wh.setWorkingHours(i, @val[2]) if @val[1][i] }
|
5914
6072
|
})
|
5915
6073
|
end
|