Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Timeline density improvements and refactoring #977

Merged
merged 29 commits into from
Nov 10, 2023

Conversation

AaronPlave
Copy link
Contributor

@AaronPlave AaronPlave commented Oct 31, 2023

Improves the density of the timeline through re-organization of the layout and the addition of various new features.

image



Changes:

  • Display plan time bounds in DOY format to the left of the timeline histogram.
  • Refactor timeline x axis time visualization to display dynamically formatted UTC and user local time.
  • Display row header and controls in the left column of the row instead of horizontally stacking the header.
  • Resize row header (i.e. marginLeft in the timeline view settings, TODO rename this?) by clicking and dragging on the right side of the row header column.
  • Move row drag handle to the middle of uncollapsed row headers, allow users to also drag rows from the row title.
  • Row option to show only activity directives.
  • Improved row dragging styles.
  • Resolves existing row jitter bug @bradNASA and @ewferg discovered (no issue for this?) which was primarily caused by the interaction between row drag-n-drop and row resize. Spatially separating these functionalities eliminated this issue though keep an eye out.
  • Render line and x-range plots when rows are collapsed.
  • Display heatmap of directives and/or spans for collapsed activity layers.
  • Change row y-axis ticks to use a dotted line.
  • Move y-axes to within the row header and separate them using vertical lines
  • Enforce the user's tick count number as defined in the view instead of using the normal d3 method which only takes tick count as a suggestion.
  • Color y-axis tick values by resource color if a single resource is associated with the axis.
  • Three dot menu in row header with row actions (Edit Row, Move Up/Down, Duplicate Row, Delete Row, Show Simulated Activities/Directives/Both, Insert Row).
  • Right click row header context menu with row actions.
  • Display resource names under row titles and color using layer color.
  • Format y axis tick values using SI-prefixes

Other TODOs:

  • Fix alignment of hover time cursor
  • Fix box shadow styling issue with first row when editing
  • Bug: duplicated row not initially showing up in timeline editor
  • Add optional name field to layers and use it for line layer labeling in row header if supplied
  • Show x-range name in row header
  • Add tooltip to resource names in row header, allow users to copy resource names if overridden/truncated
  • Potentially switch back to d3 default axes for pretty numbers
  • Add duplicate to main timeline row buttons

Closes #954
Closes #443
Closes #453
Closes #746

@AaronPlave AaronPlave added the DON'T MERGE Do Not Merge This Branch label Oct 31, 2023
@AaronPlave AaronPlave temporarily deployed to test-workflow October 31, 2023 21:18 — with GitHub Actions Inactive
@AaronPlave AaronPlave temporarily deployed to test-workflow October 31, 2023 21:21 — with GitHub Actions Inactive
@AaronPlave AaronPlave force-pushed the feat/timeline-density-improvements branch from 61bc2c3 to 6897c34 Compare October 31, 2023 21:22
@AaronPlave AaronPlave temporarily deployed to test-workflow October 31, 2023 21:22 — with GitHub Actions Inactive
@AaronPlave AaronPlave added the feature New feature or request label Oct 31, 2023
@AaronPlave AaronPlave force-pushed the feat/timeline-density-improvements branch from 6897c34 to 4afba1f Compare November 1, 2023 14:20
@AaronPlave AaronPlave temporarily deployed to test-workflow November 1, 2023 14:20 — with GitHub Actions Inactive
@AaronPlave AaronPlave temporarily deployed to test-workflow November 1, 2023 15:06 — with GitHub Actions Inactive
@AaronPlave AaronPlave temporarily deployed to test-workflow November 1, 2023 15:38 — with GitHub Actions Inactive
@AaronPlave AaronPlave mentioned this pull request Nov 2, 2023
@jeffpamer
Copy link
Contributor

image

Looks like there's a z-indexing issue with the row settings dialog.

@AaronPlave
Copy link
Contributor Author

image

Looks like there's a z-indexing issue with the row settings dialog.

Yeah, fixing that right now by moving all of that functionality into the TimelineContextMenu.

@AaronPlave AaronPlave temporarily deployed to test-workflow November 2, 2023 21:56 — with GitHub Actions Inactive
@AaronPlave AaronPlave temporarily deployed to test-workflow November 2, 2023 22:00 — with GitHub Actions Inactive
@AaronPlave AaronPlave temporarily deployed to test-workflow November 3, 2023 00:12 — with GitHub Actions Inactive
@AaronPlave AaronPlave temporarily deployed to test-workflow November 3, 2023 00:28 — with GitHub Actions Inactive
@AaronPlave AaronPlave force-pushed the feat/timeline-density-improvements branch from 4e1aa8d to d9da164 Compare November 6, 2023 16:27
@AaronPlave AaronPlave self-assigned this Nov 6, 2023
@AaronPlave AaronPlave marked this pull request as ready for review November 6, 2023 19:08
@AaronPlave AaronPlave requested a review from a team as a code owner November 6, 2023 19:08
@AaronPlave AaronPlave removed the DON'T MERGE Do Not Merge This Branch label Nov 6, 2023
@AaronPlave AaronPlave force-pushed the feat/timeline-density-improvements branch from fc627a0 to 8389baf Compare November 7, 2023 00:12
@AaronPlave AaronPlave force-pushed the feat/timeline-density-improvements branch from eee3627 to 9c06571 Compare November 9, 2023 19:44
Copy link
Collaborator

