www/js/profile_fermentation.js

changeset 796
6ce2c2e6796e
parent 795
9472106a3143
child 797
d0fedeb32f05
--- 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 <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() {
-
- // 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 = $('<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();
-     $('#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. &deg;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. &deg;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('<div style="float: left; margin: 8px; color: orange !important;">Aantal items: ' + rowCount + '</div>');
-   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: -4px;">Nieuw</span></div>');
-   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 &deg;C', datafield: 'inittemp_lo', width: 120, align: 'right', cellsalign: 'right', cellsformat: 'f1', filtertype: 'number' },
-   { text: 'Max. start &deg;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 '<span style="margin: 3px; margin-top: 6px; float: right;">Bier</span>';
-      else
-       return '<span style="margin: 3px; margin-top: 6px; float: right;">Koelkast</span>';
-     }
-   },
-   { 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 '<span style="margin: 3px; margin-top: 6px; float: right;">' + show + '</span>';
-     }
-   },
-   { 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();
-});
-

mercurial