RSS Git Download  Clone
Raw Blame History
    [% META title="FluidX XTR-96 Plate Reader Import" %]
<!-- BEGIN [% template.name %] -->
    [% # INCLUDE dumper.tt dump = data %]
    [% # INCLUDE dumper.tt dump = data.storage %]

    <h2 class="header">FluidX XTR-96 plate reader data import</h2>
    
    <script type="text/javascript">
        function submitForm(s) {
            s.value = "Scanning plate, please wait ...";
            return true;
        }
    </script>

    [% BLOCK form_header %]action="[% app_url %]/storage/read_xtr_96" name="scan"
        id="scan" onsubmit="return submitForm(this.scan);" method="post"[% END %]

    [% IF data.size; # INCLUDE dumper.tt dump = xtr_96;
        import(data); # provides 'plate_data', 'storage' & 'plateId' keys
        missing_id = '<span class="error">RACK ID MISSING</span>';
        USE format; concat = format('%s%02d');
    %]
        [% IF storage.have_missing; # INCLUDE dumper.tt dump = storage.have_missing %]
            <p class="indent error">Warning: unknown vial(s) present - either
                uncatalogued or already removed. Requires resolution before
                import/export.
            </p>
        [% END %]
    
        <table class="indent">
            <tr>
                <th colspan="12">Plate ID :: [% plateId || missing_id %]</th>
            </tr>
            [% FOREACH row IN ['A' .. 'H'] %]            
                <tr>
                    [% FOREACH col IN [1 .. 12]; # INCLUDE dumper.tt dump = [row, col];
                        cell = concat(row,col); # ie format('%s%02d')
                        # highlight if vialId NOT already in catalog:
                        class = storage.rack_data.item(plate_data.${cell})
                            ? 'xtr-96-vial' : 'red';
                    %]
                        <td>
                            <div class="xtr-96-cell">[% cell %]</div>
                            <div class="[% class %]">[% plate_data.${cell} %]</div>
                        </td>
                    [% END %]
                </tr>
            [% END %]
            <tr class="borderless">
                <td align="right" colspan="12">
                  <form [% INCLUDE form_header %]>
                    <input type="submit" class="scan-btn" name="scan" value="RESCAN" />
                  </form>
                </td>
            </tr>
        </table>

        [% IF plateId AND NOT storage.have_missing; # will need to fix & re-scan %]
            <form action="[% app_url %]/storage/import_xtr_96_data" method="post"
                    name="import-data" id="import-data">
                <div class="indent">
                    <span class="info">
                        [% rack_in_use = storage.storage_rack.is_active %]
                        Rack [% rack_in_use ? 'exists' : 'does not exist' %]
                            in storage:
                    </span>
                    <input type="submit" name="import"
                        class="[% rack_in_use ? 'export' : 'import' %]-btn" 
                        value="[% rack_in_use ? 'EXPORT ALL' : 'IMPORT' %]" />
                    [% IF storage.have_empty %]
                        <span class="warning">
                            empty co-ordinates detected, ensure this is correct
                            before importing!!
                        </span>
                    [% END %]
                </div>
            </form>
        [% END %]
    [% ELSIF can_scan %]
      <form [% INCLUDE form_header; %]>
        <p class="indent warning">Ensure rack is mounted on plate reader .....
            <input type="submit" class="button scan-btn" name="scan" value="GO" />
        </p>
      </form>
    [% ELSE %]
        <p class="indent info">Cannot activate plate reader at
            <span class="error">[% xtr_96_addr %]</span> from remote location
            <span class="error">[% remote_addr %]</span>
        </p>
    [% END %]
<!-- END [% template.name %] -->