-
Notifications
You must be signed in to change notification settings - Fork 8.2k
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
[SIEM] Table Styles & Markup Tweaks #46300
[SIEM] Table Styles & Markup Tweaks #46300
Conversation
…-cleanup # Conflicts: # x-pack/legacy/plugins/siem/public/components/drag_and_drop/draggable_wrapper.tsx # x-pack/legacy/plugins/siem/public/components/fields_browser/field_items.tsx # x-pack/legacy/plugins/siem/public/components/fields_browser/field_name.tsx # x-pack/legacy/plugins/siem/public/components/formatted_ip/index.tsx # x-pack/legacy/plugins/siem/public/components/pin/index.tsx # x-pack/legacy/plugins/siem/public/components/timeline/body/actions/index.tsx # x-pack/legacy/plugins/siem/public/components/timeline/body/column_headers/header/index.tsx # x-pack/legacy/plugins/siem/public/components/timeline/body/data_driven_columns/index.tsx # x-pack/legacy/plugins/siem/public/components/timeline/body/events/event_column_view.tsx # x-pack/legacy/plugins/siem/public/components/timeline/body/events/stateful_event.tsx # x-pack/legacy/plugins/siem/public/components/timeline/body/renderers/column_renderer.ts # x-pack/legacy/plugins/siem/public/components/timeline/body/renderers/empty_column_renderer.tsx # x-pack/legacy/plugins/siem/public/components/timeline/body/renderers/formatted_field.tsx # x-pack/legacy/plugins/siem/public/components/timeline/body/renderers/helpers.tsx # x-pack/legacy/plugins/siem/public/components/timeline/body/renderers/plain_column_renderer.tsx # x-pack/legacy/plugins/siem/public/components/timeline/properties/helpers.tsx # x-pack/legacy/plugins/siem/public/pages/network/network.tsx
…-cleanup # Conflicts: # x-pack/legacy/plugins/siem/public/components/fields_browser/category_columns.tsx # x-pack/legacy/plugins/siem/public/components/fields_browser/field_name.tsx # x-pack/legacy/plugins/siem/public/pages/network/network.tsx
@andrew-goldstein: Oooh, good catch! It looks like the dragging doesn't fire when the origin of the click starts at the new |
The (much appreciated) improvements to scrolling in this PR don't yet interact with the JS that disables scrolling during a drag. As a result, this creates a subtle new bug where it's not possible to drag a field from an expanded event to the header when the timeline is scrolled. This also effects D&D from the Fields browser when the same conditions occur. To reproduce:
Expected result:
Actual result:
Expected result:
Actual result:
I recommend merging this PR as-is, and addressing this issue in bouncing effect when dragging from condensed table formats. I'll add note to the issue above referencing this PR. |
The column headers in the timeline and events viewer aren't sticky in Safari anymore. To reproduce:
Expected result:
Actual result:
(similar behavior exists in the Events tab on the Hosts page) |
Seeing another new Safari-specific issue where the Fields Browser jumps around when a category is selected. It's more easily reproduced when there's more content rendered in the timeline: To reproduce:
Expected result:
Actual result:
|
💚 Build Succeeded |
@andrew-goldstein: Another great catch! In investigating further, it appears that Safari has a bug with sticky where it won't work properly with a container of a defined height and Will investigate further for a fix. |
To that end, thanks @MichaelMarcialis for all the effort in this PR to make the timeline work with IE11! |
@andrew-goldstein: Interesting; I don't think I'm seeing this bug on my end. I may have inadvertently fixed it when I was making the other Safari sticky column headers fix. Would you mind pulling in my latest changes and giving it another try on your end? |
💔 Build Failed |
Yes, the fix for sticky headers in Safari also fixes the shifting! 😄 I think that last change had a small impact on the position of the Fields Browser, as it's now slightly overlapping the headers: looking good overall! |
Cool. I'll fix the overlap in my next commit. Otherwise I think that addresses all of your actionable comments. |
💚 Build Succeeded |
x-pack/legacy/plugins/siem/public/components/timeline/styles.tsx
Outdated
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There are a lot of appreciated improvements in this PR, big and small, including the scrolling enhancements to timeline, a11y, and IE11 support to name a few! ❤️ Tested locally in both dark and light modes locally in Chrome, FF, Safari, and (a bit, for the first time) in IE11!
LGTM 🙏 🚀
💚 Build Succeeded |
* restore conditional space before AS number * touchup table widths and text * adjust datepicker width * refactor matchMedia; set bp to above mbp rez * timeline table body refactor, first pass * TruncatableText: rm “width”, added “truncated” * cleanup imports * cleanup styles * rm size prop * swap out div? prob need to fix ref * restore truncation in timeline * think i have text overflow and tooltips happy now * light clean up * single overflow scrolling element * use polished for hex in rgba needs * simplify body markup * events table header poc * close button fixes * improve sort indicator position * drag handle updates * fix fields browser positioning * apply aria roles * fix blown out table width * localize sorting onClick to header text * correct key placement * prevent hover and click for unsortable and add btn * rm btn for non aggregatable col headers * change width/height prop names to avoid html attr * fix loading alignment * account for action cell width when one action * clean up trGroup organization * imports cleanup * fix types and skeleton rows/cells poc * new skeleton row comp * fix column heads not dragging * supplement row indentation * move widths out of styled components for perf * inline dynamic width * account for inline styles with dnd * cleanup * tweak in-page events table styling for consistency * cleanup * make compressed for consistency * cleanup * update jest tests + change matchMedia to css mq * fix missing grab cursor in IE11 * fix action td group width in IE11 * fix columns menu positioning in IE11 * fix collapsing notes in timelines table in IE11 * decouple from DroppableWrapper to prevent issues * update snapshots * more specific selector * rm show prop * add truncate to shouldComponentUpdate * bulk up `HeaderPanel` unit tests * correct conditional styles and add some more tests * improve SkeletonRow unit tests * change for loop to map * switch from pure to React.memo * make SkeletonRow cellCount dynamic * rm comments * fix buttons not being draggable for col headers * fix for safari position sticky + overflow auto bug * correct type errors * correct field browser overlap * missing semicolon
Summary
This PR makes a number of markup and style changes to the in-page and timeline tables for general quality-of-life and better integration with the updated draggables styles.
My apologies for the size of this PR. I went in expecting to make a few minor tweaks, but the changes I wanted to make necessitated other changes be made to support them.
A big thanks to @andrew-goldstein and @FrankHassanabad for helping me out with my questions <3
Issue: #45429
Changes
All SIEM Tables
TruncatableText
component to allow for dynamic width truncation, rather than having to pass a static width prop.Network Page Source/Destination IP Tables
EuiFlexGroup
viamatchMedia
to a simpler CSS-based media query (this was necessary for IE11).Timelines Page Table
compressed
prop for consistency with other tables across SIEM.Before
After
Timeline Events Table
div
-based and not a traditional HTMLtable
.onClick
to a new column header button for easier identifiability and better accessibility.Before
After
Checklist
Use
strikethroughsto remove checklist items you don't feel are applicable to this PR.- [ ] Documentation was added for features that require explanation or tutorialsFor maintainers
- [ ] This was checked for breaking API changes and was labeled appropriately- [ ] This includes a feature addition or change that requires a release note and was labeled appropriately