# HG changeset patch # User Aurelien Campeas # Date 1242388843 -7200 # Node ID e9e8beb06f01727a3ab4bd60d64600ceaa9b61e5 # Parent afc563537d8f937ac39177767e76a6ada7d392c4 [treeview] really fix #343232 diff -r afc563537d8f -r e9e8beb06f01 web/views/treeview.py --- a/web/views/treeview.py Thu May 14 16:31:14 2009 +0200 +++ b/web/views/treeview.py Fri May 15 14:00:43 2009 +0200 @@ -9,6 +9,7 @@ from logilab.common.decorators import monkeypatch from logilab.mtconverter import html_escape +from cubicweb.utils import make_uid from cubicweb.interfaces import ITree from cubicweb.selectors import implements from cubicweb.view import EntityView @@ -24,23 +25,23 @@ title = _('tree view') def call(self, subvid=None, treeid=None, initial_load=True): - if subvid is None and 'subvid' in self.req.form: - subvid = self.req.form.pop('subvid') # consume it if subvid is None: - subvid = 'oneline' - if treeid is None and 'treeid' in self.req.form: - treeid = self.req.form.pop('treeid') - assert treeid is not None - if initial_load: - self.req.add_css('jquery.treeview.css') - self.req.add_js(('cubicweb.ajax.js', 'jquery.treeview.js')) - self.req.html_headers.add_onload(u""" -jQuery("#tree-%s").treeview({toggle: toggleTree, prerendered: true});""" % treeid) + subvid = self.req.form.pop('subvid', 'oneline') # consume it + if treeid is None: + treeid = self.req.form.pop('treeid', None) + if treeid is None: + self.warning('Tree state won\'t be properly restored after next reload') + treeid = make_uid('throw away uid') self.w(u'') + if initial_load and not self.req.form.get('fname'): + self.req.add_css('jquery.treeview.css') + self.req.add_js(('cubicweb.ajax.js', 'jquery.treeview.js')) + self.req.html_headers.add_onload(u""" +jQuery("#tree-%s").treeview({toggle: toggleTree, prerendered: true});""" % treeid) class FileTreeView(TreeView): @@ -103,7 +104,6 @@ w = self.w entity = self.entity(row, col) liclasses = [] - is_leaf = False is_last = row == len(self.rset) - 1 is_open = self.open_state(entity.eid, treeid) if not hasattr(entity, 'is_leaf') or entity.is_leaf(): @@ -123,7 +123,7 @@ divclasses.append('collapsable-hitarea') else: liclasses.append('expandable') - divclasses.append('closed-hitarea expandable-hitarea') + divclasses.append('expandable-hitarea') if is_last: if is_open: liclasses.append('lastCollapsable') @@ -135,11 +135,8 @@ w(u'
  • ' % u' '.join(liclasses)) else: w(u'
  • ' % (url, u' '.join(liclasses))) - if is_leaf: - divtail = '' - else: - divtail = ''' onclick="asyncRemoteExec('node_clicked', '%s', '%s')"''' % \ - (treeid, entity.eid) + divtail = """ onclick="asyncRemoteExec('node_clicked', '%s', '%s')" """ %\ + (treeid, entity.eid) w(u'
    ' % (u' '.join(divclasses), divtail)) # add empty