writable msd

This commit is contained in:
Maxim Devaev
2022-07-23 06:57:38 +03:00
parent aa5a538c64
commit 477e6f05e4
4 changed files with 44 additions and 16 deletions

View File

@@ -437,6 +437,17 @@
</td>
</tr>
</table>
<table class="kv msd-rw feature-disabled">
<tr>
<td>Read-write mode:</td>
<td align="right">
<div class="switch-box">
<input disabled type="checkbox" id="msd-rw-switch">
<label for="msd-rw-switch"><span class="switch-inner"></span><span class="switch"></span></label>
</div>
</td>
</tr>
</table>
<div class="msd-multi-storage feature-disabled">
<hr>
<div class="text">

View File

@@ -47,6 +47,9 @@ li(id="msd-dropdown" class="right feature-disabled")
label(for="msd-mode-radio-cdrom") CD-ROM
input(type="radio" id="msd-mode-radio-flash" name="msd-mode-radio" value="0")
label(for="msd-mode-radio-flash") Flash
table(class="kv msd-rw feature-disabled")
tr
+menu_switch_notable("msd-rw-switch", "Read-write mode", false, false)
div(class="msd-multi-storage feature-disabled")
hr
div(class="text")

View File

@@ -43,6 +43,8 @@ export function Msd() {
tools.radio.setOnClick("msd-mode-radio", __clickModeRadio);
tools.el.setOnClick($("msd-rw-switch"), __clickRwSwitch);
tools.el.setOnClick($("msd-select-new-button"), __toggleSelectSub);
$("msd-new-file").onchange = __selectNewFile;
$("msd-new-url").oninput = __selectNewUrl;
@@ -88,6 +90,10 @@ export function Msd() {
__sendParam("cdrom", tools.radio.getValue("msd-mode-radio"));
};
var __clickRwSwitch = function() {
__sendParam("rw", $("msd-rw-switch").checked);
};
var __sendParam = function(name, value) {
let http = tools.makeRequest("POST", `/api/msd/set_params?${name}=${encodeURIComponent(value)}`, function() {
if (http.readyState === 4) {
@@ -243,6 +249,9 @@ export function Msd() {
tools.radio.setEnabled("msd-mode-radio", (online && s.features.cdrom && !s.drive.connected && !s.busy));
tools.radio.setValue("msd-mode-radio", `${Number(online && s.features.cdrom && s.drive.cdrom)}`);
tools.el.setEnabled($("msd-rw-switch"), (online && s.features.rw && !s.drive.connected && !s.busy));
$("msd-rw-switch").checked = (online && s.features.rw && s.drive.rw);
tools.el.setEnabled($("msd-connect-button"), (online && (!s.features.multi || s.drive.image) && !s.drive.connected && !s.busy));
tools.el.setEnabled($("msd-disconnect-button"), (online && s.drive.connected && !s.busy));
@@ -289,6 +298,9 @@ export function Msd() {
for (let el of $$$(".msd-cdrom-emulation")) {
tools.feature.setEnabled(el, s.features.cdrom);
}
for (let el of $$$(".msd-rw")) {
tools.feature.setEnabled(el, s.features.rw);
}
}
tools.hidden.setVisible($("msd-message-offline"), (s && !s.online));