mirror of
https://github.com/qbittorrent/qBittorrent
synced 2025-08-20 21:33:27 -07:00
WebUI: Allow closing dialogs with Escape key
Tested on the following WebUI Modals: 1. Delete 2. Rename files 3. Settings 4. About 5. Statistics 6. Add torrent PR #22920. Closes #13891.
This commit is contained in:
parent
163f683186
commit
e3141ce449
7 changed files with 72 additions and 0 deletions
|
@ -11,6 +11,15 @@
|
||||||
"use strict";
|
"use strict";
|
||||||
|
|
||||||
window.addEventListener("DOMContentLoaded", (event) => {
|
window.addEventListener("DOMContentLoaded", (event) => {
|
||||||
|
window.addEventListener("keydown", (event) => {
|
||||||
|
switch (event.key) {
|
||||||
|
case "Escape":
|
||||||
|
event.preventDefault();
|
||||||
|
window.parent.qBittorrent.Client.closeFrameWindow(window);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
document.getElementById("cancelBtn").focus();
|
document.getElementById("cancelBtn").focus();
|
||||||
document.getElementById("cancelBtn").addEventListener("click", (e) => {
|
document.getElementById("cancelBtn").addEventListener("click", (e) => {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
|
|
|
@ -11,6 +11,15 @@
|
||||||
"use strict";
|
"use strict";
|
||||||
|
|
||||||
window.addEventListener("DOMContentLoaded", (event) => {
|
window.addEventListener("DOMContentLoaded", (event) => {
|
||||||
|
window.addEventListener("keydown", (event) => {
|
||||||
|
switch (event.key) {
|
||||||
|
case "Escape":
|
||||||
|
event.preventDefault();
|
||||||
|
window.parent.qBittorrent.Client.closeFrameWindow(window);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
document.getElementById("cancelBtn").focus();
|
document.getElementById("cancelBtn").focus();
|
||||||
document.getElementById("cancelBtn").addEventListener("click", (e) => {
|
document.getElementById("cancelBtn").addEventListener("click", (e) => {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
|
|
|
@ -11,6 +11,15 @@
|
||||||
"use strict";
|
"use strict";
|
||||||
|
|
||||||
window.addEventListener("DOMContentLoaded", (event) => {
|
window.addEventListener("DOMContentLoaded", (event) => {
|
||||||
|
window.addEventListener("keydown", (event) => {
|
||||||
|
switch (event.key) {
|
||||||
|
case "Escape":
|
||||||
|
event.preventDefault();
|
||||||
|
window.parent.qBittorrent.Client.closeFrameWindow(window);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
document.getElementById("cancelBtn").focus();
|
document.getElementById("cancelBtn").focus();
|
||||||
document.getElementById("cancelBtn").addEventListener("click", (e) => {
|
document.getElementById("cancelBtn").addEventListener("click", (e) => {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
|
|
|
@ -11,6 +11,15 @@
|
||||||
"use strict";
|
"use strict";
|
||||||
|
|
||||||
window.addEventListener("DOMContentLoaded", (event) => {
|
window.addEventListener("DOMContentLoaded", (event) => {
|
||||||
|
window.addEventListener("keydown", (event) => {
|
||||||
|
switch (event.key) {
|
||||||
|
case "Escape":
|
||||||
|
event.preventDefault();
|
||||||
|
window.parent.qBittorrent.Client.closeFrameWindow(window);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
const searchParams = new URLSearchParams(window.location.search);
|
const searchParams = new URLSearchParams(window.location.search);
|
||||||
const host = searchParams.get("host");
|
const host = searchParams.get("host");
|
||||||
|
|
||||||
|
|
|
@ -14,6 +14,15 @@
|
||||||
"use strict";
|
"use strict";
|
||||||
|
|
||||||
window.addEventListener("DOMContentLoaded", (event) => {
|
window.addEventListener("DOMContentLoaded", (event) => {
|
||||||
|
window.addEventListener("keydown", (event) => {
|
||||||
|
switch (event.key) {
|
||||||
|
case "Escape":
|
||||||
|
event.preventDefault();
|
||||||
|
window.parent.qBittorrent.Client.closeFrameWindow(window);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
const encodedUrls = new URLSearchParams(window.location.search).get("urls");
|
const encodedUrls = new URLSearchParams(window.location.search).get("urls");
|
||||||
if (encodedUrls !== null) {
|
if (encodedUrls !== null) {
|
||||||
const urls = encodedUrls.split("|").map(decodeURIComponent);
|
const urls = encodedUrls.split("|").map(decodeURIComponent);
|
||||||
|
|
|
@ -1778,6 +1778,24 @@ window.addEventListener("DOMContentLoaded", (event) => {
|
||||||
deleteSelectedTorrentsFN(event.shiftKey);
|
deleteSelectedTorrentsFN(event.shiftKey);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case "Escape": {
|
||||||
|
if (event.target.isContentEditable)
|
||||||
|
return;
|
||||||
|
|
||||||
|
event.preventDefault();
|
||||||
|
const modalInstances = Object.values(MochaUI.Windows.instances);
|
||||||
|
if (modalInstances.length <= 0)
|
||||||
|
return;
|
||||||
|
|
||||||
|
// MochaUI.currentModal does not update after a modal is closed
|
||||||
|
const focusedModal = modalInstances.find((modal) => {
|
||||||
|
return modal.windowEl.hasClass("isFocused");
|
||||||
|
});
|
||||||
|
if (focusedModal !== undefined)
|
||||||
|
focusedModal.close();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
case "f":
|
case "f":
|
||||||
case "F":
|
case "F":
|
||||||
if (event.ctrlKey || event.metaKey) {
|
if (event.ctrlKey || event.metaKey) {
|
||||||
|
|
|
@ -14,6 +14,15 @@
|
||||||
"use strict";
|
"use strict";
|
||||||
|
|
||||||
window.addEventListener("DOMContentLoaded", (event) => {
|
window.addEventListener("DOMContentLoaded", (event) => {
|
||||||
|
window.addEventListener("keydown", (event) => {
|
||||||
|
switch (event.key) {
|
||||||
|
case "Escape":
|
||||||
|
event.preventDefault();
|
||||||
|
window.parent.qBittorrent.Client.closeFrameWindow(window);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
let submitted = false;
|
let submitted = false;
|
||||||
|
|
||||||
document.getElementById("uploadForm").addEventListener("submit", (event) => {
|
document.getElementById("uploadForm").addEventListener("submit", (event) => {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue