Files
pulse/views/pages/quick.ejs
jaredandClaude Fable 5.1 eca5cb45b1
Lint / JS (eslint) (pull_request) Successful in 10s
Lint / Notify on failure (pull_request) Skipped
Lint / Deploy (pull_request) Skipped
Security / JS Security (npm audit) (pull_request) Failing after 10s
Test / JS Tests (jest) (pull_request) Successful in 14s
Lint / JS (eslint) (push) Successful in 11s
Lint / Notify on failure (push) Skipped
Lint / Deploy (push) Skipped
Security / JS Security (npm audit) (push) Failing after 11s
Test / JS Tests (jest) (push) Successful in 10s
feat(ui): TDS migration stage 3 — integration fixes, legacy removal, docs
- Fix design-system class names that do not exist in base.css (.lt-alert--error,
  .lt-form-hint); add shared .lt-modal-lg, .lt-field-error and .is-invalid rules
- Remove public/index.html and the public/base.js symlink
- package.json: start script, correct main
- README: vendored design system, Web UI section, new env vars, read-only dev mode

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01HamVMDrA8RqhyxmUHgiqRp
2026-09-08 22:17:15 -04:00

90 lines
4.0 KiB
Plaintext

<%#
Quick Command page (WP-F). Ad-hoc command execution against one or more
workers. All data loaded client-side by /assets/pages/quick.js.
%>
<%- include('../partials/page-header', {
title: 'Quick Command',
subtitle: 'Execute a command on selected workers instantly',
actions: '<button type="button" class="lt-btn lt-btn-secondary lt-btn-sm" data-action="qc:templates-open">&#x1f4cb; Templates</button>' +
'<button type="button" class="lt-btn lt-btn-secondary lt-btn-sm" data-action="qc:history-open">&#x1f550; History</button>'
}) %>
<div class="lt-frame">
<form id="qc-form" data-submit-action="qc:execute">
<div class="lt-form-group">
<label class="lt-label">Execution Mode</label>
<div class="qc-mode-row">
<label class="qc-radio-label">
<input type="radio" class="lt-radio" name="qc-exec-mode" id="qc-mode-single" value="single" checked data-change-action="qc:mode">
<span>Single Worker</span>
</label>
<label class="qc-radio-label">
<input type="radio" class="lt-radio" name="qc-exec-mode" id="qc-mode-multi" value="multi" data-change-action="qc:mode">
<span>Multiple Workers</span>
</label>
</div>
</div>
<div class="lt-form-group" id="qc-single-mode">
<label class="lt-label" for="qc-worker">Select Worker</label>
<select class="lt-select" id="qc-worker">
<option value="">Loading workers&hellip;</option>
</select>
</div>
<div class="lt-form-group" id="qc-multi-mode" hidden>
<label class="lt-label">Select Workers</label>
<div id="qc-worker-list" class="qc-worker-list">
<div class="lt-empty-state lt-empty-state--sm"><div class="lt-empty-state-title">Loading&hellip;</div></div>
</div>
<div class="lt-btn-group qc-worker-actions">
<button type="button" class="lt-btn lt-btn-secondary lt-btn-sm" data-action="qc:select-all">Select All</button>
<button type="button" class="lt-btn lt-btn-secondary lt-btn-sm" data-action="qc:select-online">Online Only</button>
<button type="button" class="lt-btn lt-btn-secondary lt-btn-sm" data-action="qc:clear-all">Clear All</button>
</div>
</div>
<div class="lt-form-group">
<label class="lt-label" for="qc-command">Command</label>
<textarea class="lt-textarea" id="qc-command" rows="4" placeholder="Enter command to execute (e.g. 'uptime' or 'df -h')"></textarea>
<div class="lt-form-hint">Ctrl+Enter to execute</div>
</div>
<button type="submit" class="lt-btn lt-btn-primary" id="qc-execute-btn">&#x25b6; Execute Command</button>
</form>
<div id="qc-result" class="qc-result"></div>
</div>
<!-- Command Templates Modal -->
<div class="lt-modal-overlay" id="qc-templates-modal" aria-hidden="true" role="dialog" aria-modal="true" aria-labelledby="qc-templates-title">
<div class="lt-modal lt-modal-lg">
<div class="lt-modal-header">
<span class="lt-modal-title" id="qc-templates-title">Command Templates</span>
<button type="button" class="lt-modal-close" data-modal-close aria-label="Close">&#x2715;</button>
</div>
<div class="lt-modal-body">
<div id="qc-templates-list" class="qc-scroll-list"></div>
</div>
<div class="lt-modal-footer">
<button type="button" class="lt-btn lt-btn-ghost" data-modal-close>Close</button>
</div>
</div>
</div>
<!-- Command History Modal -->
<div class="lt-modal-overlay" id="qc-history-modal" aria-hidden="true" role="dialog" aria-modal="true" aria-labelledby="qc-history-title">
<div class="lt-modal lt-modal-lg">
<div class="lt-modal-header">
<span class="lt-modal-title" id="qc-history-title">Command History</span>
<button type="button" class="lt-modal-close" data-modal-close aria-label="Close">&#x2715;</button>
</div>
<div class="lt-modal-body">
<div id="qc-history-list" class="qc-scroll-list"></div>
</div>
<div class="lt-modal-footer">
<button type="button" class="lt-btn lt-btn-ghost" data-modal-close>Close</button>
</div>
</div>
</div>