/* If the query has not been analyzed, then we analyze it */
if (query.analyzed_query == null) {
query.analyze_subqueries();
/* If the query has not been analyzed, then we analyze it */
if (query.analyzed_query == null) {
query.analyze_subqueries();
// 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
$.post(manifold.proxy_url, {'json':query_json},
// 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
$.post(manifold.proxy_url, {'json':query_json},
forward: function(query, callback) {
var query_json = JSON.stringify(query);
$.post(manifold.proxy_url, {'json': query_json} ,
forward: function(query, callback) {
var query_json = JSON.stringify(query);
$.post(manifold.proxy_url, {'json': query_json} ,
$.each(result, function(i, record) {
manifold.raise_record_event(query.query_uuid, NEW_RECORD, record);
$.each(result, function(i, record) {
manifold.raise_record_event(query.query_uuid, NEW_RECORD, record);
manifold.raise_record_event(query.query_uuid, DONE);
// OLD PLUGIN API BELOW
/* Publish an update announce */
var channel="/results/" + query.query_uuid + "/changed";
manifold.raise_record_event(query.query_uuid, DONE);
// OLD PLUGIN API BELOW
/* Publish an update announce */
var channel="/results/" + query.query_uuid + "/changed";
* \memberof Manifold
* \param ManifoldQuery query Query which has received result
* \param array result result corresponding to query
* \memberof Manifold
* \param ManifoldQuery query Query which has received result
* \param array result result corresponding to query
*/
publish_result_rec: function(query, result) {
/* If the result is not unique, only publish the top query;
* otherwise, publish the main object as well as subqueries
* XXX how much recursive are we ?
*/
*/
publish_result_rec: function(query, result) {
/* If the result is not unique, only publish the top query;
* otherwise, publish the main object as well as subqueries
* XXX how much recursive are we ?
*/
if (manifold.query_expects_unique_result(query)) {
/* Also publish subqueries */
$.each(query.subqueries, function(object, subquery) {
if (manifold.query_expects_unique_result(query)) {
/* Also publish subqueries */
$.each(query.subqueries, function(object, subquery) {
this.setup_update_query(query, records);
/* Publish full results */
this.setup_update_query(query, records);
/* Publish full results */
// e.g. an updater wants to publish its result as if from the original (get) query
asynchroneous_success : function (data, query, publish_uuid, callback) {
// xxx should have a nicer declaration of that enum in sync with the python code somehow
// e.g. an updater wants to publish its result as if from the original (get) query
asynchroneous_success : function (data, query, publish_uuid, callback) {
// 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 query.object=" + query.object);
+
+ var start = new Date();
+ if (manifold.asynchroneous_debug)
+ messages.debug(">>>>>>>>>> asynchroneous_success query.object=" + query.object);
if (data.code == 2) { // ERROR
// We need to make sense of error codes here
alert("Your session has expired, please log in again");
window.location="/logout/";
if (data.code == 2) { // ERROR
// 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) {
- duration=new Date()-start;
- messages.debug ("<<<<<<<<<< asynchroneous_success " + query.object + " -- error returned - logging out " + duration + " ms");
- }
+ if (manifold.asynchroneous_debug) {
+ duration=new Date()-start;
+ messages.debug ("<<<<<<<<<< asynchroneous_success " + query.object + " -- error returned - logging out " + duration + " ms");
+ }
- callback(data);
- if (manifold.asynchroneous_debug) {
- duration=new Date()-start;
- messages.debug ("<<<<<<<<<< asynchroneous_success " + query.object + " -- callback ended " + duration + " ms");
- }
- return;
- }
+ callback(data);
+ if (manifold.asynchroneous_debug) {
+ duration=new Date()-start;
+ messages.debug ("<<<<<<<<<< asynchroneous_success " + query.object + " -- callback ended " + duration + " ms");
+ }
+ return;
+ }
- if (manifold.asynchroneous_debug)
- messages.debug ("========== asynchroneous_success " + query.object + " -- before process_query_records");
+ if (manifold.asynchroneous_debug)
+ messages.debug ("========== asynchroneous_success " + query.object + " -- before process_query_records");
//tmp_query = manifold.find_query(query.query_uuid);
//manifold.publish_result_rec(tmp_query.analyzed_query, result);
}
//tmp_query = manifold.find_query(query.query_uuid);
//manifold.publish_result_rec(tmp_query.analyzed_query, result);
}
- if (manifold.asynchroneous_debug) {
- duration=new Date()-start;
- messages.debug ("<<<<<<<<<< asynchroneous_success " + query.object + " -- done " + duration + " ms");
- }
+ if (manifold.asynchroneous_debug) {
+ duration=new Date()-start;
+ messages.debug ("<<<<<<<<<< asynchroneous_success " + query.object + " -- done " + duration + " ms");
+ }
raise_event_handler: function(type, query_uuid, event_type, value) {
if ((type != 'query') && (type != 'record'))
throw 'Incorrect type for manifold.raise_event()';
raise_event_handler: function(type, query_uuid, event_type, value) {
if ((type != 'query') && (type != 'record'))
throw 'Incorrect type for manifold.raise_event()';
- // xxx we observe quite a lot of incoming calls with an undefined query_uuid
- // this should be fixed upstream
- if (query_uuid === undefined) {
- messages.warning("undefined query in raise_event_handler");
- return;
- }
-
- // notify the change to objects that either listen to this channel specifically,
- // or to the wildcard channel
+ // xxx we observe quite a lot of incoming calls with an undefined query_uuid
+ // this should be fixed upstream
+ if (query_uuid === undefined) {
+ messages.warning("undefined query in raise_event_handler");
+ return;
+ }
+
+ // notify the change to objects that either listen to this channel specifically,
+ // or to the wildcard channel
var channels = [ manifold.get_channel(type, query_uuid), manifold.get_channel(type, '*') ];
$.each(channels, function(i, channel) {
if (value === undefined) {
$('.plugin').trigger(channel, [event_type]);
var channels = [ manifold.get_channel(type, query_uuid), manifold.get_channel(type, '*') ];
$.each(channels, function(i, channel) {
if (value === undefined) {
$('.plugin').trigger(channel, [event_type]);
update_query.params[value.key] = value.value;
break;
case FIELD_REQUEST_ADD:
if ($.inArray(value.value, update_query_orig.params[value.key]) != -1)
value.request = FIELD_REQUEST_ADD_RESET;
update_query.params[value.key] = value.value;
break;
case FIELD_REQUEST_ADD:
if ($.inArray(value.value, update_query_orig.params[value.key]) != -1)
value.request = FIELD_REQUEST_ADD_RESET;
var arr = update_query.params[value.key];
arr = $.grep(arr, function(x) { return x != value.value; });
var arr = update_query.params[value.key];
arr = $.grep(arr, function(x) { return x != value.value; });
// 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.
// 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.
// object = the same as get
// filter = key : update a single object for now
// fields = the same as get
// object = the same as get
// filter = key : update a single object for now
// fields = the same as get