Skip to content

Enhance filter panel with time range filter, search, and UI improvements#11

Merged
Tiryoh merged 9 commits intomainfrom
feature/enhance-filter-panel
Mar 28, 2026
Merged

Enhance filter panel with time range filter, search, and UI improvements#11
Tiryoh merged 9 commits intomainfrom
feature/enhance-filter-panel

Conversation

@Tiryoh
Copy link
Copy Markdown
Owner

@Tiryoh Tiryoh commented Mar 27, 2026

Summary

  • Add time range filter (start/end datetime inputs) for both rosout and diagnostics tabs, with automatic value conversion on UTC/local timezone toggle
  • Add export option to ignore time filter (checkbox with tooltip explaining behavior)
  • Add inline search for node/name filter lists with bulk "select shown" / "deselect shown" actions
  • Reorganize filter panel layout: merge message type radio with input field, expand nodes/names/search/time range to full width
  • Extend display limit options to 100, 500, 1,000, 5,000, 10,000 with segmented control styling

Changes

  • src/App.tsx — New state/helpers for time filter and list search, filter UI reorganization, export logic with time-filter-ignore option
  • src/rosbagUtils.ts — Add startTime/endTime parameters to filterDiagnostics (matching existing filterMessages support)
  • src/i18n.ts — New translation keys (en/ja) for time range, list search, and export options

Test plan

  • Load a bag file → set time range filter → Apply → displayed messages are narrowed (e2e: "time range filter narrows messages")
  • Toggle UTC/Local → time input values auto-convert to the same instant (e2e: "timezone toggle preserves time filter")
  • "Fill data range" button populates start/end with the file's min/max timestamps (e2e: "fill data range button populates inputs")
  • Export with "Ignore time filter" checked → output includes full time range (e2e: "export ignoring time filter includes all rows")
  • Search in node/name list → "select shown" / "deselect shown" work on filtered items (e2e: "node search and select shown", "node search and deselect shown")
  • Display limits 5,000 and 10,000 are selectable (e2e: "preview limit buttons")
  • Diagnostics tab has the same functionality (e2e: diagnostics filter/table tests)
  • Clear All resets all filters including time range (e2e: "clear filters")

🤖 Generated with Claude Code

- Add time range filter (start/end datetime-local inputs) for both
  rosout and diagnostics, with timezone-aware conversion on toggle
- Add export option to ignore time filter (checkbox with tooltip)
- Add inline search for node/name filter lists with bulk select/deselect
- Reorganize filter layout: merge message type radio with input field,
  move time range to bottom, expand nodes/names/search to full width
- Improve display limit buttons as segmented control with min-width
- Add filterDiagnostics startTime/endTime support in rosbagUtils
- Add i18n keys (en/ja) for all new UI elements

Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
@github-actions
Copy link
Copy Markdown

github-actions Bot commented Mar 27, 2026

Test Results

42 tests  ±0   42 ✅ ±0   0s ⏱️ ±0s
 1 suites ±0    0 💤 ±0 
 1 files   ±0    0 ❌ ±0 

Results for commit b94be85. ± Comparison against base commit 9ba90ee.

♻️ This comment has been updated with latest results.

@github-actions
Copy link
Copy Markdown

github-actions Bot commented Mar 27, 2026

Tiryoh and others added 6 commits March 27, 2026 23:20
- Update text input selectors to use placeholder attribute to
  distinguish keyword/regex input from the new node search input
- Update preview limit button assertions from '1000' to '1,000'
  to match toLocaleString() formatted labels

Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
Remove "Coming Soon" label and add link to GitHub Releases page.

Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
Move pre-built download to Option 2 for better discoverability.
Mention fully offline capability and use generic HTML file reference.

Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
@Tiryoh Tiryoh force-pushed the feature/enhance-filter-panel branch 2 times, most recently from c2fe8b0 to 7eb3e42 Compare March 27, 2026 15:16
Tiryoh and others added 2 commits March 28, 2026 12:36
Resolve conflicts: replace SQLite export with Parquet while keeping
time-filter-ignore export logic using exportData variable.

Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
New tests:
- Time range filter narrows displayed messages
- Fill data range button populates start/end inputs
- Node search + select shown / deselect shown
- Export with "Ignore time filter" includes all rows
- Timezone toggle preserves time filter values

Fixes:
- Fix Fill data range to use floor/ceil for sub-second timestamps
- Set timezoneId: 'UTC' in playwright config for consistent tests
- Use exact: true for select/deselect shown button selectors

Also removes numbered prefixes from all e2e test names across all
spec files while keeping section separator comments.

Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
@Tiryoh Tiryoh force-pushed the feature/enhance-filter-panel branch from 2444d87 to b94be85 Compare March 28, 2026 07:48
@Tiryoh Tiryoh merged commit 3c0da25 into main Mar 28, 2026
8 checks passed
@Tiryoh Tiryoh deleted the feature/enhance-filter-panel branch March 28, 2026 07:56
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