diff -r 6842c3dee34b -r aaf2957bf69e web/views/tabview.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/web/views/tabview.py Wed Dec 17 09:44:18 2008 +0100 @@ -0,0 +1,46 @@ +from logilab.mtconverter import html_escape + +from cubicweb.common.view import EntityView + +class TabView(EntityView): + id = 'tabview' + accepts = ('Project',) + + def active_tab(self): + cookie = self.req.get_cookie() + cookietab = cookie.get('active_tab') + if cookietab is None: + cookie['active_tab'] = 'project_main' + self.req.set_cookie(cookie, 'active_tab') + return cookietab and cookietab.value or 'project_main' + + def cell_call(self, row, col, tabs): + self.req.add_css('ui.tabs.css') + self.req.add_js( ('ui.core.js', 'ui.tabs.js', 'cubes.jpl.primary.js') ) + active_tab = self.active_tab() + self.req.html_headers.add_post_inline_script(u""" + jQuery(document).ready(function() { + jQuery('#entity-tabs > ul').tabs( { selected: %(tabindex)s }); + set_tab('%(vid)s'); + }); + """ % {'tabindex' : tabs.index(active_tab), + 'vid' : active_tab}) + # build the html structure + self.w(u'
') + self.w(u'') + self.w(u'
') + for tab in tabs: + self.w(u'
' % tab) + self.wview(tab, self.rset) + self.w(u'
') +