/* eslint-disable no-param-reassign, no-use-before-define */ /* global initReminderDropdown */ (function() { var SIMPLE_TABLE; function stockManagementColumns(withConsumption = true) { let columns = [ { visible: true, searchable: false, data: 'stock' } ]; if (withConsumption) { columns = columns.concat([{ visible: true, searchable: false, data: 'consumedStock' }]); } return columns; } function stockManagementColumnDefs(withConsumption = true) { let columns = [ { targets: 'row-stock', className: 'item-stock', sWidth: '1%', render: function(data) { return $.fn.dataTable.render.RepositoryStockValue(data); } } ]; if (withConsumption) { columns = columns.concat([{ targets: 'row-consumption', className: 'item-consumed-stock', sWidth: '1%', render: function(data) { if (!data.stock_present) { return ' - '; } return `${data.value.consumed_stock_formatted}`; } }]); } return columns; } function simpleTableColumns(tableContainer) { let columns = [ { visible: true, searchable: false, data: 0 } ]; if ($(tableContainer).data('stock-management')) { columns = columns.concat(stockManagementColumns()); } return columns; } function simpleViewColumnDefs(tableContainer) { let columnDefs = [{ targets: 0, className: 'item-name', render: function(data, type, row) { var recordName = data; if (row.hasActiveReminders) { recordName = `` + recordName; } else { recordName = `${recordName}`; } return recordName; } }]; if ($(tableContainer).data('stock-management')) { columnDefs = columnDefs.concat(stockManagementColumnDefs()); } return columnDefs; } function renderSimpleTable(tableContainer) { if (SIMPLE_TABLE) SIMPLE_TABLE.destroy(); SIMPLE_TABLE = $(tableContainer).DataTable({ dom: "Rt<'pagination-row'<'version-label'><'pagination-actions'p>>", processing: true, serverSide: true, responsive: true, pageLength: 5, order: [[0, 'asc']], sScrollY: '100%', sScrollX: '100%', sScrollXInner: '100%', destroy: true, ajax: { url: $(tableContainer).data('source'), contentType: 'application/json', data: function(d) { d.assigned = 'assigned_simple'; d.view_mode = true; d.simple_view = true; return JSON.stringify(d); }, global: false, type: 'POST' }, columns: simpleTableColumns(tableContainer), columnDefs: simpleViewColumnDefs(tableContainer), language: { paginate: { previous: "", next: "" } }, drawCallback: function() { var repositoryContainer = $(this).closest('.assigned-repository-container'); repositoryContainer.find('.table.dataTable').removeClass('hidden'); repositoryContainer.find('.dataTables_scrollBody').css('overflow', 'initial'); repositoryContainer.find('.version-label').text(tableContainer.data('version-label')); SIMPLE_TABLE.columns.adjust(); }, createdRow: function(row, data) { $(row).find('.item-name').attr('data-state', data.DT_RowAttr['data-state']); }, fnInitComplete: function() { initReminderDropdown(tableContainer); } }); } function initSimpleTable() { $('#assigned-items-container').on('shown.bs.collapse', '.assigned-repository-container', function() { var repositoryContainer = $(this); var repositoryTable = repositoryContainer.find('.table'); var initializedTable = repositoryContainer.find('.dataTables_wrapper table'); // do not try to re-initialized already initialized table if (initializedTable.length) { initializedTable.DataTable().columns.adjust(); return; } repositoryTable.attr('data-source', $(this).data('repository-url')); repositoryTable.attr('data-version-label', $(this).data('footer-label')); repositoryTable.attr('data-name-column-id', $(this).data('name-column-id')); repositoryTable.attr('data-stock-management', $(this).data('data-stock-management')); repositoryContainer.html(repositoryTable); renderSimpleTable(repositoryTable); }); $('#wrapper').on('sideBar::shown sideBar::hidden', function() { if (SIMPLE_TABLE) { SIMPLE_TABLE.columns.adjust(); } }); } initSimpleTable(); }());