diff -r 7c25af985344 -r b7e545e35287 src/js/serializers/JSONSerializer.js --- a/src/js/serializers/JSONSerializer.js Tue Dec 27 16:24:01 2011 +0100 +++ b/src/js/serializers/JSONSerializer.js Wed Dec 28 10:39:54 2011 +0100 @@ -234,23 +234,16 @@ var view; var currentTimeMs = 1000 * currentTime; - if (typeof(this._data.views) !== "undefined" && this._data.views !== null) - view = this._data.views[0]; - - var view_type = ""; - - if(typeof(view) !== "undefined" && typeof(view.annotation_types) !== "undefined" && view.annotation_types.length >= 1) { - view_type = view.annotation_types[0]; - } - + var legal_ids = this.getNonTweetIds(); + var ret_array = []; var i; - + for (i in this._data.annotations) { var annotation = this._data.annotations[i]; - if (annotation.meta["id-ref"] === view_type && annotation.begin <= currentTimeMs && annotation.end >= currentTimeMs) + if (IriSP.underscore.include(legal_ids, annotation.meta["id-ref"]) && annotation.begin <= currentTimeMs && annotation.end >= currentTimeMs) ret_array.push(annotation); } @@ -279,9 +272,11 @@ if (typeof(this._data.lists) === "undefined" || this._data.lists === null) return []; - /* get all the ids */ - var ids = IriSP.underscore.map(this._data.lists, function(entry) { - return IriSP.underscore.pluck(entry.items, "id-ref"); }); + /* complicated : for each list in this._data.lists, get the id-ref. + flatten the returned array because pluck returns a string afterwards. + */ + var ids = IriSP.underscore.flatten(IriSP.underscore.map(this._data.lists, function(entry) { + return IriSP.underscore.pluck(entry.items, "id-ref"); })); var illegal_values = this.getTweetIds(); return IriSP.underscore.difference(ids, illegal_values);