Skip to content

Sample color display - grid column renderer, sample detail header, storage box view, etc. - #2056

Merged
cnathe merged 59 commits into
developfrom
fb_sampleColor2
Aug 18, 2026
Merged

Sample color display - grid column renderer, sample detail header, storage box view, etc.#2056
cnathe merged 59 commits into
developfrom
fb_sampleColor2

Conversation

@cnathe

@cnathe cnathe commented Aug 12, 2026

Copy link
Copy Markdown
Contributor

Rationale

Surface the sample color assigned via project-level sample colors throughout the sample UI — grid columns, detail views, lineage details, editable grids, and storage capacity breakdowns — and only include the color column where the project actually has active colors defined. Also removes the experimental feature flag now that the feature is complete.

Related Pull Requests

Changes

  • Sample listing grids include ExpMaterialColor and use SAMPLE_COLOR_REQUIRED_COLUMNS for requiredColumns; added QueryInfo.showSampleColorCol and exported SAMPLE_COLOR_COLOR_COLUMN_NAME.
  • New App helpers to read hasActiveProjectColors from moduleContext, used to gate color display: getOmittedSampleTypeColumns adds SAMPLE_COLOR_REQUIRED_COLUMNS when no colors are defined in the project, and sample type system fields include ExpMaterialColor only when colors are active.
  • SampleColorRenderer: added cls, showLabel, and useSmall props plus styling updates; SampleColorInput option renderer now includes ColorIcon.
  • Sample color displayed in lineage details, and included for the aliquot editable field.
  • HorizontalBarSection and ItemsLegend handle a section header for the sample type with sample color breakdown.
  • QueryModel.flattenValuesFromRow now carries displayValue.

cnathe added 30 commits July 31, 2026 08:33
…n header" for sample type with sample color breakdown
@cnathe
cnathe requested a review from XingY August 14, 2026 16:05

export function setActiveProjectColors(moduleContext: ModuleContext, hasActiveProjectColors: boolean): ModuleContext {
// side-effect set global moduleContext
if (LABKEY?.moduleContext?.samplemanagement) {

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Perhaps something for future, but would be good to indicate to other active sessions that a color is no longer active to avoid additional usage.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Yeah, I like that idea but that seems like a future TODO once we see how much the sample color feature (and archived colors in particular) gets used.

columns: string[],
colFieldKeyMap?: Record<string, string>
colFieldKeyMap?: Record<string, string>,
displayValueKeys?: string[]

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

I see this is used by eln/Tooltip. Wonder why similar treatment is not needed for sample status which also contains color display?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Good call. Turns out I don't need to do this displayValueKeys behavior if we just query for the ExpMaterialColor/Label directly, instead of relying on displayValue of ExpMaterialColor, in the ToolTipLoader.ts loadSampleData

@cnathe
cnathe merged commit bb72f85 into develop Aug 18, 2026
3 checks passed
@cnathe
cnathe deleted the fb_sampleColor2 branch August 18, 2026 15:01
cnathe added a commit to LabKey/platform that referenced this pull request Aug 18, 2026
…orage box view, etc. (#7932)

## Rationale
Server-side foundation for the sample color work: expose the set of
active project colors through `ExperimentService` so clients can
determine whether a project has colors defined and gate color display
accordingly, and remove the experimental feature flag now that the
feature is complete.

## Related Pull Requests
- LabKey/labkey-ui-components#2056
- LabKey/labkey-ui-premium#1014
- LabKey/limsModules#2402
- #7932 

## Changes
- Added `ExperimentService.getActiveProjectColors()`, which backs the
`hasActiveProjectColors` module context flag consumed by the client
apps.
- Renamed `ExperimentService.getDataColorLabel()` to `getDataColor()`.
- Sample listing grids include `ExpMaterialColor` and use
`SAMPLE_COLOR_REQUIRED_COLUMNS` for `requiredColumns`.
- Removed the experimental feature flag.
cnathe added a commit to LabKey/testAutomation that referenced this pull request Aug 18, 2026
…orage box view, etc. (#3156)

## Rationale
See related PR for rationale. This PR adds test helpers for getting
various sample color related dom elements.

## Related Pull Requests
- LabKey/labkey-ui-components#2056
- LabKey/labkey-ui-premium#1014
- LabKey/limsModules#2402
- LabKey/platform#7932

## Changes
- Selenium test helpers for sample color test cases
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.

2 participants