Actualiser assets/js/app.js
CI / PHP Syntax Check (push) Has been cancelled
CI / JavaScript Lint (push) Has been cancelled
CI / Docker Build Test (push) Has been cancelled
CI / Validate Translation Files (push) Has been cancelled
CI / Auto-merge develop → main (push) Has been cancelled
CI / Create GitHub Release (push) Has been cancelled

This commit is contained in:
2026-06-17 16:43:50 +00:00
parent 8e504cad28
commit 3d744f256a
+37 -22
View File
@@ -20046,34 +20046,49 @@ function switchToProductEditFromStock() {
}
}
// --- FORCE INJECTION SHORTCUT BUTTON ---
// --- INJECTEUR UNIVERSEL DU BOUTON MODIFICATION ---
setInterval(() => {
// 1. Vérifier si la page d'ajout est active et visible à l'écran
const pageAdd = document.getElementById('page-add');
if (pageAdd && (pageAdd.classList.contains('active') || pageAdd.style.display === 'block')) {
// 1. Chercher le bouton vert "Enregistrer" ou "Aggiungi" actuellement visible à l'écran
// On cible les boutons larges avec la classe btn-success (vert)
const successButtons = document.querySelectorAll('.btn-success.full-width, button[type="submit"].btn-success');
// 2. Vérifier si notre bouton n'est pas déjà présent
if (!document.getElementById('btn-edit-product-shortcut')) {
successButtons.forEach(submitBtn => {
// Vérifier si le bouton est visible à l'écran
if (submitBtn.offsetWidth > 0 && submitBtn.offsetHeight > 0) {
// 3. Trouver le bouton submit vert (on cherche par sa classe et son type)
const submitBtn = pageAdd.querySelector('button[type="submit"]') || pageAdd.querySelector('.btn-success');
// Trouver le conteneur parent du bouton
const parentForm = submitBtn.parentNode;
if (submitBtn) {
// 2. Si le bouton de raccourci n'est pas encore injecté dans ce formulaire
if (parentForm && !parentForm.querySelector('.btn-edit-catalog-shortcut')) {
// Création du bouton bleu
const editBtn = document.createElement('button');
editBtn.type = 'button';
editBtn.id = 'btn-edit-product-shortcut';
editBtn.innerText = '✏️ Modifier la fiche produit';
editBtn.style.cssText = 'margin-bottom: 15px; background-color: #1976d2; color: white; width: 100%; border: none; border-radius: 8px; padding: 12px; font-size: 16px; font-weight: bold; cursor: pointer; display: block;';
editBtn.className = 'btn btn-large btn-edit-catalog-shortcut';
editBtn.innerText = '✏️ Modifier la fiche produit (Catégorie)';
// Associer l'action de clic
editBtn.onclick = function() {
// Style identique à tes captures d'écran
editBtn.style.cssText = 'margin-bottom: 12px; background-color: #1976d2; color: white; width: 100%; border: none; border-radius: 8px; padding: 14px; font-size: 16px; font-weight: bold; cursor: pointer; display: block; text-align: center;';
// Logique de clic pour basculer vers le catalogue
editBtn.onclick = function(e) {
e.preventDefault();
let productId = null;
// Récupérer l'ID du produit depuis le contexte d'EverShelf
if (typeof currentProduct !== 'undefined' && currentProduct) productId = currentProduct.id || currentProduct._id;
if (typeof _currentProduct !== 'undefined' && _currentProduct) productId = _currentProduct.id || _currentProduct._id;
if (typeof currentItem !== 'undefined' && currentItem) productId = currentItem.product_id || currentItem.productId;
if (productId) {
pageAdd.classList.remove('active');
pageAdd.style.display = 'none';
// Masquer toutes les modales/pages de stock ouvertes
document.querySelectorAll('.page, .modal').forEach(el => {
el.classList.remove('active');
if (el.style.display === 'block') el.style.display = 'none';
});
// Lancer l'éditeur de produit officiel
if (typeof editProduct === 'function') {
editProduct(productId);
} else {
@@ -20081,14 +20096,14 @@ setInterval(() => {
if (prodPage) { prodPage.classList.add('active'); prodPage.style.display = 'block'; }
}
} else {
alert("Erreur: Impossible de récupérer le produit.");
alert("Sélectionnez d'abord un produit valide.");
}
};
// Injection physique dans le DOM
submitBtn.parentNode.insertBefore(editBtn, submitBtn);
console.log("=> Bouton de modification injecté avec succès par le gardien temporel !");
// Injection physique juste au-dessus du bouton vert
parentForm.insertBefore(editBtn, submitBtn);
console.log("=> Raccourci catalogue injecté dynamiquement au-dessus du bouton :", submitBtn.innerText);
}
}
}
}, 500); // Vérifie toutes les demi-secondes
});
}, 400); // Scan toutes les 400ms