X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=manifold%2Fjs%2Fmanifold.js;h=449f735fe4b0ce880d8bd8cdcda5e035716591f6;hb=57c5bcefb1eac66d1db27db28a0c6d3b3b52a407;hp=6cd209b26de874e1844061f40f9c5b4df6ea3c30;hpb=20835fc7deb0d149293351f032af6e5d9e4a1952;p=myslice.git diff --git a/manifold/js/manifold.js b/manifold/js/manifold.js index 6cd209b2..449f735f 100644 --- a/manifold/js/manifold.js +++ b/manifold/js/manifold.js @@ -1,8 +1,11 @@ // 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); @@ -10,7 +13,7 @@ function 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_uuid= " + query.query_uuid); + else if ('query_uuid' in query) console.log ("debug_query: " + msg + query.__repr()); else console.log ("debug_query: " + msg + " query= " + query); } @@ -35,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 @@ -51,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 + " with query= " + query.__repr(query)); - 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 */