Thu, 14 Feb 2019 16:11:29 +0100
Product print added yeast section.
/***************************************************************************** * 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 steprow = 0; var stepData = {}; var dataRecord = {}; var url = "includes/db_profile_mash.php"; // tooltips $("#name").jqxTooltip({ content: 'De naam voor dit maisch profiel.' }); $("#notes").jqxTooltip({ content: 'De uitgebreide opmerkingen over dit maisch profiel.' }); // prepare the data var source = { datatype: "json", cache: false, datafields: [ { name: 'record', type: 'number' }, { name: 'name', type: 'string' }, { name: 'notes', type: 'string' }, { name: 'steps', type: 'array' } ], 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); } }); } }; // Initialize the input fields. $("#m_step_name").jqxInput({ theme: theme, width: 320, height: 23 }); $("#m_step_type").jqxDropDownList({ theme: theme, source: MashStepTypeAdapter, valueMember: 'id', displayMember: 'nl', width: 180, height: 23, autoDropDownHeight: true }); $("#m_step_temp").jqxNumberInput( Spin1dec ); $("#m_step_temp").jqxNumberInput({ Min: 30, Max: 80 }); $("#m_end_temp").jqxNumberInput( Spin1dec ); $("#m_end_temp").jqxNumberInput({ Min: 30, Max: 80 }); $("#m_step_time").jqxNumberInput( PosInt ); $("#m_step_time").jqxNumberInput({ Min: 1, Max: 120 }); $("#m_ramp_time").jqxNumberInput( PosInt ); $("#m_ramp_time").jqxNumberInput({ Min: 1, Max: 30 }); var dataAdapter = new $.jqx.dataAdapter(source); // Inline steps editor var editsteps = function (data) { var generaterow = function () { var row = {}; row['step_name'] = "Stap 1"; row['step_type'] = 0; row['step_temp'] = 62.0; row['step_time'] = 20.0; row['ramp_time'] = 1.0; row['end_temp'] = 62.0; return row; } var stepSource = { localdata: data.steps, datatype: "local", datafields: [ { name: 'step_name', type: 'string' }, { name: 'step_type', type: 'int' }, { name: 'step_temp', type: 'float' }, { name: 'step_time', type: 'float' }, { name: 'ramp_time', type: 'float' }, { name: 'end_temp', type: 'float' } ], addrow: function (rowid, rowdata, position, commit) { commit(true); }, deleterow: function (rowid, commit) { commit(true); } }; var stepAdapter = new $.jqx.dataAdapter(stepSource); $("#grid").jqxGrid({ width: 1020, height: 330, source: stepAdapter, theme: theme, selectionmode: 'singlerow', localization: getLocalization(), showtoolbar: true, rendertoolbar: function (toolbar) { var me = this; var container = $("<div style='margin: 5px;'></div>"); toolbar.append(container); container.append('<input style="margin-left: 100px;" id="addrowbutton" type="button" value="Nieuwe stap" />'); container.append('<input style="margin-left: 450px;" id="deleterowbutton" type="button" value="Verwijder stap" />'); $("#addrowbutton").jqxButton({ template: "primary", theme: theme, width: 150 }); $("#deleterowbutton").jqxButton({ template: "primary", theme: theme, width: 150 }); // create new row. $("#addrowbutton").on('click', function () { var datarow = generaterow(); var commit = $("#grid").jqxGrid('addrow', null, datarow); }); // delete row. $("#deleterowbutton").on('click', function () { var selectedrowindex = $("#grid").jqxGrid('getselectedrowindex'); var rowscount = $("#grid").jqxGrid('getdatainformation').rowscount; if (selectedrowindex >= 0 && selectedrowindex < rowscount) { var id = $("#grid").jqxGrid('getrowid', selectedrowindex); var commit = $("#grid").jqxGrid('deleterow', id); } }); }, columns: [ { text: 'Stap naam', datafield: 'step_name' }, { text: 'Stap type', datafield: 'step_type', width: 150, cellsrenderer: function (index, datafield, value, defaultvalue, column, rowdata) { return "<div style='margin: 4px;'>" + MashStepTypeData[value].nl + "</div>"; } }, { text: 'Begin °C', datafield: 'step_temp', width: 100, align: 'right', cellsalign: 'right', cellsformat: 'f1' }, { text: 'Eind °C', datafield: 'end_temp', width: 100, align: 'right', cellsalign: 'right', cellsformat: 'f1' }, { text: 'Rusttijd', datafield: 'step_time', width: 80, align: 'right', cellsalign: 'right' }, { text: 'Opwarmtijd', datafield: 'ramp_time', width: 80, align: 'right', cellsalign: 'right' }, { text: 'Wijzig', datafield: 'Edit', columntype: 'button', width: 100, align: 'center', cellsrenderer: function () { return "Wijzig"; }, buttonclick: function (row) { steprow = row; stepData = $("#grid").jqxGrid('getrowdata', steprow); $("#m_step_name").val(stepData.step_name); $("#m_step_type").val(stepData.step_type); $("#m_step_temp").val(stepData.step_temp); $("#m_end_temp").val(stepData.end_temp); $("#m_step_time").val(stepData.step_time); $("#m_ramp_time").val(stepData.ramp_time); // show the popup window. $("#popupStep").jqxWindow('open'); } } ] }); }; // initialize the input fields. $("#name").jqxInput({ theme: theme, width: 480, height: 23 }); $("#notes").jqxInput({ theme: theme, width: 800, height: 100 }); 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;'>Add</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('Nieuw maisch schema'); $("#notes").val(''); editsteps(''); $("#popupWindow").jqxWindow('open'); }); }, filterable: true, filtermode: 'excel', columns: [ { text: 'Maish schema', datafield: 'name', width: 250 }, { text: 'Opmerkingen', datafield: 'notes' }, { text: 'Wijzig', datafield: 'Edit', width: 100, align: 'center', columntype: 'button', cellsrenderer: function () { return "Wijzig"; }, buttonclick: function (row) { editrow = row; // get the clicked row's data and initialize the input fields. var dataRecord = $("#jqxgrid").jqxGrid('getrowdata', editrow); $("#name").val(dataRecord.name); $("#notes").val(dataRecord.notes); editsteps(dataRecord); // show the popup window. $("#popupWindow").jqxWindow('open'); } } ] }); // initialize the popup window and buttons. $("#popupWindow").jqxWindow({ width: 1050, height: 580, 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'); }); $("#popupStep").jqxWindow({ width: 800, height: 300, position: { x: 230, y: 100 }, resizable: false, theme: theme, isModal: true, autoOpen: false, cancelButton: $("#Ready"), modalOpacity: 0.40 }); // step detail popup update values. $("#Ready").jqxButton({ template: "success", width: '90px', theme: theme }); $("#Ready").click(function () { $("#grid").jqxGrid('setcellvalue', steprow, 'step_name', $("#m_step_name").val()); $("#grid").jqxGrid('setcellvalue', steprow, 'step_type', $("#m_step_type").val()); $("#grid").jqxGrid('setcellvalue', steprow, 'step_temp', $("#m_step_temp").val()); $("#grid").jqxGrid('setcellvalue', steprow, 'end_temp', $("#m_end_temp").val()); $("#grid").jqxGrid('setcellvalue', steprow, 'step_time', $("#m_step_time").val()); $("#grid").jqxGrid('setcellvalue', steprow, 'ramp_time', $("#m_ramp_time").val()); $('#grid').jqxGrid('sortby', 'step_temp', 'asc'); }); // mash profile popup. $("#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 steprows = $('#grid').jqxGrid('getrows'); var rowID = -1; if (editrow >= 0) { rowID = $('#jqxgrid').jqxGrid('getrowid', editrow); } var row = { record: rowID, name: $("#name").val(), notes: $("#notes").val(), steps: steprows }; if (editrow >= 0) { $('#jqxgrid').jqxGrid('updaterow', rowID, row); } else { $('#jqxgrid').jqxGrid('addrow', null, row); } $("#popupWindow").jqxWindow('hide'); location.reload( true ); // reload ourself. }); createDelElements(); });