new: add colored status badges in order lists

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).
This commit is contained in:
Valentin Lab
2026-02-20 11:55:33 +01:00
parent 5325fa1f06
commit fa4aea7358
5 changed files with 29 additions and 9 deletions

View File

@@ -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);
}

View File

@@ -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);
}

View File

@@ -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 '<span class="badge badge-warning">En attente de règlement</span>';
}
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);
}

View File

@@ -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);
}

View File

@@ -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 '<span class="badge '.$class.'">'.$label.'</span>';
}
public static function getStatusByName($name)
{
$data = array_flip(self::statuses());