web/views/basecontrollers.py
branchstable
changeset 2255 c346af0727ca
parent 2240 ff84892900ac
child 2293 7ded2a1416e4
child 2312 af4d8f75c5db
equal deleted inserted replaced
2254:f632b06058c4 2255:c346af0727ca
   194         ctrl = vreg.select(vreg.registry_objects('controllers', 'edit'),
   194         ctrl = vreg.select(vreg.registry_objects('controllers', 'edit'),
   195                            req=req)
   195                            req=req)
   196     except NoSelectableObject:
   196     except NoSelectableObject:
   197         return (False, {None: req._('not authorized')})
   197         return (False, {None: req._('not authorized')})
   198     try:
   198     try:
   199         ctrl.publish(None, fromjson=True)
   199         ctrl.publish(None)
   200     except ValidationError, ex:
   200     except ValidationError, ex:
   201         req.cnx.rollback()
   201         req.cnx.rollback()
   202         return (False, _validation_error(req, ex))
   202         return (False, _validation_error(req, ex))
   203     except Redirect, ex:
   203     except Redirect, ex:
   204         try:
   204         try:
   217 
   217 
   218 class FormValidatorController(Controller):
   218 class FormValidatorController(Controller):
   219     id = 'validateform'
   219     id = 'validateform'
   220 
   220 
   221     def publish(self, rset=None):
   221     def publish(self, rset=None):
       
   222         self.req.json_request = True
   222         # XXX unclear why we have a separated controller here vs
   223         # XXX unclear why we have a separated controller here vs
   223         # js_validate_form on the json controller
   224         # js_validate_form on the json controller
   224         status, args = _validate_form(self.req, self.vreg)
   225         status, args = _validate_form(self.req, self.vreg)
   225         self.req.set_content_type('text/html')
   226         self.req.set_content_type('text/html')
   226         jsarg = simplejson.dumps( (status, args) )
   227         jsarg = simplejson.dumps( (status, args) )
   241         :args: arguments list (json)
   242         :args: arguments list (json)
   242 
   243 
   243         note: it's the responsability of js_* methods to set the correct
   244         note: it's the responsability of js_* methods to set the correct
   244         response content type
   245         response content type
   245         """
   246         """
       
   247         self.req.json_request = True
   246         self.req.pageid = self.req.form.get('pageid')
   248         self.req.pageid = self.req.form.get('pageid')
   247         try:
   249         try:
   248             fname = self.req.form['fname']
   250             fname = self.req.form['fname']
   249             func = getattr(self, 'js_%s' % fname)
   251             func = getattr(self, 'js_%s' % fname)
   250         except KeyError:
   252         except KeyError: