//рисуем таблицу
function draw_table(data)
{
$('#body_table_component').children().remove();
$.each(data, function(index,k){
$('#body_table_component').append(
"
" +
"" +
"" +
"" +
" | " +
""+k['id']+" | " +
""+k['name']+" | " +
""+k['description']+" | " +
""+k['article_number']+" | " +
""+k['amount']+" | " +
""+k['section']+" | " +
""+k['manufacturer']+" | " +
""+k['ref']+" | " +
"" +
"" +
" | " +
"
");
});
}
//получаем данные для таблицы
function component_table_data()
{
var section_id = {};
section_id['section_component_table'] = $('#phy_typeeq').val();
$.post("../bin/phy_database.php", section_id, function(data)
{
data = $.parseJSON(data);
draw_table(data);
});
}
$(document).ready ( function(){
$(component_table_data);
});
$(document).ready( function(){
$("#phy_typeeq").on('change', component_table_data);
});
// заполняем модальное окно
$(document).ready( function(){
$('body').on('click', '.edit_desc', function(){
$('#modal_title').html('Редактировать описание');
id = $(this).closest('tr').find('.comp_id').text();
name = $(this).closest('tr').find('.comp_name').text();
description = $(this).closest('tr').find('.comp_description').text();
article_number = $(this).closest('tr').find('.comp_article_number').text();
amount = $(this).closest('tr').find('.comp_amount').text();
manufacturer = $(this).closest('tr').find('.comp_manufacturer').text();
section = $(this).closest('tr').find('.comp_section').text();
$('#component_name').attr("value", name);
$('#component_description').attr("value", description);
$('#component_article_number').attr("value", article_number);
$('#component_amount').attr("value", amount);
$('#component_manufacturer').attr("value", manufacturer);
section = $('option:contains('+section+')').attr("value");
$("#component_section option[value="+section+"]").prop("selected", true);
$('#id_components_description').attr("value", id);
});
});
//удаляем комплектующую (строку таблицы)
$(document).ready( function(){
$('body').on('click', '.delete_comp', function(){
id_components = $(this).closest('tr').find('.comp_id').text();
var data = {};
data['component_del_id'] = id_components;
bootbox.confirm({
message: "Вы уверены, что хотите удалить комплектующую из базы данных?",
buttons: {
confirm: {
label: 'Да'
},
cancel: {
label: 'Отмена'
}
},
callback: function (result) {
if (result)
{
$.post("../bin/phy_database.php", data, function(o)
{
bootbox.alert({
message: o,
size: 'small',
callback: function(){
location.reload();
}
});
});
}
}
});
});
});
// копируем комплектующую
$(document).ready( function(){
$('body').on('click', '.copy_comp', function(){
id_components = $(this).closest('tr').find('.comp_id').text();
var data = {};
data['component_copy_id'] = id_components;
bootbox.confirm({
message: "Вы уверены, что хотите скопировать комплектующую?",
buttons: {
confirm: {
label: 'Да'
},
cancel: {
label: 'Отмена'
}
},
callback: function (result) {
if (result)
{
$.post("../bin/phy_database.php", data, function(o)
{
bootbox.alert({
message: o,
size: 'small',
callback: function(){
location.reload();
}
});
});
}
}
});
});
});
//готовим данные для отправки на сервер
function comp_desc_data ()
{
var data = {};
data['id_components'] = $('#id_components_description').val();
data['component_name'] = $('#component_name').val();
data['component_description'] = $('#component_description').val();
data['component_section'] = $('#component_section').val();
data['component_article_number'] = $('#component_article_number').val();
data['component_manufacturer'] = $('#component_manufacturer').val();
data['component_amount'] = $('#component_amount').val();
return data;
}
//отправляем данные на сервер
$(document).ready( function(){
$('#descr_to_db').on('click', function()
{
var data = comp_desc_data();
bootbox.confirm({
message: "Вы уверены, что хотите внести изменения в базу данных?",
buttons: {
confirm: {
label: 'Да'
},
cancel: {
label: 'Отмена'
}
},
callback: function (result) {
if (result)
{
var error = '';
if (!check_required_field_name(data['component_name']))
{
error = 'Не введено имя! ';
}
if (!check_required_field_name(data['component_description']))
{
error += 'Не введено описание! ';
}
if (!check_required_field_name(data['component_manufacturer']))
{
error += 'Не введен производитель! ';
}
if (!check_number(data['component_amount']))
{
error += 'Не верно введено количество! ';
}
if (error)
{
bootbox.alert(error);
}
else
{
if (data['id_components']) //редактирование компоненты
{
$.post("../bin/phy_database.php?component_desc_id=" + data['id_components'], data , function(o)
{
bootbox.alert({
message: o,
size: 'small',
callback: function(){
location.reload();
}
});
});
}
else //добавление новой компоненты
{
$.post("../bin/phy_database.php?new_component=new_component", data, function(o)
{
bootbox.alert({
message: o,
size: 'small',
callback: function(){
location.reload();
}
});
});
}
}
}
}
});
});
});
function components_search_data()
{
var data = {};
if ($('#name_search').val())
{
data['name_search'] = $('#name_search').val();
}
if ($('#article_number_search').val())
{
data['article_number_search'] = $('#article_number_search').val();
}
if ($('#manufacture_search').val())
{
data['manufacture_search'] = $('#manufacture_search').val();
}
data['section_search'] = $('#section_search').val();
return data;
}
// поиск
$(document).ready(function(){
$('#search').on('click', function(){
var data = components_search_data();
$.post("../bin/phy_database.php?component_search=components_search", data , function(o)
{
if (o == "Ничего не найдено!")
{
bootbox.alert({
message: o,
size: 'small'
});
}
else
{
o = $.parseJSON(o);
draw_table(o);
}
});
});
});
//замена заголовка модального окна (так как вызывается то же окно, что и при редактировании), присвоение id кнопке сохранить
$(document).ready(function(){
$('#new_component_button').on('click', function(){
$('#modal_title').html('Добавить комплектующую');
});
});
// добавляем новую комплектующую
//$(document).ready( function(){
// $('body').on('click', '#descr_to_db', function(){
// var data = comp_desc_data();
// bootbox.confirm({
// message: "Вы уверены, что хотите добавить новую комплектующую?",
// buttons: {
// confirm: {
// label: 'Да'
// },
// cancel: {
// label: 'Отмена'
// }
// },
// callback: function (result) {
// if (result)
// {
// $.post("../bin/phy_database.php?new_component=new_component", data, function(o)
// {
// bootbox.alert({
// message: o,
// size: 'small',
// callback: function(){
// location.reload();
// }
// });
// });
// }
// }
// });
// });
//});
function check_required_field_name(name)
{
var p = true;
if (name.length < 1)
{
p = false;
}
return p;
}
function check_number(data)
{
var p = true;
if (data == '' || isNaN(data) || data < 0 )
{
return false;
}
return p;
}