web/views/basecontrollers.py
changeset 3369 7b88d12b4ee2
parent 3293 69c0ba095536
parent 3343 383b42263bb1
child 3377 dd9d292b6a6d
equal deleted inserted replaced
3300:c7c4775a5619 3369:7b88d12b4ee2
   211     id = 'validateform'
   211     id = 'validateform'
   212 
   212 
   213     def response(self, domid, status, args, entity):
   213     def response(self, domid, status, args, entity):
   214         callback = str(self.req.form.get('__onsuccess', 'null'))
   214         callback = str(self.req.form.get('__onsuccess', 'null'))
   215         errback = str(self.req.form.get('__onfailure', 'null'))
   215         errback = str(self.req.form.get('__onfailure', 'null'))
       
   216         cbargs = str(self.req.form.get('__cbargs', 'null'))
   216         self.req.set_content_type('text/html')
   217         self.req.set_content_type('text/html')
   217         jsargs = simplejson.dumps((status, args, entity), cls=CubicWebJsonEncoder)
   218         jsargs = simplejson.dumps((status, args, entity), cls=CubicWebJsonEncoder)
   218         return """<script type="text/javascript">
   219         return """<script type="text/javascript">
   219  wp = window.parent;
   220  wp = window.parent;
   220  window.parent.handleFormValidationResponse('%s', %s, %s, %s);
   221  window.parent.handleFormValidationResponse('%s', %s, %s, %s, %s);
   221 </script>""" %  (domid, callback, errback, jsargs)
   222 </script>""" %  (domid, callback, errback, jsargs, cbargs)
   222 
   223 
   223     def publish(self, rset=None):
   224     def publish(self, rset=None):
   224         self.req.json_request = True
   225         self.req.json_request = True
   225         # XXX unclear why we have a separated controller here vs
   226         # XXX unclear why we have a separated controller here vs
   226         # js_validate_form on the json controller
   227         # js_validate_form on the json controller
   374         extraargs = extraargs or {}
   375         extraargs = extraargs or {}
   375         return comp.render(**extraargs)
   376         return comp.render(**extraargs)
   376 
   377 
   377     @check_pageid
   378     @check_pageid
   378     @xhtmlize
   379     @xhtmlize
   379     def js_inline_creation_form(self, peid, ttype, rtype, role):
   380     def js_inline_creation_form(self, peid, ttype, rtype, role, i18nctx):
   380         view = self.vreg['views'].select('inline-creation', self.req,
   381         view = self.vreg['views'].select('inline-creation', self.req,
   381                                          etype=ttype, peid=peid, rtype=rtype,
   382                                          etype=ttype, peid=peid, rtype=rtype,
   382                                          role=role)
   383                                          role=role)
   383         return self._call_view(view, etype=ttype, peid=peid,
   384         return self._call_view(view, etype=ttype, peid=peid,
   384                                rtype=rtype, role=role)
   385                                rtype=rtype, role=role, i18nctx=i18nctx)
   385 
   386 
   386     @jsonize
   387     @jsonize
   387     def js_validate_form(self, action, names, values):
   388     def js_validate_form(self, action, names, values):
   388         return self.validate_form(action, names, values)
   389         return self.validate_form(action, names, values)
   389 
   390