From: Benoît Pin Date: Thu, 10 Jul 2014 06:42:49 +0000 (+0200) Subject: Fetch des photos suivante (implémentation incomplète). X-Git-Url: https://scm.cri.ensmp.fr/git/Portfolio.git/commitdiff_plain/992dde21cc051b895d8e5e98509c27edc4e3e304?ds=sidebyside Fetch des photos suivante (implémentation incomplète). --- 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