Linux SRV-16 6.18.44-paas #1 SMP PREEMPT_DYNAMIC Thu Aug 13 10:08:12 UTC 2026 x86_64
/
proc
/
212
/
root
/
proc
/
self
/
root
/
proc
/
212
/
root
/
proc
/
70528
/
cwd
/
templates
/
back
/
product
/
//proc/212/root/proc/self/root/proc/212/root/proc/70528/cwd/templates/back/product/list.html.twig
{% extends "back/layout.html.twig" %} {% block content %} <h1>Produits <a href="{{ path("back_product_create") }}" class="btn btn-primary float-end">Ajouter</a> </h1> <div class="row"> {% for product in products %} <div class="col-lg-3 col-md-6"> <div class="card"> <div class="card-header"> <img src="{{ vich_uploader_asset(product, "imageFile") }}" alt="{{ product.name }}" style="height: 200px; width: 100%; object-fit: cover"> <div class="row border-top mt-3 pt-2"> {% for image in product.productImages %} <div class="col-4"> <img src="{{ vich_uploader_asset(image, "imageFile") }}" alt="Image du produit" style="height: 50px; width: 100%; object-fit: contain; border-radius: 0px"> </div> {% endfor %} </div> </div> <div class="card-body"> <h2 class="card-title">{{ product.name }}</h2> <p class="mb-0">En livraison: {{ product.availableForDelivery ? "Oui" : "Non" }}</p> <p class="mb-0">{{ product.description|slice(0, 150) ~ "..." }}</p> </div> <div class="card-footer"> <a href="{{ path("back_product_edit", { id : product.id }) }}" class="btn btn-warning float-end"> <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-pen" viewbox="0 0 16 16"> <path d="m13.498.795.149-.149a1.207 1.207 0 1 1 1.707 1.708l-.149.148a1.5 1.5 0 0 1-.059 2.059L4.854 14.854a.5.5 0 0 1-.233.131l-4 1a.5.5 0 0 1-.606-.606l1-4a.5.5 0 0 1 .131-.232l9.642-9.642a.5.5 0 0 0-.642.056L6.854 4.854a.5.5 0 1 1-.708-.708L9.44.854A1.5 1.5 0 0 1 11.5.796a1.5 1.5 0 0 1 1.998-.001zm-.644.766a.5.5 0 0 0-.707 0L1.95 11.756l-.764 3.057 3.057-.764L14.44 3.854a.5.5 0 0 0 0-.708l-1.585-1.585z"/> </svg> Modifier </a> <!-- Button trigger modal --> <button type="button" class="btn btn-danger float-end me-2" data-bs-toggle="modal" data-bs-target="#exampleModal{{ product.id }}"> <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-trash3" viewbox="0 0 16 16"> <path d="M6.5 1h3a.5.5 0 0 1 .5.5v1H6v-1a.5.5 0 0 1 .5-.5ZM11 2.5v-1A1.5 1.5 0 0 0 9.5 0h-3A1.5 1.5 0 0 0 5 1.5v1H2.506a.58.58 0 0 0-.01 0H1.5a.5.5 0 0 0 0 1h.538l.853 10.66A2 2 0 0 0 4.885 16h6.23a2 2 0 0 0 1.994-1.84l.853-10.66h.538a.5.5 0 0 0 0-1h-.995a.59.59 0 0 0-.01 0H11Zm1.958 1-.846 10.58a1 1 0 0 1-.997.92h-6.23a1 1 0 0 1-.997-.92L3.042 3.5h9.916Zm-7.487 1a.5.5 0 0 1 .528.47l.5 8.5a.5.5 0 0 1-.998.06L5 5.03a.5.5 0 0 1 .47-.53Zm5.058 0a.5.5 0 0 1 .47.53l-.5 8.5a.5.5 0 1 1-.998-.06l.5-8.5a.5.5 0 0 1 .528-.47ZM8 4.5a.5.5 0 0 1 .5.5v8.5a.5.5 0 0 1-1 0V5a.5.5 0 0 1 .5-.5Z"/> </svg> Supprimer </button> <div class="modal fade" id="exampleModal{{ product.id }}" tabindex="-1" aria-labelledby="exampleModalLabel" aria-hidden="true"> <div class="modal-dialog"> <div class="modal-content"> <div class="modal-header"> <h5 class="modal-title" id="exampleModalLabel">Confirmer la suppression</h5> <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button> </div> <div class="modal-body"> Pour permettre la tracabilité des commandes, il est impossible de supprimer définitivement un produit. <br> Il sera donc archivé (cela aura pour action de le rendre invisible, hormis dans les anciennes commandes). </div> <div class="modal-footer"> <button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Annuler</button> <a href="{{ path("back_product_delete", { id : product.id }) }}" type="button" class="btn btn-danger">Confirmer l'archivage</a> </div> </div> </div> </div> </div> </div> </div> {% endfor %} </div> {{ knp_pagination_render(products) }} {% endblock %}