Skip to content

Handle many channels - #664

Merged
will-moore merged 7 commits into
ome:masterfrom
Nirkan:fix-issue-624
Feb 23, 2026
Merged

Handle many channels #664
will-moore merged 7 commits into
ome:masterfrom
Nirkan:fix-issue-624

Conversation

@Nirkan

@Nirkan Nirkan commented Jan 28, 2026

Copy link
Copy Markdown
Contributor

[Description of PR]

Please see https://github.com/ome/omero-figure/blob/master/docs/contributing.md
for a testing checklist.

Fixes #624 .

This PR does the following.

  • Limits the number of active channels allowed. This can be set with server config setting omero.figure.max_active_channels and user gets a pop up message as can be seen in the image below.
  • Only include active channel - The omero.figure seems to only activate first 3 channels. This can also be limited with omero.figure.max_active_channels 2 or 1 if only 1 channel needs to be active.
  • UI Layout - There seems to be already a scrollable panel implemented by someone as seen in the image (the left scrollable panel on the right side.)


MaxActiveChannelWindow

  • Testing : The testing was done with docker-example-omero by adding configuration CONFIG_omero_figure_max__active__channels: 15 to docker-compose.yml file and can be tested at localhost:4080/figure/

@Nirkan Nirkan changed the title Fix issue 624 Handle many channels Jan 28, 2026
@will-moore

Copy link
Copy Markdown
Member

Thanks for the PR.
I'm not sure how it's working for you to do cfg.getConfigValue('omero.figure.max_active_channels') since this is loading config from the server, but AFAIK it only works for settings that are known about on the server. I'm getting a SecurityViolation exception with that code.

Also, this should really be an OMERO.figure setting that's set in the web environment.
As an example, see the comparable setting in iviewer:
https://github.com/ome/omero-iviewer/pull/500/changes

OMERO.figure doesn't have any figure_settings.py yet, as there are not yet any settings for figure. So you'd need to create one similar to the iviewer_settings.py that's modified in that PR.

All the other code is looking good and works fine.

Build above is failing due to flake8 errors:

./omero_figure/views.py:108:80: E501 line too long (80 > 79 characters)
./omero_figure/views.py:137:80: E501 line too long (80 > 79 characters)

@will-moore

Copy link
Copy Markdown
Member

Also, could you add this config option to the README, as a final optional install step, right before "Now restart OMERO.web as normal", e.g:

Optional: To change the maximum active channel count from the default of 10:

$ omero config set omero.figure.max_active_channels 15

@Nirkan

Nirkan commented Jan 28, 2026

Copy link
Copy Markdown
Contributor Author

Thank you for your comments and suggestions.

For me it works in the local docker server and I had to define the configuration in the docker-compose.yml file in the omeroserver: -> environment: -> CONFIG_omero_figure_max__active__channels: 15 below other configurations.
Then composed it using docker compose up -d and this added server configuration permanently in omero-server container.
Used omero-server and postgresql container from docker and web from omero-web running at port 4080.

I agree, this should really be an OMERO.figure setting that's set in the web environment. I tried to add something similar to PR#500 in the settings.py and may be I need to create a separate figure_settings.py as suggested above. I will try to implement this as web setting, following the comments above.

@will-moore will-moore left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Looks good, thanks.

@will-moore will-moore added this to the 7.4.0 milestone Jan 30, 2026
@snoopycrimecop

snoopycrimecop commented Feb 3, 2026

Copy link
Copy Markdown
Member

Conflicting PR. Removed from build OMERO-plugins-push#42. See the console output for more details.
Possible conflicts:

--conflicts Conflict resolved in build OMERO-plugins-push#67. See the console output for more details.

@will-moore will-moore mentioned this pull request Feb 23, 2026
1 task
@snoopycrimecop snoopycrimecop mentioned this pull request Feb 23, 2026
@will-moore
will-moore merged commit 34c401b into ome:master Feb 23, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Handle many channels

3 participants