Skip to content

Issue #284: Standardize chart save/export filenames#288

Merged
erikdarlingdata merged 1 commit into
devfrom
worktree-issue-284-chart-export
Feb 25, 2026
Merged

Issue #284: Standardize chart save/export filenames#288
erikdarlingdata merged 1 commit into
devfrom
worktree-issue-284-chart-export

Conversation

@erikdarlingdata
Copy link
Copy Markdown
Owner

Summary

  • Add chart right-click context menu (Copy Image, Save Image As, Open in New Window, Revert, Export CSV) to all 21 Lite charts — previously Lite had no chart export and defaulted to ScottPlot's ScottPlot.png
  • Standardize on yyyy-MM-dd_HH-mm-ss timestamp format for all chart filenames across both apps
  • Consolidate Dashboard's duplicate SetupChartSaveMenu instance method (~200 lines) into the shared TabHelpers.SetupChartContextMenu
  • Add context menus to 2 Current Waits charts that had none

Closes #284

Test plan

  • Both apps build with 0 errors
  • Lite: right-click any chart shows 5-item context menu
  • Lite: Save Image As defaults to {ChartName}_{yyyy-MM-dd_HH-mm-ss}.png
  • Dashboard: all ServerTab charts use TabHelpers.SetupChartContextMenu
  • Dashboard: Current Waits charts now have context menu
  • Double-click any chart to autoscale/revert

🤖 Generated with Claude Code

… and Lite

Add chart right-click context menu to all 21 Lite charts (Copy Image, Save Image As,
Open in New Window, Revert, Export CSV) with descriptive filenames using yyyy-MM-dd_HH-mm-ss
timestamp format. Consolidate Dashboard's duplicate SetupChartSaveMenu into the shared
TabHelpers.SetupChartContextMenu, and add context menus to the 2 Current Waits charts
that had none.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@erikdarlingdata erikdarlingdata merged commit 822eba3 into dev Feb 25, 2026
3 checks passed
@erikdarlingdata erikdarlingdata deleted the worktree-issue-284-chart-export branch February 25, 2026 17:37
pull Bot pushed a commit to ehtick/PerformanceMonitor that referenced this pull request Apr 29, 2026
…manceStudio

Ports PerformanceStudio PRs erikdarlingdata#285 and erikdarlingdata#288 (net result; the temporary R/D/G
overlay from erikdarlingdata#285 was replaced by real icons in erikdarlingdata#288).

PlanIconMapper.GetIconName now takes optional storageType and logicalOp:
- Columnstore scans (Clustered/Index Scan with Storage="ColumnStore" on the
  Object element) route to the columnstore_index_* icons. Covers both CCI
  and NCCI for scan/delete/insert/update/merge.
- The three Parallelism subtypes (Repartition/Distribute/Gather Streams)
  route to their own icons instead of all sharing parallelism.png.

ShowPlanParser: the IconName assignment moves from immediately after PhysicalOp
parsing to after StorageType and LogicalOp are populated, so the new routing
has the inputs it needs.

Three new icons (MIT-licensed contribution from @rferraton via PS erikdarlingdata#288) added
to both Dashboard and Lite Resources/PlanIcons. The existing Resource glob
in each csproj picks them up automatically.

Last upstream sync from PerformanceStudio was 2026-04-16 (erikdarlingdata#856), scoped to
PlanAnalyzer + BenefitScorer. This is a follow-up scoped to plan-viewer
icon routing.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant