{% extends layout|default('base.html', true) %} {% block style %} {% endblock %} {% block content %} {% if data.datasource %}
{# The one place the viewer's ground colour is not the app's. A transmitted-light image IS its white background, and the dark shell behind it reads as a shadow the scanner never recorded. #}
{# Before main.js and deferred like it, so it is defined by the time init() sees a pending mask job. Loaded here rather than in base.html because the pending state belongs to a viewer looking at the project whose mask is converting -- every other page would carry a listener with nothing to listen for. #} {# Brightfield display adjustments. Deferred like main.js and loaded unconditionally: it does nothing at all when the section is absent, and gating the tag on image_kind would put a second thing in this page that has to agree with the section above. #} {# Here rather than base.html for the same reason: the channel list is the only thing that opens it, and the channel list is the viewer's. Only has to exist by the time the user clicks the sidebar's upload icon, so deferred is ample. #} {% else %}

Plexora

{# The page's whole orientation in one line: what works out of the box, and what needs one thing done first. Two halves, because the switch below it is two halves -- and the link lands on the Settings panel that fixes the Remote half rather than on Settings' front door. #} {# Which machine the image is on, asked ONCE for the whole page. Everywhere else this switch sits inside the row of the one field it governs; here it governs two controls -- the File/Folder pair and the path box -- so it stands above them both, and asking twice on a page whose whole job is one image is what that avoids. services/dataLocation.js renders the [L|R] chip and the place button into `#quick_view_where_control`. The label and the caption beside it are this page's own: two bare letters standing alone explain nothing without a word next to them, and on a form the word they do not need is supplied by the box they sit against. #}
Image location
{# Local only. On Remote the switch's own place button stands here instead and names the machine -- and unlike this caption it is clickable, which is how the machine is changed without toggling back through Local and losing the box on the way. #}

Local images: no setup. Remote images: configure the server in Settings.

{# Where the share reports itself -- "Sharing…", "Ready on hpc", "Not connected yet". Under the switch rather than under the path row, because it is news about the machine and not about the file. #}
{# The page's primary action, built by views/quickViewLanding.js out of the shared File/Folder control (services/browsePicker.js) so the format hints under each word are defined in exactly one place. Always both halves, on every platform. An OME-Zarr image is a folder and an OME-TIFF is a file; which one you have is a fact about your format, and the example line under each word answers it rather than asking. This used to be one target that opened the question as a popup afterwards -- on the machines that could not answer it in one dialog, which is every machine but a Mac. #}
{# No Browse beside it any more: the pair above IS this page's file browser, and a second route to the same dialog made the big obvious target look like the slower of the two. #}
{# A live region that is always in the DOM and empty when it has nothing to say (`:empty` hides it), rather than one toggled with `hidden`: a region that appears and gains its text in the same tick is the shape screen readers miss. Same idiom as `.data-location-status` above it. #}
{% endif %} {% endblock %}