20 * Software Foundation, 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. |
20 * Software Foundation, 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. |
21 *****************************************************************************/ |
21 *****************************************************************************/ |
22 |
22 |
23 |
23 |
24 function createDelElements() { |
24 function createDelElements() { |
25 $('#eventWindow').jqxWindow({ |
25 $('#eventWindow').jqxWindow({ |
26 theme: theme, |
26 theme: theme, |
27 position: { x: 490, y: 210 }, |
27 position: { x: 490, y: 210 }, |
28 width: 300, |
28 width: 300, |
29 height: 175, |
29 height: 175, |
30 resizable: false, |
30 resizable: false, |
31 isModal: true, |
31 isModal: true, |
32 modalOpacity: 0.4, |
32 modalOpacity: 0.4, |
33 okButton: $('#delOk'), |
33 okButton: $('#delOk'), |
34 cancelButton: $('#delCancel'), |
34 cancelButton: $('#delCancel'), |
35 initContent: function () { |
35 initContent: function() { |
36 $('#delOk').jqxButton({ template: "danger", width: '65px', theme: theme }); |
36 $('#delOk').jqxButton({ template: 'danger', width: '65px', theme: theme }); |
37 $('#delCancel').jqxButton({ template: "success", width: '65px', theme: theme }); |
37 $('#delCancel').jqxButton({ template: 'success', width: '65px', theme: theme }); |
38 $('#delCancel').focus(); |
38 $('#delCancel').focus(); |
39 } |
39 } |
40 }); |
40 }); |
41 $('#eventWindow').jqxWindow('hide'); |
41 $('#eventWindow').jqxWindow('hide'); |
42 } |
42 } |
43 |
43 |
44 |
44 |
45 $(document).ready(function () { |
45 $(document).ready(function() { |
46 |
46 |
47 // tooltips |
47 // tooltips |
48 $("#name").jqxTooltip({ content: 'De unieke naam van dit brouwwater.' }); |
48 $('#name').jqxTooltip({ content: 'De unieke naam van dit brouwwater.' }); |
49 $("#notes").jqxTooltip({ content: 'Extra opmerkingen over dit water.' }); |
49 $('#notes').jqxTooltip({ content: 'Extra opmerkingen over dit water.' }); |
50 $("#unlimited_stock").jqxTooltip({ content: 'Onbeperkte voorraad zoals kraanwater en bronnen.' }); |
50 $('#unlimited_stock').jqxTooltip({ content: 'Onbeperkte voorraad zoals kraanwater en bronnen.' }); |
51 $("#calcium").jqxTooltip({ content: 'Calcium (Ca).' }); |
51 $('#calcium').jqxTooltip({ content: 'Calcium (Ca).' }); |
52 $("#bicarbonate").jqxTooltip({ content: 'Bicarbonaat (HCO3). Berekend meteen de Totale alkaliteit.' }); |
52 $('#bicarbonate').jqxTooltip({ content: 'Bicarbonaat (HCO3). Berekend meteen de Totale alkaliteit.' }); |
53 $("#sulfate").jqxTooltip({ content: 'Calcium Sulfaat (CaSO4).' }); |
53 $('#sulfate').jqxTooltip({ content: 'Calcium Sulfaat (CaSO4).' }); |
54 $("#chloride").jqxTooltip({ content: 'Chloride (Cl).' }); |
54 $('#chloride').jqxTooltip({ content: 'Chloride (Cl).' }); |
55 $("#sodium").jqxTooltip({ content: 'Natrium, oftewel keukenzout (Na). In berekeningen ook vaak als Sodium.' }); |
55 $('#sodium').jqxTooltip({ content: 'Natrium, oftewel keukenzout (Na). In berekeningen ook vaak als Sodium.' }); |
56 $("#magnesium").jqxTooltip({ content: 'Magnesium (Mg).' }); |
56 $('#magnesium').jqxTooltip({ content: 'Magnesium (Mg).' }); |
57 $("#ph").jqxTooltip({ content: 'De zuurgraad (pH).' }); |
57 $('#ph').jqxTooltip({ content: 'De zuurgraad (pH).' }); |
58 $("#total_alkalinity").jqxTooltip({ content: 'Totale alkaliniteit. Berekend meteen de Bicarbonaat.' }); |
58 $('#total_alkalinity').jqxTooltip({ content: 'Totale alkaliniteit. Berekend meteen de Bicarbonaat.' }); |
59 $("#inventory").jqxTooltip({ content: 'Voorraad in liters.' }); |
59 $('#balance').jqxTooltip({ content: 'De ionen balans van het water. Ideaal minder dan 0.1 verschil tussen kationen en anionen. Meer dan 0.5 is een fout in het waterraport.' }); |
60 $("#cost").jqxTooltip({ content: 'Kostprijs per liter. 5 cijfers achter de comma zodat het kraanwater er ook in kan.' }); |
60 $('#inventory').jqxTooltip({ content: 'Voorraad in liters.' }); |
61 |
61 $('#cost').jqxTooltip({ content: 'Kostprijs per liter. 5 cijfers achter de comma zodat het kraanwater er ook in kan.' }); |
62 var dataRecord = {}, |
62 |
63 url = 'includes/db_inventory_water.php', |
63 var dataRecord = {}, |
64 // prepare the data |
64 url = 'includes/db_inventory_water.php', |
65 source = { |
65 // prepare the data |
66 datatype: "json", |
66 source = { |
67 cache: false, |
67 datatype: 'json', |
68 datafields: [ |
68 cache: false, |
69 { name: 'record', type: 'number' }, |
69 datafields: [ |
70 { name: 'name', type: 'string' }, |
70 { name: 'record', type: 'number' }, |
71 { name: 'unlimited_stock', type: 'int' }, |
71 { name: 'name', type: 'string' }, |
72 { name: 'calcium', type: 'float' }, |
72 { name: 'unlimited_stock', type: 'int' }, |
73 { name: 'bicarbonate', type: 'float' }, |
73 { name: 'calcium', type: 'float' }, |
74 { name: 'sulfate', type: 'float' }, |
74 { name: 'bicarbonate', type: 'float' }, |
75 { name: 'chloride', type: 'float' }, |
75 { name: 'sulfate', type: 'float' }, |
76 { name: 'sodium', type: 'float' }, |
76 { name: 'chloride', type: 'float' }, |
77 { name: 'magnesium', type: 'float' }, |
77 { name: 'sodium', type: 'float' }, |
78 { name: 'ph', type: 'float' }, |
78 { name: 'magnesium', type: 'float' }, |
79 { name: 'notes', type: 'string' }, |
79 { name: 'ph', type: 'float' }, |
80 { name: 'total_alkalinity', type: 'float' }, |
80 { name: 'notes', type: 'string' }, |
81 { name: 'inventory', type: 'float' }, |
81 { name: 'total_alkalinity', type: 'float' }, |
82 { name: 'cost', type: 'float' } |
82 { name: 'inventory', type: 'float' }, |
83 ], |
83 { name: 'cost', type: 'float' } |
84 id: 'record', |
84 ], |
85 url: url, |
85 id: 'record', |
86 deleterow: function (rowid, commit) { |
86 url: url, |
87 // synchronize with the server - send delete command |
87 deleterow: function(rowid, commit) { |
88 var data = "delete=true&" + $.param({ record: rowid }); |
88 // synchronize with the server - send delete command |
89 $.ajax({ |
89 var data = 'delete=true&' + $.param({ record: rowid }); |
90 dataType: 'json', |
90 $.ajax({ |
91 url: url, |
91 dataType: 'json', |
92 cache: false, |
92 url: url, |
93 data: data, |
93 cache: false, |
94 type: "POST", |
94 data: data, |
95 success: function (data, status, xhr) { |
95 type: 'POST', |
96 commit(true); |
96 success: function(data, status, xhr) { |
97 location.reload( true ); |
97 commit(true); |
98 }, |
98 location.reload(true); |
99 error: function (jqXHR, textStatus, errorThrown) { |
99 }, |
100 commit(false); |
100 error: function(jqXHR, textStatus, errorThrown) { |
101 } |
101 commit(false); |
102 }); |
102 } |
103 }, |
103 }); |
104 addrow: function (rowid, rowdata, position, commit) { |
104 }, |
105 var data = "insert=true&" + $.param(rowdata); |
105 addrow: function(rowid, rowdata, position, commit) { |
106 $.ajax({ |
106 var data = 'insert=true&' + $.param(rowdata); |
107 dataType: 'json', |
107 $.ajax({ |
108 url: url, |
108 dataType: 'json', |
109 cache: false, |
109 url: url, |
110 data: data, |
110 cache: false, |
111 type: "POST", |
111 data: data, |
112 success: function (data, status, xhr) { |
112 type: 'POST', |
113 commit(true); |
113 success: function(data, status, xhr) { |
114 location.reload( true ); |
114 commit(true); |
115 }, |
115 location.reload(true); |
116 error: function(jqXHR, textStatus, errorThrown) { |
116 }, |
117 commit(false); |
117 error: function(jqXHR, textStatus, errorThrown) { |
118 } |
118 commit(false); |
119 }); |
119 } |
120 }, |
120 }); |
121 updaterow: function (rowid, rowdata, commit) { |
121 }, |
122 var data = "update=true&" + $.param(rowdata); |
122 updaterow: function(rowid, rowdata, commit) { |
123 $.ajax({ |
123 var data = 'update=true&' + $.param(rowdata); |
124 dataType: 'json', |
124 $.ajax({ |
125 url: url, |
125 dataType: 'json', |
126 cache: false, |
126 url: url, |
127 data: data, |
127 cache: false, |
128 type: "POST", |
128 data: data, |
129 success: function (data, status, xhr) { |
129 type: 'POST', |
130 commit(true); |
130 success: function(data, status, xhr) { |
131 location.reload( true ); |
131 commit(true); |
132 }, |
132 location.reload(true); |
133 error: function(jqXHR, textStatus, errorThrown) { |
133 }, |
134 commit(false); |
134 error: function(jqXHR, textStatus, errorThrown) { |
135 } |
135 commit(false); |
136 }); |
136 } |
137 } |
137 }); |
138 }, |
138 } |
139 dataAdapter = new $.jqx.dataAdapter(source), |
139 }, |
140 editrow = -1; |
140 dataAdapter = new $.jqx.dataAdapter(source), |
141 |
141 editrow = -1; |
142 // initialize the input fields. |
142 |
143 $("#name").jqxInput({ theme: theme, width: 640, height: 23 }); |
143 // initialize the input fields. |
144 $("#notes").jqxInput({ theme: theme, width: 640, height: 100 }); |
144 $('#name').jqxInput({ theme: theme, width: 640, height: 23 }); |
145 $("#unlimited_stock").jqxCheckBox({ theme: theme, width: 120, height: 23 }); |
145 $('#notes').jqxInput({ theme: theme, width: 640, height: 100 }); |
146 $("#calcium").jqxNumberInput( Spin1dec ); |
146 $('#unlimited_stock').jqxCheckBox({ theme: theme, width: 120, height: 23 }); |
147 $("#bicarbonate").jqxNumberInput( Spin1dec ); |
147 $('#calcium').jqxNumberInput(Spin1dec); |
148 $("#sulfate").jqxNumberInput( Spin1dec ); |
148 $('#bicarbonate').jqxNumberInput(Spin1dec); |
149 $("#chloride").jqxNumberInput( Spin1dec ); |
149 $('#sulfate').jqxNumberInput(Spin1dec); |
150 $("#sodium").jqxNumberInput( Spin1dec ); |
150 $('#chloride').jqxNumberInput(Spin1dec); |
151 $("#magnesium").jqxNumberInput( Spin1dec ); |
151 $('#sodium').jqxNumberInput(Spin1dec); |
152 $("#ph").jqxNumberInput( Spin2pH ); |
152 $('#magnesium').jqxNumberInput(Spin1dec); |
153 $("#total_alkalinity").jqxNumberInput( Spin1dec ); |
153 $('#ph').jqxNumberInput(Spin2pH); |
154 $("#inventory").jqxNumberInput( Spin1dec ); |
154 $('#total_alkalinity').jqxNumberInput(Spin1dec); |
155 $("#cost").jqxNumberInput({inputMode: 'simple', theme: theme, width: 110, height: 23, min: 0, decimalDigits: 5, spinButtons: true }); |
155 $('#balance').jqxNumberInput(Show2dec); |
156 |
156 $('#inventory').jqxNumberInput(Spin1dec); |
157 // initialize jqxGrid |
157 $('#cost').jqxNumberInput({inputMode: 'simple', theme: theme, width: 110, height: 23, min: 0, decimalDigits: 5, spinButtons: true }); |
158 $("#jqxgrid").jqxGrid({ |
158 |
159 width: 1280, |
159 // initialize jqxGrid |
160 height: 630, |
160 $('#jqxgrid').jqxGrid({ |
161 source: dataAdapter, |
161 width: 1280, |
162 theme: theme, |
162 height: 630, |
163 showstatusbar: true, |
163 source: dataAdapter, |
164 renderstatusbar: function (statusbar) { |
164 theme: theme, |
165 var addButton, container = $("<div style='overflow: hidden; position: relative; margin: 5px;'></div>"); |
165 showstatusbar: true, |
166 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;'>Nieuw</span></div>"); |
166 renderstatusbar: function(statusbar) { |
167 container.append(addButton); |
167 var addButton, container = $('<div style="overflow: hidden; position: relative; margin: 5px;"></div>'); |
168 statusbar.append(container); |
168 addButton = $('<div style="float: right; margin-right: 15px;"><img style="position: relative; margin-top: 2px;" ' + |
169 addButton.jqxButton({ theme: theme, width: 90, height: 20 }); |
169 'src="images/add.png"/><span style="margin-left: 4px; position: relative; top: -3px;">Nieuw</span></div>'); |
170 // add new row. |
170 expButton = $('<div style="float: right; margin-right: 50px;"><img style="position: relative; margin-top: 2px;" ' + |
171 addButton.click(function (event) { |
171 'src="images/database.png"/><span style="margin-left: 4px; position: relative; top: -3px;">Export</span></div>'); |
172 editrow = -1; |
172 container.append(addButton); |
173 $("#popupWindow").jqxWindow({ position: { x: 110, y: 30 } }); |
173 container.append(expButton); |
174 $("#name").val('Nieuw brouwwater'); |
174 statusbar.append(container); |
175 $("#unlimited_stock").val(0); |
175 addButton.jqxButton({ theme: theme, width: 90, height: 20 }); |
176 $("#calcium").val(0); |
176 expButton.jqxButton({ theme: theme, width: 90, height: 20 }); |
177 $("#bicarbonate").val(0); |
177 // add new row. |
178 $("#sulfate").val(0); |
178 addButton.click(function(event) { |
179 $("#chloride").val(0); |
179 editrow = -1; |
180 $("#sodium").val(0); |
180 $('#popupWindow').jqxWindow({ position: { x: 110, y: 30 } }); |
181 $("#magnesium").val(0); |
181 $('#name').val('Nieuw brouwwater'); |
182 $("#ph").val(7); |
182 $('#unlimited_stock').val(0); |
183 $("#notes").val(''); |
183 $('#calcium').val(0); |
184 $("#total_alkalinity").val(0); |
184 $('#bicarbonate').val(0); |
185 $("#inventory").val(0); |
185 $('#sulfate').val(0); |
186 $("#cost").val(0); |
186 $('#chloride').val(0); |
187 $("#popupWindow").jqxWindow('open'); |
187 $('#sodium').val(0); |
188 }); |
188 $('#magnesium').val(0); |
189 }, |
189 $('#ph').val(7); |
190 filterable: false, |
190 $('#notes').val(''); |
191 columns: [ |
191 $('#total_alkalinity').val(0); |
192 { text: 'Water leverancier', datafield: 'name', width: 225 }, |
192 $('#inventory').val(0); |
193 { text: 'Opmerkingen', datafield: 'notes' }, |
193 $('#cost').val(0); |
194 { text: 'Onbeperkt', datafield: 'unlimited_stock', columntype: 'checkbox', width: 80 }, |
194 $('#popupWindow').jqxWindow('open'); |
195 { text: 'Voorraad', datafield: 'inventory', width: 100, align: 'right', cellsalign: 'right', cellsformat: 'f1', |
195 }); |
196 cellsrenderer: function (index, datafield, value, defaultvalue, column, rowdata) { |
196 expButton.click(function(event) { |
197 var amount = ""; |
197 window.open('export_waters.php'); |
198 if (value > 0 && rowdata.unlimited_stock == 0) |
198 }); |
199 amount = dataAdapter.formatNumber(value,"f1")+" L"; |
199 }, |
200 return "<span style='margin: 3px; margin-top: 6px; float: right;'>" + amount + "</span>"; |
200 filterable: false, |
201 } |
201 columns: [ |
202 }, |
202 { text: 'Water leverancier', datafield: 'name', width: 225 }, |
203 { text: '', datafield: 'Edit', width: 100, align: 'center', columntype: 'button', |
203 { text: 'Opmerkingen', datafield: 'notes' }, |
204 cellsrenderer: function () { |
204 { text: 'Onbeperkt', datafield: 'unlimited_stock', columntype: 'checkbox', width: 80 }, |
205 return "Wijzig"; |
205 { text: 'Voorraad', datafield: 'inventory', width: 100, align: 'right', cellsalign: 'right', cellsformat: 'f1', |
206 }, buttonclick: function (row) { |
206 cellsrenderer: function(index, datafield, value, defaultvalue, column, rowdata) { |
207 // open the popup window when the user clicks a button. |
207 var amount = ''; |
208 editrow = row; |
208 if (value > 0 && rowdata.unlimited_stock == 0) |
209 $("#popupWindow").jqxWindow({ position: { x: 110, y: 30 } }); |
209 amount = dataAdapter.formatNumber(value, 'f1') + ' L'; |
210 // get the clicked row's data and initialize the input fields. |
210 return '<span style="margin: 3px; margin-top: 6px; float: right;">' + amount + '</span>'; |
211 dataRecord = $("#jqxgrid").jqxGrid('getrowdata', editrow); |
211 } |
212 $("#name").val(dataRecord.name); |
212 }, |
213 $("#unlimited_stock").val(dataRecord.unlimited_stock); |
213 { text: '', datafield: 'Edit', width: 100, align: 'center', columntype: 'button', |
214 $("#calcium").val(dataRecord.calcium); |
214 cellsrenderer: function() { |
215 $("#bicarbonate").val(dataRecord.bicarbonate); |
215 return 'Wijzig'; |
216 $("#sulfate").val(dataRecord.sulfate); |
216 }, buttonclick: function(row) { |
217 $("#chloride").val(dataRecord.chloride); |
217 // open the popup window when the user clicks a button. |
218 $("#sodium").val(dataRecord.sodium); |
218 editrow = row; |
219 $("#magnesium").val(dataRecord.magnesium); |
219 $('#popupWindow').jqxWindow({ position: { x: 110, y: 30 } }); |
220 $("#ph").val(dataRecord.ph); |
220 // get the clicked row's data and initialize the input fields. |
221 $("#notes").val(dataRecord.notes); |
221 dataRecord = $('#jqxgrid').jqxGrid('getrowdata', editrow); |
222 $("#total_alkalinity").val(dataRecord.total_alkalinity); |
222 $('#name').val(dataRecord.name); |
223 $("#inventory").val(dataRecord.inventory); |
223 $('#unlimited_stock').val(dataRecord.unlimited_stock); |
224 $("#cost").val(dataRecord.cost); |
224 $('#calcium').val(dataRecord.calcium); |
225 // show the popup window. |
225 $('#bicarbonate').val(dataRecord.bicarbonate); |
226 $("#popupWindow").jqxWindow('open'); |
226 $('#sulfate').val(dataRecord.sulfate); |
227 } |
227 $('#chloride').val(dataRecord.chloride); |
228 } |
228 $('#sodium').val(dataRecord.sodium); |
229 ] |
229 $('#magnesium').val(dataRecord.magnesium); |
230 }); |
230 $('#ph').val(dataRecord.ph); |
231 |
231 $('#notes').val(dataRecord.notes); |
232 $("#total_alkalinity").on('change', function (event) { |
232 $('#total_alkalinity').val(dataRecord.total_alkalinity); |
233 dataRecord.bicarbonate = parseFloat(event.args.value) * 1.22; |
233 $('#inventory').val(dataRecord.inventory); |
234 $("#bicarbonate").val(dataRecord.bicarbonate); |
234 $('#cost').val(dataRecord.cost); |
235 }); |
235 // show the popup window. |
236 $("#bicarbonate").on('change', function (event) { |
236 calcBalance(); |
237 dataRecord.total_alkalinity = parseFloat(event.args.value) * 50 / 61; |
237 $('#popupWindow').jqxWindow('open'); |
238 $("#total_alkalinity").val(dataRecord.total_alkalinity); |
238 } |
239 }); |
239 } |
240 |
240 ] |
241 // initialize the popup window and buttons. |
241 }); |
242 $("#popupWindow").jqxWindow({ |
242 |
243 width: 1050, |
243 function calcBalance() { |
244 height: 550, |
244 var cations = (dataRecord.calcium / 20.039) + (dataRecord.magnesium / 12.1525) + (dataRecord.sodium / 22.989); |
245 resizable: false, |
245 var anions = (dataRecord.bicarbonate / 61.016) + (dataRecord.sulfate / 48.031) + (dataRecord.chloride / 35.4527); |
246 theme: theme, |
246 var balance = Round(cations - anions, 2); |
247 isModal: true, |
247 $('#balance').val(balance); |
248 autoOpen: false, |
248 if (balance <= 0.1 && balance >= -0.1) |
249 cancelButton: $("#Cancel"), |
249 $('#wr_balance').html("<img src='images/dialog-ok-apply.png'>"); |
250 modalOpacity: 0.40 |
250 else if (balance <= 0.5 && balance >= -0.5) |
251 }); |
251 $('#wr_balance').html("<img src='images/dialog-ok.png'>"); |
252 $("#popupWindow").on('open', function () { |
252 else |
253 $("#name").jqxInput('selectAll'); |
253 $('#wr_balance').html("<img src='images/dialog-error.png'>"); |
254 }); |
254 } |
255 $("#Delete").jqxButton({ template: "danger", width: '90px', theme: theme }); |
255 |
256 $("#Delete").click(function () { |
256 $('#calcium').on('change', function(event) { |
257 if (editrow >= 0) { |
257 dataRecord.calcium = parseFloat(event.args.value); |
258 // Open a popup to confirm this action. |
258 calcBalance(); |
259 $('#eventWindow').jqxWindow('open'); |
259 }); |
260 $("#delOk").click(function () { |
260 $('#magnesium').on('change', function(event) { |
261 var rowID = $('#jqxgrid').jqxGrid('getrowid', editrow); |
261 dataRecord.magnesium = parseFloat(event.args.value); |
262 $("#jqxgrid").jqxGrid('deleterow', rowID); |
262 calcBalance(); |
263 }); |
263 }); |
264 } |
264 $('#sodium').on('change', function(event) { |
265 $("#popupWindow").jqxWindow('hide'); |
265 dataRecord.sodium = parseFloat(event.args.value); |
266 }); |
266 calcBalance(); |
267 $("#Cancel").jqxButton({ template: "primary", width: '90px', theme: theme }); |
267 }); |
268 $("#Save").jqxButton({ template: "success", width: '90px', theme: theme }); |
268 $('#total_alkalinity').on('change', function(event) { |
269 // update the edited row when the user clicks the 'Save' button. |
269 dataRecord.total_alkalinity = parseFloat(event.args.value); |
270 $("#Save").click(function () { |
270 dataRecord.bicarbonate = parseFloat(event.args.value) * 1.22; |
271 var row, rowID = -1; |
271 $('#bicarbonate').val(dataRecord.bicarbonate); |
272 if (editrow >= 0) { |
272 calcBalance(); |
273 rowID = $('#jqxgrid').jqxGrid('getrowid', editrow); |
273 }); |
274 } |
274 $('#bicarbonate').on('change', function(event) { |
275 row = { |
275 dataRecord.bicarbonate = parseFloat(event.args.value); |
276 record: rowID, |
276 dataRecord.total_alkalinity = parseFloat(event.args.value) * 50 / 61; |
277 name: $("#name").val(), |
277 $('#total_alkalinity').val(dataRecord.total_alkalinity); |
278 unlimited_stock: $("#unlimited_stock").val(), |
278 calcBalance(); |
279 calcium: parseFloat($("#calcium").jqxNumberInput('decimal')), |
279 }); |
280 bicarbonate: parseFloat($("#bicarbonate").jqxNumberInput('decimal')), |
280 $('#sulfate').on('change', function(event) { |
281 sulfate: parseFloat($("#sulfate").jqxNumberInput('decimal')), |
281 dataRecord.sulfate = parseFloat(event.args.value); |
282 chloride: parseFloat($("#chloride").jqxNumberInput('decimal')), |
282 calcBalance(); |
283 sodium: parseFloat($("#sodium").jqxNumberInput('decimal')), |
283 }); |
284 magnesium: parseFloat($("#magnesium").jqxNumberInput('decimal')), |
284 $('#chloride').on('change', function(event) { |
285 ph: parseFloat($("#ph").jqxNumberInput('decimal')), |
285 dataRecord.chloride = parseFloat(event.args.value); |
286 notes: $("#notes").val(), |
286 calcBalance(); |
287 total_alkalinity: parseFloat($("#total_alkalinity").jqxNumberInput('decimal')), |
287 }); |
288 inventory: parseFloat($("#inventory").jqxNumberInput('decimal')), |
288 |
289 cost: parseFloat($("#cost").jqxNumberInput('decimal')) |
289 // initialize the popup window and buttons. |
290 }; |
290 $('#popupWindow').jqxWindow({ |
291 if (editrow >= 0) { |
291 width: 1050, |
292 $('#jqxgrid').jqxGrid('updaterow', rowID, row); |
292 height: 550, |
293 } else { |
293 resizable: false, |
294 $('#jqxgrid').jqxGrid('addrow', null, row); |
294 theme: theme, |
295 } |
295 isModal: true, |
296 $("#popupWindow").jqxWindow('hide'); |
296 autoOpen: false, |
297 }); |
297 cancelButton: $('#Cancel'), |
298 createDelElements(); |
298 modalOpacity: 0.40 |
|
299 }); |
|
300 $('#popupWindow').on('open', function() { |
|
301 $('#name').jqxInput('selectAll'); |
|
302 }); |
|
303 $('#Delete').jqxButton({ template: 'danger', width: '90px', theme: theme }); |
|
304 $('#Delete').click(function() { |
|
305 if (editrow >= 0) { |
|
306 // Open a popup to confirm this action. |
|
307 $('#eventWindow').jqxWindow('open'); |
|
308 $('#delOk').click(function() { |
|
309 var rowID = $('#jqxgrid').jqxGrid('getrowid', editrow); |
|
310 $('#jqxgrid').jqxGrid('deleterow', rowID); |
|
311 }); |
|
312 } |
|
313 $('#popupWindow').jqxWindow('hide'); |
|
314 }); |
|
315 $('#Cancel').jqxButton({ template: 'primary', width: '90px', theme: theme }); |
|
316 $('#Save').jqxButton({ template: 'success', width: '90px', theme: theme }); |
|
317 // update the edited row when the user clicks the 'Save' button. |
|
318 $('#Save').click(function() { |
|
319 var row, rowID = -1; |
|
320 if (editrow >= 0) { |
|
321 rowID = $('#jqxgrid').jqxGrid('getrowid', editrow); |
|
322 } |
|
323 row = { |
|
324 record: rowID, |
|
325 name: $('#name').val(), |
|
326 unlimited_stock: $('#unlimited_stock').val(), |
|
327 calcium: parseFloat($('#calcium').jqxNumberInput('decimal')), |
|
328 bicarbonate: parseFloat($('#bicarbonate').jqxNumberInput('decimal')), |
|
329 sulfate: parseFloat($('#sulfate').jqxNumberInput('decimal')), |
|
330 chloride: parseFloat($('#chloride').jqxNumberInput('decimal')), |
|
331 sodium: parseFloat($('#sodium').jqxNumberInput('decimal')), |
|
332 magnesium: parseFloat($('#magnesium').jqxNumberInput('decimal')), |
|
333 ph: parseFloat($('#ph').jqxNumberInput('decimal')), |
|
334 notes: $('#notes').val(), |
|
335 total_alkalinity: parseFloat($('#total_alkalinity').jqxNumberInput('decimal')), |
|
336 inventory: parseFloat($('#inventory').jqxNumberInput('decimal')), |
|
337 cost: parseFloat($('#cost').jqxNumberInput('decimal')) |
|
338 }; |
|
339 if (editrow >= 0) { |
|
340 $('#jqxgrid').jqxGrid('updaterow', rowID, row); |
|
341 } else { |
|
342 $('#jqxgrid').jqxGrid('addrow', null, row); |
|
343 } |
|
344 $('#popupWindow').jqxWindow('hide'); |
|
345 }); |
|
346 createDelElements(); |
299 }); |
347 }); |
300 |
348 |