Skip to content

First iteration of a dedicated UI and communication for the Redap server/catalog/collection browser #9018

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

Merged
merged 33 commits into from
Feb 17, 2025

Conversation

abey79
Copy link
Member

@abey79 abey79 commented Feb 12, 2025

Related

What

Implement a whole new Redap server/catalog/collection UI.

Copy link

github-actions bot commented Feb 12, 2025

Web viewer built successfully. If applicable, you should also test it:

  • I have tested the web viewer
Result Commit Link Manifest
4e55764 https://rerun.io/viewer/pr/9018 +nightly +main

Note: This comment is updated whenever you push a commit.

@abey79 abey79 changed the title first steps. please don't tell anyone ;-) First iteration of a dedicated UI and communication for the Redap server/catalog/collection browser Feb 12, 2025
@abey79 abey79 added ui concerns graphical user interface include in changelog dataplatform Rerun Data Platform integration labels Feb 12, 2025
@abey79 abey79 force-pushed the antoine-andreas/catalog-in-viewer branch from 5fc2a02 to e1547d7 Compare February 14, 2025 14:33
@abey79 abey79 changed the base branch from main to antoine/component_descriptor_ref February 14, 2025 14:33
@abey79 abey79 added the do-not-merge Do not merge this PR label Feb 14, 2025
abey79 added a commit that referenced this pull request Feb 16, 2025
### Related

* Related to #9034
* Required for #9018 

### What

This PR introduce the `ComponentDescriptorRef` type to `re_sorbet`. It's
like `ComponentDescriptor` but:
- It has refs instead of owned copies.
- It has a `RowId` enum (which would be difficult to add to
`ComponentDescriptor` because of the ramifications on the dataframe
API—let's wait for the RowID <-> Index column merge for that).
Base automatically changed from antoine/component_descriptor_ref to main February 16, 2025 12:20
@abey79 abey79 force-pushed the antoine-andreas/catalog-in-viewer branch from e1547d7 to 778edd8 Compare February 16, 2025 12:22
# Conflicts:
#	crates/viewer/re_component_ui/src/recording_uri.rs
#	crates/viewer/re_viewer_context/src/lib.rs
@abey79 abey79 removed the do-not-merge Do not merge this PR label Feb 17, 2025
@abey79 abey79 marked this pull request as ready for review February 17, 2025 09:54
# Conflicts:
#	crates/store/re_grpc_client/src/redap/address.rs
#	crates/store/re_grpc_client/src/redap/mod.rs
Copy link
Contributor

@grtlr grtlr left a comment

Choose a reason for hiding this comment

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

LGTM—only minor comments.

Comment on lines 386 to 389
let datastore_view_active = datastore_ui.ui(&ctx, ui, app_options.time_zone);
if !datastore_view_active {
*display_mode = DisplayMode::Viewer;
}
Copy link
Contributor

Choose a reason for hiding this comment

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

This took me a while to figure out (see comment above)—mostly because of the &mut bool in chunk_store_ui. Wonder if we should propagate the change of just returning a bool to that method as well.

Copy link
Member Author

Choose a reason for hiding this comment

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

I've named/commented stuff to be more explicit.

Copy link
Member Author

Choose a reason for hiding this comment

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

This chunk store ui could benefit from a refactor based on a command queue. But that's for another day.

@abey79 abey79 merged commit 12a89e4 into main Feb 17, 2025
34 of 35 checks passed
@abey79 abey79 deleted the antoine-andreas/catalog-in-viewer branch February 17, 2025 15:38
@abey79 abey79 added the feat-redap-browser Everything related to the in-viewer Redap browser label Feb 17, 2025
abey79 added a commit that referenced this pull request Feb 18, 2025
### Related

- Follow-up to #9018

### What

So far, clicking on a recording URI in the redap browser would silently
load the recording in the background. With this PR, the UI switches back
to viewer mode whenever a new recording is loaded, unless the user
cmd/ctrl- or middle-clicked the link, in which case the UI remains in
redap browser mode (mimicking the load tab in the background behaviour
of browser).

This involved a number of changes:
- `RecordingUri` is now removed, because the default `arrow_ui` handling
of links is sufficient.
- `rerun://` links are globally handled by the viewer, taking into
account the same-tab/new-tab behaviour in egui `OpenUrl` event.
- `ui.re_hyperlink` can now be specified is the new-tab behaviour is
forced or not. It is the case for our documentation link, but not for
generic urls (e.g. from `arrow_ui()`
- Some cleanup around `redap::Scheme` happened.
@emilk emilk mentioned this pull request Apr 11, 2025
16 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
dataplatform Rerun Data Platform integration feat-redap-browser Everything related to the in-viewer Redap browser include in changelog ui concerns graphical user interface
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Project: first-class integration and UI for Redap catalogs and collections in the viewer (first iteration)
3 participants