/**
* This file holds the event for deleting a version.
*
* @module scripts/events/main/delete_version
*/
import RequestHandler from "../../request_handler.js";
import PageHandler from "../../page_handler.js";
import EventHandler from "../../event_handler.js";
/**
* Deletes a certain version.
*
* @function delete_version_event
*
* @param {HTMLElement} target - Is the targeted UI element that was clicked.
* @param {object} args - The data attributes of the targeted element.
* @param {RequestHandler} requestHandler - The handler for HTTP requests.
* @param {PageHandler} pageHandler - The handler for UI updates.
* @param {EventHandler} eventHandler - The handler for the events.
*/
function delete_version_event(target, args, requestHandler, pageHandler, eventHandler) {
function callbackDelete() {
let versionId = pageHandler.getVersionId(target);
requestHandler.POST("/api/delete", [ "True", versionId ], {}, (res) => {
if (res.type) {
pageHandler.deleteVersion(res.payload, target);
pageHandler.addError(res.message, false);
} else {
pageHandler.addError(res.error);
}
});
}
let isFavorited = pageHandler.getIsFavorited(target);
if (isFavorited) {
pageHandler.requestConfirm((confirmed) => {
if (confirmed) {
callbackDelete();
}
}, eventHandler.REQUEST_DELETE_CONFIRMATION_MSG);
eventHandler.isHandlingEvent = false;
return;
}
callbackDelete();
eventHandler.isHandlingEvent = false;
}
export default delete_version_event;