new: add visibility badge for articles in offer form select
This commit is contained in:
@@ -67,6 +67,11 @@ class Articles
|
||||
return $data;
|
||||
}
|
||||
|
||||
public static function getVisibilityMap()
|
||||
{
|
||||
return Article::pluck('visible', 'id')->toArray();
|
||||
}
|
||||
|
||||
public static function getAll()
|
||||
{
|
||||
return Article::orderBy('name', 'asc')->get();
|
||||
|
||||
@@ -16,6 +16,7 @@ class Offers
|
||||
{
|
||||
return [
|
||||
'articles' => Articles::getOptionsWithNature(),
|
||||
'article_visibilities' => Articles::getVisibilityMap(),
|
||||
'tariffs' => Tariffs::getOptions(),
|
||||
'tariff_statuses' => Tariffs::getStatusMap(),
|
||||
'tariff_status_labels' => Tariffs::getStatuses(),
|
||||
|
||||
@@ -154,6 +154,26 @@
|
||||
initSelect2();
|
||||
$('#status_id').bootstrapToggle();
|
||||
|
||||
// Article visibility badges in select2
|
||||
var articleVisibilities = {!! json_encode($article_visibilities ?? (object)[]) !!};
|
||||
|
||||
function formatArticle(item) {
|
||||
if (!item.id) return item.text;
|
||||
var visible = articleVisibilities[item.id];
|
||||
var badge = (visible == 1)
|
||||
? '<span class="badge badge-success" style="font-size:0.75em;margin-left:4px;">Visible</span>'
|
||||
: '<span class="badge badge-warning" style="font-size:0.75em;margin-left:4px;">Invisible</span>';
|
||||
return $('<span style="display:flex;justify-content:space-between;align-items:center;width:100%;">' + item.text + badge + '</span>');
|
||||
}
|
||||
|
||||
$('#article_id').select2('destroy').select2({
|
||||
placeholder: "{{ __('select_a_value') }}",
|
||||
allowClear: false,
|
||||
width: { value: '100%' },
|
||||
templateResult: formatArticle,
|
||||
templateSelection: formatArticle
|
||||
});
|
||||
|
||||
// Tariff status badges in select2
|
||||
var tariffStatuses = {!! json_encode($tariff_statuses ?? (object)[]) !!};
|
||||
var tariffStatusLabels = {!! json_encode($tariff_status_labels ?? []) !!};
|
||||
|
||||
Reference in New Issue
Block a user