taskjuggler 0.0.7 → 0.0.8
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 +119 -0
- data/benchmarks/allocatedSlots.tjp +1602 -0
- data/benchmarks/booking.tjp +40 -30
- data/{test/TestSuite/ReportGenerator/Errors → benchmarks}/css/tjmanual.css +0 -0
- data/{test/TestSuite/Scheduler/Correct → benchmarks}/css/tjreport.css +1 -0
- data/benchmarks/gantt.tjp +57 -0
- data/benchmarks/htmltaskreport.tjp +26 -1
- data/{test/TestSuite/ReportGenerator/Errors → benchmarks}/icons/details.png +0 -0
- data/{test/TestSuite/ReportGenerator/Errors → benchmarks}/icons/flag-green.png +0 -0
- data/{test/TestSuite/ReportGenerator/Errors → benchmarks}/icons/flag-red.png +0 -0
- data/{test/TestSuite/ReportGenerator/Errors → benchmarks}/icons/flag-yellow.png +0 -0
- data/{test/TestSuite/ReportGenerator/Errors → benchmarks}/icons/resource.png +0 -0
- data/{test/TestSuite/ReportGenerator/Errors → benchmarks}/icons/resourcegroup.png +0 -0
- data/{test/TestSuite/ReportGenerator/Errors → benchmarks}/icons/task.png +0 -0
- data/{test/TestSuite/ReportGenerator/Errors → benchmarks}/icons/taskgroup.png +0 -0
- data/{test/TestSuite/ReportGenerator/Errors → benchmarks}/icons/trend-down.png +0 -0
- data/{test/TestSuite/ReportGenerator/Errors → benchmarks}/icons/trend-flat.png +0 -0
- data/{test/TestSuite/ReportGenerator/Errors → benchmarks}/icons/trend-up.png +0 -0
- data/benchmarks/profile.clt +36082 -0
- data/benchmarks/profile.html +58182 -0
- data/benchmarks/runbench.rb +6 -0
- data/{test/TestSuite/ReportGenerator/Errors → benchmarks}/scripts/wz_tooltip.js +0 -0
- data/doc/AppConfig.html +85 -37
- data/doc/Arguments.html +11 -1
- data/doc/CHANGELOG.html +131 -2
- data/doc/COPYING.html +11 -1
- data/doc/Object.html +12 -3
- data/doc/README.html +11 -1
- data/doc/RuntimeConfig.html +11 -1
- data/doc/String.html +11 -1
- data/doc/StringIO.html +11 -1
- data/doc/TaskJuggler.html +250 -219
- data/doc/TaskJuggler/Account.html +11 -1
- data/doc/TaskJuggler/AccountAttribute.html +11 -1
- data/doc/TaskJuggler/AccountScenario.html +11 -1
- data/doc/TaskJuggler/Allocation.html +11 -1
- data/doc/TaskJuggler/AllocationAttribute.html +11 -1
- data/doc/TaskJuggler/AttributeBase.html +11 -1
- data/doc/TaskJuggler/AttributeDefinition.html +11 -1
- data/doc/TaskJuggler/BatchProcessor.html +11 -1
- data/doc/TaskJuggler/Booking.html +11 -1
- data/doc/TaskJuggler/BookingListAttribute.html +11 -1
- data/doc/TaskJuggler/BooleanAttribute.html +11 -1
- data/doc/TaskJuggler/CSVFile.html +12 -2
- data/doc/TaskJuggler/CellSettingPattern.html +11 -1
- data/doc/TaskJuggler/CellSettingPatternList.html +11 -1
- data/doc/TaskJuggler/Charge.html +11 -1
- data/doc/TaskJuggler/ChargeListAttribute.html +11 -1
- data/doc/TaskJuggler/ChargeSet.html +11 -1
- data/doc/TaskJuggler/ChargeSetListAttribute.html +11 -1
- data/doc/TaskJuggler/CollisionDetector.html +1063 -0
- data/doc/TaskJuggler/ColumnListAttribute.html +11 -1
- data/doc/TaskJuggler/ColumnTable.html +11 -1
- data/doc/TaskJuggler/Daemon.html +11 -1
- data/doc/TaskJuggler/{OnShiftCache.html → DataCache.html} +127 -139
- data/doc/TaskJuggler/DataCacheEntry.html +711 -0
- data/doc/TaskJuggler/DateAttribute.html +11 -1
- data/doc/TaskJuggler/DefinitionListAttribute.html +11 -1
- data/doc/TaskJuggler/DependencyListAttribute.html +11 -1
- data/doc/TaskJuggler/DurationAttribute.html +16 -5
- data/doc/TaskJuggler/FileList.html +11 -1
- data/doc/TaskJuggler/FileRecord.html +11 -1
- data/doc/TaskJuggler/FixnumAttribute.html +19 -9
- data/doc/TaskJuggler/FlagListAttribute.html +29 -19
- data/doc/TaskJuggler/FloatAttribute.html +23 -13
- data/doc/TaskJuggler/FormatListAttribute.html +19 -9
- data/doc/TaskJuggler/GanttChart.html +94 -133
- data/doc/TaskJuggler/GanttContainer.html +11 -1
- data/doc/TaskJuggler/GanttHeader.html +11 -1
- data/doc/TaskJuggler/GanttHeaderScaleItem.html +11 -1
- data/doc/TaskJuggler/GanttLine.html +11 -1
- data/doc/TaskJuggler/GanttLoadStack.html +11 -1
- data/doc/TaskJuggler/GanttMilestone.html +11 -1
- data/doc/TaskJuggler/GanttRouter.html +247 -596
- data/doc/TaskJuggler/GanttTaskBar.html +11 -1
- data/doc/TaskJuggler/HTMLDocument.html +11 -1
- data/doc/TaskJuggler/HTMLGraphics.html +11 -1
- data/doc/TaskJuggler/Interval.html +11 -1
- data/doc/TaskJuggler/IntervalListAttribute.html +33 -23
- data/doc/TaskJuggler/JobInfo.html +11 -1
- data/doc/TaskJuggler/Journal.html +11 -1
- data/doc/TaskJuggler/JournalEntry.html +11 -1
- data/doc/TaskJuggler/JournalEntryList.html +11 -1
- data/doc/TaskJuggler/KeywordArray.html +11 -1
- data/doc/TaskJuggler/KeywordDocumentation.html +16 -6
- data/doc/TaskJuggler/Limits.html +11 -1
- data/doc/TaskJuggler/Limits/Limit.html +11 -1
- data/doc/TaskJuggler/LimitsAttribute.html +24 -14
- data/doc/TaskJuggler/ListAttributeBase.html +11 -1
- data/doc/TaskJuggler/Log.html +11 -1
- data/doc/TaskJuggler/LogFile.html +11 -1
- data/doc/TaskJuggler/LogicalAttribute.html +11 -1
- data/doc/TaskJuggler/LogicalExpression.html +11 -1
- data/doc/TaskJuggler/LogicalExpressionAttribute.html +19 -9
- data/doc/TaskJuggler/LogicalFlag.html +11 -1
- data/doc/TaskJuggler/LogicalFunction.html +11 -1
- data/doc/TaskJuggler/LogicalOperation.html +11 -1
- data/doc/TaskJuggler/Macro.html +11 -1
- data/doc/TaskJuggler/MacroTable.html +11 -1
- data/doc/TaskJuggler/ManagerResponsibilities.html +11 -1
- data/doc/TaskJuggler/ManagerStatusRecord.html +11 -1
- data/doc/TaskJuggler/Message.html +11 -1
- data/doc/TaskJuggler/MessageHandler.html +11 -1
- data/doc/TaskJuggler/Navigator.html +12 -2
- data/doc/TaskJuggler/NavigatorElement.html +11 -1
- data/doc/TaskJuggler/NikuProject.html +11 -1
- data/doc/TaskJuggler/NikuReport.html +11 -1
- data/doc/TaskJuggler/NikuResource.html +11 -1
- data/doc/TaskJuggler/NodeListAttribute.html +17 -7
- data/doc/TaskJuggler/PlaceHolderCell.html +722 -0
- data/doc/TaskJuggler/ProcessIntercom.html +11 -1
- data/doc/TaskJuggler/ProcessIntercomIface.html +11 -1
- data/doc/TaskJuggler/Project.html +587 -500
- data/doc/TaskJuggler/ProjectBroker.html +11 -1
- data/doc/TaskJuggler/ProjectBrokerIface.html +11 -1
- data/doc/TaskJuggler/ProjectFileParser.html +205 -192
- data/doc/TaskJuggler/ProjectFileScanner.html +230 -207
- data/doc/TaskJuggler/ProjectRecord.html +11 -1
- data/doc/TaskJuggler/ProjectServer.html +11 -1
- data/doc/TaskJuggler/ProjectServerIface.html +11 -1
- data/doc/TaskJuggler/PropertyAttribute.html +19 -9
- data/doc/TaskJuggler/PropertyList.html +95 -83
- data/doc/TaskJuggler/PropertySet.html +11 -1
- data/doc/TaskJuggler/PropertyTreeNode.html +11 -1
- data/doc/TaskJuggler/Query.html +234 -232
- data/doc/TaskJuggler/RTFHandlers.html +11 -1
- data/doc/TaskJuggler/RTFNavigator.html +11 -1
- data/doc/TaskJuggler/RTFQuery.html +11 -1
- data/doc/TaskJuggler/RTFReport.html +11 -1
- data/doc/TaskJuggler/RTFReportLink.html +11 -1
- data/doc/TaskJuggler/RTFWithQuerySupport.html +11 -1
- data/doc/TaskJuggler/RealFormat.html +12 -2
- data/doc/TaskJuggler/RealFormatAttribute.html +15 -5
- data/doc/TaskJuggler/ReferenceAttribute.html +38 -28
- data/doc/TaskJuggler/Report.html +96 -113
- data/doc/TaskJuggler/ReportBase.html +161 -152
- data/doc/TaskJuggler/ReportContext.html +11 -1
- data/doc/TaskJuggler/ReportServer.html +59 -48
- data/doc/TaskJuggler/ReportServerIface.html +51 -41
- data/doc/TaskJuggler/ReportServerRecord.html +11 -1
- data/doc/TaskJuggler/ReportServlet.html +11 -1
- data/doc/TaskJuggler/ReportTable.html +46 -25
- data/doc/TaskJuggler/ReportTableCell.html +296 -275
- data/doc/TaskJuggler/ReportTableColumn.html +14 -4
- data/doc/TaskJuggler/ReportTableLegend.html +11 -1
- data/doc/TaskJuggler/ReportTableLine.html +19 -7
- data/doc/TaskJuggler/Resource.html +12 -2
- data/doc/TaskJuggler/ResourceListAttribute.html +40 -30
- data/doc/TaskJuggler/ResourceListRE.html +11 -1
- data/doc/TaskJuggler/ResourceScenario.html +708 -565
- data/doc/TaskJuggler/RichText.html +54 -36
- data/doc/TaskJuggler/RichTextAttribute.html +31 -21
- data/doc/TaskJuggler/RichTextDocument.html +11 -1
- data/doc/TaskJuggler/RichTextElement.html +11 -1
- data/doc/TaskJuggler/RichTextFunctionExample.html +11 -1
- data/doc/TaskJuggler/RichTextFunctionHandler.html +11 -1
- data/doc/TaskJuggler/RichTextImage.html +11 -1
- data/doc/TaskJuggler/RichTextIntermediate.html +81 -71
- data/doc/TaskJuggler/RichTextParser.html +88 -33
- data/doc/TaskJuggler/RichTextScanner.html +45 -35
- data/doc/TaskJuggler/RichTextSnip.html +11 -1
- data/doc/TaskJuggler/RichTextSyntaxRules.html +436 -389
- data/doc/TaskJuggler/Scenario.html +11 -1
- data/doc/TaskJuggler/ScenarioData.html +11 -1
- data/doc/TaskJuggler/ScenarioListAttribute.html +23 -13
- data/doc/TaskJuggler/Scoreboard.html +92 -73
- data/doc/TaskJuggler/SheetHandlerBase.html +11 -1
- data/doc/TaskJuggler/SheetReceiver.html +11 -1
- data/doc/TaskJuggler/SheetSender.html +11 -1
- data/doc/TaskJuggler/Shift.html +11 -1
- data/doc/TaskJuggler/ShiftAssignment.html +11 -1
- data/doc/TaskJuggler/ShiftAssignments.html +11 -1
- data/doc/TaskJuggler/ShiftAssignmentsAttribute.html +24 -14
- data/doc/TaskJuggler/ShiftScenario.html +11 -1
- data/doc/TaskJuggler/SimpleQueryExpander.html +11 -1
- data/doc/TaskJuggler/SortListAttribute.html +21 -11
- data/doc/TaskJuggler/SourceFileInfo.html +11 -1
- data/doc/TaskJuggler/StatusSheetReceiver.html +11 -1
- data/doc/TaskJuggler/StatusSheetReport.html +11 -1
- data/doc/TaskJuggler/StatusSheetSender.html +112 -11
- data/doc/TaskJuggler/StringAttribute.html +23 -13
- data/doc/TaskJuggler/SymbolAttribute.html +19 -9
- data/doc/TaskJuggler/SyntaxReference.html +80 -71
- data/doc/TaskJuggler/TOCEntry.html +11 -1
- data/doc/TaskJuggler/TSResourceRecord.html +11 -1
- data/doc/TaskJuggler/TSTaskRecord.html +11 -1
- data/doc/TaskJuggler/TableColumnDefinition.html +11 -1
- data/doc/TaskJuggler/TableOfContents.html +11 -1
- data/doc/TaskJuggler/TableReport.html +422 -411
- data/doc/TaskJuggler/Task.html +11 -1
- data/doc/TaskJuggler/TaskDependency.html +11 -1
- data/doc/TaskJuggler/TaskListAttribute.html +33 -23
- data/doc/TaskJuggler/TaskListRE.html +11 -1
- data/doc/TaskJuggler/TaskScenario.html +2007 -1919
- data/doc/TaskJuggler/TextFormatter.html +11 -1
- data/doc/TaskJuggler/TextParser.html +421 -612
- data/doc/TaskJuggler/TextParser/Pattern.html +410 -211
- data/doc/TaskJuggler/TextParser/Rule.html +224 -152
- data/doc/TaskJuggler/TextParser/StackElement.html +190 -28
- data/doc/TaskJuggler/TextParser/State.html +989 -0
- data/doc/TaskJuggler/TextParser/StateTransition.html +782 -0
- data/doc/TaskJuggler/TextParser/TextParserResultArray.html +25 -14
- data/doc/TaskJuggler/TextParser/TokenDoc.html +11 -1
- data/doc/TaskJuggler/TextReport.html +11 -1
- data/doc/TaskJuggler/TextScanner.html +285 -273
- data/doc/TaskJuggler/TextScanner/BufferStreamHandle.html +17 -7
- data/doc/TaskJuggler/TextScanner/FileStreamHandle.html +24 -14
- data/doc/TaskJuggler/TextScanner/MacroStackEntry.html +11 -1
- data/doc/TaskJuggler/TextScanner/StreamHandle.html +64 -52
- data/doc/TaskJuggler/TimeSheet.html +11 -1
- data/doc/TaskJuggler/TimeSheetReceiver.html +11 -1
- data/doc/TaskJuggler/TimeSheetRecord.html +11 -1
- data/doc/TaskJuggler/TimeSheetReport.html +11 -1
- data/doc/TaskJuggler/TimeSheetSender.html +11 -1
- data/doc/TaskJuggler/TimeSheetSummary.html +11 -1
- data/doc/TaskJuggler/TimeSheets.html +11 -1
- data/doc/TaskJuggler/Tj3AppBase.html +11 -1
- data/doc/TaskJuggler/Tj3Client.html +11 -1
- data/doc/TaskJuggler/Tj3Daemon.html +11 -1
- data/doc/TaskJuggler/Tj3SheetAppBase.html +11 -1
- data/doc/TaskJuggler/Tj3SsReceiver.html +11 -1
- data/doc/TaskJuggler/Tj3SsSender.html +11 -1
- data/doc/TaskJuggler/Tj3TsReceiver.html +11 -1
- data/doc/TaskJuggler/Tj3TsSender.html +11 -1
- data/doc/TaskJuggler/Tj3TsSummary.html +11 -1
- data/doc/TaskJuggler/TjException.html +11 -1
- data/doc/TaskJuggler/TjTime.html +474 -324
- data/doc/TaskJuggler/TjpExample.html +11 -1
- data/doc/TaskJuggler/TjpExportRE.html +11 -1
- data/doc/TaskJuggler/TjpSyntaxRules.html +3731 -3662
- data/doc/TaskJuggler/URLParameter.html +11 -1
- data/doc/TaskJuggler/UserManual.html +11 -1
- data/doc/TaskJuggler/VimSyntax.html +11 -1
- data/doc/TaskJuggler/WebServer.html +11 -1
- data/doc/TaskJuggler/WorkingHours.html +295 -221
- data/doc/TaskJuggler/WorkingHoursAttribute.html +11 -1
- data/doc/TaskJuggler/XMLBlob.html +11 -1
- data/doc/TaskJuggler/XMLComment.html +11 -1
- data/doc/TaskJuggler/XMLDocument.html +11 -1
- data/doc/TaskJuggler/XMLElement.html +11 -1
- data/doc/TaskJuggler/XMLNamedText.html +11 -1
- data/doc/TaskJuggler/XMLText.html +11 -1
- data/doc/index.html +694 -624
- data/doc/lib/AppConfig_rb.html +1 -1
- data/doc/lib/Attributes_rb.html +1 -1
- data/doc/lib/Booking_rb.html +1 -1
- data/doc/lib/DataCache_rb.html +69 -0
- data/doc/lib/KeywordDocumentation_rb.html +1 -1
- data/doc/lib/ProjectFileParser_rb.html +1 -1
- data/doc/lib/ProjectFileScanner_rb.html +1 -1
- data/doc/lib/Project_rb.html +1 -1
- data/doc/lib/PropertyList_rb.html +1 -1
- data/doc/lib/Query_rb.html +1 -1
- data/doc/lib/RealFormat_rb.html +1 -1
- data/doc/lib/ResourceScenario_rb.html +1 -1
- data/doc/lib/Resource_rb.html +1 -1
- data/doc/lib/RichTextParser_rb.html +1 -1
- data/doc/lib/RichTextScanner_rb.html +1 -1
- data/doc/lib/RichTextSyntaxRules_rb.html +1 -1
- data/doc/lib/RichText_rb.html +1 -1
- data/doc/lib/Scoreboard_rb.html +1 -1
- data/doc/lib/StatusSheetSender_rb.html +1 -1
- data/doc/lib/SyntaxReference_rb.html +1 -1
- data/doc/lib/TaskJuggler_rb.html +1 -1
- data/doc/lib/TaskScenario_rb.html +3 -1
- data/doc/lib/TextParser/Pattern_rb.html +3 -1
- data/doc/lib/TextParser/Rule_rb.html +3 -1
- data/doc/lib/TextParser/StackElement_rb.html +3 -1
- data/doc/lib/TextParser/State_rb.html +65 -0
- data/doc/lib/TextParser_rb.html +1 -1
- data/doc/lib/TextScanner_rb.html +1 -1
- data/doc/lib/Tj3Config_rb.html +1 -1
- data/doc/lib/TjTime_rb.html +1 -1
- data/doc/lib/TjpSyntaxRules_rb.html +1 -1
- data/doc/lib/WorkingHours_rb.html +3 -1
- data/doc/lib/daemon/ReportServer_rb.html +1 -1
- data/doc/lib/reports/CSVFile_rb.html +1 -1
- data/doc/lib/reports/CollisionDetector_rb.html +67 -0
- data/doc/lib/reports/GanttChart_rb.html +1 -1
- data/doc/lib/reports/GanttRouter_rb.html +3 -1
- data/doc/lib/reports/Navigator_rb.html +1 -1
- data/doc/lib/reports/ReportBase_rb.html +1 -1
- data/doc/lib/reports/ReportTableCell_rb.html +1 -1
- data/doc/lib/reports/ReportTableColumn_rb.html +1 -1
- data/doc/lib/reports/ReportTableLine_rb.html +1 -1
- data/doc/lib/reports/ReportTable_rb.html +1 -1
- data/doc/lib/reports/Report_rb.html +1 -1
- data/doc/lib/reports/TableReport_rb.html +1 -1
- data/doc/lib/taskjuggler3_rb.html +1 -1
- data/examples/tutorial.tjp +1 -2
- data/lib/AppConfig.rb +10 -4
- data/lib/Attributes.rb +4 -4
- data/lib/DataCache.rb +124 -0
- data/lib/KeywordDocumentation.rb +5 -5
- data/lib/Project.rb +54 -10
- data/lib/ProjectFileParser.rb +10 -9
- data/lib/ProjectFileScanner.rb +38 -25
- data/lib/PropertyList.rb +6 -4
- data/lib/Query.rb +0 -8
- data/lib/RealFormat.rb +1 -1
- data/lib/Resource.rb +1 -1
- data/lib/ResourceScenario.rb +96 -31
- data/lib/RichText.rb +17 -5
- data/lib/RichTextParser.rb +22 -9
- data/lib/RichTextScanner.rb +34 -34
- data/lib/RichTextSyntaxRules.rb +41 -36
- data/lib/Scoreboard.rb +16 -7
- data/lib/StatusSheetSender.rb +63 -0
- data/lib/SyntaxReference.rb +9 -10
- data/lib/TaskJuggler.rb +28 -4
- data/lib/TaskScenario.rb +66 -19
- data/lib/TextParser.rb +219 -384
- data/lib/TextParser/Pattern.rb +168 -49
- data/lib/TextParser/Rule.rb +33 -17
- data/lib/TextParser/StackElement.rb +42 -2
- data/lib/TextParser/State.rb +175 -0
- data/lib/TextScanner.rb +19 -15
- data/lib/Tj3Config.rb +1 -1
- data/lib/TjTime.rb +111 -3
- data/lib/TjpSyntaxRules.rb +122 -66
- data/lib/WorkingHours.rb +91 -186
- data/lib/daemon/ReportServer.rb +3 -2
- data/lib/reports/CSVFile.rb +1 -1
- data/lib/reports/CollisionDetector.rb +177 -0
- data/lib/reports/GanttChart.rb +25 -41
- data/lib/reports/GanttRouter.rb +104 -233
- data/lib/reports/Navigator.rb +1 -1
- data/lib/reports/Report.rb +9 -33
- data/lib/reports/ReportBase.rb +0 -1
- data/lib/reports/ReportTable.rb +19 -8
- data/lib/reports/ReportTableCell.rb +61 -25
- data/lib/reports/ReportTableColumn.rb +2 -2
- data/lib/reports/ReportTableLine.rb +4 -2
- data/lib/reports/TableReport.rb +1 -0
- data/lib/taskjuggler3.rb +0 -1
- data/manual/Installation +7 -3
- data/manual/Intro +12 -10
- data/manual/The_TaskJuggler_Syntax +4 -4
- data/test/TestSuite/CSV-Reports/celltext-Reference.csv +14 -14
- data/test/TestSuite/CSV-Reports/genrefs +1 -1
- data/test/TestSuite/CSV-Reports/resourcereport-Reference.csv +4 -4
- data/test/TestSuite/CSV-Reports/resourcereport_with_tasks-Reference.csv +22 -22
- data/test/TestSuite/CSV-Reports/sortByTree-Reference.csv +14 -14
- data/test/TestSuite/CSV-Reports/sortBy_duration.down-Reference.csv +14 -14
- data/test/TestSuite/CSV-Reports/sortBy_effort.up-Reference.csv +14 -14
- data/test/TestSuite/CSV-Reports/sortBy_plan.start.down-Reference.csv +14 -14
- data/test/TestSuite/CSV-Reports/taskreport-Reference.csv +14 -14
- data/test/TestSuite/CSV-Reports/taskreport_with_resources-Reference.csv +32 -24
- data/test/TestSuite/CSV-Reports/weekly-Reference.csv +13 -0
- data/test/TestSuite/CSV-Reports/weekly.tjp +9 -0
- data/test/TestSuite/HTML-Reports/css/tjreport.css +7 -2
- data/test/TestSuite/HTML-Reports/depArrows.html +839 -830
- data/test/TestSuite/HTML-Reports/depArrows.tjp +12 -12
- data/test/TestSuite/HTML-Reports/profile.html +37581 -0
- data/test/TestSuite/ReportGenerator/Errors/no_report_defined.tjp +7 -0
- data/test/TestSuite/ReportGenerator/Errors/rtp_report_recursion.tjp +1 -1
- data/test/TestSuite/StatusSheets/TimeSheets/2002-03-01/missing-reports +2 -0
- data/test/TestSuite/StatusSheets/run +2 -0
- data/test/TestSuite/Syntax/Correct/Booking.tjp +13 -5
- data/test/TestSuite/Syntax/Correct/ResourceRoot.tjp +21 -0
- data/test/TestSuite/Syntax/Correct/RollupResource.tjp +21 -0
- data/test/TestSuite/Syntax/Correct/TaskRoot.tjp +1 -1
- data/test/TestSuite/Syntax/Errors/empty.tjp +1 -1
- data/test/TestSuite/Syntax/Errors/include_before_project.tjp +2 -0
- data/test/TestSuite/Syntax/Errors/no_reduce.tjp +6 -0
- data/test/TestSuite/Syntax/Errors/unsupported_token.tjp +1 -1
- data/test/TestSuite/TimeSheets/run +1 -1
- data/test/test_CSV-Reports.rb +2 -4
- data/test/test_CollisionDetector.rb +85 -0
- data/test/test_Project.rb +2 -2
- data/test/test_ProjectFileScanner.rb +73 -31
- data/test/test_Query.rb +2 -2
- data/test/test_ReportGenerator.rb +1 -1
- data/test/test_RichText.rb +4 -4
- data/test/test_WorkingHours.rb +150 -11
- metadata +75 -67
- data/test/TestSuite/ReportGenerator/Errors/css/tjreport.css +0 -407
- data/test/TestSuite/ReportGenerator/Errors/rtp_report_recursion.html +0 -26
- data/test/TestSuite/Scheduler/Correct/Allocate.html +0 -3210
- data/test/TestSuite/Scheduler/Correct/Container.html +0 -349
- data/test/TestSuite/Scheduler/Correct/Limits.html +0 -4964
- data/test/TestSuite/Scheduler/Correct/Shift.html +0 -1719
- data/test/TestSuite/Scheduler/Correct/Shift2.html +0 -476
- data/test/TestSuite/Scheduler/Correct/css/tjmanual.css +0 -66
- data/test/TestSuite/Scheduler/Correct/icons/details.png +0 -0
- data/test/TestSuite/Scheduler/Correct/icons/flag-green.png +0 -0
- data/test/TestSuite/Scheduler/Correct/icons/flag-red.png +0 -0
- data/test/TestSuite/Scheduler/Correct/icons/flag-yellow.png +0 -0
- data/test/TestSuite/Scheduler/Correct/icons/resource.png +0 -0
- data/test/TestSuite/Scheduler/Correct/icons/resourcegroup.png +0 -0
- data/test/TestSuite/Scheduler/Correct/icons/task.png +0 -0
- data/test/TestSuite/Scheduler/Correct/icons/taskgroup.png +0 -0
- data/test/TestSuite/Scheduler/Correct/icons/trend-down.png +0 -0
- data/test/TestSuite/Scheduler/Correct/icons/trend-flat.png +0 -0
- data/test/TestSuite/Scheduler/Correct/icons/trend-up.png +0 -0
- data/test/TestSuite/Scheduler/Correct/scripts/wz_tooltip.js +0 -1301
- data/test/TestSuite/Scheduler/Errors/css/tjmanual.css +0 -66
- data/test/TestSuite/Scheduler/Errors/css/tjreport.css +0 -407
- data/test/TestSuite/Scheduler/Errors/icons/details.png +0 -0
- data/test/TestSuite/Scheduler/Errors/icons/flag-green.png +0 -0
- data/test/TestSuite/Scheduler/Errors/icons/flag-red.png +0 -0
- data/test/TestSuite/Scheduler/Errors/icons/flag-yellow.png +0 -0
- data/test/TestSuite/Scheduler/Errors/icons/resource.png +0 -0
- data/test/TestSuite/Scheduler/Errors/icons/resourcegroup.png +0 -0
- data/test/TestSuite/Scheduler/Errors/icons/task.png +0 -0
- data/test/TestSuite/Scheduler/Errors/icons/taskgroup.png +0 -0
- data/test/TestSuite/Scheduler/Errors/icons/trend-down.png +0 -0
- data/test/TestSuite/Scheduler/Errors/icons/trend-flat.png +0 -0
- data/test/TestSuite/Scheduler/Errors/icons/trend-up.png +0 -0
- data/test/TestSuite/Scheduler/Errors/scripts/wz_tooltip.js +0 -1301
- data/test/TestSuite/StatusSheets/resrep.tji +0 -7
- data/test/TestSuite/StatusSheets/tj3d.log +0 -312
- data/test/TestSuite/Syntax/Correct/Managers.html +0 -263
- data/test/TestSuite/TimeSheets/acceptable_intervals +0 -1
- data/test/TestSuite/TimeSheets/statussheets.log +0 -1
data/doc/TaskJuggler/Report.html
CHANGED
|
@@ -179,12 +179,18 @@
|
|
|
179
179
|
|
|
180
180
|
<li><a href="../TaskJuggler/ChargeSetListAttribute.html">TaskJuggler::ChargeSetListAttribute</a></li>
|
|
181
181
|
|
|
182
|
+
<li><a href="../TaskJuggler/CollisionDetector.html">TaskJuggler::CollisionDetector</a></li>
|
|
183
|
+
|
|
182
184
|
<li><a href="../TaskJuggler/ColumnListAttribute.html">TaskJuggler::ColumnListAttribute</a></li>
|
|
183
185
|
|
|
184
186
|
<li><a href="../TaskJuggler/ColumnTable.html">TaskJuggler::ColumnTable</a></li>
|
|
185
187
|
|
|
186
188
|
<li><a href="../TaskJuggler/Daemon.html">TaskJuggler::Daemon</a></li>
|
|
187
189
|
|
|
190
|
+
<li><a href="../TaskJuggler/DataCache.html">TaskJuggler::DataCache</a></li>
|
|
191
|
+
|
|
192
|
+
<li><a href="../TaskJuggler/DataCacheEntry.html">TaskJuggler::DataCacheEntry</a></li>
|
|
193
|
+
|
|
188
194
|
<li><a href="../TaskJuggler/DateAttribute.html">TaskJuggler::DateAttribute</a></li>
|
|
189
195
|
|
|
190
196
|
<li><a href="../TaskJuggler/DefinitionListAttribute.html">TaskJuggler::DefinitionListAttribute</a></li>
|
|
@@ -291,7 +297,7 @@
|
|
|
291
297
|
|
|
292
298
|
<li><a href="../TaskJuggler/NodeListAttribute.html">TaskJuggler::NodeListAttribute</a></li>
|
|
293
299
|
|
|
294
|
-
<li><a href="../TaskJuggler/
|
|
300
|
+
<li><a href="../TaskJuggler/PlaceHolderCell.html">TaskJuggler::PlaceHolderCell</a></li>
|
|
295
301
|
|
|
296
302
|
<li><a href="../TaskJuggler/ProcessIntercom.html">TaskJuggler::ProcessIntercom</a></li>
|
|
297
303
|
|
|
@@ -471,6 +477,10 @@
|
|
|
471
477
|
|
|
472
478
|
<li><a href="../TaskJuggler/TextParser/StackElement.html">TaskJuggler::TextParser::StackElement</a></li>
|
|
473
479
|
|
|
480
|
+
<li><a href="../TaskJuggler/TextParser/State.html">TaskJuggler::TextParser::State</a></li>
|
|
481
|
+
|
|
482
|
+
<li><a href="../TaskJuggler/TextParser/StateTransition.html">TaskJuggler::TextParser::StateTransition</a></li>
|
|
483
|
+
|
|
474
484
|
<li><a href="../TaskJuggler/TextParser/TextParserResultArray.html">TaskJuggler::TextParser::TextParserResultArray</a></li>
|
|
475
485
|
|
|
476
486
|
<li><a href="../TaskJuggler/TextParser/TokenDoc.html">TaskJuggler::TextParser::TokenDoc</a></li>
|
|
@@ -1011,15 +1021,15 @@ Convenience function to access a report attribute
|
|
|
1011
1021
|
<div class="method-source-code"
|
|
1012
1022
|
id="copy-uxiliary-iles-source">
|
|
1013
1023
|
<pre>
|
|
1014
|
-
<span class="ruby-comment cmt"># File lib/reports/Report.rb, line
|
|
1015
|
-
|
|
1016
|
-
|
|
1017
|
-
|
|
1018
|
-
|
|
1019
|
-
|
|
1020
|
-
|
|
1021
|
-
|
|
1022
|
-
|
|
1024
|
+
<span class="ruby-comment cmt"># File lib/reports/Report.rb, line 258</span>
|
|
1025
|
+
258: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">copyAuxiliaryFiles</span>
|
|
1026
|
+
259: <span class="ruby-comment cmt"># Don't copy files if output is stdout.</span>
|
|
1027
|
+
260: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@name</span> <span class="ruby-operator">==</span> <span class="ruby-value str">'.'</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">a</span>(<span class="ruby-value str">'interactive'</span>)
|
|
1028
|
+
261:
|
|
1029
|
+
262: <span class="ruby-identifier">copyDirectory</span>(<span class="ruby-value str">'css'</span>)
|
|
1030
|
+
263: <span class="ruby-identifier">copyDirectory</span>(<span class="ruby-value str">'icons'</span>)
|
|
1031
|
+
264: <span class="ruby-identifier">copyDirectory</span>(<span class="ruby-value str">'scripts'</span>)
|
|
1032
|
+
265: <span class="ruby-keyword kw">end</span></pre>
|
|
1023
1033
|
</div>
|
|
1024
1034
|
|
|
1025
1035
|
</div>
|
|
@@ -1050,21 +1060,23 @@ Convenience function to access a report attribute
|
|
|
1050
1060
|
<div class="method-source-code"
|
|
1051
1061
|
id="copy-irectory-source">
|
|
1052
1062
|
<pre>
|
|
1053
|
-
<span class="ruby-comment cmt"># File lib/reports/Report.rb, line
|
|
1054
|
-
|
|
1055
|
-
|
|
1056
|
-
|
|
1057
|
-
|
|
1058
|
-
|
|
1059
|
-
|
|
1060
|
-
|
|
1061
|
-
|
|
1062
|
-
|
|
1063
|
-
|
|
1064
|
-
|
|
1065
|
-
|
|
1066
|
-
|
|
1067
|
-
|
|
1063
|
+
<span class="ruby-comment cmt"># File lib/reports/Report.rb, line 267</span>
|
|
1064
|
+
267: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">copyDirectory</span>(<span class="ruby-identifier">dirName</span>)
|
|
1065
|
+
268: <span class="ruby-comment cmt"># The directory needs to be in the same directory as the HTML report.</span>
|
|
1066
|
+
269: <span class="ruby-identifier">auxDstDir</span> = (<span class="ruby-constant">File</span>.<span class="ruby-identifier">dirname</span>((<span class="ruby-ivar">@name</span>[<span class="ruby-value">0</span>] <span class="ruby-operator">==</span> <span class="ruby-value str">'/'</span> <span class="ruby-operator">?</span> <span class="ruby-value str">''</span> <span class="ruby-operator">:</span> <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">outputDir</span>) <span class="ruby-operator">+</span>
|
|
1067
|
+
270: <span class="ruby-ivar">@name</span>) <span class="ruby-operator">+</span> <span class="ruby-value str">'/'</span>).<span class="ruby-identifier">untaint</span>
|
|
1068
|
+
271: <span class="ruby-comment cmt"># Find the data directory that came with the TaskJuggler installation.</span>
|
|
1069
|
+
272: <span class="ruby-identifier">auxSrcDir</span> = <span class="ruby-constant">AppConfig</span>.<span class="ruby-identifier">dataDirs</span>(<span class="ruby-node">"data/#{dirName}"</span>)[<span class="ruby-value">0</span>].<span class="ruby-identifier">untaint</span>
|
|
1070
|
+
273: <span class="ruby-comment cmt"># Raise an error if we haven't found the data directory</span>
|
|
1071
|
+
274: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">auxSrcDir</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">||</span> <span class="ruby-operator">!</span><span class="ruby-constant">File</span>.<span class="ruby-identifier">exists?</span>(<span class="ruby-identifier">auxSrcDir</span>)
|
|
1072
|
+
275: <span class="ruby-identifier">dataDirError</span>(<span class="ruby-identifier">dirName</span>, <span class="ruby-constant">AppConfig</span>.<span class="ruby-identifier">dataSearchDirs</span>(<span class="ruby-node">"data/#{dirName}"</span>))
|
|
1073
|
+
276: <span class="ruby-keyword kw">end</span>
|
|
1074
|
+
277: <span class="ruby-comment cmt"># Don't copy directory if all files are up-to-date.</span>
|
|
1075
|
+
278: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">directoryUpToDate?</span>(<span class="ruby-identifier">auxSrcDir</span>, <span class="ruby-identifier">auxDstDir</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">dirName</span>)
|
|
1076
|
+
279:
|
|
1077
|
+
280: <span class="ruby-comment cmt"># Recursively copy the directory and all content.</span>
|
|
1078
|
+
281: <span class="ruby-constant">FileUtils</span>.<span class="ruby-identifier">cp_r</span>(<span class="ruby-identifier">auxSrcDir</span>, <span class="ruby-identifier">auxDstDir</span>)
|
|
1079
|
+
282: <span class="ruby-keyword kw">end</span></pre>
|
|
1068
1080
|
</div>
|
|
1069
1081
|
|
|
1070
1082
|
</div>
|
|
@@ -1081,7 +1093,7 @@ Convenience function to access a report attribute
|
|
|
1081
1093
|
<div class="method-heading">
|
|
1082
1094
|
|
|
1083
1095
|
<span class="method-name">dataDirError</span><span
|
|
1084
|
-
class="method-args">(dirName)</span>
|
|
1096
|
+
class="method-args">(dirName, dirs)</span>
|
|
1085
1097
|
<span class="method-click-advice">click to toggle source</span>
|
|
1086
1098
|
|
|
1087
1099
|
</div>
|
|
@@ -1095,11 +1107,11 @@ Convenience function to access a report attribute
|
|
|
1095
1107
|
<div class="method-source-code"
|
|
1096
1108
|
id="data-ir-rror-source">
|
|
1097
1109
|
<pre>
|
|
1098
|
-
<span class="ruby-comment cmt"># File lib/reports/Report.rb, line
|
|
1099
|
-
|
|
1100
|
-
|
|
1101
|
-
|
|
1102
|
-
|
|
1110
|
+
<span class="ruby-comment cmt"># File lib/reports/Report.rb, line 298</span>
|
|
1111
|
+
298: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">dataDirError</span>(<span class="ruby-identifier">dirName</span>, <span class="ruby-identifier">dirs</span>)
|
|
1112
|
+
299: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'data_dir_error'</span>, <span class="ruby-value str">Cannot find the #{dirName} directory. This is usually the result of animproper TaskJuggler installation. If you know the directory, you can use theTASKJUGGLER_DATA_PATH environment variable to specify the location. Thevariable should be set to the path without the /data at the end. Multipledirectories must be separated by colons. The following directories have beentried:#{dirs.join("\n")}</span>
|
|
1113
|
+
300: )
|
|
1114
|
+
301: <span class="ruby-keyword kw">end</span></pre>
|
|
1103
1115
|
</div>
|
|
1104
1116
|
|
|
1105
1117
|
</div>
|
|
@@ -1130,20 +1142,20 @@ Convenience function to access a report attribute
|
|
|
1130
1142
|
<div class="method-source-code"
|
|
1131
1143
|
id="directory-p-o-ate--source">
|
|
1132
1144
|
<pre>
|
|
1133
|
-
<span class="ruby-comment cmt"># File lib/reports/Report.rb, line
|
|
1134
|
-
|
|
1135
|
-
|
|
1136
|
-
|
|
1137
|
-
|
|
1138
|
-
|
|
1139
|
-
|
|
1140
|
-
|
|
1141
|
-
|
|
1142
|
-
|
|
1143
|
-
|
|
1144
|
-
|
|
1145
|
-
|
|
1146
|
-
|
|
1145
|
+
<span class="ruby-comment cmt"># File lib/reports/Report.rb, line 284</span>
|
|
1146
|
+
284: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">directoryUpToDate?</span>(<span class="ruby-identifier">auxSrcDir</span>, <span class="ruby-identifier">auxDstDir</span>)
|
|
1147
|
+
285: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">exists?</span>(<span class="ruby-identifier">auxDstDir</span>.<span class="ruby-identifier">untaint</span>)
|
|
1148
|
+
286:
|
|
1149
|
+
287: <span class="ruby-constant">Dir</span>.<span class="ruby-identifier">entries</span>(<span class="ruby-identifier">auxSrcDir</span>).<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">file</span><span class="ruby-operator">|</span>
|
|
1150
|
+
288: <span class="ruby-keyword kw">next</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">file</span> <span class="ruby-operator">==</span> <span class="ruby-value str">'.'</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">file</span> <span class="ruby-operator">==</span> <span class="ruby-value str">'..'</span>
|
|
1151
|
+
289:
|
|
1152
|
+
290: <span class="ruby-identifier">srcFile</span> = (<span class="ruby-identifier">auxSrcDir</span> <span class="ruby-operator">+</span> <span class="ruby-value str">'/'</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">file</span>).<span class="ruby-identifier">untaint</span>
|
|
1153
|
+
291: <span class="ruby-identifier">dstFile</span> = (<span class="ruby-identifier">auxDstDir</span> <span class="ruby-operator">+</span> <span class="ruby-value str">'/'</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">file</span>).<span class="ruby-identifier">untaint</span>
|
|
1154
|
+
292: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span> <span class="ruby-keyword kw">if</span> <span class="ruby-operator">!</span><span class="ruby-constant">File</span>.<span class="ruby-identifier">exist?</span>(<span class="ruby-identifier">dstFile</span>) <span class="ruby-operator">||</span>
|
|
1155
|
+
293: <span class="ruby-constant">File</span>.<span class="ruby-identifier">mtime</span>(<span class="ruby-identifier">srcFile</span>) <span class="ruby-operator">></span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">mtime</span>(<span class="ruby-identifier">dstFile</span>)
|
|
1156
|
+
294: <span class="ruby-keyword kw">end</span>
|
|
1157
|
+
295: <span class="ruby-keyword kw">true</span>
|
|
1158
|
+
296: <span class="ruby-keyword kw">end</span></pre>
|
|
1147
1159
|
</div>
|
|
1148
1160
|
|
|
1149
1161
|
</div>
|
|
@@ -1183,46 +1195,17 @@ Generate a CSV version of the report.
|
|
|
1183
1195
|
214: <span class="ruby-comment cmt"># CSV format can only handle the first element.</span>
|
|
1184
1196
|
215: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span> <span class="ruby-keyword kw">unless</span> (<span class="ruby-identifier">csv</span> = <span class="ruby-ivar">@content</span>.<span class="ruby-identifier">to_csv</span>)
|
|
1185
1197
|
216:
|
|
1186
|
-
217: <span class="ruby-comment cmt">#
|
|
1187
|
-
218: <span class="ruby-
|
|
1188
|
-
219: <span class="ruby-keyword kw">
|
|
1189
|
-
220: <span class="ruby-
|
|
1190
|
-
221:
|
|
1191
|
-
222:
|
|
1192
|
-
223:
|
|
1193
|
-
224:
|
|
1194
|
-
225:
|
|
1195
|
-
226:
|
|
1196
|
-
227:
|
|
1197
|
-
228: <span class="ruby-identifier">csv</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">line</span><span class="ruby-operator">|</span>
|
|
1198
|
-
229: <span class="ruby-identifier">lineIdx</span> = <span class="ruby-identifier">csv</span>.<span class="ruby-identifier">index</span>(<span class="ruby-identifier">line</span>)
|
|
1199
|
-
230: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">lineIdx</span> <span class="ruby-operator">==</span> <span class="ruby-value">0</span>
|
|
1200
|
-
231: <span class="ruby-comment cmt"># The header cell can be reused.</span>
|
|
1201
|
-
232: <span class="ruby-identifier">line</span>[<span class="ruby-identifier">columnIdx</span>] = <span class="ruby-identifier">nestedTable</span>[<span class="ruby-identifier">lineIdx</span>]
|
|
1202
|
-
233: <span class="ruby-keyword kw">else</span>
|
|
1203
|
-
234: <span class="ruby-comment cmt"># For normal lines we have no cells for the table. Just inject</span>
|
|
1204
|
-
235: <span class="ruby-comment cmt"># them.</span>
|
|
1205
|
-
236: <span class="ruby-identifier">line</span>.<span class="ruby-identifier">insert</span>(<span class="ruby-identifier">columnIdx</span>, <span class="ruby-identifier">nestedTable</span>[<span class="ruby-identifier">lineIdx</span>])
|
|
1206
|
-
237: <span class="ruby-keyword kw">end</span>
|
|
1207
|
-
238: <span class="ruby-comment cmt"># Make sure there are no more Arrays nested into the line.</span>
|
|
1208
|
-
239: <span class="ruby-identifier">line</span>.<span class="ruby-identifier">flatten!</span>
|
|
1209
|
-
240: <span class="ruby-keyword kw">end</span>
|
|
1210
|
-
241: <span class="ruby-keyword kw">else</span>
|
|
1211
|
-
242: <span class="ruby-identifier">columnIdx</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
|
|
1212
|
-
243: <span class="ruby-keyword kw">end</span>
|
|
1213
|
-
244: <span class="ruby-keyword kw">end</span>
|
|
1214
|
-
245:
|
|
1215
|
-
246: <span class="ruby-comment cmt"># Use the CSVFile class to write the Array of Arrays to a colon</span>
|
|
1216
|
-
247: <span class="ruby-comment cmt"># separated file. Write to $stdout if the filename was set to '.'.</span>
|
|
1217
|
-
248: <span class="ruby-keyword kw">begin</span>
|
|
1218
|
-
249: <span class="ruby-identifier">fileName</span> = (<span class="ruby-ivar">@name</span> <span class="ruby-operator">==</span> <span class="ruby-value str">'.'</span> <span class="ruby-operator">?</span> <span class="ruby-ivar">@name</span> <span class="ruby-operator">:</span>
|
|
1219
|
-
250: (<span class="ruby-ivar">@name</span>[<span class="ruby-value">0</span>] <span class="ruby-operator">==</span> <span class="ruby-value str">'/'</span> <span class="ruby-operator">?</span> <span class="ruby-value str">''</span> <span class="ruby-operator">:</span> <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">outputDir</span>) <span class="ruby-operator">+</span>
|
|
1220
|
-
251: <span class="ruby-ivar">@name</span> <span class="ruby-operator">+</span> <span class="ruby-value str">'.csv'</span>).<span class="ruby-identifier">untaint</span>
|
|
1221
|
-
252: <span class="ruby-constant">CSVFile</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">csv</span>, <span class="ruby-value str">';'</span>).<span class="ruby-identifier">write</span>(<span class="ruby-identifier">fileName</span>)
|
|
1222
|
-
253: <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">IOError</span>
|
|
1223
|
-
254: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'write_csv'</span>, <span class="ruby-node">"Cannot write to file #{fileName}.\n#{$!}"</span>)
|
|
1224
|
-
255: <span class="ruby-keyword kw">end</span>
|
|
1225
|
-
256: <span class="ruby-keyword kw">end</span></pre>
|
|
1198
|
+
217: <span class="ruby-comment cmt"># Use the CSVFile class to write the Array of Arrays to a colon</span>
|
|
1199
|
+
218: <span class="ruby-comment cmt"># separated file. Write to $stdout if the filename was set to '.'.</span>
|
|
1200
|
+
219: <span class="ruby-keyword kw">begin</span>
|
|
1201
|
+
220: <span class="ruby-identifier">fileName</span> = (<span class="ruby-ivar">@name</span> <span class="ruby-operator">==</span> <span class="ruby-value str">'.'</span> <span class="ruby-operator">?</span> <span class="ruby-ivar">@name</span> <span class="ruby-operator">:</span>
|
|
1202
|
+
221: (<span class="ruby-ivar">@name</span>[<span class="ruby-value">0</span>] <span class="ruby-operator">==</span> <span class="ruby-value str">'/'</span> <span class="ruby-operator">?</span> <span class="ruby-value str">''</span> <span class="ruby-operator">:</span> <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">outputDir</span>) <span class="ruby-operator">+</span>
|
|
1203
|
+
222: <span class="ruby-ivar">@name</span> <span class="ruby-operator">+</span> <span class="ruby-value str">'.csv'</span>).<span class="ruby-identifier">untaint</span>
|
|
1204
|
+
223: <span class="ruby-constant">CSVFile</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">csv</span>, <span class="ruby-value str">';'</span>).<span class="ruby-identifier">write</span>(<span class="ruby-identifier">fileName</span>)
|
|
1205
|
+
224: <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">IOError</span>
|
|
1206
|
+
225: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'write_csv'</span>, <span class="ruby-node">"Cannot write to file #{fileName}.\n#{$!}"</span>)
|
|
1207
|
+
226: <span class="ruby-keyword kw">end</span>
|
|
1208
|
+
227: <span class="ruby-keyword kw">end</span></pre>
|
|
1226
1209
|
</div>
|
|
1227
1210
|
|
|
1228
1211
|
</div>
|
|
@@ -1266,7 +1249,7 @@ Generate an HTML version of the report.
|
|
|
1266
1249
|
141: <span class="ruby-identifier">cssFileName</span> = (<span class="ruby-identifier">auxSrcDir</span> <span class="ruby-operator">?</span> <span class="ruby-identifier">auxSrcDir</span> <span class="ruby-operator">+</span> <span class="ruby-value str">'/tjreport.css'</span> <span class="ruby-operator">:</span> <span class="ruby-value str">''</span>)
|
|
1267
1250
|
142: <span class="ruby-comment cmt"># Raise an error if we haven't found the data directory</span>
|
|
1268
1251
|
143: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">auxSrcDir</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">||</span> <span class="ruby-operator">!</span><span class="ruby-constant">File</span>.<span class="ruby-identifier">exists?</span>(<span class="ruby-identifier">cssFileName</span>)
|
|
1269
|
-
144: <span class="ruby-identifier">dataDirError</span>(<span class="ruby-identifier">cssFileName</span>)
|
|
1252
|
+
144: <span class="ruby-identifier">dataDirError</span>(<span class="ruby-identifier">cssFileName</span>, <span class="ruby-constant">AppConfig</span>.<span class="ruby-identifier">dataSearchDirs</span>(<span class="ruby-value str">'data/css'</span>))
|
|
1270
1253
|
145: <span class="ruby-keyword kw">end</span>
|
|
1271
1254
|
146: <span class="ruby-identifier">cssFile</span> = <span class="ruby-constant">IO</span>.<span class="ruby-identifier">read</span>(<span class="ruby-identifier">cssFileName</span>)
|
|
1272
1255
|
147: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">cssFile</span>.<span class="ruby-identifier">empty?</span>
|
|
@@ -1357,17 +1340,17 @@ Generate Niku report
|
|
|
1357
1340
|
<div class="method-source-code"
|
|
1358
1341
|
id="generate-iku-source">
|
|
1359
1342
|
<pre>
|
|
1360
|
-
<span class="ruby-comment cmt"># File lib/reports/Report.rb, line
|
|
1361
|
-
|
|
1362
|
-
|
|
1363
|
-
|
|
1364
|
-
|
|
1365
|
-
|
|
1366
|
-
|
|
1367
|
-
|
|
1368
|
-
|
|
1369
|
-
|
|
1370
|
-
|
|
1343
|
+
<span class="ruby-comment cmt"># File lib/reports/Report.rb, line 247</span>
|
|
1344
|
+
247: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">generateNiku</span>
|
|
1345
|
+
248: <span class="ruby-keyword kw">begin</span>
|
|
1346
|
+
249: <span class="ruby-identifier">f</span> = <span class="ruby-ivar">@name</span> <span class="ruby-operator">==</span> <span class="ruby-value str">'.'</span> <span class="ruby-operator">?</span> <span class="ruby-identifier">$stdout</span> <span class="ruby-operator">:</span>
|
|
1347
|
+
250: <span class="ruby-constant">File</span>.<span class="ruby-identifier">new</span>(((<span class="ruby-ivar">@name</span>[<span class="ruby-value">0</span>] <span class="ruby-operator">==</span> <span class="ruby-value str">'/'</span> <span class="ruby-operator">?</span> <span class="ruby-value str">''</span> <span class="ruby-operator">:</span> <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">outputDir</span>) <span class="ruby-operator">+</span>
|
|
1348
|
+
251: <span class="ruby-ivar">@name</span> <span class="ruby-operator">+</span> <span class="ruby-value str">'.xml'</span>).<span class="ruby-identifier">untaint</span>, <span class="ruby-value str">'w'</span>)
|
|
1349
|
+
252: <span class="ruby-identifier">f</span>.<span class="ruby-identifier">puts</span> <span class="ruby-node">"#{@content.to_niku}"</span>
|
|
1350
|
+
253: <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">IOError</span>
|
|
1351
|
+
254: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'write_niku'</span>, <span class="ruby-node">"Cannot write to file #{@name}.\n#{$!}"</span>)
|
|
1352
|
+
255: <span class="ruby-keyword kw">end</span>
|
|
1353
|
+
256: <span class="ruby-keyword kw">end</span></pre>
|
|
1371
1354
|
</div>
|
|
1372
1355
|
|
|
1373
1356
|
</div>
|
|
@@ -1400,22 +1383,22 @@ Generate time sheet drafts.
|
|
|
1400
1383
|
<div class="method-source-code"
|
|
1401
1384
|
id="generate--source">
|
|
1402
1385
|
<pre>
|
|
1403
|
-
<span class="ruby-comment cmt"># File lib/reports/Report.rb, line
|
|
1404
|
-
|
|
1405
|
-
|
|
1406
|
-
|
|
1407
|
-
|
|
1408
|
-
|
|
1409
|
-
|
|
1410
|
-
|
|
1411
|
-
|
|
1412
|
-
|
|
1413
|
-
|
|
1414
|
-
|
|
1415
|
-
|
|
1416
|
-
|
|
1417
|
-
|
|
1418
|
-
|
|
1386
|
+
<span class="ruby-comment cmt"># File lib/reports/Report.rb, line 230</span>
|
|
1387
|
+
230: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">generateTJP</span>
|
|
1388
|
+
231: <span class="ruby-keyword kw">begin</span>
|
|
1389
|
+
232: <span class="ruby-identifier">fileName</span> = <span class="ruby-value str">'.'</span>
|
|
1390
|
+
233: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@name</span> <span class="ruby-operator">==</span> <span class="ruby-value str">'.'</span>
|
|
1391
|
+
234: <span class="ruby-identifier">$stdout</span>.<span class="ruby-identifier">write</span>(<span class="ruby-ivar">@content</span>.<span class="ruby-identifier">to_tjp</span>)
|
|
1392
|
+
235: <span class="ruby-keyword kw">else</span>
|
|
1393
|
+
236: <span class="ruby-identifier">fileName</span> = (<span class="ruby-ivar">@name</span>[<span class="ruby-value">0</span>] <span class="ruby-operator">==</span> <span class="ruby-value str">'/'</span> <span class="ruby-operator">?</span> <span class="ruby-value str">''</span> <span class="ruby-operator">:</span> <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">outputDir</span>) <span class="ruby-operator">+</span> <span class="ruby-ivar">@name</span>
|
|
1394
|
+
237: <span class="ruby-identifier">fileName</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">a</span>(<span class="ruby-value str">'definitions'</span>).<span class="ruby-identifier">include?</span>(<span class="ruby-value str">'project'</span>) <span class="ruby-operator">?</span> <span class="ruby-value str">'.tjp'</span> <span class="ruby-operator">:</span> <span class="ruby-value str">'.tji'</span>
|
|
1395
|
+
238: <span class="ruby-identifier">fileName</span>.<span class="ruby-identifier">untaint</span>
|
|
1396
|
+
239: <span class="ruby-constant">File</span>.<span class="ruby-identifier">open</span>(<span class="ruby-identifier">fileName</span>, <span class="ruby-value str">'w'</span>) { <span class="ruby-operator">|</span><span class="ruby-identifier">f</span><span class="ruby-operator">|</span> <span class="ruby-identifier">f</span>.<span class="ruby-identifier">write</span>(<span class="ruby-ivar">@content</span>.<span class="ruby-identifier">to_tjp</span>) }
|
|
1397
|
+
240: <span class="ruby-keyword kw">end</span>
|
|
1398
|
+
241: <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">IOError</span>
|
|
1399
|
+
242: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'write_tjp'</span>, <span class="ruby-node">"Cannot write to file #{fileName}.\n#{$!}"</span>)
|
|
1400
|
+
243: <span class="ruby-keyword kw">end</span>
|
|
1401
|
+
244: <span class="ruby-keyword kw">end</span></pre>
|
|
1419
1402
|
</div>
|
|
1420
1403
|
|
|
1421
1404
|
</div>
|
|
@@ -171,12 +171,18 @@
|
|
|
171
171
|
|
|
172
172
|
<li><a href="../TaskJuggler/ChargeSetListAttribute.html">TaskJuggler::ChargeSetListAttribute</a></li>
|
|
173
173
|
|
|
174
|
+
<li><a href="../TaskJuggler/CollisionDetector.html">TaskJuggler::CollisionDetector</a></li>
|
|
175
|
+
|
|
174
176
|
<li><a href="../TaskJuggler/ColumnListAttribute.html">TaskJuggler::ColumnListAttribute</a></li>
|
|
175
177
|
|
|
176
178
|
<li><a href="../TaskJuggler/ColumnTable.html">TaskJuggler::ColumnTable</a></li>
|
|
177
179
|
|
|
178
180
|
<li><a href="../TaskJuggler/Daemon.html">TaskJuggler::Daemon</a></li>
|
|
179
181
|
|
|
182
|
+
<li><a href="../TaskJuggler/DataCache.html">TaskJuggler::DataCache</a></li>
|
|
183
|
+
|
|
184
|
+
<li><a href="../TaskJuggler/DataCacheEntry.html">TaskJuggler::DataCacheEntry</a></li>
|
|
185
|
+
|
|
180
186
|
<li><a href="../TaskJuggler/DateAttribute.html">TaskJuggler::DateAttribute</a></li>
|
|
181
187
|
|
|
182
188
|
<li><a href="../TaskJuggler/DefinitionListAttribute.html">TaskJuggler::DefinitionListAttribute</a></li>
|
|
@@ -283,7 +289,7 @@
|
|
|
283
289
|
|
|
284
290
|
<li><a href="../TaskJuggler/NodeListAttribute.html">TaskJuggler::NodeListAttribute</a></li>
|
|
285
291
|
|
|
286
|
-
<li><a href="../TaskJuggler/
|
|
292
|
+
<li><a href="../TaskJuggler/PlaceHolderCell.html">TaskJuggler::PlaceHolderCell</a></li>
|
|
287
293
|
|
|
288
294
|
<li><a href="../TaskJuggler/ProcessIntercom.html">TaskJuggler::ProcessIntercom</a></li>
|
|
289
295
|
|
|
@@ -463,6 +469,10 @@
|
|
|
463
469
|
|
|
464
470
|
<li><a href="../TaskJuggler/TextParser/StackElement.html">TaskJuggler::TextParser::StackElement</a></li>
|
|
465
471
|
|
|
472
|
+
<li><a href="../TaskJuggler/TextParser/State.html">TaskJuggler::TextParser::State</a></li>
|
|
473
|
+
|
|
474
|
+
<li><a href="../TaskJuggler/TextParser/StateTransition.html">TaskJuggler::TextParser::StateTransition</a></li>
|
|
475
|
+
|
|
466
476
|
<li><a href="../TaskJuggler/TextParser/TextParserResultArray.html">TaskJuggler::TextParser::TextParserResultArray</a></li>
|
|
467
477
|
|
|
468
478
|
<li><a href="../TaskJuggler/TextParser/TokenDoc.html">TaskJuggler::TextParser::TokenDoc</a></li>
|
|
@@ -707,18 +717,17 @@ assigned to the task in any of the reported scenarios.
|
|
|
707
717
|
96: <span class="ruby-identifier">delete</span> = <span class="ruby-keyword kw">true</span>
|
|
708
718
|
97: <span class="ruby-identifier">a</span>(<span class="ruby-value str">'scenarios'</span>).<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">scenarioIdx</span><span class="ruby-operator">|</span>
|
|
709
719
|
98: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">task</span>.<span class="ruby-identifier">hasResourceAllocated?</span>(<span class="ruby-identifier">scenarioIdx</span>, <span class="ruby-identifier">iv</span>, <span class="ruby-identifier">resource</span>)
|
|
710
|
-
99:
|
|
711
|
-
100: <span class="ruby-
|
|
712
|
-
101:
|
|
713
|
-
102:
|
|
714
|
-
103: <span class="ruby-
|
|
715
|
-
104:
|
|
716
|
-
105:
|
|
717
|
-
106:
|
|
718
|
-
107:
|
|
719
|
-
108:
|
|
720
|
-
109:
|
|
721
|
-
110: <span class="ruby-keyword kw">end</span></pre>
|
|
720
|
+
99: <span class="ruby-identifier">delete</span> = <span class="ruby-keyword kw">false</span>
|
|
721
|
+
100: <span class="ruby-keyword kw">break</span>;
|
|
722
|
+
101: <span class="ruby-keyword kw">end</span>
|
|
723
|
+
102: <span class="ruby-keyword kw">end</span>
|
|
724
|
+
103: <span class="ruby-identifier">delete</span>
|
|
725
|
+
104: <span class="ruby-keyword kw">end</span>
|
|
726
|
+
105: <span class="ruby-keyword kw">end</span>
|
|
727
|
+
106:
|
|
728
|
+
107: <span class="ruby-identifier">standardFilterOps</span>(<span class="ruby-identifier">list</span>, <span class="ruby-identifier">hideExpr</span>, <span class="ruby-identifier">rollupExpr</span>, <span class="ruby-identifier">openNodes</span>, <span class="ruby-identifier">task</span>,
|
|
729
|
+
108: <span class="ruby-identifier">resourceRoot</span>)
|
|
730
|
+
109: <span class="ruby-keyword kw">end</span></pre>
|
|
722
731
|
</div>
|
|
723
732
|
|
|
724
733
|
</div>
|
|
@@ -926,23 +935,23 @@ allocated to it in any of the reported scenarios.
|
|
|
926
935
|
<div class="method-source-code"
|
|
927
936
|
id="generate-tml-able-rame-source">
|
|
928
937
|
<pre>
|
|
929
|
-
<span class="ruby-comment cmt"># File lib/reports/ReportBase.rb, line
|
|
930
|
-
|
|
931
|
-
|
|
932
|
-
|
|
933
|
-
|
|
934
|
-
|
|
935
|
-
|
|
936
|
-
|
|
937
|
-
|
|
938
|
-
|
|
939
|
-
|
|
940
|
-
|
|
941
|
-
|
|
942
|
-
|
|
943
|
-
|
|
944
|
-
|
|
945
|
-
|
|
938
|
+
<span class="ruby-comment cmt"># File lib/reports/ReportBase.rb, line 113</span>
|
|
939
|
+
113: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">generateHtmlTableFrame</span>
|
|
940
|
+
114: <span class="ruby-identifier">table</span> = <span class="ruby-constant">XMLElement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'table'</span>, <span class="ruby-value str">'class'</span> =<span class="ruby-operator">></span> <span class="ruby-value str">'tj_table_frame'</span>,
|
|
941
|
+
115: <span class="ruby-value str">'cellspacing'</span> =<span class="ruby-operator">></span> <span class="ruby-value str">'1'</span>)
|
|
942
|
+
116:
|
|
943
|
+
117: <span class="ruby-comment cmt"># Headline box</span>
|
|
944
|
+
118: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">a</span>(<span class="ruby-value str">'headline'</span>)
|
|
945
|
+
119: <span class="ruby-identifier">table</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">generateHtmlTableRow</span> <span class="ruby-keyword kw">do</span>
|
|
946
|
+
120: <span class="ruby-identifier">td</span> = <span class="ruby-constant">XMLElement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'td'</span>)
|
|
947
|
+
121: <span class="ruby-identifier">td</span> <span class="ruby-operator"><<</span> (<span class="ruby-identifier">div</span> = <span class="ruby-constant">XMLElement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'div'</span>, <span class="ruby-value str">'class'</span> =<span class="ruby-operator">></span> <span class="ruby-value str">'tj_table_headline'</span>))
|
|
948
|
+
122: <span class="ruby-identifier">div</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">a</span>(<span class="ruby-value str">'headline'</span>).<span class="ruby-identifier">to_html</span>
|
|
949
|
+
123: <span class="ruby-identifier">td</span>
|
|
950
|
+
124: <span class="ruby-keyword kw">end</span>
|
|
951
|
+
125: <span class="ruby-keyword kw">end</span>
|
|
952
|
+
126:
|
|
953
|
+
127: <span class="ruby-identifier">table</span>
|
|
954
|
+
128: <span class="ruby-keyword kw">end</span></pre>
|
|
946
955
|
</div>
|
|
947
956
|
|
|
948
957
|
</div>
|
|
@@ -973,10 +982,10 @@ allocated to it in any of the reported scenarios.
|
|
|
973
982
|
<div class="method-source-code"
|
|
974
983
|
id="generate-tml-able-ow-source">
|
|
975
984
|
<pre>
|
|
976
|
-
<span class="ruby-comment cmt"># File lib/reports/ReportBase.rb, line
|
|
977
|
-
|
|
978
|
-
|
|
979
|
-
|
|
985
|
+
<span class="ruby-comment cmt"># File lib/reports/ReportBase.rb, line 130</span>
|
|
986
|
+
130: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">generateHtmlTableRow</span>
|
|
987
|
+
131: <span class="ruby-constant">XMLElement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'tr'</span>) <span class="ruby-operator"><<</span> <span class="ruby-keyword kw">yield</span>
|
|
988
|
+
132: <span class="ruby-keyword kw">end</span></pre>
|
|
980
989
|
</div>
|
|
981
990
|
|
|
982
991
|
</div>
|
|
@@ -1010,13 +1019,13 @@ a HTML form.
|
|
|
1010
1019
|
<div class="method-source-code"
|
|
1011
1020
|
id="rt-to-html-source">
|
|
1012
1021
|
<pre>
|
|
1013
|
-
<span class="ruby-comment cmt"># File lib/reports/ReportBase.rb, line
|
|
1014
|
-
|
|
1015
|
-
|
|
1016
|
-
|
|
1017
|
-
|
|
1018
|
-
|
|
1019
|
-
|
|
1022
|
+
<span class="ruby-comment cmt"># File lib/reports/ReportBase.rb, line 135</span>
|
|
1023
|
+
135: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">rt_to_html</span>(<span class="ruby-identifier">name</span>)
|
|
1024
|
+
136: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">a</span>(<span class="ruby-identifier">name</span>)
|
|
1025
|
+
137:
|
|
1026
|
+
138: <span class="ruby-identifier">a</span>(<span class="ruby-identifier">name</span>).<span class="ruby-identifier">sectionNumbers</span> = <span class="ruby-keyword kw">false</span>
|
|
1027
|
+
139: <span class="ruby-identifier">a</span>(<span class="ruby-identifier">name</span>).<span class="ruby-identifier">to_html</span>
|
|
1028
|
+
140: <span class="ruby-keyword kw">end</span></pre>
|
|
1020
1029
|
</div>
|
|
1021
1030
|
|
|
1022
1031
|
</div>
|
|
@@ -1054,65 +1063,65 @@ the different units. TODO: Delete when all users have been migrated to use
|
|
|
1054
1063
|
<div class="method-source-code"
|
|
1055
1064
|
id="scale-alue-source">
|
|
1056
1065
|
<pre>
|
|
1057
|
-
<span class="ruby-comment cmt"># File lib/reports/ReportBase.rb, line
|
|
1058
|
-
|
|
1059
|
-
|
|
1060
|
-
|
|
1061
|
-
|
|
1062
|
-
|
|
1063
|
-
|
|
1064
|
-
|
|
1065
|
-
|
|
1066
|
-
|
|
1067
|
-
|
|
1068
|
-
|
|
1069
|
-
|
|
1070
|
-
|
|
1071
|
-
|
|
1072
|
-
|
|
1073
|
-
|
|
1074
|
-
|
|
1075
|
-
|
|
1076
|
-
|
|
1077
|
-
|
|
1078
|
-
|
|
1079
|
-
|
|
1080
|
-
|
|
1081
|
-
|
|
1082
|
-
|
|
1083
|
-
|
|
1084
|
-
|
|
1085
|
-
|
|
1086
|
-
|
|
1087
|
-
|
|
1088
|
-
|
|
1089
|
-
|
|
1090
|
-
|
|
1091
|
-
|
|
1092
|
-
|
|
1093
|
-
|
|
1094
|
-
|
|
1095
|
-
|
|
1096
|
-
|
|
1097
|
-
|
|
1098
|
-
|
|
1099
|
-
|
|
1100
|
-
|
|
1101
|
-
|
|
1102
|
-
|
|
1103
|
-
|
|
1104
|
-
|
|
1105
|
-
|
|
1106
|
-
|
|
1107
|
-
|
|
1108
|
-
|
|
1109
|
-
|
|
1110
|
-
|
|
1111
|
-
|
|
1112
|
-
|
|
1113
|
-
|
|
1114
|
-
|
|
1115
|
-
|
|
1066
|
+
<span class="ruby-comment cmt"># File lib/reports/ReportBase.rb, line 202</span>
|
|
1067
|
+
202: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">scaleValue</span>(<span class="ruby-identifier">value</span>, <span class="ruby-identifier">factors</span>)
|
|
1068
|
+
203: <span class="ruby-identifier">loadUnit</span> = <span class="ruby-identifier">a</span>(<span class="ruby-value str">'loadUnit'</span>)
|
|
1069
|
+
204: <span class="ruby-identifier">numberFormat</span> = <span class="ruby-identifier">a</span>(<span class="ruby-value str">'numberFormat'</span>)
|
|
1070
|
+
205:
|
|
1071
|
+
206: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">loadUnit</span> <span class="ruby-operator">==</span> <span class="ruby-value">:shortauto</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">loadUnit</span> <span class="ruby-operator">==</span> <span class="ruby-value">:longauto</span>
|
|
1072
|
+
207: <span class="ruby-comment cmt"># We try all possible units and store the resulting strings here.</span>
|
|
1073
|
+
208: <span class="ruby-identifier">options</span> = []
|
|
1074
|
+
209: <span class="ruby-comment cmt"># For each of the units we can define a maximum value that the value</span>
|
|
1075
|
+
210: <span class="ruby-comment cmt"># should not exceed. A maximum of 0 means no limit.</span>
|
|
1076
|
+
211: <span class="ruby-identifier">max</span> = [ <span class="ruby-value">60</span>, <span class="ruby-value">48</span>, <span class="ruby-value">0</span>, <span class="ruby-value">8</span>, <span class="ruby-value">24</span>, <span class="ruby-value">0</span> ]
|
|
1077
|
+
212:
|
|
1078
|
+
213: <span class="ruby-identifier">i</span> = <span class="ruby-value">0</span>
|
|
1079
|
+
214: <span class="ruby-identifier">shortest</span> = <span class="ruby-keyword kw">nil</span>
|
|
1080
|
+
215: <span class="ruby-identifier">factors</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">factor</span><span class="ruby-operator">|</span>
|
|
1081
|
+
216: <span class="ruby-identifier">scaledValue</span> = <span class="ruby-identifier">value</span> * <span class="ruby-identifier">factor</span>
|
|
1082
|
+
217: <span class="ruby-identifier">str</span> = <span class="ruby-identifier">numberFormat</span>.<span class="ruby-identifier">format</span>(<span class="ruby-identifier">scaledValue</span>)
|
|
1083
|
+
218: <span class="ruby-comment cmt"># We ignore results that are 0 or exceed the maximum. To ensure that</span>
|
|
1084
|
+
219: <span class="ruby-comment cmt"># we have at least one result the unscaled value is always taken.</span>
|
|
1085
|
+
220: <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">factor</span> <span class="ruby-operator">!=</span> <span class="ruby-value">1.0</span> <span class="ruby-operator">&&</span> <span class="ruby-identifier">scaledValue</span> <span class="ruby-operator">==</span> <span class="ruby-value">0</span>) <span class="ruby-operator">||</span>
|
|
1086
|
+
221: (<span class="ruby-identifier">max</span>[<span class="ruby-identifier">i</span>] <span class="ruby-operator">!=</span> <span class="ruby-value">0</span> <span class="ruby-operator">&&</span> <span class="ruby-identifier">scaledValue</span> <span class="ruby-operator">></span> <span class="ruby-identifier">max</span>[<span class="ruby-identifier">i</span>])
|
|
1087
|
+
222: <span class="ruby-identifier">options</span> <span class="ruby-operator"><<</span> <span class="ruby-keyword kw">nil</span>
|
|
1088
|
+
223: <span class="ruby-keyword kw">else</span>
|
|
1089
|
+
224: <span class="ruby-identifier">options</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">str</span>
|
|
1090
|
+
225: <span class="ruby-keyword kw">end</span>
|
|
1091
|
+
226: <span class="ruby-identifier">i</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
|
|
1092
|
+
227: <span class="ruby-keyword kw">end</span>
|
|
1093
|
+
228:
|
|
1094
|
+
229: <span class="ruby-comment cmt"># Default to days in case they are all the same.</span>
|
|
1095
|
+
230: <span class="ruby-identifier">shortest</span> = <span class="ruby-value">2</span>
|
|
1096
|
+
231: <span class="ruby-comment cmt"># Find the shortest option.</span>
|
|
1097
|
+
232: <span class="ruby-value">6</span>.<span class="ruby-identifier">times</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">j</span><span class="ruby-operator">|</span>
|
|
1098
|
+
233: <span class="ruby-identifier">shortest</span> = <span class="ruby-identifier">j</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">options</span>[<span class="ruby-identifier">j</span>] <span class="ruby-operator">&&</span>
|
|
1099
|
+
234: <span class="ruby-identifier">options</span>[<span class="ruby-identifier">j</span>].<span class="ruby-identifier">length</span> <span class="ruby-operator"><</span> <span class="ruby-identifier">options</span>[<span class="ruby-identifier">shortest</span>].<span class="ruby-identifier">length</span>
|
|
1100
|
+
235: <span class="ruby-keyword kw">end</span>
|
|
1101
|
+
236:
|
|
1102
|
+
237: <span class="ruby-identifier">str</span> = <span class="ruby-identifier">options</span>[<span class="ruby-identifier">shortest</span>]
|
|
1103
|
+
238: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">loadUnit</span> <span class="ruby-operator">==</span> <span class="ruby-value">:longauto</span>
|
|
1104
|
+
239: <span class="ruby-comment cmt"># For the long units we handle singular and plural properly. For</span>
|
|
1105
|
+
240: <span class="ruby-comment cmt"># English we just need to append an 's', but this code will work for</span>
|
|
1106
|
+
241: <span class="ruby-comment cmt"># other languages as well.</span>
|
|
1107
|
+
242: <span class="ruby-identifier">units</span> = []
|
|
1108
|
+
243: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">str</span> <span class="ruby-operator">==</span> <span class="ruby-value str">"1"</span>
|
|
1109
|
+
244: <span class="ruby-identifier">units</span> = <span class="ruby-node">%( minute hour day week month year )</span>
|
|
1110
|
+
245: <span class="ruby-keyword kw">else</span>
|
|
1111
|
+
246: <span class="ruby-identifier">units</span> = <span class="ruby-node">%( minutes hours days weeks months years )</span>
|
|
1112
|
+
247: <span class="ruby-keyword kw">end</span>
|
|
1113
|
+
248: <span class="ruby-identifier">str</span> <span class="ruby-operator">+=</span> <span class="ruby-value str">' '</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">units</span>[<span class="ruby-identifier">shortest</span>]
|
|
1114
|
+
249: <span class="ruby-keyword kw">else</span>
|
|
1115
|
+
250: <span class="ruby-identifier">str</span> <span class="ruby-operator">+=</span> <span class="ruby-node">%( min h d w m y )</span>[<span class="ruby-identifier">shortest</span>]
|
|
1116
|
+
251: <span class="ruby-keyword kw">end</span>
|
|
1117
|
+
252: <span class="ruby-keyword kw">else</span>
|
|
1118
|
+
253: <span class="ruby-comment cmt"># For fixed units we just need to do the conversion. No unit is</span>
|
|
1119
|
+
254: <span class="ruby-comment cmt"># included.</span>
|
|
1120
|
+
255: <span class="ruby-identifier">units</span> = [ <span class="ruby-value">:minutes</span>, <span class="ruby-value">:hours</span>, <span class="ruby-value">:days</span>, <span class="ruby-value">:weeks</span>, <span class="ruby-value">:months</span>, <span class="ruby-value">:years</span> ]
|
|
1121
|
+
256: <span class="ruby-identifier">str</span> = <span class="ruby-identifier">numberFormat</span>.<span class="ruby-identifier">format</span>(<span class="ruby-identifier">value</span> * <span class="ruby-identifier">factors</span>[<span class="ruby-identifier">units</span>.<span class="ruby-identifier">index</span>(<span class="ruby-identifier">loadUnit</span>)])
|
|
1122
|
+
257: <span class="ruby-keyword kw">end</span>
|
|
1123
|
+
258: <span class="ruby-identifier">str</span>
|
|
1124
|
+
259: <span class="ruby-keyword kw">end</span></pre>
|
|
1116
1125
|
</div>
|
|
1117
1126
|
|
|
1118
1127
|
</div>
|
|
@@ -1146,58 +1155,58 @@ of lists.
|
|
|
1146
1155
|
<div class="method-source-code"
|
|
1147
1156
|
id="standard-ilter-ps-source">
|
|
1148
1157
|
<pre>
|
|
1149
|
-
<span class="ruby-comment cmt"># File lib/reports/ReportBase.rb, line
|
|
1150
|
-
|
|
1151
|
-
|
|
1152
|
-
|
|
1153
|
-
|
|
1154
|
-
|
|
1155
|
-
|
|
1156
|
-
|
|
1157
|
-
|
|
1158
|
-
|
|
1159
|
-
|
|
1160
|
-
|
|
1161
|
-
|
|
1162
|
-
|
|
1163
|
-
|
|
1164
|
-
|
|
1165
|
-
|
|
1166
|
-
|
|
1167
|
-
|
|
1168
|
-
|
|
1169
|
-
|
|
1170
|
-
|
|
1171
|
-
|
|
1172
|
-
|
|
1173
|
-
|
|
1174
|
-
|
|
1175
|
-
|
|
1176
|
-
|
|
1177
|
-
|
|
1178
|
-
|
|
1179
|
-
|
|
1180
|
-
|
|
1181
|
-
|
|
1182
|
-
|
|
1183
|
-
|
|
1184
|
-
|
|
1185
|
-
|
|
1186
|
-
|
|
1187
|
-
|
|
1188
|
-
|
|
1189
|
-
|
|
1190
|
-
|
|
1191
|
-
|
|
1192
|
-
|
|
1193
|
-
|
|
1194
|
-
|
|
1195
|
-
|
|
1196
|
-
|
|
1197
|
-
|
|
1198
|
-
|
|
1199
|
-
|
|
1200
|
-
|
|
1158
|
+
<span class="ruby-comment cmt"># File lib/reports/ReportBase.rb, line 144</span>
|
|
1159
|
+
144: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">standardFilterOps</span>(<span class="ruby-identifier">list</span>, <span class="ruby-identifier">hideExpr</span>, <span class="ruby-identifier">rollupExpr</span>, <span class="ruby-identifier">openNodes</span>, <span class="ruby-identifier">scopeProperty</span>,
|
|
1160
|
+
145: <span class="ruby-identifier">root</span>)
|
|
1161
|
+
146: <span class="ruby-comment cmt"># Make a copy of the current Query.</span>
|
|
1162
|
+
147: <span class="ruby-identifier">query</span> = <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">reportContexts</span>.<span class="ruby-identifier">last</span>.<span class="ruby-identifier">query</span>.<span class="ruby-identifier">dup</span>
|
|
1163
|
+
148: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">scopeProperty</span> = <span class="ruby-identifier">scopeProperty</span>
|
|
1164
|
+
149:
|
|
1165
|
+
150: <span class="ruby-comment cmt"># Remove all properties that the user wants to have hidden.</span>
|
|
1166
|
+
151: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">hideExpr</span>
|
|
1167
|
+
152: <span class="ruby-identifier">list</span>.<span class="ruby-identifier">delete_if</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">property</span><span class="ruby-operator">|</span>
|
|
1168
|
+
153: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">property</span> = <span class="ruby-identifier">property</span>
|
|
1169
|
+
154: <span class="ruby-identifier">hideExpr</span>.<span class="ruby-identifier">eval</span>(<span class="ruby-identifier">query</span>)
|
|
1170
|
+
155: <span class="ruby-keyword kw">end</span>
|
|
1171
|
+
156: <span class="ruby-keyword kw">end</span>
|
|
1172
|
+
157:
|
|
1173
|
+
158: <span class="ruby-comment cmt"># Remove all children of properties that the user has rolled-up.</span>
|
|
1174
|
+
159: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">rollupExpr</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">openNodes</span>
|
|
1175
|
+
160: <span class="ruby-identifier">list</span>.<span class="ruby-identifier">delete_if</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">property</span><span class="ruby-operator">|</span>
|
|
1176
|
+
161: <span class="ruby-identifier">parent</span> = <span class="ruby-identifier">property</span>.<span class="ruby-identifier">parent</span>
|
|
1177
|
+
162: <span class="ruby-identifier">delete</span> = <span class="ruby-keyword kw">false</span>
|
|
1178
|
+
163: <span class="ruby-keyword kw">while</span> (<span class="ruby-identifier">parent</span>)
|
|
1179
|
+
164: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">property</span> = <span class="ruby-identifier">parent</span>
|
|
1180
|
+
165: <span class="ruby-comment cmt"># If openNodes is not nil, only the listed nodes will be unrolled.</span>
|
|
1181
|
+
166: <span class="ruby-comment cmt"># If openNodes is nil, only the nodes that match rollupExpr will</span>
|
|
1182
|
+
167: <span class="ruby-comment cmt"># not be unrolled.</span>
|
|
1183
|
+
168: <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">openNodes</span> <span class="ruby-operator">&&</span> <span class="ruby-operator">!</span><span class="ruby-identifier">openNodes</span>.<span class="ruby-identifier">include?</span>([ <span class="ruby-identifier">parent</span>, <span class="ruby-identifier">scopeProperty</span> ])) <span class="ruby-operator">||</span>
|
|
1184
|
+
169: (<span class="ruby-operator">!</span><span class="ruby-identifier">openNodes</span> <span class="ruby-operator">&&</span> <span class="ruby-identifier">rollupExpr</span>.<span class="ruby-identifier">eval</span>(<span class="ruby-identifier">query</span>))
|
|
1185
|
+
170: <span class="ruby-identifier">delete</span> = <span class="ruby-keyword kw">true</span>
|
|
1186
|
+
171: <span class="ruby-keyword kw">break</span>
|
|
1187
|
+
172: <span class="ruby-keyword kw">end</span>
|
|
1188
|
+
173: <span class="ruby-identifier">parent</span> = <span class="ruby-identifier">parent</span>.<span class="ruby-identifier">parent</span>
|
|
1189
|
+
174: <span class="ruby-keyword kw">end</span>
|
|
1190
|
+
175: <span class="ruby-identifier">delete</span>
|
|
1191
|
+
176: <span class="ruby-keyword kw">end</span>
|
|
1192
|
+
177: <span class="ruby-keyword kw">end</span>
|
|
1193
|
+
178:
|
|
1194
|
+
179: <span class="ruby-comment cmt"># Re-add parents in tree mode</span>
|
|
1195
|
+
180: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">list</span>.<span class="ruby-identifier">treeMode?</span>
|
|
1196
|
+
181: <span class="ruby-identifier">parents</span> = []
|
|
1197
|
+
182: <span class="ruby-identifier">list</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">property</span><span class="ruby-operator">|</span>
|
|
1198
|
+
183: <span class="ruby-identifier">parent</span> = <span class="ruby-identifier">property</span>
|
|
1199
|
+
184: <span class="ruby-keyword kw">while</span> (<span class="ruby-identifier">parent</span> = <span class="ruby-identifier">parent</span>.<span class="ruby-identifier">parent</span>)
|
|
1200
|
+
185: <span class="ruby-identifier">parents</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">parent</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">list</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">parent</span>) <span class="ruby-operator">||</span>
|
|
1201
|
+
186: <span class="ruby-identifier">parents</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">parent</span>)
|
|
1202
|
+
187: <span class="ruby-keyword kw">break</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">parent</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">root</span>
|
|
1203
|
+
188: <span class="ruby-keyword kw">end</span>
|
|
1204
|
+
189: <span class="ruby-keyword kw">end</span>
|
|
1205
|
+
190: <span class="ruby-identifier">list</span>.<span class="ruby-identifier">append</span>(<span class="ruby-identifier">parents</span>)
|
|
1206
|
+
191: <span class="ruby-keyword kw">end</span>
|
|
1207
|
+
192:
|
|
1208
|
+
193: <span class="ruby-identifier">list</span>
|
|
1209
|
+
194: <span class="ruby-keyword kw">end</span></pre>
|
|
1201
1210
|
</div>
|
|
1202
1211
|
|
|
1203
1212
|
</div>
|