mirror of
https://github.com/grocy/grocy.git
synced 2026-04-05 20:36:15 +02:00
Deleted off-topic files
This commit is contained in:
parent
34ecf85a29
commit
6927dec194
|
|
@ -1,132 +0,0 @@
|
|||
<?php
|
||||
|
||||
# Settings can also be overwritten in two ways
|
||||
#
|
||||
# First priority
|
||||
# A .txt file with the same name as the setting in /data/settingoverrides
|
||||
# the content of the file is used as the setting value
|
||||
#
|
||||
# Second priority
|
||||
# An environment variable with the same name as the setting and prefix "GROCY_"
|
||||
# so for example "GROCY_BASE_URL"
|
||||
#
|
||||
# Third priority
|
||||
# The settings defined here below
|
||||
|
||||
|
||||
# Either "production", "dev", "demo" or "prerelease"
|
||||
# ("demo" and "prerelease" is reserved to be used only on the offical demo instances)
|
||||
Setting('MODE', 'production');
|
||||
|
||||
# Either "en" or "de" or the directory name of
|
||||
# one of the other available localization folders in the "/localization" directory
|
||||
Setting('CULTURE', 'en');
|
||||
|
||||
# This is used to define the first day of a week for calendar views in the frontend,
|
||||
# leave empty to use the locale default
|
||||
# Needs to be a number where Sunday = 0, Monday = 1 and so forth
|
||||
Setting('CALENDAR_FIRST_DAY_OF_WEEK', '');
|
||||
|
||||
# If calendars should show week numbers
|
||||
Setting('CALENDAR_SHOW_WEEK_OF_YEAR', true);
|
||||
|
||||
# To keep it simple: grocy does not handle any currency conversions,
|
||||
# this here is used to format all money values,
|
||||
# so doesn't matter really matter, but should be the
|
||||
# ISO 4217 code of the currency ("USD", "EUR", "GBP", etc.)
|
||||
Setting('CURRENCY', 'USD');
|
||||
|
||||
# The base url of your installation,
|
||||
# should be just "/" when running directly under the root of a (sub)domain
|
||||
# or for example "https://example.com/grocy" when using a subdirectory
|
||||
Setting('BASE_URL', '/');
|
||||
|
||||
# The plugin to use for external barcode lookups,
|
||||
# must be the filename without .php extension and must be located in /data/plugins,
|
||||
# see /data/plugins/DemoBarcodeLookupPlugin.php for an example implementation
|
||||
Setting('STOCK_BARCODE_LOOKUP_PLUGIN', 'DemoBarcodeLookupPlugin');
|
||||
|
||||
# If, however, your webserver does not support URL rewriting, set this to true
|
||||
Setting('DISABLE_URL_REWRITING', false);
|
||||
|
||||
# Specify an custom homepage if desired - by default the homepage will be set to the stock overview,
|
||||
# this needs to be one of the following values:
|
||||
# stock, shoppinglist, recipes, chores, tasks, batteries, equipment, calendar, mealplan
|
||||
Setting('ENTRY_PAGE', 'stock');
|
||||
|
||||
# Set this to true if you want to disable authentication / the login screen,
|
||||
# places where user context is needed will then use the default (first existing) user
|
||||
Setting('DISABLE_AUTH', false);
|
||||
|
||||
# Set this to true if you want to disable the ability to scan a barcode via the device camera (Browser API)
|
||||
Setting('DISABLE_BROWSER_BARCODE_CAMERA_SCANNING', false);
|
||||
|
||||
|
||||
# Default user settings
|
||||
# These settings can be changed per user, here the defaults
|
||||
# are defined which are used when the user has not changed the setting so far
|
||||
|
||||
# Night mode related
|
||||
DefaultUserSetting('night_mode_enabled', false); // If night mode is enabled always
|
||||
DefaultUserSetting('auto_night_mode_enabled', false); // If night mode is enabled automatically when inside a given time range (see the two settings below)
|
||||
DefaultUserSetting('auto_night_mode_time_range_from', "20:00"); // Format HH:mm
|
||||
DefaultUserSetting('auto_night_mode_time_range_to', "07:00"); // Format HH:mm
|
||||
DefaultUserSetting('auto_night_mode_time_range_goes_over_midnight', true); // If the time range above goes over midnight
|
||||
DefaultUserSetting('currently_inside_night_mode_range', false); // If we're currently inside of night mode time range (this is not user configurable, but stored as a user setting because it's evaluated client side to be able to use the client time instead of the maybe different server time)
|
||||
|
||||
# Stock settings
|
||||
DefaultUserSetting('product_presets_location_id', -1); // Default location id for new products (-1 means no location is preset)
|
||||
DefaultUserSetting('product_presets_product_group_id', -1); // Default product group id for new products (-1 means no product group is preset)
|
||||
DefaultUserSetting('product_presets_qu_id', -1); // Default quantity unit id for new products (-1 means no quantity unit is preset)
|
||||
DefaultUserSetting('stock_expring_soon_days', 5);
|
||||
DefaultUserSetting('stock_default_purchase_amount', 0);
|
||||
DefaultUserSetting('stock_default_consume_amount', 1);
|
||||
|
||||
# Chores settings
|
||||
DefaultUserSetting('chores_due_soon_days', 5);
|
||||
|
||||
# Batteries settings
|
||||
DefaultUserSetting('batteries_due_soon_days', 5);
|
||||
|
||||
# Tasks settings
|
||||
DefaultUserSetting('tasks_due_soon_days', 5);
|
||||
|
||||
# If the page should be automatically reloaded when there was
|
||||
# an external change
|
||||
DefaultUserSetting('auto_reload_on_db_change', true);
|
||||
|
||||
# Show a clock in the header next to the logo or not
|
||||
DefaultUserSetting('show_clock_in_header', false);
|
||||
|
||||
# Shopping list to stock workflow:
|
||||
# Automatically do the booking using the last price and the amount
|
||||
# of the shopping list item, if the product has "Default best before days" set
|
||||
DefaultUserSetting('shopping_list_to_stock_workflow_auto_submit_when_prefilled', false);
|
||||
|
||||
|
||||
# Feature flags
|
||||
# grocy was initially about "stock management for your household", many other things
|
||||
# came and still come by, because they are useful - here you can disable the parts
|
||||
# which you don't need to have a less cluttered UI
|
||||
# (set the setting to "false" to disable the corresponding part, which should be self explanatory)
|
||||
Setting('FEATURE_FLAG_STOCK', true);
|
||||
Setting('FEATURE_FLAG_SHOPPINGLIST', true);
|
||||
Setting('FEATURE_FLAG_RECIPES', true);
|
||||
Setting('FEATURE_FLAG_CHORES', true);
|
||||
Setting('FEATURE_FLAG_TASKS', true);
|
||||
Setting('FEATURE_FLAG_BATTERIES', true);
|
||||
Setting('FEATURE_FLAG_EQUIPMENT', true);
|
||||
Setting('FEATURE_FLAG_CALENDAR', true);
|
||||
|
||||
|
||||
# Sub feature flags
|
||||
Setting('FEATURE_FLAG_STOCK_PRICE_TRACKING', true);
|
||||
Setting('FEATURE_FLAG_STOCK_LOCATION_TRACKING', true);
|
||||
Setting('FEATURE_FLAG_STOCK_BEST_BEFORE_DATE_TRACKING', true);
|
||||
Setting('FEATURE_FLAG_STOCK_PRODUCT_OPENED_TRACKING', true);
|
||||
Setting('FEATURE_FLAG_SHOPPINGLIST_MULTIPLE_LISTS', true);
|
||||
Setting('FEATURE_FLAG_CHORES_ASSIGNMENTS', true);
|
||||
|
||||
|
||||
# Feature settings
|
||||
Setting('FEATURE_SETTING_STOCK_COUNT_OPENED_PRODUCTS_AGAINST_MINIMUM_STOCK_AMOUNT', true); // When set to false, opened products will not be considered for minimum stock amounts
|
||||
Binary file not shown.
362489
data_store/sql.log
362489
data_store/sql.log
File diff suppressed because it is too large
Load Diff
|
|
@ -1,230 +0,0 @@
|
|||
<?php $__env->startSection('title', $__t('Shopping list')); ?>
|
||||
<?php $__env->startSection('activeNav', 'shoppinglist'); ?>
|
||||
<?php $__env->startSection('viewJsName', 'shoppinglist'); ?>
|
||||
|
||||
<?php $__env->startPush('pageScripts'); ?>
|
||||
<script src="<?php echo e($U('/node_modules/jquery-ui-dist/jquery-ui.min.js?v=', true)); ?><?php echo e($version); ?>"></script>
|
||||
<script src="<?php echo e($U('/node_modules/datatables.net-rowgroup/js/dataTables.rowGroup.min.js?v=', true)); ?><?php echo e($version); ?>"></script>
|
||||
<script src="<?php echo e($U('/node_modules/datatables.net-rowgroup-bs4/js/rowGroup.bootstrap4.min.js?v=', true)); ?><?php echo e($version); ?>"></script>
|
||||
<script src="<?php echo e($U('/viewjs/purchase.js?v=', true)); ?><?php echo e($version); ?>"></script>
|
||||
<?php $__env->stopPush(); ?>
|
||||
|
||||
<?php $__env->startPush('pageStyles'); ?>
|
||||
<link href="<?php echo e($U('/node_modules/datatables.net-rowgroup-bs4/css/rowGroup.bootstrap4.min.css?v=', true)); ?><?php echo e($version); ?>" rel="stylesheet">
|
||||
<?php $__env->stopPush(); ?>
|
||||
|
||||
<?php $__env->startSection('content'); ?>
|
||||
<?php if(GROCY_FEATURE_FLAG_SHOPPINGLIST_MULTIPLE_LISTS): ?>
|
||||
<div class="row border-bottom pb-2 mb-2 d-print-none">
|
||||
<div class="col-xs-12 col-md-4">
|
||||
<label for="selected-shopping-list"><?php echo e($__t('Selected shopping list')); ?></label>
|
||||
<select class="form-control" id="selected-shopping-list">
|
||||
<?php $__currentLoopData = $shoppingLists; $__env->addLoop($__currentLoopData); foreach($__currentLoopData as $shoppingList): $__env->incrementLoopIndices(); $loop = $__env->getLastLoop(); ?>
|
||||
<option <?php if($shoppingList->id == $selectedShoppingListId): ?> selected="selected" <?php endif; ?> value="<?php echo e($shoppingList->id); ?>"><?php echo e($shoppingList->name); ?></option>
|
||||
<?php endforeach; $__env->popLoop(); $loop = $__env->getLastLoop(); ?>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-xs-12 col-md-8">
|
||||
<label for="selected-shopping-list"> </label><br>
|
||||
<a class="btn btn-outline-dark responsive-button" href="<?php echo e($U('/shoppinglist/new')); ?>">
|
||||
<i class="fas fa-plus"></i> <?php echo e($__t('New shopping list')); ?>
|
||||
|
||||
</a>
|
||||
<a id="delete-selected-shopping-list" class="btn btn-outline-danger responsive-button <?php if($selectedShoppingListId == 1): ?> disabled <?php endif; ?>" href="#">
|
||||
<i class="fas fa-trash"></i> <?php echo e($__t('Delete shopping list')); ?>
|
||||
|
||||
</a>
|
||||
<a id="print-shopping-list-button" class="btn btn-outline-dark responsive-button" href="#">
|
||||
<i class="fas fa-print"></i> <?php echo e($__t('Print')); ?>
|
||||
|
||||
</a>
|
||||
<!--<div class="dropdown d-inline-block">
|
||||
<button class="btn btn-outline-dark responsive-button dropdown-toggle" data-toggle="dropdown"><i class="fas fa-file-export"></i> <?php echo e($__t('Output')); ?></button>
|
||||
<div class="dropdown-menu">
|
||||
<a id="print-shopping-list-button" class="dropdown-item" href="#"><i class="fas fa-print"></i> <?php echo e($__t('Print')); ?></a>
|
||||
</div>
|
||||
</div>-->
|
||||
</div>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
|
||||
<div class="row d-print-none">
|
||||
<div class="col">
|
||||
<h1>
|
||||
<?php echo $__env->yieldContent('title'); ?>
|
||||
<a class="btn btn-outline-dark responsive-button" href="<?php echo e($U('/shoppinglistitem/new?list=' . $selectedShoppingListId)); ?>">
|
||||
<i class="fas fa-plus"></i> <?php echo e($__t('Add item')); ?>
|
||||
|
||||
</a>
|
||||
<a id="clear-shopping-list" class="btn btn-outline-danger responsive-button <?php if($listItems->count() == 0): ?> disabled <?php endif; ?>" href="#">
|
||||
<i class="fas fa-trash"></i> <?php echo e($__t('Clear list')); ?>
|
||||
|
||||
</a>
|
||||
<a id="add-products-below-min-stock-amount" class="btn btn-outline-primary responsive-button" href="#">
|
||||
<i class="fas fa-cart-plus"></i> <?php echo e($__t('Add products that are below defined min. stock amount')); ?>
|
||||
|
||||
</a>
|
||||
<a id="add-all-items-to-stock-button" class="btn btn-outline-primary responsive-button" href="#">
|
||||
<i class="fas fa-box"></i> <?php echo e($__t('Add all list items to stock')); ?>
|
||||
|
||||
</a>
|
||||
</h1>
|
||||
<p data-status-filter="belowminstockamount" class="btn btn-lg btn-info status-filter-button responsive-button"><?php echo e($__n(count($missingProducts), '%s product is below defined min. stock amount', '%s products are below defined min. stock amount')); ?></p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row mt-3 d-print-none">
|
||||
<div class="col-xs-12 col-md-4">
|
||||
<label for="search"><?php echo e($__t('Search')); ?></label> <i class="fas fa-search"></i>
|
||||
<input type="text" class="form-control" id="search">
|
||||
</div>
|
||||
<div class="col-xs-12 col-md-4">
|
||||
<label for="status-filter"><?php echo e($__t('Filter by status')); ?></label> <i class="fas fa-filter"></i>
|
||||
<select class="form-control" id="status-filter">
|
||||
<option class="bg-white" value="all"><?php echo e($__t('All')); ?></option>
|
||||
<option class="bg-info" value="belowminstockamount"><?php echo e($__t('Below min. stock amount')); ?></option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row d-print-none">
|
||||
<div class="col-xs-12 col-md-8 pb-3">
|
||||
<table id="shoppinglist-table" class="table table-sm table-striped dt-responsive">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="border-right"></th>
|
||||
<th><?php echo e($__t('Product')); ?> / <em><?php echo e($__t('Note')); ?></em></th>
|
||||
<th><?php echo e($__t('Amount')); ?></th>
|
||||
<th class="d-none">Hiden product group</th>
|
||||
<th class="d-none">Hidden status</th>
|
||||
|
||||
<?php echo $__env->make('components.userfields_thead', array(
|
||||
'userfields' => $userfields
|
||||
), \Illuminate\Support\Arr::except(get_defined_vars(), ['__data', '__path']))->render(); ?>
|
||||
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody class="d-none">
|
||||
<?php $__currentLoopData = $listItems; $__env->addLoop($__currentLoopData); foreach($__currentLoopData as $listItem): $__env->incrementLoopIndices(); $loop = $__env->getLastLoop(); ?>
|
||||
<tr id="shoppinglistitem-<?php echo e($listItem->id); ?>-row" class="<?php if(FindObjectInArrayByPropertyValue($missingProducts, 'id', $listItem->product_id) !== null): ?> table-info <?php endif; ?> <?php if($listItem->done == 1): ?> text-muted text-strike-through <?php endif; ?>">
|
||||
<td class="fit-content border-right">
|
||||
<a class="btn btn-success btn-sm order-listitem-button" href="#"
|
||||
data-item-id="<?php echo e($listItem->id); ?>"
|
||||
data-item-done="<?php echo e($listItem->done); ?>">
|
||||
<i class="fas fa-check"></i>
|
||||
</a>
|
||||
<a class="btn btn-sm btn-info" href="<?php echo e($U('/shoppinglistitem/') . $listItem->id . '?list=' . $selectedShoppingListId); ?>">
|
||||
<i class="fas fa-edit"></i>
|
||||
</a>
|
||||
<a class="btn btn-sm btn-danger shoppinglist-delete-button" href="#" data-shoppinglist-id="<?php echo e($listItem->id); ?>">
|
||||
<i class="fas fa-trash"></i>
|
||||
</a>
|
||||
<a class="btn btn-sm btn-primary <?php if(empty($listItem->product_id)): ?> disabled <?php else: ?> shopping-list-stock-add-workflow-list-item-button <?php endif; ?>" href="<?php echo e($U('/purchase?embedded&flow=shoppinglistitemtostock&product=')); ?><?php echo e($listItem->product_id); ?>&amount=<?php echo e($listItem->amount); ?>&listitemid=<?php echo e($listItem->id); ?>" <?php if(!empty($listItem->product_id)): ?> data-toggle="tooltip" title="<?php echo e($__t('Add %1$s of %2$s to stock', $listItem->amount . ' ' . $__n($listItem->amount, FindObjectInArrayByPropertyValue($quantityunits, 'id', FindObjectInArrayByPropertyValue($products, 'id', $listItem->product_id)->qu_id_purchase)->name, FindObjectInArrayByPropertyValue($quantityunits, 'id', FindObjectInArrayByPropertyValue($products, 'id', $listItem->product_id)->qu_id_purchase)->name_plural), FindObjectInArrayByPropertyValue($products, 'id', $listItem->product_id)->name, $listItem->amount)); ?>" <?php endif; ?>>
|
||||
<i class="fas fa-box"></i>
|
||||
</a>
|
||||
</td>
|
||||
<td>
|
||||
<?php if(!empty($listItem->product_id)): ?> <?php echo e(FindObjectInArrayByPropertyValue($products, 'id', $listItem->product_id)->name); ?><br><?php endif; ?><em><?php echo nl2br($listItem->note); ?></em>
|
||||
</td>
|
||||
<td>
|
||||
<span class="locale-number locale-number-quantity-amount"><?php echo e($listItem->amount); ?></span> <?php if(!empty($listItem->product_id)): ?><?php echo e($__n($listItem->amount, FindObjectInArrayByPropertyValue($quantityunits, 'id', FindObjectInArrayByPropertyValue($products, 'id', $listItem->product_id)->qu_id_purchase)->name, FindObjectInArrayByPropertyValue($quantityunits, 'id', FindObjectInArrayByPropertyValue($products, 'id', $listItem->product_id)->qu_id_purchase)->name_plural)); ?><?php endif; ?>
|
||||
</td>
|
||||
<td class="d-none">
|
||||
<?php if(!empty(FindObjectInArrayByPropertyValue($products, 'id', $listItem->product_id)->product_group_id)): ?> <?php echo e(FindObjectInArrayByPropertyValue($productGroups, 'id', FindObjectInArrayByPropertyValue($products, 'id', $listItem->product_id)->product_group_id)->name); ?> <?php else: ?> <span class="font-italic font-weight-light"><?php echo e($__t('Ungrouped')); ?></span> <?php endif; ?>
|
||||
</td>
|
||||
<td class="d-none">
|
||||
<?php if(FindObjectInArrayByPropertyValue($missingProducts, 'id', $listItem->product_id) !== null): ?> belowminstockamount <?php endif; ?>
|
||||
</td>
|
||||
|
||||
<?php echo $__env->make('components.userfields_tbody', array(
|
||||
'userfields' => $userfields,
|
||||
'userfieldValues' => FindAllObjectsInArrayByPropertyValue($userfieldValues, 'object_id', $listItem->product_id)
|
||||
), \Illuminate\Support\Arr::except(get_defined_vars(), ['__data', '__path']))->render(); ?>
|
||||
|
||||
</tr>
|
||||
<?php endforeach; $__env->popLoop(); $loop = $__env->getLastLoop(); ?>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<div class="col-xs-12 col-md-4 mt-md-2 d-print-none">
|
||||
<?php echo $__env->make('components.calendarcard', \Illuminate\Support\Arr::except(get_defined_vars(), ['__data', '__path']))->render(); ?>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row mt-3 d-print-none">
|
||||
<div class="col-xs-12 col-md-8">
|
||||
<div class="form-group">
|
||||
<label class="text-larger font-weight-bold" for="notes"><?php echo e($__t('Notes')); ?></label>
|
||||
<a id="save-description-button" class="btn btn-success btn-sm ml-1 mb-2" href="#"><?php echo e($__t('Save')); ?></a>
|
||||
<a id="clear-description-button" class="btn btn-danger btn-sm ml-1 mb-2" href="#"><?php echo e($__t('Clear')); ?></a>
|
||||
<textarea class="form-control wysiwyg-editor" id="description" name="description"><?php echo e(FindObjectInArrayByPropertyValue($shoppingLists, 'id', $selectedShoppingListId)->description); ?></textarea>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="modal fade" id="shopping-list-stock-add-workflow-modal" tabindex="-1">
|
||||
<div class="modal-dialog">
|
||||
<div class="modal-content text-center">
|
||||
<div class="modal-body">
|
||||
<iframe id="shopping-list-stock-add-workflow-purchase-form-frame" class="embed-responsive" src=""></iframe>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<span id="shopping-list-stock-add-workflow-purchase-item-count" class="d-none mr-auto"></span>
|
||||
<button id="shopping-list-stock-add-workflow-skip-button" type="button" class="btn btn-primary"><i class="fas fa-angle-double-right"></i> <?php echo e($__t('Skip')); ?></button>
|
||||
<button type="button" class="btn btn-secondary" data-dismiss="modal"><?php echo e($__t('Close')); ?></button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="d-none d-print-block">
|
||||
<h1 class="text-center">
|
||||
<img src="<?php echo e($U('/img/grocy_logo.svg?v=', true)); ?><?php echo e($version); ?>" height="30" class="d-print-flex mx-auto">
|
||||
<?php echo e($__t("Shopping list")); ?>
|
||||
|
||||
</h1>
|
||||
<?php if(FindObjectInArrayByPropertyValue($shoppingLists, 'id', $selectedShoppingListId)->name != $__t("Shopping list")): ?>
|
||||
<h3 class="text-center">
|
||||
<?php echo e(FindObjectInArrayByPropertyValue($shoppingLists, 'id', $selectedShoppingListId)->name); ?>
|
||||
|
||||
</h3>
|
||||
<?php endif; ?>
|
||||
<h6 class="text-center mb-4">
|
||||
<?php echo e($__t('Time of printing')); ?>:
|
||||
<span class="d-inline print-timestamp"></span>
|
||||
</h6>
|
||||
<div class="row w-75">
|
||||
<div class="col">
|
||||
<table class="table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th><?php echo e($__t('Product')); ?> / <em><?php echo e($__t('Note')); ?></em></th>
|
||||
<th><?php echo e($__t('Amount')); ?></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<?php $__currentLoopData = $listItems; $__env->addLoop($__currentLoopData); foreach($__currentLoopData as $listItem): $__env->incrementLoopIndices(); $loop = $__env->getLastLoop(); ?>
|
||||
<tr>
|
||||
<td>
|
||||
<?php if(!empty($listItem->product_id)): ?> <?php echo e(FindObjectInArrayByPropertyValue($products, 'id', $listItem->product_id)->name); ?><br><?php endif; ?><em><?php echo nl2br($listItem->note); ?></em>
|
||||
</td>
|
||||
<td>
|
||||
<?php echo e($listItem->amount); ?> <?php if(!empty($listItem->product_id)): ?><?php echo e($__n($listItem->amount, FindObjectInArrayByPropertyValue($quantityunits, 'id', FindObjectInArrayByPropertyValue($products, 'id', $listItem->product_id)->qu_id_purchase)->name, FindObjectInArrayByPropertyValue($quantityunits, 'id', FindObjectInArrayByPropertyValue($products, 'id', $listItem->product_id)->qu_id_purchase)->name_plural)); ?><?php endif; ?>
|
||||
</td>
|
||||
</tr>
|
||||
<?php endforeach; $__env->popLoop(); $loop = $__env->getLastLoop(); ?>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row w-75">
|
||||
<div class="col">
|
||||
<h5><?php echo e($__t('Notes')); ?></h5>
|
||||
<p id="description-for-print"></p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<?php $__env->stopSection(); ?>
|
||||
|
||||
<?php echo $__env->make('layout.default', \Illuminate\Support\Arr::except(get_defined_vars(), ['__data', '__path']))->render(); ?><?php /**PATH /www/views/shoppinglist.blade.php ENDPATH**/ ?>
|
||||
|
|
@ -1,28 +0,0 @@
|
|||
<?php if(!GROCY_DISABLE_BROWSER_BARCODE_CAMERA_SCANNING): ?>
|
||||
|
||||
<?php $__env->startPush('componentScripts'); ?>
|
||||
<script src="<?php echo e($U('/viewjs/components/barcodescanner.js', true)); ?>?v=<?php echo e($version); ?>"></script>
|
||||
<?php $__env->stopPush(); ?>
|
||||
|
||||
<?php $__env->startPush('pageScripts'); ?>
|
||||
<script src="<?php echo e($U('/node_modules/quagga/dist/quagga.min.js?v=', true)); ?><?php echo e($version); ?>"></script>
|
||||
<?php $__env->stopPush(); ?>
|
||||
|
||||
<?php $__env->startPush('pageStyles'); ?>
|
||||
<style>
|
||||
#barcodescanner-start-button {
|
||||
position: absolute;
|
||||
right: 0;
|
||||
margin-top: 4px;
|
||||
margin-right: 5px;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.combobox-container #barcodescanner-start-button {
|
||||
margin-right: 36px !important;
|
||||
}
|
||||
</style>
|
||||
<?php $__env->stopPush(); ?>
|
||||
|
||||
<?php endif; ?>
|
||||
<?php /**PATH /www/views/components/barcodescanner.blade.php ENDPATH**/ ?>
|
||||
|
|
@ -1,50 +0,0 @@
|
|||
<?php $__env->startPush('componentScripts'); ?>
|
||||
<script src="<?php echo e($U('/viewjs/components/datetimepicker.js', true)); ?>?v=<?php echo e($version); ?>"></script>
|
||||
<?php $__env->stopPush(); ?>
|
||||
|
||||
<?php if(!isset($isRequired)) { $isRequired = true; } ?>
|
||||
<?php if(!isset($initialValue)) { $initialValue = ''; } ?>
|
||||
<?php if(empty($earlierThanInfoLimit)) { $earlierThanInfoLimit = ''; } ?>
|
||||
<?php if(empty($earlierThanInfoText)) { $earlierThanInfoText = ''; } ?>
|
||||
<?php if(empty($additionalCssClasses)) { $additionalCssClasses = ''; } ?>
|
||||
<?php if(empty($additionalGroupCssClasses)) { $additionalGroupCssClasses = ''; } ?>
|
||||
<?php if(empty($invalidFeedback)) { $invalidFeedback = ''; } ?>
|
||||
<?php if(!isset($isRequired)) { $isRequired = true; } ?>
|
||||
<?php if(!isset($noNameAttribute)) { $noNameAttribute = false; } ?>
|
||||
<?php if(!isset($nextInputSelector)) { $nextInputSelector = false; } ?>
|
||||
<?php if(empty($additionalAttributes)) { $additionalAttributes = ''; } ?>
|
||||
<?php if(empty($additionalGroupCssClasses)) { $additionalGroupCssClasses = ''; } ?>
|
||||
|
||||
<div class="form-group <?php echo e($additionalGroupCssClasses); ?>">
|
||||
<label for="<?php echo e($id); ?>"><?php echo e($__t($label)); ?>
|
||||
|
||||
<span class="small text-muted">
|
||||
<?php if(!empty($hint)): ?><?php echo e($__t($hint)); ?><?php endif; ?>
|
||||
<time id="datetimepicker-timeago" class="timeago timeago-contextual"></time>
|
||||
</span>
|
||||
</label>
|
||||
<div class="input-group">
|
||||
<div class="input-group date datetimepicker <?php if(!empty($additionalGroupCssClasses)): ?><?php echo e($additionalGroupCssClasses); ?><?php endif; ?>" id="<?php echo e($id); ?>" <?php if(!$noNameAttribute): ?> name="<?php echo e($id); ?>" <?php endif; ?> data-target-input="nearest">
|
||||
<input <?php echo $additionalAttributes; ?> type="text" <?php if($isRequired): ?> <?php if($isRequired): ?> required <?php endif; ?> <?php endif; ?> class="form-control datetimepicker-input <?php if(!empty($additionalCssClasses)): ?><?php echo e($additionalCssClasses); ?><?php endif; ?>"
|
||||
data-target="#<?php echo e($id); ?>" data-format="<?php echo e($format); ?>"
|
||||
data-init-with-now="<?php echo e(BoolToString($initWithNow)); ?>"
|
||||
data-init-value="<?php echo e($initialValue); ?>"
|
||||
data-limit-end-to-now="<?php echo e(BoolToString($limitEndToNow)); ?>"
|
||||
data-limit-start-to-now="<?php echo e(BoolToString($limitStartToNow)); ?>"
|
||||
data-next-input-selector="<?php echo e($nextInputSelector); ?>"
|
||||
data-earlier-than-limit="<?php echo e($earlierThanInfoLimit); ?>" />
|
||||
<div class="input-group-append" data-target="#<?php echo e($id); ?>" data-toggle="datetimepicker">
|
||||
<div class="input-group-text"><i class="fas fa-calendar"></i></div>
|
||||
</div>
|
||||
<div class="invalid-feedback"><?php echo e($invalidFeedback); ?></div>
|
||||
</div>
|
||||
<div id="datetimepicker-earlier-than-info" class="form-text text-info font-italic d-none"><?php echo e($earlierThanInfoText); ?></div>
|
||||
<?php if(isset($shortcutValue) && isset($shortcutLabel)): ?>
|
||||
<div class="form-check w-100">
|
||||
<input class="form-check-input" type="checkbox" id="datetimepicker-shortcut" data-datetimepicker-shortcut-value="<?php echo e($shortcutValue); ?>">
|
||||
<label class="form-check-label" for="datetimepicker-shortcut"><?php echo e($__t($shortcutLabel)); ?></label>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
</div>
|
||||
<?php /**PATH /www/views/components/datetimepicker.blade.php ENDPATH**/ ?>
|
||||
|
|
@ -1,37 +0,0 @@
|
|||
<?php $__env->startSection('title', $__t('Login')); ?>
|
||||
<?php $__env->startSection('viewJsName', 'login'); ?>
|
||||
|
||||
<?php $__env->startSection('content'); ?>
|
||||
<div class="row">
|
||||
<div class="col-lg-6 offset-lg-3 col-xs-12">
|
||||
<h1 class="text-center"><?php echo $__env->yieldContent('title'); ?></h1>
|
||||
|
||||
<form method="post" action="<?php echo e($U('/login')); ?>" id="login-form" novalidate>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="name"><?php echo e($__t('Username')); ?></label>
|
||||
<input type="text" class="form-control" required id="username" name="username">
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="name"><?php echo e($__t('Password')); ?></label>
|
||||
<input type="password" class="form-control" required id="password" name="password">
|
||||
<div id="login-error" class="form-text text-danger d-none"></div>
|
||||
</div>
|
||||
|
||||
<div class="checkbox">
|
||||
<label for="stay_logged_in">
|
||||
<input type="checkbox" id="stay_logged_in" name="stay_logged_in"> <?php echo e($__t('Stay logged in permanently')); ?>
|
||||
|
||||
<p class="form-text text-muted small my-0"><?php echo e($__t('When not set, you will get logged out at latest after 30 days')); ?></p>
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<button id="login-button" class="btn btn-success"><?php echo e($__t('OK')); ?></button>
|
||||
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
<?php $__env->stopSection(); ?>
|
||||
|
||||
<?php echo $__env->make('layout.default', \Illuminate\Support\Arr::except(get_defined_vars(), ['__data', '__path']))->render(); ?><?php /**PATH /www/views/login.blade.php ENDPATH**/ ?>
|
||||
|
|
@ -1,12 +0,0 @@
|
|||
<?php if(count($userfields) > 0): ?>
|
||||
|
||||
<?php $__currentLoopData = $userfields; $__env->addLoop($__currentLoopData); foreach($__currentLoopData as $userfield): $__env->incrementLoopIndices(); $loop = $__env->getLastLoop(); ?>
|
||||
|
||||
<?php if($userfield->show_as_column_in_tables == 1): ?>
|
||||
<th><?php echo e($userfield->caption); ?></th>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php endforeach; $__env->popLoop(); $loop = $__env->getLastLoop(); ?>
|
||||
|
||||
<?php endif; ?>
|
||||
<?php /**PATH /www/views/components/userfields_thead.blade.php ENDPATH**/ ?>
|
||||
|
|
@ -1,264 +0,0 @@
|
|||
<?php if($mode == 'edit'): ?>
|
||||
<?php $__env->startSection('title', $__t('Edit recipe')); ?>
|
||||
<?php else: ?>
|
||||
<?php $__env->startSection('title', $__t('Create recipe')); ?>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php $__env->startSection('viewJsName', 'recipeform'); ?>
|
||||
|
||||
<?php $__env->startPush('pageScripts'); ?>
|
||||
<script src="<?php echo e($U('/node_modules/datatables.net-rowgroup/js/dataTables.rowGroup.min.js?v=', true)); ?><?php echo e($version); ?>"></script>
|
||||
<script src="<?php echo e($U('/node_modules/datatables.net-rowgroup-bs4/js/rowGroup.bootstrap4.min.js?v=', true)); ?><?php echo e($version); ?>"></script>
|
||||
<?php $__env->stopPush(); ?>
|
||||
|
||||
<?php $__env->startPush('pageStyles'); ?>
|
||||
<link href="<?php echo e($U('/node_modules/datatables.net-rowgroup-bs4/css/rowGroup.bootstrap4.min.css?v=', true)); ?><?php echo e($version); ?>" rel="stylesheet">
|
||||
<?php $__env->stopPush(); ?>
|
||||
|
||||
<?php $__env->startSection('content'); ?>
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<h1><?php echo $__env->yieldContent('title'); ?></h1>
|
||||
|
||||
<script>
|
||||
Grocy.EditMode = '<?php echo e($mode); ?>';
|
||||
Grocy.QuantityUnits = <?php echo json_encode($quantityunits); ?>;
|
||||
Grocy.QuantityUnitConversionsResolved = <?php echo json_encode($quantityUnitConversionsResolved); ?>;
|
||||
</script>
|
||||
|
||||
<?php if($mode == 'edit'): ?>
|
||||
<script>Grocy.EditObjectId = <?php echo e($recipe->id); ?>;</script>
|
||||
|
||||
<?php if(!empty($recipe->picture_file_name)): ?>
|
||||
<script>Grocy.RecipePictureFileName = '<?php echo e($recipe->picture_file_name); ?>';</script>
|
||||
<?php endif; ?>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-xs-12 col-md-7 pb-3">
|
||||
<form id="recipe-form" novalidate>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="name"><?php echo e($__t('Name')); ?></label>
|
||||
<input type="text" class="form-control" required id="name" name="name" value="<?php if($mode == 'edit'): ?><?php echo e($recipe->name); ?><?php endif; ?>">
|
||||
<div class="invalid-feedback"><?php echo e($__t('A name is required')); ?></div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="description"><?php echo e($__t('Preparation')); ?></label>
|
||||
<textarea id="description" class="form-control wysiwyg-editor" name="description"><?php if($mode == 'edit'): ?><?php echo e($recipe->description); ?><?php endif; ?></textarea>
|
||||
</div>
|
||||
|
||||
<?php if($mode == 'edit') { $value = $recipe->base_servings; } else { $value = 1; } ?>
|
||||
<?php echo $__env->make('components.numberpicker', array(
|
||||
'id' => 'base_servings',
|
||||
'label' => 'Servings',
|
||||
'min' => 1,
|
||||
'value' => $value,
|
||||
'invalidFeedback' => $__t('This cannot be lower than %s', '1'),
|
||||
'hint' => $__t('The ingredients listed here result in this amount of servings')
|
||||
), \Illuminate\Support\Arr::except(get_defined_vars(), ['__data', '__path']))->render(); ?>
|
||||
|
||||
<div class="form-group">
|
||||
<div class="form-check">
|
||||
<input type="hidden" name="not_check_shoppinglist" value="0">
|
||||
<input <?php if($mode == 'edit' && $recipe->not_check_shoppinglist == 1): ?> checked <?php endif; ?> class="form-check-input" type="checkbox" id="not_check_shoppinglist" name="not_check_shoppinglist" value="1">
|
||||
<label class="form-check-label" for="not_check_shoppinglist"><?php echo e($__t('Do not check against the shopping list when adding missing items to it')); ?>
|
||||
<span class="small text-muted"><?php echo e($__t('By default the amount to be added to the shopping list is "needed amount - stock amount - shopping list amount" - when this is enabled, it is only checked against the stock amount, not against what is already on the shopping list')); ?></span>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label for="recipe-picture"><?php echo e($__t('Picture')); ?>
|
||||
|
||||
<span class="text-muted small"><?php echo e($__t('If you don\'t select a file, the current picture will not be altered')); ?></span>
|
||||
</label>
|
||||
<div class="custom-file">
|
||||
<input type="file" class="custom-file-input" id="recipe-picture" accept="image/*">
|
||||
<label class="custom-file-label" for="recipe-picture"><?php echo e($__t('No file selected')); ?></label>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<?php echo $__env->make('components.userfieldsform', array(
|
||||
'userfields' => $userfields,
|
||||
'entity' => 'recipes'
|
||||
), \Illuminate\Support\Arr::except(get_defined_vars(), ['__data', '__path']))->render(); ?>
|
||||
|
||||
<button id="save-recipe-button" class="btn btn-success"><?php echo e($__t('Save')); ?></button>
|
||||
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<div class="col-xs-12 col-md-5 pb-3">
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<h2>
|
||||
<?php echo e($__t('Ingredients list')); ?>
|
||||
|
||||
<a id="recipe-pos-add-button" class="btn btn-outline-dark" href="#">
|
||||
<i class="fas fa-plus"></i> <?php echo e($__t('Add')); ?>
|
||||
|
||||
</a>
|
||||
</h2>
|
||||
|
||||
<table id="recipes-pos-table" class="table table-sm table-striped dt-responsive">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="border-right"></th>
|
||||
<th><?php echo e($__t('Product')); ?></th>
|
||||
<th><?php echo e($__t('Amount')); ?></th>
|
||||
<th class="fit-content"><?php echo e($__t('Note')); ?></th>
|
||||
<th class="d-none">Hiden ingredient group</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody class="d-none">
|
||||
<?php if($mode == "edit"): ?>
|
||||
<?php $__currentLoopData = $recipePositions; $__env->addLoop($__currentLoopData); foreach($__currentLoopData as $recipePosition): $__env->incrementLoopIndices(); $loop = $__env->getLastLoop(); ?>
|
||||
<tr>
|
||||
<td class="fit-content border-right">
|
||||
<a class="btn btn-sm btn-info recipe-pos-edit-button" href="#" data-recipe-pos-id="<?php echo e($recipePosition->id); ?>">
|
||||
<i class="fas fa-edit"></i>
|
||||
</a>
|
||||
<a class="btn btn-sm btn-danger recipe-pos-delete-button" href="#" data-recipe-pos-id="<?php echo e($recipePosition->id); ?>" data-recipe-pos-name="<?php echo e(FindObjectInArrayByPropertyValue($products, 'id', $recipePosition->product_id)->name); ?>">
|
||||
<i class="fas fa-trash"></i>
|
||||
</a>
|
||||
</td>
|
||||
<td>
|
||||
<?php echo e(FindObjectInArrayByPropertyValue($products, 'id', $recipePosition->product_id)->name); ?>
|
||||
|
||||
</td>
|
||||
<td>
|
||||
<?php
|
||||
$product = FindObjectInArrayByPropertyValue($products, 'id', $recipePosition->product_id);
|
||||
$productQuConversions = FindAllObjectsInArrayByPropertyValue($quantityUnitConversionsResolved, 'product_id', $product->id);
|
||||
$productQuConversions = FindAllObjectsInArrayByPropertyValue($productQuConversions, 'from_qu_id', $product->qu_id_stock);
|
||||
$productQuConversion = FindObjectInArrayByPropertyValue($productQuConversions, 'to_qu_id', $recipePosition->qu_id);
|
||||
if ($productQuConversion)
|
||||
{
|
||||
$recipePosition->amount = $recipePosition->amount * $productQuConversion->factor;
|
||||
}
|
||||
?>
|
||||
<?php if(!empty($recipePosition->variable_amount)): ?>
|
||||
<?php echo e($recipePosition->variable_amount); ?>
|
||||
|
||||
<?php else: ?>
|
||||
<span class="locale-number locale-number-quantity-amount"><?php if($recipePosition->amount == round($recipePosition->amount)): ?><?php echo e(round($recipePosition->amount)); ?><?php else: ?><?php echo e($recipePosition->amount); ?><?php endif; ?></span>
|
||||
<?php endif; ?>
|
||||
<?php echo e($__n($recipePosition->amount, FindObjectInArrayByPropertyValue($quantityunits, 'id', $recipePosition->qu_id)->name, FindObjectInArrayByPropertyValue($quantityunits, 'id', $recipePosition->qu_id)->name_plural)); ?>
|
||||
|
||||
</td>
|
||||
<td class="fit-content">
|
||||
<a class="btn btn-sm btn-info recipe-pos-show-note-button <?php if(empty($recipePosition->note)): ?> disabled <?php endif; ?>" href="#" data-toggle="tooltip" data-placement="top" title="<?php echo e($__t('Show notes')); ?>" data-recipe-pos-note="<?php echo e($recipePosition->note); ?>">
|
||||
<i class="fas fa-eye"></i>
|
||||
</a>
|
||||
</td>
|
||||
<td>
|
||||
<?php echo e($recipePosition->ingredient_group); ?>
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
<?php endforeach; $__env->popLoop(); $loop = $__env->getLastLoop(); ?>
|
||||
<?php endif; ?>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row mt-5">
|
||||
<div class="col">
|
||||
<h2>
|
||||
<?php echo e($__t('Included recipes')); ?>
|
||||
|
||||
<a id="recipe-include-add-button" class="btn btn-outline-dark" href="#">
|
||||
<i class="fas fa-plus"></i> <?php echo e($__t('Add')); ?>
|
||||
|
||||
</a>
|
||||
</h2>
|
||||
<table id="recipes-includes-table" class="table table-sm table-striped dt-responsive">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="border-right"></th>
|
||||
<th><?php echo e($__t('Recipe')); ?></th>
|
||||
<th><?php echo e($__t('Servings')); ?></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody class="d-none">
|
||||
<?php if($mode == "edit"): ?>
|
||||
<?php $__currentLoopData = $recipeNestings; $__env->addLoop($__currentLoopData); foreach($__currentLoopData as $recipeNesting): $__env->incrementLoopIndices(); $loop = $__env->getLastLoop(); ?>
|
||||
<tr>
|
||||
<td class="fit-content border-right">
|
||||
<a class="btn btn-sm btn-info recipe-include-edit-button" href="#" data-recipe-include-id="<?php echo e($recipeNesting->id); ?>" data-recipe-included-recipe-id="<?php echo e($recipeNesting->includes_recipe_id); ?>" data-recipe-included-recipe-servings="<?php echo e($recipeNesting->servings); ?>">
|
||||
<i class="fas fa-edit"></i>
|
||||
</a>
|
||||
<a class="btn btn-sm btn-danger recipe-include-delete-button" href="#" data-recipe-include-id="<?php echo e($recipeNesting->id); ?>" data-recipe-include-name="<?php echo e(FindObjectInArrayByPropertyValue($recipes, 'id', $recipeNesting->includes_recipe_id)->name); ?>">
|
||||
<i class="fas fa-trash"></i>
|
||||
</a>
|
||||
</td>
|
||||
<td>
|
||||
<?php echo e(FindObjectInArrayByPropertyValue($recipes, 'id', $recipeNesting->includes_recipe_id)->name); ?>
|
||||
|
||||
</td>
|
||||
<td>
|
||||
<?php echo e($recipeNesting->servings); ?>
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
<?php endforeach; $__env->popLoop(); $loop = $__env->getLastLoop(); ?>
|
||||
<?php endif; ?>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row mt-5">
|
||||
<div class="col">
|
||||
<label class="mt-2"><?php echo e($__t('Picture')); ?></label>
|
||||
<button id="delete-current-recipe-picture-button" class="btn btn-sm btn-danger <?php if(empty($recipe->picture_file_name)): ?> disabled <?php endif; ?>"><i class="fas fa-trash"></i> <?php echo e($__t('Delete')); ?></button>
|
||||
<?php if(!empty($recipe->picture_file_name)): ?>
|
||||
<p><img id="current-recipe-picture" data-src="<?php echo e($U('/api/files/recipepictures/' . base64_encode($recipe->picture_file_name) . '?force_serve_as=picture&best_fit_width=400')); ?>" class="img-fluid img-thumbnail mt-2 lazy"></p>
|
||||
<p id="delete-current-recipe-picture-on-save-hint" class="form-text text-muted font-italic d-none"><?php echo e($__t('The current picture will be deleted when you save the recipe')); ?></p>
|
||||
<?php else: ?>
|
||||
<p id="no-current-recipe-picture-hint" class="form-text text-muted font-italic"><?php echo e($__t('No picture available')); ?></p>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="modal fade" id="recipe-include-editform-modal" tabindex="-1">
|
||||
<div class="modal-dialog">
|
||||
<div class="modal-content text-center">
|
||||
<div class="modal-header">
|
||||
<h4 id="recipe-include-editform-title" class="modal-title w-100"></h4>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<form id="recipe-include-form" novalidate>
|
||||
|
||||
<?php echo $__env->make('components.recipepicker', array(
|
||||
'recipes' => $recipes,
|
||||
'isRequired' => true
|
||||
), \Illuminate\Support\Arr::except(get_defined_vars(), ['__data', '__path']))->render(); ?>
|
||||
|
||||
<?php echo $__env->make('components.numberpicker', array(
|
||||
'id' => 'includes_servings',
|
||||
'label' => 'Servings',
|
||||
'min' => 1,
|
||||
'value' => '1',
|
||||
'invalidFeedback' => $__t('This cannot be lower than %s', '1')
|
||||
), \Illuminate\Support\Arr::except(get_defined_vars(), ['__data', '__path']))->render(); ?>
|
||||
|
||||
</form>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-secondary" data-dismiss="modal"><?php echo e($__t('Cancel')); ?></button>
|
||||
<button id="save-recipe-include-button" data-dismiss="modal" class="btn btn-success"><?php echo e($__t('Save')); ?></button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<?php $__env->stopSection(); ?>
|
||||
|
||||
<?php echo $__env->make('layout.default', \Illuminate\Support\Arr::except(get_defined_vars(), ['__data', '__path']))->render(); ?><?php /**PATH /www/views/recipeform.blade.php ENDPATH**/ ?>
|
||||
|
|
@ -1,43 +0,0 @@
|
|||
<?php $__env->startPush('componentScripts'); ?>
|
||||
<script src="<?php echo e($U('/node_modules/chart.js/dist/Chart.min.js?v=', true)); ?><?php echo e($version); ?>"></script>
|
||||
<script src="<?php echo e($U('/viewjs/components/productcard.js', true)); ?>?v=<?php echo e($version); ?>"></script>
|
||||
<?php $__env->stopPush(); ?>
|
||||
|
||||
<div class="card">
|
||||
<div class="card-header">
|
||||
<i class="fab fa-product-hunt"></i> <?php echo e($__t('Product overview')); ?>
|
||||
|
||||
<a id="productcard-product-edit-button" class="btn btn-sm btn-outline-info py-0 float-right disabled" href="#" data-toggle="tooltip" title="<?php echo e($__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-2 float-right disabled show-as-dialog-link" href="#" data-toggle="tooltip" title="<?php echo e($__t('Stock journal for this product')); ?>">
|
||||
<i class="fas fa-file-alt"></i>
|
||||
</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"><?php echo e($__t('Show more')); ?></a>
|
||||
</div>
|
||||
|
||||
<strong><?php echo e($__t('Stock amount') . ' / ' . $__t('Quantity unit')); ?>:</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>
|
||||
<?php if(GROCY_FEATURE_FLAG_STOCK_LOCATION_TRACKING): ?><strong><?php echo e($__t('Location')); ?>:</strong> <span id="productcard-product-location"></span><br><?php endif; ?>
|
||||
<strong><?php echo e($__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><?php echo e($__t('Last used')); ?>:</strong> <span id="productcard-product-last-used"></span> <time id="productcard-product-last-used-timeago" class="timeago timeago-contextual"></time><br>
|
||||
<?php if(GROCY_FEATURE_FLAG_STOCK_PRICE_TRACKING): ?><strong><?php echo e($__t('Last price')); ?>:</strong> <span id="productcard-product-last-price"></span><br><?php endif; ?>
|
||||
<?php if(GROCY_FEATURE_FLAG_STOCK_BEST_BEFORE_DATE_TRACKING): ?><strong><?php echo e($__t('Average shelf life')); ?>:</strong> <span id="productcard-product-average-shelf-life"></span><br><?php endif; ?>
|
||||
<strong><?php echo e($__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>
|
||||
|
||||
<?php if(GROCY_FEATURE_FLAG_STOCK_PRICE_TRACKING): ?>
|
||||
<h5 class="mt-3"><?php echo e($__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"><?php echo e($__t('No price history available')); ?></span>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
</div>
|
||||
<?php /**PATH /www/views/components/productcard.blade.php ENDPATH**/ ?>
|
||||
|
|
@ -1,129 +0,0 @@
|
|||
<?php $__env->startSection('title', $__t('Tasks')); ?>
|
||||
<?php $__env->startSection('activeNav', 'tasks'); ?>
|
||||
<?php $__env->startSection('viewJsName', 'tasks'); ?>
|
||||
|
||||
<?php $__env->startPush('pageScripts'); ?>
|
||||
<script src="<?php echo e($U('/node_modules/jquery-ui-dist/jquery-ui.min.js?v=', true)); ?><?php echo e($version); ?>"></script>
|
||||
<script src="<?php echo e($U('/node_modules/datatables.net-rowgroup/js/dataTables.rowGroup.min.js?v=', true)); ?><?php echo e($version); ?>"></script>
|
||||
<script src="<?php echo e($U('/node_modules/datatables.net-rowgroup-bs4/js/rowGroup.bootstrap4.min.js?v=', true)); ?><?php echo e($version); ?>"></script>
|
||||
<?php $__env->stopPush(); ?>
|
||||
|
||||
<?php $__env->startPush('pageStyles'); ?>
|
||||
<link href="<?php echo e($U('/node_modules/datatables.net-rowgroup-bs4/css/rowGroup.bootstrap4.min.css?v=', true)); ?><?php echo e($version); ?>" rel="stylesheet">
|
||||
<?php $__env->stopPush(); ?>
|
||||
|
||||
<?php $__env->startSection('content'); ?>
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<h1>
|
||||
<?php echo $__env->yieldContent('title'); ?>
|
||||
<a class="btn btn-outline-dark responsive-button" href="<?php echo e($U('/task/new')); ?>">
|
||||
<i class="fas fa-plus"></i> <?php echo e($__t('Add')); ?>
|
||||
|
||||
</a>
|
||||
</h1>
|
||||
<p id="info-due-tasks" data-status-filter="duesoon" data-next-x-days="<?php echo e($nextXDays); ?>" class="btn btn-lg btn-warning status-filter-button responsive-button mr-2"></p>
|
||||
<p id="info-overdue-tasks" data-status-filter="overdue" class="btn btn-lg btn-danger status-filter-button responsive-button"></p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row mt-3">
|
||||
<div class="col-xs-12 col-md-6 col-xl-3">
|
||||
<label for="search"><?php echo e($__t('Search')); ?></label> <i class="fas fa-search"></i>
|
||||
<input type="text" class="form-control" id="search">
|
||||
</div>
|
||||
<div class="col-xs-12 col-md-6 col-xl-3">
|
||||
<label for="status-filter"><?php echo e($__t('Filter by status')); ?></label> <i class="fas fa-filter"></i>
|
||||
<select class="form-control" id="status-filter">
|
||||
<option class="bg-white" value="all"><?php echo e($__t('All')); ?></option>
|
||||
<option class="bg-warning" value="duesoon"><?php echo e($__t('Due soon')); ?></option>
|
||||
<option class="bg-danger" value="overdue"><?php echo e($__t('Overdue')); ?></option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-xs-12 col-md-6 col-xl-3 d-flex align-items-end">
|
||||
<div class="form-check">
|
||||
<input class="form-check-input" type="checkbox" id="show-done-tasks">
|
||||
<label class="form-check-label" for="show-done-tasks">
|
||||
<?php echo e($__t('Show done tasks')); ?>
|
||||
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<table id="tasks-table" class="table table-sm table-striped dt-responsive">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="border-right"></th>
|
||||
<th><?php echo e($__t('Task')); ?></th>
|
||||
<th><?php echo e($__t('Due')); ?></th>
|
||||
<th class="d-none">Hidden category</th>
|
||||
<th><?php echo e($__t('Assigned to')); ?></th>
|
||||
<th class="d-none">Hidden status</th>
|
||||
|
||||
<?php echo $__env->make('components.userfields_thead', array(
|
||||
'userfields' => $userfields
|
||||
), \Illuminate\Support\Arr::except(get_defined_vars(), ['__data', '__path']))->render(); ?>
|
||||
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody class="d-none">
|
||||
<?php $__currentLoopData = $tasks; $__env->addLoop($__currentLoopData); foreach($__currentLoopData as $task): $__env->incrementLoopIndices(); $loop = $__env->getLastLoop(); ?>
|
||||
<tr id="task-<?php echo e($task->id); ?>-row" class="<?php if($task->done == 1): ?> text-muted <?php endif; ?> <?php if(!empty($task->due_date) && $task->due_date < date('Y-m-d')): ?> table-danger <?php elseif(!empty($task->due_date) && $task->due_date < date('Y-m-d', strtotime("+$nextXDays days"))): ?> table-warning <?php endif; ?>">
|
||||
<td class="fit-content border-right">
|
||||
<?php if($task->done == 0): ?>
|
||||
<a class="btn btn-success btn-sm do-task-button" href="#" data-toggle="tooltip" data-placement="left" title="<?php echo e($__t('Mark task "%s" as completed', $task->name)); ?>"
|
||||
data-task-id="<?php echo e($task->id); ?>"
|
||||
data-task-name="<?php echo e($task->name); ?>">
|
||||
<i class="fas fa-check"></i>
|
||||
</a>
|
||||
<?php else: ?>
|
||||
<a class="btn btn-secondary btn-sm undo-task-button" href="#" data-toggle="tooltip" data-placement="left" title="<?php echo e($__t('Undo task "%s"', $task->name)); ?>"
|
||||
data-task-id="<?php echo e($task->id); ?>"
|
||||
data-task-name="<?php echo e($task->name); ?>">
|
||||
<i class="fas fa-undo"></i>
|
||||
</a>
|
||||
<?php endif; ?>
|
||||
<a class="btn btn-sm btn-danger delete-task-button" href="#"
|
||||
data-task-id="<?php echo e($task->id); ?>"
|
||||
data-task-name="<?php echo e($task->name); ?>">
|
||||
<i class="fas fa-trash"></i>
|
||||
</a>
|
||||
<a class="btn btn-info btn-sm" href="<?php echo e($U('/task/')); ?><?php echo e($task->id); ?>">
|
||||
<i class="fas fa-edit"></i>
|
||||
</a>
|
||||
</td>
|
||||
<td id="task-<?php echo e($task->id); ?>-name" class="<?php if($task->done == 1): ?> text-strike-through <?php endif; ?>">
|
||||
<?php echo e($task->name); ?>
|
||||
|
||||
</td>
|
||||
<td>
|
||||
<span><?php echo e($task->due_date); ?></span>
|
||||
<time class="timeago timeago-contextual" datetime="<?php echo e($task->due_date); ?>"></time>
|
||||
</td>
|
||||
<td class="d-none">
|
||||
<?php if($task->category_id != null): ?> <span><?php echo e(FindObjectInArrayByPropertyValue($taskCategories, 'id', $task->category_id)->name); ?></span> <?php else: ?> <span class="font-italic font-weight-light"><?php echo e($__t('Uncategorized')); ?></span><?php endif; ?>
|
||||
</td>
|
||||
<td>
|
||||
<?php if($task->assigned_to_user_id != null): ?> <span><?php echo e(GetUserDisplayName(FindObjectInArrayByPropertyValue($users, 'id', $task->assigned_to_user_id))); ?></span> <?php endif; ?>
|
||||
</td>
|
||||
<td class="d-none">
|
||||
<?php if($task->done == 1): ?> text-muted <?php endif; ?> <?php if(!empty($task->due_date) && $task->due_date < date('Y-m-d')): ?> overdue <?php elseif(!empty($task->due_date) && $task->due_date < date('Y-m-d', strtotime("+$nextXDays days"))): ?> duesoon <?php endif; ?>
|
||||
</td>
|
||||
|
||||
<?php echo $__env->make('components.userfields_tbody', array(
|
||||
'userfields' => $userfields,
|
||||
'userfieldValues' => FindAllObjectsInArrayByPropertyValue($userfieldValues, 'object_id', $task->id)
|
||||
), \Illuminate\Support\Arr::except(get_defined_vars(), ['__data', '__path']))->render(); ?>
|
||||
|
||||
</tr>
|
||||
<?php endforeach; $__env->popLoop(); $loop = $__env->getLastLoop(); ?>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<?php $__env->stopSection(); ?>
|
||||
|
||||
<?php echo $__env->make('layout.default', \Illuminate\Support\Arr::except(get_defined_vars(), ['__data', '__path']))->render(); ?><?php /**PATH /www/views/tasks.blade.php ENDPATH**/ ?>
|
||||
|
|
@ -1,27 +0,0 @@
|
|||
<?php if(count($userfields) > 0): ?>
|
||||
|
||||
<?php $__currentLoopData = $userfields; $__env->addLoop($__currentLoopData); foreach($__currentLoopData as $userfield): $__env->incrementLoopIndices(); $loop = $__env->getLastLoop(); ?>
|
||||
|
||||
<?php if($userfield->show_as_column_in_tables == 1): ?>
|
||||
<?php $userfieldObject = FindObjectInArrayByPropertyValue($userfieldValues, 'name', $userfield->name) ?>
|
||||
<td>
|
||||
<?php if($userfieldObject !== null): ?>
|
||||
<?php if($userfield->type == \Grocy\Services\UserfieldsService::USERFIELD_TYPE_CHECKBOX): ?>
|
||||
<?php if($userfieldObject->value == 1): ?><i class="fas fa-check"></i><?php endif; ?>
|
||||
<?php elseif($userfield->type == \Grocy\Services\UserfieldsService::USERFIELD_TYPE_PRESET_CHECKLIST): ?>
|
||||
<?php echo str_replace(',', '<br>', $userfieldObject->value); ?>
|
||||
|
||||
<?php elseif($userfield->type == \Grocy\Services\UserfieldsService::USERFIELD_TYPE_LINK): ?>
|
||||
<a href="<?php echo e($userfieldObject->value); ?>" target="_blank"><?php echo e($userfieldObject->value); ?></a>
|
||||
<?php else: ?>
|
||||
<?php echo e($userfieldObject->value); ?>
|
||||
|
||||
<?php endif; ?>
|
||||
<?php endif; ?>
|
||||
</td>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php endforeach; $__env->popLoop(); $loop = $__env->getLastLoop(); ?>
|
||||
|
||||
<?php endif; ?>
|
||||
<?php /**PATH /www/views/components/userfields_tbody.blade.php ENDPATH**/ ?>
|
||||
|
|
@ -1,242 +0,0 @@
|
|||
<?php $__env->startSection('title', $__t('Stock overview')); ?>
|
||||
<?php $__env->startSection('activeNav', 'stockoverview'); ?>
|
||||
<?php $__env->startSection('viewJsName', 'stockoverview'); ?>
|
||||
|
||||
<?php $__env->startPush('pageScripts'); ?>
|
||||
<script src="<?php echo e($U('/node_modules/jquery-ui-dist/jquery-ui.min.js?v=', true)); ?><?php echo e($version); ?>"></script>
|
||||
<script src="<?php echo e($U('/viewjs/purchase.js?v=', true)); ?><?php echo e($version); ?>"></script>
|
||||
<?php $__env->stopPush(); ?>
|
||||
|
||||
<?php $__env->startPush('pageStyles'); ?>
|
||||
<style>
|
||||
.product-name-cell[data-product-has-picture='true'] {
|
||||
cursor: pointer;
|
||||
}
|
||||
</style>
|
||||
<?php $__env->stopPush(); ?>
|
||||
|
||||
<?php $__env->startSection('content'); ?>
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<h1><?php echo $__env->yieldContent('title'); ?>
|
||||
<small id="info-current-stock" class="text-muted"></small>
|
||||
<a class="btn btn-outline-dark responsive-button" href="<?php echo e($U('/stockjournal')); ?>">
|
||||
<i class="fas fa-file-alt"></i> <?php echo e($__t('Journal')); ?>
|
||||
|
||||
</a>
|
||||
<?php if(GROCY_FEATURE_FLAG_STOCK_LOCATION_TRACKING): ?>
|
||||
<a class="btn btn-outline-dark responsive-button" href="<?php echo e($U('/locationcontentsheet')); ?>">
|
||||
<i class="fas fa-print"></i> <?php echo e($__t('Location Content Sheet')); ?>
|
||||
|
||||
</a>
|
||||
<?php endif; ?>
|
||||
</h1>
|
||||
<?php if(GROCY_FEATURE_FLAG_STOCK_BEST_BEFORE_DATE_TRACKING): ?>
|
||||
<p id="info-expiring-products" data-next-x-days="<?php echo e($nextXDays); ?>" data-status-filter="expiring" class="btn btn-lg btn-warning status-filter-button responsive-button mr-2"></p>
|
||||
<p id="info-expired-products" data-status-filter="expired" class="btn btn-lg btn-danger status-filter-button responsive-button mr-2"></p>
|
||||
<?php endif; ?>
|
||||
<p id="info-missing-products" data-status-filter="belowminstockamount" class="btn btn-lg btn-info status-filter-button responsive-button"></p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row mt-3">
|
||||
<div class="col-xs-12 col-md-6 col-xl-3">
|
||||
<label for="search"><?php echo e($__t('Search')); ?></label> <i class="fas fa-search"></i>
|
||||
<input type="text" class="form-control" id="search">
|
||||
</div>
|
||||
<?php if(GROCY_FEATURE_FLAG_STOCK_LOCATION_TRACKING): ?>
|
||||
<div class="col-xs-12 col-md-6 col-xl-3">
|
||||
<label for="location-filter"><?php echo e($__t('Filter by location')); ?></label> <i class="fas fa-filter"></i>
|
||||
<select class="form-control" id="location-filter">
|
||||
<option value="all"><?php echo e($__t('All')); ?></option>
|
||||
<?php $__currentLoopData = $locations; $__env->addLoop($__currentLoopData); foreach($__currentLoopData as $location): $__env->incrementLoopIndices(); $loop = $__env->getLastLoop(); ?>
|
||||
<option value="<?php echo e($location->name); ?>"><?php echo e($location->name); ?></option>
|
||||
<?php endforeach; $__env->popLoop(); $loop = $__env->getLastLoop(); ?>
|
||||
</select>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
<div class="col-xs-12 col-md-6 col-xl-3">
|
||||
<label for="location-filter"><?php echo e($__t('Filter by product group')); ?></label> <i class="fas fa-filter"></i>
|
||||
<select class="form-control" id="product-group-filter">
|
||||
<option value="all"><?php echo e($__t('All')); ?></option>
|
||||
<?php $__currentLoopData = $productGroups; $__env->addLoop($__currentLoopData); foreach($__currentLoopData as $productGroup): $__env->incrementLoopIndices(); $loop = $__env->getLastLoop(); ?>
|
||||
<option value="<?php echo e($productGroup->name); ?>"><?php echo e($productGroup->name); ?></option>
|
||||
<?php endforeach; $__env->popLoop(); $loop = $__env->getLastLoop(); ?>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-xs-12 col-md-6 col-xl-3">
|
||||
<label for="status-filter"><?php echo e($__t('Filter by status')); ?></label> <i class="fas fa-filter"></i>
|
||||
<select class="form-control" id="status-filter">
|
||||
<option class="bg-white" value="all"><?php echo e($__t('All')); ?></option>
|
||||
<?php if(GROCY_FEATURE_FLAG_STOCK_BEST_BEFORE_DATE_TRACKING): ?>
|
||||
<option class="bg-warning" value="expiring"><?php echo e($__t('Expiring soon')); ?></option>
|
||||
<option class="bg-danger" value="expired"><?php echo e($__t('Already expired')); ?></option>
|
||||
<?php endif; ?>
|
||||
<option class="bg-info" value="belowminstockamount"><?php echo e($__t('Below min. stock amount')); ?></option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<table id="stock-overview-table" class="table table-sm table-striped dt-responsive">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="border-right"></th>
|
||||
<th><?php echo e($__t('Product')); ?></th>
|
||||
<th><?php echo e($__t('Amount')); ?></th>
|
||||
<th><?php echo e($__t('Next best before date')); ?></th>
|
||||
<th class="d-none">Hidden location</th>
|
||||
<th class="d-none">Hidden status</th>
|
||||
<th class="d-none">Hidden product group</th>
|
||||
|
||||
<?php echo $__env->make('components.userfields_thead', array(
|
||||
'userfields' => $userfields
|
||||
), \Illuminate\Support\Arr::except(get_defined_vars(), ['__data', '__path']))->render(); ?>
|
||||
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody class="d-none">
|
||||
<?php $__currentLoopData = $currentStock; $__env->addLoop($__currentLoopData); foreach($__currentLoopData as $currentStockEntry): $__env->incrementLoopIndices(); $loop = $__env->getLastLoop(); ?>
|
||||
<tr id="product-<?php echo e($currentStockEntry->product_id); ?>-row" class="<?php if(GROCY_FEATURE_FLAG_STOCK_BEST_BEFORE_DATE_TRACKING && $currentStockEntry->best_before_date < date('Y-m-d 23:59:59', strtotime('-1 days')) && $currentStockEntry->amount > 0): ?> table-danger <?php elseif(GROCY_FEATURE_FLAG_STOCK_BEST_BEFORE_DATE_TRACKING && $currentStockEntry->best_before_date < date('Y-m-d 23:59:59', strtotime("+$nextXDays days")) && $currentStockEntry->amount > 0): ?> table-warning <?php elseif(FindObjectInArrayByPropertyValue($missingProducts, 'id', $currentStockEntry->product_id) !== null): ?> table-info <?php endif; ?>">
|
||||
<td class="fit-content border-right">
|
||||
<a class="btn btn-success btn-sm product-consume-button <?php if($currentStockEntry->amount < 1): ?> disabled <?php endif; ?>" href="#" data-toggle="tooltip" data-placement="left" title="<?php echo e($__t('Consume %1$s of %2$s', '1 ' . FindObjectInArrayByPropertyValue($quantityunits, 'id', FindObjectInArrayByPropertyValue($products, 'id', $currentStockEntry->product_id)->qu_id_stock)->name, FindObjectInArrayByPropertyValue($products, 'id', $currentStockEntry->product_id)->name)); ?>"
|
||||
data-product-id="<?php echo e($currentStockEntry->product_id); ?>"
|
||||
data-product-name="<?php echo e(FindObjectInArrayByPropertyValue($products, 'id', $currentStockEntry->product_id)->name); ?>"
|
||||
data-product-qu-name="<?php echo e(FindObjectInArrayByPropertyValue($quantityunits, 'id', FindObjectInArrayByPropertyValue($products, 'id', $currentStockEntry->product_id)->qu_id_stock)->name); ?>"
|
||||
data-consume-amount="1">
|
||||
<i class="fas fa-utensils"></i> 1
|
||||
</a>
|
||||
<a id="product-<?php echo e($currentStockEntry->product_id); ?>-consume-all-button" class="btn btn-danger btn-sm product-consume-button <?php if($currentStockEntry->amount == 0): ?> disabled <?php endif; ?>" href="#" data-toggle="tooltip" data-placement="right" title="<?php echo e($__t('Consume all %s which are currently in stock', FindObjectInArrayByPropertyValue($products, 'id', $currentStockEntry->product_id)->name)); ?>"
|
||||
data-product-id="<?php echo e($currentStockEntry->product_id); ?>"
|
||||
data-product-name="<?php echo e(FindObjectInArrayByPropertyValue($products, 'id', $currentStockEntry->product_id)->name); ?>"
|
||||
data-product-qu-name="<?php echo e(FindObjectInArrayByPropertyValue($quantityunits, 'id', FindObjectInArrayByPropertyValue($products, 'id', $currentStockEntry->product_id)->qu_id_stock)->name); ?>"
|
||||
data-consume-amount="<?php echo e($currentStockEntry->amount); ?>">
|
||||
<i class="fas fa-utensils"></i> <?php echo e($__t('All')); ?>
|
||||
|
||||
</a>
|
||||
<?php if(GROCY_FEATURE_FLAG_STOCK_PRODUCT_OPENED_TRACKING): ?>
|
||||
<a class="btn btn-success btn-sm product-open-button <?php if($currentStockEntry->amount < 1 || $currentStockEntry->amount == $currentStockEntry->amount_opened): ?> disabled <?php endif; ?>" href="#" data-toggle="tooltip" data-placement="left" title="<?php echo e($__t('Mark %1$s of %2$s as open', '1 ' . FindObjectInArrayByPropertyValue($quantityunits, 'id', FindObjectInArrayByPropertyValue($products, 'id', $currentStockEntry->product_id)->qu_id_stock)->name, FindObjectInArrayByPropertyValue($products, 'id', $currentStockEntry->product_id)->name)); ?>"
|
||||
data-product-id="<?php echo e($currentStockEntry->product_id); ?>"
|
||||
data-product-name="<?php echo e(FindObjectInArrayByPropertyValue($products, 'id', $currentStockEntry->product_id)->name); ?>"
|
||||
data-product-qu-name="<?php echo e(FindObjectInArrayByPropertyValue($quantityunits, 'id', FindObjectInArrayByPropertyValue($products, 'id', $currentStockEntry->product_id)->qu_id_stock)->name); ?>">
|
||||
<i class="fas fa-box-open"></i> 1
|
||||
</a>
|
||||
<?php endif; ?>
|
||||
<div class="dropdown d-inline-block">
|
||||
<button class="btn btn-sm btn-light text-secondary" type="button" data-toggle="dropdown">
|
||||
<i class="fas fa-ellipsis-v"></i>
|
||||
</button>
|
||||
<div class="dropdown-menu">
|
||||
<a class="dropdown-item product-add-to-shopping-list-button" type="button" href="#"
|
||||
data-product-id="<?php echo e($currentStockEntry->product_id); ?>">
|
||||
<i class="fas fa-shopping-cart"></i> <?php echo e($__t('Add to shopping list')); ?>
|
||||
|
||||
</a>
|
||||
<div class="dropdown-divider"></div>
|
||||
<a class="dropdown-item product-purchase-button" type="button" href="#"
|
||||
data-product-id="<?php echo e($currentStockEntry->product_id); ?>">
|
||||
<i class="fas fa-shopping-cart"></i> <?php echo e($__t('Purchase')); ?>
|
||||
|
||||
</a>
|
||||
<a class="dropdown-item product-consume-custom-amount-button <?php if($currentStockEntry->amount < 1): ?> disabled <?php endif; ?>" type="button" href="#"
|
||||
data-product-id="<?php echo e($currentStockEntry->product_id); ?>">
|
||||
<i class="fas fa-utensils"></i> <?php echo e($__t('Consume')); ?>
|
||||
|
||||
</a>
|
||||
<a class="dropdown-item product-inventory-button" type="button" href="#"
|
||||
data-product-id="<?php echo e($currentStockEntry->product_id); ?>">
|
||||
<i class="fas fa-list"></i> <?php echo e($__t('Inventory')); ?>
|
||||
|
||||
</a>
|
||||
<div class="dropdown-divider"></div>
|
||||
<a class="dropdown-item product-name-cell" data-product-id="<?php echo e($currentStockEntry->product_id); ?>" type="button" href="#">
|
||||
<i class="fas fa-info"></i> <?php echo e($__t('Show product details')); ?>
|
||||
|
||||
</a>
|
||||
<a class="dropdown-item" type="button" href="<?php echo e($U('/stockjournal?product=')); ?><?php echo e($currentStockEntry->product_id); ?>">
|
||||
<i class="fas fa-file-alt"></i> <?php echo e($__t('Stock journal for this product')); ?>
|
||||
|
||||
</a>
|
||||
<a class="dropdown-item" type="button" href="<?php echo e($U('/product/')); ?><?php echo e($currentStockEntry->product_id . '?returnto=%2Fstockoverview'); ?>">
|
||||
<i class="fas fa-edit"></i> <?php echo e($__t('Edit product')); ?>
|
||||
|
||||
</a>
|
||||
<div class="dropdown-divider"></div>
|
||||
<a class="dropdown-item product-consume-button product-consume-button-spoiled <?php if($currentStockEntry->amount < 1): ?> disabled <?php endif; ?>" type="button" href="#"
|
||||
data-product-id="<?php echo e($currentStockEntry->product_id); ?>"
|
||||
data-product-name="<?php echo e(FindObjectInArrayByPropertyValue($products, 'id', $currentStockEntry->product_id)->name); ?>"
|
||||
data-product-qu-name="<?php echo e(FindObjectInArrayByPropertyValue($quantityunits, 'id', FindObjectInArrayByPropertyValue($products, 'id', $currentStockEntry->product_id)->qu_id_stock)->name); ?>"
|
||||
data-consume-amount="1">
|
||||
<i class="fas fa-utensils"></i> <?php echo e($__t('Consume %1$s of %2$s as spoiled', '1 ' . FindObjectInArrayByPropertyValue($quantityunits, 'id', FindObjectInArrayByPropertyValue($products, 'id', $currentStockEntry->product_id)->qu_id_stock)->name, FindObjectInArrayByPropertyValue($products, 'id', $currentStockEntry->product_id)->name)); ?>
|
||||
|
||||
</a>
|
||||
<?php if(GROCY_FEATURE_FLAG_RECIPES): ?>
|
||||
<a class="dropdown-item" type="button" href="<?php echo e($U('/recipes?search=')); ?><?php echo e(FindObjectInArrayByPropertyValue($products, 'id', $currentStockEntry->product_id)->name); ?>">
|
||||
<i class="fas fa-cocktail"></i> <?php echo e($__t('Search for recipes containing this product')); ?>
|
||||
|
||||
</a>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
<td class="product-name-cell cursor-link" data-product-id="<?php echo e($currentStockEntry->product_id); ?>">
|
||||
<?php echo e(FindObjectInArrayByPropertyValue($products, 'id', $currentStockEntry->product_id)->name); ?>
|
||||
|
||||
</td>
|
||||
<td>
|
||||
<span id="product-<?php echo e($currentStockEntry->product_id); ?>-amount" class="locale-number locale-number-quantity-amount"><?php echo e($currentStockEntry->amount); ?></span> <span id="product-<?php echo e($currentStockEntry->product_id); ?>-qu-name"><?php echo e($__n($currentStockEntry->amount, FindObjectInArrayByPropertyValue($quantityunits, 'id', FindObjectInArrayByPropertyValue($products, 'id', $currentStockEntry->product_id)->qu_id_stock)->name, FindObjectInArrayByPropertyValue($quantityunits, 'id', FindObjectInArrayByPropertyValue($products, 'id', $currentStockEntry->product_id)->qu_id_stock)->name_plural)); ?></span>
|
||||
<span id="product-<?php echo e($currentStockEntry->product_id); ?>-opened-amount" class="small font-italic"><?php if($currentStockEntry->amount_opened > 0): ?><?php echo e($__t('%s opened', $currentStockEntry->amount_opened)); ?><?php endif; ?></span>
|
||||
<?php if($currentStockEntry->is_aggregated_amount == 1): ?>
|
||||
<span class="pl-1 text-secondary">
|
||||
<i class="fas fa-custom-sigma-sign"></i> <span id="product-<?php echo e($currentStockEntry->product_id); ?>-amount-aggregated" class="locale-number locale-number-quantity-amount"><?php echo e($currentStockEntry->amount_aggregated); ?></span> <?php echo e($__n($currentStockEntry->amount_aggregated, FindObjectInArrayByPropertyValue($quantityunits, 'id', FindObjectInArrayByPropertyValue($products, 'id', $currentStockEntry->product_id)->qu_id_stock)->name, FindObjectInArrayByPropertyValue($quantityunits, 'id', FindObjectInArrayByPropertyValue($products, 'id', $currentStockEntry->product_id)->qu_id_stock)->name_plural)); ?>
|
||||
|
||||
<?php if($currentStockEntry->amount_opened_aggregated > 0): ?><span id="product-<?php echo e($currentStockEntry->product_id); ?>-opened-amount-aggregated" class="small font-italic"><?php echo e($__t('%s opened', $currentStockEntry->amount_opened_aggregated)); ?></span><?php endif; ?>
|
||||
</span>
|
||||
<?php endif; ?>
|
||||
</td>
|
||||
<td>
|
||||
<span id="product-<?php echo e($currentStockEntry->product_id); ?>-next-best-before-date"><?php echo e($currentStockEntry->best_before_date); ?></span>
|
||||
<time id="product-<?php echo e($currentStockEntry->product_id); ?>-next-best-before-date-timeago" class="timeago timeago-contextual" datetime="<?php echo e($currentStockEntry->best_before_date); ?> 23:59:59"></time>
|
||||
</td>
|
||||
<td class="d-none">
|
||||
<?php $__currentLoopData = FindAllObjectsInArrayByPropertyValue($currentStockLocations, 'product_id', $currentStockEntry->product_id); $__env->addLoop($__currentLoopData); foreach($__currentLoopData as $locationsForProduct): $__env->incrementLoopIndices(); $loop = $__env->getLastLoop(); ?>
|
||||
<?php echo e(FindObjectInArrayByPropertyValue($locations, 'id', $locationsForProduct->location_id)->name); ?>
|
||||
|
||||
<?php endforeach; $__env->popLoop(); $loop = $__env->getLastLoop(); ?>
|
||||
</td>
|
||||
<td class="d-none">
|
||||
<?php if($currentStockEntry->best_before_date < date('Y-m-d 23:59:59', strtotime('-1 days')) && $currentStockEntry->amount > 0): ?> expired <?php elseif($currentStockEntry->best_before_date < date('Y-m-d 23:59:59', strtotime("+$nextXDays days")) && $currentStockEntry->amount > 0): ?> expiring <?php endif; ?> <?php if(FindObjectInArrayByPropertyValue($missingProducts, 'id', $currentStockEntry->product_id) !== null): ?> belowminstockamount <?php endif; ?>
|
||||
</td>
|
||||
<?php $productGroup = FindObjectInArrayByPropertyValue($productGroups, 'id', FindObjectInArrayByPropertyValue($products, 'id', $currentStockEntry->product_id)->product_group_id) ?>
|
||||
<td class="d-none">
|
||||
<?php if($productGroup !== null): ?><?php echo e($productGroup->name); ?><?php endif; ?>
|
||||
</td>
|
||||
|
||||
<?php echo $__env->make('components.userfields_tbody', array(
|
||||
'userfields' => $userfields,
|
||||
'userfieldValues' => FindAllObjectsInArrayByPropertyValue($userfieldValues, 'object_id', $currentStockEntry->product_id)
|
||||
), \Illuminate\Support\Arr::except(get_defined_vars(), ['__data', '__path']))->render(); ?>
|
||||
|
||||
</tr>
|
||||
<?php endforeach; $__env->popLoop(); $loop = $__env->getLastLoop(); ?>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="modal fade" id="stockoverview-productcard-modal" tabindex="-1">
|
||||
<div class="modal-dialog">
|
||||
<div class="modal-content text-center">
|
||||
<div class="modal-body">
|
||||
<?php echo $__env->make('components.productcard', \Illuminate\Support\Arr::except(get_defined_vars(), ['__data', '__path']))->render(); ?>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-secondary" data-dismiss="modal"><?php echo e($__t('Close')); ?></button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<?php $__env->stopSection(); ?>
|
||||
|
||||
<?php echo $__env->make('layout.default', \Illuminate\Support\Arr::except(get_defined_vars(), ['__data', '__path']))->render(); ?><?php /**PATH /www/views/stockoverview.blade.php ENDPATH**/ ?>
|
||||
|
|
@ -1,130 +0,0 @@
|
|||
<?php $__env->startSection('title', $__t('Batteries overview')); ?>
|
||||
<?php $__env->startSection('activeNav', 'batteriesoverview'); ?>
|
||||
<?php $__env->startSection('viewJsName', 'batteriesoverview'); ?>
|
||||
|
||||
<?php $__env->startPush('pageScripts'); ?>
|
||||
<script src="<?php echo e($U('/node_modules/jquery-ui-dist/jquery-ui.min.js?v=', true)); ?><?php echo e($version); ?>"></script>
|
||||
<?php $__env->stopPush(); ?>
|
||||
|
||||
<?php $__env->startSection('content'); ?>
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<h1><?php echo $__env->yieldContent('title'); ?>
|
||||
<a class="btn btn-outline-dark responsive-button" href="<?php echo e($U('/batteriesjournal')); ?>">
|
||||
<i class="fas fa-file-alt"></i> <?php echo e($__t('Journal')); ?>
|
||||
|
||||
</a>
|
||||
</h1>
|
||||
<p id="info-due-batteries" data-status-filter="duesoon" data-next-x-days="<?php echo e($nextXDays); ?>" class="btn btn-lg btn-warning status-filter-button responsive-button mr-2"></p>
|
||||
<p id="info-overdue-batteries" data-status-filter="overdue" class="btn btn-lg btn-danger status-filter-button responsive-button"></p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row mt-3">
|
||||
<div class="col-xs-12 col-md-6 col-xl-3">
|
||||
<label for="search"><?php echo e($__t('Search')); ?></label> <i class="fas fa-search"></i>
|
||||
<input type="text" class="form-control" id="search">
|
||||
</div>
|
||||
<div class="col-xs-12 col-md-6 col-xl-3">
|
||||
<label for="status-filter"><?php echo e($__t('Filter by status')); ?></label> <i class="fas fa-filter"></i>
|
||||
<select class="form-control" id="status-filter">
|
||||
<option class="bg-white" value="all"><?php echo e($__t('All')); ?></option>
|
||||
<option class="bg-warning" value="duesoon"><?php echo e($__t('Due soon')); ?></option>
|
||||
<option class="bg-danger" value="overdue"><?php echo e($__t('Overdue')); ?></option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
<table id="batteries-overview-table" class="table table-sm table-striped dt-responsive">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="border-right"></th>
|
||||
<th><?php echo e($__t('Battery')); ?></th>
|
||||
<th><?php echo e($__t('Last charged')); ?></th>
|
||||
<th><?php echo e($__t('Next planned charge cycle')); ?></th>
|
||||
<th class="d-none">Hidden status</th>
|
||||
|
||||
<?php echo $__env->make('components.userfields_thead', array(
|
||||
'userfields' => $userfields
|
||||
), \Illuminate\Support\Arr::except(get_defined_vars(), ['__data', '__path']))->render(); ?>
|
||||
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody class="d-none">
|
||||
<?php $__currentLoopData = $current; $__env->addLoop($__currentLoopData); foreach($__currentLoopData as $curentBatteryEntry): $__env->incrementLoopIndices(); $loop = $__env->getLastLoop(); ?>
|
||||
<tr id="battery-<?php echo e($curentBatteryEntry->battery_id); ?>-row" class="<?php if(FindObjectInArrayByPropertyValue($batteries, 'id', $curentBatteryEntry->battery_id)->charge_interval_days > 0 && $curentBatteryEntry->next_estimated_charge_time < date('Y-m-d H:i:s')): ?> table-danger <?php elseif(FindObjectInArrayByPropertyValue($batteries, 'id', $curentBatteryEntry->battery_id)->charge_interval_days > 0 && $curentBatteryEntry->next_estimated_charge_time < date('Y-m-d H:i:s', strtotime("+$nextXDays days"))): ?> table-warning <?php endif; ?>">
|
||||
<td class="fit-content border-right">
|
||||
<a class="btn btn-success btn-sm track-charge-cycle-button" href="#" data-toggle="tooltip" data-placement="left" title="<?php echo e($__t('Track charge cycle of battery %s', FindObjectInArrayByPropertyValue($batteries, 'id', $curentBatteryEntry->battery_id)->name)); ?>"
|
||||
data-battery-id="<?php echo e($curentBatteryEntry->battery_id); ?>"
|
||||
data-battery-name="<?php echo e(FindObjectInArrayByPropertyValue($batteries, 'id', $curentBatteryEntry->battery_id)->name); ?>">
|
||||
<i class="fas fa-fire"></i>
|
||||
</a>
|
||||
<div class="dropdown d-inline-block">
|
||||
<button class="btn btn-sm btn-light text-secondary" type="button" data-toggle="dropdown">
|
||||
<i class="fas fa-ellipsis-v"></i>
|
||||
</button>
|
||||
<div class="dropdown-menu">
|
||||
<a class="dropdown-item battery-name-cell" data-chore-id="<?php echo e($curentBatteryEntry->battery_id); ?>" type="button" href="#">
|
||||
<i class="fas fa-info"></i> <?php echo e($__t('Show battery details')); ?>
|
||||
|
||||
</a>
|
||||
<a class="dropdown-item" type="button" href="<?php echo e($U('/batteriesjournal?battery=')); ?><?php echo e($curentBatteryEntry->battery_id); ?>">
|
||||
<i class="fas fa-file-alt"></i> <?php echo e($__t('Journal for this battery')); ?>
|
||||
|
||||
</a>
|
||||
<a class="dropdown-item" type="button" href="<?php echo e($U('/battery/')); ?><?php echo e($curentBatteryEntry->battery_id); ?>">
|
||||
<i class="fas fa-edit"></i> <?php echo e($__t('Edit battery')); ?>
|
||||
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
<td class="battery-name-cell cursor-link" data-battery-id="<?php echo e($curentBatteryEntry->battery_id); ?>">
|
||||
<?php echo e(FindObjectInArrayByPropertyValue($batteries, 'id', $curentBatteryEntry->battery_id)->name); ?>
|
||||
|
||||
</td>
|
||||
<td>
|
||||
<span id="battery-<?php echo e($curentBatteryEntry->battery_id); ?>-last-tracked-time"><?php echo e($curentBatteryEntry->last_tracked_time); ?></span>
|
||||
<time id="battery-<?php echo e($curentBatteryEntry->battery_id); ?>-last-tracked-time-timeago" class="timeago timeago-contextual" datetime="<?php echo e($curentBatteryEntry->last_tracked_time); ?>"></time>
|
||||
</td>
|
||||
<td>
|
||||
<?php if(FindObjectInArrayByPropertyValue($batteries, 'id', $curentBatteryEntry->battery_id)->charge_interval_days > 0): ?>
|
||||
<span id="battery-<?php echo e($curentBatteryEntry->battery_id); ?>-next-charge-time"><?php echo e($curentBatteryEntry->next_estimated_charge_time); ?></span>
|
||||
<time id="battery-<?php echo e($curentBatteryEntry->battery_id); ?>-next-charge-time-timeago" class="timeago timeago-contextual" datetime="<?php echo e($curentBatteryEntry->next_estimated_charge_time); ?>"></time>
|
||||
<?php else: ?>
|
||||
...
|
||||
<?php endif; ?>
|
||||
</td>
|
||||
<td class="d-none">
|
||||
"<?php if(FindObjectInArrayByPropertyValue($batteries, 'id', $curentBatteryEntry->battery_id)->charge_interval_days > 0 && $curentBatteryEntry->next_estimated_charge_time < date('Y-m-d H:i:s')): ?> overdue <?php elseif(FindObjectInArrayByPropertyValue($batteries, 'id', $curentBatteryEntry->battery_id)->charge_interval_days > 0 && $curentBatteryEntry->next_estimated_charge_time < date('Y-m-d H:i:s', strtotime("+$nextXDays days"))): ?> duesoon <?php endif; ?>
|
||||
</td>
|
||||
|
||||
<?php echo $__env->make('components.userfields_tbody', array(
|
||||
'userfields' => $userfields,
|
||||
'userfieldValues' => FindAllObjectsInArrayByPropertyValue($userfieldValues, 'object_id', $curentBatteryEntry->battery_id)
|
||||
), \Illuminate\Support\Arr::except(get_defined_vars(), ['__data', '__path']))->render(); ?>
|
||||
|
||||
</tr>
|
||||
<?php endforeach; $__env->popLoop(); $loop = $__env->getLastLoop(); ?>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="modal fade" id="batteriesoverview-batterycard-modal" tabindex="-1">
|
||||
<div class="modal-dialog">
|
||||
<div class="modal-content text-center">
|
||||
<div class="modal-body">
|
||||
<?php echo $__env->make('components.batterycard', \Illuminate\Support\Arr::except(get_defined_vars(), ['__data', '__path']))->render(); ?>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-secondary" data-dismiss="modal"><?php echo e($__t('Close')); ?></button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<?php $__env->stopSection(); ?>
|
||||
|
||||
<?php echo $__env->make('layout.default', \Illuminate\Support\Arr::except(get_defined_vars(), ['__data', '__path']))->render(); ?><?php /**PATH /www/views/batteriesoverview.blade.php ENDPATH**/ ?>
|
||||
|
|
@ -1,23 +0,0 @@
|
|||
<?php $__env->startPush('componentScripts'); ?>
|
||||
<script src="<?php echo e($U('/viewjs/components/batterycard.js', true)); ?>?v=<?php echo e($version); ?>"></script>
|
||||
<?php $__env->stopPush(); ?>
|
||||
|
||||
<div class="card">
|
||||
<div class="card-header">
|
||||
<i class="fas fa-battery-three-quarters"></i> <?php echo e($__t('Battery overview')); ?>
|
||||
|
||||
<a id="batterycard-battery-edit-button" class="btn btn-sm btn-outline-info py-0 float-right disabled" href="#" data-toggle="tooltip" title="<?php echo e($__t('Edit battery')); ?>">
|
||||
<i class="fas fa-edit"></i>
|
||||
</a>
|
||||
<a id="batterycard-battery-journal-button" class="btn btn-sm btn-outline-secondary py-0 mr-2 float-right disabled show-as-dialog-link" href="#" data-toggle="tooltip" title="<?php echo e($__t('Journal for this battery')); ?>">
|
||||
<i class="fas fa-file-alt"></i>
|
||||
</a>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<h3><span id="batterycard-battery-name"></span></h3>
|
||||
<strong><?php echo e($__t('Used in')); ?>:</strong> <span id="batterycard-battery-used_in"></span><br>
|
||||
<strong><?php echo e($__t('Charge cycles count')); ?>:</strong> <span id="batterycard-battery-charge-cycles-count" class="locale-number locale-number-generic"></span><br>
|
||||
<strong><?php echo e($__t('Last charged')); ?>:</strong> <span id="batterycard-battery-last-charged"></span> <time id="batterycard-battery-last-charged-timeago" class="timeago timeago-contextual"></time><br>
|
||||
</div>
|
||||
</div>
|
||||
<?php /**PATH /www/views/components/batterycard.blade.php ENDPATH**/ ?>
|
||||
|
|
@ -1,20 +0,0 @@
|
|||
<?php $__env->startPush('componentScripts'); ?>
|
||||
<script src="<?php echo e($U('/viewjs/components/locationpicker.js', true)); ?>?v=<?php echo e($version); ?>"></script>
|
||||
<?php $__env->stopPush(); ?>
|
||||
|
||||
<?php if(empty($prefillByName)) { $prefillByName = ''; } ?>
|
||||
<?php if(empty($prefillById)) { $prefillById = ''; } ?>
|
||||
<?php if(!isset($isRequired)) { $isRequired = true; } ?>
|
||||
<?php if(empty($hint)) { $hint = ''; } ?>
|
||||
|
||||
<div class="form-group" data-next-input-selector="<?php echo e($nextInputSelector); ?>" data-prefill-by-name="<?php echo e($prefillByName); ?>" data-prefill-by-id="<?php echo e($prefillById); ?>">
|
||||
<label for="location_id"><?php echo e($__t('Location')); ?> <span id="<?php echo e($hintId); ?>" class="small text-muted"><?php echo e($hint); ?></span></label>
|
||||
<select class="form-control location-combobox" id="location_id" name="location_id" <?php if($isRequired): ?> required <?php endif; ?>>
|
||||
<option value=""></option>
|
||||
<?php $__currentLoopData = $locations; $__env->addLoop($__currentLoopData); foreach($__currentLoopData as $location): $__env->incrementLoopIndices(); $loop = $__env->getLastLoop(); ?>
|
||||
<option value="<?php echo e($location->id); ?>"><?php echo e($location->name); ?></option>
|
||||
<?php endforeach; $__env->popLoop(); $loop = $__env->getLastLoop(); ?>
|
||||
</select>
|
||||
<div class="invalid-feedback"><?php echo e($__t('You have to select a location')); ?></div>
|
||||
</div>
|
||||
<?php /**PATH /www/views/components/locationpicker.blade.php ENDPATH**/ ?>
|
||||
|
|
@ -1,95 +0,0 @@
|
|||
<?php $__env->startSection('title', $__t('Purchase')); ?>
|
||||
<?php $__env->startSection('activeNav', 'purchase'); ?>
|
||||
<?php $__env->startSection('viewJsName', 'purchase'); ?>
|
||||
|
||||
<?php $__env->startSection('content'); ?>
|
||||
<div class="row">
|
||||
<div class="col-xs-12 col-md-6 col-xl-4 pb-3">
|
||||
<h1><?php echo $__env->yieldContent('title'); ?></h1>
|
||||
|
||||
<form id="purchase-form" novalidate>
|
||||
|
||||
<?php echo $__env->make('components.productpicker', array(
|
||||
'products' => $products,
|
||||
'nextInputSelector' => '#best_before_date .datetimepicker-input'
|
||||
), \Illuminate\Support\Arr::except(get_defined_vars(), ['__data', '__path']))->render(); ?>
|
||||
|
||||
<?php
|
||||
$additionalGroupCssClasses = '';
|
||||
if (!GROCY_FEATURE_FLAG_STOCK_BEST_BEFORE_DATE_TRACKING)
|
||||
{
|
||||
$additionalGroupCssClasses = 'd-none';
|
||||
}
|
||||
?>
|
||||
<?php echo $__env->make('components.datetimepicker', array(
|
||||
'id' => 'best_before_date',
|
||||
'label' => 'Best before',
|
||||
'format' => 'YYYY-MM-DD',
|
||||
'initWithNow' => false,
|
||||
'limitEndToNow' => false,
|
||||
'limitStartToNow' => false,
|
||||
'invalidFeedback' => $__t('A best before date is required'),
|
||||
'nextInputSelector' => '#amount',
|
||||
'additionalCssClasses' => 'date-only-datetimepicker',
|
||||
'shortcutValue' => '2999-12-31',
|
||||
'shortcutLabel' => 'Never expires',
|
||||
'earlierThanInfoLimit' => date('Y-m-d'),
|
||||
'earlierThanInfoText' => $__t('The given date is earlier than today, are you sure?'),
|
||||
'additionalGroupCssClasses' => $additionalGroupCssClasses
|
||||
), \Illuminate\Support\Arr::except(get_defined_vars(), ['__data', '__path']))->render(); ?>
|
||||
<?php $additionalGroupCssClasses = ''; ?>
|
||||
|
||||
<?php echo $__env->make('components.numberpicker', array(
|
||||
'id' => 'amount',
|
||||
'label' => 'Amount',
|
||||
'hintId' => 'amount_qu_unit',
|
||||
'min' => 1,
|
||||
'invalidFeedback' => $__t('The amount cannot be lower than %s', '1'),
|
||||
'additionalHtmlContextHelp' => '<div id="tare-weight-handling-info" class="text-info font-italic d-none">' . $__t('Tare weight handling enabled - please weigh the whole container, the amount to be posted will be automatically calculcated') . '</div>'
|
||||
), \Illuminate\Support\Arr::except(get_defined_vars(), ['__data', '__path']))->render(); ?>
|
||||
|
||||
<?php if(GROCY_FEATURE_FLAG_STOCK_PRICE_TRACKING): ?>
|
||||
<?php echo $__env->make('components.numberpicker', array(
|
||||
'id' => 'price',
|
||||
'label' => 'Price',
|
||||
'min' => 0,
|
||||
'step' => 0.0001,
|
||||
'value' => '',
|
||||
'hint' => $__t('in %s and based on the purchase quantity unit', GROCY_CURRENCY),
|
||||
'invalidFeedback' => $__t('The price cannot be lower than %s', '0'),
|
||||
'isRequired' => false,
|
||||
'additionalGroupCssClasses' => 'mb-1'
|
||||
), \Illuminate\Support\Arr::except(get_defined_vars(), ['__data', '__path']))->render(); ?>
|
||||
<div class="form-check form-check-inline mb-3">
|
||||
<input class="form-check-input" type="radio" name="price-type" id="price-type-unit-price" value="unit-price" checked>
|
||||
<label class="form-check-label" for="price-type-unit-price"><?php echo e($__t('Unit price')); ?></label>
|
||||
</div>
|
||||
<div class="form-check form-check-inline mb-3">
|
||||
<input class="form-check-input" type="radio" name="price-type" id="price-type-total-price" value="total-price">
|
||||
<label class="form-check-label" for="price-type-total-price"><?php echo e($__t('Total price')); ?></label>
|
||||
</div>
|
||||
<?php else: ?>
|
||||
<input type="hidden" name="price" id="price" value="0">
|
||||
<?php endif; ?>
|
||||
|
||||
<?php if(GROCY_FEATURE_FLAG_STOCK_LOCATION_TRACKING): ?>
|
||||
<?php echo $__env->make('components.locationpicker', array(
|
||||
'locations' => $locations,
|
||||
'isRequired' => false
|
||||
), \Illuminate\Support\Arr::except(get_defined_vars(), ['__data', '__path']))->render(); ?>
|
||||
<?php else: ?>
|
||||
<input type="hidden" name="location_id" id="location_id" value="1">
|
||||
<?php endif; ?>
|
||||
|
||||
<button id="save-purchase-button" class="btn btn-success"><?php echo e($__t('OK')); ?></button>
|
||||
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<div class="col-xs-12 col-md-6 col-xl-4 hide-when-embedded">
|
||||
<?php echo $__env->make('components.productcard', \Illuminate\Support\Arr::except(get_defined_vars(), ['__data', '__path']))->render(); ?>
|
||||
</div>
|
||||
</div>
|
||||
<?php $__env->stopSection(); ?>
|
||||
|
||||
<?php echo $__env->make('layout.default', \Illuminate\Support\Arr::except(get_defined_vars(), ['__data', '__path']))->render(); ?><?php /**PATH /www/views/purchase.blade.php ENDPATH**/ ?>
|
||||
|
|
@ -1,34 +0,0 @@
|
|||
<?php $__env->startPush('componentScripts'); ?>
|
||||
<script src="<?php echo e($U('/viewjs/components/numberpicker.js', true)); ?>?v=<?php echo e($version); ?>"></script>
|
||||
<?php $__env->stopPush(); ?>
|
||||
|
||||
<?php if(!isset($value)) { $value = 1; } ?>
|
||||
<?php if(empty($min)) { $min = 0; } ?>
|
||||
<?php if(empty($max)) { $max = 999999; } ?>
|
||||
<?php if(empty($step)) { $step = 1; } ?>
|
||||
<?php if(empty($hint)) { $hint = ''; } ?>
|
||||
<?php if(empty($hintId)) { $hintId = ''; } ?>
|
||||
<?php if(empty($additionalCssClasses)) { $additionalCssClasses = ''; } ?>
|
||||
<?php if(empty($additionalGroupCssClasses)) { $additionalGroupCssClasses = ''; } ?>
|
||||
<?php if(empty($additionalAttributes)) { $additionalAttributes = ''; } ?>
|
||||
<?php if(empty($additionalHtmlElements)) { $additionalHtmlElements = ''; } ?>
|
||||
<?php if(empty($additionalHtmlContextHelp)) { $additionalHtmlContextHelp = ''; } ?>
|
||||
<?php if(!isset($isRequired)) { $isRequired = true; } ?>
|
||||
<?php if(!isset($noNameAttribute)) { $noNameAttribute = false; } ?>
|
||||
|
||||
<div class="form-group <?php echo e($additionalGroupCssClasses); ?>">
|
||||
<label for="<?php echo e($id); ?>"><?php echo e($__t($label)); ?> <span id="<?php echo e($hintId); ?>" class="small text-muted"><?php echo e($hint); ?></span><?php echo $additionalHtmlContextHelp; ?></label>
|
||||
<div class="input-group">
|
||||
<input <?php echo $additionalAttributes; ?> type="number" class="form-control numberpicker <?php echo e($additionalCssClasses); ?>" id="<?php echo e($id); ?>" <?php if(!$noNameAttribute): ?> name="<?php echo e($id); ?>" <?php endif; ?> value="<?php echo e($value); ?>" min="<?php echo e($min); ?>" max="<?php echo e($max); ?>" step="<?php echo e($step); ?>" <?php if($isRequired): ?> required <?php endif; ?>>
|
||||
<div class="input-group-append">
|
||||
<div class="input-group-text numberpicker-up-button"><i class="fas fa-arrow-up"></i></div>
|
||||
</div>
|
||||
<div class="input-group-append">
|
||||
<div class="input-group-text numberpicker-down-button"><i class="fas fa-arrow-down"></i></div>
|
||||
</div>
|
||||
<div class="invalid-feedback"><?php echo e($invalidFeedback); ?></div>
|
||||
</div>
|
||||
<?php echo $additionalHtmlElements; ?>
|
||||
|
||||
</div>
|
||||
<?php /**PATH /www/views/components/numberpicker.blade.php ENDPATH**/ ?>
|
||||
|
|
@ -1,319 +0,0 @@
|
|||
<?php $__env->startSection('title', $__t('Recipes')); ?>
|
||||
<?php $__env->startSection('activeNav', 'recipes'); ?>
|
||||
<?php $__env->startSection('viewJsName', 'recipes'); ?>
|
||||
|
||||
<?php $__env->startSection('content'); ?>
|
||||
<script>
|
||||
Grocy.QuantityUnits = <?php echo json_encode($quantityUnits); ?>;
|
||||
Grocy.QuantityUnitConversionsResolved = <?php echo json_encode($quantityUnitConversionsResolved); ?>;
|
||||
</script>
|
||||
|
||||
<div class="row">
|
||||
|
||||
<div class="col-xs-12 col-md-6 pb-3">
|
||||
<h1>
|
||||
<?php echo $__env->yieldContent('title'); ?>
|
||||
<a class="btn btn-outline-dark" href="<?php echo e($U('/recipe/new')); ?>">
|
||||
<i class="fas fa-plus"></i> <?php echo e($__t('Add')); ?>
|
||||
|
||||
</a>
|
||||
</h1>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-6">
|
||||
<label for="search"><?php echo e($__t('Search')); ?></label> <i class="fas fa-search"></i>
|
||||
<input type="text" class="form-control" id="search">
|
||||
</div>
|
||||
|
||||
<div class="col-6">
|
||||
<label for="status-filter"><?php echo e($__t('Filter by status')); ?></label> <i class="fas fa-filter"></i>
|
||||
<select class="form-control" id="status-filter">
|
||||
<option class="bg-white" value="all"><?php echo e($__t('All')); ?></option>
|
||||
<option class="bg-success" value="enoughtinstock"><?php echo e($__t('Enough in stock')); ?></option>
|
||||
<option class="bg-warning" value="enoughinstockwithshoppinglist"><?php echo e($__t('Not enough in stock, but already on the shopping list')); ?></option>
|
||||
<option class="bg-danger" value="notenoughinstock"><?php echo e($__t('Not enough in stock')); ?></option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<ul class="nav nav-tabs mt-3">
|
||||
<li class="nav-item">
|
||||
<a class="nav-link active" id="list-tab" data-toggle="tab" href="#list"><?php echo e($__t('List')); ?></a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" id="gallery-tab" data-toggle="tab" href="#gallery"><?php echo e($__t('Gallery')); ?></a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<div class="tab-content">
|
||||
|
||||
<div class="tab-pane show active" id="list">
|
||||
<table id="recipes-table" class="table table-striped dt-responsive">
|
||||
<thead>
|
||||
<tr>
|
||||
<th><?php echo e($__t('Name')); ?></th>
|
||||
<th><?php echo e($__t('Servings')); ?></th>
|
||||
<th><?php echo e($__t('Requirements fulfilled')); ?></th>
|
||||
<th class="d-none">Hidden status for sorting of "Requirements fulfilled" column</th>
|
||||
<th class="d-none">Hidden status for filtering by status</th>
|
||||
<th class="d-none">Hidden recipe ingredient product names</th>
|
||||
|
||||
<?php echo $__env->make('components.userfields_thead', array(
|
||||
'userfields' => $userfields
|
||||
), \Illuminate\Support\Arr::except(get_defined_vars(), ['__data', '__path']))->render(); ?>
|
||||
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody class="d-none">
|
||||
<?php $__currentLoopData = $recipes; $__env->addLoop($__currentLoopData); foreach($__currentLoopData as $recipe): $__env->incrementLoopIndices(); $loop = $__env->getLastLoop(); ?>
|
||||
<tr id="recipe-row-<?php echo e($recipe->id); ?>" data-recipe-id="<?php echo e($recipe->id); ?>">
|
||||
<td>
|
||||
<?php echo e($recipe->name); ?>
|
||||
|
||||
</td>
|
||||
<td>
|
||||
<?php echo e($recipe->desired_servings); ?>
|
||||
|
||||
</td>
|
||||
<td>
|
||||
<?php if(FindObjectInArrayByPropertyValue($recipesResolved, 'recipe_id', $recipe->id)->need_fulfilled == 1): ?><i class="fas fa-check text-success"></i><?php elseif(FindObjectInArrayByPropertyValue($recipesResolved, 'recipe_id', $recipe->id)->need_fulfilled_with_shopping_list == 1): ?><i class="fas fa-exclamation text-warning"></i><?php else: ?><i class="fas fa-times text-danger"></i><?php endif; ?>
|
||||
<span class="timeago-contextual"><?php if(FindObjectInArrayByPropertyValue($recipesResolved, 'recipe_id', $recipe->id)->need_fulfilled == 1): ?><?php echo e($__t('Enough in stock')); ?><?php elseif(FindObjectInArrayByPropertyValue($recipesResolved, 'recipe_id', $recipe->id)->need_fulfilled_with_shopping_list == 1): ?><?php echo e($__n(FindObjectInArrayByPropertyValue($recipesResolved, 'recipe_id', $recipe->id)->missing_products_count, 'Not enough in stock, %s ingredient missing but already on the shopping list', 'Not enough in stock, %s ingredients missing but already on the shopping list')); ?><?php else: ?><?php echo e($__n(FindObjectInArrayByPropertyValue($recipesResolved, 'recipe_id', $recipe->id)->missing_products_count, 'Not enough in stock, %s ingredient missing', 'Not enough in stock, %s ingredients missing')); ?><?php endif; ?></span>
|
||||
</td>
|
||||
<td class="d-none">
|
||||
<?php echo e(FindObjectInArrayByPropertyValue($recipesResolved, 'recipe_id', $recipe->id)->missing_products_count); ?>
|
||||
|
||||
</td>
|
||||
<td class="d-none">
|
||||
<?php if(FindObjectInArrayByPropertyValue($recipesResolved, 'recipe_id', $recipe->id)->need_fulfilled == 1): ?> enoughtinstock <?php elseif(FindObjectInArrayByPropertyValue($recipesResolved, 'recipe_id', $recipe->id)->need_fulfilled_with_shopping_list == 1): ?> enoughinstockwithshoppinglist <?php else: ?> notenoughinstock <?php endif; ?>
|
||||
</td>
|
||||
<td class="d-none">
|
||||
<?php $__currentLoopData = FindAllObjectsInArrayByPropertyValue($recipePositionsResolved, 'recipe_id', $recipe->id); $__env->addLoop($__currentLoopData); foreach($__currentLoopData as $recipePos): $__env->incrementLoopIndices(); $loop = $__env->getLastLoop(); ?>
|
||||
<?php echo e(FindObjectInArrayByPropertyValue($products, 'id', $recipePos->product_id)->name . ' '); ?>
|
||||
|
||||
<?php endforeach; $__env->popLoop(); $loop = $__env->getLastLoop(); ?>
|
||||
</td>
|
||||
|
||||
<?php echo $__env->make('components.userfields_tbody', array(
|
||||
'userfields' => $userfields,
|
||||
'userfieldValues' => FindAllObjectsInArrayByPropertyValue($userfieldValues, 'object_id', $recipe->id)
|
||||
), \Illuminate\Support\Arr::except(get_defined_vars(), ['__data', '__path']))->render(); ?>
|
||||
|
||||
</tr>
|
||||
<?php endforeach; $__env->popLoop(); $loop = $__env->getLastLoop(); ?>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<div class="tab-pane show" id="gallery">
|
||||
<div class="row no-gutters">
|
||||
<?php $__currentLoopData = $recipes; $__env->addLoop($__currentLoopData); foreach($__currentLoopData as $recipe): $__env->incrementLoopIndices(); $loop = $__env->getLastLoop(); ?>
|
||||
<div class="col-6 recipe-gallery-item-container">
|
||||
<a class="discrete-link recipe-gallery-item" data-recipe-id="<?php echo e($recipe->id); ?>" href="#">
|
||||
<div id="recipe-card-<?php echo e($recipe->id); ?>" class="card border-white mb-0 recipe-card">
|
||||
<?php if(!empty($recipe->picture_file_name)): ?>
|
||||
<img data-src="<?php echo e($U('/api/files/recipepictures/' . base64_encode($recipe->picture_file_name) . '?force_serve_as=picture&best_fit_width=400')); ?>" class="img-fluid lazy">
|
||||
<?php endif; ?>
|
||||
<div class="card-body text-center">
|
||||
<h5 class="card-title mb-1"><?php echo e($recipe->name); ?></h5>
|
||||
<p class="card-text">
|
||||
<?php if(FindObjectInArrayByPropertyValue($recipesResolved, 'recipe_id', $recipe->id)->need_fulfilled == 1): ?><i class="fas fa-check text-success"></i><?php elseif(FindObjectInArrayByPropertyValue($recipesResolved, 'recipe_id', $recipe->id)->need_fulfilled_with_shopping_list == 1): ?><i class="fas fa-exclamation text-warning"></i><?php else: ?><i class="fas fa-times text-danger"></i><?php endif; ?>
|
||||
<span class="timeago-contextual"><?php if(FindObjectInArrayByPropertyValue($recipesResolved, 'recipe_id', $recipe->id)->need_fulfilled == 1): ?><?php echo e($__t('Enough in stock')); ?><?php elseif(FindObjectInArrayByPropertyValue($recipesResolved, 'recipe_id', $recipe->id)->need_fulfilled_with_shopping_list == 1): ?><?php echo e($__n(FindObjectInArrayByPropertyValue($recipesResolved, 'recipe_id', $recipe->id)->missing_products_count, 'Not enough in stock, %s ingredient missing but already on the shopping list', 'Not enough in stock, %s ingredients missing but already on the shopping list')); ?><?php else: ?><?php echo e($__n(FindObjectInArrayByPropertyValue($recipesResolved, 'recipe_id', $recipe->id)->missing_products_count, 'Not enough in stock, %s ingredient missing', 'Not enough in stock, %s ingredients missing')); ?><?php endif; ?></span>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
<?php endforeach; $__env->popLoop(); $loop = $__env->getLastLoop(); ?>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<?php if($selectedRecipe !== null): ?>
|
||||
<div class="col-xs-12 col-md-6">
|
||||
<div class="card-header">
|
||||
<i class="fas fa-cocktail"></i> <?php echo e($selectedRecipe->name); ?>
|
||||
<a id="selectedRecipeConsumeButton" class="btn btn-sm btn-outline-success py-0 hide-when-embedded hide-on-fullscreen-card <?php if(FindObjectInArrayByPropertyValue($recipesResolved, 'recipe_id', $selectedRecipe->id)->need_fulfilled == 0): ?> disabled <?php endif; ?>" href="#" data-toggle="tooltip" title="<?php echo e($__t('Consume all ingredients needed by this recipe')); ?>" data-recipe-id="<?php echo e($selectedRecipe->id); ?>" data-recipe-name="<?php echo e($selectedRecipe->name); ?>">
|
||||
<i class="fas fa-utensils"></i>
|
||||
</a>
|
||||
<a class="btn btn-sm btn-outline-primary py-0 recipe-order-missing-button hide-when-embedded hide-on-fullscreen-card <?php if(FindObjectInArrayByPropertyValue($recipesResolved, 'recipe_id', $selectedRecipe->id)->need_fulfilled_with_shopping_list == 1): ?> disabled <?php endif; ?>" href="#" data-toggle="tooltip" title="<?php echo e($__t('Put missing products on shopping list')); ?>" data-recipe-id="<?php echo e($selectedRecipe->id); ?>" data-recipe-name="<?php echo e($selectedRecipe->name); ?>">
|
||||
<i class="fas fa-cart-plus"></i>
|
||||
</a>
|
||||
<a id="selectedRecipeEditButton" class="btn btn-sm btn-outline-info hide-when-embedded hide-on-fullscreen-card py-0" href="<?php echo e($U('/recipe/')); ?><?php echo e($selectedRecipe->id); ?>">
|
||||
<i class="fas fa-edit"></i>
|
||||
</a>
|
||||
<a id="selectedRecipeDeleteButton" class="btn btn-sm btn-outline-danger hide-when-embedded hide-on-fullscreen-card py-0" href="#" data-recipe-id="<?php echo e($selectedRecipe->id); ?>" data-recipe-name="<?php echo e($selectedRecipe->name); ?>">
|
||||
<i class="fas fa-trash"></i>
|
||||
</a>
|
||||
<a id="selectedRecipeToggleFullscreenButton" class="btn btn-sm btn-outline-secondary py-0 hide-when-embedded float-right" href="#" data-toggle="tooltip" title="<?php echo e($__t('Expand to fullscreen')); ?>">
|
||||
<i class="fas fa-expand-arrows-alt"></i>
|
||||
</a>
|
||||
</div>
|
||||
<div id="selectedRecipeCard" class="card">
|
||||
<div class="card-body mb-0 pb-0">
|
||||
<div class="row">
|
||||
<div class="col-4">
|
||||
<?php echo $__env->make('components.numberpicker', array(
|
||||
'id' => 'servings-scale',
|
||||
'label' => 'Servings',
|
||||
'min' => 1,
|
||||
'value' => $selectedRecipe->desired_servings,
|
||||
'invalidFeedback' => $__t('This cannot be lower than %s', '1'),
|
||||
'additionalAttributes' => 'data-recipe-id="' . $selectedRecipe->id . '"'
|
||||
), \Illuminate\Support\Arr::except(get_defined_vars(), ['__data', '__path']))->render(); ?>
|
||||
</div>
|
||||
<?php if(!empty($selectedRecipeTotalCalories) && intval($selectedRecipeTotalCalories) > 0): ?>
|
||||
<div class="col-2">
|
||||
<label><?php echo e($__t('Energy (kcal)')); ?></label>
|
||||
<p class="mb-0">
|
||||
<h3 class="locale-number locale-number-generic pt-0"><?php echo e($selectedRecipeTotalCalories); ?></h3>
|
||||
</p>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
<?php if(GROCY_FEATURE_FLAG_STOCK_PRICE_TRACKING): ?>
|
||||
<div class="col-6">
|
||||
<label><?php echo e($__t('Costs')); ?>
|
||||
<span class="small text-muted"><?php echo e($__t('Based on the prices of the last purchase per product')); ?></span>
|
||||
</label>
|
||||
<p class="mb-0">
|
||||
<h3 class="locale-number locale-number-currency pt-0"><?php echo e($selectedRecipeTotalCosts); ?></h3>
|
||||
</p>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Subrecipes first -->
|
||||
<?php $__currentLoopData = $selectedRecipeSubRecipes; $__env->addLoop($__currentLoopData); foreach($__currentLoopData as $selectedRecipeSubRecipe): $__env->incrementLoopIndices(); $loop = $__env->getLastLoop(); ?>
|
||||
<div class="card-body">
|
||||
<h3 class="mb-0"><?php echo e($selectedRecipeSubRecipe->name); ?></h3>
|
||||
</div>
|
||||
|
||||
<?php if(!empty($selectedRecipeSubRecipe->picture_file_name)): ?>
|
||||
<p class="w-75 mx-auto txt-center"><img src="<?php echo e($U('/api/files/recipepictures/' . base64_encode($selectedRecipeSubRecipe->picture_file_name) . '?force_serve_as=picture&best_fit_width=400')); ?>" class="img-fluid img-thumbnail lazy"></p>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php $selectedRecipeSubRecipePositionsFiltered = FindAllObjectsInArrayByPropertyValue($selectedRecipeSubRecipesPositions, 'child_recipe_id', $selectedRecipeSubRecipe->id); ?>
|
||||
<?php if(count($selectedRecipeSubRecipePositionsFiltered) > 0): ?>
|
||||
<div class="card-body">
|
||||
<h5 class="mb-0"><?php echo e($__t('Ingredients')); ?></h5>
|
||||
</div>
|
||||
<ul class="list-group list-group-flush">
|
||||
<?php $lastGroup = 'undefined'; ?>
|
||||
<?php $__currentLoopData = $selectedRecipeSubRecipePositionsFiltered; $__env->addLoop($__currentLoopData); foreach($__currentLoopData as $selectedRecipePosition): $__env->incrementLoopIndices(); $loop = $__env->getLastLoop(); ?>
|
||||
<?php if($lastGroup != $selectedRecipePosition->ingredient_group): ?>
|
||||
<h5 class="mb-2 mt-2 ml-4"><strong><?php echo e($selectedRecipePosition->ingredient_group); ?></strong></h5>
|
||||
<?php endif; ?>
|
||||
<li class="list-group-item">
|
||||
<?php
|
||||
$product = FindObjectInArrayByPropertyValue($products, 'id', $selectedRecipePosition->product_id);
|
||||
$productQuConversions = FindAllObjectsInArrayByPropertyValue($quantityUnitConversionsResolved, 'product_id', $product->id);
|
||||
$productQuConversions = FindAllObjectsInArrayByPropertyValue($productQuConversions, 'from_qu_id', $product->qu_id_stock);
|
||||
$productQuConversion = FindObjectInArrayByPropertyValue($productQuConversions, 'to_qu_id', $selectedRecipePosition->qu_id);
|
||||
if ($productQuConversion)
|
||||
{
|
||||
$selectedRecipePosition->recipe_amount = $selectedRecipePosition->recipe_amount * $productQuConversion->factor;
|
||||
}
|
||||
?>
|
||||
<?php if(!empty($selectedRecipePosition->recipe_variable_amount)): ?>
|
||||
<?php echo e($selectedRecipePosition->recipe_variable_amount); ?>
|
||||
|
||||
<?php else: ?>
|
||||
<span class="llocale-number locale-number-quantity-amount"><?php if($selectedRecipePosition->recipe_amount == round($selectedRecipePosition->recipe_amount, 2)): ?><?php echo e(round($selectedRecipePosition->recipe_amount, 2)); ?><?php else: ?><?php echo e($selectedRecipePosition->recipe_amount); ?><?php endif; ?></span>
|
||||
<?php endif; ?>
|
||||
<?php echo e($__n($selectedRecipePosition->recipe_amount, FindObjectInArrayByPropertyValue($quantityUnits, 'id', $selectedRecipePosition->qu_id)->name, FindObjectInArrayByPropertyValue($quantityUnits, 'id', $selectedRecipePosition->qu_id)->name_plural)); ?> <?php echo e(FindObjectInArrayByPropertyValue($products, 'id', $selectedRecipePosition->product_id)->name); ?>
|
||||
|
||||
<?php if($selectedRecipePosition->need_fulfilled == 1): ?><i class="fas fa-check text-success"></i><?php elseif($selectedRecipePosition->need_fulfilled_with_shopping_list == 1): ?><i class="fas fa-exclamation text-warning"></i><?php else: ?><i class="fas fa-times text-danger"></i><?php endif; ?>
|
||||
<span class="timeago-contextual"><?php if(FindObjectInArrayByPropertyValue($selectedRecipeSubRecipesPositions, 'recipe_pos_id', $selectedRecipePosition->id)->need_fulfilled == 1): ?> <?php echo e($__t('Enough in stock')); ?> <?php else: ?> <?php echo e($__t('Not enough in stock, %1$s missing, %2$s already on shopping list', round(FindObjectInArrayByPropertyValue($selectedRecipeSubRecipesPositions, 'recipe_pos_id', $selectedRecipePosition->id)->missing_amount, 2), round(FindObjectInArrayByPropertyValue($selectedRecipeSubRecipesPositions, 'recipe_pos_id', $selectedRecipePosition->id)->amount_on_shopping_list, 2))); ?> <?php endif; ?></span>
|
||||
|
||||
<?php if(!empty($selectedRecipePosition->note)): ?>
|
||||
<div class="text-muted"><?php echo nl2br($selectedRecipePosition->note); ?></div>
|
||||
<?php endif; ?>
|
||||
</li>
|
||||
<?php $lastGroup = $selectedRecipePosition->ingredient_group; ?>
|
||||
<?php endforeach; $__env->popLoop(); $loop = $__env->getLastLoop(); ?>
|
||||
</ul>
|
||||
<?php endif; ?>
|
||||
<?php if(!empty($selectedRecipeSubRecipe->description)): ?>
|
||||
<div class="card-body">
|
||||
<h5><?php echo e($__t('Preparation')); ?></h5>
|
||||
<?php echo $selectedRecipeSubRecipe->description; ?>
|
||||
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
<?php endforeach; $__env->popLoop(); $loop = $__env->getLastLoop(); ?>
|
||||
|
||||
<!-- Selected recipe -->
|
||||
<?php if(!empty($selectedRecipe->picture_file_name)): ?>
|
||||
<p class="w-75 mx-auto text-center"><img src="<?php echo e($U('/api/files/recipepictures/' . base64_encode($selectedRecipe->picture_file_name) . '?force_serve_as=picture&best_fit_width=400')); ?>" class="img-fluid img-thumbnail lazy"></p>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php if($selectedRecipePositionsResolved->count() > 0): ?>
|
||||
<div class="card-body">
|
||||
<h5 class="mb-0"><?php echo e($__t('Ingredients')); ?></h5>
|
||||
</div>
|
||||
<ul class="list-group list-group-flush">
|
||||
<?php $lastGroup = 'undefined'; ?>
|
||||
<?php $__currentLoopData = $selectedRecipePositionsResolved; $__env->addLoop($__currentLoopData); foreach($__currentLoopData as $selectedRecipePosition): $__env->incrementLoopIndices(); $loop = $__env->getLastLoop(); ?>
|
||||
<?php if($lastGroup != $selectedRecipePosition->ingredient_group): ?>
|
||||
<h5 class="mb-2 mt-2 ml-4"><strong><?php echo e($selectedRecipePosition->ingredient_group); ?></strong></h5>
|
||||
<?php endif; ?>
|
||||
<li class="list-group-item">
|
||||
<?php
|
||||
$product = FindObjectInArrayByPropertyValue($products, 'id', $selectedRecipePosition->product_id);
|
||||
$productQuConversions = FindAllObjectsInArrayByPropertyValue($quantityUnitConversionsResolved, 'product_id', $product->id);
|
||||
$productQuConversions = FindAllObjectsInArrayByPropertyValue($productQuConversions, 'from_qu_id', $product->qu_id_stock);
|
||||
$productQuConversion = FindObjectInArrayByPropertyValue($productQuConversions, 'to_qu_id', $selectedRecipePosition->qu_id);
|
||||
if ($productQuConversion)
|
||||
{
|
||||
$selectedRecipePosition->recipe_amount = $selectedRecipePosition->recipe_amount * $productQuConversion->factor;
|
||||
}
|
||||
?>
|
||||
<?php if(!empty($selectedRecipePosition->recipe_variable_amount)): ?>
|
||||
<?php echo e($selectedRecipePosition->recipe_variable_amount); ?>
|
||||
|
||||
<?php else: ?>
|
||||
<span class="locale-number locale-number-quantity-amount"><?php if($selectedRecipePosition->recipe_amount == round($selectedRecipePosition->recipe_amount, 2)): ?><?php echo e(round($selectedRecipePosition->recipe_amount, 2)); ?><?php else: ?><?php echo e($selectedRecipePosition->recipe_amount); ?><?php endif; ?></span>
|
||||
<?php endif; ?>
|
||||
<?php echo e($__n($selectedRecipePosition->recipe_amount, FindObjectInArrayByPropertyValue($quantityUnits, 'id', $selectedRecipePosition->qu_id)->name, FindObjectInArrayByPropertyValue($quantityUnits, 'id', $selectedRecipePosition->qu_id)->name_plural)); ?> <?php echo e(FindObjectInArrayByPropertyValue($products, 'id', $selectedRecipePosition->product_id)->name); ?>
|
||||
|
||||
<?php if($selectedRecipePosition->need_fulfilled == 1): ?><i class="fas fa-check text-success"></i><?php elseif($selectedRecipePosition->need_fulfilled_with_shopping_list == 1): ?><i class="fas fa-exclamation text-warning"></i><?php else: ?><i class="fas fa-times text-danger"></i><?php endif; ?>
|
||||
<span class="timeago-contextual"><?php if(FindObjectInArrayByPropertyValue($recipePositionsResolved, 'recipe_pos_id', $selectedRecipePosition->id)->need_fulfilled == 1): ?> <?php echo e($__t('Enough in stock')); ?> <?php else: ?> <?php echo e($__t('Not enough in stock, %1$s missing, %2$s already on shopping list', round(FindObjectInArrayByPropertyValue($recipePositionsResolved, 'recipe_pos_id', $selectedRecipePosition->id)->missing_amount, 2), round(FindObjectInArrayByPropertyValue($recipePositionsResolved, 'recipe_pos_id', $selectedRecipePosition->id)->amount_on_shopping_list, 2))); ?> <?php endif; ?></span>
|
||||
|
||||
<?php if(!empty($selectedRecipePosition->note)): ?>
|
||||
<div class="text-muted"><?php echo nl2br($selectedRecipePosition->note); ?></div>
|
||||
<?php endif; ?>
|
||||
</li>
|
||||
<?php $lastGroup = $selectedRecipePosition->ingredient_group; ?>
|
||||
<?php endforeach; $__env->popLoop(); $loop = $__env->getLastLoop(); ?>
|
||||
</ul>
|
||||
<?php endif; ?>
|
||||
<?php if(!empty($selectedRecipe->description)): ?>
|
||||
<div class="card-body">
|
||||
<h5><?php echo e($__t('Preparation')); ?></h5>
|
||||
<?php echo $selectedRecipe->description; ?>
|
||||
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
|
||||
<div id="missing-recipe-pos-list" class="list-group d-none mt-3">
|
||||
<?php $__currentLoopData = $recipePositionsResolved; $__env->addLoop($__currentLoopData); foreach($__currentLoopData as $recipePos): $__env->incrementLoopIndices(); $loop = $__env->getLastLoop(); ?>
|
||||
<?php if(in_array($recipePos->recipe_id, $includedRecipeIdsAbsolute) && $recipePos->missing_amount > 0): ?>
|
||||
<a href="#" class="list-group-item list-group-item-action list-group-item-primary missing-recipe-pos-select-button">
|
||||
<div class="form-check form-check-inline">
|
||||
<input class="form-check-input missing-recipe-pos-product-checkbox" type="checkbox" data-product-id="<?php echo e($recipePos->product_id); ?>" checked>
|
||||
</div>
|
||||
<?php echo e(FindObjectInArrayByPropertyValue($products, 'id', $recipePos->product_id)->name); ?>
|
||||
|
||||
</a>
|
||||
<?php endif; ?>
|
||||
<?php endforeach; $__env->popLoop(); $loop = $__env->getLastLoop(); ?>
|
||||
</div>
|
||||
<?php $__env->stopSection(); ?>
|
||||
|
||||
<?php echo $__env->make('layout.default', \Illuminate\Support\Arr::except(get_defined_vars(), ['__data', '__path']))->render(); ?><?php /**PATH /www/views/recipes.blade.php ENDPATH**/ ?>
|
||||
|
|
@ -1,108 +0,0 @@
|
|||
<?php $__env->startPush('componentScripts'); ?>
|
||||
<script src="<?php echo e($U('/viewjs/components/userfieldsform.js', true)); ?>?v=<?php echo e($version); ?>"></script>
|
||||
<?php $__env->stopPush(); ?>
|
||||
|
||||
<?php if(count($userfields) > 0): ?>
|
||||
|
||||
<div id="userfields-form" data-entity="<?php echo e($entity); ?>" class="border border-info p-2 mb-2" novalidate>
|
||||
<h2 class="small"><?php echo e($__t('Userfields')); ?></h2>
|
||||
|
||||
<?php $__currentLoopData = $userfields; $__env->addLoop($__currentLoopData); foreach($__currentLoopData as $userfield): $__env->incrementLoopIndices(); $loop = $__env->getLastLoop(); ?>
|
||||
|
||||
<?php if($userfield->type == \Grocy\Services\UserfieldsService::USERFIELD_TYPE_SINGLE_LINE_TEXT): ?>
|
||||
<div class="form-group">
|
||||
<label for="name"><?php echo e($userfield->caption); ?></label>
|
||||
<input type="text" class="form-control userfield-input" data-userfield-name="<?php echo e($userfield->name); ?>">
|
||||
</div>
|
||||
<?php elseif($userfield->type == \Grocy\Services\UserfieldsService::USERFIELD_TYPE_SINGLE_MULTILINE_TEXT): ?>
|
||||
<div class="form-group">
|
||||
<label for="description"><?php echo e($userfield->caption); ?></label>
|
||||
<textarea class="form-control userfield-input" rows="4" data-userfield-name="<?php echo e($userfield->name); ?>"></textarea>
|
||||
</div>
|
||||
<?php elseif($userfield->type == \Grocy\Services\UserfieldsService::USERFIELD_TYPE_INTEGRAL_NUMBER): ?>
|
||||
<?php echo $__env->make('components.numberpicker', array(
|
||||
'id' => $userfield->name,
|
||||
'label' => $userfield->caption,
|
||||
'noNameAttribute' => true,
|
||||
'min' => 0,
|
||||
'isRequired' => false,
|
||||
'additionalCssClasses' => 'userfield-input',
|
||||
'additionalAttributes' => 'data-userfield-name="' . $userfield->name . '"'
|
||||
), \Illuminate\Support\Arr::except(get_defined_vars(), ['__data', '__path']))->render(); ?>
|
||||
<?php elseif($userfield->type == \Grocy\Services\UserfieldsService::USERFIELD_TYPE_DECIMAL_NUMBER): ?>
|
||||
<?php echo $__env->make('components.numberpicker', array(
|
||||
'id' => '',
|
||||
'label' => $userfield->caption,
|
||||
'noNameAttribute' => true,
|
||||
'min' => 0,
|
||||
'step' => 0.01,
|
||||
'isRequired' => false,
|
||||
'additionalCssClasses' => 'userfield-input',
|
||||
'additionalAttributes' => 'data-userfield-name="' . $userfield->name . '"'
|
||||
), \Illuminate\Support\Arr::except(get_defined_vars(), ['__data', '__path']))->render(); ?>
|
||||
<?php elseif($userfield->type == \Grocy\Services\UserfieldsService::USERFIELD_TYPE_DATE): ?>
|
||||
<?php echo $__env->make('components.datetimepicker', array(
|
||||
'id' => $userfield->name,
|
||||
'label' => $userfield->caption,
|
||||
'noNameAttribute' => true,
|
||||
'format' => 'YYYY-MM-DD',
|
||||
'initWithNow' => false,
|
||||
'limitEndToNow' => false,
|
||||
'limitStartToNow' => false,
|
||||
'additionalGroupCssClasses' => 'date-only-datetimepicker',
|
||||
'isRequired' => false,
|
||||
'additionalCssClasses' => 'userfield-input',
|
||||
'additionalAttributes' => 'data-userfield-name="' . $userfield->name . '"'
|
||||
), \Illuminate\Support\Arr::except(get_defined_vars(), ['__data', '__path']))->render(); ?>
|
||||
<?php elseif($userfield->type == \Grocy\Services\UserfieldsService::USERFIELD_TYPE_DATETIME): ?>
|
||||
<?php echo $__env->make('components.datetimepicker', array(
|
||||
'id' => $userfield->name,
|
||||
'label' => $userfield->caption,
|
||||
'noNameAttribute' => true,
|
||||
'format' => 'YYYY-MM-DD HH:mm:ss',
|
||||
'initWithNow' => false,
|
||||
'limitEndToNow' => false,
|
||||
'limitStartToNow' => false,
|
||||
'isRequired' => false,
|
||||
'additionalCssClasses' => 'userfield-input',
|
||||
'additionalAttributes' => 'data-userfield-name="' . $userfield->name . '"'
|
||||
), \Illuminate\Support\Arr::except(get_defined_vars(), ['__data', '__path']))->render(); ?>
|
||||
<?php elseif($userfield->type == \Grocy\Services\UserfieldsService::USERFIELD_TYPE_CHECKBOX): ?>
|
||||
<div class="form-group">
|
||||
<div class="form-check">
|
||||
<input class="form-check-input userfield-input" type="checkbox" data-userfield-name="<?php echo e($userfield->name); ?>" value="1">
|
||||
<label class="form-check-label" for="<?php echo e($userfield->name); ?>"><?php echo e($userfield->caption); ?></label>
|
||||
</div>
|
||||
</div>
|
||||
<?php elseif($userfield->type == \Grocy\Services\UserfieldsService::USERFIELD_TYPE_PRESET_LIST): ?>
|
||||
<div class="form-group">
|
||||
<label for="<?php echo e($userfield->name); ?>"><?php echo e($userfield->caption); ?></label>
|
||||
<select class="form-control userfield-input" data-userfield-name="<?php echo e($userfield->name); ?>">
|
||||
<option></option>
|
||||
<?php $__currentLoopData = preg_split('/\r\n|\r|\n/', $userfield->config); $__env->addLoop($__currentLoopData); foreach($__currentLoopData as $option): $__env->incrementLoopIndices(); $loop = $__env->getLastLoop(); ?>
|
||||
<option value="<?php echo e($option); ?>"><?php echo e($option); ?></option>
|
||||
<?php endforeach; $__env->popLoop(); $loop = $__env->getLastLoop(); ?>
|
||||
</select>
|
||||
</div>
|
||||
<?php elseif($userfield->type == \Grocy\Services\UserfieldsService::USERFIELD_TYPE_PRESET_CHECKLIST): ?>
|
||||
<div class="form-group">
|
||||
<label for="<?php echo e($userfield->name); ?>"><?php echo e($userfield->caption); ?></label>
|
||||
<select multiple class="form-control userfield-input selectpicker" data-userfield-name="<?php echo e($userfield->name); ?>" data-actions-Box="true" data-live-search="true">
|
||||
<?php $__currentLoopData = preg_split('/\r\n|\r|\n/', $userfield->config); $__env->addLoop($__currentLoopData); foreach($__currentLoopData as $option): $__env->incrementLoopIndices(); $loop = $__env->getLastLoop(); ?>
|
||||
<option value="<?php echo e($option); ?>"><?php echo e($option); ?></option>
|
||||
<?php endforeach; $__env->popLoop(); $loop = $__env->getLastLoop(); ?>
|
||||
</select>
|
||||
</div>
|
||||
<?php elseif($userfield->type == \Grocy\Services\UserfieldsService::USERFIELD_TYPE_LINK): ?>
|
||||
<div class="form-group">
|
||||
<label for="name"><?php echo e($userfield->caption); ?></label>
|
||||
<input type="link" class="form-control userfield-input" data-userfield-name="<?php echo e($userfield->name); ?>">
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php endforeach; $__env->popLoop(); $loop = $__env->getLastLoop(); ?>
|
||||
|
||||
</div>
|
||||
|
||||
<?php endif; ?>
|
||||
<?php /**PATH /www/views/components/userfieldsform.blade.php ENDPATH**/ ?>
|
||||
|
|
@ -1,22 +0,0 @@
|
|||
<?php $__env->startPush('componentScripts'); ?>
|
||||
<script src="<?php echo e($U('/viewjs/components/recipepicker.js', true)); ?>?v=<?php echo e($version); ?>"></script>
|
||||
<?php $__env->stopPush(); ?>
|
||||
|
||||
<?php if(empty($prefillByName)) { $prefillByName = ''; } ?>
|
||||
<?php if(empty($prefillById)) { $prefillById = ''; } ?>
|
||||
<?php if(!isset($isRequired)) { $isRequired = true; } ?>
|
||||
<?php if(empty($hint)) { $hint = ''; } ?>
|
||||
<?php if(empty($hintId)) { $hintId = ''; } ?>
|
||||
<?php if(empty($nextInputSelector)) { $nextInputSelector = ''; } ?>
|
||||
|
||||
<div class="form-group" data-next-input-selector="<?php echo e($nextInputSelector); ?>" data-prefill-by-name="<?php echo e($prefillByName); ?>" data-prefill-by-id="<?php echo e($prefillById); ?>">
|
||||
<label for="recipe_id"><?php echo e($__t('Recipe')); ?> <span id="<?php echo e($hintId); ?>" class="small text-muted"><?php echo e($hint); ?></span></label>
|
||||
<select class="form-control recipe-combobox" id="recipe_id" name="recipe_id" <?php if($isRequired): ?> required <?php endif; ?>>
|
||||
<option value=""></option>
|
||||
<?php $__currentLoopData = $recipes; $__env->addLoop($__currentLoopData); foreach($__currentLoopData as $recipe): $__env->incrementLoopIndices(); $loop = $__env->getLastLoop(); ?>
|
||||
<option value="<?php echo e($recipe->id); ?>"><?php echo e($recipe->name); ?></option>
|
||||
<?php endforeach; $__env->popLoop(); $loop = $__env->getLastLoop(); ?>
|
||||
</select>
|
||||
<div class="invalid-feedback"><?php echo e($__t('You have to select a recipe')); ?></div>
|
||||
</div>
|
||||
<?php /**PATH /www/views/components/recipepicker.blade.php ENDPATH**/ ?>
|
||||
|
|
@ -1,32 +0,0 @@
|
|||
<?php $__env->startPush('componentScripts'); ?>
|
||||
<script src="<?php echo e($U('/viewjs/components/productpicker.js', true)); ?>?v=<?php echo e($version); ?>"></script>
|
||||
<?php $__env->stopPush(); ?>
|
||||
|
||||
<?php if(empty($disallowAddProductWorkflows)) { $disallowAddProductWorkflows = false; } ?>
|
||||
<?php if(empty($disallowAllProductWorkflows)) { $disallowAllProductWorkflows = false; } ?>
|
||||
<?php if(empty($prefillByName)) { $prefillByName = ''; } ?>
|
||||
<?php if(empty($prefillById)) { $prefillById = ''; } ?>
|
||||
<?php if(!isset($isRequired)) { $isRequired = true; } ?>
|
||||
<?php if(!isset($label)) { $label = 'Product'; } ?>
|
||||
<?php if(!isset($disabled)) { $disabled = false; } ?>
|
||||
<?php if(empty($hint)) { $hint = ''; } ?>
|
||||
<?php if(empty($nextInputSelector)) { $nextInputSelector = ''; } ?>
|
||||
|
||||
<div class="form-group" data-next-input-selector="<?php echo e($nextInputSelector); ?>" data-disallow-add-product-workflows="<?php echo e(BoolToString($disallowAddProductWorkflows)); ?>" data-disallow-all-product-workflows="<?php echo e(BoolToString($disallowAllProductWorkflows)); ?>" data-prefill-by-name="<?php echo e($prefillByName); ?>" data-prefill-by-id="<?php echo e($prefillById); ?>">
|
||||
<label for="product_id"><?php echo e($__t($label)); ?> <i class="fas fa-barcode"></i><span id="barcode-lookup-disabled-hint" class="small text-muted d-none"> <?php echo e($__t('Barcode lookup is disabled')); ?></span> <span class="small text-muted"><?php echo e($hint); ?></span></label>
|
||||
<select class="form-control product-combobox barcodescanner-input" id="product_id" name="product_id" <?php if($isRequired): ?> required <?php endif; ?> <?php if($disabled): ?> disabled <?php endif; ?>>
|
||||
<option value=""></option>
|
||||
<?php $__currentLoopData = $products; $__env->addLoop($__currentLoopData); foreach($__currentLoopData as $product): $__env->incrementLoopIndices(); $loop = $__env->getLastLoop(); ?>
|
||||
<option data-additional-searchdata="<?php echo e($product->barcode); ?><?php if(!empty($product->barcode)): ?>,<?php endif; ?>" value="<?php echo e($product->id); ?>"><?php echo e($product->name); ?></option>
|
||||
<?php endforeach; $__env->popLoop(); $loop = $__env->getLastLoop(); ?>
|
||||
</select>
|
||||
<div class="invalid-feedback"><?php echo e($__t('You have to select a product')); ?></div>
|
||||
<div id="custom-productpicker-error" class="form-text text-danger d-none"></div>
|
||||
<?php if(!$disallowAllProductWorkflows): ?>
|
||||
<div class="form-text text-info small"><?php echo e($__t('Type a new product name or barcode and hit TAB to start a workflow')); ?></div>
|
||||
<?php endif; ?>
|
||||
<div id="flow-info-addbarcodetoselection" class="form-text text-muted small d-none"><strong><span id="addbarcodetoselection"></span></strong> <?php echo e($__t('will be added to the list of barcodes for the selected product on submit')); ?></div>
|
||||
</div>
|
||||
|
||||
<?php echo $__env->make('components.barcodescanner', \Illuminate\Support\Arr::except(get_defined_vars(), ['__data', '__path']))->render(); ?>
|
||||
<?php /**PATH /www/views/components/productpicker.blade.php ENDPATH**/ ?>
|
||||
|
|
@ -1,446 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="<?php echo e(GROCY_CULTURE); ?>">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="x-ua-compatible" content="ie=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||
|
||||
<meta name="robots" content="noindex,nofollow">
|
||||
<meta name="format-detection" content="telephone=no">
|
||||
|
||||
<meta name="author" content="Bernd Bestel (bernd@berrnd.de)">
|
||||
|
||||
<link rel="apple-touch-icon" sizes="180x180" href="<?php echo e($U('/img/appicons/apple-touch-icon.png?v=', true)); ?><?php echo e($version); ?>">
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="<?php echo e($U('/img/appicons/favicon-32x32.png?v=', true)); ?><?php echo e($version); ?>">
|
||||
<link rel="icon" type="image/png" sizes="16x16" href="<?php echo e($U('/img/appicons/favicon-16x16.png?v=', true)); ?><?php echo e($version); ?>">
|
||||
<link rel="manifest" href="<?php echo e($U('/img/appicons/site.webmanifest?v=', true)); ?><?php echo e($version); ?>">
|
||||
<link rel="mask-icon" href="<?php echo e($U('/img/appicons/safari-pinned-tab.svg?v=', true)); ?><?php echo e($version); ?>" color="#0b024c">
|
||||
<link rel="shortcut icon" href="<?php echo e($U('/img/appicons/favicon.ico?v=', true)); ?><?php echo e($version); ?>">
|
||||
<meta name="apple-mobile-web-app-title" content="grocy">
|
||||
<meta name="application-name" content="grocy">
|
||||
<meta name="msapplication-TileColor" content="#e5e5e5">
|
||||
<meta name="msapplication-config" content="<?php echo e($U('/img/appicons/browserconfig.xml?v=', true)); ?><?php echo e($version); ?>">
|
||||
<meta name="theme-color" content="#ffffff">
|
||||
|
||||
<title><?php echo $__env->yieldContent('title'); ?> | grocy</title>
|
||||
|
||||
<link href="<?php echo e($U('/node_modules/bootstrap/dist/css/bootstrap.min.css?v=', true)); ?><?php echo e($version); ?>" rel="stylesheet">
|
||||
<link href="<?php echo e($U('/node_modules/startbootstrap-sb-admin/css/sb-admin.min.css?v=', true)); ?><?php echo e($version); ?>" rel="stylesheet">
|
||||
<link href="<?php echo e($U('/node_modules/@fortawesome/fontawesome-free/css/all.css?v=', true)); ?><?php echo e($version); ?>" rel="stylesheet">
|
||||
<link href="<?php echo e($U('/node_modules/@danielfarrell/bootstrap-combobox/css/bootstrap-combobox.css?v=', true)); ?><?php echo e($version); ?>" rel="stylesheet">
|
||||
<link href="<?php echo e($U('/node_modules/datatables.net-bs4/css/dataTables.bootstrap4.min.css?v=', true)); ?><?php echo e($version); ?>" rel="stylesheet">
|
||||
<link href="<?php echo e($U('/node_modules/datatables.net-responsive-bs4/css/responsive.bootstrap4.min.css?v=', true)); ?><?php echo e($version); ?>" rel="stylesheet">
|
||||
<link href="<?php echo e($U('/node_modules/datatables.net-colreorder-bs4/css/colReorder.bootstrap4.min.css?v=', true)); ?><?php echo e($version); ?>" rel="stylesheet">
|
||||
<link href="<?php echo e($U('/node_modules/datatables.net-select-bs4/css/select.bootstrap4.min.css?v=', true)); ?><?php echo e($version); ?>" rel="stylesheet">
|
||||
<link href="<?php echo e($U('/node_modules/toastr/build/toastr.min.css?v=', true)); ?><?php echo e($version); ?>" rel="stylesheet">
|
||||
<link href="<?php echo e($U('/node_modules/tempusdominus-bootstrap-4/build/css/tempusdominus-bootstrap-4.min.css?v=', true)); ?><?php echo e($version); ?>" rel="stylesheet">
|
||||
<link href="<?php echo e($U('/node_modules/summernote/dist/summernote-bs4.css?v=', true)); ?><?php echo e($version); ?>" rel="stylesheet">
|
||||
<link href="<?php echo e($U('/node_modules/bootstrap-select/dist/css/bootstrap-select.min.css?v=', true)); ?><?php echo e($version); ?>" rel="stylesheet">
|
||||
<link href="<?php echo e($U('/components_unmanaged/noto-sans-v9-latin/noto-sans-v9-latin.min.css?v=', true)); ?><?php echo e($version); ?>" rel="stylesheet">
|
||||
<link href="<?php echo e($U('/css/grocy.css?v=', true)); ?><?php echo e($version); ?>" rel="stylesheet">
|
||||
<link href="<?php echo e($U('/css/grocy_night_mode.css?v=', true)); ?><?php echo e($version); ?>" rel="stylesheet">
|
||||
<?php echo $__env->yieldPushContent('pageStyles'); ?>
|
||||
|
||||
<?php if(file_exists(GROCY_DATAPATH . '/custom_css.html')): ?>
|
||||
<?php include GROCY_DATAPATH . '/custom_css.html' ?>
|
||||
<?php endif; ?>
|
||||
|
||||
<script>
|
||||
var Grocy = { };
|
||||
Grocy.Components = { };
|
||||
Grocy.Mode = '<?php echo e(GROCY_MODE); ?>';
|
||||
Grocy.BaseUrl = '<?php echo e($U('/')); ?>';
|
||||
Grocy.CurrentUrlRelative = "/" + window.location.toString().replace(Grocy.BaseUrl, "");
|
||||
Grocy.ActiveNav = '<?php echo $__env->yieldContent('activeNav', ''); ?>';
|
||||
Grocy.Culture = '<?php echo e(GROCY_CULTURE); ?>';
|
||||
Grocy.Currency = '<?php echo e(GROCY_CURRENCY); ?>';
|
||||
Grocy.CalendarFirstDayOfWeek = '<?php echo e(GROCY_CALENDAR_FIRST_DAY_OF_WEEK); ?>';
|
||||
Grocy.CalendarShowWeekNumbers = <?php echo e(BoolToString(GROCY_CALENDAR_SHOW_WEEK_OF_YEAR)); ?>;
|
||||
Grocy.GettextPo = <?php echo $GettextPo; ?>;
|
||||
Grocy.FeatureFlags = <?php echo json_encode($featureFlags); ?>;
|
||||
|
||||
<?php if(GROCY_AUTHENTICATED): ?>
|
||||
Grocy.UserSettings = <?php echo json_encode($userSettings); ?>;
|
||||
Grocy.UserId = <?php echo e(GROCY_USER_ID); ?>;
|
||||
<?php else: ?>
|
||||
Grocy.UserSettings = { };
|
||||
Grocy.UserId = -1;
|
||||
<?php endif; ?>
|
||||
</script>
|
||||
</head>
|
||||
|
||||
<body class="fixed-nav <?php if(boolval($userSettings['night_mode_enabled']) || (boolval($userSettings['auto_night_mode_enabled']) && boolval($userSettings['currently_inside_night_mode_range']))): ?> night-mode <?php endif; ?> <?php if($embedded): ?> embedded <?php endif; ?>">
|
||||
<?php if(!($embedded)): ?>
|
||||
<nav id="mainNav" class="navbar navbar-expand-lg navbar-light fixed-top">
|
||||
<a class="navbar-brand py-0" href="<?php echo e($U('/')); ?>"><img src="<?php echo e($U('/img/grocy_logo.svg?v=', true)); ?><?php echo e($version); ?>" height="30"></a>
|
||||
<span id="clock-container" class="text-muted font-italic d-none">
|
||||
<i class="far fa-clock"></i>
|
||||
<span id="clock-small" class="d-inline d-sm-none"></span>
|
||||
<span id="clock-big" class="d-none d-sm-inline"></span>
|
||||
</span>
|
||||
|
||||
<button class="navbar-toggler navbar-toggler-right" type="button" data-toggle="collapse" data-target="#sidebarResponsive">
|
||||
<span class="navbar-toggler-icon"></span>
|
||||
</button>
|
||||
|
||||
<?php if(GROCY_AUTHENTICATED): ?>
|
||||
<div id="sidebarResponsive" class="collapse navbar-collapse">
|
||||
<ul class="navbar-nav navbar-sidenav pt-2">
|
||||
|
||||
<?php if(GROCY_FEATURE_FLAG_STOCK): ?>
|
||||
<li class="nav-item" data-toggle="tooltip" data-placement="right" title="<?php echo e($__t('Stock overview')); ?>" data-nav-for-page="stockoverview">
|
||||
<a class="nav-link discrete-link" href="<?php echo e($U('/stockoverview')); ?>">
|
||||
<i class="fas fa-box"></i>
|
||||
<span class="nav-link-text"><?php echo e($__t('Stock overview')); ?></span>
|
||||
</a>
|
||||
</li>
|
||||
<?php endif; ?>
|
||||
<?php if(GROCY_FEATURE_FLAG_SHOPPINGLIST): ?>
|
||||
<li class="nav-item" data-toggle="tooltip" data-placement="right" title="<?php echo e($__t('Shopping list')); ?>" data-nav-for-page="shoppinglist">
|
||||
<a class="nav-link discrete-link" href="<?php echo e($U('/shoppinglist')); ?>">
|
||||
<i class="fas fa-shopping-cart"></i>
|
||||
<span class="nav-link-text"><?php echo e($__t('Shopping list')); ?></span>
|
||||
</a>
|
||||
</li>
|
||||
<?php endif; ?>
|
||||
<?php if(GROCY_FEATURE_FLAG_RECIPES): ?>
|
||||
<li class="nav-item" data-toggle="tooltip" data-placement="right" title="<?php echo e($__t('Recipes')); ?>" data-nav-for-page="recipes">
|
||||
<a class="nav-link discrete-link" href="<?php echo e($U('/recipes')); ?>">
|
||||
<i class="fas fa-cocktail"></i>
|
||||
<span class="nav-link-text"><?php echo e($__t('Recipes')); ?></span>
|
||||
</a>
|
||||
</li>
|
||||
<?php endif; ?>
|
||||
<?php if(GROCY_FEATURE_FLAG_CHORES): ?>
|
||||
<li class="nav-item" data-toggle="tooltip" data-placement="right" title="<?php echo e($__t('Chores overview')); ?>" data-nav-for-page="choresoverview">
|
||||
<a class="nav-link discrete-link" href="<?php echo e($U('/choresoverview')); ?>">
|
||||
<i class="fas fa-home"></i>
|
||||
<span class="nav-link-text"><?php echo e($__t('Chores overview')); ?></span>
|
||||
</a>
|
||||
</li>
|
||||
<?php endif; ?>
|
||||
<?php if(GROCY_FEATURE_FLAG_TASKS): ?>
|
||||
<li class="nav-item" data-toggle="tooltip" data-placement="right" title="<?php echo e($__t('Tasks')); ?>" data-nav-for-page="tasks">
|
||||
<a class="nav-link discrete-link" href="<?php echo e($U('/tasks')); ?>">
|
||||
<i class="fas fa-tasks"></i>
|
||||
<span class="nav-link-text"><?php echo e($__t('Tasks')); ?></span>
|
||||
</a>
|
||||
</li>
|
||||
<?php endif; ?>
|
||||
<?php if(GROCY_FEATURE_FLAG_BATTERIES): ?>
|
||||
<li class="nav-item" data-toggle="tooltip" data-placement="right" title="<?php echo e($__t('Batteries overview')); ?>" data-nav-for-page="batteriesoverview">
|
||||
<a class="nav-link discrete-link" href="<?php echo e($U('/batteriesoverview')); ?>">
|
||||
<i class="fas fa-battery-half"></i>
|
||||
<span class="nav-link-text"><?php echo e($__t('Batteries overview')); ?></span>
|
||||
</a>
|
||||
</li>
|
||||
<?php endif; ?>
|
||||
<?php if(GROCY_FEATURE_FLAG_EQUIPMENT): ?>
|
||||
<li class="nav-item" data-toggle="tooltip" data-placement="right" title="<?php echo e($__t('Equipment')); ?>" data-nav-for-page="equipment">
|
||||
<a class="nav-link discrete-link" href="<?php echo e($U('/equipment')); ?>">
|
||||
<i class="fas fa-toolbox"></i>
|
||||
<span class="nav-link-text"><?php echo e($__t('Equipment')); ?></span>
|
||||
</a>
|
||||
</li>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php if(GROCY_FEATURE_FLAG_STOCK): ?>
|
||||
<li class="nav-item mt-4" data-toggle="tooltip" data-placement="right" title="<?php echo e($__t('Purchase')); ?>" data-nav-for-page="purchase">
|
||||
<a class="nav-link discrete-link" href="<?php echo e($U('/purchase')); ?>">
|
||||
<i class="fas fa-shopping-cart"></i>
|
||||
<span class="nav-link-text"><?php echo e($__t('Purchase')); ?></span>
|
||||
</a>
|
||||
</li>
|
||||
<li class="nav-item" data-toggle="tooltip" data-placement="right" title="<?php echo e($__t('Consume')); ?>" data-nav-for-page="consume">
|
||||
<a class="nav-link discrete-link" href="<?php echo e($U('/consume')); ?>">
|
||||
<i class="fas fa-utensils"></i>
|
||||
<span class="nav-link-text"><?php echo e($__t('Consume')); ?></span>
|
||||
</a>
|
||||
</li>
|
||||
<li class="nav-item" data-toggle="tooltip" data-placement="right" title="<?php echo e($__t('Inventory')); ?>" data-nav-for-page="inventory">
|
||||
<a class="nav-link discrete-link" href="<?php echo e($U('/inventory')); ?>">
|
||||
<i class="fas fa-list"></i>
|
||||
<span class="nav-link-text"><?php echo e($__t('Inventory')); ?></span>
|
||||
</a>
|
||||
</li>
|
||||
<?php endif; ?>
|
||||
<?php if(GROCY_FEATURE_FLAG_CHORES): ?>
|
||||
<li class="nav-item" data-toggle="tooltip" data-placement="right" title="<?php echo e($__t('Chore tracking')); ?>" data-nav-for-page="choretracking">
|
||||
<a class="nav-link discrete-link" href="<?php echo e($U('/choretracking')); ?>">
|
||||
<i class="fas fa-play"></i>
|
||||
<span class="nav-link-text"><?php echo e($__t('Chore tracking')); ?></span>
|
||||
</a>
|
||||
</li>
|
||||
<?php endif; ?>
|
||||
<?php if(GROCY_FEATURE_FLAG_BATTERIES): ?>
|
||||
<li class="nav-item" data-toggle="tooltip" data-placement="right" title="<?php echo e($__t('Battery tracking')); ?>" data-nav-for-page="batterytracking">
|
||||
<a class="nav-link discrete-link" href="<?php echo e($U('/batterytracking')); ?>">
|
||||
<i class="fas fa-fire"></i>
|
||||
<span class="nav-link-text"><?php echo e($__t('Battery tracking')); ?></span>
|
||||
</a>
|
||||
</li>
|
||||
<?php endif; ?>
|
||||
<?php if(GROCY_FEATURE_FLAG_CALENDAR): ?>
|
||||
<li class="nav-item mt-4" data-toggle="tooltip" data-placement="right" title="<?php echo e($__t('Calendar')); ?>" data-nav-for-page="calendar">
|
||||
<a class="nav-link discrete-link" href="<?php echo e($U('/calendar')); ?>">
|
||||
<i class="fas fa-calendar-alt"></i>
|
||||
<span class="nav-link-text"><?php echo e($__t('Calendar')); ?></span>
|
||||
</a>
|
||||
</li>
|
||||
<?php endif; ?>
|
||||
<?php if(GROCY_FEATURE_FLAG_RECIPES): ?>
|
||||
<li class="nav-item" data-toggle="tooltip" data-placement="right" title="<?php echo e($__t('Meal plan')); ?>" data-nav-for-page="mealplan">
|
||||
<a class="nav-link discrete-link" href="<?php echo e($U('/mealplan')); ?>">
|
||||
<i class="fas fa-paper-plane"></i>
|
||||
<span class="nav-link-text"><?php echo e($__t('Meal plan')); ?></span>
|
||||
</a>
|
||||
</li>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php $firstUserentity = true; ?>
|
||||
<?php $__currentLoopData = $userentitiesForSidebar; $__env->addLoop($__currentLoopData); foreach($__currentLoopData as $userentity): $__env->incrementLoopIndices(); $loop = $__env->getLastLoop(); ?>
|
||||
<li class="nav-item <?php if($firstUserentity): ?> mt-4 <?php endif; ?>" data-toggle="tooltip" data-placement="right" title="<?php echo e($userentity->caption); ?>" data-nav-for-page="userentity-<?php echo e($userentity->name); ?>">
|
||||
<a class="nav-link discrete-link" href="<?php echo e($U('/userobjects/' . $userentity->name)); ?>">
|
||||
<i class="<?php echo e($userentity->icon_css_class); ?>"></i>
|
||||
<span class="nav-link-text"><?php echo e($userentity->caption); ?></span>
|
||||
</a>
|
||||
</li>
|
||||
<?php if ($firstUserentity) { $firstUserentity = false; } ?>
|
||||
<?php endforeach; $__env->popLoop(); $loop = $__env->getLastLoop(); ?>
|
||||
|
||||
<li class="nav-item mt-4" data-toggle="tooltip" data-placement="right" title="<?php echo e($__t('Manage master data')); ?>">
|
||||
<a class="nav-link nav-link-collapse collapsed discrete-link" data-toggle="collapse" href="#top-nav-manager-master-data">
|
||||
<i class="fas fa-table"></i>
|
||||
<span class="nav-link-text"><?php echo e($__t('Manage master data')); ?></span>
|
||||
</a>
|
||||
<ul id="top-nav-manager-master-data" class="sidenav-second-level collapse">
|
||||
<?php if(GROCY_FEATURE_FLAG_STOCK): ?>
|
||||
<li data-nav-for-page="products" data-sub-menu-of="#top-nav-manager-master-data">
|
||||
<a class="nav-link discrete-link" href="<?php echo e($U('/products')); ?>">
|
||||
<i class="fab fa-product-hunt"></i>
|
||||
<span class="nav-link-text"><?php echo e($__t('Products')); ?></span>
|
||||
</a>
|
||||
</li>
|
||||
<?php if(GROCY_FEATURE_FLAG_STOCK_LOCATION_TRACKING): ?>
|
||||
<li data-nav-for-page="locations" data-sub-menu-of="#top-nav-manager-master-data">
|
||||
<a class="nav-link discrete-link" href="<?php echo e($U('/locations')); ?>">
|
||||
<i class="fas fa-map-marker-alt"></i>
|
||||
<span class="nav-link-text"><?php echo e($__t('Locations')); ?></span>
|
||||
</a>
|
||||
</li>
|
||||
<?php endif; ?>
|
||||
<li data-nav-for-page="quantityunits" data-sub-menu-of="#top-nav-manager-master-data">
|
||||
<a class="nav-link discrete-link" href="<?php echo e($U('/quantityunits')); ?>">
|
||||
<i class="fas fa-balance-scale"></i>
|
||||
<span class="nav-link-text"><?php echo e($__t('Quantity units')); ?></span>
|
||||
</a>
|
||||
</li>
|
||||
<li data-nav-for-page="productgroups" data-sub-menu-of="#top-nav-manager-master-data">
|
||||
<a class="nav-link discrete-link" href="<?php echo e($U('/productgroups')); ?>">
|
||||
<i class="fas fa-object-group"></i>
|
||||
<span class="nav-link-text"><?php echo e($__t('Product groups')); ?></span>
|
||||
</a>
|
||||
</li>
|
||||
<?php endif; ?>
|
||||
<?php if(GROCY_FEATURE_FLAG_CHORES): ?>
|
||||
<li data-nav-for-page="chores" data-sub-menu-of="#top-nav-manager-master-data">
|
||||
<a class="nav-link discrete-link" href="<?php echo e($U('/chores')); ?>">
|
||||
<i class="fas fa-home"></i>
|
||||
<span class="nav-link-text"><?php echo e($__t('Chores')); ?></span>
|
||||
</a>
|
||||
</li>
|
||||
<?php endif; ?>
|
||||
<?php if(GROCY_FEATURE_FLAG_BATTERIES): ?>
|
||||
<li data-nav-for-page="batteries" data-sub-menu-of="#top-nav-manager-master-data">
|
||||
<a class="nav-link discrete-link" href="<?php echo e($U('/batteries')); ?>">
|
||||
<i class="fas fa-battery-half"></i>
|
||||
<span class="nav-link-text"><?php echo e($__t('Batteries')); ?></span>
|
||||
</a>
|
||||
</li>
|
||||
<?php endif; ?>
|
||||
<?php if(GROCY_FEATURE_FLAG_TASKS): ?>
|
||||
<li data-nav-for-page="taskcategories" data-sub-menu-of="#top-nav-manager-master-data">
|
||||
<a class="nav-link discrete-link" href="<?php echo e($U('/taskcategories')); ?>">
|
||||
<i class="fas fa-project-diagram "></i>
|
||||
<span class="nav-link-text"><?php echo e($__t('Task categories')); ?></span>
|
||||
</a>
|
||||
</li>
|
||||
<?php endif; ?>
|
||||
<li data-nav-for-page="userfields" data-sub-menu-of="#top-nav-manager-master-data">
|
||||
<a class="nav-link discrete-link" href="<?php echo e($U('/userfields')); ?>">
|
||||
<i class="fas fa-bookmark "></i>
|
||||
<span class="nav-link-text"><?php echo e($__t('Userfields')); ?></span>
|
||||
</a>
|
||||
</li>
|
||||
<li data-nav-for-page="userentities" data-sub-menu-of="#top-nav-manager-master-data">
|
||||
<a class="nav-link discrete-link" href="<?php echo e($U('/userentities')); ?>">
|
||||
<i class="fas fa-bookmark "></i>
|
||||
<span class="nav-link-text"><?php echo e($__t('Userentities')); ?></span>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<ul class="navbar-nav sidenav-toggler">
|
||||
<li class="nav-item">
|
||||
<a id="sidenavToggler" class="nav-link text-center">
|
||||
<i class="fas fa-angle-left"></i>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<ul class="navbar-nav ml-auto">
|
||||
<?php if(GROCY_AUTHENTICATED === true && !GROCY_IS_EMBEDDED_INSTALL): ?>
|
||||
<li class="nav-item dropdown">
|
||||
<a class="nav-link dropdown-toggle discrete-link" href="#" data-toggle="dropdown"><i class="fas fa-user"></i> <?php echo e(GROCY_USER_USERNAME); ?></a>
|
||||
|
||||
<div class="dropdown-menu dropdown-menu-right">
|
||||
<a class="dropdown-item logout-button discrete-link" href="<?php echo e($U('/logout')); ?>"><i class="fas fa-sign-out-alt"></i> <?php echo e($__t('Logout')); ?></a>
|
||||
<div class="dropdown-divider"></div>
|
||||
<a class="dropdown-item logout-button discrete-link" href="<?php echo e($U('/user/' . GROCY_USER_ID . '?changepw=true')); ?>"><i class="fas fa-key"></i> <?php echo e($__t('Change password')); ?></a>
|
||||
</div>
|
||||
</li>
|
||||
<?php endif; ?>
|
||||
|
||||
<?php if(GROCY_AUTHENTICATED === true): ?>
|
||||
<li class="nav-item dropdown">
|
||||
<a class="nav-link dropdown-toggle discrete-link" href="#" data-toggle="dropdown"><i class="fas fa-sliders-h"></i> <span class="d-inline d-lg-none"><?php echo e($__t('View settings')); ?></span></a>
|
||||
|
||||
<div class="dropdown-menu dropdown-menu-right">
|
||||
<div class="dropdown-item">
|
||||
<div class="form-check">
|
||||
<input class="form-check-input user-setting-control" type="checkbox" id="auto-reload-enabled" data-setting-key="auto_reload_on_db_change">
|
||||
<label class="form-check-label" for="auto-reload-enabled">
|
||||
<?php echo e($__t('Auto reload on external changes')); ?>
|
||||
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="dropdown-item">
|
||||
<div class="form-check">
|
||||
<input class="form-check-input user-setting-control" type="checkbox" id="show-clock-in-header" data-setting-key="show_clock_in_header">
|
||||
<label class="form-check-label" for="show-clock-in-header">
|
||||
<?php echo e($__t('Show clock in header')); ?>
|
||||
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="dropdown-divider"></div>
|
||||
<div class="dropdown-item">
|
||||
<div class="form-check">
|
||||
<input class="form-check-input user-setting-control" type="checkbox" id="night-mode-enabled" data-setting-key="night_mode_enabled">
|
||||
<label class="form-check-label" for="night-mode-enabled">
|
||||
<?php echo e($__t('Enable night mode')); ?>
|
||||
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="dropdown-item">
|
||||
<div class="form-check">
|
||||
<input class="form-check-input user-setting-control" type="checkbox" id="auto-night-mode-enabled" data-setting-key="auto_night_mode_enabled">
|
||||
<label class="form-check-label" for="auto-night-mode-enabled">
|
||||
<?php echo e($__t('Auto enable in time range')); ?>
|
||||
|
||||
</label>
|
||||
</div>
|
||||
<div class="form-inline">
|
||||
<input type="text" class="form-control my-1 user-setting-control" readonly id="auto-night-mode-time-range-from" placeholder="<?php echo e($__t('From')); ?> (<?php echo e($__t('in format')); ?> HH:mm)" data-setting-key="auto_night_mode_time_range_from">
|
||||
<input type="text" class="form-control user-setting-control" readonly id="auto-night-mode-time-range-to" placeholder="<?php echo e($__t('To')); ?> (<?php echo e($__t('in format')); ?> HH:mm)" data-setting-key="auto_night_mode_time_range_to">
|
||||
</div>
|
||||
<div class="form-check mt-1">
|
||||
<input class="form-check-input user-setting-control" type="checkbox" id="auto-night-mode-time-range-goes-over-midgnight" data-setting-key="auto_night_mode_time_range_goes_over_midnight">
|
||||
<label class="form-check-label" for="auto-night-mode-time-range-goes-over-midgnight">
|
||||
<?php echo e($__t('Time range goes over midnight')); ?>
|
||||
|
||||
</label>
|
||||
</div>
|
||||
<input class="form-check-input d-none user-setting-control" type="checkbox" id="currently-inside-night-mode-range" data-setting-key="currently_inside_night_mode_range">
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
<?php endif; ?>
|
||||
|
||||
<li class="nav-item dropdown">
|
||||
<a class="nav-link dropdown-toggle discrete-link" href="#" data-toggle="dropdown"><i class="fas fa-wrench"></i> <span class="d-inline d-lg-none"><?php echo e($__t('Settings')); ?></span></a>
|
||||
|
||||
<div class="dropdown-menu dropdown-menu-right">
|
||||
<a class="dropdown-item discrete-link" href="<?php echo e($U('/stocksettings')); ?>"><i class="fas fa-box"></i> <?php echo e($__t('Stock settings')); ?></a>
|
||||
<?php if(GROCY_FEATURE_FLAG_CHORES): ?>
|
||||
<a class="dropdown-item discrete-link" href="<?php echo e($U('/choressettings')); ?>"><i class="fas fa-home"></i> <?php echo e($__t('Chores settings')); ?></a>
|
||||
<?php endif; ?>
|
||||
<?php if(GROCY_FEATURE_FLAG_BATTERIES): ?>
|
||||
<a class="dropdown-item discrete-link" href="<?php echo e($U('/batteriessettings')); ?>"><i class="fas fa-battery-half"></i> <?php echo e($__t('Batteries settings')); ?></a>
|
||||
<?php endif; ?>
|
||||
<?php if(GROCY_FEATURE_FLAG_TASKS): ?>
|
||||
<a class="dropdown-item discrete-link" href="<?php echo e($U('/taskssettings')); ?>"><i class="fas fa-tasks"></i> <?php echo e($__t('Tasks settings')); ?></a>
|
||||
<?php endif; ?>
|
||||
<div class="dropdown-divider"></div>
|
||||
<a class="dropdown-item discrete-link" href="<?php echo e($U('/users')); ?>"><i class="fas fa-users"></i> <?php echo e($__t('Manage users')); ?></a>
|
||||
<div class="dropdown-divider"></div>
|
||||
<a class="dropdown-item discrete-link" href="<?php echo e($U('/manageapikeys')); ?>"><i class="fas fa-handshake"></i> <?php echo e($__t('Manage API keys')); ?></a>
|
||||
<a class="dropdown-item discrete-link" target="_blank" href="<?php echo e($U('/api')); ?>"><i class="fas fa-book"></i> <?php echo e($__t('REST API & data model documentation')); ?></a>
|
||||
<a class="dropdown-item discrete-link" href="<?php echo e($U('/barcodescannertesting')); ?>"><i class="fas fa-barcode"></i> <?php echo e($__t('Barcode scanner testing')); ?></a>
|
||||
<div class="dropdown-divider"></div>
|
||||
<a id="about-dialog-link" class="dropdown-item discrete-link" href="#"><i class="fas fa-info fa-fw"></i> <?php echo e($__t('About grocy')); ?> (Version <?php echo e($version); ?>)</a>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div><?php endif; ?>
|
||||
</nav>
|
||||
<?php endif; ?>
|
||||
|
||||
<div class="content-wrapper">
|
||||
<div class="container-fluid">
|
||||
<div class="row mb-3">
|
||||
<div id="page-content" class="col content-text">
|
||||
<?php echo $__env->yieldContent('content'); ?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script src="<?php echo e($U('/node_modules/jquery/dist/jquery.min.js?v=', true)); ?><?php echo e($version); ?>"></script>
|
||||
<script src="<?php echo e($U('/node_modules/bootstrap/dist/js/bootstrap.bundle.min.js?v=', true)); ?><?php echo e($version); ?>"></script>
|
||||
<script src="<?php echo e($U('/node_modules/startbootstrap-sb-admin/js/sb-admin.min.js?v=', true)); ?><?php echo e($version); ?>"></script>
|
||||
<script src="<?php echo e($U('/node_modules/bootbox/dist/bootbox.min.js?v=', true)); ?><?php echo e($version); ?>"></script>
|
||||
<script src="<?php echo e($U('/node_modules/jquery-serializejson/jquery.serializejson.min.js?v=', true)); ?><?php echo e($version); ?>"></script>
|
||||
<script src="<?php echo e($U('/node_modules/moment/min/moment.min.js?v=', true)); ?><?php echo e($version); ?>"></script>
|
||||
<?php if(!empty($__t('moment_locale') && $__t('moment_locale') != 'x')): ?><script src="<?php echo e($U('/node_modules', true)); ?>/moment/locale/<?php echo e($__t('moment_locale')); ?>.js?v=<?php echo e($version); ?>"></script><?php endif; ?>
|
||||
<script src="<?php echo e($U('/node_modules/@danielfarrell/bootstrap-combobox/js/bootstrap-combobox.js?v=', true)); ?><?php echo e($version); ?>"></script>
|
||||
<script src="<?php echo e($U('/node_modules/datatables.net/js/jquery.dataTables.min.js?v=', true)); ?><?php echo e($version); ?>"></script>
|
||||
<script src="<?php echo e($U('/node_modules/datatables.net-bs4/js/dataTables.bootstrap4.js?v=', true)); ?><?php echo e($version); ?>"></script>
|
||||
<script src="<?php echo e($U('/node_modules/datatables.net-responsive/js/dataTables.responsive.min.js?v=', true)); ?><?php echo e($version); ?>"></script>
|
||||
<script src="<?php echo e($U('/node_modules/datatables.net-responsive-bs4/js/responsive.bootstrap4.min.js?v=', true)); ?><?php echo e($version); ?>"></script>
|
||||
<script src="<?php echo e($U('/node_modules/datatables.net-colreorder/js/dataTables.colReorder.min.js?v=', true)); ?><?php echo e($version); ?>"></script>
|
||||
<script src="<?php echo e($U('/node_modules/datatables.net-colreorder-bs4/js/colReorder.bootstrap4.min.js?v=', true)); ?><?php echo e($version); ?>"></script>
|
||||
<script src="<?php echo e($U('/node_modules/datatables.net-select/js/dataTables.select.min.js?v=', true)); ?><?php echo e($version); ?>"></script>
|
||||
<script src="<?php echo e($U('/node_modules/datatables.net-select-bs4/js/select.bootstrap4.min.js?v=', true)); ?><?php echo e($version); ?>"></script>
|
||||
<script src="<?php echo e($U('/node_modules/timeago/jquery.timeago.js?v=', true)); ?><?php echo e($version); ?>"></script>
|
||||
<script src="<?php echo e($U('/node_modules', true)); ?>/timeago/locales/jquery.timeago.<?php echo e($__t('timeago_locale')); ?>.js?v=<?php echo e($version); ?>"></script>
|
||||
<script src="<?php echo e($U('/node_modules/toastr/build/toastr.min.js?v=', true)); ?><?php echo e($version); ?>"></script>
|
||||
<script src="<?php echo e($U('/node_modules/tempusdominus-bootstrap-4/build/js/tempusdominus-bootstrap-4.js?v=', true)); ?><?php echo e($version); ?>"></script>
|
||||
<script src="<?php echo e($U('/node_modules/sprintf-js/dist/sprintf.min.js?v=', true)); ?><?php echo e($version); ?>"></script>
|
||||
<script src="<?php echo e($U('/node_modules/gettext-translator/src/translator.js?v=', true)); ?><?php echo e($version); ?>"></script>
|
||||
<script src="<?php echo e($U('/node_modules/summernote/dist/summernote-bs4.js?v=', true)); ?><?php echo e($version); ?>"></script>
|
||||
<?php if(!empty($__t('summernote_locale') && $__t('summernote_locale') != 'x')): ?><script src="<?php echo e($U('/node_modules', true)); ?>/summernote/dist/lang/summernote-<?php echo e($__t('summernote_locale')); ?>.js?v=<?php echo e($version); ?>"></script><?php endif; ?>
|
||||
<script src="<?php echo e($U('/node_modules/bootstrap-select/dist/js/bootstrap-select.min.js?v=', true)); ?><?php echo e($version); ?>"></script>
|
||||
<?php if(!empty($__t('bootstrap-select_locale') && $__t('bootstrap-select_locale') != 'x')): ?><script src="<?php echo e($U('/node_modules', true)); ?>/bootstrap-select/dist/js/i18n/defaults-<?php echo e($__t('bootstrap-select_locale')); ?>.js?v=<?php echo e($version); ?>"></script><?php endif; ?>
|
||||
<script src="<?php echo e($U('/node_modules/jquery-lazy/jquery.lazy.min.js?v=', true)); ?><?php echo e($version); ?>"></script>
|
||||
|
||||
<script src="<?php echo e($U('/js/extensions.js?v=', true)); ?><?php echo e($version); ?>"></script>
|
||||
<script src="<?php echo e($U('/js/grocy.js?v=', true)); ?><?php echo e($version); ?>"></script>
|
||||
<script src="<?php echo e($U('/js/grocy_dbchangedhandling.js?v=', true)); ?><?php echo e($version); ?>"></script>
|
||||
<script src="<?php echo e($U('/js/grocy_nightmode.js?v=', true)); ?><?php echo e($version); ?>"></script>
|
||||
<script src="<?php echo e($U('/js/grocy_clock.js?v=', true)); ?><?php echo e($version); ?>"></script>
|
||||
<?php echo $__env->yieldPushContent('pageScripts'); ?>
|
||||
<?php echo $__env->yieldPushContent('componentScripts'); ?>
|
||||
<?php if (! empty(trim($__env->yieldContent('viewJsName')))): ?><script src="<?php echo e($U('/viewjs', true)); ?>/<?php echo $__env->yieldContent('viewJsName'); ?>.js?v=<?php echo e($version); ?>"></script><?php endif; ?>
|
||||
|
||||
<?php if(file_exists(GROCY_DATAPATH . '/custom_js.html')): ?>
|
||||
<?php include GROCY_DATAPATH . '/custom_js.html' ?>
|
||||
<?php endif; ?>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
<?php /**PATH /www/views/layout/default.blade.php ENDPATH**/ ?>
|
||||
|
|
@ -1,14 +0,0 @@
|
|||
<?php $__env->startPush('componentScripts'); ?>
|
||||
<script src="<?php echo e($U('/viewjs/components/calendarcard.js', true)); ?>?v=<?php echo e($version); ?>"></script>
|
||||
<?php $__env->stopPush(); ?>
|
||||
|
||||
<div class="card">
|
||||
<div class="card-header">
|
||||
<i class="fas fa-calendar"></i> <?php echo e($__t('Calendar')); ?>
|
||||
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<div id="calendar" data-target-input="nearest"></div>
|
||||
</div>
|
||||
</div>
|
||||
<?php /**PATH /www/views/components/calendarcard.blade.php ENDPATH**/ ?>
|
||||
Loading…
Reference in New Issue
Block a user