taskjuggler 0.0.10 → 0.0.11
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 +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
|
@@ -11,8 +11,7 @@
|
|
|
11
11
|
# published by the Free Software Foundation.
|
|
12
12
|
#
|
|
13
13
|
|
|
14
|
-
|
|
15
|
-
require 'ScenarioData'
|
|
14
|
+
require 'taskjuggler/ScenarioData'
|
|
16
15
|
|
|
17
16
|
class TaskJuggler
|
|
18
17
|
|
|
@@ -133,40 +132,6 @@ class TaskJuggler
|
|
|
133
132
|
end
|
|
134
133
|
end
|
|
135
134
|
|
|
136
|
-
def postScheduleCheck
|
|
137
|
-
if !a('fail').empty? || !a('warn').empty?
|
|
138
|
-
queryAttrs = { 'project' => @project,
|
|
139
|
-
'scenarioIdx' => @scenarioIdx,
|
|
140
|
-
'property' => @property,
|
|
141
|
-
'scopeProperty' => nil,
|
|
142
|
-
'start' => @project['start'],
|
|
143
|
-
'end' => @project['end'],
|
|
144
|
-
'loadUnit' => :days,
|
|
145
|
-
'numberFormat' => @project['numberFormat'],
|
|
146
|
-
'timeFormat' => @project['timeFormat'],
|
|
147
|
-
'currencyFormat' => @project['currencyFormat'] }
|
|
148
|
-
query = Query.new(queryAttrs)
|
|
149
|
-
a('fail').each do |expr|
|
|
150
|
-
if expr.eval(query)
|
|
151
|
-
error('resource_fail_check',
|
|
152
|
-
"User defined check failed for resource " +
|
|
153
|
-
"#{@property.fullId} \n" +
|
|
154
|
-
"Condition: #{expr.to_s}\n" +
|
|
155
|
-
"Result: #{expr.to_s(query)}")
|
|
156
|
-
end
|
|
157
|
-
end
|
|
158
|
-
a('warn').each do |expr|
|
|
159
|
-
if expr.eval(query)
|
|
160
|
-
warning('resource_warn_check',
|
|
161
|
-
"User defined warning triggered for resource " +
|
|
162
|
-
"#{@property.fullId} \n" +
|
|
163
|
-
"Condition: #{expr.to_s}\n" +
|
|
164
|
-
"Result: #{expr.to_s(query)}")
|
|
165
|
-
end
|
|
166
|
-
end
|
|
167
|
-
end
|
|
168
|
-
end
|
|
169
|
-
|
|
170
135
|
# Returns true if the resource is available at the time specified by
|
|
171
136
|
# _sbIdx_.
|
|
172
137
|
def available?(sbIdx)
|
|
@@ -346,12 +311,12 @@ class TaskJuggler
|
|
|
346
311
|
return work if work
|
|
347
312
|
|
|
348
313
|
# Convert the interval dates to indexes if needed.
|
|
349
|
-
startIdx = @project.dateToIdx(startIdx
|
|
350
|
-
endIdx = @project.dateToIdx(endIdx
|
|
314
|
+
startIdx = @project.dateToIdx(startIdx) if startIdx.is_a?(TjTime)
|
|
315
|
+
endIdx = @project.dateToIdx(endIdx) if endIdx.is_a?(TjTime)
|
|
351
316
|
|
|
352
317
|
work = 0.0
|
|
353
318
|
if @property.container?
|
|
354
|
-
@property.
|
|
319
|
+
@property.kids.each do |resource|
|
|
355
320
|
work += resource.getEffectiveWork(@scenarioIdx, startIdx, endIdx, task)
|
|
356
321
|
end
|
|
357
322
|
else
|
|
@@ -367,12 +332,12 @@ class TaskJuggler
|
|
|
367
332
|
# Returns the allocated accumulated time of this resource and its children.
|
|
368
333
|
def getAllocatedTime(startIdx, endIdx, task = nil)
|
|
369
334
|
# Convert the interval dates to indexes if needed.
|
|
370
|
-
startIdx = @project.dateToIdx(startIdx
|
|
371
|
-
endIdx = @project.dateToIdx(endIdx
|
|
335
|
+
startIdx = @project.dateToIdx(startIdx) if startIdx.is_a?(TjTime)
|
|
336
|
+
endIdx = @project.dateToIdx(endIdx) if endIdx.is_a?(TjTime)
|
|
372
337
|
|
|
373
338
|
time = 0
|
|
374
339
|
if @property.container?
|
|
375
|
-
@property.
|
|
340
|
+
@property.kids.each do |resource|
|
|
376
341
|
time += resource.getAllocatedTime(@scenarioIdx, startIdx, endIdx, task)
|
|
377
342
|
end
|
|
378
343
|
else
|
|
@@ -388,12 +353,12 @@ class TaskJuggler
|
|
|
388
353
|
# children.
|
|
389
354
|
def getEffectiveFreeTime(startIdx, endIdx)
|
|
390
355
|
# Convert the interval dates to indexes if needed.
|
|
391
|
-
startIdx = @project.dateToIdx(startIdx
|
|
392
|
-
endIdx = @project.dateToIdx(endIdx
|
|
356
|
+
startIdx = @project.dateToIdx(startIdx) if startIdx.is_a?(TjTime)
|
|
357
|
+
endIdx = @project.dateToIdx(endIdx) if endIdx.is_a?(TjTime)
|
|
393
358
|
|
|
394
359
|
freeTime = 0
|
|
395
360
|
if @property.container?
|
|
396
|
-
@property.
|
|
361
|
+
@property.kids.each do |resource|
|
|
397
362
|
freeTime += resource.getEffectiveFreeTime(@scenarioIdx, startIdx,
|
|
398
363
|
endIdx)
|
|
399
364
|
end
|
|
@@ -408,12 +373,12 @@ class TaskJuggler
|
|
|
408
373
|
# their efficiency.
|
|
409
374
|
def getEffectiveFreeWork(startIdx, endIdx)
|
|
410
375
|
# Convert the interval dates to indexes if needed.
|
|
411
|
-
startIdx = @project.dateToIdx(startIdx
|
|
412
|
-
endIdx = @project.dateToIdx(endIdx
|
|
376
|
+
startIdx = @project.dateToIdx(startIdx) if startIdx.is_a?(TjTime)
|
|
377
|
+
endIdx = @project.dateToIdx(endIdx) if endIdx.is_a?(TjTime)
|
|
413
378
|
|
|
414
379
|
work = 0.0
|
|
415
380
|
if @property.container?
|
|
416
|
-
@property.
|
|
381
|
+
@property.kids.each do |resource|
|
|
417
382
|
work += resource.getEffectiveFreeWork(@scenarioIdx, startIdx, endIdx)
|
|
418
383
|
end
|
|
419
384
|
else
|
|
@@ -427,12 +392,12 @@ class TaskJuggler
|
|
|
427
392
|
# Return the number of working days that are blocked by vacations.
|
|
428
393
|
def getVacationDays(startIdx, endIdx)
|
|
429
394
|
# Convert the interval dates to indexes if needed.
|
|
430
|
-
startIdx = @project.dateToIdx(startIdx
|
|
431
|
-
endIdx = @project.dateToIdx(endIdx
|
|
395
|
+
startIdx = @project.dateToIdx(startIdx) if startIdx.is_a?(TjTime)
|
|
396
|
+
endIdx = @project.dateToIdx(endIdx) if endIdx.is_a?(TjTime)
|
|
432
397
|
|
|
433
398
|
vacationDays = 0.0
|
|
434
399
|
if @property.container?
|
|
435
|
-
@property.
|
|
400
|
+
@property.kids.each do |resource|
|
|
436
401
|
vacationDays += resource.getVacationDays(@scenarioIdx,
|
|
437
402
|
startIdx, endIdx)
|
|
438
403
|
end
|
|
@@ -449,7 +414,7 @@ class TaskJuggler
|
|
|
449
414
|
def turnover(startIdx, endIdx, account, task = nil)
|
|
450
415
|
amount = 0.0
|
|
451
416
|
if @property.container?
|
|
452
|
-
@property.
|
|
417
|
+
@property.kids.each do |child|
|
|
453
418
|
amount += child.turnover(@scenarioIdx, startIdx, endIdx, account, task)
|
|
454
419
|
end
|
|
455
420
|
else
|
|
@@ -475,8 +440,8 @@ class TaskJuggler
|
|
|
475
440
|
def allocated?(iv, task = nil)
|
|
476
441
|
return false if task && !a('duties').include?(task)
|
|
477
442
|
|
|
478
|
-
startIdx = @project.dateToIdx(iv.start
|
|
479
|
-
endIdx = @project.dateToIdx(iv.end
|
|
443
|
+
startIdx = @project.dateToIdx(iv.start)
|
|
444
|
+
endIdx = @project.dateToIdx(iv.end)
|
|
480
445
|
|
|
481
446
|
startIdx, endIdx = fitIndicies(startIdx, endIdx, task)
|
|
482
447
|
return false if startIdx >= endIdx
|
|
@@ -626,8 +591,8 @@ class TaskJuggler
|
|
|
626
591
|
|
|
627
592
|
# Mark all resource specific vacation slots as such
|
|
628
593
|
a('vacations').each do |vacation|
|
|
629
|
-
startIdx = @scoreboard.dateToIdx(vacation.start
|
|
630
|
-
endIdx = @scoreboard.dateToIdx(vacation.end
|
|
594
|
+
startIdx = @scoreboard.dateToIdx(vacation.start)
|
|
595
|
+
endIdx = @scoreboard.dateToIdx(vacation.end)
|
|
631
596
|
startIdx.upto(endIdx - 1) do |i|
|
|
632
597
|
# If the slot is nil, we don't set the time-off bit.
|
|
633
598
|
@scoreboard[i] = (@scoreboard[i].nil? ? 0 : 2) | (1 << 2)
|
|
@@ -636,8 +601,8 @@ class TaskJuggler
|
|
|
636
601
|
|
|
637
602
|
# Mark all global vacation slots as such
|
|
638
603
|
@project['vacations'].each do |vacation|
|
|
639
|
-
startIdx = @scoreboard.dateToIdx(vacation.start
|
|
640
|
-
endIdx = @scoreboard.dateToIdx(vacation.end
|
|
604
|
+
startIdx = @scoreboard.dateToIdx(vacation.start)
|
|
605
|
+
endIdx = @scoreboard.dateToIdx(vacation.end)
|
|
641
606
|
startIdx.upto(endIdx - 1) do |i|
|
|
642
607
|
# If the slot is nil or set to 4 then don't set the time-off bit.
|
|
643
608
|
sb = @scoreboard[i]
|
|
@@ -653,11 +618,7 @@ class TaskJuggler
|
|
|
653
618
|
# the whole interval over to the resource scoreboard overriding any
|
|
654
619
|
# global vacations.
|
|
655
620
|
if (v & (1 << 8)) != 0
|
|
656
|
-
|
|
657
|
-
@scoreboard[i] = nil
|
|
658
|
-
else
|
|
659
|
-
@scoreboard[i] = v & 0x3E
|
|
660
|
-
end
|
|
621
|
+
@scoreboard[i] = (v & 0x3E == 0) ? nil : (v & 0x3D)
|
|
661
622
|
elsif ((sbV = @scoreboard[i]).nil? || (sbV & 0x3C) == 0) &&
|
|
662
623
|
(v & 0x3C) != 0
|
|
663
624
|
# We only add the shift vacations but don't turn global vacation
|
|
@@ -716,7 +677,7 @@ class TaskJuggler
|
|
|
716
677
|
# only allocations to this tasks are respected.
|
|
717
678
|
def allocatedSub(startIdx, endIdx, task)
|
|
718
679
|
if @property.container?
|
|
719
|
-
@property.
|
|
680
|
+
@property.kids.each do |resource|
|
|
720
681
|
return true if resource.allocatedSub(@scenarioIdx, startIdx, endIdx,
|
|
721
682
|
task)
|
|
722
683
|
end
|
|
@@ -737,7 +698,7 @@ class TaskJuggler
|
|
|
737
698
|
def rate
|
|
738
699
|
if @property.container?
|
|
739
700
|
dailyRate = 0.0
|
|
740
|
-
@property.
|
|
701
|
+
@property.kids.each do |resource|
|
|
741
702
|
dailyRate += resource.rate(@scenarioIdx)
|
|
742
703
|
end
|
|
743
704
|
dailyRate
|
|
@@ -11,9 +11,9 @@
|
|
|
11
11
|
# published by the Free Software Foundation.
|
|
12
12
|
#
|
|
13
13
|
|
|
14
|
-
require '
|
|
15
|
-
require '
|
|
16
|
-
require 'MessageHandler'
|
|
14
|
+
require 'taskjuggler/RichText/Element'
|
|
15
|
+
require 'taskjuggler/RichText/Parser'
|
|
16
|
+
require 'taskjuggler/MessageHandler'
|
|
17
17
|
|
|
18
18
|
class TaskJuggler
|
|
19
19
|
|
|
@@ -11,9 +11,9 @@
|
|
|
11
11
|
# published by the Free Software Foundation.
|
|
12
12
|
#
|
|
13
13
|
|
|
14
|
-
require '
|
|
15
|
-
require 'TableOfContents'
|
|
16
|
-
require '
|
|
14
|
+
require 'taskjuggler/RichText/Snip'
|
|
15
|
+
require 'taskjuggler/RichText/TableOfContents'
|
|
16
|
+
require 'taskjuggler/RichText/FunctionHandler'
|
|
17
17
|
|
|
18
18
|
class TaskJuggler
|
|
19
19
|
|
|
@@ -11,10 +11,10 @@
|
|
|
11
11
|
# published by the Free Software Foundation.
|
|
12
12
|
#
|
|
13
13
|
|
|
14
|
-
require 'UTF8String'
|
|
15
|
-
require 'TjException'
|
|
16
|
-
require 'XMLElement'
|
|
17
|
-
require 'TextFormatter'
|
|
14
|
+
require 'taskjuggler/UTF8String'
|
|
15
|
+
require 'taskjuggler/TjException'
|
|
16
|
+
require 'taskjuggler/XMLElement'
|
|
17
|
+
require 'taskjuggler/TextFormatter'
|
|
18
18
|
|
|
19
19
|
class TaskJuggler
|
|
20
20
|
|
|
@@ -221,6 +221,7 @@ class TaskJuggler
|
|
|
221
221
|
pre = @richText.functionHandler(@data[0]).to_s(@data[1])
|
|
222
222
|
when :italic
|
|
223
223
|
when :bold
|
|
224
|
+
when :fontCol
|
|
224
225
|
when :code
|
|
225
226
|
when :text
|
|
226
227
|
else
|
|
@@ -341,6 +342,9 @@ class TaskJuggler
|
|
|
341
342
|
when :bold
|
|
342
343
|
pre = '<b>'
|
|
343
344
|
post = '</b>'
|
|
345
|
+
when :fontCol
|
|
346
|
+
pre = "<fcol:#{@data}>"
|
|
347
|
+
post = '</fcol>'
|
|
344
348
|
when :code
|
|
345
349
|
pre = '<code>'
|
|
346
350
|
post = '</code>'
|
|
@@ -452,6 +456,8 @@ class TaskJuggler
|
|
|
452
456
|
XMLElement.new('i')
|
|
453
457
|
when :bold
|
|
454
458
|
XMLElement.new('b')
|
|
459
|
+
when :fontCol
|
|
460
|
+
XMLElement.new('span', 'style' => "color:#{@data}")
|
|
455
461
|
when :code
|
|
456
462
|
XMLElement.new('code', attrs)
|
|
457
463
|
when :text
|
|
@@ -11,9 +11,9 @@
|
|
|
11
11
|
# published by the Free Software Foundation.
|
|
12
12
|
#
|
|
13
13
|
|
|
14
|
-
require '
|
|
15
|
-
require 'TjpExample'
|
|
16
|
-
require 'XMLElement'
|
|
14
|
+
require 'taskjuggler/RichText/FunctionHandler'
|
|
15
|
+
require 'taskjuggler/TjpExample'
|
|
16
|
+
require 'taskjuggler/XMLElement'
|
|
17
17
|
|
|
18
18
|
class TaskJuggler
|
|
19
19
|
|
|
File without changes
|
|
@@ -11,9 +11,10 @@
|
|
|
11
11
|
# published by the Free Software Foundation.
|
|
12
12
|
#
|
|
13
13
|
|
|
14
|
-
require 'TextParser'
|
|
15
|
-
require '
|
|
16
|
-
require '
|
|
14
|
+
require 'taskjuggler/TextParser'
|
|
15
|
+
require 'taskjuggler/RichText/Scanner'
|
|
16
|
+
require 'taskjuggler/RichText/SyntaxRules'
|
|
17
|
+
require 'taskjuggler/Log'
|
|
17
18
|
|
|
18
19
|
class TaskJuggler
|
|
19
20
|
|
|
@@ -36,6 +37,7 @@ class TaskJuggler
|
|
|
36
37
|
@variables = [ :LINEBREAK, :SPACE, :WORD,
|
|
37
38
|
:BOLD, :ITALIC, :CODE, :BOLDITALIC, :PRE,
|
|
38
39
|
:HREF, :HREFEND, :REF, :REFEND, :HLINE,
|
|
40
|
+
:FCOLSTART, :FCOLEND,
|
|
39
41
|
:QUERY,
|
|
40
42
|
:INLINEFUNCSTART, :INLINEFUNCEND,
|
|
41
43
|
:BLOCKFUNCSTART, :BLOCKFUNCEND, :ID, :STRING,
|
|
@@ -68,7 +70,7 @@ class TaskJuggler
|
|
|
68
70
|
def open(text)
|
|
69
71
|
# Make sure that the last line is properly terminated with a newline.
|
|
70
72
|
# Multiple newlines at the end are simply ignored.
|
|
71
|
-
@scanner = RichTextScanner.new(text + "\n\n", @messageHandler)
|
|
73
|
+
@scanner = RichTextScanner.new(text + "\n\n", @messageHandler, Log)
|
|
72
74
|
@scanner.open(true)
|
|
73
75
|
end
|
|
74
76
|
|
|
@@ -11,10 +11,10 @@
|
|
|
11
11
|
# published by the Free Software Foundation.
|
|
12
12
|
#
|
|
13
13
|
|
|
14
|
-
require 'RTFNavigator'
|
|
15
|
-
require 'RTFQuery'
|
|
16
|
-
require 'RTFReport'
|
|
17
|
-
require 'RTFReportLink'
|
|
14
|
+
require 'taskjuggler/RichText/RTFNavigator'
|
|
15
|
+
require 'taskjuggler/RichText/RTFQuery'
|
|
16
|
+
require 'taskjuggler/RichText/RTFReport'
|
|
17
|
+
require 'taskjuggler/RichText/RTFReportLink'
|
|
18
18
|
|
|
19
19
|
class TaskJuggler
|
|
20
20
|
|
|
@@ -11,9 +11,9 @@
|
|
|
11
11
|
# published by the Free Software Foundation.
|
|
12
12
|
#
|
|
13
13
|
|
|
14
|
-
require '
|
|
15
|
-
require 'XMLElement'
|
|
16
|
-
require 'reports/Navigator'
|
|
14
|
+
require 'taskjuggler/RichText/FunctionHandler'
|
|
15
|
+
require 'taskjuggler/XMLElement'
|
|
16
|
+
require 'taskjuggler/reports/Navigator'
|
|
17
17
|
|
|
18
18
|
class TaskJuggler
|
|
19
19
|
|
|
@@ -11,9 +11,9 @@
|
|
|
11
11
|
# published by the Free Software Foundation.
|
|
12
12
|
#
|
|
13
13
|
|
|
14
|
-
require 'RTFWithQuerySupport'
|
|
15
|
-
require 'XMLElement'
|
|
16
|
-
require 'Query'
|
|
14
|
+
require 'taskjuggler/RichText/RTFWithQuerySupport'
|
|
15
|
+
require 'taskjuggler/XMLElement'
|
|
16
|
+
require 'taskjuggler/Query'
|
|
17
17
|
|
|
18
18
|
class TaskJuggler
|
|
19
19
|
|
|
@@ -29,30 +29,30 @@ class TaskJuggler
|
|
|
29
29
|
|
|
30
30
|
# Return the result of the query as String.
|
|
31
31
|
def to_s(args)
|
|
32
|
-
return '' unless prepareQuery(args)
|
|
33
|
-
if
|
|
34
|
-
|
|
32
|
+
return '' unless (query = prepareQuery(args))
|
|
33
|
+
if query.ok
|
|
34
|
+
query.to_s
|
|
35
35
|
else
|
|
36
|
-
error('query_error',
|
|
37
|
-
'Query Error: ' +
|
|
36
|
+
error('query_error', query.errorMessage + recreateQuerySyntax(args))
|
|
37
|
+
'Query Error: ' + query.errorMessage
|
|
38
38
|
end
|
|
39
39
|
end
|
|
40
40
|
|
|
41
41
|
# Return a XMLElement tree that represents the navigator in HTML code.
|
|
42
42
|
def to_html(args)
|
|
43
|
-
return nil unless prepareQuery(args)
|
|
44
|
-
if
|
|
45
|
-
if (rti =
|
|
43
|
+
return nil unless (query = prepareQuery(args))
|
|
44
|
+
if query.ok
|
|
45
|
+
if (rti = query.to_rti)
|
|
46
46
|
rti.to_html
|
|
47
|
-
elsif (str =
|
|
47
|
+
elsif (str = query.to_s)
|
|
48
48
|
XMLText.new(str)
|
|
49
49
|
else
|
|
50
50
|
nil
|
|
51
51
|
end
|
|
52
52
|
else
|
|
53
|
-
error('query_error',
|
|
53
|
+
error('query_error', query.errorMessage + recreateQuerySyntax(args))
|
|
54
54
|
font = XMLElement.new('font', 'color' => '#FF0000')
|
|
55
|
-
font << XMLText.new('Query Error: ' +
|
|
55
|
+
font << XMLText.new('Query Error: ' + query.errorMessage)
|
|
56
56
|
font
|
|
57
57
|
end
|
|
58
58
|
end
|
|
@@ -72,36 +72,59 @@ class TaskJuggler
|
|
|
72
72
|
# Check the user provided arguments. Only the following list is allowed.
|
|
73
73
|
validArgs = %w( family property scopeproperty attribute scenario
|
|
74
74
|
start end loadunit numberformat timeformat currencyformat )
|
|
75
|
-
|
|
75
|
+
expandedArgs = {}
|
|
76
|
+
args.each do |arg, value|
|
|
76
77
|
unless validArgs.include?(arg)
|
|
77
78
|
error('bad_query_parameter', "Unknown query parameter '#{arg}'. " +
|
|
78
79
|
"Use one of #{validArgs.join(', ')}!")
|
|
79
80
|
return nil
|
|
80
81
|
end
|
|
82
|
+
expandedArgs[arg] =
|
|
83
|
+
SimpleQueryExpander.new(value, @query, @messageHandler,
|
|
84
|
+
@sourceFileInfo).expand
|
|
81
85
|
end
|
|
82
86
|
|
|
87
|
+
if (expandedArgs['property'] || expandedArgs['scopeproperty']) &&
|
|
88
|
+
!(expandedArgs['family'] || query.propertyType)
|
|
89
|
+
error('missing_family',
|
|
90
|
+
"If you provide a property or scope property you need to " +
|
|
91
|
+
"provide a family type as well.")
|
|
92
|
+
end
|
|
93
|
+
|
|
94
|
+
query = @query.dup
|
|
95
|
+
|
|
83
96
|
# Every provided query parameter will overwrite the corresponding value
|
|
84
97
|
# in the Query that was provided by the ReportContext. The name of the
|
|
85
98
|
# arguments don't always exactly match the Query variables Let's start
|
|
86
99
|
# with the easy ones.
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
100
|
+
if expandedArgs['property']
|
|
101
|
+
query.propertyId = expandedArgs['property']
|
|
102
|
+
query.property = nil
|
|
103
|
+
end
|
|
104
|
+
if expandedArgs['scopeproperty']
|
|
105
|
+
query.scopePropertyId = expandedArgs['scopeproperty']
|
|
106
|
+
query.scopeProperty = nil
|
|
107
|
+
end
|
|
108
|
+
query.attributeId = expandedArgs['attribute'] if expandedArgs['attribute']
|
|
109
|
+
query.start = expandedArgs['start'] if expandedArgs['start']
|
|
110
|
+
query.end = expandedArgs['end'] if expandedArgs['end']
|
|
111
|
+
if expandedArgs['numberformat']
|
|
112
|
+
query.numberFormat = expandedArgs['numberformat']
|
|
113
|
+
end
|
|
114
|
+
query.timeFormat = expandedArgs['timeformat'] if expandedArgs['timeformat']
|
|
115
|
+
if expandedArgs['currencyformat']
|
|
116
|
+
query.currencyFormat = expandedArgs['currencyformat']
|
|
117
|
+
end
|
|
95
118
|
|
|
96
119
|
# And now the slighly more complicated ones.
|
|
97
|
-
setScenarioIdx(
|
|
98
|
-
setPropertyType(
|
|
99
|
-
setLoadUnit(
|
|
120
|
+
setScenarioIdx(query, expandedArgs)
|
|
121
|
+
setPropertyType(query, expandedArgs)
|
|
122
|
+
setLoadUnit(query, expandedArgs)
|
|
100
123
|
|
|
101
124
|
# Now that we have put together the query, we can process it and return
|
|
102
125
|
# the query object for result extraction.
|
|
103
|
-
|
|
104
|
-
|
|
126
|
+
query.process
|
|
127
|
+
query
|
|
105
128
|
end
|
|
106
129
|
|
|
107
130
|
# Regenerate the original query text based on the argument list.
|
|
@@ -113,7 +136,7 @@ class TaskJuggler
|
|
|
113
136
|
queryText += "->"
|
|
114
137
|
end
|
|
115
138
|
|
|
116
|
-
def setPropertyType(args)
|
|
139
|
+
def setPropertyType(query, args)
|
|
117
140
|
validTypes = { 'account' => :Account,
|
|
118
141
|
'task' => :Task,
|
|
119
142
|
'resource' => :Resource }
|
|
@@ -124,34 +147,34 @@ class TaskJuggler
|
|
|
124
147
|
"Unknown query family type '#{args['family']}'. " +
|
|
125
148
|
"Use one of #{validTypes}.join(', ')!")
|
|
126
149
|
end
|
|
127
|
-
|
|
128
|
-
if
|
|
129
|
-
|
|
130
|
-
elsif
|
|
131
|
-
|
|
150
|
+
query.propertyType = validTypes[args['family']]
|
|
151
|
+
if query.propertyType == :Task
|
|
152
|
+
query.scopePropertyType = :Resource
|
|
153
|
+
elsif query.propertyType == :Resource
|
|
154
|
+
query.scopePropertyType = :Task
|
|
132
155
|
end
|
|
133
156
|
end
|
|
134
157
|
end
|
|
135
158
|
|
|
136
|
-
def setLoadUnit(args)
|
|
159
|
+
def setLoadUnit(query, args)
|
|
137
160
|
units = {
|
|
138
161
|
'days' => :days, 'hours' => :hours, 'longauto' => :longauto,
|
|
139
162
|
'minutes' => :minutes, 'months' => :months, 'shortauto' => :shortauto,
|
|
140
163
|
'weeks' => :weeks, 'years' => :years
|
|
141
164
|
}
|
|
142
|
-
|
|
165
|
+
query.loadUnit = units[args['loadunit']] if args['loadunit']
|
|
143
166
|
end
|
|
144
167
|
|
|
145
|
-
def setScenarioIdx(args)
|
|
168
|
+
def setScenarioIdx(query, args)
|
|
146
169
|
if args['scenario']
|
|
147
170
|
scenarioIdx = @project.scenarioIdx(args['scenario'])
|
|
148
171
|
unless scenarioIdx
|
|
149
172
|
error('rtfq_bad_scenario', "Unknown scenario #{args['scenario']}")
|
|
150
173
|
end
|
|
151
|
-
|
|
174
|
+
query.scenarioIdx = scenarioIdx
|
|
152
175
|
end
|
|
153
176
|
# Default to 0 in case no scenario was provided.
|
|
154
|
-
|
|
177
|
+
query.scenarioIdx = 0 unless query.scenarioIdx
|
|
155
178
|
end
|
|
156
179
|
|
|
157
180
|
end
|