new: add colored status badges for tariffs in list and offer form select
This commit is contained in:
@@ -22,7 +22,7 @@ class TariffsDataTable extends DataTable
|
|||||||
{
|
{
|
||||||
$datatables
|
$datatables
|
||||||
->editColumn('status', function (Tariff $tariff) {
|
->editColumn('status', function (Tariff $tariff) {
|
||||||
return Tariffs::getStatus($tariff['status_id']);
|
return Tariffs::getStatusBadge($tariff['status_id']);
|
||||||
})
|
})
|
||||||
->editColumn('sale_channels2', function (Tariff $tariff) {
|
->editColumn('sale_channels2', function (Tariff $tariff) {
|
||||||
$html = '';
|
$html = '';
|
||||||
@@ -32,7 +32,7 @@ class TariffsDataTable extends DataTable
|
|||||||
|
|
||||||
return $html;
|
return $html;
|
||||||
})
|
})
|
||||||
->rawColumns(['sale_channels2', 'action']);
|
->rawColumns(['status', 'sale_channels2', 'action']);
|
||||||
|
|
||||||
return parent::modifier($datatables);
|
return parent::modifier($datatables);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -17,6 +17,8 @@ class Offers
|
|||||||
return [
|
return [
|
||||||
'articles' => Articles::getOptionsWithNature(),
|
'articles' => Articles::getOptionsWithNature(),
|
||||||
'tariffs' => Tariffs::getOptions(),
|
'tariffs' => Tariffs::getOptions(),
|
||||||
|
'tariff_statuses' => Tariffs::getStatusMap(),
|
||||||
|
'tariff_status_labels' => Tariffs::getStatuses(),
|
||||||
'variations' => Variations::getOptions(),
|
'variations' => Variations::getOptions(),
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -50,11 +50,25 @@ class Tariffs
|
|||||||
return self::getStatuses()[$status_id];
|
return self::getStatuses()[$status_id];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static function getStatusBadge($status_id)
|
||||||
|
{
|
||||||
|
$colors = ['success', 'warning', 'secondary', 'danger'];
|
||||||
|
$label = self::getStatus($status_id);
|
||||||
|
$color = $colors[$status_id] ?? 'secondary';
|
||||||
|
|
||||||
|
return '<span class="badge badge-'.$color.'">'.$label.'</span>';
|
||||||
|
}
|
||||||
|
|
||||||
public static function getStatuses()
|
public static function getStatuses()
|
||||||
{
|
{
|
||||||
return ['Actif', 'Suspendu', 'Invisible', 'Obsolete'];
|
return ['Actif', 'Suspendu', 'Invisible', 'Obsolete'];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static function getStatusMap()
|
||||||
|
{
|
||||||
|
return Tariff::pluck('status_id', 'id')->toArray();
|
||||||
|
}
|
||||||
|
|
||||||
public static function getModel()
|
public static function getModel()
|
||||||
{
|
{
|
||||||
return Tariff::query();
|
return Tariff::query();
|
||||||
|
|||||||
@@ -154,6 +154,27 @@
|
|||||||
initSelect2();
|
initSelect2();
|
||||||
$('#status_id').bootstrapToggle();
|
$('#status_id').bootstrapToggle();
|
||||||
|
|
||||||
|
// Tariff status badges in select2
|
||||||
|
var tariffStatuses = {!! json_encode($tariff_statuses ?? (object)[]) !!};
|
||||||
|
var tariffStatusLabels = {!! json_encode($tariff_status_labels ?? []) !!};
|
||||||
|
var tariffStatusColors = {0: '#28a745', 1: '#ffc107', 2: '#6c757d', 3: '#dc3545'};
|
||||||
|
|
||||||
|
function formatTariff(item) {
|
||||||
|
if (!item.id) return item.text;
|
||||||
|
var statusId = tariffStatuses[item.id];
|
||||||
|
var color = tariffStatusColors[statusId] || '#6c757d';
|
||||||
|
var label = tariffStatusLabels[statusId] || '';
|
||||||
|
return $('<span style="display:flex;justify-content:space-between;align-items:center;width:100%;">' + item.text + '<span class="badge" style="background:' + color + ';color:#fff;font-size:0.75em;margin-left:8px;">' + label + '</span></span>');
|
||||||
|
}
|
||||||
|
|
||||||
|
$('#tariff_id').select2('destroy').select2({
|
||||||
|
placeholder: "{{ __('select_a_value') }}",
|
||||||
|
allowClear: false,
|
||||||
|
width: { value: '100%' },
|
||||||
|
templateResult: formatTariff,
|
||||||
|
templateSelection: formatTariff
|
||||||
|
});
|
||||||
|
|
||||||
function updateEditLink(selectId, linkId, routeTemplate) {
|
function updateEditLink(selectId, linkId, routeTemplate) {
|
||||||
var val = $('#' + selectId).val();
|
var val = $('#' + selectId).val();
|
||||||
var $link = $('#' + linkId);
|
var $link = $('#' + linkId);
|
||||||
|
|||||||
Reference in New Issue
Block a user