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:
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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());
|
||||
|
||||
Reference in New Issue
Block a user