var active_timer = 100; 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(); $('table#details tr#partno td p').hide(); $('input[name=partno-input]').show(); // $('#magical_autofill').show(); $('table#details tr#description td p').hide(); $('input[name=description-input]').show(); $('table#details tr#datasheet td input').closest().show(); $('table#details tr#datasheet td input').show(); $('#duplicate-button').closest('div').hide(); $('#delete-button').closest('div').hide(); $('tr#datasheet').show(); $('input[name=notes-input]').show(); $('table#details tr#notes td p').hide(); $('input[name=voltage-input]').show(); $('table#details tr#voltage td p').hide(); $('input[name=current-input]').show(); $('table#details tr#current td p').hide(); $('input[name=sleepcurrent-input]').show(); $('table#details tr#sleepcurrent td p').hide(); $('input[name=txrx-input]').show(); $('input[name=txrx-head]').show(); $('table#details tr#txrx td p').hide(); // var newButton = '
'; // $('.round-button-left').replaceWith(newButton); $('#edit-button').html(''); $('#edit-button').off('click').on('click', function(){ save(partID); }); } function new_entry() { $('table#details tr#type td p').text(''); $('table#details tr#partno td p').text(''); $('table#details tr#description td p').text(''); $('table#details tr#partno td input').val(''); $('table#details tr#description td input').val(''); $('input[name=datasheet-url-input]').val(''); container_onchange(); init_edit(-1); overlay_in(); } 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
'; $('#datasheet-info').replaceWith(datasheet_par); // Fix addressing $('#edit-button').click(function() { init_edit(JSON.parse(data).part_id); }); }, error: function() { alert("Couldn't update the part information. Please retry."); } }); end_edit(); perform_query(); } function text_filter(string) { if (string != null) return string; else return ''; } function delete_entry(partID) { if (partID < 0) return; if (!confirm('Delete the selected entry?')) return; $.ajax({ url: rootURL + 'delete/' + partID, type: 'GET', cache: false, contentType: false, processData: false, success: function() { overlay_out(); perform_query(); }, fail: function() { console.log('An error occurred while deleting the entry'); }, }); } function calculate_entry(partID,jsonParameters) { if (partID < 0) return; if (!confirm('Add selected entry to calculation?')) return; if(jsonParameters != null) { // for(var k = 0; k < count; k++) { var obj = Object.keys(jsonParameters); 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]; 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) { $.getJSON(rootURL + 'getpartinfo/' + partID, function(data) { $('img#map').attr('src', 'parts/map/' + data.type_id); $('#type-dropdown').empty(); $.getJSON('/getTypes', function(json) { $.each(json, function(type_id, type_name) { $('#type-dropdown').append(''); if (data.type_id == type_id) { $('table#details tr#type td p').text(text_filter(type_name)); // name is the type friendly name } }); $('#type-dropdown').val(data.type_id); }); $('table#details tr#partno td p').text(text_filter(data.partno)); $('table#details tr#partno td input').val(text_filter(data.partno)); $('table#details tr#description td p').text(text_filter(data.description)); $('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)); if(data.parameters != null) { var jsonParameters = JSON.parse(data.parameters); var count = Object.keys(jsonParameters).length; // for(var k = 0; k < count; k++) { var obj = Object.keys(jsonParameters); var values = Object.values(jsonParameters); for (var key in obj) { var value = obj[key]; if(value.includes("input") && $('table#details tr#'+value.substring(0,value.indexOf("-"))).children().length == 0 ) { $('table#details').append('