src/js/widgets/annotationsWidget.js
author hamidouk
Tue, 29 Nov 2011 11:09:08 +0100
branchpopcorn-port
changeset 345 8a088f7daa66
parent 312 228b27fd2a7c
child 382 d68de477761b
permissions -rw-r--r--
rollover over the interface buttons now works as expected. Also changed the width of the buttons to the correct size. Resized the width and height of the sprites to be the same as the boxes we display them in.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
98
ed4ac18baf07 broke the widgets.js in multiple files.
hamidouk
parents:
diff changeset
     1
IriSP.AnnotationsWidget = function(Popcorn, config, Serializer) {
ed4ac18baf07 broke the widgets.js in multiple files.
hamidouk
parents:
diff changeset
     2
  IriSP.Widget.call(this, Popcorn, config, Serializer);
ed4ac18baf07 broke the widgets.js in multiple files.
hamidouk
parents:
diff changeset
     3
  
ed4ac18baf07 broke the widgets.js in multiple files.
hamidouk
parents:
diff changeset
     4
};
ed4ac18baf07 broke the widgets.js in multiple files.
hamidouk
parents:
diff changeset
     5
ed4ac18baf07 broke the widgets.js in multiple files.
hamidouk
parents:
diff changeset
     6
139
ba2b3c15bd47 fixing prototype bug.
hamidouk
parents: 130
diff changeset
     7
IriSP.AnnotationsWidget.prototype = new IriSP.Widget();
98
ed4ac18baf07 broke the widgets.js in multiple files.
hamidouk
parents:
diff changeset
     8
ed4ac18baf07 broke the widgets.js in multiple files.
hamidouk
parents:
diff changeset
     9
IriSP.AnnotationsWidget.prototype.clear = function() {
162
2ef47ccb290f a couple fixes to the annotationsWidget tests.
hamidouk
parents: 146
diff changeset
    10
    this.selector.find(".Ldt-SaTitle").text("");
2ef47ccb290f a couple fixes to the annotationsWidget tests.
hamidouk
parents: 146
diff changeset
    11
    this.selector.find(".Ldt-SaDescription").text("");
2ef47ccb290f a couple fixes to the annotationsWidget tests.
hamidouk
parents: 146
diff changeset
    12
    this.selector.find(".Ldt-SaKeywordText").text("");
98
ed4ac18baf07 broke the widgets.js in multiple files.
hamidouk
parents:
diff changeset
    13
};
ed4ac18baf07 broke the widgets.js in multiple files.
hamidouk
parents:
diff changeset
    14
ed4ac18baf07 broke the widgets.js in multiple files.
hamidouk
parents:
diff changeset
    15
IriSP.AnnotationsWidget.prototype.displayAnnotation = function(annotation) {
264
9fb001b19dd2 clean-ups.
hamidouk
parents: 162
diff changeset
    16
98
ed4ac18baf07 broke the widgets.js in multiple files.
hamidouk
parents:
diff changeset
    17
    var title = annotation.content.title;
ed4ac18baf07 broke the widgets.js in multiple files.
hamidouk
parents:
diff changeset
    18
    var description = annotation.content.description;
ed4ac18baf07 broke the widgets.js in multiple files.
hamidouk
parents:
diff changeset
    19
    var keywords =  "" // FIXME;
309
49c2b9e63591 added segment duration display to the annotationsWidget
hamidouk
parents: 264
diff changeset
    20
    var begin = +annotation.begin / 1000;
49c2b9e63591 added segment duration display to the annotationsWidget
hamidouk
parents: 264
diff changeset
    21
    var end = +annotation.end / 1000;
98
ed4ac18baf07 broke the widgets.js in multiple files.
hamidouk
parents:
diff changeset
    22
    var duration = +this._serializer.currentMedia().meta["dc:duration"];
ed4ac18baf07 broke the widgets.js in multiple files.
hamidouk
parents:
diff changeset
    23
309
49c2b9e63591 added segment duration display to the annotationsWidget
hamidouk
parents: 264
diff changeset
    24
    var title_templ = "{{title}} - ( {{begin}} - {{end}} )";
49c2b9e63591 added segment duration display to the annotationsWidget
hamidouk
parents: 264
diff changeset
    25
    var endstr = Mustache.to_html(title_templ, {title: title, begin: IriSP.secondsToTime(begin), end: IriSP.secondsToTime(end)});
49c2b9e63591 added segment duration display to the annotationsWidget
hamidouk
parents: 264
diff changeset
    26
49c2b9e63591 added segment duration display to the annotationsWidget
hamidouk
parents: 264
diff changeset
    27
    this.selector.find(".Ldt-SaTitle").text(endstr);
162
2ef47ccb290f a couple fixes to the annotationsWidget tests.
hamidouk
parents: 146
diff changeset
    28
    this.selector.find(".Ldt-SaDescription").text(description);
98
ed4ac18baf07 broke the widgets.js in multiple files.
hamidouk
parents:
diff changeset
    29
};
ed4ac18baf07 broke the widgets.js in multiple files.
hamidouk
parents:
diff changeset
    30
125
960ce0b9f9f0 added a function to clear the widget.
hamidouk
parents: 101
diff changeset
    31
