--- a/web/views/treeview.py Fri Dec 09 12:14:11 2011 +0100
+++ b/web/views/treeview.py Fri Dec 16 12:30:12 2011 +0100
@@ -31,6 +31,7 @@
from cubicweb.view import EntityView
from cubicweb.mixins import _done_init
from cubicweb.web.views import baseviews
+from cubicweb.web.views.ajaxcontroller import ajaxfunc
def treecookiename(treeid):
return str('%s-treestate' % treeid)
@@ -280,3 +281,20 @@
treeid=treeid, initial_load=False, **morekwargs)
w(u'</li>')
+
+
+@ajaxfunc
+def node_clicked(self, treeid, nodeeid):
+ """add/remove eid in treestate cookie"""
+ cookies = self._cw.get_cookie()
+ statename = treecookiename(treeid)
+ treestate = cookies.get(statename)
+ if treestate is None:
+ self._cw.set_cookie(statename, nodeeid)
+ else:
+ marked = set(filter(None, treestate.value.split(':')))
+ if nodeeid in marked:
+ marked.remove(nodeeid)
+ else:
+ marked.add(nodeeid)
+ self._cw.set_cookie(statename, ':'.join(marked))