mirror of
https://github.com/cjfranko/NTP-Timeturner.git
synced 2025-11-08 18:32:02 +00:00
feat: Hide controls and logs behind toggleable dropdown cards
Co-authored-by: aider (gemini/gemini-2.5-pro) <aider@aider.chat>
This commit is contained in:
parent
7e7ca42220
commit
cfc9a79ab8
3 changed files with 69 additions and 5 deletions
|
|
@ -54,8 +54,12 @@
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- Controls -->
|
<!-- Controls -->
|
||||||
<div class="card full-width">
|
<div class="card full-width collapsible-card">
|
||||||
<h2>Controls</h2>
|
<div class="toggle-header" id="controls-toggle">
|
||||||
|
<img src="assets/timeturner_controls.png" class="toggle-icon" alt="Controls Icon">
|
||||||
|
<h2>Controls</h2>
|
||||||
|
</div>
|
||||||
|
<div class="collapsible-content" id="controls-content">
|
||||||
<div class="control-group">
|
<div class="control-group">
|
||||||
<label for="hw-offset">Hardware Offset (ms):</label>
|
<label for="hw-offset">Hardware Offset (ms):</label>
|
||||||
<input type="number" id="hw-offset" name="hw-offset">
|
<input type="number" id="hw-offset" name="hw-offset">
|
||||||
|
|
@ -107,12 +111,18 @@
|
||||||
<button id="set-date">Set Date</button>
|
<button id="set-date">Set Date</button>
|
||||||
<span id="date-message"></span>
|
<span id="date-message"></span>
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- Logs -->
|
<!-- Logs -->
|
||||||
<div class="card full-width">
|
<div class="card full-width collapsible-card">
|
||||||
<h2>Logs</h2>
|
<div class="toggle-header" id="logs-toggle">
|
||||||
<pre id="logs" class="log-box"></pre>
|
<img src="assets/timeturner_logs.png" class="toggle-icon" alt="Logs Icon">
|
||||||
|
<h2>Logs</h2>
|
||||||
|
</div>
|
||||||
|
<div class="collapsible-content" id="logs-content">
|
||||||
|
<pre id="logs" class="log-box"></pre>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
|
|
@ -44,6 +44,12 @@ document.addEventListener('DOMContentLoaded', () => {
|
||||||
const setDateButton = document.getElementById('set-date');
|
const setDateButton = document.getElementById('set-date');
|
||||||
const dateMessage = document.getElementById('date-message');
|
const dateMessage = document.getElementById('date-message');
|
||||||
|
|
||||||
|
// --- Collapsible Sections ---
|
||||||
|
const controlsToggle = document.getElementById('controls-toggle');
|
||||||
|
const controlsContent = document.getElementById('controls-content');
|
||||||
|
const logsToggle = document.getElementById('logs-toggle');
|
||||||
|
const logsContent = document.getElementById('logs-content');
|
||||||
|
|
||||||
// --- Mock Controls Setup ---
|
// --- Mock Controls Setup ---
|
||||||
const mockControls = document.getElementById('mock-controls');
|
const mockControls = document.getElementById('mock-controls');
|
||||||
const mockDataSelector = document.getElementById('mock-data-selector');
|
const mockDataSelector = document.getElementById('mock-data-selector');
|
||||||
|
|
@ -394,6 +400,17 @@ document.addEventListener('DOMContentLoaded', () => {
|
||||||
});
|
});
|
||||||
setDateButton.addEventListener('click', setDate);
|
setDateButton.addEventListener('click', setDate);
|
||||||
|
|
||||||
|
// --- Collapsible Section Listeners ---
|
||||||
|
controlsToggle.addEventListener('click', () => {
|
||||||
|
const isActive = controlsContent.classList.toggle('active');
|
||||||
|
controlsToggle.classList.toggle('active', isActive);
|
||||||
|
});
|
||||||
|
|
||||||
|
logsToggle.addEventListener('click', () => {
|
||||||
|
const isActive = logsContent.classList.toggle('active');
|
||||||
|
logsToggle.classList.toggle('active', isActive);
|
||||||
|
});
|
||||||
|
|
||||||
// Initial data load
|
// Initial data load
|
||||||
setupMockControls();
|
setupMockControls();
|
||||||
fetchStatus();
|
fetchStatus();
|
||||||
|
|
|
||||||
|
|
@ -110,6 +110,43 @@ button:hover {
|
||||||
height: 60px;
|
height: 60px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.collapsible-card {
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.collapsible-card .toggle-header {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
gap: 15px;
|
||||||
|
padding: 20px;
|
||||||
|
cursor: pointer;
|
||||||
|
border-radius: 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.collapsible-card .toggle-header.active {
|
||||||
|
border-bottom-left-radius: 0;
|
||||||
|
border-bottom-right-radius: 0;
|
||||||
|
border-bottom: 1px solid #eee;
|
||||||
|
}
|
||||||
|
|
||||||
|
.collapsible-card .toggle-header:hover {
|
||||||
|
background-color: #e9e9f3;
|
||||||
|
}
|
||||||
|
|
||||||
|
.toggle-icon {
|
||||||
|
width: 40px;
|
||||||
|
height: 40px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.collapsible-content {
|
||||||
|
display: none;
|
||||||
|
padding: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.collapsible-content.active {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
/* Status-specific colors */
|
/* Status-specific colors */
|
||||||
#sync-status.in-sync, #jitter-status.good { font-weight: bold; color: #28a745; }
|
#sync-status.in-sync, #jitter-status.good { font-weight: bold; color: #28a745; }
|
||||||
#sync-status.clock-ahead, #sync-status.clock-behind, #jitter-status.average { font-weight: bold; color: #ffc107; }
|
#sync-status.clock-ahead, #sync-status.clock-behind, #jitter-status.average { font-weight: bold; color: #ffc107; }
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue