46 lines
1.5 KiB
JavaScript
46 lines
1.5 KiB
JavaScript
import Utility from './utility';
|
|
|
|
let PostVersion = {};
|
|
|
|
PostVersion.initialize_all = function() {
|
|
if ($("#c-post-versions #a-index").length) {
|
|
PostVersion.initialize_undo();
|
|
}
|
|
};
|
|
|
|
PostVersion.initialize_undo = function() {
|
|
/* Expand the clickable area of the checkbox to the entire table cell. */
|
|
$(".post-version-select-column").on("click.danbooru", function(event) {
|
|
$(event.target).find(".post-version-select-checkbox:not(:disabled)").prop("checked", (_, checked) => !checked).change();
|
|
});
|
|
|
|
$("#post-version-select-all-checkbox").on("change.danbooru", function(event) {
|
|
$("td .post-version-select-checkbox:not(:disabled)").prop("checked", $("#post-version-select-all-checkbox").prop("checked")).change();
|
|
});
|
|
|
|
$(".post-version-select-checkbox").on("change.danbooru", function(event) {
|
|
let checked = $("td .post-version-select-checkbox:checked");
|
|
$("#subnav-undo-selected-link").text(`Undo selected (${checked.length})`).toggle(checked.length > 0);
|
|
});
|
|
|
|
$("#subnav-undo-selected-link").on("click.danbooru", PostVersion.undo_selected);
|
|
};
|
|
|
|
PostVersion.undo_selected = async function () {
|
|
event.preventDefault();
|
|
|
|
let updated = 0;
|
|
let selected_rows = $("td .post-version-select-checkbox:checked").parents("tr");
|
|
|
|
for (let row of selected_rows) {
|
|
let id = $(row).data("id");
|
|
await $.ajax(`/post_versions/${id}/undo.json`, { method: "PUT" });
|
|
|
|
updated++;
|
|
Utility.notice(`${updated}/${selected_rows.length} changes undone.`);
|
|
}
|
|
};
|
|
|
|
$(document).ready(PostVersion.initialize_all);
|
|
export default PostVersion;
|