mirror of
https://github.com/Frooodle/Stirling-PDF.git
synced 2025-09-12 17:52:13 +02:00
Merge branch 'main' into main
This commit is contained in:
commit
7e6e62d072
@ -128,14 +128,14 @@ Stirling-PDF currently supports 39 languages!
|
|||||||
| English (English) (en_GB) |  |
|
| English (English) (en_GB) |  |
|
||||||
| English (US) (en_US) |  |
|
| English (US) (en_US) |  |
|
||||||
| French (Français) (fr_FR) |  |
|
| French (Français) (fr_FR) |  |
|
||||||
| German (Deutsch) (de_DE) |  |
|
| German (Deutsch) (de_DE) |  |
|
||||||
| Greek (Ελληνικά) (el_GR) |  |
|
| Greek (Ελληνικά) (el_GR) |  |
|
||||||
| Hindi (हिंदी) (hi_IN) |  |
|
| Hindi (हिंदी) (hi_IN) |  |
|
||||||
| Hungarian (Magyar) (hu_HU) |  |
|
| Hungarian (Magyar) (hu_HU) |  |
|
||||||
| Indonesian (Bahasa Indonesia) (id_ID) |  |
|
| Indonesian (Bahasa Indonesia) (id_ID) |  |
|
||||||
| Irish (Gaeilge) (ga_IE) |  |
|
| Irish (Gaeilge) (ga_IE) |  |
|
||||||
| Italian (Italiano) (it_IT) |  |
|
| Italian (Italiano) (it_IT) |  |
|
||||||
| Japanese (日本語) (ja_JP) |  |
|
| Japanese (日本語) (ja_JP) |  |
|
||||||
| Korean (한국어) (ko_KR) |  |
|
| Korean (한국어) (ko_KR) |  |
|
||||||
| Norwegian (Norsk) (no_NB) |  |
|
| Norwegian (Norsk) (no_NB) |  |
|
||||||
| Persian (فارسی) (fa_IR) |  |
|
| Persian (فارسی) (fa_IR) |  |
|
||||||
|
@ -34,7 +34,8 @@ class PdfContainer {
|
|||||||
this.splitPDF = this.splitPDF.bind(this);
|
this.splitPDF = this.splitPDF.bind(this);
|
||||||
this.splitAll = this.splitAll.bind(this);
|
this.splitAll = this.splitAll.bind(this);
|
||||||
this.deleteSelected = this.deleteSelected.bind(this);
|
this.deleteSelected = this.deleteSelected.bind(this);
|
||||||
this.toggleSelectAll = this.toggleSelectAll.bind(this);
|
this.selectAll = this.selectAll.bind(this);
|
||||||
|
this.deselectAll = this.deselectAll.bind(this);
|
||||||
this.updateSelectedPagesDisplay = this.updateSelectedPagesDisplay.bind(this);
|
this.updateSelectedPagesDisplay = this.updateSelectedPagesDisplay.bind(this);
|
||||||
this.toggleSelectPageVisibility = this.toggleSelectPageVisibility.bind(this);
|
this.toggleSelectPageVisibility = this.toggleSelectPageVisibility.bind(this);
|
||||||
this.updatePagesFromCSV = this.updatePagesFromCSV.bind(this);
|
this.updatePagesFromCSV = this.updatePagesFromCSV.bind(this);
|
||||||
@ -63,7 +64,8 @@ class PdfContainer {
|
|||||||
window.rotateAll = this.rotateAll;
|
window.rotateAll = this.rotateAll;
|
||||||
window.splitAll = this.splitAll;
|
window.splitAll = this.splitAll;
|
||||||
window.deleteSelected = this.deleteSelected;
|
window.deleteSelected = this.deleteSelected;
|
||||||
window.toggleSelectAll = this.toggleSelectAll;
|
window.selectAll = this.selectAll;
|
||||||
|
window.deselectAll = this.deselectAll;
|
||||||
window.updateSelectedPagesDisplay = this.updateSelectedPagesDisplay;
|
window.updateSelectedPagesDisplay = this.updateSelectedPagesDisplay;
|
||||||
window.toggleSelectPageVisibility = this.toggleSelectPageVisibility;
|
window.toggleSelectPageVisibility = this.toggleSelectPageVisibility;
|
||||||
window.updatePagesFromCSV = this.updatePagesFromCSV;
|
window.updatePagesFromCSV = this.updatePagesFromCSV;
|
||||||
@ -72,7 +74,6 @@ class PdfContainer {
|
|||||||
window.addFilesBlankAll = this.addFilesBlankAll;
|
window.addFilesBlankAll = this.addFilesBlankAll;
|
||||||
window.removeAllElements = this.removeAllElements;
|
window.removeAllElements = this.removeAllElements;
|
||||||
window.resetPages = this.resetPages;
|
window.resetPages = this.resetPages;
|
||||||
window.selectAll = false;
|
|
||||||
|
|
||||||
let undoBtn = document.getElementById('undo-btn');
|
let undoBtn = document.getElementById('undo-btn');
|
||||||
let redoBtn = document.getElementById('redo-btn');
|
let redoBtn = document.getElementById('redo-btn');
|
||||||
@ -433,33 +434,43 @@ class PdfContainer {
|
|||||||
this.undoManager.pushUndoClearRedo(removeSelectedCommand);
|
this.undoManager.pushUndoClearRedo(removeSelectedCommand);
|
||||||
}
|
}
|
||||||
|
|
||||||
toggleSelectAll() {
|
selectAll() {
|
||||||
const checkboxes = document.querySelectorAll('.pdf-actions_checkbox');
|
const checkboxes = document.querySelectorAll('.pdf-actions_checkbox');
|
||||||
window.selectAll = !window.selectAll;
|
|
||||||
const selectIcon = document.getElementById('select-All-Container');
|
const selectIcon = document.getElementById('select-All-Container');
|
||||||
const deselectIcon = document.getElementById('deselect-All-Container');
|
const deselectIcon = document.getElementById('deselect-All-Container');
|
||||||
|
|
||||||
if (!window.selectAll) {
|
this.showButton(selectIcon, false);
|
||||||
this.showButton(selectIcon, true);
|
this.showButton(deselectIcon, true);
|
||||||
this.showButton(deselectIcon, false);
|
|
||||||
} else {
|
|
||||||
this.showButton(selectIcon, false);
|
|
||||||
this.showButton(deselectIcon, true);
|
|
||||||
}
|
|
||||||
checkboxes.forEach((checkbox) => {
|
checkboxes.forEach((checkbox) => {
|
||||||
checkbox.checked = window.selectAll;
|
checkbox.checked = true;
|
||||||
|
|
||||||
const pageNumber = Array.from(checkbox.parentNode.parentNode.children).indexOf(checkbox.parentNode) + 1;
|
const pageNumber = Array.from(checkbox.parentNode.parentNode.children).indexOf(checkbox.parentNode) + 1;
|
||||||
|
|
||||||
if (checkbox.checked) {
|
if (!window.selectedPages.includes(pageNumber)) {
|
||||||
if (!window.selectedPages.includes(pageNumber)) {
|
window.selectedPages.push(pageNumber);
|
||||||
window.selectedPages.push(pageNumber);
|
}
|
||||||
}
|
});
|
||||||
} else {
|
|
||||||
const index = window.selectedPages.indexOf(pageNumber);
|
this.updateSelectedPagesDisplay();
|
||||||
if (index !== -1) {
|
}
|
||||||
window.selectedPages.splice(index, 1);
|
|
||||||
}
|
deselectAll() {
|
||||||
|
const checkboxes = document.querySelectorAll('.pdf-actions_checkbox');
|
||||||
|
const selectIcon = document.getElementById('select-All-Container');
|
||||||
|
const deselectIcon = document.getElementById('deselect-All-Container');
|
||||||
|
|
||||||
|
this.showButton(selectIcon, true);
|
||||||
|
this.showButton(deselectIcon, false);
|
||||||
|
|
||||||
|
checkboxes.forEach((checkbox) => {
|
||||||
|
checkbox.checked = false;
|
||||||
|
|
||||||
|
const pageNumber = Array.from(checkbox.parentNode.parentNode.children).indexOf(checkbox.parentNode) + 1;
|
||||||
|
|
||||||
|
const index = window.selectedPages.indexOf(pageNumber);
|
||||||
|
if (index !== -1) {
|
||||||
|
window.selectedPages.splice(index, 1);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -569,6 +580,34 @@ class PdfContainer {
|
|||||||
|
|
||||||
// Update the input field with the formatted page list
|
// Update the input field with the formatted page list
|
||||||
selectedPagesInput.value = this.formatSelectedPages(window.selectedPages);
|
selectedPagesInput.value = this.formatSelectedPages(window.selectedPages);
|
||||||
|
|
||||||
|
const selectIcon = document.getElementById('select-All-Container');
|
||||||
|
const deselectIcon = document.getElementById('deselect-All-Container');
|
||||||
|
|
||||||
|
if (window.selectPage) { // Check if selectPage mode is active
|
||||||
|
console.log("Page Select on. Showing buttons");
|
||||||
|
//Check if no pages are selected
|
||||||
|
if (window.selectedPages.length === 0) {
|
||||||
|
this.showButton(selectIcon, true);
|
||||||
|
this.showButton(deselectIcon, false);
|
||||||
|
} else {
|
||||||
|
this.showButton(deselectIcon, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
//Check if all pages are selected
|
||||||
|
const allCheckboxes = document.querySelectorAll('.pdf-actions_checkbox');
|
||||||
|
const allSelected = Array.from(allCheckboxes).every((checkbox) => checkbox.checked);
|
||||||
|
if (allSelected) {
|
||||||
|
this.showButton(selectIcon, false);
|
||||||
|
this.showButton(deselectIcon, true);
|
||||||
|
} else {
|
||||||
|
this.showButton(selectIcon, true);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
console.log("Page Select off. Hidding buttons");
|
||||||
|
this.showButton(selectIcon, false);
|
||||||
|
this.showButton(deselectIcon, false);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
parsePageRanges(ranges) {
|
parsePageRanges(ranges) {
|
||||||
@ -793,13 +832,9 @@ class PdfContainer {
|
|||||||
});
|
});
|
||||||
|
|
||||||
const checkboxes = document.querySelectorAll('.pdf-actions_checkbox');
|
const checkboxes = document.querySelectorAll('.pdf-actions_checkbox');
|
||||||
window.selectAll = false;
|
|
||||||
const selectIcon = document.getElementById('select-All-Container');
|
const selectIcon = document.getElementById('select-All-Container');
|
||||||
const deselectIcon = document.getElementById('deselect-All-Container');
|
const deselectIcon = document.getElementById('deselect-All-Container');
|
||||||
|
|
||||||
selectIcon.style.display = 'inline';
|
|
||||||
deselectIcon.style.display = 'none';
|
|
||||||
|
|
||||||
checkboxes.forEach((checkbox) => {
|
checkboxes.forEach((checkbox) => {
|
||||||
const pageNumber = Array.from(checkbox.parentNode.parentNode.children).indexOf(checkbox.parentNode) + 1;
|
const pageNumber = Array.from(checkbox.parentNode.parentNode.children).indexOf(checkbox.parentNode) + 1;
|
||||||
|
|
||||||
@ -852,18 +887,30 @@ class PdfContainer {
|
|||||||
deleteButton.classList.toggle('hidden', !window.selectPage);
|
deleteButton.classList.toggle('hidden', !window.selectPage);
|
||||||
const selectedPages = document.getElementById('selected-pages-display');
|
const selectedPages = document.getElementById('selected-pages-display');
|
||||||
selectedPages.classList.toggle('hidden', !window.selectPage);
|
selectedPages.classList.toggle('hidden', !window.selectPage);
|
||||||
|
|
||||||
if(!window.selectPage)
|
if(!window.selectPage)
|
||||||
{
|
{
|
||||||
this.showButton(document.getElementById('deselect-All-Container'), false);
|
this.showButton(document.getElementById('deselect-All-Container'), false);
|
||||||
this.showButton(document.getElementById('select-All-Container'), false);
|
this.showButton(document.getElementById('select-All-Container'), false);
|
||||||
}
|
|
||||||
else if(window.selectAll){
|
// Uncheck all checkboxes and clear selected pages
|
||||||
this.showButton(document.getElementById('deselect-All-Container'), true);
|
const allCheckboxes = document.querySelectorAll('.pdf-actions_checkbox');
|
||||||
this.showButton(document.getElementById('select-All-Container'), false);
|
allCheckboxes.forEach((checkbox) => {
|
||||||
|
checkbox.checked = false;
|
||||||
|
});
|
||||||
|
window.selectedPages = [];
|
||||||
|
this.updateSelectedPagesDisplay();
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
this.showButton(document.getElementById('deselect-All-Container'), false);
|
const allCheckboxes = document.querySelectorAll('.pdf-actions_checkbox');
|
||||||
this.showButton(document.getElementById('select-All-Container'), true);
|
const allSelected = Array.from(allCheckboxes).every((checkbox) => checkbox.checked);
|
||||||
|
if (!allSelected) {
|
||||||
|
this.showButton(document.getElementById('select-All-Container'), true);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (window.selectedPages.length > 0) {
|
||||||
|
this.showButton(document.getElementById('deselect-All-Container'), true);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const exportSelected = document.getElementById('export-selected-button');
|
const exportSelected = document.getElementById('export-selected-button');
|
||||||
|
@ -94,11 +94,11 @@
|
|||||||
</span>
|
</span>
|
||||||
</button>
|
</button>
|
||||||
<button id="deselect-All-Container" th:title="#{multiTool.deselectAll}"
|
<button id="deselect-All-Container" th:title="#{multiTool.deselectAll}"
|
||||||
class="btn btn-secondary enable-on-file hidden" onclick="toggleSelectAll()" disabled>
|
class="btn btn-secondary enable-on-file hidden" onclick="deselectAll()" disabled>
|
||||||
<span class="material-symbols-rounded" id="deselect-icon">deselect</span>
|
<span class="material-symbols-rounded" id="deselect-icon">deselect</span>
|
||||||
</button>
|
</button>
|
||||||
<button id="select-All-Container" th:title="#{multiTool.selectAll}"
|
<button id="select-All-Container" th:title="#{multiTool.selectAll}"
|
||||||
class="btn btn-secondary enable-on-file hidden" onclick="toggleSelectAll()" disabled>
|
class="btn btn-secondary enable-on-file hidden" onclick="selectAll()" disabled>
|
||||||
<span class="material-symbols-rounded" id="select-icon">select_all</span>
|
<span class="material-symbols-rounded" id="select-icon">select_all</span>
|
||||||
</button>
|
</button>
|
||||||
<button id="delete-button" th:title="#{multiTool.deleteSelected}"
|
<button id="delete-button" th:title="#{multiTool.deleteSelected}"
|
||||||
|
Loading…
Reference in New Issue
Block a user