www/js/log_fermentation.js

changeset 172
684c651dd165
child 179
8adaeecd9dc8
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/www/js/log_fermentation.js	Sat Jan 05 17:10:39 2019 +0100
@@ -0,0 +1,158 @@
+/*****************************************************************************
+ * Copyright (C) 2019
+ *
+ * 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 Managment 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.
+ *****************************************************************************/
+
+
+$(document).ready(function () {
+
+	$("#jqxLoader").jqxLoader({
+		width: 250,
+		height: 150,
+		isModal: true,
+		text: "Opmaken grafiek ...",
+		theme: theme
+	});
+	$('#jqxLoader').jqxLoader('open');
+
+	function getExportServer() {
+		return "https://www.jqwidgets.com/export_server/export.php";
+	}
+
+	var sourceA = {
+		datatype: "json",
+		datafields: [
+			{ name: "date", type: "date", format: "yyyy-MM-dd HH:mm" },
+			{ name: "air", type: "float" },
+			{ name: "beer", type: "float" },
+			{ name: "tlo", type: "float" },
+			{ name: "thi", type: "float" },
+			{ name: "heater", type: "int" },
+			{ name: "cooler", type: "int" },
+			{ name: "room", type: "float" },
+			{ name: "chiller", type: "float" }
+		],
+		url: 'getfermentlog.php?code=' + my_code
+	};
+	var dataAdapter = new $.jqx.dataAdapter(sourceA, {
+		autoBind: true,
+		async: false,
+		loadComplete: function () {
+			$('#jqxLoader').jqxLoader('close');
+		},
+		loadError: function (jqXHR, status, error) {
+		}
+	});
+
+	var settings = {
+		 title: my_code + ' "' + my_name + '"',
+		 description: "",
+		 source: dataAdapter,
+		 xAxis: {
+			 dataField: 'date',
+			 type: 'date',
+			 formatFunction: function (value) {
+				 return value.getDate() + '-' + (value.getMonth() + 1) + '-' + value.getFullYear();
+			 },
+			 toolTipFormatFunction: function (value) {
+				 var h = value.getHours();
+				 var m = value.getMinutes();
+				 return value.getDate() + '-' + (value.getMonth() + 1) + '-' + value.getFullYear()
+					 + ' ' + (h < 10 ? '0' + h : h) + ':' + (m < 10 ? '0' + m : m);
+			 },
+			 textRotationAngle: 45,
+			 howGridLines: false,
+			 rangeSelector: {
+				size: 90,
+				dataField: 'beer',
+				serieType: 'line',
+				gridLines: {visible: false},
+			}
+		 },
+		 colorScheme: 'scheme01',
+		 seriesGroups: [
+		 	{
+				type: "line",
+				valueAxis: {
+					minValue: 0,
+					maxValue: 100,
+					displayValueAxis: false,
+					description: "Heat/Cool %"
+				},
+				series: [
+			 		{ dataField: "cooler", lineWidth: 1, displayText: "Cool %", opacity: 0.3 },
+			 		{ dataField: "heater", lineWidth: 1, displayText: "Heat %", opacity: 0.3 }
+			 	]
+		 	},
+			{
+				type: 'spline',
+				valueAxis: {
+					minValue: 0,
+					description: 'Graden C'
+				},
+				series: [
+					{ dataField: "air", lineWidth: 1, displayText: "Air" },
+					{ dataField: "beer", lineWidth: 2, displayText: "Beer" },
+					{ dataField: "tlo", lineWidth: 1, displayText: "Target Lo", opacity: 0.7 },
+					{ dataField: "thi", lineWidth: 1, displayText: "Target Hi", opacity: 0.7 },
+					{ dataField: "room", lineWidth: 1, displayText: "Room", opacity: 0.5 },
+					{ dataField: "chiller", lineWidth: 1, displayText: "Chiller", color: '#0000bb' }
+				]
+			}
+		 ]
+	};
+	$("#fermentor_chart").jqxChart(settings);
+
+	$("#print").click(function () {
+		var content = $("#fermentor_chart")[0].outerHTML;
+		var newWindow = window.open("", "", "width=865, height=425"),
+		document = newWindow.document.open(),
+		pageContent =
+			'<!DOCTYPE html>' +
+			'<html>' +
+			'<head>' +
+			'<link rel="stylesheet" href="jqwidgets/styles/jqx.base.css" type="text/css" />' +
+			'<meta charset="utf-8" />' +
+			'<title>jQWidgets Chart</title>' +
+			'</head>' +
+			'<body>' + content + '</body></html>';
+		document.write(pageContent);
+		document.close();
+		newWindow.print();
+	});
+	$("#print").jqxButton({ template: "info", width: 125, theme: theme });
+
+
+	$("#pdfButton").click(function () {
+		$("#fermentor_chart").jqxChart("saveAsPDF", "vergisting_"+my_code+".pdf", getExportServer());
+	});
+	$("#pdfButton").jqxButton({ template: "info", width: 125, theme: theme });
+
+	$("#pngButton").click(function () {
+		$("#fermentor_chart").jqxChart("saveAsPNG", "vergisting_"+my_code+".png", getExportServer());
+	});
+	$("#pngButton").jqxButton({ template: "info", width: 125, theme: theme });
+
+	$("#Close").jqxButton({ template: "success", width: 125, theme: theme });
+	$("#Close").click(function () {
+		window.close();
+	});
+});
+

mercurial