✨ feat(customer): Affiche les sites web du client sur la page d'édition.
This commit is contained in:
@@ -21,6 +21,7 @@ use App\Entity\{Account,
|
||||
CustomerSplitLine,
|
||||
CustomerWallet,
|
||||
CustomerWalletHistory,
|
||||
EsyWeb\Website,
|
||||
OrderNumberCurrent};
|
||||
use App\Form\Artemis\Intranet\{CustomerDnsEmailType,
|
||||
CustomerEditType,
|
||||
@@ -713,6 +714,12 @@ class CustomerController extends AbstractController
|
||||
return $this->redirectToRoute('artemis_intranet_customer_view', ['id' => $customer->getId(),'current'=>'wallet']);
|
||||
}
|
||||
|
||||
$websites =[];
|
||||
foreach ($entityManager->getRepository(Website::class)->findBy(['customer'=>$customer], ['id' => 'ASC']) as $website) {
|
||||
$websites[] = $website;
|
||||
$websites[] = $website;
|
||||
$websites[] = $website;
|
||||
}
|
||||
|
||||
return $this->render('artemis/intranet/customer/edit.twig', [
|
||||
'form' => $form->createView(),
|
||||
@@ -720,6 +727,7 @@ class CustomerController extends AbstractController
|
||||
'formNddEmail' => $formNddEmail->createView(),
|
||||
'formWallet' => $formWallet->createView(),
|
||||
'customer' => $customer,
|
||||
'websites' => $websites,
|
||||
'ndd' => $customerNdd,
|
||||
'isAccountCreated' => $customer->getAccount() instanceof Account,
|
||||
'nddEmails' => $nddEmails,
|
||||
|
||||
@@ -0,0 +1,64 @@
|
||||
{#
|
||||
Conteneur principal utilisant CSS Grid :
|
||||
- grid: active le mode grille.
|
||||
- grid-cols-1: par défaut, une colonne (pour mobile).
|
||||
- md:grid-cols-3: sur les écrans "medium" (md) et plus, passe à trois colonnes.
|
||||
- gap-4: espace de 1rem entre les éléments de la grille.
|
||||
#}
|
||||
<div class="grid grid-cols-1 md:grid-cols-3 gap-4 p-4 dark:bg-gray-900 rounded-lg max-w-7xl mx-auto">
|
||||
{% for website in websites %}
|
||||
{# Conteneur de la carte (Chaque carte est un élément de la grille) #}
|
||||
<div class="p-4 bg-white dark:bg-gray-800 shadow-lg rounded-lg border border-gray-200 dark:border-gray-700 hover:shadow-xl transition duration-300 flex flex-col h-full">
|
||||
|
||||
{# Titre et Type - Disposition Flexbox #}
|
||||
<div class="flex justify-between items-start mb-2">
|
||||
<h3 class="text-lg font-semibold text-gray-800 dark:text-gray-100">{{ website.title }}</h3>
|
||||
|
||||
{# Badge du Type - Couleurs conditionnelles #}
|
||||
<span class="px-3 py-1 text-xs font-medium rounded-full flex-shrink-0
|
||||
{% if website.type == 'e-commerce' %}
|
||||
bg-blue-100 text-blue-800 dark:bg-blue-900 dark:text-blue-200
|
||||
{% elseif website.type == 'blog' %}
|
||||
bg-green-100 text-green-800 dark:bg-green-900 dark:text-green-200
|
||||
{% else %}
|
||||
bg-gray-100 text-gray-600 dark:bg-gray-700 dark:text-gray-300
|
||||
{% endif %}">
|
||||
{# Traduire la valeur 'type' en majuscules (si c'est une clé) #}
|
||||
{{ website.type|upper }}
|
||||
</span>
|
||||
</div>
|
||||
|
||||
{# Statut du site #}
|
||||
<div class="text-sm text-gray-500 dark:text-gray-400 mb-4">
|
||||
Statut Actuel :
|
||||
{% set statusClass = 'bg-gray-600 text-gray-200' %}
|
||||
{% if website.state == 'Actif' %}
|
||||
{% set statusClass = 'bg-green-700/50 text-green-300' %}
|
||||
{% elseif website.state == 'Suspendu' %}
|
||||
{% set statusClass = 'bg-red-700/50 text-red-300' %}
|
||||
{% elseif website.state == 'En Développement' %}
|
||||
{% set statusClass = 'bg-yellow-700/50 text-yellow-300' %}
|
||||
{% elseif website.state == 'validate' %}
|
||||
{% set statusClass = 'bg-zinc-700/50 text-zinc-300' %}
|
||||
{% elseif website.state == 'created' %}
|
||||
{% set statusClass = 'bg-stone-700/50 text-stone-300' %}
|
||||
{% else %}
|
||||
{% set statusClass = 'bg-indigo-700/50 text-indigo-300' %}
|
||||
{% endif %}
|
||||
<span class="font-medium {{ statusClass }}">
|
||||
{# Traduire la valeur 'state' en français (si ce n'est pas fait côté données) #}
|
||||
{{ website.state }}
|
||||
</span>
|
||||
</div>
|
||||
|
||||
{# Bouton d'Action (Utilisation de mt-auto pour aligner en bas) #}
|
||||
<div class="mt-auto">
|
||||
<a href="{{ path('artemis_esyweb_view', {id: website.id}) }}"
|
||||
class="inline-block w-full text-center px-4 py-2 text-sm font-medium text-white bg-indigo-600 rounded-md
|
||||
hover:bg-indigo-700 focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:ring-offset-2 transition duration-150">
|
||||
Voir les Détails
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
{% endfor %}
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user