// 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)
// 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*/));
})
},
*/
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*/));
},
/*!
// 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());
},
/*!
* 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) {
/* 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) {
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;
}
// 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
});
}
- 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;
//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");
+ }
+
},
/**************************************************************************
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]);
+ }
});
},
// 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
}
}
});
-