diff --git a/parts/static/script.js b/parts/static/script.js
index 36baeba..92c0b91 100644
--- a/parts/static/script.js
+++ b/parts/static/script.js
@@ -1,9 +1,12 @@
var active_timer = 100;
-var calculation = 0;
-
+var calculation = [];
function capitalizeFirstLetter(string) {
return string.charAt(0).toUpperCase() + string.slice(1);
}
+function truncator(numToTruncate, intDecimalPlaces) {
+ var numPower = Math.pow(10, intDecimalPlaces); // "numPowerConverter" might be better
+ return ~~(numToTruncate * numPower)/numPower;
+}
function init_edit(partID) {
$('table#details tr#type td p').hide();
$('#type-dropdown').show();
@@ -57,7 +60,30 @@ function new_entry() {
}
function calculate() {
+ let total = 0;
+ count = Object.keys(calculation).length;
+ for(let m = 0; m < count; m++) {
+ let jsonParameters = calculation[m];
+ let obj = Object.keys(jsonParameters);
+ let values = Object.values(jsonParameters);
+
+ $.getJSON(rootURL + 'getpartinfo/' + jsonParameters["partid"], function(data) {
+
+// $('table#calculations tr#results td p').text(data.partno+" "+jsonParameters["energy"]+" J over "+jsonParameters["period"]+" seconds");
+// $('table#calculations tr#results td p').show();
+ total+= truncator(jsonParameters["energy"],5);
+ if($('table#calculations tr#'+jsonParameters["partid"]).length == 0) {
+ $('table#calculations').append('
'+data.partno+" "+truncator(jsonParameters["energy"],5)+" J over "+jsonParameters["period"]+' seconds |
');
+ $('table#calculations tr#'+jsonParameters["partid"]+' td p').show();
+ }
+ $('#results td p').text("Total: "+truncator(total,5)+" J");
+
+ });
+
+ }
+
calculateoverlay_in();
+
}
function end_edit() {
@@ -95,7 +121,7 @@ function save(partID) {
alert('Please select a component type.');
return;
}
- var type_id_v = $('type-dropdown').val();
+ var type_id_v = $('#type-dropdown').val();
var partno_v = $('input[name=partno-input]').val();
var description_v = $('input[name=description-input]').val();
var datasheet = $('table#details tr#datasheet td input')[0].files;
@@ -108,7 +134,7 @@ function save(partID) {
total.push(elem.value);
mapped[elem.name] = elem.value;
});
- console.log(mapped);
+ //console.log(mapped);
if(partno_v.length == 0){
alert('Please enter a part number.');
return;
@@ -140,7 +166,7 @@ function save(partID) {
data.append('type_id', type_id_v);
data.append('description', description_v);
data.append('notes', notes_v);
- data.append('parameters', mapped);
+ data.append('parameters', JSON.stringify(mapped));
$.ajax({
@@ -199,34 +225,55 @@ function delete_entry(partID) {
},
});
}
-function calculate_entry(partID,parameters) {
+function calculate_entry(partID,jsonParameters) {
if (partID < 0)
return;
if (!confirm('Add selected entry to calculation?'))
return;
- console.log(parameters);
- if(parameters != null) {
- var jsonParameters = JSON.parse(data.parameters);
- console.log(jsonParameters);
- var count = Object.keys(jsonParameters).length;
- console.log(count);
+ if(jsonParameters != null) {
// for(var k = 0; k < count; k++) {
var obj = Object.keys(jsonParameters);
- var values = Object.values(jsonParameters);
- var voltage = 0;
- var currents = [];
- console.log(obj);
+ var values = Object.values(jsonParameters);
+ var voltage = 0;
+ var activepower = 0;
+ var sleeppower = 0;
+ var single_period = 0;
+ //console.log(obj);
for (var key in obj) {
var value = obj[key];
- console.log(key+":"+value);
+ var numbers = values[key]
+ //console.log(key+":"+value+":"+numbers);
if(value.includes('voltage')) {
voltage = values[key];
}
else if(value.includes('current')) {
-
+ if(value.includes('sleep')) {
+ sleeppower = Number(values[key]);
+ }
+ else {
+ activepower+=Number(values[key]);
+ }
}
- }
+ else if(value.includes('mode')) {
+ single_period=Number(values[key])+Number(single_period);
+ if(value.includes('sleep')) {
+ sleeppower=sleeppower*Number(values[key]);
+ }
+ else {
+ activepower=activepower*Number(values[key]);
+ }
+ }
+ else {
+ console.log("Unconfigured: "+value+":"+values[key]);
+ }
+
+ }
+ jsonParameters["energy"]=voltage*(sleeppower+activepower);
+ jsonParameters["period"]=single_period;
+ jsonParameters["partid"]=partID;
+ calculation.push(jsonParameters);
}
+ overlay_out();
}
function show_part_info(partID) {
@@ -248,21 +295,15 @@ function show_part_info(partID) {
$('table#details tr#description td input').val(text_filter(data.description));
$('table#details tr#notes td p').text(text_filter(data.notes));
$('input[name=notes-input]').val(text_filter(data.notes));
- console.log(data.parameters);
if(data.parameters != null) {
var jsonParameters = JSON.parse(data.parameters);
- console.log(jsonParameters);
var count = Object.keys(jsonParameters).length;
- console.log(count);
// for(var k = 0; k < count; k++) {
var obj = Object.keys(jsonParameters);
var values = Object.values(jsonParameters);
- console.log(obj);
for (var key in obj) {
var value = obj[key];
- console.log(key+":"+value);
- console.log($('table#details tr#'+value.substring(0,value.indexOf("-"))).children().length );
if(value.includes("input") && $('table#details tr#'+value.substring(0,value.indexOf("-"))).children().length == 0 ) {
$('table#details').append(' |
')
$('table#details tr#'+value.substring(0,value.indexOf("-"))+' td p').text(capitalizeFirstLetter(value.substring(0,value.indexOf("-"))));
@@ -301,8 +342,7 @@ function show_part_info(partID) {
$('#calculate-add-button').off('click').on('click', function() {
for (var key in obj) {
var value = obj[key];
- console.log(key+":"+value);
- jsonParameters[obj[key]]=$('table#details tr#'+value.substring(0,value.indexOf("-"))+' td input').val();
+ jsonParameters[value]=$('table#details tr#'+value.substring(0,value.indexOf("-"))+' td input').val();
}
calculate_entry(partID,jsonParameters);
@@ -329,7 +369,6 @@ function perform_query() {
var queryPromise = $.getJSON(rootURL + 'query/' + filter + '/' + query, data, function(data) {
for(var i = 0; i < data.length; i++) {
- console.log(data[i]);
var newRow = $('
');
newRow.append($(' | ').text(text_filter(data[i].type_descriptor)));
newRow.append($(' | ').text(text_filter(data[i].partno)));