diff --git a/app/Repositories/Shop/Articles.php b/app/Repositories/Shop/Articles.php index f16e3bbe..b5d79fd1 100644 --- a/app/Repositories/Shop/Articles.php +++ b/app/Repositories/Shop/Articles.php @@ -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(); diff --git a/app/Repositories/Shop/Offers.php b/app/Repositories/Shop/Offers.php index f5086997..dff17746 100644 --- a/app/Repositories/Shop/Offers.php +++ b/app/Repositories/Shop/Offers.php @@ -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(), diff --git a/resources/views/Admin/Shop/Offers/form.blade.php b/resources/views/Admin/Shop/Offers/form.blade.php index 2bc47f2a..1d0ff14c 100644 --- a/resources/views/Admin/Shop/Offers/form.blade.php +++ b/resources/views/Admin/Shop/Offers/form.blade.php @@ -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) + ? 'Visible' + : 'Invisible'; + return $('' + item.text + badge + ''); + } + + $('#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 ?? []) !!};