Files
grocy/views/components/productpicker.blade.php

81 lines
3.2 KiB
PHP
Raw Normal View History

@php require_frontend_packages(['bootstrap-combobox']); @endphp
@once
2018-07-14 14:43:57 +02:00
@push('componentScripts')
2020-08-31 20:32:50 +02:00
<script src="{{ $U('/viewjs/components/productpicker.js', true) }}?v={{ $version }}"></script>
2018-07-14 14:43:57 +02:00
@endpush
@push('componentScripts')
<script>
Grocy.ExternalBarcodeLookupPluginName = "{{ $ExternalBarcodeLookupPluginName }}";
</script>
@endpush
@endonce
2018-07-14 14:43:57 +02:00
@php if(empty($disallowAddProductWorkflows)) { $disallowAddProductWorkflows = false; } @endphp
@php if(empty($disallowAllProductWorkflows)) { $disallowAllProductWorkflows = false; } @endphp
2018-07-14 18:23:41 +02:00
@php if(empty($prefillByName)) { $prefillByName = ''; } @endphp
@php if(empty($prefillById)) { $prefillById = ''; } @endphp
@php if(!isset($isRequired)) { $isRequired = true; } @endphp
@php if(!isset($label)) { $label = 'Product'; } @endphp
@php if(!isset($disabled)) { $disabled = false; } @endphp
@php if(empty($hint)) { $hint = ''; } @endphp
@php if(empty($nextInputSelector)) { $nextInputSelector = ''; } @endphp
@php if(empty($validationMessage)) { $validationMessage = 'You have to select a product'; } @endphp
@php if(empty($additionalGroupCssClasses)) { $additionalGroupCssClasses = ''; } @endphp
2018-07-14 14:43:57 +02:00
<div class="form-group {{ $additionalGroupCssClasses }}"
2020-08-31 20:32:50 +02:00
data-next-input-selector="{{ $nextInputSelector }}"
data-disallow-add-product-workflows="{{ BoolToString($disallowAddProductWorkflows) }}"
data-disallow-all-product-workflows="{{ BoolToString($disallowAllProductWorkflows) }}"
data-prefill-by-name="{{ $prefillByName }}"
data-prefill-by-id="{{ $prefillById }}">
2020-11-09 21:30:22 +01:00
<label class="w-100"
for="product_id">
{{ $__t($label) }}
@if(!$disallowAllProductWorkflows)
2022-04-04 20:10:29 +02:00
<i class="fa-solid fa-question-circle text-muted"
2020-11-09 21:30:22 +01:00
data-toggle="tooltip"
data-trigger="hover click"
2020-11-09 21:30:22 +01:00
title="{{ $__t('Type a new product name or barcode and hit TAB or ENTER to start a workflow') }}"></i>
@endif
@if(!empty($hint))
2022-04-04 20:10:29 +02:00
<i class="fa-solid fa-question-circle text-muted"
data-toggle="tooltip"
data-trigger="hover click"
title="{{ $hint }}"></i>
@endif
2020-08-31 20:32:50 +02:00
<span id="barcode-lookup-disabled-hint"
2020-11-09 21:30:22 +01:00
class="small text-muted d-none float-right"> {{ $__t('Barcode lookup is disabled') }}</span>
<i id="barcode-lookup-hint"
2022-04-04 20:10:29 +02:00
class="fa-solid fa-barcode float-right mt-1"></i>
</label>
2020-08-31 20:32:50 +02:00
<select class="form-control product-combobox barcodescanner-input"
id="product_id"
name="product_id"
@if($isRequired)
required
@endif
@if($disabled)
disabled
@endif
data-target="@productpicker">
2018-07-14 14:43:57 +02:00
<option value=""></option>
@foreach($products as $product)
@php $bc = null;
if(isset($barcodes)) {
$bc = FindObjectInArrayByPropertyValue($barcodes, 'product_id', $product->id);
}
@endphp
<option data-additional-searchdata="@if(isset($bc)){{ $bc->barcodes }}@endif,"
2020-08-31 20:32:50 +02:00
value="{{ $product->id }}">{{ $product->name }}</option>
2018-07-14 14:43:57 +02:00
@endforeach
</select>
<div class="invalid-feedback">{{ $__t($validationMessage) }}</div>
2020-08-31 20:32:50 +02:00
<div id="custom-productpicker-error"
class="form-text text-danger d-none"></div>
2020-11-14 11:05:36 +01:00
<div id="flow-info-InplaceAddBarcodeToExistingProduct"
class="form-text text-info small d-none"><strong><span id="InplaceAddBarcodeToExistingProduct"></span></strong> {{ $__t('will be added to the list of barcodes for the selected product on submit') }}</div>
2018-07-14 14:43:57 +02:00
</div>
@include('components.barcodescanner')