src/js/serializers/JSONSerializer.js
branchpopcorn-port
changeset 536 b7e545e35287
parent 528 a5894f09825a
child 566 098929cd2d62
--- 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);