mirror of
https://github.com/Stirling-Tools/Stirling-PDF.git
synced 2025-06-18 05:25:04 +00:00
52 lines
1.4 KiB
JavaScript
52 lines
1.4 KiB
JavaScript
![]() |
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();
|
||
|
}
|
||
|
}
|