mirror of
https://github.com/mofeng-git/One-KVM.git
synced 2026-01-29 00:51:53 +08:00
pikvm/pikvm#858, pikvm/pikvm#1249: Added slow typing mode for /api/hid/print
This commit is contained in:
@@ -728,11 +728,11 @@
|
||||
</table>
|
||||
<table class="kv">
|
||||
<tr>
|
||||
<td>Ask paste confirmation:</td>
|
||||
<td>Slow typing:</td>
|
||||
<td align="right">
|
||||
<div class="switch-box">
|
||||
<input checked type="checkbox" id="hid-pak-ask-switch">
|
||||
<label for="hid-pak-ask-switch"><span class="switch-inner"></span><span class="switch"></span></label>
|
||||
<input type="checkbox" id="hid-pak-slow-switch">
|
||||
<label for="hid-pak-slow-switch"><span class="switch-inner"></span><span class="switch"></span></label>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
@@ -745,6 +745,15 @@
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Ask paste confirmation:</td>
|
||||
<td align="right">
|
||||
<div class="switch-box">
|
||||
<input checked type="checkbox" id="hid-pak-ask-switch">
|
||||
<label for="hid-pak-ask-switch"><span class="switch-inner"></span><span class="switch"></span></label>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<div class="feature-disabled" id="stream-ocr">
|
||||
<hr><br>
|
||||
|
||||
@@ -18,9 +18,11 @@ li(id="text-dropdown" class="right")
|
||||
select(id="hid-pak-keymap-selector")
|
||||
table(class="kv")
|
||||
tr
|
||||
+menu_switch_notable("hid-pak-ask-switch", "Ask paste confirmation", true, true)
|
||||
+menu_switch_notable("hid-pak-slow-switch", "Slow typing", true, false)
|
||||
tr
|
||||
+menu_switch_notable("hid-pak-secure-switch", "Hide input text", true, false)
|
||||
tr
|
||||
+menu_switch_notable("hid-pak-ask-switch", "Ask paste confirmation", true, true)
|
||||
div(id="stream-ocr" class="feature-disabled")
|
||||
hr
|
||||
br
|
||||
|
||||
@@ -34,6 +34,7 @@ export function Paste(__recorder) {
|
||||
|
||||
var __init__ = function() {
|
||||
tools.storage.bindSimpleSwitch($("hid-pak-ask-switch"), "hid.pak.ask", true);
|
||||
tools.storage.bindSimpleSwitch($("hid-pak-slow-switch"), "hid.pak.slow", false);
|
||||
tools.storage.bindSimpleSwitch($("hid-pak-secure-switch"), "hid.pak.secure", false, function(value) {
|
||||
$("hid-pak-text").style.setProperty("-webkit-text-security", (value ? "disc" : "none"));
|
||||
});
|
||||
@@ -67,10 +68,11 @@ export function Paste(__recorder) {
|
||||
tools.el.setEnabled($("hid-pak-keymap-selector"), false);
|
||||
|
||||
let keymap = $("hid-pak-keymap-selector").value;
|
||||
let slow = $("hid-pak-slow-switch").checked;
|
||||
|
||||
tools.debug(`HID: paste-as-keys ${keymap}: ${text}`);
|
||||
|
||||
tools.httpPost("/api/hid/print", {"limit": 0, "keymap": keymap}, function(http) {
|
||||
tools.httpPost("/api/hid/print", {"limit": 0, "keymap": keymap, "slow": slow}, function(http) {
|
||||
tools.el.setEnabled($("hid-pak-text"), true);
|
||||
tools.el.setEnabled($("hid-pak-button"), true);
|
||||
tools.el.setEnabled($("hid-pak-keymap-selector"), true);
|
||||
@@ -80,7 +82,7 @@ export function Paste(__recorder) {
|
||||
} else if (http.status !== 200) {
|
||||
wm.error("HID paste error", http.responseText);
|
||||
} else if (http.status === 200) {
|
||||
__recorder.recordPrintEvent(text, keymap);
|
||||
__recorder.recordPrintEvent(text, keymap, slow);
|
||||
}
|
||||
}, text, "text/plain");
|
||||
};
|
||||
|
||||
@@ -67,8 +67,8 @@ export function Recorder() {
|
||||
__recordEvent(event);
|
||||
};
|
||||
|
||||
self.recordPrintEvent = function(text, keymap) {
|
||||
__recordEvent({"event_type": "print", "event": {"text": text, "keymap": keymap}});
|
||||
self.recordPrintEvent = function(text, keymap, slow) {
|
||||
__recordEvent({"event_type": "print", "event": {"text": text, "keymap": keymap, "slow": slow}});
|
||||
};
|
||||
|
||||
self.recordAtxButtonEvent = function(button) {
|
||||
@@ -159,9 +159,12 @@ export function Recorder() {
|
||||
|
||||
} else if (event.event_type === "print") {
|
||||
__checkType(event.event.text, "string", "Non-string print text");
|
||||
if (event.event.keymap) {
|
||||
if (event.event.keymap !== undefined) {
|
||||
__checkType(event.event.keymap, "string", "Non-string keymap");
|
||||
}
|
||||
if (event.event.slow !== undefined) {
|
||||
__checkType(event.event.slow, "boolean", "Non-bool slow");
|
||||
}
|
||||
|
||||
} else if (event.event_type === "key") {
|
||||
__checkType(event.event.key, "string", "Non-string key code");
|
||||
@@ -284,9 +287,12 @@ export function Recorder() {
|
||||
|
||||
} else if (event.event_type === "print") {
|
||||
let params = {"limit": 0};
|
||||
if (event.event.keymap) {
|
||||
if (event.event.keymap !== undefined) {
|
||||
params["keymap"] = event.event.keymap;
|
||||
}
|
||||
if (event.event.slow !== undefined) {
|
||||
params["slow"] = event.event.slow;
|
||||
}
|
||||
tools.httpPost("/api/hid/print", params, function(http) {
|
||||
if (http.status === 413) {
|
||||
wm.error("Too many text for paste!");
|
||||
|
||||
Reference in New Issue
Block a user