IriSP.AnnotationsWidget.prototype.clearWidget = function() {
264
9fb001b19dd2 clean-ups.
hamidouk
parents: 162
diff changeset
    32
9fb001b19dd2 clean-ups.
hamidouk
parents: 162
diff changeset
    33
    
125
960ce0b9f9f0 added a function to clear the widget.
hamidouk
parents: 101
diff changeset
    34
    /* retract the pane between two annotations */
162
2ef47ccb290f a couple fixes to the annotationsWidget tests.
hamidouk
parents: 146
diff changeset
    35
    this.selector.find(".Ldt-SaTitle").text("");
2ef47ccb290f a couple fixes to the annotationsWidget tests.
hamidouk
parents: 146
diff changeset
    36
    this.selector.find(".Ldt-SaDescription").text("");
2ef47ccb290f a couple fixes to the annotationsWidget tests.
hamidouk
parents: 146
diff changeset
    37
    this.selector.find(".Ldt-SaKeywordText").html("");
2ef47ccb290f a couple fixes to the annotationsWidget tests.
hamidouk
parents: 146
diff changeset
    38
    this.selector.find(".Ldt-ShowAnnotation").slideUp();
130
f25676c72044 added a semicolon.
hamidouk
parents: 125
diff changeset
    39
};
f25676c72044 added a semicolon.
hamidouk
parents: 125
diff changeset
    40
98
ed4ac18baf07 broke the widgets.js in multiple files.
hamidouk
parents:
diff changeset
    41
IriSP.AnnotationsWidget.prototype.draw = function() {
ed4ac18baf07 broke the widgets.js in multiple files.
hamidouk
parents:
diff changeset
    42
  var _this = this;
ed4ac18baf07 broke the widgets.js in multiple files.
hamidouk
parents:
diff changeset
    43
ed4ac18baf07 broke the widgets.js in multiple files.
hamidouk
parents:
diff changeset
    44
  var annotationMarkup = Mustache.to_html(IriSP.annotationWidget_template, {"share_template" : IriSP.share_template});
162
2ef47ccb290f a couple fixes to the annotationsWidget tests.
hamidouk
parents: 146
diff changeset
    45
	this.selector.append(annotationMarkup);
139
ba2b3c15bd47 fixing prototype bug.
hamidouk
parents: 130
diff changeset
    46
98
ed4ac18baf07 broke the widgets.js in multiple files.
hamidouk
parents:
diff changeset
    47
  var annotations = this._serializer._data.annotations;
146
b99527037c89 fixed global variable declaration bug.
hamidouk
parents: 139
diff changeset
    48
  var i;
b99527037c89 fixed global variable declaration bug.
hamidouk
parents: 139
diff changeset
    49
  
98
ed4ac18baf07 broke the widgets.js in multiple files.
hamidouk
parents:
diff changeset
    50
	for (i in annotations) {    
ed4ac18baf07 broke the widgets.js in multiple files.
hamidouk
parents:
diff changeset
    51
    var annotation = annotations[i];
ed4ac18baf07 broke the widgets.js in multiple files.
hamidouk
parents:
diff changeset
    52
    var begin = Math.round((+ annotation.begin) / 1000);
ed4ac18baf07 broke the widgets.js in multiple files.
hamidouk
parents:
diff changeset
    53
    var end = Math.round((+ annotation.end) / 1000);
ed4ac18baf07 broke the widgets.js in multiple files.
hamidouk
parents:
diff changeset
    54
125
960ce0b9f9f0 added a function to clear the widget.
hamidouk
parents: 101
diff changeset
    55
    var conf = {start: begin, end: end, 
960ce0b9f9f0 added a function to clear the widget.
hamidouk
parents: 101
diff changeset
    56
                onStart: 
264
9fb001b19dd2 clean-ups.
hamidouk
parents: 162
diff changeset
    57
                       function(annotation) { 
9fb001b19dd2 clean-ups.
hamidouk
parents: 162
diff changeset
    58
                        return function() { 
9fb001b19dd2 clean-ups.
hamidouk
parents: 162
diff changeset
    59
                          /* we need it because we have to restore
9fb001b19dd2 clean-ups.
hamidouk
parents: 162
diff changeset
    60
                             the display after displaying the contents
9fb001b19dd2 clean-ups.
hamidouk
parents: 162
diff changeset
    61
                             of a tweet.
9fb001b19dd2 clean-ups.
hamidouk
parents: 162
diff changeset
    62
                          */
9fb001b19dd2 clean-ups.
hamidouk
parents: 162
diff changeset
    63
                          _this._currentAnnotation = annotation;
9fb001b19dd2 clean-ups.
hamidouk
parents: 162
diff changeset
    64
                          _this.displayAnnotation(annotation); 
9fb001b19dd2 clean-ups.
hamidouk
parents: 162
diff changeset
    65
                          
9fb001b19dd2 clean-ups.
hamidouk
parents: 162
diff changeset
    66
                        } }(annotation),
125
960ce0b9f9f0 added a function to clear the widget.
hamidouk
parents: 101
diff changeset
    67
                onEnd: 
264
9fb001b19dd2 clean-ups.
hamidouk
parents: 162
diff changeset
    68
                       function() { _this.clearWidget.call(_this); },
125
960ce0b9f9f0 added a function to clear the widget.
hamidouk
parents: 101
diff changeset
    69
                };
960ce0b9f9f0 added a function to clear the widget.
hamidouk
parents: 101
diff changeset
    70
    this._Popcorn = this._Popcorn.code(conf);                                             
98
ed4ac18baf07 broke the widgets.js in multiple files.
hamidouk
parents:
diff changeset
    71
  }
264
9fb001b19dd2 clean-ups.
hamidouk
parents: 162
diff changeset
    72
309
49c2b9e63591 added segment duration display to the annotationsWidget
hamidouk
parents: 264
diff changeset
    73
};