@dandelany dandelany left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is looking great @AaronPlave! Tested all of the features mentioned above with no major issues - all of my notes are minor & totally optional nitpicks/improvements:

  • Small z-index bug - when you hover over the Y axis legend label on a line chart row AND that row is selected, the row boundary line shows above the tooltip
    image

  • Would be nice to have some better handling for naming copies of copies, by duplicating rows you can easily end up with "My row (copy) (copy) (copy)"

  • When dragging row edges to resize, rows have a minimum height and minimum left margin (now the header area). These minimums aren't enforced if you edit the height/margin using the number input the Timeline Editor panel, and probably should be - otherwise you can accidentally end up with a very small row

  • The new row context menu is nice! It makes me want a slight extension of it - if you right click below the last row, it would be nice to have a context menu with a shortcut to add a new row

@AaronPlave
Copy link
Contributor Author

This is looking great @AaronPlave! Tested all of the features mentioned above with no major issues - all of my notes are minor & totally optional nitpicks/improvements:

Fixed, good catch!

  • Small z-index bug - when you hover over the Y axis legend label on a line chart row AND that row is selected, the row boundary line shows above the tooltip

image

Agreed but will punt on this.

  • Would be nice to have some better handling for naming copies of copies, by duplicating rows you can easily end up with "My row (copy) (copy) (copy)"

Implemented.

  • When dragging row edges to resize, rows have a minimum height and minimum left margin (now the header area). These minimums aren't enforced if you edit the height/margin using the number input the Timeline Editor panel, and probably should be - otherwise you can accidentally end up with a very small

One issue here is that if your rows take up more than the available height there will be no additional room below the last row. How would you feel about adding an "Insert row" context menu option that is always available?

  • The new row context menu is nice! It makes me want a slight extension of it - if you right click below the last row, it would be nice to have a context menu with a shortcut to add a new row

@dandelany
Copy link
Collaborator

How would you feel about adding an "Insert row" context menu option that is always available?

Seems reasonable to me! 👍

@AaronPlave AaronPlave merged commit 4844246 into develop Nov 10, 2023
4 checks passed
@AaronPlave AaronPlave deleted the feat/timeline-density-improvements branch November 10, 2023 19:07
This was referenced Nov 13, 2023
JosephVolosin pushed a commit that referenced this pull request Aug 20, 2024
* Display plan time bounds in DOY format to the left of the timeline histogram.
* Refactor timeline x axis time visualization to display dynamically formatted UTC and user local time.
* Display row header and controls in the left column of the row instead of horizontally stacking the header.
* Resize row header (i.e. marginLeft in the timeline view settings, TODO rename this?) by clicking and dragging on the right side of the row header column.
* Move row drag handle to the middle of uncollapsed row headers, allow users to also drag rows from the row title.
* Row option to show only activity directives.
* Improve row dragging styles.
* Resolve row jitter bug.
* Render line and x-range plots when rows are collapsed.
* Display heatmap of directives and/or spans for collapsed activity layers.
* Change row y-axis ticks to use a dotted line.
* Move y-axes to within the row header and separate them using vertical lines.
* Enforce the user's tick count number as defined in the view instead of using the normal d3 method which only takes tick count as a suggestion.
* Color y-axis tick values by resource color if a single resource is associated with the axis.
* Three dot menu in row header with row actions (Edit Row, Move Up/Down, Duplicate Row, Delete Row, Show Simulated Activities/Directives/Both, Insert Row).
* Right click row header context menu with row actions.
* Display resource names under row titles and color using layer color.
* Format y axis tick values using SI-prefixes.
JosephVolosin pushed a commit that referenced this pull request Oct 21, 2024
* Display plan time bounds in DOY format to the left of the timeline histogram.
* Refactor timeline x axis time visualization to display dynamically formatted UTC and user local time.
* Display row header and controls in the left column of the row instead of horizontally stacking the header.
* Resize row header (i.e. marginLeft in the timeline view settings, TODO rename this?) by clicking and dragging on the right side of the row header column.
* Move row drag handle to the middle of uncollapsed row headers, allow users to also drag rows from the row title.
* Row option to show only activity directives.
* Improve row dragging styles.
* Resolve row jitter bug.
* Render line and x-range plots when rows are collapsed.
* Display heatmap of directives and/or spans for collapsed activity layers.
* Change row y-axis ticks to use a dotted line.
* Move y-axes to within the row header and separate them using vertical lines.
* Enforce the user's tick count number as defined in the view instead of using the normal d3 method which only takes tick count as a suggestion.
* Color y-axis tick values by resource color if a single resource is associated with the axis.
* Three dot menu in row header with row actions (Edit Row, Move Up/Down, Duplicate Row, Delete Row, Show Simulated Activities/Directives/Both, Insert Row).
* Right click row header context menu with row actions.
* Display resource names under row titles and color using layer color.
* Format y axis tick values using SI-prefixes.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature New feature or request
Projects
None yet
4 participants