Tue, 20 Nov 2018 14:39:15 +0100
Added brewday data
/***************************************************************************** * Copyright (C) 2014-2018 * * 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 url = "includes/db_inventory_fermentables.php"; // prepare the data var source = { datatype: "json", cache: false, datafields: [ { name: 'record', type: 'number' }, { name: 'name', type: 'string' }, { name: 'type', type: 'string' }, { name: 'yield', type: 'float' }, { name: 'color', type: 'float' }, { name: 'add_after_boil', type: 'bool' }, { name: 'origin', type: 'string' }, { name: 'supplier', type: 'string' }, { name: 'notes', type: 'string' }, { name: 'coarse_fine_diff', type: 'float' }, { name: 'moisture', type: 'float' }, { name: 'diastatic_power', type: 'float' }, { name: 'protein', type: 'float' }, { name: 'max_in_batch', type: 'float' }, { name: 'recommend_mash', type: 'bool' }, { name: 'ibu_gal_per_lb', type: 'float' }, { name: 'always_on_stock', type: 'bool' }, { name: 'di_ph', type: 'float' }, { name: 'acid_to_ph_57', type: 'float' }, { name: 'graintype', type: 'string' }, { name: 'inventory', type: 'float' }, { name: 'cost', type: 'float' }, { name: 'production_date', type: 'string' }, { name: 'tht_date', 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, 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, 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, success: function (data, status, xhr) { // update command is executed. commit(true); }, error: function(jqXHR, textStatus, errorThrown) { commit(false); } }); } }; var srcType = [ "Grain", "Sugar", "Extract", "Dry Extract", "Adjunct" ]; var srcGraintype = [ "Base", "Crystal", "Special", "Roast", "Kilned", "No malt" ]; // initialize the input fields. $("#name").jqxInput({ theme: theme, width: 250, height: 23 }); $("#type").jqxDropDownList({ theme: theme, source: srcType, width: 100, height: 23, dropDownHeight: 156 }); $("#yield").jqxNumberInput({ inputMode: 'simple', spinMode: 'simple', theme: theme, width: 70, height: 23, min: 0, decimalDigits: 1, spinButtons: true }); $("#color").jqxNumberInput({ inputMode: 'simple', spinMode: 'simple', theme: theme, width: 70, height: 23, min: 0, decimalDigits: 1, spinButtons: true }); $("#add_after_boil").jqxCheckBox({ theme: theme, width: 120, height: 23 }); $("#origin").jqxInput({ theme: theme, width: 250, height: 23 }); $("#supplier").jqxInput({ theme: theme, width: 250, height: 23 }); $("#notes").jqxInput({ theme: theme, width: 640, height: 100 }); $("#coarse_fine_diff").jqxNumberInput({ inputMode: 'simple', spinMode: 'simple', theme: theme, width: 70, height: 23, min: 0, decimalDigits: 1, spinButtons: true }); $("#moisture").jqxNumberInput({ inputMode: 'simple', spinMode: 'simple', theme: theme, width: 70, height: 23, min: 0, decimalDigits: 1, spinButtons: true }); $("#diastatic_power").jqxNumberInput({ inputMode: 'simple', spinMode: 'simple', theme: theme, width: 70, height: 23, min: 0, decimalDigits: 1, spinButtons: true }); $("#protein").jqxNumberInput({ inputMode: 'simple', spinMode: 'simple', theme: theme, width: 70, height: 23, min: 0, decimalDigits: 1, spinButtons: true }); $("#max_in_batch").jqxNumberInput({ inputMode: 'simple', spinMode: 'simple', theme: theme, width: 70, height: 23, min: 0, decimalDigits: 1, spinButtons: true }); $("#recommend_mash").jqxCheckBox({ theme: theme, width: 120, height: 23 }); $("#ibu_gal_per_lb").jqxNumberInput({ inputMode: 'simple', spinMode: 'simple', theme: theme, width: 70, height: 23, min: 0, decimalDigits: 1, spinButtons: true }); $("#always_on_stock").jqxCheckBox({ theme: theme, width: 120, height: 23 }); $("#di_ph").jqxNumberInput({ inputMode: 'simple', spinMode: 'simple', theme: theme, width: 70, height: 23, min: 0, decimalDigits: 1, spinButtons: true }); $("#acid_to_ph_57").jqxNumberInput({ inputMode: 'simple', spinMode: 'simple', theme: theme, width: 70, height: 23, min: 0, decimalDigits: 1, spinButtons: true }); $("#graintype").jqxDropDownList({ theme: theme, source: srcGraintype, width: 100, height: 23, dropDownHeight: 185 }); $("#inventory").jqxNumberInput({ inputMode: 'simple', spinMode: 'simple', theme: theme, width: 70, height: 23, min: 0, decimalDigits: 1, spinButtons: true }); $("#production_date").jqxDateTimeInput({ theme: theme, width: 100, height: 23, formatString: 'yyyy-MM-dd' }); $("#cost").jqxNumberInput({ inputMode: 'simple', spinMode: 'simple', theme: theme, width: 70, height: 23, min: 0, decimalDigits: 2, spinButtons: true }); $("#tht_date").jqxDateTimeInput({ theme: theme, width: 100, height: 23, formatString: 'yyyy-MM-dd' }); 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: 120, height: 20 }); // add new row. addButton.click(function (event) { editrow = -1; $("#popupWindow").jqxWindow({ position: { x: 230, y: 30 } }); $("#name").val(''); $("#type").val('Grain'); $("#origin").val(''); $("#supplier").val(''); $("#notes").val(''); $("#coarse_fine_diff").val(''); $("#moisture").val(''); $("#diastatic_power").val(''); $("#protein").val(''); $("#max_in_batch").val(''); $("#recommend_mash").val(''); $("#ibu_gal_per_lb").val(''); $("#always_on_stock").val(''); $("#di_ph").val(''); $("#acid_to_ph_57").val(''); $("#graintype").val(''); $("#inventory").val(''); $("#cost").val(''); $("#production_date").val(''); $("#tht_date").val(''); $("#popupWindow").jqxWindow('open'); }); }, filterable: true, filtermode: 'excel', columns: [ { text: 'Producent', datafield: 'supplier', width: 200 }, { text: 'Vergistbaar product', datafield: 'name' }, { text: 'Soort', datafield: 'type', align: 'center', cellsalign: 'center', width: 90 }, { text: 'Mout type', datafield: 'graintype', align: 'center', cellsalign: 'center', width: 90 }, { text: 'Herkomst', datafield: 'origin', width: 150 }, { text: 'Kleur', datafield: 'color', width: 70, align: 'right', cellsalign: 'right' }, { text: 'Opbrengst', datafield: 'yield', width: 70, align: 'right', cellsalign: 'right', cellsformat: 'p1' }, { text: 'Vooraad', datafield: 'inventory', width: 100, align: 'right', cellsalign: 'right', cellsformat: 'f3' }, { text: 'Prijs', datafield: 'cost', width: 100, align: 'right', cellsalign: 'right', cellsformat: 'c2' }, { text: 'Wijzig', datafield: 'Edit', width: 120, align: 'center', columntype: 'button', cellsrenderer: function () { return "Wijzig"; }, buttonclick: function (row) { // open the popup window when the user clicks a button. editrow = row; $("#popupWindow").jqxWindow({ position: { x: 230, y: 30 } }); // get the clicked row's data and initialize the input fields. var dataRecord = $("#jqxgrid").jqxGrid('getrowdata', editrow); $("#name").val(dataRecord.name); $("#type").val(dataRecord.type); $("#yield").val(dataRecord.yield); $("#color").val(dataRecord.color); $("#add_after_boil").val(dataRecord.add_after_boil); $("#origin").val(dataRecord.origin); $("#supplier").val(dataRecord.supplier); $("#notes").val(dataRecord.notes); $("#coarse_fine_diff").val(dataRecord.coarse_fine_diff); $("#moisture").val(dataRecord.moisture); $("#diastatic_power").val(dataRecord.diastatic_power); $("#protein").val(dataRecord.protein); $("#max_in_batch").val(dataRecord.max_in_batch); $("#recommend_mash").val(dataRecord.recommend_mash); $("#ibu_gal_per_lb").val(dataRecord.ibu_gal_per_lb); $("#always_on_stock").val(dataRecord.always_on_stock); $("#di_ph").val(dataRecord.di_ph); $("#acid_to_ph_57").val(dataRecord.acid_to_ph_57); $("#graintype").val(dataRecord.graintype); $("#inventory").val(dataRecord.inventory); $("#cost").val(dataRecord.cost); $("#production_date").val(dataRecord.production_date); $("#tht_date").val(dataRecord.tht_date); // show the popup window. $("#popupWindow").jqxWindow('open'); } } ] }); // initialize the popup window and buttons. $("#popupWindow").jqxWindow({ width: 860, resizable: false, theme: theme, isModal: true, autoOpen: false, cancelButton: $("#Cancel"), modalOpacity: 0.40 }); $("#popupWindow").on('open', function () { $("#name").jqxInput('selectAll'); }); $("#Delete").jqxButton({ 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({ theme: theme }); $("#Save").jqxButton({ theme: theme }); // update the edited row when the user clicks the 'Save' button. $("#Save").click(function () { if (editrow >= 0) { var rowID = $('#jqxgrid').jqxGrid('getrowid', editrow); var row = { record: rowID, name: $("#name").val(), type: $("#type").val(), yield: parseFloat($("#yield").jqxNumberInput('decimal')), color: parseFloat($("#color").jqxNumberInput('decimal')), add_after_boil: $("#add_after_boil").val(), origin: $("#origin").val(), supplier: $("#supplier").val(), notes: $("#notes").val(), coarse_fine_diff: parseFloat($("#coarse_fine_diff").jqxNumberInput('decimal')), moisture: parseFloat($("#moisture").jqxNumberInput('decimal')), diastatic_power: parseFloat($("#diastatic_power").jqxNumberInput('decimal')), protein: parseFloat($("#protein").jqxNumberInput('decimal')), max_in_batch: parseFloat($("#max_in_batch").jqxNumberInput('decimal')), recommend_mash: $("#recommend_mash").val(), ibu_gal_per_lb: parseFloat($("#ibu_gal_per_lb").jqxNumberInput('decimal')), always_on_stock: $("#always_on_stock").val(), di_ph: parseFloat($("#di_ph").jqxNumberInput('decimal')), acid_to_ph_57: parseFloat($("#acid_to_ph_57").jqxNumberInput('decimal')), graintype: $("#graintype").val(), inventory: parseFloat($("#inventory").jqxNumberInput('decimal')), cost: parseFloat($("#cost").jqxNumberInput('decimal')), production_date: $("#production_date").val(), tht_date: $("#tht_date").val(), }; $('#jqxgrid').jqxGrid('updaterow', rowID, row); $("#popupWindow").jqxWindow('hide'); } else { // Insert a record var newrow = { record: -1, name: $("#name").val(), type: $("#type").val(), yield: parseFloat($("#yield").jqxNumberInput('decimal')), color: parseFloat($("#color").jqxNumberInput('decimal')), add_after_boil: $("#add_after_boil").val(), origin: $("#origin").val(), supplier: $("#supplier").val(), notes: $("#notes").val(), coarse_fine_diff: parseFloat($("#coarse_fine_diff").jqxNumberInput('decimal')), moisture: parseFloat($("#moisture").jqxNumberInput('decimal')), diastatic_power: parseFloat($("#diastatic_power").jqxNumberInput('decimal')), protein: parseFloat($("#protein").jqxNumberInput('decimal')), max_in_batch: parseFloat($("#max_in_batch").jqxNumberInput('decimal')), recommend_mash: $("#recommend_mash").val(), ibu_gal_per_lb: parseFloat($("#ibu_gal_per_lb").jqxNumberInput('decimal')), always_on_stock: $("#always_on_stock").val(), di_ph: parseFloat($("#di_ph").jqxNumberInput('decimal')), acid_to_ph_57: parseFloat($("#acid_to_ph_57").jqxNumberInput('decimal')), graintype: $("#graintype").val(), inventory: parseFloat($("#inventory").jqxNumberInput('decimal')), cost: parseFloat($("#cost").jqxNumberInput('decimal')), production_date: $("#production_date").val(), tht_date: $("#tht_date").val(), }; $('#jqxgrid').jqxGrid('addrow', null, newrow); $("#popupWindow").jqxWindow('hide'); } }); createDelElements(); });