Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

52 lines
1.4 KiB
JavaScript
Raw Normal View History

import {Command} from './command.js';
export class AddFilesCommand extends Command {
constructor(element, selectedPages, addFilesAction, pagesContainer) {
super();
this.element = element;
this.selectedPages = selectedPages;
this.addFilesAction = addFilesAction;
this.pagesContainer = pagesContainer;
this.addedElements = [];
}
async execute() {
const undoBtn = document.getElementById('undo-btn');
undoBtn.disabled = true;
if (this.element) {
const newElement = await this.addFilesAction(this.element);
if (newElement) {
this.addedElements = newElement;
}
} else {
const newElement = await this.addFilesAction(false);
if (newElement) {
this.addedElements = newElement;
}
}
undoBtn.disabled = false;
}
undo() {
this.addedElements.forEach((element) => {
const nextSibling = element.nextSibling;
this.pagesContainer.removeChild(element);
if (this.pagesContainer.childElementCount === 0) {
const filenameInput = document.getElementById('filename-input');
const downloadBtn = document.getElementById('export-button');
filenameInput.disabled = true;
filenameInput.value = '';
downloadBtn.disabled = true;
}
element._nextSibling = nextSibling;
});
this.addedElements = [];
}
redo() {
this.execute();
}
}