X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=manifold%2Fjs%2Fmanifold.js;h=826ea32394e20b1d177dc41103068d2429ab0acc;hb=f1910e576b71036ea87679aea144aae8520c54d9;hp=bd34726ecee9e40d7436f724bb3579405bc69e8e;hpb=7cf740311b9972fdca71751e93133fc86ba85360;p=myslice.git diff --git a/manifold/js/manifold.js b/manifold/js/manifold.js index bd34726e..826ea323 100644 --- a/manifold/js/manifold.js +++ b/manifold/js/manifold.js @@ -51,7 +51,8 @@ var SET_REMOVED = 202; 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; @@ -795,19 +796,20 @@ var manifold = { 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; @@ -818,6 +820,21 @@ var manifold = { 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;