X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=manifold%2Fjs%2Fmanifold-query.js;h=c6ebaabf03959a1dc8840ff7d9315846a7cadd67;hb=4b9ed7eeaae673d0bf30a4d494fa052bcbc41fdb;hp=7c5de9256fa96cc08ef5758647caf78dc31f4866;hpb=4f9ae42164062b361bee7650af3c37b83fa8ea0a;p=unfold.git diff --git a/manifold/js/manifold-query.js b/manifold/js/manifold-query.js index 7c5de925..c6ebaabf 100644 --- a/manifold/js/manifold-query.js +++ b/manifold/js/manifold-query.js @@ -74,7 +74,7 @@ INSERT INTO object VALUES(field=value) } // FIXME These functions computing diff's between queries are meant to be shared - this.diff_fields = function (otherQuery) { + this.diff_fields = function(otherQuery) { var f1 = this.fields; var f2 = otherQuery.fields; @@ -87,7 +87,7 @@ INSERT INTO object VALUES(field=value) } // FIXME Modify filter to filters - this.diff_filter = function (otherQuery) { + this.diff_filter = function(otherQuery) { var f1 = this.filters; var f2 = otherQuery.filters; @@ -98,6 +98,22 @@ INSERT INTO object VALUES(field=value) return {'added':added, 'removed':removed}; } + + this.iter_subqueries = function(callback, data) + { + rec = function(query, callback, data) { + jQuery.each(query.subqueries, function(object, subquery) { + rec(subquery, callback); + }); + callback(query, data); + }; + if (this.analyzed_query !== undefined) + query = this.analyzed_query; + else + query = this + rec(query, callback, data); + } + // we send queries as a json string now // this.as_POST = function() { // return {'action': this.action, 'object': this.object, 'timestamp': this.timestamp,