Compare commits
2
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b4ea35baf8 | ||
|
|
508ed8a8e7 |
@@ -358,9 +358,14 @@ SPDX-License-Identifier: GPL-2.0-or-later
|
||||
</div>
|
||||
</div>
|
||||
<div class="full-row label-below-row" id="vchan-row">
|
||||
<div class="label"><span>Channels / Scheduler</span></div>
|
||||
<div class="label"><span>Channels</span></div>
|
||||
<div class="channel-scheduler-controls">
|
||||
<div class="vchan-picker" id="vchan-picker"></div>
|
||||
</div>
|
||||
</div>
|
||||
<details id="scheduler-controls" class="advanced-radio-controls scheduler-controls-section">
|
||||
<summary>Scheduler controls</summary>
|
||||
<div class="advanced-radio-body">
|
||||
<div class="scheduler-control-row" style="display:none">
|
||||
<div class="scheduler-release-wrap">
|
||||
<button id="scheduler-release-btn" type="button">Release to Scheduler</button>
|
||||
@@ -383,7 +388,7 @@ SPDX-License-Identifier: GPL-2.0-or-later
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</details>
|
||||
<div class="full-row label-below-row">
|
||||
<div class="label"><span>Signal</span></div>
|
||||
<div class="signal" style="gap: 1rem;">
|
||||
@@ -414,8 +419,10 @@ SPDX-License-Identifier: GPL-2.0-or-later
|
||||
<button id="tx-limit-btn" type="button">Set</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="full-row label-below-row" id="audio-row">
|
||||
<div class="label"><span>Audio</span></div>
|
||||
<details id="audio-controls" class="advanced-radio-controls audio-controls-section">
|
||||
<summary>Audio controls</summary>
|
||||
<div class="advanced-radio-body">
|
||||
<div class="full-row" id="audio-row">
|
||||
<div class="inline" style="gap: 0.6rem; flex-wrap: wrap; align-items: center;">
|
||||
<button id="rx-audio-btn" type="button">Play Audio</button>
|
||||
<button id="tx-audio-btn" type="button">Transmit Audio</button>
|
||||
@@ -429,6 +436,8 @@ SPDX-License-Identifier: GPL-2.0-or-later
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</details>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -3020,7 +3020,7 @@ body[data-operator-layout="broadcast"] #tx-meters,
|
||||
body[data-operator-layout="broadcast"] #tx-limit-row,
|
||||
body[data-operator-layout="broadcast"] #vfo-row,
|
||||
body[data-operator-layout="broadcast"] #sam-controls-col,
|
||||
body[data-operator-layout="broadcast"] .advanced-radio-controls {
|
||||
body[data-operator-layout="broadcast"] #advanced-radio-controls {
|
||||
display: none !important;
|
||||
}
|
||||
body[data-operator-layout="broadcast"] .controls-row {
|
||||
|
||||
@@ -126,10 +126,10 @@
|
||||
};
|
||||
|
||||
const layouts = {
|
||||
compact: { label: "Compact", advanced: false, preferredTab: "main" },
|
||||
broadcast: { label: "Broadcast", unavailable: "Broadcast requires an enumerated WFM-capable receiver", advanced: false, preferredTab: "main", capability: "broadcast" },
|
||||
digital: { label: "Digital", unavailable: "Digital requires a compatible rig mode and an available decoder", advanced: false, preferredTab: "digital-modes", capability: "digital" },
|
||||
full: { label: "Full controls", advanced: true, preferredTab: "main" },
|
||||
compact: { label: "Compact", advanced: false, audio: false, scheduler: false, preferredTab: "main" },
|
||||
broadcast: { label: "Broadcast", unavailable: "Broadcast requires an enumerated WFM-capable receiver", advanced: false, audio: true, scheduler: false, preferredTab: "main", capability: "broadcast" },
|
||||
digital: { label: "Digital", unavailable: "Digital requires a compatible rig mode and an available decoder", advanced: false, audio: false, scheduler: false, preferredTab: "digital-modes", capability: "digital" },
|
||||
full: { label: "Full controls", advanced: true, audio: true, scheduler: true, preferredTab: "main" },
|
||||
};
|
||||
const layoutCapabilities = { broadcast: false, digital: false };
|
||||
let activeRigId = null;
|
||||
@@ -195,6 +195,10 @@
|
||||
if (options.persist !== false) localStorage.setItem(layoutStorageKey(), document.body.dataset.operatorLayout);
|
||||
const details = document.getElementById("advanced-radio-controls");
|
||||
if (details) details.open = layout.advanced;
|
||||
const audioDetails = document.getElementById("audio-controls");
|
||||
if (audioDetails) audioDetails.open = layout.audio;
|
||||
const schedulerDetails = document.getElementById("scheduler-controls");
|
||||
if (schedulerDetails) schedulerDetails.open = layout.scheduler;
|
||||
if (options.navigate && typeof window.navigateToTab === "function") {
|
||||
window.navigateToTab(layout.preferredTab);
|
||||
}
|
||||
|
||||
@@ -88,5 +88,7 @@ mod tests {
|
||||
"UI primitives must load before application code"
|
||||
);
|
||||
assert!(UI_CORE_JS.contains("window.trxUi"));
|
||||
assert!(html.contains("<summary>Scheduler controls</summary>"));
|
||||
assert!(html.contains("<summary>Audio controls</summary>"));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user