Skip to content

Multiple Configurations Tool #522

Description

@BryonLewis

Title

Launch Configs: alternate UI config folders with multi-button Launch Annotator

Summary

Add configuration.launchConfigs on the UI config write base. Each entry points at another Girder folder’s configuration and defines label/tooltip/color. Data Browser, Annotation Data Browser, and DIVE Metadata Browser show multiple Launch buttons (2–3 inline + overflow menu). Clicking opens the viewer with a URL-addressable configFolderId that overrides the hierarchy base for that session only.

Motivation

Teams keep a folder of alternate UI configs and want one-click entry points (and shareable/Excel links) without changing the dataset’s stored base configuration.

Model

  • LaunchConfig: id, label, tooltip?, color?, configurationFolderId, order?
  • Stored only on write base (configuration.launchConfigs); no merge of this list in V1
  • Empty / missing → current single “Launch Annotator” button

UX

  • Configuration cog → Launch Configs editor (same ownership as UI config)
  • Pick folders that have meta.configuration
  • List buttons: tooltip + color; 2–3 inline, rest in v-menu
  • Metadata: all rows use metadata root launch configs (V1)
  • AnnotationDataBrowser: yes; DataShared: defer

Launch path

  • URL: /viewer/:id?configFolderId=<folderId> (+ existing diveMetadataRootId when applicable)
  • Session override only; do not persist baseConfiguration change
  • Preserve param across refresh via URL param plumbing

Performance

  • Resolve launchConfigs once per browse context (location base / metadata root)
  • No per-row configuration GETs
  • Buttons are router links only

Acceptance criteria

  • Schema + Launch Configs editor CRUD with folder validation
  • Import/export includes launchConfigs
  • Data Browser + AnnotationDataBrowser multi-buttons from base of current location
  • Metadata Browser multi-buttons from metadata root
  • Fallback to single default button when empty
  • Viewer applies configFolderId override for session; URL shareable
  • Unauthorized/missing target folder fails gracefully
  • Network: list views do not call configuration per row

Out of scope / later

  • Per-dataset different launch buttons on one metadata page
  • DataShared
  • Merging launchConfigs up/down the hierarchy
  • Icons / role-gated button visibility
  • Denormalizing launchConfigs onto every child folder

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions