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