Wed, 29 Aug 2018 19:58:36 +0200
Renamed inevntory water sources to inventory waters
www/includes/db_inventory_water.php | file | annotate | diff | comparison | revisions | |
www/includes/db_inventory_water_sources.php | file | annotate | diff | comparison | revisions | |
www/includes/global.inc.php | file | annotate | diff | comparison | revisions | |
www/inv_water_sources.php | file | annotate | diff | comparison | revisions | |
www/inv_waters.php | file | annotate | diff | comparison | revisions | |
www/js/inv_water_sources.js | file | annotate | diff | comparison | revisions | |
www/js/inv_waters.js | file | annotate | diff | comparison | revisions |
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/www/includes/db_inventory_water.php Wed Aug 29 19:58:36 2018 +0200 @@ -0,0 +1,123 @@ +<?php + +require($_SERVER['DOCUMENT_ROOT']."/config.php"); +require($_SERVER['DOCUMENT_ROOT']."/version.php"); + +#Connect to the database +$connect = mysqli_connect(DBASE_HOST, DBASE_USER, DBASE_PASS, DBASE_NAME); +if (! $connect) { + die('Connect Error (' . mysqli_connect_errno() . ') ' . mysqli_connect_error()); +} + +/* + * If a new default will be set, clear the old default. + */ +function clear_default() { + global $connect; + + $usql = "UPDATE inventory_water SET default_water='0' WHERE (default_water = '1');"; + $result = mysqli_query($connect, $usql); + if (! $result) { + syslog(LOG_NOTICE, "db_inventory_water: " . $usql . " result: ".mysqli_error($connect)); + } +} + + +// get data and store in a json array +$query = "SELECT * FROM inventory_water ORDER BY name"; +if (isset($_GET['insert'])) { + // INSERT COMMAND + $sql = "INSERT INTO `inventory_water` SET name='" . mysqli_real_escape_string($connect, $_GET['name']); + ($_GET['always_on_stock'] == 'true') ? $sql .= "', always_on_stock='1" : $sql .= "', always_on_stock='0"; + $sql .= "', calcium='" . $_GET['calcium']; + $sql .= "', bicarbonate='" . $_GET['bicarbonate']; + $sql .= "', sulfate='" . $_GET['sulfate']; + $sql .= "', chloride='" . $_GET['chloride']; + $sql .= "', sodium='" . $_GET['sodium']; + $sql .= "', magnesium='" . $_GET['magnesium']; + $sql .= "', ph='" . $_GET['ph']; + $sql .= "', notes='" . mysqli_real_escape_string($connect, $_GET['notes']); + $sql .= "', total_alkalinity='" . $_GET['total_alkalinity']; + if ($_GET['default_water'] == 'true') { + clear_default(); + $sql .= "', default_water='1"; + } else { + $sql .= "', default_water='0"; + } + $sql .= "', inventory='" . $_GET['inventory']; + $sql .= "', cost='" . $_GET['cost']; + $sql .= "';"; + $result = mysqli_query($connect, $sql); + if (! $result) { + syslog(LOG_NOTICE, "db_inventory_water: ".$sql." result: ".mysqli_error($connect)); + } else { + syslog(LOG_NOTICE, "db_inventory_water: inserted ".$_GET['name']); + } + echo $result; + +} else if (isset($_GET['update'])) { + // UPDATE COMMAND + $sql = "UPDATE `inventory_water` SET name='" . mysqli_real_escape_string($connect, $_GET['name']); + ($_GET['always_on_stock'] == 'true') ? $sql .= "', always_on_stock='1" : $sql .= "', always_on_stock='0"; + $sql .= "', calcium='" . $_GET['calcium']; + $sql .= "', bicarbonate='" . $_GET['bicarbonate']; + $sql .= "', sulfate='" . $_GET['sulfate']; + $sql .= "', chloride='" . $_GET['chloride']; + $sql .= "', sodium='" . $_GET['sodium']; + $sql .= "', magnesium='" . $_GET['magnesium']; + $sql .= "', ph='" . $_GET['ph']; + $sql .= "', notes='" . mysqli_real_escape_string($connect, $_GET['notes']); + $sql .= "', total_alkalinity='" . $_GET['total_alkalinity']; + if ($_GET['default_water'] == 'true') { + clear_default(); + $sql .= "', default_water='1"; + } else { + $sql .= "', default_water='0"; + } + $sql .= "', inventory='" . $_GET['inventory']; + $sql .= "', cost='" . $_GET['cost']; + $sql .= "' WHERE record='" . $_GET['record'] . "';"; + $result = mysqli_query($connect, $sql); + if (! $result) { + syslog(LOG_NOTICE, "db_inventory_water: ".$sql." result: ".mysqli_error($connect)); + } else { + syslog(LOG_NOTICE, "db_inventory_water: updated record ".$_GET['record']); + } + echo $result; + +} else if (isset($_GET['delete'])) { + // DELETE COMMAND + $sql = "DELETE FROM `inventory_water` WHERE record='".$_GET['record']."';"; + $result = mysqli_query($connect, $sql); + if (! $result) { + syslog(LOG_NOTICE, "db_inventory_water: ".$sql." result: ".mysqli_error($connect)); + } else { + syslog(LOG_NOTICE, "db_inventory_water: deleted record ".$_GET['record']); + } + echo $result; + +} else { + // SELECT COMMAND + $result = mysqli_query($connect, $query) or die("SQL Error 1: " . mysqli_error($connect)); + while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) { + $waters[] = array( + 'record' => $row['record'], + 'name' => $row['name'], + 'always_on_stock' => $row['always_on_stock'], + 'calcium' => $row['calcium'], + 'bicarbonate' => $row['bicarbonate'], + 'sulfate' => $row['sulfate'], + 'chloride' => $row['chloride'], + 'sodium' => $row['sodium'], + 'magnesium' => $row['magnesium'], + 'ph' => $row['ph'], + 'notes' => $row['notes'], + 'total_alkalinity' => $row['total_alkalinity'], + 'default_water' => $row['default_water'], + 'inventory' => $row['inventory'], + 'cost' => $row['cost'] + ); + } + echo json_encode($waters); +} +?>
--- a/www/includes/db_inventory_water_sources.php Wed Aug 29 17:10:31 2018 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,123 +0,0 @@ -<?php - -require($_SERVER['DOCUMENT_ROOT']."/config.php"); -require($_SERVER['DOCUMENT_ROOT']."/version.php"); - -#Connect to the database -$connect = mysqli_connect(DBASE_HOST, DBASE_USER, DBASE_PASS, DBASE_NAME); -if (! $connect) { - die('Connect Error (' . mysqli_connect_errno() . ') ' . mysqli_connect_error()); -} - -/* - * If a new default will be set, clear the old default. - */ -function clear_default() { - global $connect; - - $usql = "UPDATE inventory_water_sources SET default_water='0' WHERE (default_water = '1');"; - $result = mysqli_query($connect, $usql); - if (! $result) { - syslog(LOG_NOTICE, "db_inventory_water_sources: " . $usql . " result: ".mysqli_error($connect)); - } -} - - -// get data and store in a json array -$query = "SELECT * FROM inventory_water_sources ORDER BY name"; -if (isset($_GET['insert'])) { - // INSERT COMMAND - $sql = "INSERT INTO `inventory_water_sources` SET name='" . mysqli_real_escape_string($connect, $_GET['name']); - ($_GET['always_on_stock'] == 'true') ? $sql .= "', always_on_stock='1" : $sql .= "', always_on_stock='0"; - $sql .= "', calcium='" . $_GET['calcium']; - $sql .= "', bicarbonate='" . $_GET['bicarbonate']; - $sql .= "', sulfate='" . $_GET['sulfate']; - $sql .= "', chloride='" . $_GET['chloride']; - $sql .= "', sodium='" . $_GET['sodium']; - $sql .= "', magnesium='" . $_GET['magnesium']; - $sql .= "', ph='" . $_GET['ph']; - $sql .= "', notes='" . mysqli_real_escape_string($connect, $_GET['notes']); - $sql .= "', total_alkalinity='" . $_GET['total_alkalinity']; - if ($_GET['default_water'] == 'true') { - clear_default(); - $sql .= "', default_water='1"; - } else { - $sql .= "', default_water='0"; - } - $sql .= "', inventory='" . $_GET['inventory']; - $sql .= "', cost='" . $_GET['cost']; - $sql .= "';"; - $result = mysqli_query($connect, $sql); - if (! $result) { - syslog(LOG_NOTICE, "db_inventory_water_sources: ".$sql." result: ".mysqli_error($connect)); - } else { - syslog(LOG_NOTICE, "db_inventory_water_sources: inserted ".$_GET['name']); - } - echo $result; - -} else if (isset($_GET['update'])) { - // UPDATE COMMAND - $sql = "UPDATE `inventory_water_sources` SET name='" . mysqli_real_escape_string($connect, $_GET['name']); - ($_GET['always_on_stock'] == 'true') ? $sql .= "', always_on_stock='1" : $sql .= "', always_on_stock='0"; - $sql .= "', calcium='" . $_GET['calcium']; - $sql .= "', bicarbonate='" . $_GET['bicarbonate']; - $sql .= "', sulfate='" . $_GET['sulfate']; - $sql .= "', chloride='" . $_GET['chloride']; - $sql .= "', sodium='" . $_GET['sodium']; - $sql .= "', magnesium='" . $_GET['magnesium']; - $sql .= "', ph='" . $_GET['ph']; - $sql .= "', notes='" . mysqli_real_escape_string($connect, $_GET['notes']); - $sql .= "', total_alkalinity='" . $_GET['total_alkalinity']; - if ($_GET['default_water'] == 'true') { - clear_default(); - $sql .= "', default_water='1"; - } else { - $sql .= "', default_water='0"; - } - $sql .= "', inventory='" . $_GET['inventory']; - $sql .= "', cost='" . $_GET['cost']; - $sql .= "' WHERE record='" . $_GET['record'] . "';"; - $result = mysqli_query($connect, $sql); - if (! $result) { - syslog(LOG_NOTICE, "db_inventory_water_sources: ".$sql." result: ".mysqli_error($connect)); - } else { - syslog(LOG_NOTICE, "db_inventory_water_sources: updated record ".$_GET['record']); - } - echo $result; - -} else if (isset($_GET['delete'])) { - // DELETE COMMAND - $sql = "DELETE FROM `inventory_water_sources` WHERE record='".$_GET['record']."';"; - $result = mysqli_query($connect, $sql); - if (! $result) { - syslog(LOG_NOTICE, "db_inventory_water_sources: ".$sql." result: ".mysqli_error($connect)); - } else { - syslog(LOG_NOTICE, "db_inventory_water_sources: deleted record ".$_GET['record']); - } - echo $result; - -} else { - // SELECT COMMAND - $result = mysqli_query($connect, $query) or die("SQL Error 1: " . mysqli_error($connect)); - while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) { - $waters[] = array( - 'record' => $row['record'], - 'name' => $row['name'], - 'always_on_stock' => $row['always_on_stock'], - 'calcium' => $row['calcium'], - 'bicarbonate' => $row['bicarbonate'], - 'sulfate' => $row['sulfate'], - 'chloride' => $row['chloride'], - 'sodium' => $row['sodium'], - 'magnesium' => $row['magnesium'], - 'ph' => $row['ph'], - 'notes' => $row['notes'], - 'total_alkalinity' => $row['total_alkalinity'], - 'default_water' => $row['default_water'], - 'inventory' => $row['inventory'], - 'cost' => $row['cost'] - ); - } - echo json_encode($waters); -} -?>
--- a/www/includes/global.inc.php Wed Aug 29 17:10:31 2018 +0200 +++ b/www/includes/global.inc.php Wed Aug 29 19:58:36 2018 +0200 @@ -126,7 +126,7 @@ <li><a href="inv_hops.php">Hoppen</a></li> <li><a href="inv_yeasts.php">Gisten</a></li> <li><a href="inv_miscs.php">Overige ingredienten</a></li> - <li><a href="inv_water_sources.php">Water bronnen</a></li> + <li><a href="inv_waters.php">Brouwwater</a></li> <li><a href="inv_equipments.php">Brouw apparatuur</a></li> <li><a href="inv_instock.php">Voorraad lijst</a></li> </ul>
--- a/www/inv_water_sources.php Wed Aug 29 17:10:31 2018 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,77 +0,0 @@ -<?php -require_once($_SERVER['DOCUMENT_ROOT'].'/includes/global.inc.php'); -page_header('Water sources', 'inv_water_sources'); -?> - - <div id="jqxgrid"></div> - <div style="margin-top: 30px;"> - <div id="cellbegineditevent"></div> - <div style="margin-top: 10px;" id="cellendeditevent"></div> - </div> - - <!-- Popup editor window. --> - <div id="popupWindow"> - <div>Wijzig brouwwater bron.</div> - <div style="overflow: hidden;"> - <table> - <tr> - <td align="right" style="vertical-align: top;">Water naam:</td> - <td align="left" colspan="3" style="vertical-align: top;"><input id="name" /></td> - </tr> - <tr> - <td align="right" style="vertical-align: top;">Calcium (Ca) mg/l:</td> - <td align="left" style="vertical-align: top;"><input id="calcium" /></td> - <td align="right" style="vertical-align: top;">Magnesium (Mg) mg/l:</td> - <td align="left" style="vertical-align: top;"><input id="magnesium" /></td> - </tr> - <tr> - <td align="right" style="vertical-align: top;">Natrium (Na) mg/l:</td> - <td align="left" style="vertical-align: top;"><input id="sodium" /></td> - <td align="right" style="vertical-align: top;">Chloride (Cl) mg/l:</td> - <td align="left" style="vertical-align: top;"><input id="chloride" /></td> - </tr> - <tr> - <td align="right" style="vertical-align: top;">Sulfaat (CaSO4) mg/l:</td> - <td align="left" style="vertical-align: top;"><input id="sulfate" /></td> - <td align="right" style="vertical-align: top;">Zuurgraad (pH):</td> - <td align="left" style="vertical-align: top;"><input id="ph" /></td> - </tr> - <tr> - <td align="right" style="vertical-align: top;">Bicarbonaat (HCO3) mg/l:</td> <!-- Input for total_alkalinity --> - <td align="left" style="vertical-align: top;"><input id="bicarbonate" /></td> - <td align="right" style="vertical-align: top;">Totale alkaliteit (CaCO3) mg/l:</td> - <td align="left" style="vertical-align: top;"><input id="total_alkalinity" /></td> - </tr> - <tr> - <td align="right" style="vertical-align: top;">Opmerkingen:</td> - <td align="left" colspan="3"><textarea id="notes"></textarea></td> - </tr> - <tr> - <td align="right" style="vertical-align: top;">Altijd op voorraad:</td> - <td align="left"><div id="always_on_stock"></div></td> - <td align="right" style="vertical-align: top;">Standaard water:</td> - <td align="left"><div id="default_water"></div></td> - </tr> - <tr> - <td align="right" style="vertical-align: top;">Voorraad:</td> - <td align="left"><div id="inventory"></div></td> - <td align="right" style="vertical-align: top;">Prijs:</td> - <td align="left"><div id="cost"></div></td> - </tr> - <tr> - <td style="padding-top: 10px;" align="right"><input type="button" id="Delete" value="Delete" /></td> - <td align="right"></td> - <td align="right"></td> - <td style="padding-top: 10px;" align="right"> - <input style="margin-right: 5px;" type="button" id="Save" value="Save" /> - <input id="Cancel" type="button" value="Cancel" /> - </td> - </tr> - </table> - </div> - </div> - -<?php -confirm_delete(); -page_footer(); -?>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/www/inv_waters.php Wed Aug 29 19:58:36 2018 +0200 @@ -0,0 +1,77 @@ +<?php +require_once($_SERVER['DOCUMENT_ROOT'].'/includes/global.inc.php'); +page_header('Water sources', 'inv_waters'); +?> + + <div id="jqxgrid"></div> + <div style="margin-top: 30px;"> + <div id="cellbegineditevent"></div> + <div style="margin-top: 10px;" id="cellendeditevent"></div> + </div> + + <!-- Popup editor window. --> + <div id="popupWindow"> + <div>Wijzig brouwwater bron.</div> + <div style="overflow: hidden;"> + <table> + <tr> + <td align="right" style="vertical-align: top;">Water naam:</td> + <td align="left" colspan="3" style="vertical-align: top;"><input id="name" /></td> + </tr> + <tr> + <td align="right" style="vertical-align: top;">Calcium (Ca) mg/l:</td> + <td align="left" style="vertical-align: top;"><input id="calcium" /></td> + <td align="right" style="vertical-align: top;">Magnesium (Mg) mg/l:</td> + <td align="left" style="vertical-align: top;"><input id="magnesium" /></td> + </tr> + <tr> + <td align="right" style="vertical-align: top;">Natrium (Na) mg/l:</td> + <td align="left" style="vertical-align: top;"><input id="sodium" /></td> + <td align="right" style="vertical-align: top;">Chloride (Cl) mg/l:</td> + <td align="left" style="vertical-align: top;"><input id="chloride" /></td> + </tr> + <tr> + <td align="right" style="vertical-align: top;">Sulfaat (CaSO4) mg/l:</td> + <td align="left" style="vertical-align: top;"><input id="sulfate" /></td> + <td align="right" style="vertical-align: top;">Zuurgraad (pH):</td> + <td align="left" style="vertical-align: top;"><input id="ph" /></td> + </tr> + <tr> + <td align="right" style="vertical-align: top;">Bicarbonaat (HCO3) mg/l:</td> <!-- Input for total_alkalinity --> + <td align="left" style="vertical-align: top;"><input id="bicarbonate" /></td> + <td align="right" style="vertical-align: top;">Totale alkaliteit (CaCO3) mg/l:</td> + <td align="left" style="vertical-align: top;"><input id="total_alkalinity" /></td> + </tr> + <tr> + <td align="right" style="vertical-align: top;">Opmerkingen:</td> + <td align="left" colspan="3"><textarea id="notes"></textarea></td> + </tr> + <tr> + <td align="right" style="vertical-align: top;">Altijd op voorraad:</td> + <td align="left"><div id="always_on_stock"></div></td> + <td align="right" style="vertical-align: top;">Standaard water:</td> + <td align="left"><div id="default_water"></div></td> + </tr> + <tr> + <td align="right" style="vertical-align: top;">Voorraad:</td> + <td align="left"><div id="inventory"></div></td> + <td align="right" style="vertical-align: top;">Prijs per liter:</td> + <td align="left"><div id="cost"></div></td> + </tr> + <tr> + <td style="padding-top: 10px;" align="right"><input type="button" id="Delete" value="Delete" /></td> + <td align="right"></td> + <td align="right"></td> + <td style="padding-top: 10px;" align="right"> + <input style="margin-right: 5px;" type="button" id="Save" value="Save" /> + <input id="Cancel" type="button" value="Cancel" /> + </td> + </tr> + </table> + </div> + </div> + +<?php +confirm_delete(); +page_footer(); +?>
--- a/www/js/inv_water_sources.js Wed Aug 29 17:10:31 2018 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,275 +0,0 @@ -/***************************************************************************** - * 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({ width: '65px', theme: theme }); - $('#delCancel').jqxButton({ width: '65px', theme: theme }); - $('#delCancel').focus(); - } - }); - $('#eventWindow').jqxWindow('hide'); -} - - -$(document).ready(function () { - var url = "includes/db_inventory_water_sources.php"; - // prepare the data - var source = { - datatype: "json", - cache: false, - datafields: [ - { name: 'record', type: 'number' }, - { name: 'name', type: 'string' }, - { name: 'always_on_stock', type: 'bool' }, - { name: 'calcium', type: 'float' }, - { name: 'bicarbonate', type: 'float' }, - { name: 'sulfate', type: 'float' }, - { name: 'chloride', type: 'float' }, - { name: 'sodium', type: 'float' }, - { name: 'magnesium', type: 'float' }, - { name: 'ph', type: 'float' }, - { name: 'notes', type: 'string' }, - { name: 'total_alkalinity', type: 'float' }, - { name: 'default_water', type: 'bool' }, - { name: 'inventory', type: 'string' }, - { name: 'cost', type: 'float' } - ], - 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); - } - }); - } - }; - // initialize the input fields. - $("#name").jqxInput({ theme: theme, width: 250, height: 23 }); - $("#always_on_stock").jqxCheckBox({ theme: theme, width: 120, height: 23 }); - $("#calcium").jqxNumberInput({ inputMode: 'simple', spinMode: 'simple', theme: theme, width: 70, height: 23, min: 0, decimalDigits: 1, spinButtons: true }); - $("#bicarbonate").jqxNumberInput({ inputMode: 'simple', spinMode: 'simple', theme: theme, width: 70, height: 23, min: 0, decimalDigits: 1, spinButtons: true }); - $("#sulfate").jqxNumberInput({ inputMode: 'simple', spinMode: 'simple', theme: theme, width: 70, height: 23, min: 0, decimalDigits: 1, spinButtons: true }); - $("#chloride").jqxNumberInput({ inputMode: 'simple', spinMode: 'simple', theme: theme, width: 70, height: 23, min: 0, decimalDigits: 1, spinButtons: true }); - $("#sodium").jqxNumberInput({ inputMode: 'simple', spinMode: 'simple', theme: theme, width: 70, height: 23, min: 0, decimalDigits: 1, spinButtons: true }); - $("#magnesium").jqxNumberInput({ inputMode: 'simple', spinMode: 'simple', theme: theme, width: 70, height: 23, min: 0, decimalDigits: 1, spinButtons: true }); - $("#ph").jqxNumberInput({ inputMode: 'simple', spinMode: 'simple', theme: theme, width: 70, height: 23, min: 0, decimalDigits: 1, spinButtons: true }); - - $("#notes").jqxInput({ theme: theme, width: 640, height: 100 }); - $("#total_alkalinity").jqxNumberInput({ inputMode: 'simple', spinMode: 'simple', theme: theme, width: 70, height: 23, min: 0, decimalDigits: 1, spinButtons: true }); - $("#default_water").jqxCheckBox({ theme: theme, width: 120, height: 23 }); - $("#inventory").jqxNumberInput({ inputMode: 'simple', spinMode: 'simple', theme: theme, width: 70, height: 23, min: 0, decimalDigits: 1, spinButtons: true }); - $("#cost").jqxNumberInput({ inputMode: 'simple', spinMode: 'simple', theme: theme, width: 70, height: 23, min: 0, decimalDigits: 2, spinButtons: true }); - 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(''); - $("#always_on_stock").val(''); - $("#calcium").val(''); - $("#bicarbonate").val(''); - $("#sulfate").val(''); - $("#chloride").val(''); - $("#sodium").val(''); - $("#magnesium").val(''); - $("#ph").val(''); - $("#notes").val(''); - $("#total_alkalinity").val(''); - $("#default_water").val(''); - $("#inventory").val(''); - $("#cost").val(''); - $("#popupWindow").jqxWindow('open'); - }); - }, - filterable: true, - filtermode: 'excel', - columns: [ - { text: 'Water leverancier', datafield: 'name', width: 250 }, - { text: 'Opmerkingen', datafield: 'notes', width: 850 }, - { text: 'Standaard', datafield: 'default_water', columntype: 'checkbox', width: 80 }, - { text: 'Wijzig', datafield: 'Edit', 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); - $("#always_on_stock").val(dataRecord.always_on_stock); - $("#calcium").val(dataRecord.calcium); - $("#bicarbonate").val(dataRecord.bicarbonate); - $("#sulfate").val(dataRecord.sulfate); - $("#chloride").val(dataRecord.chloride); - $("#sodium").val(dataRecord.sodium); - $("#magnesium").val(dataRecord.magnesium); - $("#ph").val(dataRecord.ph); - $("#notes").val(dataRecord.notes); - $("#total_alkalinity").val(dataRecord.total_alkalinity); - $("#default_water").val(dataRecord.default_water); - $("#inventory").val(dataRecord.inventory); - $("#cost").val(dataRecord.cost); - // 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(), - always_on_stock: $("#always_on_stock").val(), - calcium: parseFloat($("#calcium").jqxNumberInput('decimal')), - bicarbonate: parseFloat($("#bicarbonate").jqxNumberInput('decimal')), - sulfate: parseFloat($("#sulfate").jqxNumberInput('decimal')), - chloride: parseFloat($("#chloride").jqxNumberInput('decimal')), - sodium: parseFloat($("#sodium").jqxNumberInput('decimal')), - magnesium: parseFloat($("#magnesium").jqxNumberInput('decimal')), - ph: parseFloat($("#ph").jqxNumberInput('decimal')), - notes: $("#notes").val(), - total_alkalinity: parseFloat($("#total_alkalinity").jqxNumberInput('decimal')), - default_water: $("#default_water").val(), - inventory: parseFloat($("#inventory").jqxNumberInput('decimal')), - cost: parseFloat($("#cost").jqxNumberInput('decimal')) - }; - $('#jqxgrid').jqxGrid('updaterow', rowID, row); - $("#popupWindow").jqxWindow('hide'); - } else { - // Insert a record - var newrow = { - record: -1, - name: $("#name").val(), - always_on_stock: $("#always_on_stock").val(), - calcium: parseFloat($("#calcium").jqxNumberInput('decimal')), - bicarbonate: parseFloat($("#bicarbonate").jqxNumberInput('decimal')), - sulfate: parseFloat($("#sulfate").jqxNumberInput('decimal')), - chloride: parseFloat($("#chloride").jqxNumberInput('decimal')), - sodium: parseFloat($("#sodium").jqxNumberInput('decimal')), - magnesium: parseFloat($("#magnesium").jqxNumberInput('decimal')), - ph: parseFloat($("#ph").jqxNumberInput('decimal')), - notes: $("#notes").val(), - total_alkalinity: parseFloat($("#total_alkalinity").jqxNumberInput('decimal')), - default_water: $("#default_water").val(), - inventory: parseFloat($("#inventory").jqxNumberInput('decimal')), - cost: parseFloat($("#cost").jqxNumberInput('decimal')) - }; - $('#jqxgrid').jqxGrid('addrow', null, newrow); - $("#popupWindow").jqxWindow('hide'); - } - }); - createDelElements(); -}); -
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/www/js/inv_waters.js Wed Aug 29 19:58:36 2018 +0200 @@ -0,0 +1,275 @@ +/***************************************************************************** + * 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({ width: '65px', theme: theme }); + $('#delCancel').jqxButton({ width: '65px', theme: theme }); + $('#delCancel').focus(); + } + }); + $('#eventWindow').jqxWindow('hide'); +} + + +$(document).ready(function () { + var url = "includes/db_inventory_water.php"; + // prepare the data + var source = { + datatype: "json", + cache: false, + datafields: [ + { name: 'record', type: 'number' }, + { name: 'name', type: 'string' }, + { name: 'always_on_stock', type: 'bool' }, + { name: 'calcium', type: 'float' }, + { name: 'bicarbonate', type: 'float' }, + { name: 'sulfate', type: 'float' }, + { name: 'chloride', type: 'float' }, + { name: 'sodium', type: 'float' }, + { name: 'magnesium', type: 'float' }, + { name: 'ph', type: 'float' }, + { name: 'notes', type: 'string' }, + { name: 'total_alkalinity', type: 'float' }, + { name: 'default_water', type: 'bool' }, + { name: 'inventory', type: 'string' }, + { name: 'cost', type: 'float' } + ], + 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); + } + }); + } + }; + // initialize the input fields. + $("#name").jqxInput({ theme: theme, width: 250, height: 23 }); + $("#always_on_stock").jqxCheckBox({ theme: theme, width: 120, height: 23 }); + $("#calcium").jqxNumberInput({ inputMode: 'simple', spinMode: 'simple', theme: theme, width: 70, height: 23, min: 0, decimalDigits: 1, spinButtons: true }); + $("#bicarbonate").jqxNumberInput({ inputMode: 'simple', spinMode: 'simple', theme: theme, width: 70, height: 23, min: 0, decimalDigits: 1, spinButtons: true }); + $("#sulfate").jqxNumberInput({ inputMode: 'simple', spinMode: 'simple', theme: theme, width: 70, height: 23, min: 0, decimalDigits: 1, spinButtons: true }); + $("#chloride").jqxNumberInput({ inputMode: 'simple', spinMode: 'simple', theme: theme, width: 70, height: 23, min: 0, decimalDigits: 1, spinButtons: true }); + $("#sodium").jqxNumberInput({ inputMode: 'simple', spinMode: 'simple', theme: theme, width: 70, height: 23, min: 0, decimalDigits: 1, spinButtons: true }); + $("#magnesium").jqxNumberInput({ inputMode: 'simple', spinMode: 'simple', theme: theme, width: 70, height: 23, min: 0, decimalDigits: 1, spinButtons: true }); + $("#ph").jqxNumberInput({ inputMode: 'simple', spinMode: 'simple', theme: theme, width: 70, height: 23, min: 0, decimalDigits: 1, spinButtons: true }); + + $("#notes").jqxInput({ theme: theme, width: 640, height: 100 }); + $("#total_alkalinity").jqxNumberInput({ inputMode: 'simple', spinMode: 'simple', theme: theme, width: 70, height: 23, min: 0, decimalDigits: 1, spinButtons: true }); + $("#default_water").jqxCheckBox({ theme: theme, width: 120, height: 23 }); + $("#inventory").jqxNumberInput({ inputMode: 'simple', spinMode: 'simple', theme: theme, width: 70, height: 23, min: 0, decimalDigits: 1, spinButtons: true }); + $("#cost").jqxNumberInput({inputMode: 'simple', spinMode: 'simple', theme: theme, width: 110, height: 23, min: 0, decimalDigits: 5, spinButtons: true }); + 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(''); + $("#always_on_stock").val(''); + $("#calcium").val(''); + $("#bicarbonate").val(''); + $("#sulfate").val(''); + $("#chloride").val(''); + $("#sodium").val(''); + $("#magnesium").val(''); + $("#ph").val(''); + $("#notes").val(''); + $("#total_alkalinity").val(''); + $("#default_water").val(''); + $("#inventory").val(''); + $("#cost").val(''); + $("#popupWindow").jqxWindow('open'); + }); + }, + filterable: true, + filtermode: 'excel', + columns: [ + { text: 'Water leverancier', datafield: 'name', width: 250 }, + { text: 'Opmerkingen', datafield: 'notes', width: 850 }, + { text: 'Standaard', datafield: 'default_water', columntype: 'checkbox', width: 80 }, + { text: 'Wijzig', datafield: 'Edit', 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); + $("#always_on_stock").val(dataRecord.always_on_stock); + $("#calcium").val(dataRecord.calcium); + $("#bicarbonate").val(dataRecord.bicarbonate); + $("#sulfate").val(dataRecord.sulfate); + $("#chloride").val(dataRecord.chloride); + $("#sodium").val(dataRecord.sodium); + $("#magnesium").val(dataRecord.magnesium); + $("#ph").val(dataRecord.ph); + $("#notes").val(dataRecord.notes); + $("#total_alkalinity").val(dataRecord.total_alkalinity); + $("#default_water").val(dataRecord.default_water); + $("#inventory").val(dataRecord.inventory); + $("#cost").val(dataRecord.cost); + // 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(), + always_on_stock: $("#always_on_stock").val(), + calcium: parseFloat($("#calcium").jqxNumberInput('decimal')), + bicarbonate: parseFloat($("#bicarbonate").jqxNumberInput('decimal')), + sulfate: parseFloat($("#sulfate").jqxNumberInput('decimal')), + chloride: parseFloat($("#chloride").jqxNumberInput('decimal')), + sodium: parseFloat($("#sodium").jqxNumberInput('decimal')), + magnesium: parseFloat($("#magnesium").jqxNumberInput('decimal')), + ph: parseFloat($("#ph").jqxNumberInput('decimal')), + notes: $("#notes").val(), + total_alkalinity: parseFloat($("#total_alkalinity").jqxNumberInput('decimal')), + default_water: $("#default_water").val(), + inventory: parseFloat($("#inventory").jqxNumberInput('decimal')), + cost: parseFloat($("#cost").jqxNumberInput('decimal')) + }; + $('#jqxgrid').jqxGrid('updaterow', rowID, row); + $("#popupWindow").jqxWindow('hide'); + } else { + // Insert a record + var newrow = { + record: -1, + name: $("#name").val(), + always_on_stock: $("#always_on_stock").val(), + calcium: parseFloat($("#calcium").jqxNumberInput('decimal')), + bicarbonate: parseFloat($("#bicarbonate").jqxNumberInput('decimal')), + sulfate: parseFloat($("#sulfate").jqxNumberInput('decimal')), + chloride: parseFloat($("#chloride").jqxNumberInput('decimal')), + sodium: parseFloat($("#sodium").jqxNumberInput('decimal')), + magnesium: parseFloat($("#magnesium").jqxNumberInput('decimal')), + ph: parseFloat($("#ph").jqxNumberInput('decimal')), + notes: $("#notes").val(), + total_alkalinity: parseFloat($("#total_alkalinity").jqxNumberInput('decimal')), + default_water: $("#default_water").val(), + inventory: parseFloat($("#inventory").jqxNumberInput('decimal')), + cost: parseFloat($("#cost").jqxNumberInput('decimal')) + }; + $('#jqxgrid').jqxGrid('addrow', null, newrow); + $("#popupWindow").jqxWindow('hide'); + } + }); + createDelElements(); +}); +