97 lines
4.5 KiB
HTML

<div id="confirmDeletionDialog">
<div class="confirmDeletionGrid">
<span class="deletionGridItem confirmDialogWarning"></span>
<span class="deletionGridItem dialogMessage" id="deleteTorrentMessage"></span>
<span class="deletionGridItem">
<button id="rememberBtn" class="disabled" type="button" title="Remember choice" style="vertical-align: middle; padding: 4px 6px;" disabled="">
<svg height="32" viewBox="0 0 32 32" width="32" xmlns="http://www.w3.org/2000/svg" style="height: 24px; width: 24px;"><path d="m22.58889 13.856795h-13.1776846v-3.690063c0-3.2959186 2.9557016-5.9772288 6.5888426-5.9772288 3.633136 0 6.588842 2.6814977 6.588842 5.9772288zm3.515031.03355v-3.723984c0-5.0541989-4.532547-9.16636116-10.103873-9.16636116-5.571329 0-10.1038769 4.11216226-10.1038769 9.16636116v3.72398c-.7962418.150954-1.3961709.793694-1.3961709 1.560369v13.955002c0 .879047.7884216 1.594288 1.7575164 1.594288h19.4849724c.969092 0 1.757511-.715241 1.757511-1.594288v-13.955002c0-.766675-.599832-1.408677-1.396079-1.560372z" fill="#ff8c00" stroke-width="1.980014" style="fill: var(--color-border-default);"></path></svg></button>
</span>
<span class="deletionGridItem">
<input type="checkbox" id="deleteFromDiskCB">
<label for="deleteFromDiskCB">
<em>Also remove the content files</em>
</label>
</span>
</div>
</div>
<div>
<input type="button" value="Remove" id="confirmDeletionButton">
<input type="button" value="Cancel" id="cancelDeletionButton">
</div>
<script>
"use strict";
(() => {
const setRememberBtnEnabled = (enable) => {
rememberButton.disabled = !enable;
rememberButton.classList.toggle("disabled", !enable);
};
const confirmButton = document.getElementById("confirmDeletionButton");
const cancelButton = document.getElementById("cancelDeletionButton");
const rememberButton = document.getElementById("rememberBtn");
const deleteCB = document.getElementById("deleteFromDiskCB");
const deletionText = document.getElementById("deleteTorrentMessage");
const {
hashes,
forceDeleteFiles = false,
filterList = null
} = window.MUI.Windows.instances["confirmDeletionPage"].options.data;
let prefDeleteContentFiles = window.qBittorrent.Cache.preferences.get().delete_torrent_content_files;
deleteCB.checked = forceDeleteFiles || prefDeleteContentFiles;
let deleteMessage;
if (hashes.length === 1) {
const { full_data: { name } } = torrentsTable.getRow(hashes[0]);
deleteMessage = "Are you sure you want to remove %1 from the transfer list?".replace("%1", `"${name}"`);
}
else {
deleteMessage = "Are you sure you want to remove these %1 torrents from the transfer list?".replace("%1", hashes.length);
}
deletionText.textContent = deleteMessage;
// Enable "Remember" button if the current choice is different from the saved preference
deleteCB.addEventListener("click", (e) => { setRememberBtnEnabled(deleteCB.checked !== prefDeleteContentFiles); });
// Set current "Delete files" choice as the default
rememberButton.addEventListener("click", (e) => {
window.qBittorrent.Cache.preferences.set({
data: {
"delete_torrent_content_files": deleteCB.checked
},
onSuccess: function() {
prefDeleteContentFiles = deleteCB.checked;
setRememberBtnEnabled(false);
}
});
});
cancelButton.focus();
cancelButton.addEventListener("click", (e) => { window.qBittorrent.Client.closeWindows(); });
confirmButton.addEventListener("click", (e) => {
torrentsTable.deselectAll();
new Request({
url: "api/v2/torrents/delete",
method: "post",
data: {
"hashes": hashes.join("|"),
"deleteFiles": deleteCB.checked
},
onSuccess: function() {
if (filterList === "tracker")
setTrackerFilter(TRACKERS_ALL);
updateMainData();
window.qBittorrent.Client.closeWindows();
},
onFailure: function() {
alert("Unable to delete torrents.");
},
}).send();
});
})();
</script>