X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=manifold%2Fjs%2Fmanifold.js;h=726e68fdd5cca6040e02eadab4db71e848166742;hb=b5026ae49bf273530be0e78ea856b883691ed716;hp=fe16d0af03b4673ed7c0b9f9dbda0f7c4a207c1c;hpb=f2176d60645d90ddb8a40a24fb8c9970ebd809bf;p=myslice.git diff --git a/manifold/js/manifold.js b/manifold/js/manifold.js index fe16d0af..726e68fd 100644 --- a/manifold/js/manifold.js +++ b/manifold/js/manifold.js @@ -314,7 +314,10 @@ var manifold = { // trigger a query asynchroneously proxy_url : '/manifold/proxy/json/', + // reasonably low-noise, shows manifold requests coming in and out asynchroneous_debug : true, + // print our more details on result publication and related callbacks + publish_result_debug : false, /** * \brief We use js function closure to be able to pass the query (array) @@ -371,7 +374,8 @@ var manifold = { // 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} , manifold.success_closure(query, publish_uuid, tuple.callback /*domid*/)); + jQuery.post(manifold.proxy_url, {'json':query_json}, + manifold.success_closure(query, publish_uuid, tuple.callback /*domid*/)); }) }, @@ -384,7 +388,8 @@ var manifold = { */ forward: function(query, callback /*domid*/) { var query_json = JSON.stringify(query); - $.post(manifold.proxy_url, {'json': query_json} , manifold.success_closure(query, query.query_uuid, callback/*domid*/)); + $.post(manifold.proxy_url, {'json': query_json} , + manifold.success_closure(query, query.query_uuid, callback/*domid*/)); }, /*! @@ -414,17 +419,22 @@ var manifold = { // NEW PLUGIN API manifold.raise_record_event(query.query_uuid, CLEAR_RECORDS); + if (manifold.publish_result_debug) messages.debug(".. publish_result (1) "); + var count=0; $.each(result, function(i, record) { manifold.raise_record_event(query.query_uuid, NEW_RECORD, record); + count += 1; }); + if (manifold.publish_result_debug) messages.debug(".. publish_result NEW API (2) count=" + count); manifold.raise_record_event(query.query_uuid, DONE); // OLD PLUGIN API BELOW /* Publish an update announce */ var channel="/results/" + query.query_uuid + "/changed"; - if (manifold.asynchroneous_debug) - messages.debug("publishing result on " + channel); + if (manifold.publish_result_debug) messages.debug(".. publish_result OLD API (3) " + channel); jQuery.publish(channel, [result, query]); + + if (manifold.publish_result_debug) messages.debug(".. publish_result - END (4) q=" + query.__repr()); }, /*! @@ -439,6 +449,7 @@ var manifold = { * otherwise, publish the main object as well as subqueries * XXX how much recursive are we ? */ + if (manifold.publish_result_debug) messages.debug (">>>>> publish_result_rec " + query.object); if (manifold.query_expects_unique_result(query)) { /* Also publish subqueries */ jQuery.each(query.subqueries, function(object, subquery) { @@ -446,7 +457,9 @@ var manifold = { /* TODO remove object from result */ }); } + if (manifold.publish_result_debug) messages.debug ("===== publish_result_rec " + query.object); manifold.publish_result(query, result); + if (manifold.publish_result_debug) messages.debug ("<<<<< publish_result_rec " + query.object); }, setup_update_query: function(query, records) { @@ -688,14 +701,17 @@ var manifold = { asynchroneous_success : function (data, query, publish_uuid, callback /*domid*/) { // xxx should have a nicer declaration of that enum in sync with the python code somehow + var start = new Date(); if (manifold.asynchroneous_debug) - messages.debug(">>> asynchroneous_success (json returned) for " + query.object + " " + publish_uuid); + messages.debug(">>>>>>>>>> asynchroneous_success query.object=" + query.object); /* If a callback has been specified, we redirect results to it */ if (!!callback) { callback(data); - if (manifold.asynchroneous_debug) - messages.debug ("<<< asynchroneous_success " + query.object + " " + publish_uuid + " -- callback ended"); + if (manifold.asynchroneous_debug) { + duration=new Date()-start; + messages.debug ("<<<<<<<<<< asynchroneous_success " + query.object + " -- callback ended " + duration + " ms"); + } return; } @@ -703,8 +719,10 @@ var manifold = { // We need to make sense of error codes here alert("Your session has expired, please log in again"); window.location="/logout/"; - if (manifold.asynchroneous_debug) - messages.debug ("<<< asynchroneous_success " + query.object + " " + publish_uuid + " -- error returned - logging out"); + if (manifold.asynchroneous_debug) { + duration=new Date()-start; + messages.debug ("<<<<<<<<<< asynchroneous_success " + query.object + " -- error returned - logging out " + duration + " ms"); + } return; } if (data.code == 1) { // WARNING @@ -722,8 +740,8 @@ var manifold = { }); } - if (manifold.asynchroneous_debug) - messages.debug ("=== asynchroneous_success " + query.object + " " + publish_uuid + " -- before process_query_records"); + if (manifold.asynchroneous_debug) + messages.debug ("========== asynchroneous_success " + query.object + " -- before process_query_records"); // once everything is checked we can use the 'value' part of the manifoldresult var result=data.value; @@ -735,8 +753,11 @@ var manifold = { //tmp_query = manifold.find_query(query.query_uuid); //manifold.publish_result_rec(tmp_query.analyzed_query, result); } - if (manifold.asynchroneous_debug) - messages.debug ("<<< asynchroneous_success " + query.object + " " + publish_uuid + " -- done"); + if (manifold.asynchroneous_debug) { + duration=new Date()-start; + messages.debug ("<<<<<<<<<< asynchroneous_success " + query.object + " -- done " + duration + " ms"); + } + }, /************************************************************************** @@ -750,10 +771,11 @@ var manifold = { var channels = [ manifold.get_channel(type, query_uuid), manifold.get_channel(type, '*') ]; $.each(channels, function(i, channel) { - if (value === undefined) + if (value === undefined) { $('.plugin').trigger(channel, [event_type]); - else + } else { $('.plugin').trigger(channel, [event_type, value]); + } }); }, @@ -870,7 +892,8 @@ var manifold = { // NOTE : we have to modify all child queries // NOTE : parts of a query might not be started (eg slice.measurements, how to handle ?) - // if everything is done right, update_query should not be null. It is updated when we received results from the get query + // if everything is done right, update_query should not be null. + // It is updated when we received results from the get query // object = the same as get // filter = key : update a single object for now // fields = the same as get @@ -1015,4 +1038,3 @@ $.ajaxSetup({ } } }); -