lib/reports/TableReport.rb in taskjuggler-0.0.5 vs lib/reports/TableReport.rb in taskjuggler-0.0.6
- old
+ new
@@ -24,37 +24,39 @@
class TableReport < ReportBase
attr_reader :legend
@@propertiesById = {
- # ID Header Indent Align Scen Spec.
- 'alert' => [ 'Alert', true, :left, false ],
- 'alertmessage' => [ 'Alert Message', false, :left, false ],
- 'alertsummary' => [ 'Alert Summary', false, :left, false ],
- 'alerttrend' => [ 'Alert Trend', false, :left, false ],
- 'complete' => [ 'Completion', false, :right, true ],
- 'cost' => [ 'Cost', true, :right, true ],
- 'duration' => [ 'Duration', true, :right, true ],
- 'effort' => [ 'Effort', true, :right, true ],
- 'effortdone' => [ 'Effort Done', true, :right, true ],
- 'effortleft' => [ 'Effort Left', true, :right, true ],
- 'freetime' => [ 'Free Time', true, :right, true ],
- 'followers' => [ 'Followers', false, :left, true ],
- 'id' => [ 'Id', false, :left, false ],
- 'journal' => [ 'Journal', false, :left, false ],
- 'line' => [ 'Line No.', false, :right, false ],
- 'name' => [ 'Name', true, :left, false ],
- 'no' => [ 'No.', false, :right, false ],
- 'precursors' => [ 'Precursors', false, :left, true ],
- 'rate' => [ 'Rate', true, :right, true ],
- 'resources' => [ 'Resources', false, :left, true ],
- 'responsible' => [ 'Responsible', false, :left, true ],
- 'revenue' => [ 'Revenue', true, :right, true ],
- 'scenario' => [ 'Scenario', false, :left, true ],
- 'status' => [ 'Status', false, :left, true ],
- 'targets' => [ 'Targets', false, :left, true ],
- 'wbs' => [ 'WBS', false, :left, false ]
+ # ID Header Indent Align Scen Spec.
+ 'alert' => [ 'Alert', true, :left, false ],
+ 'alertmessages' => [ 'Alert Messages', false, :left, false ],
+ 'alertsummaries' => [ 'Alert Summaries', false, :left, false ],
+ 'alerttrend' => [ 'Alert Trend', false, :left, false ],
+ 'complete' => [ 'Completion', false, :right, true ],
+ 'cost' => [ 'Cost', true, :right, true ],
+ 'duration' => [ 'Duration', true, :right, true ],
+ 'effort' => [ 'Effort', true, :right, true ],
+ 'effortdone' => [ 'Effort Done', true, :right, true ],
+ 'effortleft' => [ 'Effort Left', true, :right, true ],
+ 'freetime' => [ 'Free Time', true, :right, true ],
+ 'followers' => [ 'Followers', false, :left, true ],
+ 'id' => [ 'Id', false, :left, false ],
+ 'journal' => [ 'Journal', false, :left, false ],
+ 'journalmessages' => [ 'Journal Messages', false, :left, false ],
+ 'journalsummaries' => [ 'Journal Summaries', false, :left, false ],
+ 'line' => [ 'Line No.', false, :right, false ],
+ 'name' => [ 'Name', true, :left, false ],
+ 'no' => [ 'No.', false, :right, false ],
+ 'precursors' => [ 'Precursors', false, :left, true ],
+ 'rate' => [ 'Rate', true, :right, true ],
+ 'resources' => [ 'Resources', false, :left, true ],
+ 'responsible' => [ 'Responsible', false, :left, true ],
+ 'revenue' => [ 'Revenue', true, :right, true ],
+ 'scenario' => [ 'Scenario', false, :left, true ],
+ 'status' => [ 'Status', false, :left, true ],
+ 'targets' => [ 'Targets', false, :left, true ],
+ 'wbs' => [ 'WBS', false, :left, false ]
}
@@propertiesByType = {
# Type Indent Align
DateAttribute => [ false, :left ],
FixnumAttribute => [ false, :right ],
@@ -82,10 +84,13 @@
# Turn the TableReport into an equivalent HTML element tree.
def to_html
html = []
+ html << XMLComment.new("Dynamic Report ID: " +
+ "#{@report.project.reportContexts.last.
+ dynamicReportId}")
html << rt_to_html('header')
html << (tableFrame = generateHtmlTableFrame)
# Now generate the actual table with the data.
tableFrame << generateHtmlTableRow do
@@ -331,11 +336,11 @@
# Init the variable to get a larger scope
line = nil
taskList.each do |task|
# Get the current Query from the report context and create a copy. We
# are going to modify it.
- query = @project.reportContext.query.dup
+ query = @project.reportContexts.last.query.dup
query.property = task
query.scopeProperty = scopeLine ? scopeLine.property : nil
no += 1
Log.activity if lineNo % 10 == 0
@@ -361,11 +366,11 @@
# If we have a resourceList we generate nested lines for each of the
# resources that are assigned to this task and pass the user-defined
# filter.
resourceList.setSorting(a('sortResources'))
assignedResourceList = filterResourceList(resourceList, task,
- a('hideResource'), a('rollupResource'))
+ a('hideResource'), a('rollupResource'), a('openNodes'))
assignedResourceList.sort!
lineNo = generateResourceList(assignedResourceList, nil, line)
end
end
lineNo
@@ -395,11 +400,11 @@
# Init the variable to get a larger scope
line = nil
resourceList.each do |resource|
# Get the current Query from the report context and create a copy. We
# are going to modify it.
- query = @project.reportContext.query.dup
+ query = @project.reportContexts.last.query.dup
query.property = resource
query.scopeProperty = scopeLine ? scopeLine.property : nil
no += 1
Log.activity if lineNo % 10 == 0
@@ -425,12 +430,12 @@
# If we have a taskList we generate nested lines for each of the
# tasks that the resource is assigned to and pass the user-defined
# filter.
taskList.setSorting(a('sortTasks'))
assignedTaskList = filterTaskList(taskList, resource,
- a('hideTask'),
- a('rollupTask'))
+ a('hideTask'), a('rollupTask'),
+ a('openNodes'))
assignedTaskList.sort!
lineNo = generateTaskList(assignedTaskList, nil, line)
end
end
lineNo
@@ -627,10 +632,15 @@
# Replace the cell background color if the user has requested a custom
# color.
cellColor = columnDef.cellColor.getPattern(query)
cell.cellColor = cellColor if cellColor
+ # Replace the default cell alignment if the user has requested a custom
+ # alignment.
+ hAlign = columnDef.hAlign.getPattern(query)
+ cell.alignment = hAlign if hAlign
+
# If the user has requested a custom tooltip, add it to the cell.
cell.tooltip = columnDef.tooltip.getPattern(query) || nil
checkCellText(cell)
@@ -707,9 +717,14 @@
# Replace the font color setting if the user has requested a custom
# color.
fontColor = columnDef.fontColor.getPattern(query)
cell.fontColor = fontColor if fontColor
+
+ # Replace the default cell alignment if the user has requested a custom
+ # alignment.
+ hAlign = columnDef.hAlign.getPattern(query)
+ cell.alignment = hAlign if hAlign
# Register the custom tooltip if the user has requested one.
cdTooltip = columnDef.tooltip.getPattern(query)
cell.tooltip = cdTooltip if cdTooltip