# HG changeset patch # User Adrien Di Mascio # Date 1250254589 -7200 # Node ID 858b33162e9d2da3cf2ef5091a5aa0f28fe38e51 # Parent d3b80a4faf3f23dd2bc39fa31122611cab962085 [ajax] allow inlineCreationForms to add their own JS / CSS diff -r d3b80a4faf3f -r 858b33162e9d web/data/cubicweb.edition.js --- a/web/data/cubicweb.edition.js Fri Aug 14 14:39:38 2009 +0200 +++ b/web/data/cubicweb.edition.js Fri Aug 14 14:56:29 2009 +0200 @@ -248,6 +248,7 @@ d.addCallback(function (response) { var linknode = getNode('add' + rtype + ':' + peid + 'link'); var dom = getDomFromResponse(response); + preprocessAjaxLoad(null, dom); var form = jQuery(dom); form.css('display', 'none'); form.insertBefore(linknode.parentNode).slideDown('fast'); diff -r d3b80a4faf3f -r 858b33162e9d web/views/basecontrollers.py --- a/web/views/basecontrollers.py Fri Aug 14 14:39:38 2009 +0200 +++ b/web/views/basecontrollers.py Fri Aug 14 14:56:29 2009 +0200 @@ -298,6 +298,31 @@ return None return None + def _call_view(self, view, **kwargs): + req = self.req + divid = req.form.get('divid', 'pageContent') + # we need to call pagination before with the stream set + stream = view.set_stream() + if req.form.get('paginate'): + if divid == 'pageContent': + # mimick main template behaviour + stream.write(u'
') + vtitle = self.req.form.get('vtitle') + if vtitle: + stream.write(u'

%s

\n' % vtitle) + view.pagination(req, rset, view.w, not view.need_navigation) + if divid == 'pageContent': + stream.write(u'
') + view.render(**kwargs) + extresources = req.html_headers.getvalue(skiphead=True) + if extresources: + stream.write(u'
\n') # XXX use a widget ? + stream.write(extresources) + stream.write(u'
\n') + if req.form.get('paginate') and divid == 'pageContent': + stream.write(u'
') + return stream.getvalue() + @xhtmlize def js_view(self): # XXX try to use the page-content template @@ -313,28 +338,7 @@ except NoSelectableObject: vid = req.form.get('fallbackvid', 'noresult') view = self.vreg['views'].select(vid, req, rset=rset) - divid = req.form.get('divid', 'pageContent') - # we need to call pagination before with the stream set - stream = view.set_stream() - if req.form.get('paginate'): - if divid == 'pageContent': - # mimick main template behaviour - stream.write(u'
') - vtitle = self.req.form.get('vtitle') - if vtitle: - stream.write(u'

%s

\n' % vtitle) - view.pagination(req, rset, view.w, not view.need_navigation) - if divid == 'pageContent': - stream.write(u'
') - view.render() - extresources = req.html_headers.getvalue(skiphead=True) - if extresources: - stream.write(u'
\n') # XXX use a widget ? - stream.write(extresources) - stream.write(u'
\n') - if req.form.get('paginate') and divid == 'pageContent': - stream.write(u'
') - return stream.getvalue() + return self._call_view(view) @xhtmlize def js_prop_widget(self, propkey, varname, tabindex=None): @@ -370,7 +374,8 @@ view = self.vreg['views'].select('inline-creation', self.req, etype=ttype, peid=peid, rtype=rtype, role=role) - return view.render(etype=ttype, peid=peid, rtype=rtype, role=role) + return self._call_view(view, etype=ttype, peid=peid, + rtype=rtype, role=role) @jsonize def js_validate_form(self, action, names, values):