templates/ComponentInventory/index.html.twig line 1
{% extends 'layout.html.twig' %}{% trans_default_domain 'ComponentInventoryItem' %}{% import 'Document/macro.html.twig' as document %}{% block title %}{{ 'ui.componentInventory' | trans }}{% endblock %}{% block body %}{% endblock %}{% block stylesheets %}.excel-form .preview {max-height: 300px;overflow: auto;}{% endblock %}{% block javascripts %}{{ parent() }}$(document).ready(() => {numeral.defaultFormat('0,0.00000');initList('component-inventory-item-list');const itemListEl = $('#component-inventory-item-list');const hideZeroQuantity = itemListEl.data('hideZeroQuantity') === 1;const items = itemListEl.find('.item');const notFoundEl = $('#not-found');const collectSearchData = () => {let data = [];items.each(function () {const el = $(this);data.push([(el.find('.code').text() + ';' + el.find('.description').text()).toLowerCase(),el]);});return data;};const searchData = collectSearchData();let setCreateCode = null;$('#search').on('input', (e) => {items.removeClass('hidden');items.filter('.zero-q').toggleClass('hidden', hideZeroQuantity);const value = $(e.target).val();let matchCount = null;if (value !== '') {matchCount = 0;for (let i = 0; i < searchData.length; i++) {const match = searchData[i][0].includes(value.toLowerCase());if (match) {matchCount++;}searchData[i][1].toggleClass('hidden', !match);}}itemListEl.toggleClass('hidden', matchCount === 0);notFoundEl.toggleClass('hidden', matchCount !== 0);notFoundEl.find('.code').text(value);setCreateCode = matchCount === 0 ? value : null;});$('#modal').on('loaded.bs.modal', (e) => {if (setCreateCode !== null) {$(e.target).find('#item_create_code').val(setCreateCode);}$(e.target).find('.form-control.number').on('change', function () {$(this).val(numeral($(this).val()).format());});});$('body').on('change', 'input[type="file"].excel-file', (e) => {const input = e.target;const excelForm = $(input).closest('.excel-form');const progressBar = excelForm.find('.progress-bar');progressBar.removeClass('hidden');const file = input.files[0];const xhr = new XMLHttpRequest();xhr.onreadystatechange = (e) => {if (4 === e.target.readyState) {input.value = '';excelForm.find('.preview').html(e.target.responseText);if (200 === e.target.status) {progressBar.addClass('hidden');}}};xhr.upload.addEventListener('progress', (e) => {if (e.lengthComputable) {const progress = Math.round((e.loaded / e.total) * 100);progressBar.css('width', progress + '%');}}, false);let url = null;if ($(input).hasClass('increase')) {url = '{{ path('app.component_inventory.batch_increase_quantity.preview') }}';} else if ($(input).hasClass('decrease')) {url = '{{ path('app.component_inventory.batch_decrease_quantity.preview') }}';} else if ($(input).hasClass('set')) {url = '{{ path('app.component_inventory.batch_set_quantity.preview') }}';}if (url != null) {xhr.open('post', url, true);const formData = new FormData;formData.append('excel', file);xhr.send(formData);}});});{% endblock %}