Add document splitting functionality to the multi-tools page (#1808)
* Add a split button on top of the insert button in multitool viewer. * Add placeholder splitFileButtonCallback method. * Remove unused splitFileButtonContainer element. * Add this binding to setActions for splitFileButtonCallback * Add test log for adding separators. * Add test log for adding separators. * Remove test logs and add visual indicators to separators instead. * Add splitting functionality to multi-tools. * Prevent trying to split from index 0. * Hide the split button for the first page to avoid confusion. * Change the class name 'cutBefore' to 'split-before' to fall mroe in line with already existing classes. * Add dummy methods for splitting and compressing documents. * Remove form submission, begin work on client side splitting. * Add client side document splitting. * Add client side archiving for the split documents. * Fix a bug that adds an empty page to splitted documents due to a sorting error. * Add a 'Split All' button and the relevant functionality. --------- Co-authored-by: kazandaki <ahmetfiratusta@gmail.com> Co-authored-by: Anthony Stirling <77850077+Frooodle@users.noreply.github.com>
This commit is contained in:
@@ -73,7 +73,12 @@ class PdfActionsManager {
|
||||
this.addFiles(imgContainer);
|
||||
}
|
||||
|
||||
setActions({ movePageTo, addFiles, rotateElement }) {
|
||||
splitFileButtonCallback(e) {
|
||||
var imgContainer = this.getPageContainer(e.target);
|
||||
imgContainer.classList.toggle("split-before");
|
||||
}
|
||||
|
||||
setActions({ movePageTo, addPdfs, rotateElement }) {
|
||||
this.movePageTo = movePageTo;
|
||||
this.addFiles = addFiles;
|
||||
this.rotateElement = rotateElement;
|
||||
@@ -84,6 +89,7 @@ class PdfActionsManager {
|
||||
this.rotateCWButtonCallback = this.rotateCWButtonCallback.bind(this);
|
||||
this.deletePageButtonCallback = this.deletePageButtonCallback.bind(this);
|
||||
this.insertFileButtonCallback = this.insertFileButtonCallback.bind(this);
|
||||
this.splitFileButtonCallback = this.splitFileButtonCallback.bind(this);
|
||||
}
|
||||
|
||||
adapt(div) {
|
||||
@@ -140,6 +146,12 @@ class PdfActionsManager {
|
||||
insertFileButton.onclick = this.insertFileButtonCallback;
|
||||
insertFileButtonContainer.appendChild(insertFileButton);
|
||||
|
||||
const splitFileButton = document.createElement("button");
|
||||
splitFileButton.classList.add("btn", "btn-primary", "pdf-actions_split-file-button");
|
||||
splitFileButton.innerHTML = `<span class="material-symbols-rounded">cut</span>`;
|
||||
splitFileButton.onclick = this.splitFileButtonCallback;
|
||||
insertFileButtonContainer.appendChild(splitFileButton);
|
||||
|
||||
div.appendChild(insertFileButtonContainer);
|
||||
|
||||
// add this button to every element, but only show it on the last one :D
|
||||
|
||||
Reference in New Issue
Block a user