Files
qBittorrent/src/webui/www/private/edittracker.html
Thomas Piccirello 6ef9db89f9 WebUI: Support editing tracker tier
This PR adds the ability to direct modify a tracker's tier from the WebUI. This process is notably different than the GUI, which provides arrows for increasing/decreasing a tracker's tier.

Closes #12233.
PR #22963.
2025-08-18 02:46:10 +08:00

79 lines
3.0 KiB
HTML

<!DOCTYPE html>
<html lang="${LANG}" class="dark">
<head>
<meta charset="UTF-8">
<title>QBT_TR(Tracker editing)QBT_TR[CONTEXT=TrackerListWidget]</title>
<link rel="stylesheet" href="css/style.css?v=${CACHEID}" type="text/css">
<script defer src="scripts/localpreferences.js?v=${CACHEID}"></script>
<script defer src="scripts/color-scheme.js?v=${CACHEID}"></script>
<script>
"use strict";
window.addEventListener("DOMContentLoaded", (event) => {
window.addEventListener("keydown", (event) => {
switch (event.key) {
case "Enter":
event.preventDefault();
document.getElementById("editTrackerButton").click();
break;
case "Escape":
event.preventDefault();
window.parent.qBittorrent.Client.closeFrameWindow(window);
break;
}
});
const searchParams = new URLSearchParams(window.location.search);
const currentUrl = searchParams.get("url");
const currentTier = searchParams.get("tier");
if ((currentUrl === null) || (currentTier === null))
return;
document.getElementById("trackerTier").value = currentTier;
document.getElementById("trackerUrl").value = currentUrl;
document.getElementById("trackerUrl").focus();
document.getElementById("editTrackerButton").addEventListener("click", (e) => {
e.preventDefault();
e.stopPropagation();
fetch("api/v2/torrents/editTracker", {
method: "POST",
body: new URLSearchParams({
hash: searchParams.get("hash"),
url: currentUrl,
newUrl: document.getElementById("trackerUrl").value,
tier: document.getElementById("trackerTier").value
})
})
.then((response) => {
if (!response.ok)
return;
window.parent.qBittorrent.Client.closeFrameWindow(window);
});
});
});
</script>
</head>
<body>
<div style="text-align: center;">
<br>
<label for="trackerUrl">QBT_TR(Tracker URL:)QBT_TR[CONTEXT=TrackerListWidget]</label>
<div style="text-align: center; padding-top: 10px;">
<input type="text" id="trackerUrl" style="width: 90%;">
</div>
<br>
<label for="trackerTier">QBT_TR(Tier:)QBT_TR[CONTEXT=TrackerListWidget]</label>
<div style="text-align: center; padding-top: 10px;">
<input type="number" id="trackerTier" style="width: 90%; max-width: 100px;" min="0" max="255">
</div>
<br>
<input type="button" value="QBT_TR(Edit)QBT_TR[CONTEXT=HttpServer]" id="editTrackerButton">
</div>
</body>
</html>