scinote-web/app/assets/javascripts/sitewide/repository_row_info_modal.js

125 lines
3.9 KiB
JavaScript

/* global bwipjs PrintModalComponent RepositoryDatatable HelperModule MyModuleRepositories */
(function() {
'use strict';
$(document).on('click', '.record-info-link', function(e) {
var that = $(this);
let params = {};
if ($('.my-modules-protocols-index, #results').length) {
params.my_module_id = $('.my-modules-protocols-index, #results').data('task-id');
}
$.ajax({
method: 'GET',
url: that.attr('href'),
data: params,
dataType: 'json'
}).done(function(xhr, settings, data) {
if ($('#modal-info-repository-row').length) {
$('#modal-info-repository-row').find('.modal-body #repository_row-info-table').DataTable().destroy();
$('#modal-info-repository-row').remove();
$('.modal-backdrop').remove();
}
$('body').append($.parseHTML(data.responseJSON.html));
$('[data-toggle="tooltip"]').tooltip();
$('#modal-info-repository-row').modal('show', {
backdrop: true,
keyboard: false
}).on('hidden.bs.modal', function() {
$(this).find('.modal-body #repository_row-info-table').DataTable().destroy();
$(this).remove();
});
let barCodeCanvas = bwipjs.toCanvas('bar-code-canvas', {
bcid: 'qrcode',
text: $('#modal-info-repository-row #bar-code-canvas').data('id').toString(),
scale: 3
});
$('#modal-info-repository-row #bar-code-image').attr('src', barCodeCanvas.toDataURL('image/png'));
$('#repository_row-info-table').DataTable({
dom: 'RBltpi',
stateSave: false,
buttons: [],
processing: true,
colReorder: {
fixedColumnsLeft: 1000000 // Disable reordering
},
columnDefs: [{
targets: 0,
searchable: false,
orderable: false
}],
fnDrawCallback: function(settings, json) {
animateSpinner(this, false);
},
preDrawCallback: function(settings) {
animateSpinner(this);
}
});
});
e.preventDefault();
return false;
});
$(document).on('click', '.export-consumption-button', function() {
let selectedRows = [];
if ($(this).attr('id') === 'exportStockConsumptionButton') {
selectedRows = RepositoryDatatable.selectedRows();
} else {
selectedRows = $('#modal-info-repository-row .print-label-button').data('rows');
}
window.initExportStockConsumptionModal();
if (window.exportStockConsumptionModalComponent) {
window.exportStockConsumptionModalComponent.fetchRepositoryData(
selectedRows,
{ repository_id: $(this).data('objectId') },
);
$('#modal-info-repository-row').modal('hide');
}
});
$(document).on('click', '.print-label-button', function(e) {
var selectedRows = $(this).data('rows');
e.preventDefault();
e.stopPropagation();
if (typeof PrintModalComponent !== 'undefined') {
PrintModalComponent.showModal = true;
if (selectedRows && selectedRows.length) {
$('#modal-info-repository-row').modal('hide');
PrintModalComponent.row_ids = selectedRows;
} else {
PrintModalComponent.row_ids = [...RepositoryDatatable.selectedRows()];
}
}
});
$(document).on('click', '.assign-inventory-button', function(e) {
e.preventDefault();
let assignUrl = $(this).data('assignUrl');
let repositoryRowId = $(this).data('repositoryRowId');
$.ajax({
url: assignUrl,
type: 'POST',
data: { repository_row_id: repositoryRowId },
dataType: 'json',
success: function(data) {
HelperModule.flashAlertMsg(data.flash, 'success');
$('#modal-info-repository-row').modal('hide');
if (typeof MyModuleRepositories !== 'undefined') {
MyModuleRepositories.reloadRepositoriesList(repositoryRowId);
}
},
error: function(error) {
HelperModule.flashAlertMsg(error.responseJSON.flash, 'danger');
}
});
});
}());