Prise en charge des boutons dans le diaporama.
authorBenoît Pin <benoit.pin@gmail.com>
Wed, 27 Jul 2011 17:46:09 +0000 (19:46 +0200)
committerBenoît Pin <benoit.pin@gmail.com>
Wed, 27 Jul 2011 17:46:09 +0000 (19:46 +0200)
skins/photo_film_viewer.js
skins/photo_layout_macros.pt
skins/slide_show.swf

index 4c21355..b68b664 100644 (file)
@@ -621,32 +621,54 @@ FilmSlider.prototype.refreshImage = function() {
 };
 
 FilmSlider.prototype.startSlideShow = function() {
-       this.slideShowSlide = this.selectedSlide;
-       this.nextSlideShowSlide = this.selectedSlide;
+       this.slideShowSlide = this.pendingSlideShowSlide = this.selectedSlide;
        return this.slideShowSlide.href;
 };
 
 FilmSlider.prototype.slideShowNext = function() {
-       this.slideShowSlide = this.nextSlideShowSlide;
        var nextSlide = this.slideShowSlide.parentNode.nextSibling;
        if (nextSlide && nextSlide.nodeType==3)
                nextSlide = nextSlide.nextSibling;      
 
        if (nextSlide) {
                nextSlide = nextSlide.getElementsByTagName('a')[0];
-               this.nextSlideShowSlide = nextSlide;
-               return nextSlide.href;
+               this.pendingSlideShowSlide = nextSlide;
+               return this.pendingSlideShowSlide.href;
        }
        else {
                var row = this.slideShowSlide.parentNode.parentNode;
                var first = row.firstChild;
                if (first.nodeType==3)
                        first = first.nextSibling;
-               this.nextSlideShowSlide = first.getElementsByTagName('a')[0];
-               return this.nextSlideShowSlide.href;
+               this.pendingSlideShowSlide = first.getElementsByTagName('a')[0];
+               return this.pendingSlideShowSlide.href;
        }
 };
 
+FilmSlider.prototype.slideShowPrevious = function() {
+       var previousSlide = this.slideShowSlide.parentNode.previousSibling;
+       if (previousSlide && previousSlide.nodeType==3)
+               previousSlide = previousSlide.previousSibling;
+
+       if (previousSlide) {
+               previousSlide = previousSlide.getElementsByTagName('a')[0];
+               this.pendingSlideShowSlide = previousSlide;
+               return this.pendingSlideShowSlide.href;
+       }
+       else {
+               var row = this.slideShowSlide.parentNode.parentNode;
+               var last = row.lastChild;
+               if (last.nodeType==3)
+                       last = last.previousSibling;
+               this.pendingSlideShowSlide = last.getElementsByTagName('a')[0];
+               return this.pendingSlideShowSlide.href;
+       }
+};
+
+FilmSlider.prototype.slideShowImageLoaded = function() {
+       this.slideShowSlide = this.pendingSlideShowSlide;
+};
+
 FilmSlider.prototype.stopSlideShow = function() {
        raiseMouseEvent(this.slideShowSlide, 'click');
        var index = parseInt(this.selectedSlide.getAttribute('portfolio:position'));
index 5460ee2..daf722b 100644 (file)
                            document.getElementById('image_toolbar'),
                            document.getElementById('Breadcrumbs'));
             startSlideShow = function() {return fs.startSlideShow();};
-            slideShowNext = function() {return fs.slideShowNext();};
             stopSlideShow = function() {return fs.stopSlideShow();};
+            slideShowPrevious = function() {return fs.slideShowPrevious();};
+            slideShowNext = function() {return fs.slideShowNext();};
+            slideShowImageLoaded = function() {return fs.slideShowImageLoaded();};
           })();
           ''' % {'filmLength': len(contextInfos['infos'])
                 ,'center': index
index 060c35c..b818398 100644 (file)
Binary files a/skins/slide_show.swf and b/skins/slide_show.swf differ