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, |