src/js/widgets/annotationsListWidget.js
author hamidouk
Fri, 27 Jan 2012 11:29:03 +0100
branchpopcorn-port
changeset 729 7ba63d0315ad
parent 716 16d61d539cbf
child 730 357fc047503b
permissions -rw-r--r--
load the widget when the video has finished loading.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
585
44a4a4a179c1 first version of the AnnotationListWidget.
hamidouk
parents:
diff changeset
     1
IriSP.AnnotationsListWidget = function(Popcorn, config, Serializer) {
44a4a4a179c1 first version of the AnnotationListWidget.
hamidouk
parents:
diff changeset
     2
  IriSP.Widget.call(this, Popcorn, config, Serializer);
605
e1a6f73038b4 made the listWidget redraw at every timeupdate event (added a small optimization though,
hamidouk
parents: 603
diff changeset
     3
  this.__counter = 0;
e1a6f73038b4 made the listWidget redraw at every timeupdate event (added a small optimization though,
hamidouk
parents: 603
diff changeset
     4
  this.__oldList = [];
674
835f5f454595 WIP - working on ajax autoupdate of the widget.
hamidouk
parents: 642
diff changeset
     5
  
835f5f454595 WIP - working on ajax autoupdate of the widget.
hamidouk
parents: 642
diff changeset
     6
  this.ajax_mode = IriSP.widgetsDefaults["AnnotationsListWidget"].ajax_mode;
714
9056928c46de WIP - making links to only annotations which are not present in the opened
hamidouk
parents: 703
diff changeset
     7
  this.project_url = IriSP.widgetsDefaults["AnnotationsListWidget"].project_url;  
585
44a4a4a179c1 first version of the AnnotationListWidget.
hamidouk
parents:
diff changeset
     8
};
44a4a4a179c1 first version of the AnnotationListWidget.
hamidouk
parents:
diff changeset
     9
44a4a4a179c1 first version of the AnnotationListWidget.
hamidouk
parents:
diff changeset
    10
44a4a4a179c1 first version of the AnnotationListWidget.
hamidouk
parents:
diff changeset
    11
IriSP.AnnotationsListWidget.prototype = new IriSP.Widget();
44a4a4a179c1 first version of the AnnotationListWidget.
hamidouk
parents:
diff changeset
    12
44a4a4a179c1 first version of the AnnotationListWidget.
hamidouk
parents:
diff changeset
    13
IriSP.AnnotationsListWidget.prototype.clear = function() {
44a4a4a179c1 first version of the AnnotationListWidget.
hamidouk
parents:
diff changeset
    14
};
44a4a4a179c1 first version of the AnnotationListWidget.
hamidouk
parents:
diff changeset
    15
588
78cf49152d4a got a decent-looking list.
hamidouk
parents: 585
diff changeset
    16
IriSP.AnnotationsListWidget.prototype.clearWidget = function() {
585
44a4a4a179c1 first version of the AnnotationListWidget.
hamidouk
parents:
diff changeset
    17
};
44a4a4a179c1 first version of the AnnotationListWidget.
hamidouk
parents:
diff changeset
    18
629
b13bcfd2f9b1 DRYied the code.
hamidouk
parents: 621
diff changeset
    19
/** effectively redraw the widget - called by drawList */
b13bcfd2f9b1 DRYied the code.
hamidouk
parents: 621
diff changeset
    20
IriSP.AnnotationsListWidget.prototype.do_redraw = function(list) {
b13bcfd2f9b1 DRYied the code.
hamidouk
parents: 621
diff changeset
    21
    var widgetMarkup = IriSP.templToHTML(IriSP.annotationsListWidget_template, {annotations: list});
b13bcfd2f9b1 DRYied the code.
hamidouk
parents: 621
diff changeset
    22
    this.selector.html(widgetMarkup);
b13bcfd2f9b1 DRYied the code.
hamidouk
parents: 621
diff changeset
    23
};
b13bcfd2f9b1 DRYied the code.
hamidouk
parents: 621
diff changeset
    24
599
a5a5e70d46a7 added support for widget redrawing.
hamidouk
parents: 595
diff changeset
    25
/** draw the annotation list */
607
0b94ae49efbd added an option to force the redraw of a list, even if the cached lists are the
hamidouk
parents: 605
diff changeset
    26
IriSP.AnnotationsListWidget.prototype.drawList = function(force_redraw) {
585
44a4a4a179c1 first version of the AnnotationListWidget.
hamidouk
parents:
diff changeset
    27
  var _this = this;
674
835f5f454595 WIP - working on ajax autoupdate of the widget.
hamidouk
parents: 642
diff changeset
    28
  
595
29d86e6c61a6 finished going through the widgets to add stricter line checking.
hamidouk
parents: 588
diff changeset
    29
  var view_type = this._serializer.getContributions();
585
44a4a4a179c1 first version of the AnnotationListWidget.
hamidouk
parents:
diff changeset
    30
  var annotations = this._serializer._data.annotations;
602
b35862f9b0b0 WIP - working on the autoupdate of the widget.
hamidouk
parents: 599
diff changeset
    31
  var currentTime = this._Popcorn.currentTime();
605
e1a6f73038b4 made the listWidget redraw at every timeupdate event (added a small optimization though,
hamidouk
parents: 603
diff changeset
    32
    
585
44a4a4a179c1 first version of the AnnotationListWidget.
hamidouk
parents:
diff changeset
    33
  var list = [];
588
78cf49152d4a got a decent-looking list.
hamidouk
parents: 585
diff changeset
    34
621
170a8cd859d5 remove error message.
hamidouk
parents: 615
diff changeset
    35
  if (typeof(view_type) === "undefined") {    
585
44a4a4a179c1 first version of the AnnotationListWidget.
hamidouk
parents:
diff changeset
    36
    return;
44a4a4a179c1 first version of the AnnotationListWidget.
hamidouk
parents:
diff changeset
    37
  }
588
78cf49152d4a got a decent-looking list.
hamidouk
parents: 585
diff changeset
    38
585
44a4a4a179c1 first version of the AnnotationListWidget.
hamidouk
parents:
diff changeset
    39
  for (i = 0; i < annotations.length; i++) {
44a4a4a179c1 first version of the AnnotationListWidget.
hamidouk
parents:
diff changeset
    40
    var annotation = annotations[i];
44a4a4a179c1 first version of the AnnotationListWidget.
hamidouk
parents:
diff changeset
    41
44a4a4a179c1 first version of the AnnotationListWidget.
hamidouk
parents:
diff changeset
    42
    /* filter the annotations whose type is not the one we want */
44a4a4a179c1 first version of the AnnotationListWidget.
hamidouk
parents:
diff changeset
    43
    if (typeof(annotation.meta) !== "undefined" && typeof(annotation.meta["id-ref"]) !== "undefined"
615
7eb41c26a8b7 stricter equality check.
hamidouk
parents: 607
diff changeset
    44
          && annotation.meta["id-ref"] !== view_type) {
585
44a4a4a179c1 first version of the AnnotationListWidget.
hamidouk
parents:
diff changeset
    45
        continue;
44a4a4a179c1 first version of the AnnotationListWidget.
hamidouk
parents:
diff changeset
    46
    }
44a4a4a179c1 first version of the AnnotationListWidget.
hamidouk
parents:
diff changeset
    47
602
b35862f9b0b0 WIP - working on the autoupdate of the widget.
hamidouk
parents: 599
diff changeset
    48
    /* only get the annotations happening in the current chapter */
603
58dfdafb5410 fixed stupid ms/s bug.
hamidouk
parents: 602
diff changeset
    49
    if (!(annotation.begin <= currentTime * 1000 && annotation.end > currentTime * 1000)) {        
602
b35862f9b0b0 WIP - working on the autoupdate of the widget.
hamidouk
parents: 599
diff changeset
    50
        continue;
b35862f9b0b0 WIP - working on the autoupdate of the widget.
hamidouk
parents: 599
diff changeset
    51
    }
603
58dfdafb5410 fixed stupid ms/s bug.
hamidouk
parents: 602
diff changeset
    52
585
44a4a4a179c1 first version of the AnnotationListWidget.
hamidouk
parents:
diff changeset
    53
    var a = annotation;
44a4a4a179c1 first version of the AnnotationListWidget.
hamidouk
parents:
diff changeset
    54
    var obj = {};
588
78cf49152d4a got a decent-looking list.
hamidouk
parents: 585
diff changeset
    55
585
44a4a4a179c1 first version of the AnnotationListWidget.
hamidouk
parents:
diff changeset
    56
    obj["id"] = a.id;
44a4a4a179c1 first version of the AnnotationListWidget.
hamidouk
parents:
diff changeset
    57
    obj["title"] = a.content.title;
44a4a4a179c1 first version of the AnnotationListWidget.
hamidouk
parents:
diff changeset
    58
    obj["desc"] = a.content.description;
603
58dfdafb5410 fixed stupid ms/s bug.
hamidouk
parents: 602
diff changeset
    59
    obj["begin"] = IriSP.msToTime(annotation.begin);
58dfdafb5410 fixed stupid ms/s bug.
hamidouk
parents: 602
diff changeset
    60
    obj["end"] = IriSP.msToTime(annotation.end);
588
78cf49152d4a got a decent-looking list.
hamidouk
parents: 585
diff changeset
    61
585
44a4a4a179c1 first version of the AnnotationListWidget.
hamidouk
parents:
diff changeset
    62
    list.push(obj);
44a4a4a179c1 first version of the AnnotationListWidget.
hamidouk
parents:
diff changeset
    63
  }
607
0b94ae49efbd added an option to force the redraw of a list, even if the cached lists are the
hamidouk
parents: 605
diff changeset
    64
  
605
e1a6f73038b4 made the listWidget redraw at every timeupdate event (added a small optimization though,
hamidouk
parents: 603
diff changeset
    65
  var idList = IriSP.underscore.pluck(list, "id").sort();
642
37693f217f8c redraw the list when a new annotation is added.
hamidouk
parents: 629
diff changeset
    66
605
e1a6f73038b4 made the listWidget redraw at every timeupdate event (added a small optimization though,
hamidouk
parents: 603
diff changeset
    67
  if (idList.length !== this.__oldList.length) {
629
b13bcfd2f9b1 DRYied the code.
hamidouk
parents: 621
diff changeset
    68
    this.do_redraw(list);
605
e1a6f73038b4 made the listWidget redraw at every timeupdate event (added a small optimization though,
hamidouk
parents: 603
diff changeset
    69
  }
e1a6f73038b4 made the listWidget redraw at every timeupdate event (added a small optimization though,
hamidouk
parents: 603
diff changeset
    70
    
e1a6f73038b4 made the listWidget redraw at every timeupdate event (added a small optimization though,
hamidouk
parents: 603
diff changeset
    71
  var res = 1;
e1a6f73038b4 made the listWidget redraw at every timeupdate event (added a small optimization though,
hamidouk
parents: 603
diff changeset
    72
  for (var i = 0; i < idList.length; i++) {
e1a6f73038b4 made the listWidget redraw at every timeupdate event (added a small optimization though,
hamidouk
parents: 603
diff changeset
    73
    if (idList[i] !== this.__oldList[i])
e1a6f73038b4 made the listWidget redraw at every timeupdate event (added a small optimization though,
hamidouk
parents: 603
diff changeset
    74
      res = 0;
e1a6f73038b4 made the listWidget redraw at every timeupdate event (added a small optimization though,
hamidouk
parents: 603
diff changeset
    75
      break;
e1a6f73038b4 made the listWidget redraw at every timeupdate event (added a small optimization though,
hamidouk
parents: 603
diff changeset
    76
  }
e1a6f73038b4 made the listWidget redraw at every timeupdate event (added a small optimization though,
hamidouk
parents: 603
diff changeset
    77
  
e1a6f73038b4 made the listWidget redraw at every timeupdate event (added a small optimization though,
hamidouk
parents: 603
diff changeset
    78
  this.__oldList = idList; /* save for next call */
698
329333e07267 lot of work on the ajax update front.
hamidouk
parents: 674
diff changeset
    79
  
607
0b94ae49efbd added an option to force the redraw of a list, even if the cached lists are the
hamidouk
parents: 605
diff changeset
    80
  if (typeof(force_redraw) !== "undefined") {
629
b13bcfd2f9b1 DRYied the code.
hamidouk
parents: 621
diff changeset
    81
    this.do_redraw(list);
607
0b94ae49efbd added an option to force the redraw of a list, even if the cached lists are the
hamidouk
parents: 605
diff changeset
    82
  }
605
e1a6f73038b4 made the listWidget redraw at every timeupdate event (added a small optimization though,
hamidouk
parents: 603
diff changeset
    83
  
e1a6f73038b4 made the listWidget redraw at every timeupdate event (added a small optimization though,
hamidouk
parents: 603
diff changeset
    84
  /* the two lists are equal, no need to redraw */
e1a6f73038b4 made the listWidget redraw at every timeupdate event (added a small optimization though,
hamidouk
parents: 603
diff changeset
    85
  if (res === 1) {
e1a6f73038b4 made the listWidget redraw at every timeupdate event (added a small optimization though,
hamidouk
parents: 603
diff changeset
    86
    return;
e1a6f73038b4 made the listWidget redraw at every timeupdate event (added a small optimization though,
hamidouk
parents: 603
diff changeset
    87
  } else {
629
b13bcfd2f9b1 DRYied the code.
hamidouk
parents: 621
diff changeset
    88
    this.do_redraw(list);
605
e1a6f73038b4 made the listWidget redraw at every timeupdate event (added a small optimization though,
hamidouk
parents: 603
diff changeset
    89
  }
e1a6f73038b4 made the listWidget redraw at every timeupdate event (added a small optimization though,
hamidouk
parents: 603
diff changeset
    90
  
599
a5a5e70d46a7 added support for widget redrawing.
hamidouk
parents: 595
diff changeset
    91
};
a5a5e70d46a7 added support for widget redrawing.
hamidouk
parents: 595
diff changeset
    92
674
835f5f454595 WIP - working on ajax autoupdate of the widget.
hamidouk
parents: 642
diff changeset
    93
IriSP.AnnotationsListWidget.prototype.ajaxRedraw = function(timecode) {
835f5f454595 WIP - working on ajax autoupdate of the widget.
hamidouk
parents: 642
diff changeset
    94
  var pre_url = IriSP.widgetsDefaults["AnnotationsListWidget"].ajax_url;
698
329333e07267 lot of work on the ajax update front.
hamidouk
parents: 674
diff changeset
    95
  var media_id = this._serializer.currentMedia()["id"];
329333e07267 lot of work on the ajax update front.
hamidouk
parents: 674
diff changeset
    96
  var duration = +this._serializer.currentMedia().meta["dc:duration"];
329333e07267 lot of work on the ajax update front.
hamidouk
parents: 674
diff changeset
    97
  
329333e07267 lot of work on the ajax update front.
hamidouk
parents: 674
diff changeset
    98
  var begin_timecode = (Math.floor(this._Popcorn.currentTime()) - 300) * 1000;
329333e07267 lot of work on the ajax update front.
hamidouk
parents: 674
diff changeset
    99
  if (begin_timecode < 0)
329333e07267 lot of work on the ajax update front.
hamidouk
parents: 674
diff changeset
   100
    begin_timecode = 0;
329333e07267 lot of work on the ajax update front.
hamidouk
parents: 674
diff changeset
   101
    
329333e07267 lot of work on the ajax update front.
hamidouk
parents: 674
diff changeset
   102
  var end_timecode = (Math.floor(this._Popcorn.currentTime()) + 300) * 1000;
329333e07267 lot of work on the ajax update front.
hamidouk
parents: 674
diff changeset
   103
  if (end_timecode > duration)
329333e07267 lot of work on the ajax update front.
hamidouk
parents: 674
diff changeset
   104
    end_timecode = duration;
329333e07267 lot of work on the ajax update front.
hamidouk
parents: 674
diff changeset
   105
  
329333e07267 lot of work on the ajax update front.
hamidouk
parents: 674
diff changeset
   106
  var templ = Mustache.to_html("{{pre_url}}/{{media_id}}/{{begin_timecode}}/{{end_timecode}}",
329333e07267 lot of work on the ajax update front.
hamidouk
parents: 674
diff changeset
   107
                                {pre_url: pre_url, media_id: media_id, begin_timecode: begin_timecode,
329333e07267 lot of work on the ajax update front.
hamidouk
parents: 674
diff changeset
   108
                                 end_timecode: end_timecode});
329333e07267 lot of work on the ajax update front.
hamidouk
parents: 674
diff changeset
   109
  
329333e07267 lot of work on the ajax update front.
hamidouk
parents: 674
diff changeset
   110
  /* we create on the fly a serializer to get the ajax */
329333e07267 lot of work on the ajax update front.
hamidouk
parents: 674
diff changeset
   111
  var serializer = new IriSP.JSONSerializer(IriSP.__dataloader, templ);
329333e07267 lot of work on the ajax update front.
hamidouk
parents: 674
diff changeset
   112
  serializer.sync(IriSP.wrap(this, function(json) { this.processJson(json, serializer) }));                  
674
835f5f454595 WIP - working on ajax autoupdate of the widget.
hamidouk
parents: 642
diff changeset
   113
};
835f5f454595 WIP - working on ajax autoupdate of the widget.
hamidouk
parents: 642
diff changeset
   114
698
329333e07267 lot of work on the ajax update front.
hamidouk
parents: 674
diff changeset
   115
/** process the received json - it's a bit hackish */
329333e07267 lot of work on the ajax update front.
hamidouk
parents: 674
diff changeset
   116
IriSP.AnnotationsListWidget.prototype.processJson = function(json, serializer) {
329333e07267 lot of work on the ajax update front.
hamidouk
parents: 674
diff changeset
   117
  /* FIXME: DRY the whole thing */
329333e07267 lot of work on the ajax update front.
hamidouk
parents: 674
diff changeset
   118
  var annotations = serializer._data.annotations;
329333e07267 lot of work on the ajax update front.
hamidouk
parents: 674
diff changeset
   119
  if (IriSP.null_or_undefined(annotations))
329333e07267 lot of work on the ajax update front.
hamidouk
parents: 674
diff changeset
   120
    return;
329333e07267 lot of work on the ajax update front.
hamidouk
parents: 674
diff changeset
   121
  
329333e07267 lot of work on the ajax update front.
hamidouk
parents: 674
diff changeset
   122
  var view_types = serializer.getIds("Contributions");
329333e07267 lot of work on the ajax update front.
hamidouk
parents: 674
diff changeset
   123
  var l = [];
329333e07267 lot of work on the ajax update front.
hamidouk
parents: 674
diff changeset
   124
  
714
9056928c46de WIP - making links to only annotations which are not present in the opened
hamidouk
parents: 703
diff changeset
   125
  var media = this._serializer.currentMedia()["id"];
9056928c46de WIP - making links to only annotations which are not present in the opened
hamidouk
parents: 703
diff changeset
   126
  
698
329333e07267 lot of work on the ajax update front.
hamidouk
parents: 674
diff changeset
   127
  for (i = 0; i < annotations.length; i++) {
329333e07267 lot of work on the ajax update front.
hamidouk
parents: 674
diff changeset
   128
      var annotation = annotations[i];
703
9341d858bf8e removed useless printfs.
hamidouk
parents: 698
diff changeset
   129
698
329333e07267 lot of work on the ajax update front.
hamidouk
parents: 674
diff changeset
   130
      /* filter the annotations whose type is not the one we want */
329333e07267 lot of work on the ajax update front.
hamidouk
parents: 674
diff changeset
   131
      /* We want _all_ the annotations.
329333e07267 lot of work on the ajax update front.
hamidouk
parents: 674
diff changeset
   132
      if (typeof(annotation.meta) !== "undefined" && typeof(annotation.meta["id-ref"]) !== "undefined"
329333e07267 lot of work on the ajax update front.
hamidouk
parents: 674
diff changeset
   133
            && !IriSP.underscore.include(view_types, annotation.meta["id-ref"])) {
329333e07267 lot of work on the ajax update front.
hamidouk
parents: 674
diff changeset
   134
          continue;
329333e07267 lot of work on the ajax update front.
hamidouk
parents: 674
diff changeset
   135
      }
329333e07267 lot of work on the ajax update front.
hamidouk
parents: 674
diff changeset
   136
      */
329333e07267 lot of work on the ajax update front.
hamidouk
parents: 674
diff changeset
   137
      var a = annotation;
329333e07267 lot of work on the ajax update front.
hamidouk
parents: 674
diff changeset
   138
      var obj = {};
329333e07267 lot of work on the ajax update front.
hamidouk
parents: 674
diff changeset
   139
329333e07267 lot of work on the ajax update front.
hamidouk
parents: 674
diff changeset
   140
      obj["id"] = a.id;
329333e07267 lot of work on the ajax update front.
hamidouk
parents: 674
diff changeset
   141
      obj["title"] = a.content.title;
329333e07267 lot of work on the ajax update front.
hamidouk
parents: 674
diff changeset
   142
      obj["desc"] = a.content.description;
329333e07267 lot of work on the ajax update front.
hamidouk
parents: 674
diff changeset
   143
      obj["begin"] = IriSP.msToTime(annotation.begin);
329333e07267 lot of work on the ajax update front.
hamidouk
parents: 674
diff changeset
   144
      obj["end"] = IriSP.msToTime(annotation.end);
714
9056928c46de WIP - making links to only annotations which are not present in the opened
hamidouk
parents: 703
diff changeset
   145
9056928c46de WIP - making links to only annotations which are not present in the opened
hamidouk
parents: 703
diff changeset
   146
      /* only if the annotation isn't present in the document create an
9056928c46de WIP - making links to only annotations which are not present in the opened
hamidouk
parents: 703
diff changeset
   147
         external link */
9056928c46de WIP - making links to only annotations which are not present in the opened
hamidouk
parents: 703
diff changeset
   148
      if (!this.annotations_ids.hasOwnProperty(obj["id"])) {
9056928c46de WIP - making links to only annotations which are not present in the opened
hamidouk
parents: 703
diff changeset
   149
        // braindead url; jacques didn't want to create a new one in the platform,
9056928c46de WIP - making links to only annotations which are not present in the opened
hamidouk
parents: 703
diff changeset
   150
        // so we append the cutting id to the url.
9056928c46de WIP - making links to only annotations which are not present in the opened
hamidouk
parents: 703
diff changeset
   151
        obj["url"] = this.project_url + "/" + media + "/" + 
9056928c46de WIP - making links to only annotations which are not present in the opened
hamidouk
parents: 703
diff changeset
   152
                     annotation.meta["project"] + "/" +
9056928c46de WIP - making links to only annotations which are not present in the opened
hamidouk
parents: 703
diff changeset
   153
                     annotation.meta["id-ref"] + "/";
9056928c46de WIP - making links to only annotations which are not present in the opened
hamidouk
parents: 703
diff changeset
   154
        
9056928c46de WIP - making links to only annotations which are not present in the opened
hamidouk
parents: 703
diff changeset
   155
        // obj["url"] = document.location.href.split("#")[0] + "/" + annotation.meta["project"];
9056928c46de WIP - making links to only annotations which are not present in the opened
hamidouk
parents: 703
diff changeset
   156
      }
716
16d61d539cbf fixed stupid bug.
hamidouk
parents: 714
diff changeset
   157
      
16d61d539cbf fixed stupid bug.
hamidouk
parents: 714
diff changeset
   158
      l.push(obj);
698
329333e07267 lot of work on the ajax update front.
hamidouk
parents: 674
diff changeset
   159
  }
703
9341d858bf8e removed useless printfs.
hamidouk
parents: 698
diff changeset
   160
698
329333e07267 lot of work on the ajax update front.
hamidouk
parents: 674
diff changeset
   161
  this.do_redraw(l);
329333e07267 lot of work on the ajax update front.
hamidouk
parents: 674
diff changeset
   162
};
599
a5a5e70d46a7 added support for widget redrawing.
hamidouk
parents: 595
diff changeset
   163
IriSP.AnnotationsListWidget.prototype.draw = function() {
714
9056928c46de WIP - making links to only annotations which are not present in the opened
hamidouk
parents: 703
diff changeset
   164
  
9056928c46de WIP - making links to only annotations which are not present in the opened
hamidouk
parents: 703
diff changeset
   165
  /* build a table of the annotations present in the document for faster 
9056928c46de WIP - making links to only annotations which are not present in the opened
hamidouk
parents: 703
diff changeset
   166
     lookup
9056928c46de WIP - making links to only annotations which are not present in the opened
hamidouk
parents: 703
diff changeset
   167
  */
9056928c46de WIP - making links to only annotations which are not present in the opened
hamidouk
parents: 703
diff changeset
   168
  this.annotations_ids = {};
9056928c46de WIP - making links to only annotations which are not present in the opened
hamidouk
parents: 703
diff changeset
   169
  
9056928c46de WIP - making links to only annotations which are not present in the opened
hamidouk
parents: 703
diff changeset
   170
  var annotations = this._serializer._data.annotations;
9056928c46de WIP - making links to only annotations which are not present in the opened
hamidouk
parents: 703
diff changeset
   171
  var i = 0;
9056928c46de WIP - making links to only annotations which are not present in the opened
hamidouk
parents: 703
diff changeset
   172
  for(i = 0; i < annotations.length; i++) {
9056928c46de WIP - making links to only annotations which are not present in the opened
hamidouk
parents: 703
diff changeset
   173
    this.annotations_ids[annotations[i]["id"]] = 1;
9056928c46de WIP - making links to only annotations which are not present in the opened
hamidouk
parents: 703
diff changeset
   174
  }
9056928c46de WIP - making links to only annotations which are not present in the opened
hamidouk
parents: 703
diff changeset
   175
  
599
a5a5e70d46a7 added support for widget redrawing.
hamidouk
parents: 595
diff changeset
   176
  this.drawList();
674
835f5f454595 WIP - working on ajax autoupdate of the widget.
hamidouk
parents: 642
diff changeset
   177
    
698
329333e07267 lot of work on the ajax update front.
hamidouk
parents: 674
diff changeset
   178
  if (!this.ajax_mode) {    
674
835f5f454595 WIP - working on ajax autoupdate of the widget.
hamidouk
parents: 642
diff changeset
   179
    this._Popcorn.listen("IriSP.createAnnotationWidget.addedAnnotation", IriSP.wrap(this, function() { this.drawList(true); }));
698
329333e07267 lot of work on the ajax update front.
hamidouk
parents: 674
diff changeset
   180
    this._Popcorn.listen("timeupdate", IriSP.wrap(this, this.redraw));
674
835f5f454595 WIP - working on ajax autoupdate of the widget.
hamidouk
parents: 642
diff changeset
   181
  } else {
729
7ba63d0315ad load the widget when the video has finished loading.
hamidouk
parents: 716
diff changeset
   182
    /* update the widget when the video has finished loading and when it's seeked and paused */
698
329333e07267 lot of work on the ajax update front.
hamidouk
parents: 674
diff changeset
   183
    this._Popcorn.listen("seeked", IriSP.wrap(this, this.ajaxRedraw));
729
7ba63d0315ad load the widget when the video has finished loading.
hamidouk
parents: 716
diff changeset
   184
    this._Popcorn.listen("loadedmetadata", IriSP.wrap(this, this.ajaxRedraw));
698
329333e07267 lot of work on the ajax update front.
hamidouk
parents: 674
diff changeset
   185
    this._Popcorn.listen("paused", IriSP.wrap(this, this.ajaxRedraw));
674
835f5f454595 WIP - working on ajax autoupdate of the widget.
hamidouk
parents: 642
diff changeset
   186
  }
698
329333e07267 lot of work on the ajax update front.
hamidouk
parents: 674
diff changeset
   187
599
a5a5e70d46a7 added support for widget redrawing.
hamidouk
parents: 595
diff changeset
   188
};
a5a5e70d46a7 added support for widget redrawing.
hamidouk
parents: 595
diff changeset
   189
a5a5e70d46a7 added support for widget redrawing.
hamidouk
parents: 595
diff changeset
   190
IriSP.AnnotationsListWidget.prototype.redraw = function() {
a5a5e70d46a7 added support for widget redrawing.
hamidouk
parents: 595
diff changeset
   191
  this.drawList();
585
44a4a4a179c1 first version of the AnnotationListWidget.
hamidouk
parents:
diff changeset
   192
};