www/js/prod_inprod.js

Fri, 06 Sep 2019 13:51:16 +0200

author
Michiel Broek <mbroek@mbse.eu>
date
Fri, 06 Sep 2019 13:51:16 +0200
changeset 467
f8d16480a6a7
parent 339
da1f4525169d
child 525
8bbc5730aaa8
permissions
-rw-r--r--

Code optimisation for compressed javascript

/*****************************************************************************
 * Copyright (C) 2018-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.
 *
 * 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.
 *****************************************************************************/


$(document).ready(function () {
	var source = {
		datatype: "json",
		cache: false,
		datafields: [
			{ name: 'record', type: 'number' },
			{ name: 'name', type: 'string' },
			{ name: 'code', type: 'string' },
			{ name: 'birth', type: 'string' },
			{ name: 'stage', type: 'int' },
			{ name: 'brew_date', type: 'string' },
			{ name: 'package_date', type: 'string' },
		],
		id: 'record',
		url: "includes/db_product.php?select=inprod"
	},
	dataAdapter = new $.jqx.dataAdapter(source);

	// initialize jqxGrid
	$("#jqxgrid").jqxGrid({
		width: 1280,
		height: 630,
		source: dataAdapter,
		theme: theme,
		showstatusbar: true,
		renderstatusbar: function (statusbar) {
			var container, addButton;
			container = $("<div style='overflow: hidden; position: relative; margin: 5px;'></div>");
			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;'>Add</span></div>");
			container.append(addButton);
			statusbar.append(container);
			addButton.jqxButton({ theme: theme, width: 90, height: 20 });
			// add new recipe.
			addButton.click(function (event) {
				window.location.href = "prod_new.php?return=prod_inprod.php";
			});
		},
		columns: [
			{ text: 'Datum', datafield: 'birth', width: 120 },
			{ text: 'Code', datafield: 'code', width: 120 },
			{ text: 'Naam', datafield: 'name' },
			{ text: 'Fase', datafield: 'stage', width: 200,
			  cellsrenderer: function (index, datafield, value, defaultvalue, column, rowdata) {
				var fase, d, date1, date2, date1_unixtime, date2_unixtime, timeDifference, timeDifferenceInDays;
				// 2 = brew, 6 = package, 7 = carbonation, 8 = mature, 9 = taste
				fase = StageData[value].nl;
				if (value == 2) {
					fase = StageData[value].nl + " op " + rowdata.brew_date;
				}
				if (value == 7 || value == 8) {
					d = new Date();
					date2 = rowdata.package_date;
					date2 = date2.split('-');
					// Now we convert the array to a Date object
					date1 = new Date(d.getFullYear(), d.getMonth(), d.getDate());
					date2 = new Date(date2[0], date2[1]-1, date2[2]);
					// We use the getTime() method and get the unixtime
					date1_unixtime = parseInt(date1.getTime() / 1000);
					date2_unixtime = parseInt(date2.getTime() / 1000);
					// This is the calculated difference in seconds
					timeDifference = date1_unixtime - date2_unixtime;
					// Round the result for brews that overlap summer/wintertime changes.
					timeDifferenceInDays = Math.round(timeDifference / 60 / 60 / 24);
					if (timeDifferenceInDays >= 14)
						fase = StageData[value].nl + " dag " + (timeDifferenceInDays - 14) + " van 28";
					else
						fase = StageData[value].nl + " dag " + timeDifferenceInDays + " van 14";
				}
				return "<span style='margin: 3px; margin-top: 6px; float: left;'>" + fase + "</span>";
			  }
		       	},
			{ text: '', datafield: 'Edit', width: 100, align: 'center', columntype: 'button', cellsrenderer: function () {
				return "Wijzig";
				}, buttonclick: function (row) {
					var datarecord = dataAdapter.records[row];
					window.location.href = "prod_edit.php?record=" + datarecord.record + "&select=inprod&return=prod_inprod.php";
				}
			}
		],
	});
});

mercurial