From fa4aea73583a7971c1e1e724c810e6813d8616ea Mon Sep 17 00:00:00 2001 From: Valentin Lab Date: Fri, 20 Feb 2026 11:55:33 +0100 Subject: [PATCH] new: add colored status badges in order lists MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add ``getStatusBadge()`` to ``Orders`` returning Bootstrap badge HTML per status: warning (En attente), info (Préparation), primary (Expédié), success (Livré), danger (Annulé). Applied to all four order DataTables (admin, admin customer, shop, shop customer). --- .../Admin/Shop/CustomerOrdersDataTable.php | 4 ++-- app/Datatables/Admin/Shop/OrdersDataTable.php | 4 ++-- .../Shop/CustomerOrdersDataTable.php | 6 +++--- app/Datatables/Shop/OrdersDataTable.php | 4 ++-- app/Repositories/Shop/Orders.php | 20 +++++++++++++++++++ 5 files changed, 29 insertions(+), 9 deletions(-) diff --git a/app/Datatables/Admin/Shop/CustomerOrdersDataTable.php b/app/Datatables/Admin/Shop/CustomerOrdersDataTable.php index 68bb0d6e..3b716f15 100644 --- a/app/Datatables/Admin/Shop/CustomerOrdersDataTable.php +++ b/app/Datatables/Admin/Shop/CustomerOrdersDataTable.php @@ -46,12 +46,12 @@ class CustomerOrdersDataTable extends DataTable { $datatables ->editColumn('status', function (Order $order) { - return Orders::getStatus($order->status); + return Orders::getStatusBadge($order->status); }) ->editColumn('created_at', function (Order $order) { return $order->created_at->isoFormat('DD/MM/YY HH:mm'); }) - ->rawColumns(['action']); + ->rawColumns(['status', 'action']); return parent::modifier($datatables); } diff --git a/app/Datatables/Admin/Shop/OrdersDataTable.php b/app/Datatables/Admin/Shop/OrdersDataTable.php index ba12d01e..3fc6d24b 100644 --- a/app/Datatables/Admin/Shop/OrdersDataTable.php +++ b/app/Datatables/Admin/Shop/OrdersDataTable.php @@ -29,7 +29,7 @@ class OrdersDataTable extends DataTable { $datatables ->editColumn('status', function (Order $order) { - return Orders::getStatus($order->status); + return Orders::getStatusBadge($order->status); }) ->editColumn('created_at', function (Order $order) { return $order->created_at->format('d/m/Y H:i:s'); @@ -42,7 +42,7 @@ class OrdersDataTable extends DataTable ->editColumn('payment_type', function (Order $order) { return InvoicePayments::getPaymentType($order->payment_type); }) - ->rawColumns(['action']); + ->rawColumns(['status', 'action']); return parent::modifier($datatables); } diff --git a/app/Datatables/Shop/CustomerOrdersDataTable.php b/app/Datatables/Shop/CustomerOrdersDataTable.php index 82ac432b..bf7dba61 100644 --- a/app/Datatables/Shop/CustomerOrdersDataTable.php +++ b/app/Datatables/Shop/CustomerOrdersDataTable.php @@ -48,15 +48,15 @@ class CustomerOrdersDataTable extends DataTable $datatables ->editColumn('status', function (Order $order) { if ($order->status == 0 && in_array($order->payment_type, [2, 3])) { - return 'En attente de règlement'; + return 'En attente de règlement'; } - return Orders::getStatus($order->status); + return Orders::getStatusBadge($order->status); }) ->editColumn('created_at', function (Order $order) { return $order->created_at->isoFormat('DD/MM/YY HH:mm'); }) - ->rawColumns(['action']); + ->rawColumns(['status', 'action']); return parent::modifier($datatables); } diff --git a/app/Datatables/Shop/OrdersDataTable.php b/app/Datatables/Shop/OrdersDataTable.php index a6ed007d..8756c28c 100644 --- a/app/Datatables/Shop/OrdersDataTable.php +++ b/app/Datatables/Shop/OrdersDataTable.php @@ -29,7 +29,7 @@ class OrdersDataTable extends DataTable { $datatables ->editColumn('status', function (Order $order) { - return Orders::getStatus($order->status); + return Orders::getStatusBadge($order->status); }) ->editColumn('created_at', function (Order $order) { return $order->created_at->toDateTimeString(); @@ -40,7 +40,7 @@ class OrdersDataTable extends DataTable ->editColumn('payment_type', function (Order $order) { return InvoicePayments::getPaymentType($order->payment_type); }) - ->rawColumns(['action']); + ->rawColumns(['status', 'action']); return parent::modifier($datatables); } diff --git a/app/Repositories/Shop/Orders.php b/app/Repositories/Shop/Orders.php index 1ab8fe05..f36bbc42 100644 --- a/app/Repositories/Shop/Orders.php +++ b/app/Repositories/Shop/Orders.php @@ -126,6 +126,26 @@ class Orders return self::statuses()[$id] ?? false; } + public static function getStatusBadge($id) + { + $label = self::getStatus($id); + if ($label === false) { + return ''; + } + + $classes = [ + 0 => 'badge-warning', + 1 => 'badge-info', + 2 => 'badge-primary', + 3 => 'badge-success', + 4 => 'badge-danger', + ]; + + $class = $classes[$id] ?? 'badge-secondary'; + + return ''.$label.''; + } + public static function getStatusByName($name) { $data = array_flip(self::statuses());