Sun, 03 Feb 2019 23:13:16 +0100
Adjusted product save into the database.
/***************************************************************************** * Copyright (C) 2014-2019 * * Michiel Broek <mbroek at mbse dot eu> * * This file is part of BrewCloud * * This is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2, or (at your option) any * later version. * * BrewCloud is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. * * You should have received a copy of the GNU General Public License * along with ThermFerm; see the file COPYING. If not, write to the Free * Software Foundation, 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. *****************************************************************************/ function createDelElements() { $('#eventWindow').jqxWindow({ theme: theme, position: { x: 490, y: 210 }, width: 300, height: 175, resizable: false, isModal: true, modalOpacity: 0.4, okButton: $('#delOk'), cancelButton: $('#delCancel'), initContent: function () { $('#delOk').jqxButton({ template: "danger", width: '65px', theme: theme }); $('#delCancel').jqxButton({ template: "success", width: '65px', theme: theme }); $('#delCancel').focus(); } }); $('#eventWindow').jqxWindow('hide'); } $(document).ready(function () { var dataRecord = {}; var url = "includes/db_profile_styles.php"; // prepare the data var source = { datatype: "json", cache: false, datafields: [ { name: 'record', type: 'number' }, { name: 'name', type: 'string' }, { name: 'category', type: 'string' }, { name: 'category_number', type: 'number' }, { name: 'style_letter', type: 'string' }, { name: 'style_guide', type: 'string' }, { name: 'type', type: 'int' }, { name: 'og_min', type: 'float' }, { name: 'og_max', type: 'float' }, { name: 'fg_min', type: 'float' }, { name: 'fg_max', type: 'float' }, { name: 'ibu_min', type: 'float' }, { name: 'ibu_max', type: 'float' }, { name: 'color_min', type: 'float' }, { name: 'color_max', type: 'float' }, { name: 'carb_min', type: 'float' }, { name: 'carb_max', type: 'float' }, { name: 'abv_min', type: 'float' }, { name: 'abv_max', type: 'float' }, { name: 'notes', type: 'string' }, { name: 'profile', type: 'string' }, { name: 'ingredients', type: 'string' }, { name: 'examples', type: 'string' } ], id: 'record', url: url, deleterow: function (rowid, commit) { // synchronize with the server - send delete command var data = "delete=true&" + $.param({ record: rowid }); $.ajax({ dataType: 'json', url: url, cache: false, data: data, type: "POST", success: function (data, status, xhr) { // delete command is executed. commit(true); }, error: function (jqXHR, textStatus, errorThrown) { commit(false); } }); }, addrow: function (rowid, rowdata, position, commit) { var data = "insert=true&" + $.param(rowdata); $.ajax({ dataType: 'json', url: url, cache: false, data: data, type: "POST", success: function (data, status, xhr) { commit(true); }, error: function(jqXHR, textStatus, errorThrown) { commit(false); } }); }, updaterow: function (rowid, rowdata, commit) { var data = "update=true&" + $.param(rowdata); $.ajax({ dataType: 'json', url: url, cache: false, data: data, type: "POST", success: function (data, status, xhr) { // update command is executed. commit(true); }, error: function(jqXHR, textStatus, errorThrown) { commit(false); } }); } }; var srcType = [ "Lager", "Ale", "Mead", "Wheat", "Mixed", "Cider" ]; // initialize the input fields. $("#name").jqxInput({ theme: theme, width: 320, height: 23 }); $("#category").jqxInput({ theme: theme, width: 320, height: 23 }); $("#category_number").jqxNumberInput( PosInt ); $("#style_letter").jqxInput({ theme: theme, width: 250, height: 23 }); $("#style_guide").jqxInput({ theme: theme, width: 320, height: 23 }); $("#type").jqxDropDownList({ theme: theme, source: StyleTypeAdapter, valueMember: 'id', displayMember: 'nl', width: 180, height: 23, autoDropDownHeight: true }); $("#og_min").jqxNumberInput( SGopts ); $("#og_max").jqxNumberInput( SGopts ); $("#fg_min").jqxNumberInput( SGopts ); $("#fg_max").jqxNumberInput( SGopts ); $("#ibu_min").jqxNumberInput( PosInt ); $("#ibu_min").jqxNumberInput({ max: 200 }); $("#ibu_max").jqxNumberInput( PosInt ); $("#ibu_max").jqxNumberInput({ max: 200 }); $("#color_min").jqxNumberInput( PosInt ); $("#color_min").jqxNumberInput({ max: 200 }); $("#color_max").jqxNumberInput( PosInt ); $("#color_max").jqxNumberInput({ max: 200 }); $("#carb_min").jqxNumberInput( Spin1dec1 ); $("#carb_min").jqxNumberInput({ max: 5 }); $("#carb_max").jqxNumberInput( Spin1dec1 ); $("#carb_max").jqxNumberInput({ max: 5 }); $("#abv_min").jqxNumberInput( Spin1dec1 ); $("#abv_min").jqxNumberInput({ max: 20 }); $("#abv_max").jqxNumberInput( Spin1dec1 ); $("#abv_max").jqxNumberInput({ max: 20 }); $("#notes").jqxInput({ theme: theme, width: 800, height: 100 }); $("#profile").jqxInput({ theme: theme, width: 800, height: 48 }); $("#ingredients").jqxInput({ theme: theme, width: 800, height: 23 }); $("#examples").jqxInput({ theme: theme, width: 800, height: 48 }); var dataAdapter = new $.jqx.dataAdapter(source); var editrow = -1; // initialize jqxGrid $("#jqxgrid").jqxGrid({ width: 1280, height: 630, source: dataAdapter, theme: theme, showstatusbar: true, localization: getLocalization(), renderstatusbar: function (statusbar) { var container = $("<div style='overflow: hidden; position: relative; margin: 5px;'></div>"); var addButton = $("<div style='float: right; margin-right: 15px;'><img style='position: relative; margin-top: 2px;' src='images/add.png'/><span style='margin-left: 4px; position: relative; top: -3px;'>Nieuw</span></div>"); container.append(addButton); statusbar.append(container); addButton.jqxButton({ theme: theme, width: 90, height: 20 }); // add new row. addButton.click(function (event) { editrow = -1; $("#name").val('Nieuwe stijl'); $("#category").val(''); $("#category_number").val(''); $("#style_letter").val(''); $("#style_guide").val('BKG 2015'); $("#type").val(0); $("#og_min").val(1.030); $("#og_max").val(1.050); $("#fg_min").val(1.005); $("#fg_max").val(1.010); $("#ibu_min").val(20); $("#ibu_max").val(30); $("#color_min").val(52); $("#color_max").val(79); $("#carb_min").val(2.0); $("#carb_max").val(2.5); $("#abv_min").val(4.0); $("#abv_max").val(5.0); $("#notes").val(''); $("#profile").val(''); $("#ingredients").val(''); $("#examples").val(''); $("#popupWindow").jqxWindow('open'); }); }, filterable: true, filtermode: 'excel', columns: [ { text: 'Groep', datafield: 'style_letter', width: 30 }, { text: 'Style Name', menu: false, datafield: 'name' }, { text: 'OG', menu: false, datafield: 'og_min', width: 60, align: 'right', cellsalign: 'right', cellsformat: 'f3' }, { text: 'OG', menu: false, datafield: 'og_max', width: 60, align: 'right', cellsalign: 'right', cellsformat: 'f3' }, { text: 'FG', menu: false, datafield: 'fg_min', width: 60, align: 'right', cellsalign: 'right', cellsformat: 'f3' }, { text: 'FG', menu: false, datafield: 'fg_max', width: 60, align: 'right', cellsalign: 'right', cellsformat: 'f3' }, { text: 'IBU', menu: false, datafield: 'ibu_min', width: 60, align: 'right', cellsalign: 'right', cellsformat: 'f0' }, { text: 'IBU', menu: false, datafield: 'ibu_max', width: 60, align: 'right', cellsalign: 'right', cellsformat: 'f0' }, { text: 'EBC', menu: false, datafield: 'color_min', width: 60, align: 'right', cellsalign: 'right', cellsformat: 'f0' }, { text: 'EBC', menu: false, datafield: 'color_max', width: 60, align: 'right', cellsalign: 'right', cellsformat: 'f0' }, { text: 'Co2', menu: false, datafield: 'carb_min', width: 60, align: 'right', cellsalign: 'right', cellsformat: 'f1' }, { text: 'Co2', menu: false, datafield: 'carb_max', width: 60, align: 'right', cellsalign: 'right', cellsformat: 'f1' }, { text: 'ABV', menu: false, datafield: 'abv_min', width: 60, align: 'right', cellsalign: 'right', cellsformat: 'f1' }, { text: 'ABV', menu: false, datafield: 'abv_max', width: 60, align: 'right', cellsalign: 'right', cellsformat: 'f1' }, { text: 'Wijzig', menu: false, datafield: 'Edit', width: 100, align: 'center', columntype: 'button', cellsrenderer: function () { return "Wijzig"; }, buttonclick: function (row) { // open the popup window when the user clicks a button. editrow = row; // get the clicked row's data and initialize the input fields. var dataRecord = $("#jqxgrid").jqxGrid('getrowdata', editrow); $("#name").val(dataRecord.name); $("#category").val(dataRecord.category); $("#category_number").val(dataRecord.category_number); $("#style_letter").val(dataRecord.style_letter); $("#style_guide").val(dataRecord.style_guide); $("#type").val(dataRecord.type); $("#og_min").val(dataRecord.og_min); $("#og_max").val(dataRecord.og_max); $("#fg_min").val(dataRecord.fg_min); $("#fg_max").val(dataRecord.fg_max); $("#ibu_min").val(dataRecord.ibu_min); $("#ibu_max").val(dataRecord.ibu_max); $("#color_min").val(dataRecord.color_min); $("#color_max").val(dataRecord.color_max); $("#carb_min").val(dataRecord.carb_min); $("#carb_max").val(dataRecord.carb_max); $("#abv_min").val(dataRecord.abv_min); $("#abv_max").val(dataRecord.abv_max); $("#notes").val(dataRecord.notes); $("#profile").val(dataRecord.profile); $("#ingredients").val(dataRecord.ingredients); $("#examples").val(dataRecord.examples); // show the popup window. $("#popupWindow").jqxWindow('open'); } } ] }); // initialize the popup window and buttons. $("#popupWindow").jqxWindow({ width: 1050, position: { x: 110, y: 30 }, resizable: false, theme: theme, isModal: true, autoOpen: false, cancelButton: $("#Cancel"), modalOpacity: 0.40 }); $("#popupWindow").on('open', function () { $("#name").jqxInput('selectAll'); }); $("#Delete").jqxButton({ template: "danger", width: '90px', theme: theme }); $("#Delete").click(function () { if (editrow >= 0) { // Open a popup to confirm this action. $('#eventWindow').jqxWindow('open'); $("#delOk").click(function () { var rowID = $('#jqxgrid').jqxGrid('getrowid', editrow); $("#jqxgrid").jqxGrid('deleterow', rowID); }); } $("#popupWindow").jqxWindow('hide'); }); $("#Cancel").jqxButton({ template: "primary", width: '90px', theme: theme }); $("#Save").jqxButton({ template: "success", width: '90px', theme: theme }); // update the edited row when the user clicks the 'Save' button. $("#Save").click(function () { var rowID = -1; if (editrow >= 0) { rowID = $('#jqxgrid').jqxGrid('getrowid', editrow); } var row = { record: rowID, name: $("#name").val(), category: $("#category").val(), category_number: parseFloat($("#category_number").jqxNumberInput('decimal')), style_letter: $("#style_letter").val(), style_guide: $("#style_guide").val(), type: $("#type").val(), og_min: parseFloat($("#og_min").jqxNumberInput('decimal')), og_max: parseFloat($("#og_max").jqxNumberInput('decimal')), fg_min: parseFloat($("#fg_min").jqxNumberInput('decimal')), fg_max: parseFloat($("#fg_max").jqxNumberInput('decimal')), ibu_min: parseFloat($("#ibu_min").jqxNumberInput('decimal')), ibu_max: parseFloat($("#ibu_max").jqxNumberInput('decimal')), color_min: parseFloat($("#color_min").jqxNumberInput('decimal')), color_max: parseFloat($("#color_max").jqxNumberInput('decimal')), carb_min: parseFloat($("#carb_min").jqxNumberInput('decimal')), carb_max: parseFloat($("#carb_max").jqxNumberInput('decimal')), abv_min: parseFloat($("#abv_min").jqxNumberInput('decimal')), abv_max: parseFloat($("#abv_max").jqxNumberInput('decimal')), notes: $("#notes").val(), profile: $("#profile").val(), ingredients: $("#ingredients").val(), examples: $("#examples").val() }; if (editrow >= 0) { $('#jqxgrid').jqxGrid('updaterow', rowID, row); } else { $('#jqxgrid').jqxGrid('addrow', null, row); } $("#popupWindow").jqxWindow('hide'); location.reload( true ); // reload ourself. }); createDelElements(); });