Files
danbooru/app/javascript/src/javascripts/post_version.js
2020-01-04 22:02:43 +00:00

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;