web/views/treeview.py
branchtreeview-tabs
changeset 998 9c6ce9d6384f
parent 931 7b701df4dbef
child 999 999198995a53
equal deleted inserted replaced
997:ee71c2ba73e6 998:9c6ce9d6384f
     3 :organization: Logilab
     3 :organization: Logilab
     4 :copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), all rights reserved.
     4 :copyright: 2001-2009 LOGILAB S.A. (Paris, FRANCE), all rights reserved.
     5 :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr
     5 :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr
     6 """
     6 """
     7 __docformat__ = "restructuredtext en"
     7 __docformat__ = "restructuredtext en"
       
     8 import uuid
     8 
     9 
     9 from logilab.mtconverter import html_escape
    10 from logilab.mtconverter import html_escape
    10 from cubicweb.interfaces import ITree
    11 from cubicweb.interfaces import ITree
    11 from cubicweb.common.selectors import implement_interface, yes
    12 from cubicweb.common.selectors import implement_interface, yes
    12 from cubicweb.common.view import EntityView
    13 from cubicweb.common.view import EntityView
    20     itemvid = 'treeitemview'
    21     itemvid = 'treeitemview'
    21     css_classes = 'treeview widget'
    22     css_classes = 'treeview widget'
    22     title = _('tree view')
    23     title = _('tree view')
    23 
    24 
    24     def call(self, subvid=None, treeid=None, initial_load=True):
    25     def call(self, subvid=None, treeid=None, initial_load=True):
    25         if subvid is None and 'subvid' in self.req.form:
       
    26             subvid = self.req.form.pop('subvid') # consume it
       
    27         if subvid is None:
    26         if subvid is None:
    28             subvid = 'oneline'
    27             if 'subvid' in self.req.form:
    29         if treeid is None and 'treeid' in self.req.form:
    28                 subvid = self.req.form.pop('subvid') # consume it
    30             treeid = self.req.form.pop('treeid')
    29             else:
    31         assert treeid is not None
    30                 subvid = 'oneline'
       
    31         if treeid is None:
       
    32             if 'treeid' in self.req.form:
       
    33                 treeid = self.req.form.pop('treeid')
       
    34             else:
       
    35                 treeid = uuid.uuid1().hex
       
    36                 self.warning('Tree state won\'t be properly restored after next reload')
    32         if initial_load:
    37         if initial_load:
    33             self.req.add_css('jquery.treeview.css')
    38             self.req.add_css('jquery.treeview.css')
    34             self.req.add_js(('cubicweb.ajax.js', 'jquery.treeview.js'))
    39             self.req.add_js(('cubicweb.ajax.js', 'jquery.treeview.js'))
    35             self.req.html_headers.add_onload(u"""
    40             self.req.html_headers.add_onload(u"""
    36                  jQuery("#tree-%s").treeview({toggle: toggleTree,
    41                  jQuery("#tree-%s").treeview({toggle: toggleTree,