X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=manifold%2Fjs%2Fmanifold.js;h=449f735fe4b0ce880d8bd8cdcda5e035716591f6;hb=57c5bcefb1eac66d1db27db28a0c6d3b3b52a407;hp=34b9fa8c8253b1275a93a4ff6774f9409e2f1c9d;hpb=72587434bf584d3ab48542f95cada8b530600bd2;p=myslice.git diff --git a/manifold/js/manifold.js b/manifold/js/manifold.js index 34b9fa8c..449f735f 100644 --- a/manifold/js/manifold.js +++ b/manifold/js/manifold.js @@ -1,12 +1,21 @@ // utilities -function debug_dict (msg, o) { +function debug_dict_keys (msg, o) { var keys=[]; for (var k in o) keys.push(k); - console.log ("debug_dict: " + msg + " keys= " + keys); + console.log ("debug_dict_keys: " + msg + " keys= " + keys); +} +function debug_dict (msg, o) { + for (var k in o) console.log ("debug_dict: " + msg + " [" + k + "]=" + o[k]); } function debug_value (msg, value) { console.log ("debug_value: " + msg + " " + value); } +function debug_query (msg, query) { + if (query === undefined) console.log ("debug_query: " + msg + " -> undefined"); + else if (query == null) console.log ("debug_query: " + msg + " -> null"); + else if ('query_uuid' in query) console.log ("debug_query: " + msg + query.__repr()); + else console.log ("debug_query: " + msg + " query= " + query); +} /* ------------------------------------------------------------ */ // this namespace holds functions for globally managing query objects @@ -29,13 +38,15 @@ var manifold = { // trigger a query asynchroneously proxy_url : '/manifold/proxy/json/', - asynchroneous_debug : true, + asynchroneous_debug : false, // Executes all async. queries // input queries are specified as a list of {'query_uuid': , 'id': } asynchroneous_exec : function (query_uuid_domids) { // start spinners - jQuery('.need-spin').spin(); + + if (manifold.asynchroneous_debug) console.log("Turning on spin with " + jQuery(".need-spin").length + " matches for .need-spin"); + jQuery('.need-spin').spin(spin_presets); // We use js function closure to be able to pass the query (array) to the // callback function used when data is received @@ -45,14 +56,28 @@ var manifold = { // Loop through query array and use ajax to send back query_uuid_domids (to frontend) with json jQuery.each(query_uuid_domids, function(index, tuple) { var query=manifold.find_query(tuple.query_uuid); - var hash=query.to_hash(); - if (manifold.asynchroneous_debug) - console.log ("sending POST on " + manifold.proxy_url + " iterating on " + tuple.query_uuid + " -> " + hash); - jQuery.post(manifold.proxy_url, {'query': hash}, success_closure(query, tuple.id)); + var query_json=JSON.stringify (query); + if (manifold.asynchroneous_debug) { + console.log ("sending POST on " + manifold.proxy_url + " with query= " + query.__repr()); + } + // not quite sure what happens if we send a string directly, as POST data is named.. + // this gets reconstructed on the proxy side with ManifoldQuery.fill_from_POST + jQuery.post(manifold.proxy_url, {'json':query_json} , success_closure(query, tuple.id)); }) }, asynchroneous_success : function (data, query, id) { + if (manifold.asynchroneous_debug) console.log ("received manifold result with code " + data.code); + // xxx should have a nicer declaration of that enum in sync with the python code somehow + if (data.code == 1) { + alert("Your session has expired, please log in again"); + window.location="/logout/"; + return; + } elif (data.code != 0) { + alert("Error received from manifold backend at " + MANIFOLD_URL + " [" + data.output + "]"); + return; + } + data=data.value; if (data) { if (!!id) { /* Directly inform the requestor */