diff -r 0f128201a031 -r 8c4ba91adf58 www/js/prod_new.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/www/js/prod_new.js Thu Nov 22 22:27:42 2018 +0100 @@ -0,0 +1,171 @@ +/***************************************************************************** + * Copyright (C) 2018 + * + * Michiel Broek + * + * 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 () { + + // tooltips + $("#name").jqxTooltip({ content: 'De naam voor dit recept.' }); + $("#notes").jqxTooltip({ content: 'De uitgebreide opmerkingen over dit recept.' }); + + // editers + var srcType = [ "All Grain", "Partial Mash", "Extract" ]; + $("#name").jqxInput({ theme: theme, width: 640, height: 23 }); + $("#notes").jqxInput({ theme: theme, width: 960, height: 200 }); + + //Creating wizard module + var wizard = (function () { + + //Adding event listeners + var _addHandlers = function () { + $('#name').on('change', function (event) { wizard.validate(true); }); + $('#nextButtonCompleted').click(function () { + console.log("insert start"); + var newrow = { + record: -1, + name: $("#name").val(), + notes: $("#notes").val(), + }; + var data = "insert=true&return=" + my_return + "&" + $.param(newrow); + $.ajax({ + dataType: 'json', + url: "includes/db_product.php", + cache: false, + data: data, + type: "POST", + success: function (data, status, xhr) { + // update command is executed. + window.location.href = my_return; + }, + error: function(jqXHR, textStatus, errorThrown) { + } + }); + }); + $('.nextButton').click(function () { + wizard.validate(true); + $('#jqxTabs').jqxTabs('next'); + }); + $('.backButton').click(function () { + wizard.validate(true); + $('#jqxTabs').jqxTabs('previous'); + }); + }; + + return { + //Initializing the wizzard - creating all elements, adding event handlers and starting the validation + init: function () { + $('#jqxTabs').jqxTabs({ + theme: theme, + height: 630, + width: 1280, + autoHeight: false, + position: 'top', + keyboardNavigation: false + }); + $('#nextButtonBase').jqxButton({ theme: theme, width: 150 }); + $('#nextButtonStyle').jqxButton({ theme: theme, width: 150}); + $('#backButtonStyle').jqxButton({ theme: theme, width: 150}); + $('#nextButtonCompleted').jqxButton({ theme: theme, width: 150}); + $('#backButtonCompleted').jqxButton({ theme: theme, width: 150}); + _addHandlers(); + this.validate(); + this.showHint('Validation hints.'); + }, + + //Validating all wizard tabs + validate: function (notify) { + if (!this.firstTab(notify)) { + $('#jqxTabs').jqxTabs('disableAt', 1); + $('#jqxTabs').jqxTabs('disableAt', 2); + return; + } else { + $('#jqxTabs').jqxTabs('enableAt', 1); + } + if (!this.secondTab(notify)) { + $('#jqxTabs').jqxTabs('disableAt', 2); + return; + } else { + $('#jqxTabs').jqxTabs('enableAt', 2); + } + }, + + //Displaying message to the user + showHint: function (message, selector) { + if (typeof selector === 'undefined') { + selector = '.hint'; + } + if (message === '') { + message = 'Ok, je mag doorgaan.'; + } + $(selector).html('' + message + ''); + }, + + //Validating the first tab + firstTab: function (notify) { + var name = $('#name').val(), + message = ''; + if (name.length < 3) { + message += 'Je moet een recept naam invullen.
'; + } + // Check if name already exists. + //if ((boil_time < 4) || (boil_time > 360)) { + // message += 'De kooktijd moet tussen 4 en 360 minuten zijn.
'; + //} + //if ((est_og < 1.010) || (est_og > 1.200)) { + // message += 'Het OG moet tussen 1.010 en 1.500 zijn.
'; + //} + //if ((efficiency < 35) || (efficiency > 95)) { + // message += 'Het brouwzaal rendement moet tussen 35 en 95 zijn.
'; + //} + if (message !== '') { + if (notify) { + this.showHint(message, '#hintBase'); + } + return false; + } + this.showHint('Ok, je mag doorgaan.', '#hintBase'); + return true; + }, + + //Validating the second tab + secondTab: function (notify) { + var stylesel = $('#styleSelect').val(), + message = ''; + if (stylesel.length < 3) { + message += 'Je moet een bierstijl kiezen.
'; + } + if (message !== '') { + if (notify) { + this.showHint(message, '#hintStyle'); + } + return false; + } + this.showHint('Ok, je mag doorgaan.', '#hintStyle'); + return true; + } + } + } ()); + + //Initializing the wizard + wizard.init(); +}); +