diff -r 9472106a3143 -r 6ce2c2e6796e www/js/profile_fermentation.js --- a/www/js/profile_fermentation.js Mon Jul 11 15:46:18 2022 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,392 +0,0 @@ -/***************************************************************************** - * Copyright (C) 2019-2021 - * - * Michiel Broek - * - * 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() { - - // 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.' }); - - var dataRecord = {}, - url = 'includes/db_profile_fermentation.php', - 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) { - var data = 'delete=true&' + $.param({ record: rowid }); - $.ajax({ - dataType: 'json', - url: url, - cache: false, - data: data, - type: 'POST', - success: function(data) { - if (data.error) { - console.log('delete: ' + data.msg); - alert('Fout: ' + data.msg); - } else { - console.log('delete: success'); - } - location.reload(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) { - if (data.error) { - console.log('insert: ' + data.msg); - alert('Fout: ' + data.msg); - } else { - console.log('insert: success'); - } - location.reload(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) { - if (data.error) { - console.log('updaterow: ' + data.msg); - alert('Fout: ' + data.msg); - } else { - console.log('updaterow: success'); - } - location.reload(true); - }, - error: function(jqXHR, textStatus, errorThrown) { commit(false); } - }); - } - }, - dataAdapter = new $.jqx.dataAdapter(source), - editrow = -1, - - // Inline steps editor - 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); } - }, - 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 container = $('
'); - toolbar.append(container); - container.append(''); - container.append(''); - $('#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(); - $('#grid').jqxGrid('addrow', null, datarow); - }); - // delete row. - $('#deleterowbutton').on('click', function() { - var selectedrowindex = $('#grid').jqxGrid('getselectedrowindex'), - rowscount = $('#grid').jqxGrid('getdatainformation').rowscount, - id; - if (selectedrowindex >= 0 && selectedrowindex < rowscount) { - id = $('#grid').jqxGrid('getrowid', selectedrowindex); - $('#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 > 45) { - return { result: false, message: 'De temperatuur moet tussen 0 en 45 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 > 45) { - return { result: false, message: 'De temperatuur moet tussen 0 en 45 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: 45 }); - $('#inittemp_hi').jqxNumberInput(Spin1dec); - $('#inittemp_hi').jqxNumberInput({ max: 45 }); - $('#fridgemode').jqxCheckBox({ theme: theme, height: 23, enableContainerClick: false }); - - var localizationobj = {}; - localizationobj.filterchoosestring= "Keuze:"; - - // initialize jqxGrid - $('#jqxgrid').jqxGrid({ - width: 1280, - height: 630, - source: dataAdapter, - theme: theme, - showstatusbar: true, - renderstatusbar: function(statusbar) { - var rowCount = $("#jqxgrid").jqxGrid('getrows').length; - statusbar.append('
Aantal items: ' + rowCount + '
'); - var container = $('
'); - var addButton = $('
Nieuw
'); - container.append(addButton); - statusbar.append(container); - addButton.jqxButton({ theme: theme, width: 90, height: 17 }); - // 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'); - }); - }, - ready: function () { - $("#jqxgrid").jqxGrid('localizestrings', localizationobj); - }, - filterable: true, - showfilterrow: true, - columns: [ - { text: 'Vergisting profiel', datafield: 'name', filtertype: 'textbox' }, - { text: 'Min. start °C', datafield: 'inittemp_lo', width: 120, align: 'right', cellsalign: 'right', cellsformat: 'f1', filtertype: 'number' }, - { text: 'Max. start °C', datafield: 'inittemp_hi', width: 120, align: 'right', cellsalign: 'right', cellsformat: 'f1', filtertype: 'number' }, - { text: 'Sensor', datafield: 'fridgemode', align: 'right', width: 80, filterable: false, - cellsrenderer: function(row, columnfield, value, defaulthtml, column) { - if (value == 0) - return 'Bier'; - else - return 'Koelkast'; - } - }, - { text: 'Stappen', datafield: 'totalsteps', width: 80, align: 'right', cellsalign: 'right', filterable: false }, - { text: 'Tijdsduur', datafield: 'duration', width: 150, align: 'right', filterable: false, - cellsrenderer: function(row, columnfield, value, defaulthtml, column) { - var show, days, hours; - if (value < 24) { - show = value + ' uur'; - } else { - days = Math.floor(value / 24); - hours = value % 24; - if (days == 1) - show = days + ' dag, ' + hours + ' uur'; - else - show = days + ' dagen, ' + hours + ' uur'; - } - return '' + show + ''; - } - }, - { text: '', datafield: 'Edit', width: 100, align: 'center', columntype: 'button', filterable: false, 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 }); - $('#Clone').jqxButton({ template: 'warning', width: '90px', theme: theme }); - $('#Clone').click(function() { - var steprows = $('#grid').jqxGrid('getrows'); - var row = { - record: -1, - name: $('#name').val() + ' kopie', - inittemp_lo: parseFloat($('#inittemp_lo').jqxNumberInput('decimal')), - inittemp_hi: parseFloat($('#inittemp_hi').jqxNumberInput('decimal')), - fridgemode: $('#fridgemode').val(), - steps: steprows - }; - $('#jqxgrid').jqxGrid('addrow', null, row); - $('#popupWindow').jqxWindow('hide'); - }); - $('#Save').jqxButton({ template: 'success', width: '90px', theme: theme }); - // update the edited row when the user clicks the 'Save' button. - $('#Save').click(function() { - var row, rowID = -1, steprows = $('#grid').jqxGrid('getrows'); - if (editrow >= 0) { - rowID = $('#jqxgrid').jqxGrid('getrowid', editrow); - } - 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'); - }); - createDelElements(); -}); -