mirror of
https://github.com/grocy/grocy.git
synced 2025-04-29 01:32:38 +00:00
* Grocycode: Productpicker, StockService * Grocycode: Datamatrix generation * Grocycode: Display in UI, make Images downloadable * Grocycode: Do not show on product card * Grocycode: Stockentry Label view * Grocycode: Webhooks & Labelprinter Feature * Grocycode: Manual Label printing * Grocycode: Print Label from product form * Quagga2: use zxing for DataMatrix recognition * Grocycode: Default settings for label printing * Prepare merge of master * Grocycode: docs * Docs: label printing webhook * Review - "grocy" is currently written lower-case everywhere, so let's do this also for "grocycode" - Unified phrases / capitalization - Minor UI adjustments (mainly context menu item ordering / ordering/spacing on product edit page) - Documented API changes for Swagger UI (grocy.openapi.json) - Reverted German localizations (those are managed via Transifex; would cause conflicts when manually edited - will import them later there) - Reverted a somehow messed up localization string (productform/help text for `cumulate_min_stock_amount_of_sub_products`) - Suppress deprecation warnings when generating Datamatrix PNG (otherwise the PNG is invalid, https://github.com/jucksearm/php-barcode/issues/3) - Default `FEATURE_FLAG_LABELPRINTER` to disabled Co-authored-by: Bernd Bestel <bernd@berrnd.de>
71 lines
3.8 KiB
PHP
71 lines
3.8 KiB
PHP
@push('componentScripts')
|
|
<script src="{{ $U('/node_modules/chart.js/dist/Chart.min.js?v=', true) }}{{ $version }}"></script>
|
|
<script src="{{ $U('/viewjs/components/productcard.js', true) }}?v={{ $version }}"></script>
|
|
@endpush
|
|
|
|
<div class="card productcard">
|
|
<div class="card-header">
|
|
<span class="float-left">{{ $__t('Product overview') }}</span>
|
|
<a id="productcard-product-edit-button"
|
|
class="btn btn-sm btn-outline-secondary py-0 float-right disabled"
|
|
href="#"
|
|
data-toggle="tooltip"
|
|
title="{{ $__t('Edit product') }}">
|
|
<i class="fas fa-edit"></i>
|
|
</a>
|
|
<a id="productcard-product-journal-button"
|
|
class="btn btn-sm btn-outline-secondary py-0 mr-1 float-right disabled show-as-dialog-link"
|
|
href="#">
|
|
{{ $__t('Stock journal') }}
|
|
</a>
|
|
<a id="productcard-product-stock-button"
|
|
class="btn btn-sm btn-outline-secondary py-0 mr-1 float-right disabled show-as-dialog-link"
|
|
href="#">
|
|
{{ $__t('Stock entries') }}
|
|
</a>
|
|
</div>
|
|
<div class="card-body">
|
|
<h3><span id="productcard-product-name"></span></h3>
|
|
|
|
<div id="productcard-product-description-wrapper"
|
|
class="expandable-text mb-2 d-none">
|
|
<p id="productcard-product-description"
|
|
class="text-muted collapse mb-0"></p>
|
|
<a class="collapsed"
|
|
data-toggle="collapse"
|
|
href="#productcard-product-description">{{ $__t('Show more') }}</a>
|
|
</div>
|
|
|
|
<strong>{{ $__t('Stock amount') }}:</strong> <span id="productcard-product-stock-amount"
|
|
class="locale-number locale-number-quantity-amount"></span> <span id="productcard-product-stock-qu-name"></span>
|
|
<span id="productcard-product-stock-opened-amount"
|
|
class="small font-italic locale-number locale-number-quantity-amount"></span>
|
|
<span id="productcard-aggregated-amounts"
|
|
class="pl-2 text-secondary d-none"><i class="fas fa-custom-sigma-sign"></i> <span id="productcard-product-stock-amount-aggregated"
|
|
class="locale-number locale-number-quantity-amount"></span> <span id="productcard-product-stock-qu-name-aggregated"></span> <span id="productcard-product-stock-opened-amount-aggregated locale-number locale-number-quantity-amount"
|
|
class="small font-italic"></span></span><br>
|
|
<strong>{{ $__t('Stock value') }}:</strong> <span id="productcard-product-stock-value"
|
|
class="locale-number locale-number-currency"></span><br>
|
|
@if(GROCY_FEATURE_FLAG_STOCK_LOCATION_TRACKING)<strong>{{ $__t('Default location') }}:</strong> <span id="productcard-product-location"></span><br>@endif
|
|
<strong>{{ $__t('Last purchased') }}:</strong> <span id="productcard-product-last-purchased"></span> <time id="productcard-product-last-purchased-timeago"
|
|
class="timeago timeago-contextual"></time><br>
|
|
<strong>{{ $__t('Last used') }}:</strong> <span id="productcard-product-last-used"></span> <time id="productcard-product-last-used-timeago"
|
|
class="timeago timeago-contextual"></time><br>
|
|
@if(GROCY_FEATURE_FLAG_STOCK_PRICE_TRACKING)<strong>{{ $__t('Last price') }}:</strong> <span id="productcard-product-last-price"></span><br>@endif
|
|
@if (GROCY_FEATURE_FLAG_STOCK_PRICE_TRACKING)<strong>{{ $__t('Average price') }}:</strong> <span id="productcard-product-average-price"></span><br>@endif
|
|
@if (GROCY_FEATURE_FLAG_STOCK_BEST_BEFORE_DATE_TRACKING)<strong>{{ $__t('Average shelf life') }}:</strong> <span id="productcard-product-average-shelf-life"></span><br>@endif
|
|
<strong>{{ $__t('Spoil rate') }}:</strong> <span id="productcard-product-spoil-rate"></span>
|
|
|
|
<p class="w-75 mt-3 mx-auto"><img id="productcard-product-picture"
|
|
data-src=""
|
|
class="img-fluid img-thumbnail d-none lazy"></p>
|
|
|
|
@if(GROCY_FEATURE_FLAG_STOCK_PRICE_TRACKING)
|
|
<h5 class="mt-3">{{ $__t('Price history') }}</h5>
|
|
<canvas id="productcard-product-price-history-chart"
|
|
class="w-100 d-none"></canvas>
|
|
<span id="productcard-no-price-data-hint"
|
|
class="font-italic d-none">{{ $__t('No price history available') }}</span>
|
|
@endif
|
|
</div>
|
|
</div> |