Thu, 12 Sep 2019 15:50:09 +0200
Code cleanup using gjslint
/***************************************************************************** * Copyright (C) 2014-2019 * * 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 dataRecord = {}; function calcTotal() { $('#totval').val(dataRecord.cost * dataRecord.inventory); if (dataRecord.form == 0) { // Liquid $("#pmpt_cost").html('Prijs per pak:'); $("#pmpt_inventory").html('Voorraad pak(ken):'); $("#pmpt_cells").html('Miljard cellen per pak:'); $("#inventory").jqxNumberInput({ decimalDigits: 0 }); } else if (dataRecord.form == 1) { // Dry $("#pmpt_cost").html('Prijs per kg:'); $("#pmpt_inventory").html('Voorraad gram:'); $("#pmpt_cells").html('Miljard cellen per gram:'); $("#inventory").jqxNumberInput({ decimalDigits: 1 }); } else { $("#pmpt_cost").html('Prijs per liter:'); $("#pmpt_inventory").html('Voorraad ml:'); $("#pmpt_cells").html('Miljard cellen per ml:'); $("#inventory").jqxNumberInput({ decimalDigits: 1 }); } } var url = "includes/db_inventory_yeasts.php"; // prepare the data var source = { datatype: "json", cache: false, datafields: [ { name: 'record', type: 'number' }, { name: 'name', type: 'string' }, { name: 'type', type: 'int' }, { name: 'form', type: 'int' }, { name: 'laboratory', type: 'string' }, { name: 'product_id', type: 'string' }, { name: 'min_temperature', type: 'float' }, { name: 'max_temperature', type: 'float' }, { name: 'flocculation', type: 'int' }, { name: 'attenuation', type: 'float' }, { name: 'notes', type: 'string' }, { name: 'best_for', type: 'string' }, { name: 'max_reuse', type: 'int' }, { name: 'inventory', type: 'float' }, { name: 'cost', type: 'float' }, { name: 'production_date', type: 'string' }, { name: 'tht_date', type: 'string' }, { name: 'cells', type: 'float' }, { name: 'tolerance', 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, 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. $("#name").jqxInput({ theme: theme, width: 640, height: 23 }); $("#laboratory").jqxInput({ theme: theme, width: 320, height: 23 }); $("#product_id").jqxInput({ theme: theme, width: 320, height: 23 }); $("#type").jqxDropDownList({ theme: theme, source: YeastTypeAdapter, valueMember: 'id', displayMember: 'nl', width: 180, height: 23, autoDropDownHeight: true }); $("#form").jqxDropDownList({ theme: theme, source: YeastFormAdapter, valueMember: 'id', displayMember: 'nl', selectedIndex: 0, width: 180, height: 23, autoDropDownHeight: true }); $("#notes").jqxInput({ theme: theme, width: 800, height: 120 }); $("#best_for").jqxInput({ theme: theme, width: 320, height: 100 }); $("#inventory").jqxNumberInput( Spin1dec ); $("#production_date").jqxDateTimeInput( Dateopts ); $("#min_temperature").jqxNumberInput( YeastT ); $("#max_temperature").jqxNumberInput( YeastT ); $("#flocculation").jqxDropDownList({ theme: theme, source: FlocculationAdapter, valueMember: 'id', displayMember: 'nl', width: 180, height: 23, autoDropDownHeight: true }); $("#attenuation").jqxNumberInput( Perc1dec ); $("#max_reuse").jqxNumberInput( PosInt ); $("#max_reuse").jqxNumberInput({ max: 10 }); $("#cost").jqxNumberInput( Spin2dec ); $("#tht_date").jqxDateTimeInput( Dateopts ); $("#totval").jqxNumberInput( Show2dec ); $("#cells").jqxNumberInput( Spin1dec ); $("#tolerance").jqxNumberInput( Perc1dec ); $("#tolerance").jqxNumberInput({ max: 25 }); var dataAdapter = new $.jqx.dataAdapter(source); 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>"); var impButton = $("<div style='float: right; margin-right: 50px;'><img style='position: relative; margin-top: 2px;' src='images/add.png'/><span style='margin-left: 4px; position: relative; top: -3px;'>Import</span></div>"); container.append(addButton); container.append(impButton); statusbar.append(container); addButton.jqxButton({ theme: theme, width: 90, height: 20 }); impButton.jqxButton({ theme: theme, width: 90, height: 20 }); // add new row. addButton.click(function (event) { editrow = -1; $("#popupWindow").jqxWindow({ position: { x: 110, y: 30 } }); $("#name").val(''); $("#laboratory").val(''); $("#product_id").val(''); $("#type").val(0); $("#form").val(0); $("#min_temperature").val(18); $("#max_temperature").val(22); $("#flocculation").val(0); $("#attenuation").val(77); $("#notes").val(''); $("#best_for").val(''); $("#max_reuse").val(10); $("#inventory").val(0); $("#cost").val(0); $("#production_date").val(''); $("#tht_date").val(''); $("#cells").val(1); $("#tolerance").val(0); $("#popupWindow").jqxWindow('open'); }); impButton.click(function (event) { var url="import_ingredients.php?select=yeasts"; window.location.href = url; }); }, filterable: true, filtermode: 'excel', columns: [ { text: 'Laboratorium', datafield: 'laboratory', width: 150 }, { text: 'Product ID', datafield: 'product_id', width: 120, menu: false }, { text: 'Gist naam', datafield: 'name', menu: false }, { text: 'Type', datafield: 'type', align: 'center', cellsalign: 'center', menu: false, width: 110, cellsrenderer: function (index, datafield, value, defaultvalue, column, rowdata) { return "<div style='margin: 4px;' class='jqx-center-align'>" + YeastTypeData[value].nl + "</div>"; } }, { text: 'Vorm', datafield: 'form', align: 'center', cellsalign: 'center', menu: false, width: 110, cellsrenderer: function (index, datafield, value, defaultvalue, column, rowdata) { return "<div style='margin: 4px;' class='jqx-center-align'>" + YeastFormData[value].nl + "</div>"; } }, { text: 'SVG', datafield: 'attenuation', width: 70, align: 'right', cellsalign: 'right', menu: false, cellsformat: 'p1' }, { text: 'Tol%', datafield: 'tolerance', width: 60, align: 'right', cellsalign: 'right', menu: false, cellsrenderer: function (index, datafield, value, defaultvalue, column, rowdata) { var amount = ""; if (value > 0) amount = dataAdapter.formatNumber(value, "p0"); return '<span style="margin: 4px; margin-top: 6px; float: right;">' + amount + '</span>'; } }, { text: 'Voorraad', datafield: 'inventory', width: 100, align: 'right', menu: false, cellsrenderer: function (index, datafield, value, defaultvalue, column, rowdata) { var amount = ""; if (value > 0) { if ((rowdata.form == 0) && (value > 1)) amount = dataAdapter.formatNumber(value,"f0")+" pakken"; else if (rowdata.form == 0) amount = dataAdapter.formatNumber(value,"f0")+" pak"; else if (rowdata.form == 1) amount = dataAdapter.formatNumber(value * 1000,"f1")+" gram"; else amount = dataAdapter.formatNumber(value * 1000,"f1")+" ml"; } return "<span style='margin: 3px; margin-top: 6px; float: right;'>" + amount + "</span>"; } }, { text: '', datafield: 'Edit', columntype: 'button', width: 100, align: 'center', menu: false, cellsrenderer: function () { return "Wijzig"; }, buttonclick: function (row) { // open the popup window when the user clicks a button. editrow = row; $("#popupWindow").jqxWindow({ position: { x: 110, y: 30 } }); // get the clicked row's data and initialize the input fields. dataRecord = $("#jqxgrid").jqxGrid('getrowdata', editrow); $("#name").val(dataRecord.name); $("#laboratory").val(dataRecord.laboratory); $("#product_id").val(dataRecord.product_id); $("#type").val(dataRecord.type); $("#form").val(dataRecord.form); $("#min_temperature").val(dataRecord.min_temperature); $("#max_temperature").val(dataRecord.max_temperature); $("#flocculation").val(dataRecord.flocculation); $("#attenuation").val(dataRecord.attenuation); $("#notes").val(dataRecord.notes); $("#best_for").val(dataRecord.best_for); $("#max_reuse").val(dataRecord.max_reuse); if (dataRecord.form == 0) $("#inventory").val(dataRecord.inventory); else $("#inventory").val(dataRecord.inventory * 1000); $("#cost").val(dataRecord.cost); $("#production_date").val(dataRecord.production_date); $("#tht_date").val(dataRecord.tht_date); $("#cells").val(dataRecord.cells); $("#tolerance").val(dataRecord.tolerance); calcTotal(); // show the popup window. $("#popupWindow").jqxWindow('open'); } } ] }); $('#popupWindow').on('open', function (event) { calcTotal(); }); $("#cost").on('change', function (event) { dataRecord.cost = parseFloat(event.args.value); calcTotal(); }); $("#inventory").on('change', function (event) { if (dataRecord.form == 0) dataRecord.inventory = parseFloat(event.args.value); else dataRecord.inventory = parseFloat(event.args.value) / 1000.0; calcTotal(); }); $("#form").on('select', function (event) { if (event.args) { dataRecord.form = event.args.index; calcTotal(); } }); // initialize the popup window and buttons. $("#popupWindow").jqxWindow({ width: 1050, height: 575, 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 row = { record: -1, name: $("#name").val()+" kopie", type: $("#type").val(), form: $("#form").val(), laboratory: $("#laboratory").val(), product_id: $("#product_id").val(), min_temperature: parseInt($("#min_temperature").jqxNumberInput('decimal')), max_temperature: parseInt($("#max_temperature").jqxNumberInput('decimal')), flocculation: $("#flocculation").val(), attenuation: parseFloat($("#attenuation").jqxNumberInput('decimal')), notes: $("#notes").val(), best_for: $("#best_for").val(), max_reuse: parseInt($("#max_reuse").jqxNumberInput('decimal')), inventory: 0, cost: parseFloat($("#cost").jqxNumberInput('decimal')), production_date: '', tht_date: '', cells: parseFloat($("#cells").jqxNumberInput('decimal')), tolerance: parseFloat($("#tolerance").jqxNumberInput('decimal')) }; $('#jqxgrid').jqxGrid('addrow', null, row); $("#popupWindow").jqxWindow('hide'); location.reload( true ); // reload ourself. }); $("#Save").jqxButton({ template: "success", width: '90px', theme: theme }); // update the edited row when the user clicks the 'Save' button. $("#Save").click(function () { var rowID = -1; if (editrow >= 0) { rowID = $('#jqxgrid').jqxGrid('getrowid', editrow); } if (dataRecord.form == 0) var n_inventory = parseFloat($("#inventory").jqxNumberInput('decimal')); else var n_inventory = parseFloat($("#inventory").jqxNumberInput('decimal')) / 1000.0; var row = { record: rowID, name: $("#name").val(), type: $("#type").val(), form: $("#form").val(), laboratory: $("#laboratory").val(), product_id: $("#product_id").val(), min_temperature: parseInt($("#min_temperature").jqxNumberInput('decimal')), max_temperature: parseInt($("#max_temperature").jqxNumberInput('decimal')), flocculation: $("#flocculation").val(), attenuation: parseFloat($("#attenuation").jqxNumberInput('decimal')), notes: $("#notes").val(), best_for: $("#best_for").val(), max_reuse: parseInt($("#max_reuse").jqxNumberInput('decimal')), inventory: n_inventory, cost: parseFloat($("#cost").jqxNumberInput('decimal')), production_date: $("#production_date").val(), tht_date: $("#tht_date").val(), cells: parseFloat($("#cells").jqxNumberInput('decimal')), tolerance: parseFloat($("#tolerance").jqxNumberInput('decimal')) }; if (editrow >= 0) { $('#jqxgrid').jqxGrid('updaterow', rowID, row); } else { $('#jqxgrid').jqxGrid('addrow', null, row); location.reload( true ); // reload ourself. } $("#popupWindow").jqxWindow('hide'); }); createDelElements(); });