taskjuggler 0.1.1 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/CHANGELOG +37 -5
- data/README.rdoc +4 -2
- data/benchmarks/UTF-8-Strings.rb +58 -0
- data/benchmarks/css/tjmanual.css +0 -1
- data/benchmarks/htmltaskreport-1.html +47702 -0
- data/benchmarks/htmltaskreport-2.html +23345 -0
- data/benchmarks/htmltaskreport-3.html +23265 -0
- data/benchmarks/htmltaskreport-4.html +22135 -0
- data/benchmarks/profile.clt +36082 -0
- data/benchmarks/tj3.profile +0 -0
- data/benchmarks/tj3.profile.grind +6185 -0
- data/benchmarks/tj3.profile.symbols +432 -0
- data/benchmarks/tj3.profile.txt +448 -0
- data/data/tjp.vim +689 -0
- data/doc/AppConfig.html +26 -2
- data/doc/CHANGELOG.html +60 -8
- data/doc/COPYING.html +26 -2
- data/doc/Diff/Hunk.html +26 -2
- data/doc/Diff.html +26 -2
- data/doc/Diffable.html +26 -2
- data/doc/DiffableString.html +26 -2
- data/doc/Object.html +26 -104
- data/doc/README_rdoc.html +39 -7
- data/doc/RuntimeConfig.html +26 -2
- data/doc/String.html +26 -2
- data/doc/TaskJuggler/Account.html +27 -3
- data/doc/TaskJuggler/AccountAttribute.html +30 -6
- data/doc/TaskJuggler/AccountScenario.html +28 -4
- data/doc/TaskJuggler/Allocation.html +33 -9
- data/doc/TaskJuggler/AllocationAttribute.html +31 -7
- data/doc/TaskJuggler/AttributeBase.html +162 -111
- data/doc/TaskJuggler/AttributeDefinition.html +26 -2
- data/doc/TaskJuggler/AttributeOverwrite.html +26 -2
- data/doc/TaskJuggler/BatchProcessor.html +26 -2
- data/doc/TaskJuggler/Booking.html +29 -5
- data/doc/TaskJuggler/BookingListAttribute.html +29 -5
- data/doc/TaskJuggler/BooleanAttribute.html +30 -6
- data/doc/TaskJuggler/CSVFile.html +26 -2
- data/doc/TaskJuggler/CellSettingPattern.html +26 -2
- data/doc/TaskJuggler/CellSettingPatternList.html +26 -2
- data/doc/TaskJuggler/Charge.html +30 -6
- data/doc/TaskJuggler/ChargeListAttribute.html +29 -5
- data/doc/TaskJuggler/ChargeSet.html +26 -2
- data/doc/TaskJuggler/ChargeSetListAttribute.html +30 -6
- data/doc/TaskJuggler/CollisionDetector.html +26 -2
- data/doc/TaskJuggler/ColumnListAttribute.html +28 -4
- data/doc/TaskJuggler/ColumnTable.html +26 -2
- data/doc/TaskJuggler/Daemon.html +26 -2
- data/doc/TaskJuggler/DataCache.html +26 -2
- data/doc/TaskJuggler/DataCacheEntry.html +26 -2
- data/doc/TaskJuggler/DateAttribute.html +30 -6
- data/doc/TaskJuggler/DefinitionListAttribute.html +28 -4
- data/doc/TaskJuggler/DependencyListAttribute.html +30 -6
- data/doc/TaskJuggler/DurationAttribute.html +31 -7
- data/doc/TaskJuggler/FileList.html +26 -2
- data/doc/TaskJuggler/FileRecord.html +26 -2
- data/doc/TaskJuggler/FixnumAttribute.html +28 -4
- data/doc/TaskJuggler/FlagListAttribute.html +30 -6
- data/doc/TaskJuggler/FloatAttribute.html +29 -5
- data/doc/TaskJuggler/FormatListAttribute.html +29 -5
- data/doc/TaskJuggler/GanttChart.html +26 -2
- data/doc/TaskJuggler/GanttContainer.html +26 -2
- data/doc/TaskJuggler/GanttHeader.html +26 -2
- data/doc/TaskJuggler/GanttHeaderScaleItem.html +26 -2
- data/doc/TaskJuggler/GanttLine.html +27 -3
- data/doc/TaskJuggler/GanttLoadStack.html +26 -2
- data/doc/TaskJuggler/GanttMilestone.html +26 -2
- data/doc/TaskJuggler/GanttRouter.html +26 -2
- data/doc/TaskJuggler/GanttTaskBar.html +26 -2
- data/doc/TaskJuggler/HTMLDocument.html +26 -2
- data/doc/TaskJuggler/HTMLElements.html +623 -0
- data/doc/TaskJuggler/HTMLGraphics.html +26 -2
- data/doc/TaskJuggler/ICalReport.html +864 -0
- data/doc/TaskJuggler/ICalendar/Component.html +969 -0
- data/doc/TaskJuggler/ICalendar/Event.html +742 -0
- data/doc/TaskJuggler/ICalendar/Journal.html +722 -0
- data/doc/TaskJuggler/ICalendar/Person.html +633 -0
- data/doc/TaskJuggler/ICalendar/Todo.html +789 -0
- data/doc/TaskJuggler/ICalendar.html +1035 -0
- data/doc/TaskJuggler/Interval.html +99 -172
- data/doc/TaskJuggler/IntervalList.html +31 -7
- data/doc/TaskJuggler/JobInfo.html +26 -2
- data/doc/TaskJuggler/Journal.html +26 -2
- data/doc/TaskJuggler/JournalEntry.html +26 -2
- data/doc/TaskJuggler/JournalEntryList.html +26 -2
- data/doc/TaskJuggler/KeywordArray.html +26 -2
- data/doc/TaskJuggler/KeywordDocumentation.html +26 -2
- data/doc/TaskJuggler/Limits/Limit.html +124 -49
- data/doc/TaskJuggler/Limits.html +139 -156
- data/doc/TaskJuggler/LimitsAttribute.html +39 -14
- data/doc/TaskJuggler/ListAttributeBase.html +35 -11
- data/doc/TaskJuggler/Log.html +26 -2
- data/doc/TaskJuggler/LogFile.html +26 -2
- data/doc/TaskJuggler/LogicalAttribute.html +26 -2
- data/doc/TaskJuggler/LogicalExpression.html +26 -2
- data/doc/TaskJuggler/LogicalExpressionAttribute.html +35 -11
- data/doc/TaskJuggler/LogicalExpressionListAttribute.html +35 -11
- data/doc/TaskJuggler/LogicalFlag.html +26 -2
- data/doc/TaskJuggler/LogicalFunction.html +28 -4
- data/doc/TaskJuggler/LogicalOperation.html +26 -2
- data/doc/TaskJuggler/ManagerResponsibilities.html +26 -2
- data/doc/TaskJuggler/ManagerStatusRecord.html +26 -2
- data/doc/TaskJuggler/Message.html +26 -2
- data/doc/TaskJuggler/MessageHandler.html +108 -62
- data/doc/TaskJuggler/Navigator.html +26 -2
- data/doc/TaskJuggler/NavigatorElement.html +26 -2
- data/doc/TaskJuggler/NikuProject.html +26 -2
- data/doc/TaskJuggler/NikuReport.html +27 -3
- data/doc/TaskJuggler/NikuResource.html +26 -2
- data/doc/TaskJuggler/NodeListAttribute.html +31 -7
- data/doc/TaskJuggler/PlaceHolderCell.html +26 -2
- data/doc/TaskJuggler/ProcessIntercom.html +26 -2
- data/doc/TaskJuggler/ProcessIntercomIface.html +26 -2
- data/doc/TaskJuggler/Project.html +1236 -973
- data/doc/TaskJuggler/ProjectBroker.html +26 -2
- data/doc/TaskJuggler/ProjectBrokerIface.html +26 -2
- data/doc/TaskJuggler/ProjectFileParser.html +29 -4
- data/doc/TaskJuggler/ProjectFileScanner.html +56 -31
- data/doc/TaskJuggler/ProjectRecord.html +26 -2
- data/doc/TaskJuggler/ProjectServer.html +26 -2
- data/doc/TaskJuggler/ProjectServerIface.html +26 -2
- data/doc/TaskJuggler/PropertyAttribute.html +35 -11
- data/doc/TaskJuggler/PropertyList.html +26 -2
- data/doc/TaskJuggler/PropertySet.html +126 -106
- data/doc/TaskJuggler/PropertyTreeNode.html +595 -551
- data/doc/TaskJuggler/Query.html +127 -100
- data/doc/TaskJuggler/RTFHandlers.html +26 -2
- data/doc/TaskJuggler/RTFNavigator.html +26 -2
- data/doc/TaskJuggler/RTFQuery.html +28 -4
- data/doc/TaskJuggler/RTFReport.html +26 -2
- data/doc/TaskJuggler/RTFReportLink.html +26 -2
- data/doc/TaskJuggler/RTFWithQuerySupport.html +26 -2
- data/doc/TaskJuggler/RealFormat.html +26 -2
- data/doc/TaskJuggler/RealFormatAttribute.html +31 -7
- data/doc/TaskJuggler/ReferenceAttribute.html +58 -34
- data/doc/TaskJuggler/Report.html +427 -284
- data/doc/TaskJuggler/ReportBase.html +28 -102
- data/doc/TaskJuggler/ReportContext.html +26 -2
- data/doc/TaskJuggler/ReportScenario.html +633 -0
- data/doc/TaskJuggler/ReportServer.html +26 -2
- data/doc/TaskJuggler/ReportServerIface.html +26 -2
- data/doc/TaskJuggler/ReportServerRecord.html +26 -2
- data/doc/TaskJuggler/ReportServlet.html +26 -2
- data/doc/TaskJuggler/ReportTable.html +26 -2
- data/doc/TaskJuggler/ReportTableCell.html +26 -2
- data/doc/TaskJuggler/ReportTableColumn.html +26 -2
- data/doc/TaskJuggler/ReportTableLegend.html +26 -2
- data/doc/TaskJuggler/ReportTableLine.html +26 -2
- data/doc/TaskJuggler/Resource.html +225 -163
- data/doc/TaskJuggler/ResourceListAttribute.html +71 -47
- data/doc/TaskJuggler/ResourceListRE.html +26 -2
- data/doc/TaskJuggler/ResourceScenario.html +645 -603
- data/doc/TaskJuggler/RichText.html +26 -2
- data/doc/TaskJuggler/RichTextAttribute.html +53 -29
- data/doc/TaskJuggler/RichTextDocument.html +26 -2
- data/doc/TaskJuggler/RichTextElement.html +26 -2
- data/doc/TaskJuggler/RichTextFunctionExample.html +26 -2
- data/doc/TaskJuggler/RichTextFunctionHandler.html +26 -2
- data/doc/TaskJuggler/RichTextImage.html +26 -2
- data/doc/TaskJuggler/RichTextIntermediate.html +29 -5
- data/doc/TaskJuggler/RichTextParser.html +26 -2
- data/doc/TaskJuggler/RichTextScanner.html +26 -2
- data/doc/TaskJuggler/RichTextSnip.html +26 -2
- data/doc/TaskJuggler/RichTextSyntaxRules.html +26 -2
- data/doc/TaskJuggler/Scenario.html +26 -2
- data/doc/TaskJuggler/ScenarioData.html +95 -28
- data/doc/TaskJuggler/ScenarioListAttribute.html +39 -15
- data/doc/TaskJuggler/Scoreboard.html +137 -73
- data/doc/TaskJuggler/ScoreboardInterval.html +1116 -0
- data/doc/TaskJuggler/SheetHandlerBase.html +26 -2
- data/doc/TaskJuggler/SheetReceiver.html +26 -2
- data/doc/TaskJuggler/SheetSender.html +26 -2
- data/doc/TaskJuggler/Shift.html +27 -3
- data/doc/TaskJuggler/ShiftAssignment.html +27 -3
- data/doc/TaskJuggler/ShiftAssignments.html +174 -149
- data/doc/TaskJuggler/ShiftAssignmentsAttribute.html +41 -16
- data/doc/TaskJuggler/ShiftScenario.html +26 -2
- data/doc/TaskJuggler/SimpleQueryExpander.html +26 -2
- data/doc/TaskJuggler/SortListAttribute.html +35 -11
- data/doc/TaskJuggler/StatusSheetReceiver.html +26 -2
- data/doc/TaskJuggler/StatusSheetReport.html +26 -2
- data/doc/TaskJuggler/StatusSheetSender.html +26 -2
- data/doc/TaskJuggler/StdIoWrapper.html +26 -2
- data/doc/TaskJuggler/StringAttribute.html +39 -15
- data/doc/TaskJuggler/SymbolAttribute.html +35 -11
- data/doc/TaskJuggler/SyntaxReference.html +26 -2
- data/doc/TaskJuggler/TOCEntry.html +26 -2
- data/doc/TaskJuggler/TSResourceRecord.html +26 -2
- data/doc/TaskJuggler/TSTaskRecord.html +26 -2
- data/doc/TaskJuggler/TableColumnDefinition.html +26 -2
- data/doc/TaskJuggler/TableOfContents.html +26 -2
- data/doc/TaskJuggler/TableReport.html +239 -214
- data/doc/TaskJuggler/TagFile/TagFileEntry.html +841 -0
- data/doc/TaskJuggler/TagFile.html +817 -0
- data/doc/TaskJuggler/Task.html +27 -3
- data/doc/TaskJuggler/TaskDepListAttribute.html +47 -23
- data/doc/TaskJuggler/TaskDependency.html +26 -2
- data/doc/TaskJuggler/TaskListAttribute.html +47 -23
- data/doc/TaskJuggler/TaskListRE.html +26 -2
- data/doc/TaskJuggler/TaskScenario.html +2235 -2178
- data/doc/TaskJuggler/TernarySearchTree.html +26 -2
- data/doc/TaskJuggler/TextFormatter.html +26 -2
- data/doc/TaskJuggler/TextParser/Macro.html +26 -2
- data/doc/TaskJuggler/TextParser/MacroTable.html +26 -2
- data/doc/TaskJuggler/TextParser/Pattern.html +26 -2
- data/doc/TaskJuggler/TextParser/Rule.html +26 -2
- data/doc/TaskJuggler/TextParser/Scanner/BufferStreamHandle.html +32 -8
- data/doc/TaskJuggler/TextParser/Scanner/FileStreamHandle.html +39 -15
- data/doc/TaskJuggler/TextParser/Scanner/MacroStackEntry.html +26 -2
- data/doc/TaskJuggler/TextParser/Scanner/StreamHandle.html +119 -86
- data/doc/TaskJuggler/TextParser/Scanner.html +317 -291
- data/doc/TaskJuggler/TextParser/SourceFileInfo.html +26 -2
- data/doc/TaskJuggler/TextParser/StackElement.html +26 -2
- data/doc/TaskJuggler/TextParser/State.html +26 -2
- data/doc/TaskJuggler/TextParser/StateTransition.html +26 -2
- data/doc/TaskJuggler/TextParser/TextParserResultArray.html +26 -2
- data/doc/TaskJuggler/TextParser/TokenDoc.html +26 -2
- data/doc/TaskJuggler/TextParser.html +85 -61
- data/doc/TaskJuggler/TextReport.html +26 -2
- data/doc/TaskJuggler/TimeInterval.html +841 -0
- data/doc/TaskJuggler/{IntervalListAttribute.html → TimeIntervalListAttribute.html} +33 -9
- data/doc/TaskJuggler/TimeSheet.html +26 -2
- data/doc/TaskJuggler/TimeSheetReceiver.html +26 -2
- data/doc/TaskJuggler/TimeSheetRecord.html +27 -3
- data/doc/TaskJuggler/TimeSheetReport.html +29 -5
- data/doc/TaskJuggler/TimeSheetSender.html +26 -2
- data/doc/TaskJuggler/TimeSheetSummary.html +26 -2
- data/doc/TaskJuggler/TimeSheets.html +26 -2
- data/doc/TaskJuggler/Tj3.html +150 -111
- data/doc/TaskJuggler/Tj3AppBase.html +26 -2
- data/doc/TaskJuggler/Tj3Client.html +26 -2
- data/doc/TaskJuggler/Tj3Daemon.html +26 -2
- data/doc/TaskJuggler/Tj3Man.html +26 -2
- data/doc/TaskJuggler/Tj3SheetAppBase.html +26 -2
- data/doc/TaskJuggler/Tj3SsReceiver.html +26 -2
- data/doc/TaskJuggler/Tj3SsSender.html +26 -2
- data/doc/TaskJuggler/Tj3TsReceiver.html +26 -2
- data/doc/TaskJuggler/Tj3TsSender.html +26 -2
- data/doc/TaskJuggler/Tj3TsSummary.html +26 -2
- data/doc/TaskJuggler/TjException.html +26 -2
- data/doc/TaskJuggler/TjRuntimeError.html +26 -2
- data/doc/TaskJuggler/TjTime.html +539 -477
- data/doc/TaskJuggler/TjpExample.html +26 -2
- data/doc/TaskJuggler/TjpExportRE.html +240 -161
- data/doc/TaskJuggler/TjpSyntaxRules.html +4236 -3844
- data/doc/TaskJuggler/URLParameter.html +26 -2
- data/doc/TaskJuggler/UserManual.html +26 -2
- data/doc/TaskJuggler/VimSyntax.html +31 -7
- data/doc/TaskJuggler/WebServer.html +26 -2
- data/doc/TaskJuggler/WelcomePage.html +26 -2
- data/doc/TaskJuggler/WorkingHours.html +227 -152
- data/doc/TaskJuggler/WorkingHoursAttribute.html +62 -38
- data/doc/TaskJuggler/XMLBlob.html +26 -2
- data/doc/TaskJuggler/XMLComment.html +26 -2
- data/doc/TaskJuggler/XMLDocument.html +26 -2
- data/doc/TaskJuggler/XMLElement.html +26 -2
- data/doc/TaskJuggler/XMLNamedText.html +26 -2
- data/doc/TaskJuggler/XMLText.html +26 -2
- data/doc/TaskJuggler.html +486 -427
- data/doc/index.html +801 -659
- data/doc/lib/taskjuggler/AccountScenario_rb.html +1 -1
- data/doc/lib/taskjuggler/Account_rb.html +1 -1
- data/doc/lib/taskjuggler/AlgorithmDiff_rb.html +1 -1
- data/doc/lib/taskjuggler/Allocation_rb.html +1 -1
- data/doc/lib/taskjuggler/AppConfig_rb.html +1 -1
- data/doc/lib/taskjuggler/AttributeBase_rb.html +1 -1
- data/doc/lib/taskjuggler/AttributeDefinition_rb.html +1 -1
- data/doc/lib/taskjuggler/Attributes_rb.html +1 -1
- data/doc/lib/taskjuggler/BatchProcessor_rb.html +1 -1
- data/doc/lib/taskjuggler/Booking_rb.html +1 -1
- data/doc/lib/taskjuggler/ChargeSet_rb.html +1 -1
- data/doc/lib/taskjuggler/Charge_rb.html +1 -1
- data/doc/lib/taskjuggler/DataCache_rb.html +1 -1
- data/doc/lib/taskjuggler/FileList_rb.html +1 -1
- data/doc/lib/taskjuggler/HTMLDocument_rb.html +1 -1
- data/doc/lib/{ruby-signal-bug_rb.html → taskjuggler/HTMLElements_rb.html} +9 -9
- data/doc/lib/{exchangebug_rb.html → taskjuggler/ICalendar_rb.html} +9 -9
- data/doc/lib/taskjuggler/IntervalList_rb.html +1 -1
- data/doc/lib/taskjuggler/Interval_rb.html +1 -1
- data/doc/lib/taskjuggler/Journal_rb.html +1 -1
- data/doc/lib/taskjuggler/KeywordArray_rb.html +1 -1
- data/doc/lib/taskjuggler/KeywordDocumentation_rb.html +1 -1
- data/doc/lib/taskjuggler/Limits_rb.html +1 -1
- data/doc/lib/taskjuggler/LogFile_rb.html +1 -1
- data/doc/lib/taskjuggler/Log_rb.html +1 -1
- data/doc/lib/taskjuggler/LogicalExpression_rb.html +1 -1
- data/doc/lib/taskjuggler/LogicalFunction_rb.html +1 -1
- data/doc/lib/taskjuggler/LogicalOperation_rb.html +1 -1
- data/doc/lib/taskjuggler/MessageHandler_rb.html +1 -1
- data/doc/lib/taskjuggler/ProjectFileParser_rb.html +1 -1
- data/doc/lib/taskjuggler/ProjectFileScanner_rb.html +1 -1
- data/doc/lib/taskjuggler/Project_rb.html +1 -1
- data/doc/lib/taskjuggler/PropertyList_rb.html +1 -1
- data/doc/lib/taskjuggler/PropertySet_rb.html +1 -1
- data/doc/lib/taskjuggler/PropertyTreeNode_rb.html +1 -1
- data/doc/lib/taskjuggler/Query_rb.html +1 -1
- data/doc/lib/taskjuggler/RealFormat_rb.html +1 -1
- data/doc/lib/taskjuggler/ResourceScenario_rb.html +1 -1
- data/doc/lib/taskjuggler/Resource_rb.html +1 -1
- data/doc/lib/taskjuggler/RichText/Document_rb.html +1 -1
- data/doc/lib/taskjuggler/RichText/Element_rb.html +1 -1
- data/doc/lib/taskjuggler/RichText/FunctionExample_rb.html +1 -1
- data/doc/lib/taskjuggler/RichText/FunctionHandler_rb.html +1 -1
- data/doc/lib/taskjuggler/RichText/Parser_rb.html +1 -1
- data/doc/lib/taskjuggler/RichText/RTFHandlers_rb.html +1 -1
- data/doc/lib/taskjuggler/RichText/RTFNavigator_rb.html +1 -1
- data/doc/lib/taskjuggler/RichText/RTFQuery_rb.html +1 -1
- data/doc/lib/taskjuggler/RichText/RTFReportLink_rb.html +1 -1
- data/doc/lib/taskjuggler/RichText/RTFReport_rb.html +1 -1
- data/doc/lib/taskjuggler/RichText/RTFWithQuerySupport_rb.html +1 -1
- data/doc/lib/taskjuggler/RichText/Scanner_rb.html +1 -1
- data/doc/lib/taskjuggler/RichText/Snip_rb.html +1 -1
- data/doc/lib/taskjuggler/RichText/SyntaxRules_rb.html +1 -1
- data/doc/lib/taskjuggler/RichText/TOCEntry_rb.html +1 -1
- data/doc/lib/taskjuggler/RichText/TableOfContents_rb.html +1 -1
- data/doc/lib/taskjuggler/RichText_rb.html +1 -1
- data/doc/lib/taskjuggler/RuntimeConfig_rb.html +1 -1
- data/doc/lib/taskjuggler/ScenarioData_rb.html +1 -1
- data/doc/lib/taskjuggler/Scenario_rb.html +1 -1
- data/doc/lib/taskjuggler/Scoreboard_rb.html +1 -1
- data/doc/lib/taskjuggler/SheetHandlerBase_rb.html +1 -1
- data/doc/lib/taskjuggler/SheetReceiver_rb.html +1 -1
- data/doc/lib/taskjuggler/SheetSender_rb.html +1 -1
- data/doc/lib/taskjuggler/ShiftAssignments_rb.html +1 -1
- data/doc/lib/taskjuggler/ShiftScenario_rb.html +1 -1
- data/doc/lib/taskjuggler/Shift_rb.html +1 -1
- data/doc/lib/taskjuggler/SimpleQueryExpander_rb.html +1 -1
- data/doc/lib/taskjuggler/StatusSheetReceiver_rb.html +1 -1
- data/doc/lib/taskjuggler/StatusSheetSender_rb.html +1 -1
- data/doc/lib/taskjuggler/StdIoWrapper_rb.html +1 -1
- data/doc/lib/taskjuggler/SyntaxReference_rb.html +1 -1
- data/doc/lib/taskjuggler/TableColumnDefinition_rb.html +1 -1
- data/doc/lib/taskjuggler/TaskDependency_rb.html +1 -1
- data/doc/lib/taskjuggler/TaskJuggler_rb.html +1 -1
- data/doc/lib/taskjuggler/TaskScenario_rb.html +1 -1
- data/doc/lib/taskjuggler/Task_rb.html +1 -1
- data/doc/lib/taskjuggler/TernarySearchTree_rb.html +1 -1
- data/doc/lib/taskjuggler/TextFormatter_rb.html +1 -1
- data/doc/lib/taskjuggler/TextParser/MacroTable_rb.html +1 -1
- data/doc/lib/taskjuggler/TextParser/Pattern_rb.html +1 -1
- data/doc/lib/taskjuggler/TextParser/Rule_rb.html +1 -1
- data/doc/lib/taskjuggler/TextParser/Scanner_rb.html +1 -1
- data/doc/lib/taskjuggler/TextParser/SourceFileInfo_rb.html +1 -1
- data/doc/lib/taskjuggler/TextParser/StackElement_rb.html +1 -1
- data/doc/lib/taskjuggler/TextParser/State_rb.html +1 -1
- data/doc/lib/taskjuggler/TextParser/TokenDoc_rb.html +1 -1
- data/doc/lib/taskjuggler/TextParser_rb.html +1 -1
- data/doc/lib/taskjuggler/TimeSheetReceiver_rb.html +1 -1
- data/doc/lib/taskjuggler/TimeSheetSender_rb.html +1 -1
- data/doc/lib/taskjuggler/TimeSheetSummary_rb.html +1 -1
- data/doc/lib/taskjuggler/TimeSheets_rb.html +1 -1
- data/doc/lib/taskjuggler/Tj3AppBase_rb.html +1 -1
- data/doc/lib/taskjuggler/Tj3Config_rb.html +1 -1
- data/doc/lib/taskjuggler/Tj3SheetAppBase_rb.html +1 -1
- data/doc/lib/taskjuggler/TjException_rb.html +1 -1
- data/doc/lib/taskjuggler/TjTime_rb.html +1 -1
- data/doc/lib/taskjuggler/TjpExample_rb.html +1 -1
- data/doc/lib/taskjuggler/TjpSyntaxRules_rb.html +1 -1
- data/doc/lib/taskjuggler/URLParameter_rb.html +1 -1
- data/doc/lib/taskjuggler/UTF8String_rb.html +1 -1
- data/doc/lib/taskjuggler/UserManual_rb.html +1 -1
- data/doc/lib/taskjuggler/VimSyntax_rb.html +1 -1
- data/doc/lib/taskjuggler/WorkingHours_rb.html +1 -1
- data/doc/lib/taskjuggler/XMLDocument_rb.html +1 -1
- data/doc/lib/taskjuggler/XMLElement_rb.html +1 -1
- data/doc/lib/taskjuggler/apps/Tj3Client_rb.html +1 -1
- data/doc/lib/taskjuggler/apps/Tj3Daemon_rb.html +1 -1
- data/doc/lib/taskjuggler/apps/Tj3Man_rb.html +1 -1
- data/doc/lib/taskjuggler/apps/Tj3SsReceiver_rb.html +1 -1
- data/doc/lib/taskjuggler/apps/Tj3SsSender_rb.html +1 -1
- data/doc/lib/taskjuggler/apps/Tj3TsReceiver_rb.html +1 -1
- data/doc/lib/taskjuggler/apps/Tj3TsSender_rb.html +1 -1
- data/doc/lib/taskjuggler/apps/Tj3TsSummary_rb.html +1 -1
- data/doc/lib/taskjuggler/apps/Tj3_rb.html +1 -1
- data/doc/lib/taskjuggler/daemon/Daemon_rb.html +1 -1
- data/doc/lib/taskjuggler/daemon/ProcessIntercom_rb.html +1 -1
- data/doc/lib/taskjuggler/daemon/ProjectBroker_rb.html +1 -1
- data/doc/lib/taskjuggler/daemon/ProjectServer_rb.html +1 -1
- data/doc/lib/taskjuggler/daemon/ReportServer_rb.html +1 -1
- data/doc/lib/taskjuggler/daemon/ReportServlet_rb.html +1 -1
- data/doc/lib/taskjuggler/daemon/WebServer_rb.html +1 -1
- data/doc/lib/taskjuggler/daemon/WelcomePage_rb.html +1 -1
- data/doc/lib/taskjuggler/deep_copy_rb.html +1 -1
- data/doc/lib/taskjuggler/reports/CSVFile_rb.html +1 -1
- data/doc/lib/taskjuggler/reports/CollisionDetector_rb.html +1 -1
- data/doc/lib/taskjuggler/reports/ColumnTable_rb.html +1 -1
- data/doc/lib/taskjuggler/reports/GanttChart_rb.html +1 -1
- data/doc/lib/taskjuggler/reports/GanttContainer_rb.html +1 -1
- data/doc/lib/taskjuggler/reports/GanttHeaderScaleItem_rb.html +1 -1
- data/doc/lib/taskjuggler/reports/GanttHeader_rb.html +1 -1
- data/doc/lib/taskjuggler/reports/GanttLine_rb.html +1 -1
- data/doc/lib/taskjuggler/reports/GanttLoadStack_rb.html +1 -1
- data/doc/lib/taskjuggler/reports/GanttMilestone_rb.html +1 -1
- data/doc/lib/taskjuggler/reports/GanttRouter_rb.html +1 -1
- data/doc/lib/taskjuggler/reports/GanttTaskBar_rb.html +1 -1
- data/doc/lib/taskjuggler/reports/HTMLGraphics_rb.html +1 -1
- data/doc/lib/taskjuggler/reports/ICalReport_rb.html +71 -0
- data/doc/lib/taskjuggler/reports/Navigator_rb.html +1 -1
- data/doc/lib/taskjuggler/reports/NikuReport_rb.html +1 -1
- data/doc/lib/taskjuggler/reports/ReportBase_rb.html +1 -1
- data/doc/lib/taskjuggler/reports/ReportContext_rb.html +1 -1
- data/doc/lib/taskjuggler/reports/ReportTableCell_rb.html +1 -1
- data/doc/lib/taskjuggler/reports/ReportTableColumn_rb.html +1 -1
- data/doc/lib/taskjuggler/reports/ReportTableLegend_rb.html +1 -1
- data/doc/lib/taskjuggler/reports/ReportTableLine_rb.html +1 -1
- data/doc/lib/taskjuggler/reports/ReportTable_rb.html +1 -1
- data/doc/lib/taskjuggler/reports/Report_rb.html +5 -1
- data/doc/lib/taskjuggler/reports/ResourceListRE_rb.html +1 -1
- data/doc/lib/taskjuggler/reports/StatusSheetReport_rb.html +1 -1
- data/doc/lib/taskjuggler/reports/TableReport_rb.html +1 -1
- data/doc/lib/taskjuggler/reports/TagFile_rb.html +71 -0
- data/doc/lib/taskjuggler/reports/TaskListRE_rb.html +1 -1
- data/doc/lib/taskjuggler/reports/TextReport_rb.html +1 -1
- data/doc/lib/taskjuggler/reports/TimeSheetReport_rb.html +1 -1
- data/doc/lib/taskjuggler/reports/TjpExportRE_rb.html +1 -1
- data/doc/lib/tj3_rb.html +1 -1
- data/doc/lib/tj3client_rb.html +1 -1
- data/doc/lib/tj3d_rb.html +1 -1
- data/doc/lib/tj3man_rb.html +1 -1
- data/doc/lib/tj3ss_receiver_rb.html +1 -1
- data/doc/lib/tj3ss_sender_rb.html +1 -1
- data/doc/lib/tj3ts_receiver_rb.html +1 -1
- data/doc/lib/tj3ts_sender_rb.html +1 -1
- data/doc/lib/tj3ts_summary_rb.html +1 -1
- data/lib/taskjuggler/Account.rb +1 -1
- data/lib/taskjuggler/AccountScenario.rb +1 -1
- data/lib/taskjuggler/Allocation.rb +5 -5
- data/lib/taskjuggler/AttributeBase.rb +30 -22
- data/lib/taskjuggler/Attributes.rb +80 -78
- data/lib/taskjuggler/Booking.rb +2 -2
- data/lib/taskjuggler/Charge.rb +3 -3
- data/lib/taskjuggler/ICalendar.rb +251 -0
- data/lib/taskjuggler/Interval.rb +215 -53
- data/lib/taskjuggler/IntervalList.rb +5 -5
- data/lib/taskjuggler/Limits.rb +79 -69
- data/lib/taskjuggler/LogicalFunction.rb +2 -2
- data/lib/taskjuggler/MessageHandler.rb +11 -6
- data/lib/taskjuggler/Project.rb +208 -95
- data/lib/taskjuggler/ProjectFileParser.rb +2 -2
- data/lib/taskjuggler/ProjectFileScanner.rb +7 -6
- data/lib/taskjuggler/PropertySet.rb +1 -5
- data/lib/taskjuggler/PropertyTreeNode.rb +21 -16
- data/lib/taskjuggler/Query.rb +10 -7
- data/lib/taskjuggler/Resource.rb +6 -1
- data/lib/taskjuggler/ResourceScenario.rb +85 -69
- data/lib/taskjuggler/RichText/RTFQuery.rb +2 -2
- data/lib/taskjuggler/ScenarioData.rb +11 -1
- data/lib/taskjuggler/Scoreboard.rb +8 -1
- data/lib/taskjuggler/Shift.rb +1 -1
- data/lib/taskjuggler/ShiftAssignments.rb +22 -20
- data/lib/taskjuggler/Task.rb +1 -1
- data/lib/taskjuggler/TaskJuggler.rb +65 -51
- data/lib/taskjuggler/TaskScenario.rb +486 -419
- data/lib/taskjuggler/TextParser/Scanner.rb +22 -11
- data/lib/taskjuggler/TimeSheets.rb +1 -1
- data/lib/taskjuggler/Tj3Config.rb +1 -1
- data/lib/taskjuggler/TjTime.rb +7 -3
- data/lib/taskjuggler/TjpSyntaxRules.rb +157 -23
- data/lib/taskjuggler/VimSyntax.rb +18 -0
- data/lib/taskjuggler/WorkingHours.rb +20 -4
- data/lib/taskjuggler/apps/Tj3.rb +16 -1
- data/lib/taskjuggler/reports/GanttLine.rb +1 -1
- data/lib/taskjuggler/reports/ICalReport.rb +136 -0
- data/lib/taskjuggler/reports/NikuReport.rb +1 -1
- data/lib/taskjuggler/reports/Report.rb +59 -0
- data/lib/taskjuggler/reports/ReportBase.rb +2 -67
- data/lib/taskjuggler/reports/TableReport.rb +9 -8
- data/lib/taskjuggler/reports/TagFile.rb +120 -0
- data/lib/taskjuggler/reports/TimeSheetReport.rb +3 -3
- data/lib/taskjuggler/reports/TjpExportRE.rb +33 -9
- data/manual/Installation +126 -0
- data/spec/ICalendar_spec.rb +45 -0
- data/spec/IntervalList_spec.rb +11 -11
- data/tasks/changelog.rake +150 -60
- data/tasks/gem.rake +1 -0
- data/tasks/vim.rake +2 -2
- data/test/TestSuite/Export-Reports/refs/Booking.tjp +1 -1
- data/test/TestSuite/Export-Reports/refs/CompletedWork.tji.tjp +40 -0
- data/test/TestSuite/Export-Reports/refs/Macro-2.tjp +10 -1
- data/test/TestSuite/Export-Reports/refs/TaskPrefix.tjp +1 -1
- data/test/TestSuite/HTML-Reports/Alerts.html +160 -412
- data/test/TestSuite/HTML-Reports/CellText.html +758 -0
- data/test/TestSuite/HTML-Reports/ColumnPeriods.html +156 -0
- data/test/TestSuite/HTML-Reports/IsOngoing.html +172 -0
- data/test/TestSuite/HTML-Reports/LogicalFunctions.html +245 -0
- data/test/TestSuite/HTML-Reports/Query.html +31 -0
- data/test/TestSuite/HTML-Reports/css/tjmanual.css +0 -20
- data/test/TestSuite/HTML-Reports/css/tjreport.css +6 -7
- data/test/TestSuite/HTML-Reports/depArrows.html +851 -0
- data/test/TestSuite/HTML-Reports/profile.html +37581 -0
- data/test/TestSuite/{Scheduler/Correct → HTML-Reports/scripts}/scripts/wz_tooltip.js +20 -20
- data/test/TestSuite/Scheduler/Correct/Booking.tjp +3 -3
- data/test/TestSuite/Scheduler/Correct/Duration.tjp +3 -3
- data/test/TestSuite/Scheduler/Errors/R.html +113 -0
- data/test/TestSuite/Scheduler/Errors/allocate_no_assigned.tjp +15 -0
- data/test/TestSuite/{ReportGenerator/Correct → Scheduler/Errors}/css/tjmanual.css +0 -1
- data/test/TestSuite/{ReportGenerator/Correct → Scheduler/Errors}/css/tjreport.css +0 -0
- data/test/TestSuite/{ReportGenerator/Correct → Scheduler/Errors}/icons/details.png +0 -0
- data/test/TestSuite/{ReportGenerator/Correct → Scheduler/Errors}/icons/flag-green.png +0 -0
- data/test/TestSuite/{ReportGenerator/Correct → Scheduler/Errors}/icons/flag-red.png +0 -0
- data/test/TestSuite/{ReportGenerator/Correct → Scheduler/Errors}/icons/flag-yellow.png +0 -0
- data/test/TestSuite/{ReportGenerator/Correct → Scheduler/Errors}/icons/resource.png +0 -0
- data/test/TestSuite/{ReportGenerator/Correct → Scheduler/Errors}/icons/resourcegroup.png +0 -0
- data/test/TestSuite/{ReportGenerator/Correct → Scheduler/Errors}/icons/task.png +0 -0
- data/test/TestSuite/{ReportGenerator/Correct → Scheduler/Errors}/icons/taskgroup.png +0 -0
- data/test/TestSuite/{ReportGenerator/Correct → Scheduler/Errors}/icons/trend-down.png +0 -0
- data/test/TestSuite/{ReportGenerator/Correct → Scheduler/Errors}/icons/trend-flat.png +0 -0
- data/test/TestSuite/{ReportGenerator/Correct → Scheduler/Errors}/icons/trend-up.png +0 -0
- data/test/TestSuite/Scheduler/Errors/overbooked_duration.tjp +11 -0
- data/test/TestSuite/Scheduler/Errors/overbooked_effort.tjp +11 -0
- data/test/TestSuite/Scheduler/Errors/overbooked_length.tjp +13 -0
- data/test/TestSuite/{ReportGenerator/Correct → Scheduler/Errors}/scripts/wz_tooltip.js +0 -0
- data/test/TestSuite/StatusSheets/dev2.tji +22 -0
- data/test/TestSuite/Syntax/Correct/CompletedWork.tji.tjp +38 -0
- data/test/TestSuite/Syntax/Correct/Macro-2.tjp +5 -2
- data/test/TestSuite/Syntax/Errors/scenario_after_tracking.tjp +8 -0
- data/test/TestSuite/TimeSheets/resrep.tji +7 -0
- data/test/TestSuite/TimeSheets/ts.tji +351 -0
- data/test/TestSuite/TimeSheets/tsdef.tji +2 -0
- data/test/test_Limits.rb +38 -30
- data/test/test_Scheduler.rb +2 -2
- data/test/test_ShiftAssignments.rb +8 -8
- data/test/test_WorkingHours.rb +4 -4
- metadata +1015 -1005
- data/lib/exchangebug.rb +0 -42
- data/lib/ruby-signal-bug.rb +0 -55
- data/test/TestSuite/Export-Reports/refs/DST.tjp +0 -60
- data/test/TestSuite/Export-Reports/refs/ReleasePlan.tjp +0 -80
- data/test/TestSuite/HTML-Reports/TimeSheet.html +0 -79
- data/test/TestSuite/HTML-Reports/reference.html +0 -51
- data/test/TestSuite/ReportGenerator/Correct/Alerts-1.csv +0 -412
- data/test/TestSuite/ReportGenerator/Correct/Alerts-1.html +0 -680
- data/test/TestSuite/ReportGenerator/Correct/DependencyList.csv +0 -4
- data/test/TestSuite/ReportGenerator/Correct/DependencyList.tjp +0 -25
- data/test/TestSuite/ReportGenerator/Correct/Journal-1.csv +0 -8
- data/test/TestSuite/ReportGenerator/Correct/Journal-2.csv +0 -8
- data/test/TestSuite/ReportGenerator/Correct/Journal-3.html +0 -28
- data/test/TestSuite/ReportGenerator/Correct/LogicalFunctions2.csv +0 -3
- data/test/TestSuite/ReportGenerator/Correct/opennodes-1.csv +0 -2
- data/test/TestSuite/ReportGenerator/Correct/opennodes.csv +0 -2
- data/test/TestSuite/ReportGenerator/Correct/opennodes.tjp +0 -26
- data/test/TestSuite/ReportGenerator/Correct/refs/opennodes-1.csv +0 -2
- data/test/TestSuite/Scheduler/' +0 -23
- data/test/TestSuite/Scheduler/Correct/css/tjmanual.css +0 -86
- data/test/TestSuite/Scheduler/Correct/css/tjreport.css +0 -413
- 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/StatusSheetTemplates/project.tji +0 -35
- data/test/TestSuite/StatusSheetTemplates/project.tjp +0 -56
- data/test/TestSuite/StatusSheets/TimeSheets/2002-03-01/resource1_2002-03-01.tji +0 -0
- data/test/TestSuite/Syntax/Correct/DST.tjp +0 -11
- data/test/TestSuite/Syntax/Correct/ReleasePlan.tjp +0 -32
- data/test/TestSuite/TimeSheets/receiver.log.mod +0 -1056
- data/test/TestSuite/TimeSheets/uu.txt +0 -29
data/doc/TaskJuggler/Report.html
CHANGED
|
@@ -87,8 +87,12 @@
|
|
|
87
87
|
|
|
88
88
|
<li><a href="#method-i-generateCSV">#generateCSV</a></li>
|
|
89
89
|
|
|
90
|
+
<li><a href="#method-i-generateCTags">#generateCTags</a></li>
|
|
91
|
+
|
|
90
92
|
<li><a href="#method-i-generateHTML">#generateHTML</a></li>
|
|
91
93
|
|
|
94
|
+
<li><a href="#method-i-generateICal">#generateICal</a></li>
|
|
95
|
+
|
|
92
96
|
<li><a href="#method-i-generateIntermediateFormat">#generateIntermediateFormat</a></li>
|
|
93
97
|
|
|
94
98
|
<li><a href="#method-i-generateNiku">#generateNiku</a></li>
|
|
@@ -237,12 +241,24 @@
|
|
|
237
241
|
|
|
238
242
|
<li><a href="../TaskJuggler/HTMLGraphics.html">TaskJuggler::HTMLGraphics</a></li>
|
|
239
243
|
|
|
244
|
+
<li><a href="../TaskJuggler/ICalReport.html">TaskJuggler::ICalReport</a></li>
|
|
245
|
+
|
|
246
|
+
<li><a href="../TaskJuggler/ICalendar.html">TaskJuggler::ICalendar</a></li>
|
|
247
|
+
|
|
248
|
+
<li><a href="../TaskJuggler/ICalendar/Component.html">TaskJuggler::ICalendar::Component</a></li>
|
|
249
|
+
|
|
250
|
+
<li><a href="../TaskJuggler/ICalendar/Event.html">TaskJuggler::ICalendar::Event</a></li>
|
|
251
|
+
|
|
252
|
+
<li><a href="../TaskJuggler/ICalendar/Journal.html">TaskJuggler::ICalendar::Journal</a></li>
|
|
253
|
+
|
|
254
|
+
<li><a href="../TaskJuggler/ICalendar/Person.html">TaskJuggler::ICalendar::Person</a></li>
|
|
255
|
+
|
|
256
|
+
<li><a href="../TaskJuggler/ICalendar/Todo.html">TaskJuggler::ICalendar::Todo</a></li>
|
|
257
|
+
|
|
240
258
|
<li><a href="../TaskJuggler/Interval.html">TaskJuggler::Interval</a></li>
|
|
241
259
|
|
|
242
260
|
<li><a href="../TaskJuggler/IntervalList.html">TaskJuggler::IntervalList</a></li>
|
|
243
261
|
|
|
244
|
-
<li><a href="../TaskJuggler/IntervalListAttribute.html">TaskJuggler::IntervalListAttribute</a></li>
|
|
245
|
-
|
|
246
262
|
<li><a href="../TaskJuggler/JobInfo.html">TaskJuggler::JobInfo</a></li>
|
|
247
263
|
|
|
248
264
|
<li><a href="../TaskJuggler/Journal.html">TaskJuggler::Journal</a></li>
|
|
@@ -357,6 +373,8 @@
|
|
|
357
373
|
|
|
358
374
|
<li><a href="../TaskJuggler/ReportContext.html">TaskJuggler::ReportContext</a></li>
|
|
359
375
|
|
|
376
|
+
<li><a href="../TaskJuggler/ReportScenario.html">TaskJuggler::ReportScenario</a></li>
|
|
377
|
+
|
|
360
378
|
<li><a href="../TaskJuggler/ReportServer.html">TaskJuggler::ReportServer</a></li>
|
|
361
379
|
|
|
362
380
|
<li><a href="../TaskJuggler/ReportServerIface.html">TaskJuggler::ReportServerIface</a></li>
|
|
@@ -415,6 +433,8 @@
|
|
|
415
433
|
|
|
416
434
|
<li><a href="../TaskJuggler/Scoreboard.html">TaskJuggler::Scoreboard</a></li>
|
|
417
435
|
|
|
436
|
+
<li><a href="../TaskJuggler/ScoreboardInterval.html">TaskJuggler::ScoreboardInterval</a></li>
|
|
437
|
+
|
|
418
438
|
<li><a href="../TaskJuggler/SheetHandlerBase.html">TaskJuggler::SheetHandlerBase</a></li>
|
|
419
439
|
|
|
420
440
|
<li><a href="../TaskJuggler/SheetReceiver.html">TaskJuggler::SheetReceiver</a></li>
|
|
@@ -461,6 +481,10 @@
|
|
|
461
481
|
|
|
462
482
|
<li><a href="../TaskJuggler/TableReport.html">TaskJuggler::TableReport</a></li>
|
|
463
483
|
|
|
484
|
+
<li><a href="../TaskJuggler/TagFile.html">TaskJuggler::TagFile</a></li>
|
|
485
|
+
|
|
486
|
+
<li><a href="../TaskJuggler/TagFile/TagFileEntry.html">TaskJuggler::TagFile::TagFileEntry</a></li>
|
|
487
|
+
|
|
464
488
|
<li><a href="../TaskJuggler/Task.html">TaskJuggler::Task</a></li>
|
|
465
489
|
|
|
466
490
|
<li><a href="../TaskJuggler/TaskDepListAttribute.html">TaskJuggler::TaskDepListAttribute</a></li>
|
|
@@ -511,6 +535,10 @@
|
|
|
511
535
|
|
|
512
536
|
<li><a href="../TaskJuggler/TextReport.html">TaskJuggler::TextReport</a></li>
|
|
513
537
|
|
|
538
|
+
<li><a href="../TaskJuggler/TimeInterval.html">TaskJuggler::TimeInterval</a></li>
|
|
539
|
+
|
|
540
|
+
<li><a href="../TaskJuggler/TimeIntervalListAttribute.html">TaskJuggler::TimeIntervalListAttribute</a></li>
|
|
541
|
+
|
|
514
542
|
<li><a href="../TaskJuggler/TimeSheet.html">TaskJuggler::TimeSheet</a></li>
|
|
515
543
|
|
|
516
544
|
<li><a href="../TaskJuggler/TimeSheetReceiver.html">TaskJuggler::TimeSheetReceiver</a></li>
|
|
@@ -695,15 +723,22 @@ Create a new report object.
|
|
|
695
723
|
<div class="method-source-code"
|
|
696
724
|
id="new-source">
|
|
697
725
|
<pre>
|
|
698
|
-
<span class="ruby-comment cmt"># File lib/taskjuggler/reports/Report.rb, line
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
|
|
704
|
-
|
|
705
|
-
|
|
706
|
-
|
|
726
|
+
<span class="ruby-comment cmt"># File lib/taskjuggler/reports/Report.rb, line 45</span>
|
|
727
|
+
45: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">project</span>, <span class="ruby-identifier">id</span>, <span class="ruby-identifier">name</span>, <span class="ruby-identifier">parent</span>)
|
|
728
|
+
46: <span class="ruby-keyword kw">super</span>(<span class="ruby-identifier">project</span>.<span class="ruby-identifier">reports</span>, <span class="ruby-identifier">id</span>, <span class="ruby-identifier">name</span>, <span class="ruby-identifier">parent</span>)
|
|
729
|
+
47: <span class="ruby-identifier">project</span>.<span class="ruby-identifier">addReport</span>(<span class="ruby-keyword kw">self</span>)
|
|
730
|
+
48:
|
|
731
|
+
49: <span class="ruby-comment cmt"># The type specifier must be set for every report. It tells whether this</span>
|
|
732
|
+
50: <span class="ruby-comment cmt"># is a task, resource, text or other report.</span>
|
|
733
|
+
51: <span class="ruby-ivar">@typeSpec</span> = <span class="ruby-keyword kw">nil</span>
|
|
734
|
+
52: <span class="ruby-comment cmt"># Reports don't really have any scenario specific attributes. But the</span>
|
|
735
|
+
53: <span class="ruby-comment cmt"># flag handling code assumes they are. To use flags, we need them as</span>
|
|
736
|
+
54: <span class="ruby-comment cmt"># well.</span>
|
|
737
|
+
55: <span class="ruby-ivar">@data</span> = <span class="ruby-constant">Array</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@project</span>.<span class="ruby-identifier">scenarioCount</span>, <span class="ruby-keyword kw">nil</span>)
|
|
738
|
+
56: <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">scenarioCount</span>.<span class="ruby-identifier">times</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">i</span><span class="ruby-operator">|</span>
|
|
739
|
+
57: <span class="ruby-constant">ReportScenario</span>.<span class="ruby-identifier">new</span>(<span class="ruby-keyword kw">self</span>, <span class="ruby-identifier">i</span>, <span class="ruby-ivar">@scenarioAttributes</span>[<span class="ruby-identifier">i</span>])
|
|
740
|
+
58: <span class="ruby-keyword kw">end</span>
|
|
741
|
+
59: <span class="ruby-keyword kw">end</span></pre>
|
|
707
742
|
</div>
|
|
708
743
|
|
|
709
744
|
</div>
|
|
@@ -740,16 +775,16 @@ Create a new report object.
|
|
|
740
775
|
<div class="method-source-code"
|
|
741
776
|
id="error-source">
|
|
742
777
|
<pre>
|
|
743
|
-
<span class="ruby-comment cmt"># File lib/taskjuggler/reports/Report.rb, line
|
|
744
|
-
|
|
745
|
-
|
|
746
|
-
|
|
747
|
-
|
|
748
|
-
|
|
749
|
-
|
|
750
|
-
|
|
751
|
-
|
|
752
|
-
|
|
778
|
+
<span class="ruby-comment cmt"># File lib/taskjuggler/reports/Report.rb, line 147</span>
|
|
779
|
+
147: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">error</span>(<span class="ruby-identifier">id</span>, <span class="ruby-identifier">message</span>)
|
|
780
|
+
148: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">message</span> <span class="ruby-operator">&&</span> <span class="ruby-operator">!</span><span class="ruby-identifier">message</span>.<span class="ruby-identifier">empty?</span>
|
|
781
|
+
149: <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">messageHandler</span>.<span class="ruby-identifier">error</span>(<span class="ruby-identifier">id</span>, <span class="ruby-identifier">message</span>, <span class="ruby-ivar">@sourceFileInfo</span>)
|
|
782
|
+
150: <span class="ruby-keyword kw">else</span>
|
|
783
|
+
151: <span class="ruby-comment cmt"># We have no message, so the error has already been reported to the</span>
|
|
784
|
+
152: <span class="ruby-comment cmt"># MessageHandler. Just trigger another exception to signal the error.</span>
|
|
785
|
+
153: <span class="ruby-identifier">raise</span> <span class="ruby-constant">TjException</span>
|
|
786
|
+
154: <span class="ruby-keyword kw">end</span>
|
|
787
|
+
155: <span class="ruby-keyword kw">end</span></pre>
|
|
753
788
|
</div>
|
|
754
789
|
|
|
755
790
|
</div>
|
|
@@ -791,39 +826,43 @@ be a list of formats that should be generated (e.
|
|
|
791
826
|
<div class="method-source-code"
|
|
792
827
|
id="generate-source">
|
|
793
828
|
<pre>
|
|
794
|
-
|
|
795
|
-
|
|
796
|
-
|
|
797
|
-
|
|
798
|
-
|
|
799
|
-
|
|
800
|
-
|
|
801
|
-
|
|
802
|
-
|
|
803
|
-
|
|
804
|
-
|
|
805
|
-
|
|
806
|
-
|
|
807
|
-
|
|
808
|
-
|
|
809
|
-
|
|
810
|
-
|
|
811
|
-
|
|
812
|
-
|
|
813
|
-
|
|
814
|
-
|
|
815
|
-
|
|
816
|
-
|
|
817
|
-
|
|
818
|
-
|
|
819
|
-
|
|
820
|
-
|
|
821
|
-
|
|
822
|
-
|
|
823
|
-
|
|
824
|
-
|
|
825
|
-
|
|
826
|
-
|
|
829
|
+
<span class="ruby-comment cmt"># File lib/taskjuggler/reports/Report.rb, line 66</span>
|
|
830
|
+
66: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">generate</span>(<span class="ruby-identifier">requestedFormats</span> = <span class="ruby-keyword kw">nil</span>)
|
|
831
|
+
67: <span class="ruby-identifier">oldTimeZone</span> = <span class="ruby-constant">TjTime</span>.<span class="ruby-identifier">setTimeZone</span>(<span class="ruby-identifier">get</span>(<span class="ruby-value str">'timezone'</span>))
|
|
832
|
+
68:
|
|
833
|
+
69: <span class="ruby-identifier">generateIntermediateFormat</span>
|
|
834
|
+
70:
|
|
835
|
+
71: <span class="ruby-comment cmt"># We either generate the requested formats or the list of formats that</span>
|
|
836
|
+
72: <span class="ruby-comment cmt"># was specified in the report definition.</span>
|
|
837
|
+
73: (<span class="ruby-identifier">requestedFormats</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">get</span>(<span class="ruby-value str">'formats'</span>)).<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">format</span><span class="ruby-operator">|</span>
|
|
838
|
+
74: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@name</span>.<span class="ruby-identifier">empty?</span>
|
|
839
|
+
75: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'empty_report_file_name'</span>,
|
|
840
|
+
76: <span class="ruby-node">"Report #{@id} has output formats requested, but the "</span> <span class="ruby-operator">+</span>
|
|
841
|
+
77: <span class="ruby-value str">"file name is empty."</span>)
|
|
842
|
+
78: <span class="ruby-keyword kw">end</span>
|
|
843
|
+
79:
|
|
844
|
+
80: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">format</span>
|
|
845
|
+
81: <span class="ruby-keyword kw">when</span> <span class="ruby-value">:iCal</span>
|
|
846
|
+
82: <span class="ruby-identifier">generateICal</span>
|
|
847
|
+
83: <span class="ruby-keyword kw">when</span> <span class="ruby-value">:html</span>
|
|
848
|
+
84: <span class="ruby-identifier">generateHTML</span>
|
|
849
|
+
85: <span class="ruby-identifier">copyAuxiliaryFiles</span>
|
|
850
|
+
86: <span class="ruby-keyword kw">when</span> <span class="ruby-value">:csv</span>
|
|
851
|
+
87: <span class="ruby-identifier">generateCSV</span>
|
|
852
|
+
88: <span class="ruby-keyword kw">when</span> <span class="ruby-value">:ctags</span>
|
|
853
|
+
89: <span class="ruby-identifier">generateCTags</span>
|
|
854
|
+
90: <span class="ruby-keyword kw">when</span> <span class="ruby-value">:niku</span>
|
|
855
|
+
91: <span class="ruby-identifier">generateNiku</span>
|
|
856
|
+
92: <span class="ruby-keyword kw">when</span> <span class="ruby-value">:tjp</span>
|
|
857
|
+
93: <span class="ruby-identifier">generateTJP</span>
|
|
858
|
+
94: <span class="ruby-keyword kw">else</span>
|
|
859
|
+
95: <span class="ruby-identifier">raise</span> <span class="ruby-value str">'Unknown report output format #{format}.'</span>
|
|
860
|
+
96: <span class="ruby-keyword kw">end</span>
|
|
861
|
+
97: <span class="ruby-keyword kw">end</span>
|
|
862
|
+
98:
|
|
863
|
+
99: <span class="ruby-constant">TjTime</span>.<span class="ruby-identifier">setTimeZone</span>(<span class="ruby-identifier">oldTimeZone</span>)
|
|
864
|
+
100: <span class="ruby-value">0</span>
|
|
865
|
+
101: <span class="ruby-keyword kw">end</span></pre>
|
|
827
866
|
</div>
|
|
828
867
|
|
|
829
868
|
</div>
|
|
@@ -857,32 +896,36 @@ the respective output formats.
|
|
|
857
896
|
<div class="method-source-code"
|
|
858
897
|
id="generate-ntermediate-ormat-source">
|
|
859
898
|
<pre>
|
|
860
|
-
<span class="ruby-comment cmt"># File lib/taskjuggler/reports/Report.rb, line
|
|
861
|
-
|
|
862
|
-
|
|
863
|
-
|
|
864
|
-
|
|
865
|
-
|
|
866
|
-
|
|
867
|
-
|
|
868
|
-
|
|
869
|
-
|
|
870
|
-
|
|
871
|
-
|
|
872
|
-
|
|
873
|
-
|
|
874
|
-
|
|
875
|
-
|
|
876
|
-
|
|
877
|
-
|
|
878
|
-
|
|
879
|
-
|
|
880
|
-
|
|
881
|
-
|
|
882
|
-
|
|
883
|
-
|
|
884
|
-
|
|
885
|
-
|
|
899
|
+
<span class="ruby-comment cmt"># File lib/taskjuggler/reports/Report.rb, line 105</span>
|
|
900
|
+
105: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">generateIntermediateFormat</span>
|
|
901
|
+
106: <span class="ruby-ivar">@content</span> = <span class="ruby-keyword kw">nil</span>
|
|
902
|
+
107: <span class="ruby-keyword kw">case</span> <span class="ruby-ivar">@typeSpec</span>
|
|
903
|
+
108: <span class="ruby-keyword kw">when</span> <span class="ruby-value">:export</span>
|
|
904
|
+
109: <span class="ruby-ivar">@content</span> = <span class="ruby-constant">TjpExportRE</span>.<span class="ruby-identifier">new</span>(<span class="ruby-keyword kw">self</span>)
|
|
905
|
+
110: <span class="ruby-keyword kw">when</span> <span class="ruby-value">:iCal</span>
|
|
906
|
+
111: <span class="ruby-ivar">@content</span> = <span class="ruby-constant">ICalReport</span>.<span class="ruby-identifier">new</span>(<span class="ruby-keyword kw">self</span>)
|
|
907
|
+
112: <span class="ruby-keyword kw">when</span> <span class="ruby-value">:niku</span>
|
|
908
|
+
113: <span class="ruby-ivar">@content</span> = <span class="ruby-constant">NikuReport</span>.<span class="ruby-identifier">new</span>(<span class="ruby-keyword kw">self</span>)
|
|
909
|
+
114: <span class="ruby-keyword kw">when</span> <span class="ruby-value">:resourcereport</span>
|
|
910
|
+
115: <span class="ruby-ivar">@content</span> = <span class="ruby-constant">ResourceListRE</span>.<span class="ruby-identifier">new</span>(<span class="ruby-keyword kw">self</span>)
|
|
911
|
+
116: <span class="ruby-keyword kw">when</span> <span class="ruby-value">:tagfile</span>
|
|
912
|
+
117: <span class="ruby-ivar">@content</span> = <span class="ruby-constant">TagFile</span>.<span class="ruby-identifier">new</span>(<span class="ruby-keyword kw">self</span>)
|
|
913
|
+
118: <span class="ruby-keyword kw">when</span> <span class="ruby-value">:textreport</span>
|
|
914
|
+
119: <span class="ruby-ivar">@content</span> = <span class="ruby-constant">TextReport</span>.<span class="ruby-identifier">new</span>(<span class="ruby-keyword kw">self</span>)
|
|
915
|
+
120: <span class="ruby-keyword kw">when</span> <span class="ruby-value">:taskreport</span>
|
|
916
|
+
121: <span class="ruby-ivar">@content</span> = <span class="ruby-constant">TaskListRE</span>.<span class="ruby-identifier">new</span>(<span class="ruby-keyword kw">self</span>)
|
|
917
|
+
122: <span class="ruby-keyword kw">when</span> <span class="ruby-value">:statusSheet</span>
|
|
918
|
+
123: <span class="ruby-ivar">@content</span> = <span class="ruby-constant">StatusSheetReport</span>.<span class="ruby-identifier">new</span>(<span class="ruby-keyword kw">self</span>)
|
|
919
|
+
124: <span class="ruby-keyword kw">when</span> <span class="ruby-value">:timeSheet</span>
|
|
920
|
+
125: <span class="ruby-ivar">@content</span> = <span class="ruby-constant">TimeSheetReport</span>.<span class="ruby-identifier">new</span>(<span class="ruby-keyword kw">self</span>)
|
|
921
|
+
126: <span class="ruby-keyword kw">else</span>
|
|
922
|
+
127: <span class="ruby-identifier">raise</span> <span class="ruby-value str">"Unknown report type"</span>
|
|
923
|
+
128: <span class="ruby-keyword kw">end</span>
|
|
924
|
+
129:
|
|
925
|
+
130: <span class="ruby-comment cmt"># Most output format can be generated from a common intermediate</span>
|
|
926
|
+
131: <span class="ruby-comment cmt"># representation of the elements. We generate that IR first.</span>
|
|
927
|
+
132: <span class="ruby-ivar">@content</span>.<span class="ruby-identifier">generateIntermediateFormat</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@content</span>
|
|
928
|
+
133: <span class="ruby-keyword kw">end</span></pre>
|
|
886
929
|
</div>
|
|
887
930
|
|
|
888
931
|
</div>
|
|
@@ -917,10 +960,10 @@ interactive setting.
|
|
|
917
960
|
<div class="method-source-code"
|
|
918
961
|
id="interactive--source">
|
|
919
962
|
<pre>
|
|
920
|
-
<span class="ruby-comment cmt"># File lib/taskjuggler/reports/Report.rb, line
|
|
921
|
-
|
|
922
|
-
|
|
923
|
-
|
|
963
|
+
<span class="ruby-comment cmt"># File lib/taskjuggler/reports/Report.rb, line 143</span>
|
|
964
|
+
143: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">interactive?</span>
|
|
965
|
+
144: <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">reportContexts</span>.<span class="ruby-identifier">first</span>.<span class="ruby-identifier">report</span>.<span class="ruby-identifier">get</span>(<span class="ruby-value str">'interactive'</span>)
|
|
966
|
+
145: <span class="ruby-keyword kw">end</span></pre>
|
|
924
967
|
</div>
|
|
925
968
|
|
|
926
969
|
</div>
|
|
@@ -953,10 +996,10 @@ Render the content of the report as HTML (without the framing).
|
|
|
953
996
|
<div class="method-source-code"
|
|
954
997
|
id="to-html-source">
|
|
955
998
|
<pre>
|
|
956
|
-
<span class="ruby-comment cmt"># File lib/taskjuggler/reports/Report.rb, line
|
|
957
|
-
|
|
958
|
-
|
|
959
|
-
|
|
999
|
+
<span class="ruby-comment cmt"># File lib/taskjuggler/reports/Report.rb, line 136</span>
|
|
1000
|
+
136: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_html</span>
|
|
1001
|
+
137: <span class="ruby-ivar">@content</span> <span class="ruby-operator">?</span> <span class="ruby-ivar">@content</span>.<span class="ruby-identifier">to_html</span> <span class="ruby-operator">:</span> <span class="ruby-keyword kw">nil</span>
|
|
1002
|
+
138: <span class="ruby-keyword kw">end</span></pre>
|
|
960
1003
|
</div>
|
|
961
1004
|
|
|
962
1005
|
</div>
|
|
@@ -987,12 +1030,12 @@ Render the content of the report as HTML (without the framing).
|
|
|
987
1030
|
<div class="method-source-code"
|
|
988
1031
|
id="warning-source">
|
|
989
1032
|
<pre>
|
|
990
|
-
<span class="ruby-comment cmt"># File lib/taskjuggler/reports/Report.rb, line
|
|
991
|
-
|
|
992
|
-
|
|
993
|
-
|
|
994
|
-
|
|
995
|
-
|
|
1033
|
+
<span class="ruby-comment cmt"># File lib/taskjuggler/reports/Report.rb, line 157</span>
|
|
1034
|
+
157: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">warning</span>(<span class="ruby-identifier">id</span>, <span class="ruby-identifier">message</span>)
|
|
1035
|
+
158: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">message</span> <span class="ruby-operator">&&</span> <span class="ruby-operator">!</span><span class="ruby-identifier">message</span>.<span class="ruby-identifier">empty?</span>
|
|
1036
|
+
159: <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">messageHandler</span>.<span class="ruby-identifier">warning</span>(<span class="ruby-identifier">id</span>, <span class="ruby-identifier">message</span>, <span class="ruby-ivar">@sourceFileInfo</span>)
|
|
1037
|
+
160: <span class="ruby-keyword kw">end</span>
|
|
1038
|
+
161: <span class="ruby-keyword kw">end</span></pre>
|
|
996
1039
|
</div>
|
|
997
1040
|
|
|
998
1041
|
</div>
|
|
@@ -1031,10 +1074,10 @@ Convenience function to access a report attribute
|
|
|
1031
1074
|
<div class="method-source-code"
|
|
1032
1075
|
id="a-source">
|
|
1033
1076
|
<pre>
|
|
1034
|
-
<span class="ruby-comment cmt"># File lib/taskjuggler/reports/Report.rb, line
|
|
1035
|
-
|
|
1036
|
-
|
|
1037
|
-
|
|
1077
|
+
<span class="ruby-comment cmt"># File lib/taskjuggler/reports/Report.rb, line 165</span>
|
|
1078
|
+
165: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">a</span>(<span class="ruby-identifier">attribute</span>)
|
|
1079
|
+
166: <span class="ruby-identifier">get</span>(<span class="ruby-identifier">attribute</span>)
|
|
1080
|
+
167: <span class="ruby-keyword kw">end</span></pre>
|
|
1038
1081
|
</div>
|
|
1039
1082
|
|
|
1040
1083
|
</div>
|
|
@@ -1065,15 +1108,15 @@ Convenience function to access a report attribute
|
|
|
1065
1108
|
<div class="method-source-code"
|
|
1066
1109
|
id="copy-uxiliary-iles-source">
|
|
1067
1110
|
<pre>
|
|
1068
|
-
<span class="ruby-comment cmt"># File lib/taskjuggler/reports/Report.rb, line
|
|
1069
|
-
|
|
1070
|
-
|
|
1071
|
-
|
|
1072
|
-
|
|
1073
|
-
|
|
1074
|
-
|
|
1075
|
-
|
|
1076
|
-
|
|
1111
|
+
<span class="ruby-comment cmt"># File lib/taskjuggler/reports/Report.rb, line 355</span>
|
|
1112
|
+
355: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">copyAuxiliaryFiles</span>
|
|
1113
|
+
356: <span class="ruby-comment cmt"># Don't copy files if output is stdout.</span>
|
|
1114
|
+
357: <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>)
|
|
1115
|
+
358:
|
|
1116
|
+
359: <span class="ruby-identifier">copyDirectory</span>(<span class="ruby-value str">'css'</span>)
|
|
1117
|
+
360: <span class="ruby-identifier">copyDirectory</span>(<span class="ruby-value str">'icons'</span>)
|
|
1118
|
+
361: <span class="ruby-identifier">copyDirectory</span>(<span class="ruby-value str">'scripts'</span>)
|
|
1119
|
+
362: <span class="ruby-keyword kw">end</span></pre>
|
|
1077
1120
|
</div>
|
|
1078
1121
|
|
|
1079
1122
|
</div>
|
|
@@ -1104,23 +1147,23 @@ Convenience function to access a report attribute
|
|
|
1104
1147
|
<div class="method-source-code"
|
|
1105
1148
|
id="copy-irectory-source">
|
|
1106
1149
|
<pre>
|
|
1107
|
-
<span class="ruby-comment cmt"># File lib/taskjuggler/reports/Report.rb, line
|
|
1108
|
-
|
|
1109
|
-
|
|
1110
|
-
|
|
1111
|
-
|
|
1112
|
-
|
|
1113
|
-
|
|
1114
|
-
|
|
1115
|
-
|
|
1116
|
-
|
|
1117
|
-
|
|
1118
|
-
|
|
1119
|
-
|
|
1120
|
-
|
|
1121
|
-
|
|
1122
|
-
|
|
1123
|
-
|
|
1150
|
+
<span class="ruby-comment cmt"># File lib/taskjuggler/reports/Report.rb, line 364</span>
|
|
1151
|
+
364: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">copyDirectory</span>(<span class="ruby-identifier">dirName</span>)
|
|
1152
|
+
365: <span class="ruby-comment cmt"># The directory needs to be in the same directory as the HTML report.</span>
|
|
1153
|
+
366: <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>
|
|
1154
|
+
367: <span class="ruby-ivar">@name</span>) <span class="ruby-operator">+</span> <span class="ruby-value str">'/'</span>).<span class="ruby-identifier">untaint</span>
|
|
1155
|
+
368: <span class="ruby-comment cmt"># Find the data directory that came with the TaskJuggler installation.</span>
|
|
1156
|
+
369: <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>
|
|
1157
|
+
370: <span class="ruby-comment cmt"># Raise an error if we haven't found the data directory</span>
|
|
1158
|
+
371: <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>)
|
|
1159
|
+
372: <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>))
|
|
1160
|
+
373: <span class="ruby-keyword kw">end</span>
|
|
1161
|
+
374: <span class="ruby-comment cmt"># Don't copy directory if all files are up-to-date.</span>
|
|
1162
|
+
375: <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>)
|
|
1163
|
+
376:
|
|
1164
|
+
377: <span class="ruby-comment cmt"># Recursively copy the directory and all content.</span>
|
|
1165
|
+
378: <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>)
|
|
1166
|
+
379: <span class="ruby-keyword kw">end</span></pre>
|
|
1124
1167
|
</div>
|
|
1125
1168
|
|
|
1126
1169
|
</div>
|
|
@@ -1151,11 +1194,11 @@ Convenience function to access a report attribute
|
|
|
1151
1194
|
<div class="method-source-code"
|
|
1152
1195
|
id="data-ir-rror-source">
|
|
1153
1196
|
<pre>
|
|
1154
|
-
<span class="ruby-comment cmt"># File lib/taskjuggler/reports/Report.rb, line
|
|
1155
|
-
|
|
1156
|
-
|
|
1157
|
-
|
|
1158
|
-
|
|
1197
|
+
<span class="ruby-comment cmt"># File lib/taskjuggler/reports/Report.rb, line 395</span>
|
|
1198
|
+
395: <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>)
|
|
1199
|
+
396: <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>
|
|
1200
|
+
397: )
|
|
1201
|
+
398: <span class="ruby-keyword kw">end</span></pre>
|
|
1159
1202
|
</div>
|
|
1160
1203
|
|
|
1161
1204
|
</div>
|
|
@@ -1186,20 +1229,20 @@ Convenience function to access a report attribute
|
|
|
1186
1229
|
<div class="method-source-code"
|
|
1187
1230
|
id="directory-p-o-ate--source">
|
|
1188
1231
|
<pre>
|
|
1189
|
-
<span class="ruby-comment cmt"># File lib/taskjuggler/reports/Report.rb, line
|
|
1190
|
-
|
|
1191
|
-
|
|
1192
|
-
|
|
1193
|
-
|
|
1194
|
-
|
|
1195
|
-
|
|
1196
|
-
|
|
1197
|
-
|
|
1198
|
-
|
|
1199
|
-
|
|
1200
|
-
|
|
1201
|
-
|
|
1202
|
-
|
|
1232
|
+
<span class="ruby-comment cmt"># File lib/taskjuggler/reports/Report.rb, line 381</span>
|
|
1233
|
+
381: <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>)
|
|
1234
|
+
382: <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>)
|
|
1235
|
+
383:
|
|
1236
|
+
384: <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>
|
|
1237
|
+
385: <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>
|
|
1238
|
+
386:
|
|
1239
|
+
387: <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>
|
|
1240
|
+
388: <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>
|
|
1241
|
+
389: <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>
|
|
1242
|
+
390: <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>)
|
|
1243
|
+
391: <span class="ruby-keyword kw">end</span>
|
|
1244
|
+
392: <span class="ruby-keyword kw">true</span>
|
|
1245
|
+
393: <span class="ruby-keyword kw">end</span></pre>
|
|
1203
1246
|
</div>
|
|
1204
1247
|
|
|
1205
1248
|
</div>
|
|
@@ -1232,31 +1275,81 @@ Generate a CSV version of the report.
|
|
|
1232
1275
|
<div class="method-source-code"
|
|
1233
1276
|
id="generate--source">
|
|
1234
1277
|
<pre>
|
|
1235
|
-
<span class="ruby-comment cmt"># File lib/taskjuggler/reports/Report.rb, line
|
|
1236
|
-
|
|
1237
|
-
|
|
1238
|
-
|
|
1239
|
-
|
|
1240
|
-
|
|
1241
|
-
|
|
1242
|
-
|
|
1243
|
-
|
|
1244
|
-
|
|
1245
|
-
|
|
1246
|
-
|
|
1247
|
-
|
|
1248
|
-
|
|
1249
|
-
|
|
1250
|
-
|
|
1251
|
-
|
|
1252
|
-
|
|
1253
|
-
|
|
1254
|
-
|
|
1255
|
-
|
|
1256
|
-
|
|
1257
|
-
|
|
1258
|
-
|
|
1259
|
-
|
|
1278
|
+
<span class="ruby-comment cmt"># File lib/taskjuggler/reports/Report.rb, line 256</span>
|
|
1279
|
+
256: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">generateCSV</span>
|
|
1280
|
+
257: <span class="ruby-comment cmt"># The CSV format can only handle the first element of a report.</span>
|
|
1281
|
+
258: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@content</span>
|
|
1282
|
+
259:
|
|
1283
|
+
260: <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@content</span>.<span class="ruby-identifier">respond_to?</span>(<span class="ruby-value str">'to_csv'</span>)
|
|
1284
|
+
261: <span class="ruby-identifier">warning</span>(<span class="ruby-value str">'csv_not_supported'</span>,
|
|
1285
|
+
262: <span class="ruby-node">"CSV format is not supported for report #{@id} of "</span> <span class="ruby-operator">+</span>
|
|
1286
|
+
263: <span class="ruby-node">"type #{@typeSpec}."</span>)
|
|
1287
|
+
264: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span>
|
|
1288
|
+
265: <span class="ruby-keyword kw">end</span>
|
|
1289
|
+
266:
|
|
1290
|
+
267: <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>)
|
|
1291
|
+
268:
|
|
1292
|
+
269: <span class="ruby-comment cmt"># Use the CSVFile class to write the Array of Arrays to a colon</span>
|
|
1293
|
+
270: <span class="ruby-comment cmt"># separated file. Write to $stdout if the filename was set to '.'.</span>
|
|
1294
|
+
271: <span class="ruby-keyword kw">begin</span>
|
|
1295
|
+
272: <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>
|
|
1296
|
+
273: (<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>
|
|
1297
|
+
274: <span class="ruby-ivar">@name</span> <span class="ruby-operator">+</span> <span class="ruby-value str">'.csv'</span>).<span class="ruby-identifier">untaint</span>
|
|
1298
|
+
275: <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>)
|
|
1299
|
+
276: <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">IOError</span>
|
|
1300
|
+
277: <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>)
|
|
1301
|
+
278: <span class="ruby-keyword kw">end</span>
|
|
1302
|
+
279: <span class="ruby-keyword kw">end</span></pre>
|
|
1303
|
+
</div>
|
|
1304
|
+
|
|
1305
|
+
</div>
|
|
1306
|
+
|
|
1307
|
+
|
|
1308
|
+
|
|
1309
|
+
|
|
1310
|
+
</div>
|
|
1311
|
+
|
|
1312
|
+
|
|
1313
|
+
<div id="generate-ags-method" class="method-detail ">
|
|
1314
|
+
<a name="method-i-generateCTags"></a>
|
|
1315
|
+
|
|
1316
|
+
<div class="method-heading">
|
|
1317
|
+
|
|
1318
|
+
<span class="method-name">generateCTags</span><span
|
|
1319
|
+
class="method-args">()</span>
|
|
1320
|
+
<span class="method-click-advice">click to toggle source</span>
|
|
1321
|
+
|
|
1322
|
+
</div>
|
|
1323
|
+
|
|
1324
|
+
<div class="method-description">
|
|
1325
|
+
|
|
1326
|
+
<p>
|
|
1327
|
+
Generate ctags file
|
|
1328
|
+
</p>
|
|
1329
|
+
|
|
1330
|
+
|
|
1331
|
+
|
|
1332
|
+
<div class="method-source-code"
|
|
1333
|
+
id="generate-ags-source">
|
|
1334
|
+
<pre>
|
|
1335
|
+
<span class="ruby-comment cmt"># File lib/taskjuggler/reports/Report.rb, line 337</span>
|
|
1336
|
+
337: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">generateCTags</span>
|
|
1337
|
+
338: <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@content</span>.<span class="ruby-identifier">respond_to?</span>(<span class="ruby-value str">'to_ctags'</span>)
|
|
1338
|
+
339: <span class="ruby-identifier">warning</span>(<span class="ruby-value str">'ctags_not_supported'</span>,
|
|
1339
|
+
340: <span class="ruby-node">"ctags format is not supported for report #{@id} of "</span> <span class="ruby-operator">+</span>
|
|
1340
|
+
341: <span class="ruby-node">"type #{@typeSpec}."</span>)
|
|
1341
|
+
342: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span>
|
|
1342
|
+
343: <span class="ruby-keyword kw">end</span>
|
|
1343
|
+
344:
|
|
1344
|
+
345: <span class="ruby-keyword kw">begin</span>
|
|
1345
|
+
346: <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>
|
|
1346
|
+
347: <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>
|
|
1347
|
+
348: <span class="ruby-ivar">@name</span>).<span class="ruby-identifier">untaint</span>, <span class="ruby-value str">'w'</span>)
|
|
1348
|
+
349: <span class="ruby-identifier">f</span>.<span class="ruby-identifier">puts</span> <span class="ruby-node">"#{@content.to_ctags}"</span>
|
|
1349
|
+
350: <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">IOError</span>
|
|
1350
|
+
351: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'write_ctags'</span>, <span class="ruby-node">"Cannot write to file #{@name}.\n#{$!}"</span>)
|
|
1351
|
+
352: <span class="ruby-keyword kw">end</span>
|
|
1352
|
+
353: <span class="ruby-keyword kw">end</span></pre>
|
|
1260
1353
|
</div>
|
|
1261
1354
|
|
|
1262
1355
|
</div>
|
|
@@ -1289,88 +1382,138 @@ Generate an HTML version of the report.
|
|
|
1289
1382
|
<div class="method-source-code"
|
|
1290
1383
|
id="generate--source">
|
|
1291
1384
|
<pre>
|
|
1292
|
-
<span class="ruby-comment cmt"># File lib/taskjuggler/reports/Report.rb, line
|
|
1293
|
-
|
|
1294
|
-
|
|
1295
|
-
|
|
1296
|
-
|
|
1297
|
-
|
|
1298
|
-
|
|
1299
|
-
|
|
1300
|
-
|
|
1301
|
-
|
|
1302
|
-
|
|
1303
|
-
|
|
1304
|
-
|
|
1305
|
-
|
|
1306
|
-
|
|
1307
|
-
|
|
1308
|
-
|
|
1309
|
-
|
|
1310
|
-
|
|
1311
|
-
|
|
1312
|
-
|
|
1313
|
-
|
|
1314
|
-
|
|
1315
|
-
|
|
1316
|
-
|
|
1317
|
-
|
|
1318
|
-
|
|
1319
|
-
|
|
1320
|
-
|
|
1321
|
-
|
|
1322
|
-
|
|
1323
|
-
|
|
1324
|
-
|
|
1325
|
-
|
|
1326
|
-
|
|
1327
|
-
|
|
1328
|
-
|
|
1329
|
-
|
|
1330
|
-
|
|
1331
|
-
|
|
1332
|
-
|
|
1333
|
-
|
|
1334
|
-
|
|
1335
|
-
|
|
1336
|
-
|
|
1337
|
-
|
|
1338
|
-
|
|
1339
|
-
|
|
1340
|
-
|
|
1341
|
-
|
|
1342
|
-
|
|
1343
|
-
|
|
1344
|
-
|
|
1345
|
-
|
|
1346
|
-
|
|
1347
|
-
|
|
1348
|
-
|
|
1349
|
-
|
|
1350
|
-
|
|
1351
|
-
|
|
1352
|
-
|
|
1353
|
-
|
|
1354
|
-
|
|
1355
|
-
|
|
1356
|
-
|
|
1357
|
-
|
|
1358
|
-
|
|
1359
|
-
|
|
1360
|
-
|
|
1361
|
-
|
|
1362
|
-
|
|
1363
|
-
|
|
1364
|
-
|
|
1365
|
-
|
|
1366
|
-
|
|
1367
|
-
|
|
1368
|
-
|
|
1369
|
-
|
|
1370
|
-
|
|
1371
|
-
|
|
1372
|
-
|
|
1373
|
-
|
|
1385
|
+
<span class="ruby-comment cmt"># File lib/taskjuggler/reports/Report.rb, line 170</span>
|
|
1386
|
+
170: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">generateHTML</span>
|
|
1387
|
+
171: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@content</span>
|
|
1388
|
+
172:
|
|
1389
|
+
173: <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@content</span>.<span class="ruby-identifier">respond_to?</span>(<span class="ruby-value str">'to_html'</span>)
|
|
1390
|
+
174: <span class="ruby-identifier">warning</span>(<span class="ruby-value str">'html_not_supported'</span>,
|
|
1391
|
+
175: <span class="ruby-node">"HTML format is not supported for report #{@id} of "</span> <span class="ruby-operator">+</span>
|
|
1392
|
+
176: <span class="ruby-node">"type #{@typeSpec}."</span>)
|
|
1393
|
+
177: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span>
|
|
1394
|
+
178: <span class="ruby-keyword kw">end</span>
|
|
1395
|
+
179:
|
|
1396
|
+
180: <span class="ruby-identifier">html</span> = <span class="ruby-constant">HTMLDocument</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value">:strict</span>)
|
|
1397
|
+
181: <span class="ruby-identifier">head</span> = <span class="ruby-identifier">html</span>.<span class="ruby-identifier">generateHead</span>(<span class="ruby-node">"TaskJuggler Report - #{@name}"</span>,
|
|
1398
|
+
182: <span class="ruby-value str">'description'</span> =<span class="ruby-operator">></span> <span class="ruby-value str">'TaskJuggler Report'</span>,
|
|
1399
|
+
183: <span class="ruby-value str">'keywords'</span> =<span class="ruby-operator">></span> <span class="ruby-value str">'taskjuggler, project, management'</span>)
|
|
1400
|
+
184: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">a</span>(<span class="ruby-value str">'selfcontained'</span>)
|
|
1401
|
+
185: <span class="ruby-identifier">auxSrcDir</span> = <span class="ruby-constant">AppConfig</span>.<span class="ruby-identifier">dataDirs</span>(<span class="ruby-value str">'data/css'</span>)[<span class="ruby-value">0</span>]
|
|
1402
|
+
186: <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>)
|
|
1403
|
+
187: <span class="ruby-comment cmt"># Raise an error if we haven't found the data directory</span>
|
|
1404
|
+
188: <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>)
|
|
1405
|
+
189: <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>))
|
|
1406
|
+
190: <span class="ruby-keyword kw">end</span>
|
|
1407
|
+
191: <span class="ruby-identifier">cssFile</span> = <span class="ruby-constant">IO</span>.<span class="ruby-identifier">read</span>(<span class="ruby-identifier">cssFileName</span>)
|
|
1408
|
+
192: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">cssFile</span>.<span class="ruby-identifier">empty?</span>
|
|
1409
|
+
193: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'css_file_error'</span>,
|
|
1410
|
+
194: <span class="ruby-node">"Cannot read '#{cssFileName}'. Make sure the file is not "</span> <span class="ruby-operator">+</span>
|
|
1411
|
+
195: <span class="ruby-value str">"empty and you have read access permission."</span>)
|
|
1412
|
+
196: <span class="ruby-keyword kw">end</span>
|
|
1413
|
+
197: <span class="ruby-identifier">head</span> <span class="ruby-operator"><<</span> <span class="ruby-constant">XMLElement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'meta'</span>, <span class="ruby-value str">'http-equiv'</span> =<span class="ruby-operator">></span> <span class="ruby-value str">'Content-Style-Type'</span>,
|
|
1414
|
+
198: <span class="ruby-value str">'content'</span> =<span class="ruby-operator">></span> <span class="ruby-value str">'text/css; charset=utf-8'</span>)
|
|
1415
|
+
199: <span class="ruby-identifier">head</span> <span class="ruby-operator"><<</span> (<span class="ruby-identifier">style</span> = <span class="ruby-constant">XMLElement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'style'</span>, <span class="ruby-value str">'type'</span> =<span class="ruby-operator">></span> <span class="ruby-value str">'text/css'</span>))
|
|
1416
|
+
200: <span class="ruby-identifier">style</span> <span class="ruby-operator"><<</span> <span class="ruby-constant">XMLBlob</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">"\n"</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">cssFile</span>)
|
|
1417
|
+
201: <span class="ruby-keyword kw">else</span>
|
|
1418
|
+
202: <span class="ruby-identifier">head</span> <span class="ruby-operator"><<</span> <span class="ruby-constant">XMLElement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'link'</span>, <span class="ruby-value str">'rel'</span> =<span class="ruby-operator">></span> <span class="ruby-value str">'stylesheet'</span>,
|
|
1419
|
+
203: <span class="ruby-value str">'type'</span> =<span class="ruby-operator">></span> <span class="ruby-value str">'text/css'</span>,
|
|
1420
|
+
204: <span class="ruby-value str">'href'</span> =<span class="ruby-operator">></span> <span class="ruby-value str">'css/tjreport.css'</span>)
|
|
1421
|
+
205: <span class="ruby-keyword kw">end</span>
|
|
1422
|
+
206: <span class="ruby-identifier">html</span>.<span class="ruby-identifier">html</span> <span class="ruby-operator"><<</span>
|
|
1423
|
+
207: <span class="ruby-constant">XMLComment</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">"Dynamic Report ID: "</span> <span class="ruby-operator">+</span>
|
|
1424
|
+
208: <span class="ruby-node">"#{@project.reportContexts.last.dynamicReportId}"</span>)
|
|
1425
|
+
209: <span class="ruby-identifier">html</span>.<span class="ruby-identifier">html</span> <span class="ruby-operator"><<</span> (<span class="ruby-identifier">body</span> = <span class="ruby-constant">XMLElement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'body'</span>))
|
|
1426
|
+
210:
|
|
1427
|
+
211: <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">a</span>(<span class="ruby-value str">'selfcontained'</span>)
|
|
1428
|
+
212: <span class="ruby-identifier">body</span> <span class="ruby-operator"><<</span> <span class="ruby-constant">XMLElement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'script'</span>, <span class="ruby-value str">'type'</span> =<span class="ruby-operator">></span> <span class="ruby-value str">'text/javascript'</span>,
|
|
1429
|
+
213: <span class="ruby-value str">'src'</span> =<span class="ruby-operator">></span> <span class="ruby-value str">'scripts/wz_tooltip.js'</span>)
|
|
1430
|
+
214: <span class="ruby-identifier">body</span> <span class="ruby-operator"><<</span> (<span class="ruby-identifier">noscript</span> = <span class="ruby-constant">XMLElement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'noscript'</span>))
|
|
1431
|
+
215: <span class="ruby-identifier">noscript</span> <span class="ruby-operator"><<</span> (<span class="ruby-identifier">nsdiv</span> = <span class="ruby-constant">XMLElement</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">'div'</span>,
|
|
1432
|
+
216: <span class="ruby-value str">'style'</span> =<span class="ruby-operator">></span> <span class="ruby-value str">'text-align:center; '</span> <span class="ruby-operator">+</span>
|
|
1433
|
+
217: <span class="ruby-value str">'color:#FF0000'</span>))
|
|
1434
|
+
218: <span class="ruby-identifier">nsdiv</span> <span class="ruby-operator"><<</span> <span class="ruby-constant">XMLText</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value str">This page requires Javascript for full functionality. Please enable itin your browser settings!</span>
|
|
1435
|
+
219: )
|
|
1436
|
+
220: <span class="ruby-keyword kw">end</span>
|
|
1437
|
+
221:
|
|
1438
|
+
222:
|
|
1439
|
+
223: <span class="ruby-comment cmt"># Make sure we have some margins around the report.</span>
|
|
1440
|
+
224: <span class="ruby-identifier">body</span> <span class="ruby-operator"><<</span> (<span class="ruby-identifier">frame</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_page'</span>))
|
|
1441
|
+
225:
|
|
1442
|
+
226: <span class="ruby-identifier">frame</span> <span class="ruby-operator"><<</span> <span class="ruby-ivar">@content</span>.<span class="ruby-identifier">to_html</span>
|
|
1443
|
+
227:
|
|
1444
|
+
228: <span class="ruby-comment cmt"># The footer with some administrative information.</span>
|
|
1445
|
+
229: <span class="ruby-identifier">frame</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">'copyright'</span>))
|
|
1446
|
+
230: <span class="ruby-identifier">div</span> <span class="ruby-operator"><<</span> <span class="ruby-constant">XMLText</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@project</span>[<span class="ruby-value str">'copyright'</span>] <span class="ruby-operator">+</span> <span class="ruby-value str">" - "</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@project</span>[<span class="ruby-value str">'copyright'</span>]
|
|
1447
|
+
231: <span class="ruby-identifier">div</span> <span class="ruby-operator"><<</span> <span class="ruby-constant">XMLText</span>.<span class="ruby-identifier">new</span>(<span class="ruby-node">"Project: #{@project['name']} "</span> <span class="ruby-operator">+</span>
|
|
1448
|
+
232: <span class="ruby-node">"Version: #{@project['version']} - "</span> <span class="ruby-operator">+</span>
|
|
1449
|
+
233: <span class="ruby-node">"Created on #{TjTime.new.to_s("%Y-%m-%d %H:%M:%S")} "</span> <span class="ruby-operator">+</span>
|
|
1450
|
+
234: <span class="ruby-value str">"with "</span>)
|
|
1451
|
+
235: <span class="ruby-identifier">div</span> <span class="ruby-operator"><<</span> <span class="ruby-constant">XMLNamedText</span>.<span class="ruby-identifier">new</span>(<span class="ruby-node">"#{AppConfig.softwareName}"</span>, <span class="ruby-value str">'a'</span>,
|
|
1452
|
+
236: <span class="ruby-value str">'href'</span> =<span class="ruby-operator">></span> <span class="ruby-node">"#{AppConfig.contact}"</span>)
|
|
1453
|
+
237: <span class="ruby-identifier">div</span> <span class="ruby-operator"><<</span> <span class="ruby-constant">XMLText</span>.<span class="ruby-identifier">new</span>(<span class="ruby-node">" v#{AppConfig.version}"</span>)
|
|
1454
|
+
238:
|
|
1455
|
+
239: <span class="ruby-identifier">fileName</span> =
|
|
1456
|
+
240: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">a</span>(<span class="ruby-value str">'interactive'</span>) <span class="ruby-operator">||</span> <span class="ruby-ivar">@name</span> <span class="ruby-operator">==</span> <span class="ruby-value str">'.'</span>
|
|
1457
|
+
241: <span class="ruby-comment cmt"># Interactive HTML reports are always sent to stdout.</span>
|
|
1458
|
+
242: <span class="ruby-value str">'.'</span>
|
|
1459
|
+
243: <span class="ruby-keyword kw">else</span>
|
|
1460
|
+
244: <span class="ruby-comment cmt"># Prepend the specified output directory unless the provided file</span>
|
|
1461
|
+
245: <span class="ruby-comment cmt"># name is an absolute file name.</span>
|
|
1462
|
+
246: ((<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>
|
|
1463
|
+
247: <span class="ruby-ivar">@name</span> <span class="ruby-operator">+</span> <span class="ruby-value str">'.html'</span>).<span class="ruby-identifier">untaint</span>
|
|
1464
|
+
248: <span class="ruby-keyword kw">end</span>
|
|
1465
|
+
249: <span class="ruby-identifier">html</span>.<span class="ruby-identifier">write</span>(<span class="ruby-identifier">fileName</span>)
|
|
1466
|
+
250: <span class="ruby-keyword kw">end</span></pre>
|
|
1467
|
+
</div>
|
|
1468
|
+
|
|
1469
|
+
</div>
|
|
1470
|
+
|
|
1471
|
+
|
|
1472
|
+
|
|
1473
|
+
|
|
1474
|
+
</div>
|
|
1475
|
+
|
|
1476
|
+
|
|
1477
|
+
<div id="generate-al-method" class="method-detail ">
|
|
1478
|
+
<a name="method-i-generateICal"></a>
|
|
1479
|
+
|
|
1480
|
+
<div class="method-heading">
|
|
1481
|
+
|
|
1482
|
+
<span class="method-name">generateICal</span><span
|
|
1483
|
+
class="method-args">()</span>
|
|
1484
|
+
<span class="method-click-advice">click to toggle source</span>
|
|
1485
|
+
|
|
1486
|
+
</div>
|
|
1487
|
+
|
|
1488
|
+
<div class="method-description">
|
|
1489
|
+
|
|
1490
|
+
<p>
|
|
1491
|
+
Generate Niku report
|
|
1492
|
+
</p>
|
|
1493
|
+
|
|
1494
|
+
|
|
1495
|
+
|
|
1496
|
+
<div class="method-source-code"
|
|
1497
|
+
id="generate-al-source">
|
|
1498
|
+
<pre>
|
|
1499
|
+
<span class="ruby-comment cmt"># File lib/taskjuggler/reports/Report.rb, line 318</span>
|
|
1500
|
+
318: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">generateICal</span>
|
|
1501
|
+
319: <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@content</span>.<span class="ruby-identifier">respond_to?</span>(<span class="ruby-value str">'to_iCal'</span>)
|
|
1502
|
+
320: <span class="ruby-identifier">warning</span>(<span class="ruby-value str">'ical_not_supported'</span>,
|
|
1503
|
+
321: <span class="ruby-node">"iCalendar format is not supported for report #{@id} of "</span> <span class="ruby-operator">+</span>
|
|
1504
|
+
322: <span class="ruby-node">"type #{@typeSpec}."</span>)
|
|
1505
|
+
323: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span>
|
|
1506
|
+
324: <span class="ruby-keyword kw">end</span>
|
|
1507
|
+
325:
|
|
1508
|
+
326: <span class="ruby-keyword kw">begin</span>
|
|
1509
|
+
327: <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>
|
|
1510
|
+
328: <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>
|
|
1511
|
+
329: <span class="ruby-ivar">@name</span> <span class="ruby-operator">+</span> <span class="ruby-value str">'.ical'</span>).<span class="ruby-identifier">untaint</span>, <span class="ruby-value str">'w'</span>)
|
|
1512
|
+
330: <span class="ruby-identifier">f</span>.<span class="ruby-identifier">puts</span> <span class="ruby-node">"#{@content.to_iCal}"</span>
|
|
1513
|
+
331: <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">IOError</span>
|
|
1514
|
+
332: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'write_ical'</span>, <span class="ruby-node">"Cannot write to file #{@name}.\n#{$!}"</span>)
|
|
1515
|
+
333: <span class="ruby-keyword kw">end</span>
|
|
1516
|
+
334: <span class="ruby-keyword kw">end</span></pre>
|
|
1374
1517
|
</div>
|
|
1375
1518
|
|
|
1376
1519
|
</div>
|
|
@@ -1403,24 +1546,24 @@ Generate Niku report
|
|
|
1403
1546
|
<div class="method-source-code"
|
|
1404
1547
|
id="generate-iku-source">
|
|
1405
1548
|
<pre>
|
|
1406
|
-
<span class="ruby-comment cmt"># File lib/taskjuggler/reports/Report.rb, line
|
|
1407
|
-
|
|
1408
|
-
|
|
1409
|
-
|
|
1410
|
-
|
|
1411
|
-
|
|
1412
|
-
|
|
1413
|
-
|
|
1414
|
-
|
|
1415
|
-
|
|
1416
|
-
|
|
1417
|
-
|
|
1418
|
-
|
|
1419
|
-
|
|
1420
|
-
|
|
1421
|
-
|
|
1422
|
-
|
|
1423
|
-
|
|
1549
|
+
<span class="ruby-comment cmt"># File lib/taskjuggler/reports/Report.rb, line 299</span>
|
|
1550
|
+
299: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">generateNiku</span>
|
|
1551
|
+
300: <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@content</span>.<span class="ruby-identifier">respond_to?</span>(<span class="ruby-value str">'to_niku'</span>)
|
|
1552
|
+
301: <span class="ruby-identifier">warning</span>(<span class="ruby-value str">'niku_not_supported'</span>,
|
|
1553
|
+
302: <span class="ruby-node">"niku format is not supported for report #{@id} of "</span> <span class="ruby-operator">+</span>
|
|
1554
|
+
303: <span class="ruby-node">"type #{@typeSpec}."</span>)
|
|
1555
|
+
304: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span>
|
|
1556
|
+
305: <span class="ruby-keyword kw">end</span>
|
|
1557
|
+
306:
|
|
1558
|
+
307: <span class="ruby-keyword kw">begin</span>
|
|
1559
|
+
308: <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>
|
|
1560
|
+
309: <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>
|
|
1561
|
+
310: <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>)
|
|
1562
|
+
311: <span class="ruby-identifier">f</span>.<span class="ruby-identifier">puts</span> <span class="ruby-node">"#{@content.to_niku}"</span>
|
|
1563
|
+
312: <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">IOError</span>
|
|
1564
|
+
313: <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>)
|
|
1565
|
+
314: <span class="ruby-keyword kw">end</span>
|
|
1566
|
+
315: <span class="ruby-keyword kw">end</span></pre>
|
|
1424
1567
|
</div>
|
|
1425
1568
|
|
|
1426
1569
|
</div>
|
|
@@ -1453,22 +1596,22 @@ Generate time sheet drafts.
|
|
|
1453
1596
|
<div class="method-source-code"
|
|
1454
1597
|
id="generate--source">
|
|
1455
1598
|
<pre>
|
|
1456
|
-
<span class="ruby-comment cmt"># File lib/taskjuggler/reports/Report.rb, line
|
|
1457
|
-
|
|
1458
|
-
|
|
1459
|
-
|
|
1460
|
-
|
|
1461
|
-
|
|
1462
|
-
|
|
1463
|
-
|
|
1464
|
-
|
|
1465
|
-
|
|
1466
|
-
|
|
1467
|
-
|
|
1468
|
-
|
|
1469
|
-
|
|
1470
|
-
|
|
1471
|
-
|
|
1599
|
+
<span class="ruby-comment cmt"># File lib/taskjuggler/reports/Report.rb, line 282</span>
|
|
1600
|
+
282: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">generateTJP</span>
|
|
1601
|
+
283: <span class="ruby-keyword kw">begin</span>
|
|
1602
|
+
284: <span class="ruby-identifier">fileName</span> = <span class="ruby-value str">'.'</span>
|
|
1603
|
+
285: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@name</span> <span class="ruby-operator">==</span> <span class="ruby-value str">'.'</span>
|
|
1604
|
+
286: <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>)
|
|
1605
|
+
287: <span class="ruby-keyword kw">else</span>
|
|
1606
|
+
288: <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>
|
|
1607
|
+
289: <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>
|
|
1608
|
+
290: <span class="ruby-identifier">fileName</span>.<span class="ruby-identifier">untaint</span>
|
|
1609
|
+
291: <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>) }
|
|
1610
|
+
292: <span class="ruby-keyword kw">end</span>
|
|
1611
|
+
293: <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">IOError</span>
|
|
1612
|
+
294: <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>)
|
|
1613
|
+
295: <span class="ruby-keyword kw">end</span>
|
|
1614
|
+
296: <span class="ruby-keyword kw">end</span></pre>
|
|
1472
1615
|
</div>
|
|
1473
1616
|
|
|
1474
1617
|
</div>
|