# HG changeset patch # User Aurelien Campeas # Date 1233948206 -3600 # Node ID 7cfd3d11edc81c324cf576cb12efaf5369aebd3e # Parent a8887dd924f46ee23402c663ce0dfdda21ea90ca [tabs] prepare for reloadability diff -r a8887dd924f4 -r 7cfd3d11edc8 web/data/cubicweb.lazy.js --- a/web/data/cubicweb.lazy.js Fri Feb 06 12:03:58 2009 +0100 +++ b/web/data/cubicweb.lazy.js Fri Feb 06 20:23:26 2009 +0100 @@ -1,8 +1,8 @@ -function load_now(eltsel, holesel) { +function load_now(eltsel, holesel, reloadable) { var lazydiv = jQuery(eltsel); var hole = lazydiv.children(holesel); - if (hole.length == 0) { + if ((hole.length == 0) && !reloadable) { /* the hole is already filled */ return; } diff -r a8887dd924f4 -r 7cfd3d11edc8 web/views/tabs.py --- a/web/views/tabs.py Fri Feb 06 12:03:58 2009 +0100 +++ b/web/views/tabs.py Fri Feb 06 20:23:26 2009 +0100 @@ -26,7 +26,14 @@ lazyload a view that in turns does the same """ - def lazyview(self, vid, eid=None, show_spinbox=True, w=None): + def _prepare_bindings(self, vid, reloadable): + self.req.html_headers.add_onload(u""" + jQuery('#lazy-%(vid)s').bind('%(event)s', function(event) { + load_now('#lazy-%(vid)s', '#%(vid)s-hole', %(reloadable)s); + });""" % {'event': 'load_%s' % vid, 'vid': vid, + 'reloadable' : str(reloadable).lower()}) + + def lazyview(self, vid, eid=None, reloadable=False, show_spinbox=True, w=None): """a lazy version of wview first version only support lazy viewing for an entity at a time """ @@ -35,23 +42,19 @@ urlparams = {'vid' : vid, 'mode' : 'html'} if eid: urlparams['rql'] = rql_for_eid(eid) - # w(u'
' % (vid, vid, eid)) w(u'
' % ( vid, html_escape(self.build_url('json', **urlparams)))) if show_spinbox: w(u'%s' % (vid, self.req._('loading'))) w(u'
') - self.req.html_headers.add_onload(u""" - jQuery('#lazy-%(vid)s').bind('%(event)s', function(event) { - load_now('#lazy-%(vid)s', '#%(vid)s-hole'); - });""" % {'event': 'load_%s' % vid, 'vid': vid}) + self._prepare_bindings(vid, reloadable) def forceview(self, vid): """trigger an event that will force immediate loading of the view on dom readyness """ - self.req.add_js('.lazy.js') + self.req.add_js('cubicweb.lazy.js') self.req.html_headers.add_onload("trigger_load('%s');" % vid)