From 992dde21cc051b895d8e5e98509c27edc4e3e304 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Benoi=CC=82t=20Pin?= Date: Thu, 10 Jul 2014 08:42:49 +0200 Subject: [PATCH] =?utf8?q?Fetch=20des=20photos=20suivante=20(impl=C3=A9men?= =?utf8?q?tation=20incompl=C3=A8te).?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- skins/getPhotosInfos.py | 7 +++--- skins/photo_lightbox_viewer.js | 36 +++++++++++++++++++++++++++++- skins/portfolio_thumbnails_tail.py | 4 +++- 3 files changed, 42 insertions(+), 5 deletions(-) diff --git a/skins/getPhotosInfos.py b/skins/getPhotosInfos.py index e77739f..c5b00a7 100755 --- a/skins/getPhotosInfos.py +++ b/skins/getPhotosInfos.py @@ -1,4 +1,4 @@ -##parameters=portfolio +##parameters=portfolio, pho_start=None, batch_size=None from Products.Plinn.PloneMisc import Batch from Products.CMFCore.utils import getToolByName from Products.CMFCore.permissions import ReviewPortalContent, ModifyPortalContent @@ -22,13 +22,14 @@ if mtool.checkPermission(ModifyPortalContent, context) : features['checkbox'] = True req = context.REQUEST -pho_start = req.get('pho_start', 0) +pho_start = pho_start if pho_start is not None else 0 +batch_size = batch_size if batch_size is not None else context.default_batch_size sort_on, sort_order = context.getDefaultSorting() contentFilter = {'portal_type' : ['Photo'], 'sort_on' : sort_on, 'sort_order' : sort_order} batch = Batch(portfolio.listCatalogedContents(contentFilter=contentFilter), - context.default_batch_size, pho_start, orphan=5, quantumleap=1, b_start_str='pho_start') + batch_size, pho_start, orphan=5, quantumleap=1, b_start_str='pho_start') infos = [] diff --git a/skins/photo_lightbox_viewer.js b/skins/photo_lightbox_viewer.js index 0b40288..9a57ac2 100644 --- a/skins/photo_lightbox_viewer.js +++ b/skins/photo_lightbox_viewer.js @@ -53,7 +53,7 @@ Lightbox.prototype.windowScrollHandler = function(evt) { this.switchToolBarPositioning(false); } if (window.scrollY > this.lastSlide.firstElementChild.offsetTop - getWindowHeight()) { - console.log('À boire !'); + this.fetchTail(); } }; @@ -325,6 +325,40 @@ Lightbox.prototype._refreshGrid = function(req) { } }; +Lightbox.prototype.fetchTail = function() { + var req = new XMLHttpRequest(); + self = this; + req.onreadystatechange = function() { + switch (req.readyState) { + case 1 : + showProgressImage(); + break; + case 4 : + hideProgressImage(); + if (req.status === 200) { + self._appendTail(req) + } + break; + } + }; + + var url = absolute_url() + + '/portfolio_thumbnails_tail?start:int=' + + String(this.grid.children.length + 1 ) + + '&size:int=10'; + req.open('GET', url, true); + req.send(); +}; + +Lightbox.prototype._appendTail = function(req) { + var doc = req.responseXML.documentElement; + var i; + var slides = this.grid.children; + for (i=0 ; i