Sat, 02 Mar 2019 17:42:08 +0100
Some extra firstcap keywords
/***************************************************************************** * Copyright (C) 2019 * * Michiel Broek <mbroek at mbse dot eu> * * This file is part of BMS * * 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. * * Brewery Management System 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_fermentation.php"; // tooltips $("#name").jqxTooltip({ content: 'De naam voor dit vergisting profiel.' }); $("#inittemp_lo").jqxTooltip({ content: 'De minimale begin temperatuur van dit profiel.' }); $("#inittemp_hi").jqxTooltip({ content: 'De maximale begin temperatuur van dit profiel.' }); // prepare the data var source = { datatype: "json", cache: false, datafields: [ { name: 'record', type: 'number' }, { name: 'uuid', type: 'string' }, { name: 'name', type: 'string' }, { name: 'inittemp_lo', type: 'float' }, { name: 'inittemp_hi', type: 'float' }, { name: 'fridgemode', type: 'int' }, { name: 'totalsteps', type: 'int' }, { name: 'duration', type: 'int' }, { 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); } }); } }; var dataAdapter = new $.jqx.dataAdapter(source); // Inline steps editor var editsteps = function (data) { var generaterow = function () { var row = {}; row["name"] = "Stap 1"; row['steptime'] = 12; row['resttime'] = 24; row['target_lo'] = 22.0; row['target_hi'] = 23.0; row['fridgemode'] = 0; return row; } var stepSource = { localdata: data.steps, datatype: "local", datafields: [ { name: 'name', type: 'string' }, { name: 'steptime', type: 'float' }, { name: 'resttime', type: 'float' }, { name: 'target_lo', type: 'float' }, { name: 'target_hi', type: 'float' }, { name: 'fridgemode', type: 'int' } ], addrow: function (rowid, rowdata, position, commit) { commit(true); }, deleterow: function (rowid, commit) { commit(true); } }; var stepAdapter = new $.jqx.dataAdapter(stepSource); $("#grid").jqxGrid({ width: 800, height: 330, source: stepAdapter, theme: theme, selectionmode: 'singlerow', editmode: 'selectedcell', editable: true, 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: 290px;" id="deleterowbutton" type="button" value="Verwijder stap" />'); $("#addrowbutton").jqxButton({ template: "primary", theme: theme, width: 150 }); $("#deleterowbutton").jqxButton({ template: "danger", 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: 'name' }, { text: 'Min. °C', datafield: 'target_lo', width: 100, align: 'right', cellsalign: 'right', cellsformat: 'f1', validation: function (cell, value) { if (value < 0 || value > 40) { return { result: false, message: "De temperatuur moet tussen 0 en 40 zijn." }; } return true; } }, { text: 'Max. °C', datafield: 'target_hi', width: 100, align: 'right', cellsalign: 'right', cellsformat: 'f1', validation: function (cell, value) { if (value < 0 || value > 40) { return { result: false, message: "De temperatuur moet tussen 0 en 40 zijn." }; } return true; } }, { text: 'Koelkast', datafield: 'fridgemode', columntype: 'checkbox', width: 80 }, { text: 'Stap tijd', datafield: 'steptime', width: 80, align: 'right', cellsalign: 'right', validation: function (cell, value) { if (value < 0 || value > 14400) { return { result: false, message: "De tijd moet tussen 0 en 14400 zijn." }; } return true; } }, { text: 'Rust tijd', datafield: 'resttime', width: 80, align: 'right', cellsalign: 'right', validation: function (cell, value) { if (value < 0 || value > 14400) { return { result: false, message: "De tijd moet tussen 0 en 14400 zijn." }; } return true; } } ] }); }; // initialize the input fields. $("#name").jqxInput({ theme: theme, width: 640, height: 23 }); $("#inittemp_lo").jqxNumberInput( Spin1dec ); $("#inittemp_lo").jqxNumberInput({ max: 40 }); $("#inittemp_hi").jqxNumberInput( Spin1dec ); $("#inittemp_hi").jqxNumberInput({ max: 40 }); $("#fridgemode").jqxCheckBox({ theme: theme, height: 23, enableContainerClick: false }); var editrow = -1; // initialize jqxGrid $("#jqxgrid").jqxGrid({ width: 1280, height: 630, source: dataAdapter, theme: theme, showstatusbar: true, 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('Nieuw vergist profiel'); dataRecord.uuid = ''; $("#inittemp_lo").val(20.0); $("#inittemp_hi").val(20.0); $("#fridgemode").val(0); dataRecord.totalsteps = 0; dataRecord.duration = 0; editsteps(''); $("#popupWindow").jqxWindow('open'); }); }, filterable: false, columns: [ { text: 'Vergisting profiel', datafield: 'name' }, { text: 'Min. start °C', datafield: 'inittemp_lo', width: 150, align: 'right', cellsalign: 'right', cellsformat: 'f1' }, { text: 'Max. start °C', datafield: 'inittemp_hi', width: 150, align: 'right', cellsalign: 'right', cellsformat: 'f1' }, { text: 'Stappen', datafield: 'totalsteps', width: 80, align: 'right', cellsalign: 'right' }, { text: 'Tijdsduur', datafield: 'duration', width: 150, align: 'right', cellsrenderer: function (row, columnfield, value, defaulthtml, column) { if (value < 24) { var show = value+" uur"; } else { var days = Math.floor(value / 24); var hours = value % 24; if (days == 1) var show = days+" dag, "+hours+" uur"; else var show = days+" dagen, "+hours+" uur"; } return "<span style='margin: 3px; margin-top: 6px; float: right;'>"+show+"</span>"; } }, { text: '', 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. dataRecord = $("#jqxgrid").jqxGrid('getrowdata', editrow); $("#name").val(dataRecord.name); $("#inittemp_lo").val(parseFloat(dataRecord.inittemp_lo)); $("#inittemp_hi").val(parseFloat(dataRecord.inittemp_hi)); $("#fridgemode").val(parseFloat(dataRecord.fridgemode)); editsteps(dataRecord); // show the popup window. $("#popupWindow").jqxWindow('open'); } } ] }); // initialize the popup window and buttons. $("#popupWindow").jqxWindow({ width: 1050, height: 550, 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 steprows = $('#grid').jqxGrid('getrows'); var rowID = -1; if (editrow >= 0) { var rowID = $('#jqxgrid').jqxGrid('getrowid', editrow); } var row = { record: rowID, uuid: dataRecord.uuid, name: $("#name").val(), inittemp_lo: parseFloat($("#inittemp_lo").jqxNumberInput('decimal')), inittemp_hi: parseFloat($("#inittemp_hi").jqxNumberInput('decimal')), fridgemode: $("#fridgemode").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(); });