feat(FormulesController): Gère l'ajout et la mise à jour des produits inclus.

Ajoute la logique pour ajouter et mettre à jour les produits inclus dans une formule, avec persistance en base de données. Affiche également les produits inclus existants.
 feat(admin.js): Enregistre le composant SearchProductFormule.

Enregistre le composant SearchProductFormule pour permettre son utilisation dans les templates.
 feat(config-pack.twig): Affiche et permet la gestion des produits inclus.

Affiche une liste des produits inclus dans une formule et permet leur ajout, modification et suppression via un formulaire.
 feat(SearchProductFormule.js): Crée un composant de recherche de produits.

Crée un composant web personnalisé pour rechercher et sélectionner des produits à ajouter à une formule.
```
This commit is contained in:
Serreau Jovann
2026-01-28 10:54:05 +01:00
parent 08334b0298
commit 61d3c8d3dd
4 changed files with 254 additions and 3 deletions

View File

@@ -8,6 +8,7 @@ import { CrmEditor } from "./libs/CrmEditor.js";
import { initTomSelect } from "./libs/initTomSelect.js";
import { SearchProduct,SearchOptions } from "./libs/SearchProduct.js";
import { SearchProductDevis,SearchOptionsDevis } from "./libs/SearchProductDevis.js";
import { SearchProductFormule } from "./libs/SearchProductFormule.js";
// --- INITIALISATION SENTRY ---
Sentry.init({
dsn: "https://803814be6540031b1c37bf92ba9c0f79@sentry.esy-web.dev/24",
@@ -91,6 +92,9 @@ function initAdminLayout() {
if (!customElements.get('search-product')) {
customElements.define('search-product', SearchProduct, { extends: 'button' });
}
if (!customElements.get('search-productformule')) {
customElements.define('search-productformule', SearchProductFormule, { extends: 'button' });
}
if (!customElements.get('search-options')) {
customElements.define('search-options', SearchOptions, { extends: 'button' });
}