taskjuggler 0.0.3 → 0.0.4
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/benchmarks/UTF-8-Strings.rb +58 -0
- data/data/css/tjmanual.css +52 -0
- data/data/css/tjreport.css +195 -0
- data/data/icons/details.png +0 -0
- data/data/icons/flag-green.png +0 -0
- data/data/icons/flag-red.png +0 -0
- data/data/icons/flag-yellow.png +0 -0
- data/data/icons/resource.png +0 -0
- data/data/icons/resourcegroup.png +0 -0
- data/data/icons/task.png +0 -0
- data/data/icons/taskgroup.png +0 -0
- data/data/icons/trend-down.png +0 -0
- data/data/icons/trend-flat.png +0 -0
- data/data/icons/trend-up.png +0 -0
- data/data/scripts/wz_tooltip.js +1301 -0
- data/doc/classes/AppConfig.html +298 -230
- data/doc/classes/Arguments.html +8 -8
- data/doc/classes/Object.html +7 -7
- data/doc/classes/String.html +89 -89
- data/doc/classes/TaskJuggler.html +396 -264
- data/doc/classes/TaskJuggler/Account.html +18 -18
- data/doc/classes/TaskJuggler/AccountAttribute.html +26 -26
- data/doc/classes/TaskJuggler/AccountScenario.html +12 -12
- data/doc/classes/TaskJuggler/Allocation.html +30 -30
- data/doc/classes/TaskJuggler/AllocationAttribute.html +26 -26
- data/doc/classes/TaskJuggler/AttributeBase.html +227 -115
- data/doc/classes/TaskJuggler/AttributeDefinition.html +6 -6
- data/doc/classes/TaskJuggler/BatchProcessor.html +117 -83
- data/doc/classes/TaskJuggler/Booking.html +18 -18
- data/doc/classes/TaskJuggler/BookingListAttribute.html +26 -26
- data/doc/classes/TaskJuggler/BooleanAttribute.html +26 -26
- data/doc/classes/TaskJuggler/CSVFile.html +24 -24
- data/doc/classes/TaskJuggler/CellSettingPattern.html +201 -0
- data/doc/classes/TaskJuggler/CellSettingPatternList.html +253 -0
- data/doc/classes/TaskJuggler/Charge.html +18 -18
- data/doc/classes/TaskJuggler/ChargeListAttribute.html +20 -20
- data/doc/classes/TaskJuggler/ChargeSet.html +37 -37
- data/doc/classes/TaskJuggler/ChargeSetListAttribute.html +26 -26
- data/doc/classes/TaskJuggler/ColumnListAttribute.html +20 -20
- data/doc/classes/TaskJuggler/ColumnTable.html +40 -40
- data/doc/classes/TaskJuggler/DateAttribute.html +54 -15
- data/doc/classes/TaskJuggler/DefinitionListAttribute.html +10 -10
- data/doc/classes/TaskJuggler/DependencyListAttribute.html +47 -47
- data/doc/classes/TaskJuggler/DurationAttribute.html +30 -30
- data/doc/classes/TaskJuggler/FixnumAttribute.html +20 -20
- data/doc/classes/TaskJuggler/FlagListAttribute.html +43 -43
- data/doc/classes/TaskJuggler/FloatAttribute.html +30 -30
- data/doc/classes/TaskJuggler/FormatListAttribute.html +21 -21
- data/doc/classes/TaskJuggler/GanttChart.html +48 -48
- data/doc/classes/TaskJuggler/GanttContainer.html +42 -42
- data/doc/classes/TaskJuggler/GanttHeader.html +12 -12
- data/doc/classes/TaskJuggler/GanttHeaderScaleItem.html +12 -12
- data/doc/classes/TaskJuggler/GanttLine.html +24 -24
- data/doc/classes/TaskJuggler/GanttLoadStack.html +18 -18
- data/doc/classes/TaskJuggler/GanttMilestone.html +42 -42
- data/doc/classes/TaskJuggler/GanttRouter.html +24 -24
- data/doc/classes/TaskJuggler/GanttTaskBar.html +42 -42
- data/doc/classes/TaskJuggler/HTMLDocument.html +13 -13
- data/doc/classes/TaskJuggler/HTMLGraphics.html +12 -12
- data/doc/classes/TaskJuggler/Interval.html +57 -57
- data/doc/classes/TaskJuggler/IntervalListAttribute.html +47 -47
- data/doc/classes/TaskJuggler/JobInfo.html +68 -12
- data/doc/classes/TaskJuggler/Journal.html +266 -20
- data/doc/classes/TaskJuggler/JournalEntry.html +79 -23
- data/doc/classes/TaskJuggler/JournalEntryList.html +454 -0
- data/doc/classes/TaskJuggler/KeywordArray.html +10 -10
- data/doc/classes/TaskJuggler/KeywordDocumentation.html +171 -170
- data/doc/classes/TaskJuggler/Limits.html +36 -36
- data/doc/classes/TaskJuggler/Limits/Limit.html +30 -30
- data/doc/classes/TaskJuggler/LimitsAttribute.html +40 -40
- data/doc/classes/TaskJuggler/ListAttributeBase.html +20 -20
- data/doc/classes/TaskJuggler/Log.html +145 -107
- data/doc/classes/TaskJuggler/LogicalAttribute.html +65 -36
- data/doc/classes/TaskJuggler/LogicalExpression.html +61 -24
- data/doc/classes/TaskJuggler/LogicalExpressionAttribute.html +20 -20
- data/doc/classes/TaskJuggler/LogicalFlag.html +31 -51
- data/doc/classes/TaskJuggler/LogicalFunction.html +64 -53
- data/doc/classes/TaskJuggler/LogicalOperation.html +103 -55
- data/doc/classes/TaskJuggler/Macro.html +6 -6
- data/doc/classes/TaskJuggler/MacroParser.html +36 -36
- data/doc/classes/TaskJuggler/MacroTable.html +37 -37
- data/doc/classes/TaskJuggler/Message.html +12 -12
- data/doc/classes/TaskJuggler/MessageHandler.html +32 -20
- data/doc/classes/TaskJuggler/Navigator.html +110 -46
- data/doc/classes/TaskJuggler/NavigatorElement.html +449 -0
- data/doc/classes/TaskJuggler/OnShiftCache.html +24 -24
- data/doc/classes/TaskJuggler/Project.html +1158 -893
- data/doc/classes/TaskJuggler/ProjectFileParser.html +94 -91
- data/doc/classes/TaskJuggler/PropertyAttribute.html +20 -20
- data/doc/classes/TaskJuggler/PropertyList.html +225 -155
- data/doc/classes/TaskJuggler/PropertySet.html +375 -332
- data/doc/classes/TaskJuggler/PropertyTreeNode.html +750 -510
- data/doc/classes/TaskJuggler/Query.html +404 -139
- data/doc/classes/TaskJuggler/{RTPNavigator.html → RTFNavigator.html} +57 -56
- data/doc/classes/TaskJuggler/RTFQuery.html +343 -0
- data/doc/classes/TaskJuggler/{RTPReport.html → RTFReport.html} +70 -67
- data/doc/classes/TaskJuggler/RealFormat.html +18 -18
- data/doc/classes/TaskJuggler/RealFormatAttribute.html +10 -10
- data/doc/classes/TaskJuggler/ReferenceAttribute.html +107 -40
- data/doc/classes/TaskJuggler/RemoteServiceManager.html +335 -0
- data/doc/classes/TaskJuggler/Report.html +66 -64
- data/doc/classes/TaskJuggler/ReportBase.html +112 -123
- data/doc/classes/TaskJuggler/ReportContext.html +43 -38
- data/doc/classes/TaskJuggler/ReportServer.html +320 -0
- data/doc/classes/TaskJuggler/ReportTable.html +42 -42
- data/doc/classes/TaskJuggler/ReportTableCell.html +221 -129
- data/doc/classes/TaskJuggler/ReportTableColumn.html +27 -27
- data/doc/classes/TaskJuggler/ReportTableLegend.html +24 -24
- data/doc/classes/TaskJuggler/ReportTableLine.html +126 -80
- data/doc/classes/TaskJuggler/Resource.html +12 -12
- data/doc/classes/TaskJuggler/ResourceListAttribute.html +82 -47
- data/doc/classes/TaskJuggler/ResourceListRE.html +43 -39
- data/doc/classes/TaskJuggler/ResourceScenario.html +413 -321
- data/doc/classes/TaskJuggler/RichText.html +64 -248
- data/doc/classes/TaskJuggler/RichTextAttribute.html +94 -30
- data/doc/classes/TaskJuggler/RichTextDocument.html +87 -85
- data/doc/classes/TaskJuggler/RichTextElement.html +456 -363
- data/doc/classes/TaskJuggler/RichTextException.html +13 -13
- data/doc/classes/TaskJuggler/{RichTextProtocolExample.html → RichTextFunctionExample.html} +64 -63
- data/doc/classes/TaskJuggler/{RichTextProtocolHandler.html → RichTextFunctionHandler.html} +42 -36
- data/doc/classes/TaskJuggler/RichTextIntermediate.html +563 -0
- data/doc/classes/TaskJuggler/RichTextParser.html +54 -51
- data/doc/classes/TaskJuggler/RichTextScanner.html +94 -92
- data/doc/classes/TaskJuggler/RichTextSnip.html +96 -60
- data/doc/classes/TaskJuggler/RichTextSyntaxRules.html +369 -227
- data/doc/classes/TaskJuggler/Scenario.html +6 -6
- data/doc/classes/TaskJuggler/ScenarioData.html +37 -37
- data/doc/classes/TaskJuggler/ScenarioListAttribute.html +31 -31
- data/doc/classes/TaskJuggler/Scoreboard.html +66 -66
- data/doc/classes/TaskJuggler/Shift.html +18 -18
- data/doc/classes/TaskJuggler/ShiftAssignment.html +54 -54
- data/doc/classes/TaskJuggler/ShiftAssignments.html +78 -78
- data/doc/classes/TaskJuggler/ShiftAssignmentsAttribute.html +40 -40
- data/doc/classes/TaskJuggler/ShiftScenario.html +24 -24
- data/doc/classes/TaskJuggler/SortListAttribute.html +22 -22
- data/doc/classes/TaskJuggler/SourceFileInfo.html +12 -12
- data/doc/classes/TaskJuggler/StringAttribute.html +30 -30
- data/doc/classes/TaskJuggler/SymbolAttribute.html +20 -20
- data/doc/classes/TaskJuggler/SyntaxReference.html +42 -42
- data/doc/classes/TaskJuggler/TOCEntry.html +12 -12
- data/doc/classes/TaskJuggler/TSResourceRecord.html +197 -0
- data/doc/classes/TaskJuggler/TSTaskRecord.html +215 -0
- data/doc/classes/TaskJuggler/TableColumnDefinition.html +64 -43
- data/doc/classes/TaskJuggler/TableOfContents.html +18 -18
- data/doc/classes/TaskJuggler/TableReport.html +447 -468
- data/doc/classes/TaskJuggler/Task.html +12 -12
- data/doc/classes/TaskJuggler/TaskDependency.html +12 -12
- data/doc/classes/TaskJuggler/TaskListAttribute.html +47 -47
- data/doc/classes/TaskJuggler/TaskListRE.html +43 -39
- data/doc/classes/TaskJuggler/TaskScenario.html +529 -282
- data/doc/classes/TaskJuggler/TextParser.html +215 -194
- data/doc/classes/TaskJuggler/TextParser/Pattern.html +97 -97
- data/doc/classes/TaskJuggler/TextParser/Rule.html +84 -84
- data/doc/classes/TaskJuggler/TextParser/StackElement.html +16 -15
- data/doc/classes/TaskJuggler/TextParser/TextParserResultArray.html +12 -12
- data/doc/classes/TaskJuggler/TextParser/TokenDoc.html +6 -6
- data/doc/classes/TaskJuggler/TextReport.html +77 -74
- data/doc/classes/TaskJuggler/TextScanner.html +294 -281
- data/doc/classes/TaskJuggler/TextScanner/BufferStreamHandle.html +70 -70
- data/doc/classes/TaskJuggler/TextScanner/FileStreamHandle.html +59 -60
- data/doc/classes/TaskJuggler/TextScanner/StreamHandle.html +12 -12
- data/doc/classes/TaskJuggler/TimeSheetReport.html +406 -0
- data/doc/classes/TaskJuggler/TjException.html +6 -6
- data/doc/classes/TaskJuggler/TjTime.html +522 -513
- data/doc/classes/TaskJuggler/TjpExample.html +25 -25
- data/doc/classes/TaskJuggler/TjpExportRE.html +21 -24
- data/doc/classes/TaskJuggler/TjpSyntaxRules.html +6177 -4318
- data/doc/classes/TaskJuggler/UserManual.html +212 -213
- data/doc/classes/TaskJuggler/WorkingHours.html +49 -49
- data/doc/classes/TaskJuggler/WorkingHoursAttribute.html +53 -53
- data/doc/classes/TaskJuggler/XMLBlob.html +21 -21
- data/doc/classes/TaskJuggler/XMLComment.html +21 -21
- data/doc/classes/TaskJuggler/XMLDocument.html +27 -26
- data/doc/classes/TaskJuggler/XMLElement.html +86 -50
- data/doc/classes/TaskJuggler/XMLNamedText.html +11 -11
- data/doc/classes/TaskJuggler/XMLText.html +36 -36
- data/doc/files/COPYING.html +1 -1
- data/doc/files/README.html +1 -1
- data/doc/files/lib/AccountScenario_rb.html +3 -2
- data/doc/files/lib/Account_rb.html +3 -2
- data/doc/files/lib/Allocation_rb.html +3 -2
- data/doc/files/lib/AppConfig_rb.html +5 -2
- data/doc/files/lib/AttributeBase_rb.html +3 -2
- data/doc/files/lib/AttributeDefinition_rb.html +3 -2
- data/doc/files/lib/Attributes_rb.html +3 -2
- data/doc/files/lib/BatchProcessor_rb.html +4 -3
- data/doc/files/lib/Booking_rb.html +3 -2
- data/doc/files/lib/ChargeSet_rb.html +3 -2
- data/doc/files/lib/Charge_rb.html +3 -2
- data/doc/files/lib/HTMLDocument_rb.html +3 -2
- data/doc/files/lib/Interval_rb.html +3 -2
- data/doc/files/lib/Journal_rb.html +4 -3
- data/doc/files/lib/KeywordArray_rb.html +3 -2
- data/doc/files/lib/KeywordDocumentation_rb.html +3 -2
- data/doc/files/lib/Limits_rb.html +3 -2
- data/doc/files/lib/Log_rb.html +3 -2
- data/doc/files/lib/LogicalExpression_rb.html +3 -2
- data/doc/files/lib/LogicalFunction_rb.html +3 -2
- data/doc/files/lib/LogicalOperation_rb.html +3 -2
- data/doc/files/lib/MacroParser_rb.html +3 -2
- data/doc/files/lib/MacroTable_rb.html +3 -2
- data/doc/files/lib/MessageHandler_rb.html +3 -2
- data/doc/files/lib/Message_rb.html +3 -2
- data/doc/files/lib/ProjectFileParser_rb.html +7 -4
- data/doc/files/lib/Project_rb.html +3 -2
- data/doc/files/lib/PropertyList_rb.html +3 -2
- data/doc/files/lib/PropertySet_rb.html +3 -2
- data/doc/files/lib/PropertyTreeNode_rb.html +3 -2
- data/doc/files/lib/Query_rb.html +3 -2
- data/doc/files/lib/{RTPNavigator_rb.html → RTFNavigator_rb.html} +8 -7
- data/doc/files/lib/RTFQuery_rb.html +121 -0
- data/doc/files/lib/{RTPReport_rb.html → RTFReport_rb.html} +8 -7
- data/doc/files/lib/RealFormat_rb.html +3 -2
- data/doc/files/lib/RemoteServiceManager_rb.html +117 -0
- data/doc/files/lib/ReportServer_rb.html +107 -0
- data/doc/files/lib/ResourceScenario_rb.html +3 -2
- data/doc/files/lib/Resource_rb.html +3 -2
- data/doc/files/lib/RichTextDocument_rb.html +4 -3
- data/doc/files/lib/RichTextElement_rb.html +3 -2
- data/doc/files/lib/{RichTextProtocolExample_rb.html → RichTextFunctionExample_rb.html} +8 -7
- data/doc/files/lib/{RichTextProtocolHandler_rb.html → RichTextFunctionHandler_rb.html} +7 -6
- data/doc/files/lib/RichTextParser_rb.html +3 -2
- data/doc/files/lib/RichTextScanner_rb.html +3 -2
- data/doc/files/lib/RichTextSnip_rb.html +3 -2
- data/doc/files/lib/RichTextSyntaxRules_rb.html +3 -2
- data/doc/files/lib/RichText_rb.html +3 -2
- data/doc/files/lib/ScenarioData_rb.html +3 -2
- data/doc/files/lib/Scenario_rb.html +3 -2
- data/doc/files/lib/Scoreboard_rb.html +3 -2
- data/doc/files/lib/ShiftAssignments_rb.html +3 -2
- data/doc/files/lib/ShiftScenario_rb.html +3 -2
- data/doc/files/lib/Shift_rb.html +3 -2
- data/doc/files/lib/SourceFileInfo_rb.html +3 -2
- data/doc/files/lib/SyntaxReference_rb.html +3 -2
- data/doc/files/lib/TOCEntry_rb.html +3 -2
- data/doc/files/lib/TableColumnDefinition_rb.html +3 -2
- data/doc/files/lib/TableOfContents_rb.html +3 -2
- data/doc/files/lib/TaskDependency_rb.html +3 -2
- data/doc/files/lib/TaskJuggler_rb.html +7 -2
- data/doc/files/lib/TaskScenario_rb.html +3 -2
- data/doc/files/lib/Task_rb.html +3 -2
- data/doc/files/lib/TextParser/Pattern_rb.html +4 -3
- data/doc/files/lib/TextParser/Rule_rb.html +4 -3
- data/doc/files/lib/TextParser/StackElement_rb.html +4 -3
- data/doc/files/lib/TextParser/TokenDoc_rb.html +4 -3
- data/doc/files/lib/TextParser_rb.html +3 -2
- data/doc/files/lib/TextScanner_rb.html +3 -2
- data/doc/files/lib/Tj3Config_rb.html +3 -2
- data/doc/files/lib/TjException_rb.html +3 -2
- data/doc/files/lib/TjTime_rb.html +3 -2
- data/doc/files/lib/TjpExample_rb.html +3 -2
- data/doc/files/lib/TjpSyntaxRules_rb.html +3 -2
- data/doc/files/lib/UTF8String_rb.html +14 -6
- data/doc/files/lib/UserManual_rb.html +6 -3
- data/doc/files/lib/WorkingHours_rb.html +3 -2
- data/doc/files/lib/XMLDocument_rb.html +3 -2
- data/doc/files/lib/XMLElement_rb.html +3 -2
- data/doc/files/lib/deep_copy_rb.html +3 -2
- data/doc/files/lib/reports/CSVFile_rb.html +3 -2
- data/doc/files/lib/reports/ColumnTable_rb.html +3 -2
- data/doc/files/lib/reports/GanttChart_rb.html +3 -2
- data/doc/files/lib/reports/GanttContainer_rb.html +3 -2
- data/doc/files/lib/reports/GanttHeaderScaleItem_rb.html +3 -2
- data/doc/files/lib/reports/GanttHeader_rb.html +3 -2
- data/doc/files/lib/reports/GanttLine_rb.html +3 -2
- data/doc/files/lib/reports/GanttLoadStack_rb.html +3 -2
- data/doc/files/lib/reports/GanttMilestone_rb.html +3 -2
- data/doc/files/lib/reports/GanttRouter_rb.html +3 -2
- data/doc/files/lib/reports/GanttTaskBar_rb.html +3 -2
- data/doc/files/lib/reports/HTMLGraphics_rb.html +3 -2
- data/doc/files/lib/reports/Navigator_rb.html +3 -2
- data/doc/files/lib/reports/ReportBase_rb.html +3 -2
- data/doc/files/lib/reports/ReportContext_rb.html +3 -2
- data/doc/files/lib/reports/ReportTableCell_rb.html +3 -2
- data/doc/files/lib/reports/ReportTableColumn_rb.html +3 -2
- data/doc/files/lib/reports/ReportTableLegend_rb.html +3 -2
- data/doc/files/lib/reports/ReportTableLine_rb.html +3 -2
- data/doc/files/lib/reports/ReportTable_rb.html +3 -2
- data/doc/files/lib/reports/Report_rb.html +7 -2
- data/doc/files/lib/reports/ResourceListRE_rb.html +3 -2
- data/doc/files/lib/reports/TableReport_rb.html +3 -2
- data/doc/files/lib/reports/TaskListRE_rb.html +3 -2
- data/doc/files/lib/reports/TextReport_rb.html +4 -3
- data/doc/files/lib/reports/TimeSheetReport_rb.html +117 -0
- data/doc/files/lib/reports/TjpExportRE_rb.html +3 -2
- data/doc/files/lib/taskjuggler3_rb.html +94 -77
- data/doc/files/lib/tj3client_rb.html +280 -0
- data/doc/files/lib/tj3man_rb.html +10 -9
- data/doc/fr_class_index.html +27 -5
- data/doc/fr_file_index.html +15 -7
- data/doc/fr_method_index.html +1312 -1020
- data/examples/tutorial.tjp +113 -14
- data/gem_spec.rb +2 -1
- data/lib/Account.rb +1 -1
- data/lib/AccountScenario.rb +1 -1
- data/lib/Allocation.rb +1 -1
- data/lib/AppConfig.rb +23 -10
- data/lib/AttributeBase.rb +34 -6
- data/lib/AttributeDefinition.rb +1 -1
- data/lib/Attributes.rb +51 -16
- data/lib/BatchProcessor.rb +204 -77
- data/lib/Booking.rb +1 -1
- data/lib/Charge.rb +1 -1
- data/lib/ChargeSet.rb +1 -1
- data/lib/HTMLDocument.rb +2 -2
- data/lib/Interval.rb +1 -1
- data/lib/Journal.rb +231 -9
- data/lib/KeywordArray.rb +1 -1
- data/lib/KeywordDocumentation.rb +6 -4
- data/lib/Limits.rb +1 -1
- data/lib/Log.rb +8 -1
- data/lib/LogicalExpression.rb +14 -13
- data/lib/LogicalFunction.rb +88 -14
- data/lib/LogicalOperation.rb +124 -53
- data/lib/MacroParser.rb +1 -1
- data/lib/MacroTable.rb +2 -2
- data/lib/Message.rb +1 -1
- data/lib/MessageHandler.rb +7 -3
- data/lib/Project.rb +93 -14
- data/lib/ProjectFileParser.rb +30 -15
- data/lib/PropertyList.rb +103 -36
- data/lib/PropertySet.rb +22 -10
- data/lib/PropertyTreeNode.rb +120 -15
- data/lib/Query.rb +119 -48
- data/lib/{RTPNavigator.rb → RTFNavigator.rb} +11 -10
- data/lib/RTFQuery.rb +166 -0
- data/lib/{RTPReport.rb → RTFReport.rb} +11 -8
- data/lib/RealFormat.rb +1 -1
- data/lib/RemoteServiceManager.rb +80 -0
- data/lib/ReportServer.rb +66 -0
- data/lib/Resource.rb +1 -1
- data/lib/ResourceScenario.rb +48 -19
- data/lib/RichText.rb +98 -41
- data/lib/RichTextDocument.rb +10 -8
- data/lib/RichTextElement.rb +72 -28
- data/lib/{RichTextProtocolExample.rb → RichTextFunctionExample.rb} +8 -7
- data/lib/{RichTextProtocolHandler.rb → RichTextFunctionHandler.rb} +12 -14
- data/lib/RichTextParser.rb +6 -3
- data/lib/RichTextScanner.rb +91 -19
- data/lib/RichTextSnip.rb +8 -3
- data/lib/RichTextSyntaxRules.rb +103 -45
- data/lib/Scenario.rb +1 -1
- data/lib/ScenarioData.rb +2 -2
- data/lib/Scoreboard.rb +1 -1
- data/lib/Shift.rb +1 -1
- data/lib/ShiftAssignments.rb +1 -1
- data/lib/ShiftScenario.rb +1 -1
- data/lib/SourceFileInfo.rb +1 -1
- data/lib/SyntaxReference.rb +2 -2
- data/lib/TOCEntry.rb +1 -1
- data/lib/TableColumnDefinition.rb +59 -16
- data/lib/TableOfContents.rb +1 -1
- data/lib/Task.rb +1 -1
- data/lib/TaskDependency.rb +1 -1
- data/lib/TaskJuggler.rb +31 -8
- data/lib/TaskScenario.rb +165 -16
- data/lib/TextParser.rb +36 -22
- data/lib/TextParser/Pattern.rb +3 -3
- data/lib/TextParser/Rule.rb +2 -2
- data/lib/TextParser/StackElement.rb +4 -3
- data/lib/TextParser/TokenDoc.rb +2 -2
- data/lib/TextScanner.rb +52 -37
- data/lib/Tj3Config.rb +6 -5
- data/lib/TjException.rb +1 -1
- data/lib/TjTime.rb +12 -3
- data/lib/TjpExample.rb +1 -1
- data/lib/TjpSyntaxRules.rb +1044 -150
- data/lib/UTF8String.rb +2 -1
- data/lib/UserManual.rb +18 -70
- data/lib/WorkingHours.rb +3 -3
- data/lib/XMLDocument.rb +3 -2
- data/lib/XMLElement.rb +6 -1
- data/lib/deep_copy.rb +1 -1
- data/lib/reports/CSVFile.rb +1 -1
- data/lib/reports/ColumnTable.rb +9 -9
- data/lib/reports/GanttChart.rb +1 -1
- data/lib/reports/GanttContainer.rb +1 -1
- data/lib/reports/GanttHeader.rb +1 -1
- data/lib/reports/GanttHeaderScaleItem.rb +1 -1
- data/lib/reports/GanttLine.rb +40 -40
- data/lib/reports/GanttLoadStack.rb +1 -1
- data/lib/reports/GanttMilestone.rb +1 -1
- data/lib/reports/GanttRouter.rb +1 -1
- data/lib/reports/GanttTaskBar.rb +1 -1
- data/lib/reports/HTMLGraphics.rb +1 -1
- data/lib/reports/Navigator.rb +149 -22
- data/lib/reports/Report.rb +115 -172
- data/lib/reports/ReportBase.rb +22 -27
- data/lib/reports/ReportContext.rb +29 -15
- data/lib/reports/ReportTable.rb +1 -1
- data/lib/reports/ReportTableCell.rb +120 -27
- data/lib/reports/ReportTableColumn.rb +3 -3
- data/lib/reports/ReportTableLegend.rb +1 -1
- data/lib/reports/ReportTableLine.rb +10 -2
- data/lib/reports/ResourceListRE.rb +5 -1
- data/lib/reports/TableReport.rb +237 -287
- data/lib/reports/TaskListRE.rb +5 -1
- data/lib/reports/TextReport.rb +7 -4
- data/lib/reports/TimeSheetReport.rb +233 -0
- data/lib/reports/TjpExportRE.rb +2 -2
- data/lib/taskjuggler3.rb +27 -11
- data/lib/tj3client.rb +110 -0
- data/lib/tj3man.rb +4 -4
- data/manual/Getting_Started +0 -50
- data/manual/How_To_Contribute +6 -13
- data/manual/Installation +102 -28
- data/manual/Intro +11 -1
- data/manual/Reporting_Bugs +23 -7
- data/manual/Rich_Text_Attributes +59 -6
- data/manual/TaskJuggler_2x_Migration +27 -0
- data/manual/The_TaskJuggler_Syntax +104 -0
- data/manual/Tutorial +10 -9
- data/prj_cfg.rb +8 -2
- data/tasks/csts.rake +1 -1
- data/tasks/manual.rake +5 -3
- data/test/MessageChecker.rb +1 -1
- data/test/TestSuite/HTML-Reports/Alerts.html +172 -0
- data/test/TestSuite/HTML-Reports/Alerts.tjp +77 -0
- data/test/TestSuite/HTML-Reports/CellText.html +758 -0
- data/test/TestSuite/HTML-Reports/CellText.tjp +75 -0
- data/test/TestSuite/HTML-Reports/ColumnPeriods.html +156 -0
- data/test/TestSuite/HTML-Reports/ColumnPeriods.tjp +44 -0
- data/test/TestSuite/HTML-Reports/IsOngoing.html +172 -0
- data/test/TestSuite/HTML-Reports/IsOngoing.tjp +34 -0
- data/test/TestSuite/HTML-Reports/LogicalFunctions.html +80 -0
- data/test/TestSuite/HTML-Reports/LogicalFunctions.tjp +20 -0
- data/test/TestSuite/HTML-Reports/Query.html +31 -0
- data/test/TestSuite/HTML-Reports/Query.tjp +28 -0
- data/test/TestSuite/HTML-Reports/Sorting.tjp +68 -0
- data/test/TestSuite/HTML-Reports/TimeSheet.tjp +69 -0
- data/test/TestSuite/HTML-Reports/UDAQuery.tjp +27 -0
- data/test/TestSuite/HTML-Reports/css/tjmanual.css +52 -0
- data/test/TestSuite/HTML-Reports/css/tjreport.css +195 -0
- data/test/TestSuite/HTML-Reports/depArrows.html +842 -0
- data/test/TestSuite/HTML-Reports/icons/details.png +0 -0
- data/test/TestSuite/HTML-Reports/icons/flag-green.png +0 -0
- data/test/TestSuite/HTML-Reports/icons/flag-red.png +0 -0
- data/test/TestSuite/HTML-Reports/icons/flag-yellow.png +0 -0
- data/test/TestSuite/HTML-Reports/icons/resource.png +0 -0
- data/test/TestSuite/HTML-Reports/icons/resourcegroup.png +0 -0
- data/test/TestSuite/HTML-Reports/icons/task.png +0 -0
- data/test/TestSuite/HTML-Reports/icons/taskgroup.png +0 -0
- data/test/TestSuite/HTML-Reports/reference.tjp +7 -8
- data/test/TestSuite/HTML-Reports/scripts/scripts/wz_tooltip.js +1301 -0
- data/test/TestSuite/HTML-Reports/scripts/wz_tooltip.js +1301 -0
- data/test/TestSuite/Scheduler/Correct/Mandatory.tjp +34 -0
- data/test/TestSuite/Syntax/Correct/Celltext.tjp +2 -1
- data/test/TestSuite/Syntax/Correct/Journal.tjp +2 -2
- data/test/TestSuite/Syntax/Correct/LogicalExpression.tjp +2 -1
- data/test/TestSuite/Syntax/Correct/LogicalFunction.tjp +20 -0
- data/test/TestSuite/Syntax/Correct/Query.tjp +18 -0
- data/test/TestSuite/Syntax/Correct/StatusSheet.tjp +45 -0
- data/test/TestSuite/Syntax/Correct/TimeSheet.tjp +49 -0
- data/test/TestSuite/Syntax/Correct/icons/details.png +0 -0
- data/test/TestSuite/Syntax/Correct/icons/flag-green.png +0 -0
- data/test/TestSuite/Syntax/Correct/icons/flag-red.png +0 -0
- data/test/TestSuite/Syntax/Correct/icons/flag-yellow.png +0 -0
- data/test/TestSuite/Syntax/Correct/icons/resource.png +0 -0
- data/test/TestSuite/Syntax/Correct/icons/resourcegroup.png +0 -0
- data/test/TestSuite/Syntax/Correct/icons/task.png +0 -0
- data/test/TestSuite/Syntax/Correct/icons/taskgroup.png +0 -0
- data/test/TestSuite/Syntax/Correct/scripts/wz_tooltip.js +1301 -0
- data/test/TestSuite/Syntax/Correct/tutorial.tjp +113 -14
- data/test/TestSuite/Syntax/Errors/macro_stack_overflow.tjp +28 -0
- data/test/TestSuite/Syntax/Errors/unsupported_token.tjp +12 -0
- data/test/all.rb +2 -2
- data/test/test_BatchProcessor.rb +42 -13
- data/test/test_CSV-Reports.rb +1 -1
- data/test/test_Journal.rb +176 -0
- data/test/test_Limits.rb +1 -1
- data/test/test_LogicalExpression.rb +14 -5
- data/test/test_MacroTable.rb +1 -1
- data/test/test_Project.rb +1 -1
- data/test/test_PropertySet.rb +1 -1
- data/test/test_Query.rb +1 -1
- data/test/test_RealFormat.rb +1 -1
- data/test/test_RichText.rb +30 -20
- data/test/test_Scheduler.rb +1 -1
- data/test/test_ShiftAssignments.rb +2 -2
- data/test/test_Syntax.rb +1 -1
- data/test/test_TextScanner.rb +1 -1
- data/test/test_TjTime.rb +1 -1
- data/test/test_TjpExample.rb +1 -1
- data/test/test_UTF8String.rb +1 -1
- data/test/test_WorkingHours.rb +1 -1
- data/test/test_deep_copy.rb +2 -2
- metadata +610 -532
- data/doc/files/lib/ms_test_rb.html +0 -90
- data/examples/ContactList.html +0 -1467
- data/examples/Deliveries.html +0 -485
- data/examples/Development.html +0 -2525
- data/examples/Overview.html +0 -747
- data/examples/Resource Graph.html +0 -616
- data/lib/ms_test.rb +0 -27
- data/test/TestSuite/HTML-Reports/reference-export.html +0 -187
data/lib/reports/ReportBase.rb
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
#
|
|
4
4
|
# = ReportBase.rb -- The TaskJuggler III Project Management Software
|
|
5
5
|
#
|
|
6
|
-
# Copyright (c) 2006, 2007, 2008, 2009 by Chris Schlaeger <cs@kde.org>
|
|
6
|
+
# Copyright (c) 2006, 2007, 2008, 2009, 2010 by Chris Schlaeger <cs@kde.org>
|
|
7
7
|
#
|
|
8
8
|
# This program is free software; you can redistribute it and/or modify
|
|
9
9
|
# it under the terms of version 2 of the GNU General Public License as
|
|
@@ -28,7 +28,13 @@ class TaskJuggler
|
|
|
28
28
|
end
|
|
29
29
|
|
|
30
30
|
def generateIntermediateFormat
|
|
31
|
-
|
|
31
|
+
query = @report.project.reportContext.query
|
|
32
|
+
%w( header left center right footer
|
|
33
|
+
prolog headline caption epilog ).each do |name|
|
|
34
|
+
next unless text = a(name)
|
|
35
|
+
|
|
36
|
+
text.functionHandler('query').setQuery(query)
|
|
37
|
+
end
|
|
32
38
|
end
|
|
33
39
|
|
|
34
40
|
def to_html
|
|
@@ -52,11 +58,13 @@ class TaskJuggler
|
|
|
52
58
|
|
|
53
59
|
if resource
|
|
54
60
|
# If we have a resource we need to check that the resource is allocated
|
|
55
|
-
# to the tasks in any of the reported scenarios
|
|
61
|
+
# to the tasks in any of the reported scenarios within the report time
|
|
62
|
+
# frame.
|
|
56
63
|
list.delete_if do |task|
|
|
57
64
|
delete = true
|
|
58
65
|
a('scenarios').each do |scenarioIdx|
|
|
59
|
-
|
|
66
|
+
iv = Interval.new(a('start'), a('end'))
|
|
67
|
+
if task.hasResourceAllocated?(scenarioIdx, iv, resource)
|
|
60
68
|
delete = false
|
|
61
69
|
break;
|
|
62
70
|
end
|
|
@@ -65,26 +73,6 @@ class TaskJuggler
|
|
|
65
73
|
end
|
|
66
74
|
end
|
|
67
75
|
|
|
68
|
-
# Remove all tasks that don't overlap with the reported interval.
|
|
69
|
-
list.delete_if do |task|
|
|
70
|
-
delete = true
|
|
71
|
-
a('scenarios').each do |scenarioIdx|
|
|
72
|
-
iv = Interval.new(task['start', scenarioIdx].nil? ?
|
|
73
|
-
@project['start'] : task['start', scenarioIdx],
|
|
74
|
-
task['end', scenarioIdx].nil? ?
|
|
75
|
-
@project['end'] : task['end', scenarioIdx])
|
|
76
|
-
# Special case to include milestones at the report end.
|
|
77
|
-
if iv.start == iv.end && iv.end == @end
|
|
78
|
-
iv.start = iv.end = iv.start - 1
|
|
79
|
-
end
|
|
80
|
-
if iv.overlaps?(Interval.new(a('start'), a('end')))
|
|
81
|
-
delete = false
|
|
82
|
-
break;
|
|
83
|
-
end
|
|
84
|
-
end
|
|
85
|
-
delete
|
|
86
|
-
end
|
|
87
|
-
|
|
88
76
|
standardFilterOps(list, hideExpr, rollupExpr, resource, taskRoot)
|
|
89
77
|
end
|
|
90
78
|
|
|
@@ -106,7 +94,8 @@ class TaskJuggler
|
|
|
106
94
|
list.delete_if do |resource|
|
|
107
95
|
delete = true
|
|
108
96
|
a('scenarios').each do |scenarioIdx|
|
|
109
|
-
if
|
|
97
|
+
if task.hasResourceAllocated?(scenarioIdx, iv, resource)
|
|
98
|
+
#if resource.allocated?(scenarioIdx, iv, task)
|
|
110
99
|
delete = false
|
|
111
100
|
break;
|
|
112
101
|
end
|
|
@@ -131,10 +120,15 @@ class TaskJuggler
|
|
|
131
120
|
# This function implements the generic filtering functionality for all kinds
|
|
132
121
|
# of lists.
|
|
133
122
|
def standardFilterOps(list, hideExpr, rollupExpr, scopeProperty, root)
|
|
123
|
+
# Make a copy of the current Query.
|
|
124
|
+
query = @project.reportContext.query.dup
|
|
125
|
+
query.scopeProperty = scopeProperty
|
|
126
|
+
|
|
134
127
|
# Remove all properties that the user wants to have hidden.
|
|
135
128
|
if hideExpr
|
|
136
129
|
list.delete_if do |property|
|
|
137
|
-
|
|
130
|
+
query.property = property
|
|
131
|
+
hideExpr.eval(query)
|
|
138
132
|
end
|
|
139
133
|
end
|
|
140
134
|
|
|
@@ -144,7 +138,8 @@ class TaskJuggler
|
|
|
144
138
|
parent = property.parent
|
|
145
139
|
delete = false
|
|
146
140
|
while (parent)
|
|
147
|
-
|
|
141
|
+
query.property = parent
|
|
142
|
+
if rollupExpr.eval(query)
|
|
148
143
|
delete = true
|
|
149
144
|
break
|
|
150
145
|
end
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
#
|
|
4
4
|
# = ReportContext.rb -- The TaskJuggler III Project Management Software
|
|
5
5
|
#
|
|
6
|
-
# Copyright (c) 2006, 2007, 2008, 2009 by Chris Schlaeger <cs@kde.org>
|
|
6
|
+
# Copyright (c) 2006, 2007, 2008, 2009, 2010 by Chris Schlaeger <cs@kde.org>
|
|
7
7
|
#
|
|
8
8
|
# This program is free software; you can redistribute it and/or modify
|
|
9
9
|
# it under the terms of version 2 of the GNU General Public License as
|
|
@@ -12,30 +12,44 @@
|
|
|
12
12
|
|
|
13
13
|
class TaskJuggler
|
|
14
14
|
|
|
15
|
-
#
|
|
16
|
-
# report
|
|
15
|
+
# The ReportContext objects provide some settings that are used during the
|
|
16
|
+
# generation of a report. Reports can be nested, so multiple objects can
|
|
17
|
+
# exist at a time. But there is only one current ReportContext that is
|
|
18
|
+
# always accessable via Project.reportContext.
|
|
17
19
|
class ReportContext
|
|
18
20
|
|
|
19
|
-
attr_reader :project, :report
|
|
20
|
-
attr_accessor :
|
|
21
|
+
attr_reader :project, :report, :query
|
|
22
|
+
attr_accessor :tasks, :resources
|
|
21
23
|
|
|
22
24
|
def initialize(project, report)
|
|
23
25
|
@project = project
|
|
24
26
|
@report = report
|
|
25
|
-
|
|
26
|
-
|
|
27
|
+
queryAttrs = {
|
|
28
|
+
'project' => @project,
|
|
29
|
+
'loadUnit' => @report.get('loadUnit'),
|
|
30
|
+
'numberFormat' => @report.get('numberFormat'),
|
|
31
|
+
'timeFormat' => @report.get('timeFormat'),
|
|
32
|
+
'currencyFormat' => @report.get('currencyFormat'),
|
|
33
|
+
'start' => @report.get('start'),
|
|
34
|
+
'end' => @report.get('end'),
|
|
35
|
+
'costAccount' => @report.get('costAccount'),
|
|
36
|
+
'revenueAccount' => @report.get('revenueAccount')
|
|
37
|
+
}
|
|
38
|
+
@query = Query.new(queryAttrs)
|
|
39
|
+
if (@parent = @project.reportContext)
|
|
27
40
|
# If the new ReportContext is created from within an existing context,
|
|
28
|
-
# this is used as parent context and
|
|
29
|
-
#
|
|
30
|
-
@
|
|
31
|
-
@
|
|
32
|
-
@tasks = parent.tasks
|
|
33
|
-
@resources = parent.resources
|
|
41
|
+
# this is used as parent context and the settings are copied as
|
|
42
|
+
# default initial values.
|
|
43
|
+
@tasks = @parent.tasks.dup
|
|
44
|
+
@resources = @parent.resources.dup
|
|
34
45
|
else
|
|
35
|
-
|
|
36
|
-
|
|
46
|
+
# There is no existing ReportContext yet, so we create one based on
|
|
47
|
+
# the settings of the report.
|
|
48
|
+
@tasks = @project.tasks.dup
|
|
49
|
+
@resources = @project.resources.dup
|
|
37
50
|
end
|
|
38
51
|
end
|
|
39
52
|
|
|
40
53
|
end
|
|
54
|
+
|
|
41
55
|
end
|
data/lib/reports/ReportTable.rb
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
#
|
|
4
4
|
# = ReportTable.rb -- The TaskJuggler III Project Management Software
|
|
5
5
|
#
|
|
6
|
-
# Copyright (c) 2006, 2007, 2008, 2009 by Chris Schlaeger <cs@kde.org>
|
|
6
|
+
# Copyright (c) 2006, 2007, 2008, 2009, 2010 by Chris Schlaeger <cs@kde.org>
|
|
7
7
|
#
|
|
8
8
|
# This program is free software; you can redistribute it and/or modify
|
|
9
9
|
# it under the terms of version 2 of the GNU General Public License as
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
#
|
|
4
4
|
# = ReportTableCell.rb -- The TaskJuggler III Project Management Software
|
|
5
5
|
#
|
|
6
|
-
# Copyright (c) 2006, 2007, 2008, 2009 by Chris Schlaeger <cs@kde.org>
|
|
6
|
+
# Copyright (c) 2006, 2007, 2008, 2009, 2010 by Chris Schlaeger <cs@kde.org>
|
|
7
7
|
#
|
|
8
8
|
# This program is free software; you can redistribute it and/or modify
|
|
9
9
|
# it under the terms of version 2 of the GNU General Public License as
|
|
@@ -20,23 +20,29 @@ class TaskJuggler
|
|
|
20
20
|
class ReportTableCell
|
|
21
21
|
|
|
22
22
|
attr_reader :line
|
|
23
|
-
attr_accessor :data, :
|
|
24
|
-
:
|
|
23
|
+
attr_accessor :data, :category, :hidden, :alignment, :padding,
|
|
24
|
+
:text, :tooltip, :selfcontained,
|
|
25
|
+
:cellColor, :indent, :icon, :fontSize, :fontColor,
|
|
26
|
+
:bold, :width,
|
|
25
27
|
:rows, :columns, :special
|
|
26
28
|
|
|
27
29
|
# Create the ReportTableCell object and initialize the attributes to some
|
|
28
30
|
# default values. _line_ is the ReportTableLine this cell belongs to. _text_
|
|
29
31
|
# is the text that should appear in the cell. _headerCell_ is a flag that
|
|
30
32
|
# must be true only for table header cells.
|
|
31
|
-
def initialize(line, text =
|
|
33
|
+
def initialize(line, query, text = nil, headerCell = false)
|
|
32
34
|
@line = line
|
|
33
35
|
@line.addCell(self) if line
|
|
34
36
|
|
|
35
37
|
@headerCell = headerCell
|
|
36
|
-
#
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
38
|
+
# A copy of a Query object that is needed to access project data via the
|
|
39
|
+
# query function.
|
|
40
|
+
@query = query ? query.dup : nil
|
|
41
|
+
# The cell textual content. This may be a String or a
|
|
42
|
+
# RichTextIntermediate object.
|
|
43
|
+
self.text = text || ''
|
|
44
|
+
# A custom text for the tooltip.
|
|
45
|
+
@tooltip = nil
|
|
40
46
|
# The original data of the cell content (optional, nil if not provided)
|
|
41
47
|
@data = nil
|
|
42
48
|
@category = nil
|
|
@@ -48,12 +54,16 @@ class TaskJuggler
|
|
|
48
54
|
# Whether or not to indent the cell. If not nil, it is a Fixnum
|
|
49
55
|
# indicating the indentation level.
|
|
50
56
|
@indent = nil
|
|
57
|
+
# The basename of the icon file
|
|
58
|
+
@icon = nil
|
|
51
59
|
@fontSize = nil
|
|
52
|
-
@
|
|
60
|
+
@cellColor = nil
|
|
61
|
+
@fontColor = nil
|
|
53
62
|
@bold = false
|
|
54
63
|
@width = nil
|
|
55
64
|
@rows = 1
|
|
56
65
|
@columns = 1
|
|
66
|
+
@selfcontained = false
|
|
57
67
|
# Ignore everything and use this reference to generate the output.
|
|
58
68
|
@special = nil
|
|
59
69
|
end
|
|
@@ -63,6 +73,7 @@ class TaskJuggler
|
|
|
63
73
|
# with.
|
|
64
74
|
def ==(c)
|
|
65
75
|
@text == c.text &&
|
|
76
|
+
@tooltip == c.tooltip &&
|
|
66
77
|
@alignment == c.alignment &&
|
|
67
78
|
@padding == c.padding &&
|
|
68
79
|
@indent == c.indent &&
|
|
@@ -79,44 +90,100 @@ class TaskJuggler
|
|
|
79
90
|
attribs['rowspan'] = "#{@rows}" if @rows > 1
|
|
80
91
|
attribs['colspan'] = "#{@columns}" if @columns > 1
|
|
81
92
|
attribs['class'] = @category ? @category : 'tabcell'
|
|
93
|
+
attribs['style'] = "background-color: #{@cellColor}; " if @cellColor
|
|
82
94
|
cell = XMLElement.new('td', attribs)
|
|
83
95
|
|
|
84
96
|
# Determine cell style
|
|
85
97
|
alignSymbols = [ :left, :center, :right ]
|
|
86
98
|
aligns = %w( left center right)
|
|
87
99
|
style = "text-align:#{aligns[alignSymbols.index(@alignment)]}; "
|
|
100
|
+
paddingLeft = paddingRight = 0
|
|
88
101
|
if @indent && @alignment != :center
|
|
89
102
|
if @alignment == :left
|
|
90
|
-
|
|
91
|
-
|
|
103
|
+
paddingLeft = @padding + @indent * 8
|
|
104
|
+
paddingRight = @padding
|
|
92
105
|
elsif @alignment == :right
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
(@line.table.maxIndent - @indent) * 8}px; "
|
|
106
|
+
paddingLeft = @padding
|
|
107
|
+
paddingRight = @padding + (@line.table.maxIndent - @indent) * 8
|
|
96
108
|
end
|
|
109
|
+
style += "padding-left:#{paddingLeft}px; " unless paddingLeft == 3
|
|
110
|
+
style += "padding-right:#{paddingRight}px; " unless paddingRight == 3
|
|
97
111
|
elsif @padding != 3
|
|
98
112
|
style += "padding-left:#{@padding}px; padding-right:#{@padding}px; "
|
|
113
|
+
paddingLeft = paddingRight = @padding
|
|
99
114
|
end
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
115
|
+
style += "width:#{@width - paddingLeft - paddingRight}px; " if @width
|
|
116
|
+
style += 'font-weight:bold; ' if @bold
|
|
117
|
+
|
|
118
|
+
# If we have a RichText content and a width limit, we enable line
|
|
119
|
+
# wrapping.
|
|
120
|
+
if @text.is_a?(RichTextIntermediate) && @width
|
|
121
|
+
style += "white-space:normal; "
|
|
103
122
|
end
|
|
104
|
-
|
|
105
|
-
|
|
123
|
+
|
|
124
|
+
style += "font-size: #{@fontSize}px; " if fontSize
|
|
125
|
+
if @fontColor
|
|
126
|
+
style += "color:#{@fontColor}; "
|
|
106
127
|
end
|
|
107
|
-
|
|
108
|
-
if @text.is_a?(TaskJuggler::RichText) && @line && @line.table.equiLines
|
|
128
|
+
if @text.is_a?(RichTextIntermediate) && @line && @line.table.equiLines
|
|
109
129
|
style += "height:#{@line.height - 3}px; "
|
|
110
130
|
end
|
|
111
131
|
cell << (div = XMLElement.new('div',
|
|
112
132
|
'class' => @category ? 'celldiv' : 'headercelldiv', 'style' => style))
|
|
113
133
|
|
|
114
|
-
if
|
|
115
|
-
div <<
|
|
116
|
-
|
|
134
|
+
if @icon && !@selfcontained
|
|
135
|
+
div << XMLElement.new('img', 'src' => "icons/#{@icon}.png",
|
|
136
|
+
'align' => 'top',
|
|
137
|
+
'style' => 'margin-right:3px;' +
|
|
138
|
+
'margin-bottom:2px')
|
|
139
|
+
end
|
|
140
|
+
|
|
141
|
+
return cell if @text.nil?
|
|
142
|
+
|
|
143
|
+
if @text.respond_to?('functionHandler') && @text.functionHandler('query')
|
|
144
|
+
@text.functionHandler('query').setQuery(@query)
|
|
145
|
+
end
|
|
146
|
+
|
|
147
|
+
shortText, singleLine = shortVersion(@text)
|
|
148
|
+
tooltip = nil
|
|
149
|
+
if (@line && @line.table.equiLines && (!singleLine || @width )) ||
|
|
150
|
+
!@category
|
|
151
|
+
# The cell is size-limited. We only put a shortened plain-text version
|
|
152
|
+
# in the cell and provide the full content via a tooltip.
|
|
153
|
+
div << XMLText.new(shortText)
|
|
154
|
+
tooltip = @text if @text != shortText
|
|
117
155
|
else
|
|
118
|
-
|
|
119
|
-
|
|
156
|
+
# The cell will adjust to the size of the content.
|
|
157
|
+
if @text.is_a?(RichTextIntermediate)
|
|
158
|
+
# Don't put the @text into a <div> but a <span>.
|
|
159
|
+
@text.blockMode = false #if singleLine
|
|
160
|
+
div << @text.to_html
|
|
161
|
+
else
|
|
162
|
+
div << XMLText.new(shortText)
|
|
163
|
+
end
|
|
164
|
+
end
|
|
165
|
+
|
|
166
|
+
# Overwrite the tooltip if the user has specified a custom tooltip.
|
|
167
|
+
tooltip = @tooltip if @tooltip
|
|
168
|
+
if tooltip && !tooltip.empty? && !@selfcontained
|
|
169
|
+
if tooltip.respond_to?('functionHandler') &&
|
|
170
|
+
tooltip.functionHandler('query')
|
|
171
|
+
tooltip.functionHandler('query').setQuery(@query)
|
|
172
|
+
end
|
|
173
|
+
div['onmouseover'] = "TagToTip('#{cell.object_id}')"
|
|
174
|
+
div['onmouseout'] = 'UnTip()'
|
|
175
|
+
div << (ltDiv = XMLElement.new('div',
|
|
176
|
+
'style' => 'position:fixed; ' +
|
|
177
|
+
'visibility:hidden',
|
|
178
|
+
'id' => "#{cell.object_id}"))
|
|
179
|
+
ltDiv << (tooltip.respond_to?('to_html') ? tooltip.to_html :
|
|
180
|
+
XMLText.new(tooltip))
|
|
181
|
+
|
|
182
|
+
div << XMLElement.new('img', 'src' => 'icons/details.png',
|
|
183
|
+
'width' => '6px',
|
|
184
|
+
'style' => 'vertical-align:top; ' +
|
|
185
|
+
'margin:2px; ' +
|
|
186
|
+
'top:5px')
|
|
120
187
|
end
|
|
121
188
|
|
|
122
189
|
cell
|
|
@@ -132,8 +199,34 @@ class TaskJuggler
|
|
|
132
199
|
elsif @data && @data.is_a?(String)
|
|
133
200
|
csv[-1] << indent + @data
|
|
134
201
|
elsif @text
|
|
135
|
-
|
|
202
|
+
if @text.respond_to?('functionHandler')
|
|
203
|
+
@text.functionHandler('query').setQuery(@query)
|
|
204
|
+
end
|
|
205
|
+
csv[-1] << indent + shortVersion(@text)[0]
|
|
206
|
+
end
|
|
207
|
+
end
|
|
208
|
+
|
|
209
|
+
private
|
|
210
|
+
|
|
211
|
+
# Convert a RichText String into a small one-line plain text
|
|
212
|
+
# version that fits the column.
|
|
213
|
+
def shortVersion(itext)
|
|
214
|
+
text = itext.to_s
|
|
215
|
+
singleLine = true
|
|
216
|
+
modified = false
|
|
217
|
+
if text.include?("\n")
|
|
218
|
+
text = text[0, text.index("\n")]
|
|
219
|
+
singleLine = false
|
|
220
|
+
modified = true
|
|
221
|
+
end
|
|
222
|
+
# Assuming an average character width of 9 pixels
|
|
223
|
+
if @width && (text.length > (@width / 9))
|
|
224
|
+
text = text[0, @width / 9]
|
|
225
|
+
modified = shortened = true
|
|
136
226
|
end
|
|
227
|
+
# Add three dots to show that there is more info available.
|
|
228
|
+
text += "..." if modified
|
|
229
|
+
[ text, singleLine ]
|
|
137
230
|
end
|
|
138
231
|
|
|
139
232
|
end
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
#
|
|
4
4
|
# = ReportTableColumn.rb -- The TaskJuggler III Project Management Software
|
|
5
5
|
#
|
|
6
|
-
# Copyright (c) 2006, 2007, 2008, 2009 by Chris Schlaeger <cs@kde.org>
|
|
6
|
+
# Copyright (c) 2006, 2007, 2008, 2009, 2010 by Chris Schlaeger <cs@kde.org>
|
|
7
7
|
#
|
|
8
8
|
# This program is free software; you can redistribute it and/or modify
|
|
9
9
|
# it under the terms of version 2 of the GNU General Public License as
|
|
@@ -42,9 +42,9 @@ class TaskJuggler
|
|
|
42
42
|
definition.column = self if definition
|
|
43
43
|
|
|
44
44
|
# Create the 2 cells of the header.
|
|
45
|
-
@cell1 = ReportTableCell.new(nil, title, true)
|
|
45
|
+
@cell1 = ReportTableCell.new(nil, nil, title, true)
|
|
46
46
|
@cell1.padding = 5
|
|
47
|
-
@cell2 = ReportTableCell.new(nil, '', true)
|
|
47
|
+
@cell2 = ReportTableCell.new(nil, nil, '', true)
|
|
48
48
|
# Header text is always bold.
|
|
49
49
|
@cell1.bold = @cell2.bold = true
|
|
50
50
|
# This variable is set to true if the column requires a scrollbar later
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
#
|
|
4
4
|
# = ReportTableLegend.rb -- The TaskJuggler III Project Management Software
|
|
5
5
|
#
|
|
6
|
-
# Copyright (c) 2006, 2007, 2008, 2009 by Chris Schlaeger <cs@kde.org>
|
|
6
|
+
# Copyright (c) 2006, 2007, 2008, 2009, 2010 by Chris Schlaeger <cs@kde.org>
|
|
7
7
|
#
|
|
8
8
|
# This program is free software; you can redistribute it and/or modify
|
|
9
9
|
# it under the terms of version 2 of the GNU General Public License as
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
#
|
|
4
4
|
# = ReportTableLine.rb -- The TaskJuggler III Project Management Software
|
|
5
5
|
#
|
|
6
|
-
# Copyright (c) 2006, 2007, 2008, 2009 by Chris Schlaeger <cs@kde.org>
|
|
6
|
+
# Copyright (c) 2006, 2007, 2008, 2009, 2010 by Chris Schlaeger <cs@kde.org>
|
|
7
7
|
#
|
|
8
8
|
# This program is free software; you can redistribute it and/or modify
|
|
9
9
|
# it under the terms of version 2 of the GNU General Public License as
|
|
@@ -17,7 +17,8 @@ class TaskJuggler
|
|
|
17
17
|
class ReportTableLine
|
|
18
18
|
|
|
19
19
|
attr_reader :table, :property, :scopeLine
|
|
20
|
-
attr_accessor :height, :indentation, :fontSize, :
|
|
20
|
+
attr_accessor :height, :indentation, :fontSize, :bold,
|
|
21
|
+
:no, :lineNo, :subLineNo
|
|
21
22
|
|
|
22
23
|
# Create a ReportTableCell object and initialize the variables with default
|
|
23
24
|
# values. _table_ is a reference to the ReportTable object this line belongs
|
|
@@ -39,6 +40,8 @@ class TaskJuggler
|
|
|
39
40
|
@indentation = 0
|
|
40
41
|
# The factor used to enlarge or shrink the font size for this line.
|
|
41
42
|
@fontSize = 12
|
|
43
|
+
# Specifies whether the whole line should be in bold type or not.
|
|
44
|
+
@bold = false
|
|
42
45
|
# Counter that counts primary and nested lines separately. It restarts
|
|
43
46
|
# with 0 for each new nested line set. Scenario lines don't count.
|
|
44
47
|
@no = nil
|
|
@@ -63,6 +66,11 @@ class TaskJuggler
|
|
|
63
66
|
@cells << cell
|
|
64
67
|
end
|
|
65
68
|
|
|
69
|
+
# Return the scope property or nil
|
|
70
|
+
def scopeProperty
|
|
71
|
+
@scopeLine ? @scopeLine.property : nil
|
|
72
|
+
end
|
|
73
|
+
|
|
66
74
|
# Return this line as a set of XMLElement that represent the line in HTML.
|
|
67
75
|
def to_html
|
|
68
76
|
style = ""
|