diff -r fe9e2a677611 -r 793af7691a5e www/js/rec_edit.js
--- a/www/js/rec_edit.js Sat Dec 15 11:06:14 2018 +0100
+++ b/www/js/rec_edit.js Sat Dec 15 21:27:01 2018 +0100
@@ -826,7 +826,8 @@
{ name: 'h_carophyllene', type: 'float' },
{ name: 'h_cohumulone', type: 'float' },
{ name: 'h_myrcene', type: 'float' },
- { name: 'h_total_oil', type: 'float' }
+ { name: 'h_total_oil', type: 'float' },
+ { name: 'h_weight', type: 'float' }
],
addrow: function (rowid, rowdata, position, commit) {
commit(true);
@@ -835,7 +836,20 @@
commit(true);
}
};
- var hopAdapter = new $.jqx.dataAdapter(hopSource);
+ var hopAdapter = new $.jqx.dataAdapter(hopSource, {
+ beforeLoadComplete: function (records) {
+ var data = new Array();
+ for (var i = 0; i < records.length; i++) {
+ var row = records[i];
+ row.h_weight = row.h_amount * 1000;
+ data.push(row);
+ }
+ return data;
+ },
+ loadError: function(jqXHR, status, error) {
+ $('#err').text(status + ' ' + error);
+ },
+ });
// dropdownlist datasource from inventory_hops
var hopUrl = "gethopsources.php";
var hopInvSource = {
@@ -863,7 +877,7 @@
var hoplist = new $.jqx.dataAdapter(hopInvSource);
$("#hopGrid").jqxGrid({
- width: 960,
+ width: 1150,
height: 400,
source: hopAdapter,
theme: theme,
@@ -914,6 +928,7 @@
row["h_cohumulone"] = datarecord.cohumulone;
row["h_myrcene"] = datarecord.myrcene;
row["h_total_oil"] = datarecord.total_oil;
+ row["h_weight"] = 0;
var commit = $("#hopGrid").jqxGrid('addrow', null, row);
}
});
@@ -937,21 +952,29 @@
{ text: 'Type', editable: false, width: 90, align: 'center', cellsalign: 'center', datafield: 'h_type' },
{ text: 'Vorm', editable: false, width: 90, align: 'center', cellsalign: 'center', datafield: 'h_form' },
{ text: 'Alpha', editable: false, datafield: 'h_alpha', width: 80, align: 'right', cellsalign: 'right', cellsformat: 'p1' },
- // Edit the amount in grams, shoukd be fine for batches < 10 hl.
- { text: 'Gewicht gr', datafield: 'grams', width: 120, align: 'right', columntype: 'numberinput', cellsformat: 'f1',
+ { text: 'Amount', hidden: true, datafield: 'h_amount' },
+ { text: 'Gewicht gr', datafield: 'h_weight', width: 120, align: 'right', cellsalign: 'right',
+ columntype: 'numberinput',
cellsrenderer: function (index, datafield, value, defaultvalue, column, rowdata) {
- var gram = rowdata.h_amount * 1000;
- return "
" + dataAdapter.formatNumber(gram, "f1") + " gr
";
+ return "" + dataAdapter.formatNumber(value, "f1") + " gr
";
+ },
+ initeditor: function (row, cellvalue, editor, celltext, pressedChar) {
+ editor.jqxNumberInput({
+ inputMode: 'simple',
+ symbol: ' gr', symbolPosition: 'right',
+ decimalDigits: 1,
+ min: 0, max: parseFloat(dataRecord.batch_size * 200),
+ spinButtons: false
+ });
},
validation: function (cell, value) {
- var maxhops = parseFloat($("#batch_size").jqxNumberInput('decimal')) * 200;
+ var maxhops = parseFloat(dataRecord.batch_size) * 200;
if (value < 0 || value > maxhops ) {
- return { result: false, message: "Gewicht moet 0-"+maxhops+" gram zijn" };
+ return { result: false, message: "Gewicht moet tussen 0 en "+maxhops+" gram zijn" };
}
return true;
}
},
- { datafield: 'h_amount', hidden: true }, // We need to declare this column
{ text: 'Gebruik', width: 110, align: 'center', cellsalign: 'center', datafield: 'h_useat', columntype: 'dropdownlist',
createeditor: function (row, column, editor) {
var srcUse = [ "Boil", "Dry Hop", "Mash", "First Wort", "Aroma" ];
@@ -959,7 +982,7 @@
},
cellvaluechanging: function (row, column, columntype, oldvalue, newvalue) {
if ((newvalue == "Mash") || (newvalue == "First Wort")) {
- $("#hopGrid").jqxGrid('setcellvalue', row, "h_time", parseFloat($("#boil_time").jqxNumberInput('decimal')));
+ $("#hopGrid").jqxGrid('setcellvalue', row, "h_time", parseFloat(dataRecord.boil_time));
} else if (newvalue == "Aroma") {
$("#hopGrid").jqxGrid('setcellvalue', row, "h_time", 0);
}
@@ -967,12 +990,18 @@
},
{ text: 'Tijd', datafield: 'h_time', width: 70, align: 'right', cellsalign: 'right', cellsformat: 'f0',
columntype: 'numberinput',
+ cellsrenderer: function (index, datafield, value, defaultvalue, column, rowdata) {
+ if ((rowdata.h_useat == "Boil") || (rowdata.h_useat == "Dry Hop") || (rowdata.h_useat == "Dry hop"))
+ return ""+dataAdapter.formatNumber(value, "f0")+"
";
+ else
+ return "
";
+ },
initeditor: function (row, cellvalue, editor, celltext, pressedChar) {
editor.jqxNumberInput({ decimalDigits: 0, digits: 3, min: 0, max: parseFloat(dataRecord.boil_time) });
},
cellvaluechanging: function (row, column, columntype, oldvalue, newvalue) {
var use = $("#hopGrid").jqxGrid('getcellvalue', row, "h_useat");
- if (use != "Boil")
+ if ((use == "Mash") || (use == "First Wort") || (use == "First wort") || (use == "Aroma"))
return oldvalue;
},
validation: function (cell, value) {
@@ -985,7 +1014,7 @@
},
{ text: 'IBU', editable: false, datafield: 'ibu', width: 80, align: 'right',
cellsrenderer: function (index, datafield, value, defaultvalue, column, rowdata) {
- var ibu = toIBU(rowdata.h_useat,
+ var ibu = toIBU(rowdata.h_useat,
rowdata.h_form,
preboil_sg,
parseFloat($("#batch_size").jqxNumberInput('decimal')),
@@ -994,8 +1023,8 @@
parseFloat(rowdata.h_alpha),
$("#ibu_method").val()
);
- calcIBUs();
- return "" + dataAdapter.formatNumber(ibu, "f1") + "
";
+ calcIBUs();
+ return "" + dataAdapter.formatNumber(ibu, "f1") + "
";
}
}
]
@@ -1003,12 +1032,10 @@
$("#hopGrid").on('cellendedit', function (event) {
var args = event.args;
console.log("Event Type: cellendedit, Column: " + args.datafield + ", Row: " + (args.rowindex) + ", Value: " + args.value);
- if (args.datafield == 'grams') {
- $("#hopGrid").jqxGrid('setcellvalue', args.rowindex, 'h_amount', parseFloat(args.value / 1000));
- } else {
- $("#hopGrid").jqxGrid('setcellvalue', args.rowindex, args.datafield, args.value);
- }
-// //$('#hopGrid').jqxGrid('sortby', 'f_amount', 'desc');
+ $("#hopGrid").jqxGrid('setcellvalue', args.rowindex, args.datafield, args.value);
+ if (args.datafield == 'h_weight')
+ $("#hopGrid").jqxGrid('setcellvalue', args.rowindex, 'h_amount', args.value / 1000);
+ //$('#hopGrid').jqxGrid('sortby', 'f_amount', 'desc');
});
};