diff -r 9472106a3143 -r 6ce2c2e6796e www/js/profile_mash.js --- a/www/js/profile_mash.js Mon Jul 11 15:46:18 2022 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,428 +0,0 @@ -/***************************************************************************** - * Copyright (C) 2014-2022 - * - * Michiel Broek - * - * This file is part of Brewery Management System - * - * 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() { - - // tooltips - $('#name').jqxTooltip({ content: 'De naam voor dit maisch profiel.' }); - $('#notes').jqxTooltip({ content: 'De uitgebreide opmerkingen over dit maisch profiel.' }); - - var steprow = 0, - stepData = {}, - dataRecord = {}, - url = 'includes/db_profile_mash.php', - source = { - datatype: 'json', - cache: false, - datafields: [ - { name: 'record', type: 'number' }, - { name: 'name', type: 'string' }, - { name: 'notes', type: 'string' }, - { name: 'steps', type: 'array' }, - { name: 'uuid', type: 'string' } - ], - id: 'record', - url: url, - deleterow: function(rowid, commit) { - var data = 'delete=true&' + $.param({ record: rowid }); - $.ajax({ - dataType: 'json', - url: url, - cache: false, - data: data, - type: 'POST', - success: function(data) { - if (data.error) { - console.log('delete: ' + data.msg); - alert('Fout: ' + data.msg); - } else { - console.log('delete: success'); - } - location.reload(true); - }, - error: function(jqXHR, textStatus, errorThrown) { - commit(false); - console.log('mash deleterow ' + textStatus); - } - }); - }, - 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) { - if (data.error) { - console.log('insert: ' + data.msg); - alert('Fout: ' + data.msg); - } else { - console.log('insert: success'); - } - location.reload(true); - }, - error: function(jqXHR, textStatus, errorThrown) { - commit(false); - console.log('mash addrow ' + textStatus); - } - }); - }, - 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) { - if (data.error) { - console.log('updaterow: ' + data.msg); - alert('Fout: ' + data.msg); - } else { - console.log('updaterow: success'); - } - location.reload(true); - }, - error: function(jqXHR, textStatus, errorThrown) { - commit(false); - console.log('mash updaterow ' + textStatus); - } - }); - } - }, - dataAdapter = new $.jqx.dataAdapter(source), - editrow = -1, - - // Inline steps editor - editsteps = function(data) { - var stepSource = { - localdata: data.steps, - datatype: 'local', - datafields: [ - { name: 'step_name', type: 'string' }, - { name: 'step_type', type: 'int' }, - { name: 'step_temp', type: 'float' }, - { name: 'step_time', type: 'float' }, - { name: 'ramp_time', type: 'float' }, - { name: 'end_temp', type: 'float' } - ], - addrow: function(rowid, rowdata, position, commit) { commit(true); }, - deleterow: function(rowid, commit) { commit(true); } - }, - stepAdapter = new $.jqx.dataAdapter(stepSource); - - $('#grid').jqxGrid({ - width: 1020, - height: 330, - source: stepAdapter, - theme: theme, - selectionmode: 'singlerow', - showtoolbar: true, - rendertoolbar: function(toolbar) { - var container = $('
'); - toolbar.append(container); - container.append(''); - container.append(''); - $('#addrowbutton').jqxButton({ template: 'primary', theme: theme, width: 150 }); - $('#deleterowbutton').jqxButton({ template: 'danger', theme: theme, width: 150 }); - // create new row. - $('#addrowbutton').on('click', function() { - var row = {}, rowscount = $('#grid').jqxGrid('getdatainformation').rowscount; - var temp = $('#grid').jqxGrid('getcell', rowscount -1, 'step_temp'); - row['step_name'] = 'Stap ' + (rowscount + 1); - if (rowscount > 0) { - row['step_type'] = 1; - row['step_temp'] = row['end_temp'] = temp.value + 2; - } else { - row['step_type'] = 0; - row['step_temp'] = row['end_temp'] = 62.0; - } - row['step_time'] = 20.0; - row['ramp_time'] = 1.0; - $('#grid').jqxGrid('addrow', null, row); - }); - // delete row. - $('#deleterowbutton').on('click', function() { - var rowscount, id, selectedrowindex = $('#grid').jqxGrid('getselectedrowindex'); - rowscount = $('#grid').jqxGrid('getdatainformation').rowscount; - if (selectedrowindex >= 0 && selectedrowindex < rowscount) { - id = $('#grid').jqxGrid('getrowid', selectedrowindex); - $('#grid').jqxGrid('deleterow', id); - } - }); - }, - columns: [ - { text: 'Stap naam', datafield: 'step_name' }, - { text: 'Stap type', datafield: 'step_type', width: 150, - cellsrenderer: function(index, datafield, value, defaultvalue, column, rowdata) { - return '' + MashStepTypeData[value].nl + ''; - } - }, - { text: 'Start °C', datafield: 'step_temp', width: 90, align: 'right', cellsalign: 'right', cellsformat: 'f1' }, - { text: 'Eind °C', datafield: 'end_temp', width: 90, align: 'right', cellsalign: 'right', cellsformat: 'f1' }, - { text: 'Rust min.', datafield: 'step_time', width: 90, align: 'right', cellsalign: 'right' }, - { text: 'Stap min.', datafield: 'ramp_time', width: 90, align: 'right', cellsalign: 'right' }, - { text: '', columntype: 'button', width: 15, align: 'center', - cellsrenderer: function(row) { - if (row < 2) - return ' '; - return '▴'; - }, buttonclick: function(row) { - if (row >= 2) { - swapMash(row, row-1); - } - } - }, - { text: '', columntype: 'button', width: 15, align: 'center', - cellsrenderer: function(row) { - rowscount = $('#grid').jqxGrid('getdatainformation').rowscount; - if (row < 1 || row > (rowscount -2)) - return ' '; - return '▾'; - }, buttonclick: function(row) { - rowscount = $('#grid').jqxGrid('getdatainformation').rowscount; - if (row >= 1 && row <= (rowscount -2)) { - swapMash(row, row+1); - } - } - }, - { text: '', datafield: 'Edit', columntype: 'button', width: 80, align: 'center', - cellsrenderer: function() { - return 'Wijzig'; - }, buttonclick: function(row) { - steprow = row; - stepData = $('#grid').jqxGrid('getrowdata', steprow); - $('#m_step_name').val(stepData.step_name); - $('#m_step_type').val(stepData.step_type); - $('#m_step_temp').val(stepData.step_temp); - $('#m_end_temp').val(stepData.end_temp); - $('#m_step_time').val(stepData.step_time); - $('#m_ramp_time').val(stepData.ramp_time); - // show the popup window. - $('#popupStep').jqxWindow('open'); - } - } - ] - }); - }; - - // Initialize the input fields. - $('#m_step_name').jqxInput({ theme: theme, width: 320, height: 23 }); - $('#m_step_type').jqxDropDownList({ - theme: theme, - source: MashStepTypeAdapter, - valueMember: 'id', - displayMember: 'nl', - width: 180, - height: 23, - autoDropDownHeight: true - }); - $('#m_step_temp').jqxNumberInput(Spin1dec); - $('#m_step_temp').jqxNumberInput({ Min: 30, Max: 80 }); - $('#m_end_temp').jqxNumberInput(Spin1dec); - $('#m_end_temp').jqxNumberInput({ Min: 30, Max: 80 }); - $('#m_step_time').jqxNumberInput(PosInt); - $('#m_step_time').jqxNumberInput({ Min: 1, Max: 120 }); - $('#m_ramp_time').jqxNumberInput(PosInt); - $('#m_ramp_time').jqxNumberInput({ Min: 1, Max: 30 }); - - // initialize the input fields. - $('#name').jqxInput({ theme: theme, width: 480, height: 23 }); - $('#notes').jqxInput({ theme: theme, width: 800, height: 100 }); - - var localizationobj = {}; - localizationobj.filterchoosestring= "Keuze:"; - - // initialize jqxGrid - $('#jqxgrid').jqxGrid({ - width: 1280, - height: 630, - source: dataAdapter, - theme: theme, - showstatusbar: true, - renderstatusbar: function(statusbar) { - var rowCount = $("#jqxgrid").jqxGrid('getrows').length; - statusbar.append('
Aantal items: ' + rowCount + '
'); - var container = $('
'); - var addButton = $('
Add
'); - var expButton = $('
Export
'); - container.append(addButton); - container.append(expButton); - statusbar.append(container); - addButton.jqxButton({ theme: theme, width: 90, height: 17 }); - expButton.jqxButton({ theme: theme, width: 90, height: 17 }); - // add new row. - addButton.click(function(event) { - editrow = -1; - $('#name').val('Nieuw maisch schema'); - $('#notes').val(''); - dataRecord.uuid = ''; - editsteps(''); - $('#popupWindow').jqxWindow('open'); - }); - expButton.click(function(event) { - window.open('export_mashs.php'); - }); - }, - ready: function () { - $("#jqxgrid").jqxGrid('localizestrings', localizationobj); - }, - filterable: true, - showfilterrow: true, - columns: [ - { text: 'Maish schema', datafield: 'name', width: 250, filtertype: 'textbox' }, - { text: 'Opmerkingen', datafield: 'notes', filtertype: 'textbox' }, - { text: '', datafield: 'Edit', width: 100, align: 'center', columntype: 'button', filterable: false, - cellsrenderer: function() { - return 'Wijzig'; - }, buttonclick: function(row) { - editrow = row; - // get the clicked row's data and initialize the input fields. - dataRecord = $('#jqxgrid').jqxGrid('getrowdata', editrow); - $('#name').val(dataRecord.name); - $('#notes').val(dataRecord.notes); - editsteps(dataRecord); - // show the popup window. - $('#popupWindow').jqxWindow('open'); - } - } - ] - }); - // initialize the popup window and buttons. - $('#popupWindow').jqxWindow({ - width: 1050, - height: 580, - position: { x: 110, y: 30 }, - resizable: false, - theme: theme, - isModal: true, - autoOpen: false, - cancelButton: $('#Cancel'), - modalOpacity: 0.40 - }); - $('#popupWindow').on('open', function() { - $('#name').jqxInput('selectAll'); - }); - $('#popupStep').jqxWindow({ - width: 800, - height: 300, - position: { x: 230, y: 100 }, - resizable: false, - theme: theme, - isModal: true, - autoOpen: false, - cancelButton: $('#Ready'), - modalOpacity: 0.40 - }); - - // step detail popup update values. - $('#Ready').jqxButton({ template: 'success', width: '90px', theme: theme }); - $('#Ready').click(function() { - $('#grid').jqxGrid('setcellvalue', steprow, 'step_name', $('#m_step_name').val()); - $('#grid').jqxGrid('setcellvalue', steprow, 'step_type', $('#m_step_type').val()); - $('#grid').jqxGrid('setcellvalue', steprow, 'step_temp', $('#m_step_temp').val()); - $('#grid').jqxGrid('setcellvalue', steprow, 'end_temp', $('#m_end_temp').val()); - $('#grid').jqxGrid('setcellvalue', steprow, 'step_time', $('#m_step_time').val()); - $('#grid').jqxGrid('setcellvalue', steprow, 'ramp_time', $('#m_ramp_time').val()); - $('#grid').jqxGrid('sortby', 'step_temp', 'asc'); - }); - - // mash profile popup. - $('#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 }); - $('#Save').jqxButton({ template: 'success', width: '90px', theme: theme }); - $('#Save').click(function() { - var steprows = $('#grid').jqxGrid('getrows'), - rowID = -1, - row; - if (editrow >= 0) { - rowID = $('#jqxgrid').jqxGrid('getrowid', editrow); - } - row = { - record: rowID, - uuid: dataRecord.uuid, - name: $('#name').val(), - notes: $('#notes').val(), - steps: steprows - }; - if (editrow >= 0) { - $('#jqxgrid').jqxGrid('updaterow', rowID, row); - } else { - $('#jqxgrid').jqxGrid('addrow', null, row); - } - $('#popupWindow').jqxWindow('hide'); - }); - - function swapMash(r1, r2) { - - console.log('swap mash rows ' + r1 + ' ' + r2); - var row1 = $('#grid').jqxGrid('getrowdata', r1); - var row2 = $('#grid').jqxGrid('getrowdata', r2); - var obj1 = { step_name: row1.step_name, step_type: row1.step_type, step_temp: row1.step_temp, step_time: row1.step_time, - ramp_time: row1.ramp_time, end_temp: row1.end_temp }; - var obj2 = { step_name: row2.step_name, step_type: row2.step_type, step_temp: row2.step_temp, step_time: row2.step_time, - ramp_time: row2.ramp_time, end_temp: row2.end_temp }; - $("#grid").jqxGrid('updaterow', r1, obj2); - $("#grid").jqxGrid('updaterow', r2, obj1); - } - - createDelElements(); -}); -