diff -r 27b248a13355 -r 8a6c9e3d0158 src/js/widgets/slideShareWidget.js --- a/src/js/widgets/slideShareWidget.js Thu May 24 15:05:47 2012 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,199 +0,0 @@ - -/** A widget to display slide show from embed slide share */ -IriSP.SlideShareWidget = function(Popcorn, config, Serializer) { - IriSP.Widget.call(this, Popcorn, config, Serializer); - // Default flash embed size - this.embed_width = 425; - this.embed_height = 355; - if(this._config.embed_width){ - this.embed_width = this._config.embed_width; - } - if(this._config.embed_height){ - this.embed_height = this._config.embed_height; - } -}; - -IriSP.SlideShareWidget.prototype = new IriSP.Widget(); - -IriSP.SlideShareWidget.prototype.draw = function() { - var self = this; - - // If the div supposed to host the slides does not exist, we cancel - if(this.selector.length==0){ - if(console){ if(console.log){ console.log("No div for slideshare widget, this widget is canceled. id = " + this._id); } } - return; - } - var templ = Mustache.to_html(IriSP.slideShareWidget_template); - this.selector.append(templ); - - // global variables used to keep the position and width of the zone. - this.zoneLeft = 0; - this.zoneWidth = 0; - // global variable to save the last slide url - this.lastSSFullUrl = ""; - this.lastSSUrl = ""; - this.lastSSId = ""; - this.containerDiv = this.selector.find('.SlideShareContainer'); - - // Synchro management - this._disableUpdate = false; - this.buttonsDiv = this.selector.find('.SlideShareButtons'); - this.buttonsDiv.width(this.embed_width - 2); // -2 because of css borders 328 -> 235px - this.buttonsDiv.find('.left_icon').css("margin-left",(this.embed_width-96)+"px"); - this.buttonsDiv.find('.ss_sync_on').click(function(event) { self.unSyncHandler.call(self, event); }); - this.buttonsDiv.find('.ss_sync_off').click(function(event) { self.syncHandler.call(self, event); }); - this.buttonsDiv.find('.ss_sync_off').hide(); - this.buttonsDiv.hide(); - - // Update the slide from timeupdate event - this._Popcorn.listen("timeupdate", IriSP.wrap(this, this.slideShareUpdater)); - - this._Popcorn.listen("IriSP.SlideShareWidget.show", IriSP.wrap(this, this.show)); - this._Popcorn.listen("IriSP.SlideShareWidget.hide", IriSP.wrap(this, this.hide)); - - // Get data from "slideshare" cutting/annotation-type - var annotations = this._serializer._data.annotations; - var view_type = this._serializer.getSlideShareType(); - if(typeof(view_type) === "undefined") { - if(console){ if(console.log){ console.log("No annotation-type for slideshare widget, this widget is canceled and the container is visible hidden."); } } - this.selector.hide(); - return; - } - var i = 0; - this.segments_slides = []; - var nb_annot = annotations.length; - for (i = 0; i < nb_annot; i++) { - var annotation = annotations[i]; - /* filter the annotations whose type is not the one we want */ - if (view_type != "" && typeof(annotation.meta) !== "undefined" && typeof(annotation.meta["id-ref"]) !== "undefined" - && annotation.meta["id-ref"] != view_type) { - continue; - } - this.segments_slides.push(annotation); - } -}; - -/* update the slider and the position marker as time passes */ -IriSP.SlideShareWidget.prototype.slideShareUpdater = function() { - // If it is asked not to synchronize, we do nothing - if(this._disableUpdate) - return; - - var self = this; - - // We search if a segments_slides is in the current timecode - var time = this._Popcorn.currentTime() * 1000; - var nb_slides = this.segments_slides.length; - var forceEmpty = false; - for (i = 0; i < nb_slides; i++) { - var segment_slide = this.segments_slides[i]; - if(segment_slide.begin