Skip to content
wiki.fftac.org

Manuscript Workstation - Source Excerpt 13

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

<span class="spiralist-manuscript-toc-modal__summary-state">Current chapter</span>
                                    <?php endif; ?>
                                </span>
                            </summary>
                            <div class="spiralist-manuscript-toc-modal__section-body">
                                <?php if (!empty($toc_section['summary'])) : ?>
                                    <p class="spiralist-muted"><?php echo esc_html((string) $toc_section['summary']); ?></p>
                                <?php endif; ?>
                                <?php if (!empty($toc_section['url'])) : ?>
                                    <div class="spiralist-cta-row spiralist-cta-row--start">
                                        <a class="spiralist-book-page-toc-section__link" href="<?php echo esc_url((string) $toc_section['url']); ?>">Open Chapter</a>
                                    </div>
                                <?php endif; ?>
                                <div class="spiralist-simple-list spiralist-manuscript-toc-modal__pages">
                                    <?php foreach ($toc_section_pages as $toc_page) : ?>
                                        <?php
                                        $toc_active = (string) ($toc_page['slug'] ?? '') === (string) ($current_page['slug'] ?? '');
                                        $toc_url = $manuscript_reader_url((array) $toc_page);
                                        $toc_prompt = spiralist_book_pages_get_book_page_creation_prompt_payload($toc_page);
                                        $toc_prompt_variant = (string) ($toc_prompt['status_variant'] ?? (!empty($toc_prompt['has_prompt']) ? 'fresh' : 'stale'));
                                        $toc_prompt_class = 'spiralist-status-pill--' . sanitize_html_class($toc_prompt_variant !== '' ? $toc_prompt_variant : 'stale');
                                        $toc_page_sources = spiralist_book_pages_get_book_page_asset_source_urls($toc_page, false);
                                        $toc_prefetch_url = (string) ($toc_page_sources['interactive_url'] ?? ($toc_page_sources['thumbnail_url'] ?? (string) ($toc_page['url'] ?? '')));
                                        ?>
                                        <a
                                            class="spiralist-simple-list__item spiralist-book-page-toc-item spiralist-manuscript-toc-modal__page <?php echo $toc_active ? 'is-active' : ''; ?>"
                                            href="<?php echo esc_url($toc_url); ?>"
                                            data-workstation-page-link
                                            data-page-sequence="<?php echo esc_attr((string) ($toc_page['sequence'] ?? 0)); ?>"
                                            data-image-url="<?php echo esc_url($toc_prefetch_url); ?>"
                                        >
                                            <strong><?php echo esc_html((string) ($toc_page['label'] ?? 'Page') . ' - ' . (string) ($toc_page['title'] ?? 'Book page')); ?></strong>
                                            <span class="spiralist-simple-list__meta"><?php echo esc_html((string) ($toc_page['section_label'] ?? 'Section')); ?></span>
                                            <span class="spiralist-status-pill <?php echo esc_attr($toc_prompt_class); ?>"><?php echo esc_html((string) ($toc_prompt['status'] ?? 'Prompt pending')); ?></span>
                                            <p><?php echo esc_html((string) ($toc_page['summary'] ?? '')); ?></p>
                                        </a>
                                    <?php endforeach; ?>
                                </div>
                            </div>
                        </details>
                    <?php endforeach; ?>
                </div>
            </div>
        </div>
    </div>

    <?php if ($workstation_is_detail_route && $is_primary_study_surface) : ?>
        <details class="spiralist-manuscript-reader__study-tools" id="study-surface-tools">
            <summary>
                <span class="spiralist-manuscript-reader__study-kicker">Study Surface Tools</span>
                <span>The workstation keeps the page-1 overlay optional in the viewer while the full symbolic field inspector remains here.</span>
            </summary>
            <div class="spiralist-symbol-browser spiralist-symbol-browser--manuscript" data-field-interface data-nodes-url="<?php echo esc_url($nodes_url); ?>">
                <div>
                    <div class="spiralist-field-toolbar">
                        <div>
                            <p class="spiralist-section-tag">View Mode</p>
                            <p class="spiralist-muted">Minimal starts quiet. Expanded reveals the network. Expert keeps relations visible.</p>
                        </div>
                        <div class="spiralist-mode-toggle" role="group" aria-label="Symbolic field view mode">
                            <button class="spiralist-mode-button is-active" type="button" data-field-mode="minimal" aria-pressed="true">Minimal</button>
                            <button class="spiralist-mode-button" type="button" data-field-mode="expanded" aria-pressed="false">Expanded</button>
                            <button class="spiralist-mode-button" type="button" data-field-mode="expert" aria-pressed="false">Expert</button>
                        </div>
                    </div>
                    <figure class="spiralist-manuscript-stage-panel">
                        <div class="spiralist-manuscript-stage-panel__frame">
                            <div class="spiralist-manuscript-map spiralist-manuscript-map--responsive">
                                <img src="<?php echo esc_url($current_page_image); ?>" alt="Full-resolution Spiralism canonical manuscript study surface" loading="lazy" decoding="async" />
                                <svg class="spiralist-field-relations" data-field-relations aria-hidden="true"></svg>
                                <div class="spiralist-field-nodes" data-field-nodes></div>
                            </div>
                        </div>
                        <figcaption class="spiralist-manuscript-stage-panel__caption spiralist-muted">
                            <?php echo esc_html($current_page_caption); ?>
                        </figcaption>
                    </figure>
                    <div class="spiralist-field-status" data-field-status>Preparing symbolic field...</div>
                    <div class="spiralist-node-list" data-field-list aria-label="Visible manuscript nodes"></div>
                </div>

                <aside class="spiralist-inspector" id="symbol-inspector">
                    <p class="spiralist-section-tag" data-node-type>Symbolic Field Node</p>
                    <div class="spiralist-inspector__glyph" data-node-glyph aria-hidden="true">O</div>
                    <h2 class="spiralist-section-title" data-node-title>Select a node</h2>
                    <p class="spiralist-muted" data-node-summary>Choose a node on the manuscript to inspect its canonical ID, meaning, transformation chain, derivation, and relations.</p>
                    <div class="spiralist-inspector-nav">
                        <button class="spiralist-button spiralist-button--secondary" type="button" data-node-prev>Previous</button>
                        <button class="spiralist-button spiralist-button--secondary" type="button" data-node-next>Next</button>
                    </div>
                    <dl class="spiralist-meta-list">
                        <div>
                            <dt>Canonical ID</dt>
                            <dd data-node-id></dd>
                        </div>
                        <div>
                            <dt>Layer</dt>
                            <dd data-node-layer></dd>
                        </div>
                        <div>
                            <dt>Meaning</dt>
                            <dd data-node-meaning></dd>
                        </div>
                        <div>
                            <dt>Definition</dt>
                            <dd data-node-definition></dd>
                        </div>
                        <div>
                            <dt>Transformation Chain</dt>
                            <dd data-node-transformation></dd>
                        </div>
                        <div>
                            <dt>Derivation</dt>
                            <dd data-node-derivation></dd>
                        </div>
                        <div>
                            <dt>Source Axiom</dt>
                            <dd data-node-source-axiom></dd>
                        </div>