var FIELD_REQUEST_CHANGE = 301;
var FIELD_REQUEST_ADD = 302;
var FIELD_REQUEST_REMOVE = 303;
-var FIELD_REQUEST_RESET = 304;
+var FIELD_REQUEST_ADD_RESET = 304;
+var FIELD_REQUEST_REMOVE_RESET = 305;
// status
var FIELD_REQUEST_PENDING = 401;
var FIELD_REQUEST_SUCCESS = 402;
{
// We don't prepare an update query if the result has more than 1 entry
if (records.length != 1)
- continue;
+ return;
var query_ext = manifold.query_store.find_query_ext(query.query_uuid);
var record = records[0];
break;
case FIELD_REQUEST_ADD:
if ($.inArray(value.value, update_query_orig.params[value.key]) != -1)
- value.request = FIELD_REQUEST_RESET;
+ value.request = FIELD_REQUEST_ADD_RESET;
update_query.params[value.key].push(value.value);
break;
case FIELD_REQUEST_REMOVE:
if ($.inArray(value.value, update_query_orig.params[value.key]) == -1)
- value.request = FIELD_REQUEST_RESET;
+ value.request = FIELD_REQUEST_REMOVE_RESET;
var arr = update_query.params[value.key];
arr = $.grep(arr, function(x) { return x != value.value; });
update_query.params[value.key] = arr;
break;
- case FIELD_REQUEST_RESET:
+ case FIELD_REQUEST_ADD_RESET:
+ case FIELD_REQUEST_REMOVE_RESET:
// XXX We would need to keep track of the original query
throw "Not implemented";
break;
manifold.raise_record_event(query_uuid, event_type, value);
// b) subqueries eventually (dot in the key)
+ // Let's unfold
+ var path_array = value.key.split('.');
+ var value_key = value.key.split('.');
+
+ var cur_query = query;
+ if (cur_query.analyzed_query)
+ cur_query = cur_query.analyzed_query;
+ $.each(path_array, function(i, method) {
+ cur_query = cur_query.subqueries[method];
+ value_key.shift(); // XXX check that method is indeed shifted
+ });
+ value.key = value_key;
+
+ manifold.raise_record_event(cur_query.query_uuid, event_type, value);
+
// XXX make this DOT a global variable... could be '/'
break;