// tag string generator function tagGen(len) { var text = ""; var charset = "0123456789"; for( var i=0; i < len; i++ ) text += charset.charAt(Math.floor(Math.random() * charset.length)); return text; } var SPNAPI = (function(SPNAPI, $, undefined) { SPNAPI.methods = {}; SPNAPI.pages = ["Settings", "eyedea", "Peers","Debug", "Coins", "Blockexplorer"]; SPNAPI.pageContent = {}; SPNAPI.page = "welcome"; $(document).ready(function() { //load Pages into the navbar $.each(SPNAPI.pages, function( index, value ) { $("#welcome").after(''); }); $(".navigation").on("click", function () { var page = $(this).data("page"); $(".navigation").removeClass("active"); SPNAPI.loadSite(page); }); $(".page").hide(); $("#welcome_page").show(); $(".submit_api_request").on("click", function () { SPNAPI.submitRequest(); }); $(".clear-response").on("click", function () { $(".hljs").html("JSON response"); }); }); // this function handles form in "eyedea" tab // you can use it as example for writing your own SPNAPI.submitRequest = function(e) { if ($("#json_src").val()) { var request = $("#json_src").val(); } else { console.log('request is empty'); return; } SPNAPI.makeRequest(request, function(json_req, json_resp) { $(".result").text(json_resp); historyTable.addItem(json_req); }); }; // makeRequest is wrapper-function for performing postCall requests. // argument is your json request, tag is generated and added autmatically // two options are passed to callback, request and response SPNAPI.makeRequest = function( request, callback ) { // check if tag is already included in request request = JSON.parse( request ); if ( request.tag == undefined ) { request = JSON.stringify( request ); var tag = tagGen(18); request = request.substr(0, request.length - 1); request = request + ',"tag":"' + tag.toString() + '"}'; } else { request = JSON.stringify( request ); } console.log('Requesting: ' + request); postCall('iguana', request, function(response){ console.log('Response is ' + response); callback(request, response); }); } return SPNAPI; }(SPNAPI || {}, jQuery));