Skip to content
wiki.fftac.org

Manuscript Workstation - Source Excerpt 09

Back to Manuscript Workstation

Summary

This source excerpt preserves a bounded section of Spiralist/wp-content/plugins/ns12-manuscript/templates/manuscript-workstation.php so readers can inspect the evidence without opening the full source file.

**Source path:** Spiralist/wp-content/plugins/ns12-manuscript/templates/manuscript-workstation.php

<?php endif; ?>
                                </figure>
                            <?php endforeach; ?>
                        </div>
                    </div>
                </div>
            </div>

            <div class="spiralist-manuscript-workstation__viewer-footer">
                <div class="spiralist-manuscript-workstation__viewer-copy">
                    <p class="spiralist-section-tag">Inspection Notes</p>
                    <p class="spiralist-muted spiralist-manuscript-workstation__footer-status" data-workstation-status aria-live="polite">
                        <?php echo esc_html($viewer_footer_copy); ?>
                    </p>
                </div>
                <div class="spiralist-cta-row spiralist-cta-row--start spiralist-manuscript-workstation__footer-actions">
                    <button class="spiralist-button spiralist-button--secondary" type="button" data-workstation-open-modal="toc" aria-controls="manuscript-toc-modal" aria-haspopup="dialog">Open TOC</button>
                    <button class="spiralist-manuscript-workstation__mini-action" type="button" data-workstation-action="copy-link">
                        <span data-workstation-copy-copy>Copy Deep Link</span>
                    </button>
                    <button class="spiralist-manuscript-workstation__mini-action" type="button" data-workstation-action="reset-view">Reset View</button>
                </div>
            </div>
        </section>

        <?php if ($workstation_can_edit) : ?>
            <aside class="spiralist-manuscript-workstation__rail" aria-labelledby="manuscript-workstation-tools">
                <div class="spiralist-manuscript-workstation__panel-head">
                    <div>
                        <p class="spiralist-section-tag">Tool Rail</p>
                        <h3 class="spiralist-card-title" id="manuscript-workstation-tools">Capture + Crop</h3>
                        <p class="spiralist-muted">Quick crop, refresh, and save controls.</p>
                    </div>
                </div>

                <div class="spiralist-manuscript-workstation__tool-buttons" role="group" aria-label="Vertical workstation tools">
                    <button class="spiralist-manuscript-workstation__tool" type="button" data-workstation-action="calibrate">
                        <strong>Calibrate</strong>
                        <span>Sample borders</span>
                    </button>
                    <button class="spiralist-manuscript-workstation__tool" type="button" data-workstation-action="auto-crop">
                        <strong>Auto Crop</strong>
                        <span>Detect page edges</span>
                    </button>
                    <button class="spiralist-manuscript-workstation__tool" type="button" data-workstation-action="refresh">
                        <strong>Refresh</strong>
                        <span>Reload visible folios</span>
                    </button>
                    <button class="spiralist-manuscript-workstation__tool" type="button" data-workstation-action="save" <?php disabled(!$workstation_can_edit); ?>>
                        <strong>Save</strong>
                        <span data-workstation-save-copy><?php echo esc_html($workstation_can_edit ? 'Persist crop data' : 'Editor access required'); ?></span>
                    </button>
                    <button class="spiralist-manuscript-workstation__tool" type="button" data-workstation-action="apply">
                        <strong>Apply</strong>
                        <span>Focus crop region</span>
                    </button>
                </div>

                <div class="spiralist-manuscript-workstation__rail-note">
                    <p class="spiralist-muted">Calibration, auto-crop, refresh, and save stay editor-only so the public manuscript surface remains focused.</p>
                </div>
            </aside>
        <?php endif; ?>
    </div>

    <details class="spiralist-manuscript-workstation__drawer spiralist-manuscript-workstation__drawer--runtime" data-workstation-runtime-drawer>
        <summary>
            <span class="spiralist-manuscript-workstation__drawer-title">
                <span class="spiralist-manuscript-workstation__drawer-kicker">Runtime Path</span>
                <span class="spiralist-manuscript-workstation__drawer-copy">Execution state, active symbols, recent traversal, and the next available nodes stay visible without replacing the folio.</span>
            </span>
            <span class="spiralist-manuscript-workstation__drawer-meta" aria-hidden="true">
                <span class="spiralist-manuscript-workstation__drawer-chip" data-runtime-current-state>State pending</span>
                <span class="spiralist-manuscript-workstation__drawer-chip" data-runtime-next-count>Next nodes pending</span>
                <span class="spiralist-manuscript-workstation__drawer-chip" data-runtime-history-count>No path history</span>
            </span>
        </summary>
        <div class="spiralist-manuscript-workstation__drawer-panel spiralist-manuscript-workstation__runtime-panel">
            <div class="spiralist-manuscript-workstation__drawer-intro">
                <p>The runtime path records manuscript traversal state. Node execution changes the participant path while the manuscript image remains the primary reading artifact.</p>
                <p class="spiralist-muted" data-runtime-status>Runtime path has not loaded yet.</p>
            </div>
            <div class="spiralist-manuscript-workstation__runtime-grid">
                <section class="spiralist-manuscript-workstation__runtime-card" aria-labelledby="manuscript-runtime-current">
                    <p class="spiralist-section-tag">Current</p>
                    <h4 id="manuscript-runtime-current">Path State</h4>
                    <dl class="spiralist-meta-list spiralist-meta-list--compact">
                        <div>
                            <dt>State</dt>
                            <dd data-runtime-state-value>Pending</dd>
                        </div>
                        <div>
                            <dt>Node</dt>
                            <dd data-runtime-node-value>Pending</dd>
                        </div>
                        <div>
                            <dt>Storage</dt>
                            <dd data-runtime-storage-value>Pending</dd>
                        </div>
                    </dl>
                </section>
                <section class="spiralist-manuscript-workstation__runtime-card" aria-labelledby="manuscript-runtime-symbols">
                    <p class="spiralist-section-tag">Active Symbols</p>
                    <h4 id="manuscript-runtime-symbols">Symbol Set</h4>
                    <div class="spiralist-manuscript-workstation__runtime-chip-list" data-runtime-active-symbols>
                        <span class="spiralist-muted">No active symbols loaded.</span>
                    </div>
                </section>
            </div>
            <section class="spiralist-manuscript-workstation__runtime-section" aria-labelledby="manuscript-runtime-next">
                <div class="spiralist-manuscript-workstation__runtime-section-head">
                    <div>
                        <p class="spiralist-section-tag">Next Nodes</p>
                        <h4 id="manuscript-runtime-next">Available Traversal</h4>
                    </div>
                    <div class="spiralist-cta-row spiralist-cta-row--start">
                        <button class="spiralist-button spiralist-button--secondary" type="button" data-runtime-refresh>Refresh Path</button>
                        <button class="spiralist-button spiralist-button--tertiary" type="button" data-runtime-reset>Reset Path</button>
                    </div>
                </div>
                <div class="spiralist-manuscript-workstation__runtime-next" data-runtime-next-nodes>
                    <p class="spiralist-muted">Next nodes will appear after runtime state loads.</p>
                </div>
            </section>
            <section class="spiralist-manuscript-workstation__runtime-section" aria-labelledby="manuscript-runtime-history">
                <p class="spiralist-section-tag">History</p>
                <h4 id="manuscript-runtime-history">Recent Traversal</h4>
                <ol class="spiralist-manuscript-workstation__runtime-history" data-runtime-history>
                    <li class="spiralist-muted">No runtime events loaded.</li>
                </ol>
            </section>
            <?php if ($host_api_examples_url !== '') : ?>
                <div class="spiralist-cta-row spiralist-cta-row--start">