mirror of
https://codeberg.org/PostERG/xamxam.git
synced 2026-08-10 07:11:18 +02:00
Expose tag/langue/motscles JS functions on window to survive ESM tree-shaking
This commit is contained in:
@@ -7,22 +7,25 @@
|
|||||||
*/
|
*/
|
||||||
var _languesPendingForm = null;
|
var _languesPendingForm = null;
|
||||||
|
|
||||||
function _languesConfirmDelete(btn, name) {
|
function languesConfirmDelete(btn, name) {
|
||||||
_languesPendingForm = btn.closest("form");
|
_languesPendingForm = btn.closest("form");
|
||||||
document.getElementById("langues-delete-name").textContent = name;
|
document.getElementById("langues-delete-name").textContent = name;
|
||||||
document.getElementById("langues-delete-dialog").showModal();
|
document.getElementById("langues-delete-dialog").showModal();
|
||||||
}
|
}
|
||||||
|
window.languesConfirmDelete = languesConfirmDelete;
|
||||||
|
|
||||||
function _languesSubmitPending() {
|
function languesSubmitPending() {
|
||||||
if (_languesPendingForm) _languesPendingForm.submit();
|
if (_languesPendingForm) _languesPendingForm.submit();
|
||||||
}
|
}
|
||||||
|
window.languesSubmitPending = languesSubmitPending;
|
||||||
|
|
||||||
function _languesToggleAll(src) {
|
function languesToggleAll(src) {
|
||||||
document.querySelectorAll('input[name="selected_langs[]"]').forEach((cb) => {
|
document.querySelectorAll('input[name="selected_langs[]"]').forEach((cb) => {
|
||||||
cb.checked = src.checked;
|
cb.checked = src.checked;
|
||||||
});
|
});
|
||||||
languesUpdateBulk();
|
languesUpdateBulk();
|
||||||
}
|
}
|
||||||
|
window.languesToggleAll = languesToggleAll;
|
||||||
|
|
||||||
function languesUpdateBulk() {
|
function languesUpdateBulk() {
|
||||||
var n = document.querySelectorAll(
|
var n = document.querySelectorAll(
|
||||||
@@ -41,15 +44,17 @@ function languesUpdateBulk() {
|
|||||||
wrap.style.setProperty("--sticky-top", "0px");
|
wrap.style.setProperty("--sticky-top", "0px");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
window.languesUpdateBulk = languesUpdateBulk;
|
||||||
|
|
||||||
function _languesCancelSelection() {
|
function languesCancelSelection() {
|
||||||
document.querySelectorAll('input[name="selected_langs[]"]').forEach((cb) => {
|
document.querySelectorAll('input[name="selected_langs[]"]').forEach((cb) => {
|
||||||
cb.checked = false;
|
cb.checked = false;
|
||||||
});
|
});
|
||||||
languesUpdateBulk();
|
languesUpdateBulk();
|
||||||
}
|
}
|
||||||
|
window.languesCancelSelection = languesCancelSelection;
|
||||||
|
|
||||||
function _languesConfirmBulkDelete() {
|
function languesConfirmBulkDelete() {
|
||||||
var checked = document.querySelectorAll(
|
var checked = document.querySelectorAll(
|
||||||
'input[name="selected_langs[]"]:checked',
|
'input[name="selected_langs[]"]:checked',
|
||||||
);
|
);
|
||||||
@@ -58,8 +63,9 @@ function _languesConfirmBulkDelete() {
|
|||||||
checked.length;
|
checked.length;
|
||||||
document.getElementById("langues-bulk-delete-dialog").showModal();
|
document.getElementById("langues-bulk-delete-dialog").showModal();
|
||||||
}
|
}
|
||||||
|
window.languesConfirmBulkDelete = languesConfirmBulkDelete;
|
||||||
|
|
||||||
function _languesExecBulkDelete() {
|
function languesExecBulkDelete() {
|
||||||
var container = document.getElementById("langues-bulk-checkboxes");
|
var container = document.getElementById("langues-bulk-checkboxes");
|
||||||
container.innerHTML = "";
|
container.innerHTML = "";
|
||||||
document
|
document
|
||||||
@@ -77,8 +83,9 @@ function _languesExecBulkDelete() {
|
|||||||
document.getElementById("langues-bulk-delete-dialog").close();
|
document.getElementById("langues-bulk-delete-dialog").close();
|
||||||
document.getElementById("langues-bulk-form").submit();
|
document.getElementById("langues-bulk-form").submit();
|
||||||
}
|
}
|
||||||
|
window.languesExecBulkDelete = languesExecBulkDelete;
|
||||||
|
|
||||||
function _languesConfirmBulkMerge() {
|
function languesConfirmBulkMerge() {
|
||||||
var checked = document.querySelectorAll(
|
var checked = document.querySelectorAll(
|
||||||
'input[name="selected_langs[]"]:checked',
|
'input[name="selected_langs[]"]:checked',
|
||||||
);
|
);
|
||||||
@@ -98,8 +105,9 @@ function _languesConfirmBulkMerge() {
|
|||||||
});
|
});
|
||||||
document.getElementById("langues-bulk-merge-dialog").showModal();
|
document.getElementById("langues-bulk-merge-dialog").showModal();
|
||||||
}
|
}
|
||||||
|
window.languesConfirmBulkMerge = languesConfirmBulkMerge;
|
||||||
|
|
||||||
function _languesExecBulkMerge() {
|
function languesExecBulkMerge() {
|
||||||
var targetId = document.getElementById(
|
var targetId = document.getElementById(
|
||||||
"langues-bulk-merge-target-select",
|
"langues-bulk-merge-target-select",
|
||||||
).value;
|
).value;
|
||||||
@@ -119,6 +127,7 @@ function _languesExecBulkMerge() {
|
|||||||
document.getElementById("langues-bulk-merge-dialog").close();
|
document.getElementById("langues-bulk-merge-dialog").close();
|
||||||
document.getElementById("langues-bulk-form").submit();
|
document.getElementById("langues-bulk-form").submit();
|
||||||
}
|
}
|
||||||
|
window.languesExecBulkMerge = languesExecBulkMerge;
|
||||||
|
|
||||||
document.addEventListener("htmx:afterSwap", (evt) => {
|
document.addEventListener("htmx:afterSwap", (evt) => {
|
||||||
if (evt.target.id === "langues-table-wrap") {
|
if (evt.target.id === "langues-table-wrap") {
|
||||||
|
|||||||
@@ -7,22 +7,25 @@
|
|||||||
*/
|
*/
|
||||||
var _motsclesPendingForm = null;
|
var _motsclesPendingForm = null;
|
||||||
|
|
||||||
function _motsclesConfirmDelete(btn, name) {
|
function motsclesConfirmDelete(btn, name) {
|
||||||
_motsclesPendingForm = btn.closest("form");
|
_motsclesPendingForm = btn.closest("form");
|
||||||
document.getElementById("motscles-delete-name").textContent = name;
|
document.getElementById("motscles-delete-name").textContent = name;
|
||||||
document.getElementById("motscles-delete-dialog").showModal();
|
document.getElementById("motscles-delete-dialog").showModal();
|
||||||
}
|
}
|
||||||
|
window.motsclesConfirmDelete = motsclesConfirmDelete;
|
||||||
|
|
||||||
function _motsclesSubmitPending() {
|
function motsclesSubmitPending() {
|
||||||
if (_motsclesPendingForm) _motsclesPendingForm.submit();
|
if (_motsclesPendingForm) _motsclesPendingForm.submit();
|
||||||
}
|
}
|
||||||
|
window.motsclesSubmitPending = motsclesSubmitPending;
|
||||||
|
|
||||||
function _motsclesToggleAll(src) {
|
function motsclesToggleAll(src) {
|
||||||
document.querySelectorAll('input[name="selected_tags[]"]').forEach((cb) => {
|
document.querySelectorAll('input[name="selected_tags[]"]').forEach((cb) => {
|
||||||
cb.checked = src.checked;
|
cb.checked = src.checked;
|
||||||
});
|
});
|
||||||
motsclesUpdateBulk();
|
motsclesUpdateBulk();
|
||||||
}
|
}
|
||||||
|
window.motsclesToggleAll = motsclesToggleAll;
|
||||||
|
|
||||||
function motsclesUpdateBulk() {
|
function motsclesUpdateBulk() {
|
||||||
var n = document.querySelectorAll(
|
var n = document.querySelectorAll(
|
||||||
@@ -41,8 +44,9 @@ function motsclesUpdateBulk() {
|
|||||||
wrap.style.setProperty("--sticky-top", "0px");
|
wrap.style.setProperty("--sticky-top", "0px");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
window.motsclesUpdateBulk = motsclesUpdateBulk;
|
||||||
|
|
||||||
function _motsclesConfirmBulkMerge() {
|
function motsclesConfirmBulkMerge() {
|
||||||
var checked = document.querySelectorAll(
|
var checked = document.querySelectorAll(
|
||||||
'input[name="selected_tags[]"]:checked',
|
'input[name="selected_tags[]"]:checked',
|
||||||
);
|
);
|
||||||
@@ -62,8 +66,9 @@ function _motsclesConfirmBulkMerge() {
|
|||||||
});
|
});
|
||||||
document.getElementById("motscles-bulk-merge-dialog").showModal();
|
document.getElementById("motscles-bulk-merge-dialog").showModal();
|
||||||
}
|
}
|
||||||
|
window.motsclesConfirmBulkMerge = motsclesConfirmBulkMerge;
|
||||||
|
|
||||||
function _motsclesExecBulkMerge() {
|
function motsclesExecBulkMerge() {
|
||||||
var targetId = document.getElementById(
|
var targetId = document.getElementById(
|
||||||
"motscles-bulk-merge-target-select",
|
"motscles-bulk-merge-target-select",
|
||||||
).value;
|
).value;
|
||||||
@@ -83,15 +88,17 @@ function _motsclesExecBulkMerge() {
|
|||||||
document.getElementById("motscles-bulk-merge-dialog").close();
|
document.getElementById("motscles-bulk-merge-dialog").close();
|
||||||
document.getElementById("motscles-bulk-form").submit();
|
document.getElementById("motscles-bulk-form").submit();
|
||||||
}
|
}
|
||||||
|
window.motsclesExecBulkMerge = motsclesExecBulkMerge;
|
||||||
|
|
||||||
function _motsclesCancelSelection() {
|
function motsclesCancelSelection() {
|
||||||
document.querySelectorAll('input[name="selected_tags[]"]').forEach((cb) => {
|
document.querySelectorAll('input[name="selected_tags[]"]').forEach((cb) => {
|
||||||
cb.checked = false;
|
cb.checked = false;
|
||||||
});
|
});
|
||||||
motsclesUpdateBulk();
|
motsclesUpdateBulk();
|
||||||
}
|
}
|
||||||
|
window.motsclesCancelSelection = motsclesCancelSelection;
|
||||||
|
|
||||||
function _motsclesConfirmBulkDelete() {
|
function motsclesConfirmBulkDelete() {
|
||||||
var checked = document.querySelectorAll(
|
var checked = document.querySelectorAll(
|
||||||
'input[name="selected_tags[]"]:checked',
|
'input[name="selected_tags[]"]:checked',
|
||||||
);
|
);
|
||||||
@@ -100,8 +107,9 @@ function _motsclesConfirmBulkDelete() {
|
|||||||
checked.length;
|
checked.length;
|
||||||
document.getElementById("motscles-bulk-delete-dialog").showModal();
|
document.getElementById("motscles-bulk-delete-dialog").showModal();
|
||||||
}
|
}
|
||||||
|
window.motsclesConfirmBulkDelete = motsclesConfirmBulkDelete;
|
||||||
|
|
||||||
function _motsclesExecBulkDelete() {
|
function motsclesExecBulkDelete() {
|
||||||
var container = document.getElementById("motscles-bulk-checkboxes");
|
var container = document.getElementById("motscles-bulk-checkboxes");
|
||||||
container.innerHTML = "";
|
container.innerHTML = "";
|
||||||
document
|
document
|
||||||
@@ -119,6 +127,7 @@ function _motsclesExecBulkDelete() {
|
|||||||
document.getElementById("motscles-bulk-delete-dialog").close();
|
document.getElementById("motscles-bulk-delete-dialog").close();
|
||||||
document.getElementById("motscles-bulk-form").submit();
|
document.getElementById("motscles-bulk-form").submit();
|
||||||
}
|
}
|
||||||
|
window.motsclesExecBulkDelete = motsclesExecBulkDelete;
|
||||||
|
|
||||||
document.addEventListener("htmx:afterSwap", (evt) => {
|
document.addEventListener("htmx:afterSwap", (evt) => {
|
||||||
if (evt.target.id === "motscles-table-wrap") {
|
if (evt.target.id === "motscles-table-wrap") {
|
||||||
|
|||||||
@@ -2,20 +2,18 @@
|
|||||||
* admin-tags.js — Tags/mots-clés admin page: bulk selection, merge, delete, and
|
* admin-tags.js — Tags/mots-clés admin page: bulk selection, merge, delete, and
|
||||||
* HTMX-reloaded attachment.
|
* HTMX-reloaded attachment.
|
||||||
*
|
*
|
||||||
* Exported globals: tagsToggleAll, tagsUpdateBulk, tagsConfirmBulkMerge,
|
|
||||||
* tagsExecBulkMerge, tagsConfirmDelete, _submitPendingTagForm.
|
|
||||||
*
|
|
||||||
* Inline-rename functions (tagsStartRename, tagsCancelRename) remain in the
|
* Inline-rename functions (tagsStartRename, tagsCancelRename) remain in the
|
||||||
* template because they embed PHP-generated icon SVGs.
|
* template because they embed PHP-generated icon SVGs.
|
||||||
*/
|
*/
|
||||||
var _pendingTagForm = null;
|
var _pendingTagForm = null;
|
||||||
|
|
||||||
function _tagsToggleAll(src) {
|
function tagsToggleAll(src) {
|
||||||
document.querySelectorAll('input[name="selected_tags[]"]').forEach((cb) => {
|
document.querySelectorAll('input[name="selected_tags[]"]').forEach((cb) => {
|
||||||
cb.checked = src.checked;
|
cb.checked = src.checked;
|
||||||
});
|
});
|
||||||
tagsUpdateBulk();
|
tagsUpdateBulk();
|
||||||
}
|
}
|
||||||
|
window.tagsToggleAll = tagsToggleAll;
|
||||||
|
|
||||||
function tagsUpdateBulk() {
|
function tagsUpdateBulk() {
|
||||||
var n = document.querySelectorAll(
|
var n = document.querySelectorAll(
|
||||||
@@ -25,8 +23,9 @@ function tagsUpdateBulk() {
|
|||||||
document.getElementById("tags-bulk-actions").style.display =
|
document.getElementById("tags-bulk-actions").style.display =
|
||||||
n > 1 ? "flex" : "none";
|
n > 1 ? "flex" : "none";
|
||||||
}
|
}
|
||||||
|
window.tagsUpdateBulk = tagsUpdateBulk;
|
||||||
|
|
||||||
function _tagsConfirmBulkMerge() {
|
function tagsConfirmBulkMerge() {
|
||||||
var checked = document.querySelectorAll(
|
var checked = document.querySelectorAll(
|
||||||
'input[name="selected_tags[]"]:checked',
|
'input[name="selected_tags[]"]:checked',
|
||||||
);
|
);
|
||||||
@@ -45,8 +44,9 @@ function _tagsConfirmBulkMerge() {
|
|||||||
});
|
});
|
||||||
document.getElementById("bulk-merge-dialog").showModal();
|
document.getElementById("bulk-merge-dialog").showModal();
|
||||||
}
|
}
|
||||||
|
window.tagsConfirmBulkMerge = tagsConfirmBulkMerge;
|
||||||
|
|
||||||
function _tagsExecBulkMerge() {
|
function tagsExecBulkMerge() {
|
||||||
var targetId = document.getElementById("bulk-merge-target-select").value;
|
var targetId = document.getElementById("bulk-merge-target-select").value;
|
||||||
if (!targetId) return;
|
if (!targetId) return;
|
||||||
document.getElementById("tags-bulk-target").value = targetId;
|
document.getElementById("tags-bulk-target").value = targetId;
|
||||||
@@ -64,16 +64,19 @@ function _tagsExecBulkMerge() {
|
|||||||
document.getElementById("bulk-merge-dialog").close();
|
document.getElementById("bulk-merge-dialog").close();
|
||||||
document.getElementById("tags-bulk-form").submit();
|
document.getElementById("tags-bulk-form").submit();
|
||||||
}
|
}
|
||||||
|
window.tagsExecBulkMerge = tagsExecBulkMerge;
|
||||||
|
|
||||||
function _tagsConfirmDelete(btn, name) {
|
function tagsConfirmDelete(btn, name) {
|
||||||
_pendingTagForm = btn.closest("form");
|
_pendingTagForm = btn.closest("form");
|
||||||
document.getElementById("delete-tag-name").textContent = name;
|
document.getElementById("delete-tag-name").textContent = name;
|
||||||
document.getElementById("delete-tag-dialog").showModal();
|
document.getElementById("delete-tag-dialog").showModal();
|
||||||
}
|
}
|
||||||
|
window.tagsConfirmDelete = tagsConfirmDelete;
|
||||||
|
|
||||||
function _submitPendingTagForm() {
|
function submitPendingTagForm() {
|
||||||
if (_pendingTagForm) _pendingTagForm.submit();
|
if (_pendingTagForm) _pendingTagForm.submit();
|
||||||
}
|
}
|
||||||
|
window.submitPendingTagForm = submitPendingTagForm;
|
||||||
|
|
||||||
document.addEventListener("htmx:afterSwap", (evt) => {
|
document.addEventListener("htmx:afterSwap", (evt) => {
|
||||||
if (evt.target.id === "tags-table-wrap") {
|
if (evt.target.id === "tags-table-wrap") {
|
||||||
|
|||||||
@@ -67,7 +67,7 @@ function tagsCancelRename(id) {
|
|||||||
<p>Supprimer « <strong id="delete-tag-name"></strong> » ? Cette action est irréversible.</p>
|
<p>Supprimer « <strong id="delete-tag-name"></strong> » ? Cette action est irréversible.</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="admin-dialog__footer">
|
<div class="admin-dialog__footer">
|
||||||
<button type="button" class="btn btn--danger" onclick="this.closest('dialog').close(); _submitPendingTagForm()">Supprimer</button>
|
<button type="button" class="btn btn--danger" onclick="this.closest('dialog').close(); submitPendingTagForm()">Supprimer</button>
|
||||||
<button type="button" class="btn btn--secondary" onclick="this.closest('dialog').close()">Annuler</button>
|
<button type="button" class="btn btn--secondary" onclick="this.closest('dialog').close()">Annuler</button>
|
||||||
</div>
|
</div>
|
||||||
</dialog>
|
</dialog>
|
||||||
|
|||||||
Reference in New Issue
Block a user