Commit bf019007 authored by vertighel's avatar vertighel
Browse files

feat: control.html Scicam/Teccam tabs; navbar Viewer submenu + Api link



Splits fits_viewer_section into sci_viewer_section + tec_viewer_section
in control_panel.html; control.html tabs renamed FITS Viewer→Scicam,
new Teccam tab added. Navbar Viewer dropdown extended with scicam1-3 /
teccam1-3 per-camera links (routes already exist via _camera_views).
Api nav link added pointing to /web/. Fixed stale active-check on
Sequencer link (was checking web.webcam).

Co-Authored-By: default avatarClaude Sonnet 4.6 <noreply@anthropic.com>
parent b6a51cc4
Loading
Loading
Loading
Loading
+19 −16
Original line number Diff line number Diff line
@@ -84,21 +84,17 @@
                        Viewer
                    </a>
                    <ul class="dropdown-menu dropdown-menu-dark shadow" aria-labelledby="viewerDropdown">
                        <li>
                            <a class="dropdown-item" href="{{ url_for('web.viewer', name='combo1') }}">
                                Combo 1
                            </a>
                        </li>
                        <li>
                            <a class="dropdown-item" href="{{ url_for('web.viewer', name='combo2') }}">
                                Combo 2
                            </a>
                        </li>
                        <li>
                            <a class="dropdown-item" href="{{ url_for('web.viewer', name='combo3') }}">
                                Combo 3
                            </a>
                        </li>
                        <li><a class="dropdown-item" href="{{ url_for('web.viewer', name='combo1') }}">Combo 1</a></li>
                        <li><a class="dropdown-item" href="{{ url_for('web.viewer', name='combo2') }}">Combo 2</a></li>
                        <li><a class="dropdown-item" href="{{ url_for('web.viewer', name='combo3') }}">Combo 3</a></li>
                        <li><hr class="dropdown-divider"></li>
                        <li><a class="dropdown-item" href="{{ url_for('web.viewer', name='scicam1') }}">Scicam 1</a></li>
                        <li><a class="dropdown-item" href="{{ url_for('web.viewer', name='scicam2') }}">Scicam 2</a></li>
                        <li><a class="dropdown-item" href="{{ url_for('web.viewer', name='scicam3') }}">Scicam 3</a></li>
                        <li><hr class="dropdown-divider"></li>
                        <li><a class="dropdown-item" href="{{ url_for('web.viewer', name='teccam1') }}">Teccam 1</a></li>
                        <li><a class="dropdown-item" href="{{ url_for('web.viewer', name='teccam2') }}">Teccam 2</a></li>
                        <li><a class="dropdown-item" href="{{ url_for('web.viewer', name='teccam3') }}">Teccam 3</a></li>
                    </ul>
                </li>

@@ -110,12 +106,19 @@
                </li>

                <li class="nav-item">
                  <a class="nav-link {% if request.endpoint == 'web.webcam' %}active{% endif %}"
                  <a class="nav-link {% if request.endpoint == 'web.sequencer_page' %}active{% endif %}"
                     href="{{ url_for('web.sequencer_page') }}">
                    Sequencer
                  </a>
                </li>

                <li class="nav-item">
                  <a class="nav-link {% if request.endpoint == 'web.web_index' %}active{% endif %}"
                     href="{{ url_for('web.web_index') }}">
                    Api
                  </a>
                </li>

            </ul>
        </div>
    </nav>
+9 −2
Original line number Diff line number Diff line
@@ -190,7 +190,8 @@
      
      <div class="card-header p-0 border-secondary d-flex align-items-center">
        <ul class="nav nav-tabs border-0 flex-grow-1" role="tablist">
          <li class="nav-item"><button class="nav-link active py-2" data-bs-toggle="tab" data-bs-target="#mon-fits">FITS Viewer</button></li>
          <li class="nav-item"><button class="nav-link active py-2" data-bs-toggle="tab" data-bs-target="#mon-fits">Scicam</button></li>
          <li class="nav-item"><button class="nav-link py-2" data-bs-toggle="tab" data-bs-target="#mon-teccam">Teccam</button></li>
          <li class="nav-item"><button class="nav-link py-2" data-bs-toggle="tab" data-bs-target="#mon-webcam">Webcam</button></li>
          <li class="nav-item"><button class="nav-link py-2" data-bs-toggle="tab" data-bs-target="#mon-synoptic">Synoptic</button></li>
          <li class="nav-item"><button class="nav-link py-2" data-bs-toggle="tab" data-bs-target="#mon-output">Output</button></li>
@@ -202,7 +203,13 @@

        <div class="tab-pane fade show active" id="mon-fits">
          <div id="fits-viewer-container" class="h-100 overflow-auto p-2">
            {{ ctrl.fits_viewer_section('/api') }}
            {{ ctrl.sci_viewer_section('/api') }}
          </div>
        </div>

        <div class="tab-pane fade" id="mon-teccam">
          <div class="h-100 overflow-auto p-2">
            {{ ctrl.tec_viewer_section('/api') }}
          </div>
        </div>

+23 −15
Original line number Diff line number Diff line
@@ -427,30 +427,38 @@


      
{% macro fits_viewer_section(api_base='/api') %}
{% macro sci_viewer_section(api_base='/api') %}

<!-- Pre-renders combo1/2/3. JS shows the active one, hides the others. -->
<!-- combo1=station1, combo2=station2, combo3=station3. -->
<!-- Pre-renders scicam for combo1/2/3. JS shows the active one, hides the others. -->

{# combo1 — station1 — visible by default #}
<div data-combo-view="combo1">
{% call camera_panel('ctrl-combo1-sci', 'scicam1', false, api_base, layout='stacked') %}
    {{ camera_panel('ctrl-combo1-tec', 'teccam1', true, api_base, layout='compact') }}
{% endcall %}
    {{ camera_panel('ctrl-combo1-sci', 'scicam1', false, api_base, layout='stacked') }}
</div>

{# combo2 — station2 — hidden #}
<div data-combo-view="combo2" class="d-none">
{% call camera_panel('ctrl-combo2-sci', 'scicam2', false, api_base, layout='stacked') %}
    {{ camera_panel('ctrl-combo2-tec', 'teccam2', true, api_base, layout='compact') }}
{% endcall %}
    {{ camera_panel('ctrl-combo2-sci', 'scicam2', false, api_base, layout='stacked') }}
</div>

{# combo3 — station3 — hidden #}
<div data-combo-view="combo3" class="d-none">
{% call camera_panel('ctrl-combo3-sci', 'scicam3', false, api_base, layout='stacked') %}
    {{ camera_panel('ctrl-combo3-tec', 'teccam3', true, api_base, layout='compact') }}
{% endcall %}
    {{ camera_panel('ctrl-combo3-sci', 'scicam3', false, api_base, layout='stacked') }}
</div>
{% endmacro %}


{% macro tec_viewer_section(api_base='/api') %}

<!-- Pre-renders teccam for combo1/2/3. JS shows the active one, hides the others. -->

<div data-combo-view="combo1">
    {{ camera_panel('ctrl-combo1-tec', 'teccam1', true, api_base, layout='stacked') }}
</div>

<div data-combo-view="combo2" class="d-none">
    {{ camera_panel('ctrl-combo2-tec', 'teccam2', true, api_base, layout='stacked') }}
</div>

<div data-combo-view="combo3" class="d-none">
    {{ camera_panel('ctrl-combo3-tec', 'teccam3', true, api_base, layout='stacked') }}
</div>
{% endmacro %}