Linux SRV-16 6.18.44-paas #1 SMP PREEMPT_DYNAMIC Thu Aug 13 10:08:12 UTC 2026 x86_64
/
proc
/
self
/
root
/
proc
/
212
/
root
/
srv
/
data
/
web
/
vhosts
/
www.impressionrapide.fr
/
htdocs
/
//proc/self/root/proc/212/root/srv/data/web/vhosts/www.impressionrapide.fr/htdocs/index.html.twig
{% extends "front/layout.html.twig" %} {% block content %} <div class="container my-5"> <div class="breadcrums"> <a href="{{ path("app_homepage") }}" class="breadcrum">Accueil</a> <img src="{{ asset("build/images/icon/breadcrum.png") }}" alt="Picto"> <a href="{{ path("app_product_read", { id : product.id }) }}" class="breadcrum">{{ product.name }}</a> <img src="{{ asset("build/images/icon/breadcrum.png") }}" alt="Picto"> <div class="breadcrum">Choix</div> </div> <h1>Faites votre choix</h1> <div class="row"> <div class="col-md-8"> <hr> <div class="configuration-card mt-4"> <h2>Format</h2> <div class="choices"> {% set active = "active" %} {% for size in product.sizes %} {% if size.active %} {% if size.name == "Autre formats sur commande" %} <div class="choice is-handled {{ active }}" data-value="{{ size.id }}" data-option="size" style="display: flex; flex-direction: column; justify-content: center"> <div>{{ size.name }}</div> </div> {% else %} <div class="choice is-handled {{ active }}" data-value="{{ size.id }}" data-option="size">{{ size.name }}</div> {% endif %} {% set active = "" %} {% endif %} {% endfor %} </div> </div> <div class="configuration-card mt-4"> <h2>Quantité</h2> <div class="choices"> {% set active = "active" %} {% for quantity in product.quantities %} {% if quantity.active %} {% if quantity.quantity == "Autre formats sur commande" %} <div class="choice is-handled {{ active }}" data-value="{{ quantity.id }}" data-option="quantity">{{ quantity.quantity }}</div> {% else %} <div class="choice is-handled {{ active }}" data-value="{{ quantity.id }}" data-option="quantity">{{ quantity.quantity }}</div> {% endif %} {% set active = "" %} {% endif %} {% endfor %} </div> </div> <div class="configuration-card mt-4"> <h2>Support</h2> <div class="choices"> {% set active = "active" %} {% for grammage in product.grammages %} {% if grammage.active %} <div class="choice is-handled {{ active }}" data-value="{{ grammage.id }}" data-option="grammage">{{ grammage.name }}</div> {% set active = "" %} {% endif %} {% endfor %} </div> </div> <div class="configuration-card mt-4"> <h2>Nombre de pages</h2> <div class="choices"> {% set active = "active" %} {% for page in product.pages %} {% if page.active %} <div class="choice is-handled {{ active }}" data-value="{{ page.id }}" data-option="pages">{{ page.name }}</div> {% set active = "" %} {% endif %} {% endfor %} </div> </div> <div class="configuration-card mt-4"> <h2>Couleurs</h2> <div class="choices"> {% set active = "active" %} {% for color in product.colors %} {% if color.active %} <div class="choice is-handled {{ active }}" data-value="{{ color.id }}" data-option="color">{{ color.name }}</div> {% set active = "" %} {% endif %} {% endfor %} </div> </div> <div class="configuration-card mt-4"> <h2>Finition du papier</h2> <div class="choices"> {% set active = "active" %} {% for finishing in product.finishings %} {% if finishing.active %} <div class="choice is-handled {{ active }}" data-value="{{ finishing.id }}" data-option="finishing">{{ finishing.name }}</div> {% set active = "" %} {% endif %} {% endfor %} </div> </div> <div class="configuration-card mt-4"> <h2>Pliage</h2> <div class="choices"> {% set active = "active" %} {% for fold in product.folds %} {% if fold.active %} <div class="choice is-handled {{ active }}" data-value="{{ fold.id }}" data-option="fold">{{ fold.name }}</div> {% set active = "" %} {% endif %} {% endfor %} </div> </div> {% if product.mockupAvailable and app.request.query.has('maquette') %} <div class="configuration-card mt-4 mockup_generator"> <h2>Maquette</h2> <div class="choices"> <div class="choice is-handled" data-option="mockup_generator" value="0">J'ai déjà une maquette </div> <div class="choice is-handled" data-option="mockup_generator" value="1">Générer une maquette avec l'IA </div> </div> <div class="mockup-image d-none" id="mockup-image"> <div class="choices"> <div class="choice" onclick="document.getElementById('mockup_designFile_image').click()" id="mockup_file_image_fake">Uploader votre maquette ici.</div> <div id="mockup_file_image_name" class="center-y"></div> <input type="file" id="mockup_designFile_image" name="mockup_designFile_image" data-upload-url="{{ path('app_product_mockup_upload', {'product_id': product.id}) }}" style="display: none" class="form-control"> </div> </div> <div class="mockup-prompt-data d-none" id="prompt-data"> <div class="m-3"> <label for="cart_item_mock_up_prompt" class="form-label">Décrivez votre {{ product.name }} le plus précisément possible</label> {{ form_widget(form.mock_up_prompt, {'attr': {'class': 'form-control'}}) }} </div> <div class="choices"> <div class="choice" onclick="document.getElementById('mockup_designFile_file').click()" id="mockup_file_input_fake">Télécharger un fichier afin de servir de base pour l'IA.</div> <div id="mockup_file_input_name" class="center-y"></div> <input type="file" id="mockup_designFile_file" name="mockup_designFile_file" style="display: none" class="form-control"> </div> <div class="btn btn-secondary mx-3 d-inline-block" id="generate-mockup-btn" onclick="generetateMockup({{ product.id }}, '{{ path('app_product_mockup', {'product_id': product.id}) }}')">Génerer la maquette</div> </div> </div> {% endif %} {{ form_start(form) }} <div class="configuration-card mt-4"> <h2>Importez votre fichier</h2> <div class="choices"> <div class="choice" onclick="document.getElementById('cart_item_designFile_file').click()" title="1 giga maximum. Utilisez un dossier .zip pour envoyer plusieurs fichiers" id="file_input_fake">Télécharger vos fichiers</div> {{ form_row(form.designFile) }} <div id="file_input_name" class="center-y"></div> {# <div class="choice" style="opacity: 0.5; pointer-events: none">Créez un design avec Canva</div> #} </div> <div class="p-3"> {{ form_row(form.textMessage) }} </div> </div> <div style="display: none"> {{ form_widget(form) }} </div> {{ form_end(form) }} <div id="submit-configuration"> <div class="btn btn-secondary" onclick="verifyCompletion()">Ajouter au panier</div> </div> </div> <div class="col-md-4"> <div id="recap"> <h2>RÉCAPITULATIF PANIER</h2><hr> {% if cart.items is defined %} {% for item in cart.items %} <div class="row"> <div class="col-6"> <p>{{ item.product.name }}</p> </div> <div class="col-2"> <p>{{ item.selfQuantity }}</p> </div> <div class="col-4 text-right"> <p> <span class="item-price">{{ item.price.price * item.selfQuantity }}</span> €</p> </div> </div> {% endfor %} {% else %} Panier vide {% endif %} <hr class="mt-4"> <div class="row"> <div class="col-md-8"> <p>Sous-total du produit (HT)</p> <p>TVA (20%)</p> </div> <div class="col-md-4 text-right"> <p id="currentItemPrice">-- €</p> <p id="tvaPrice">0 €</p> </div> </div> <hr class="mt-4"> <div class="row"> <div class="col-md-8"> <p> <b>Total (TTC)</b> </p> </div> <div class="col-md-4 text-right"> <p id="totalPrice">-- €</p> </div> </div> </div> </div> </div> </div> {% endblock %} {% block javascripts %} {{ parent() }} <script src="{{ asset("js/configure.js") }}"></script> {% endblock %}