386 def validate_form(self, action, names, values): |
386 def validate_form(self, action, names, values): |
387 self.req.form = self._rebuild_posted_form(names, values, action) |
387 self.req.form = self._rebuild_posted_form(names, values, action) |
388 return _validate_form(self.req, self.vreg) |
388 return _validate_form(self.req, self.vreg) |
389 |
389 |
390 @jsonize |
390 @jsonize |
391 def js_edit_field(self, action, names, values, rtype, eid, default): |
391 def js_edit_field(self, action, names, values, rtype, eid, default, lzone): |
392 success, args = self.validate_form(action, names, values) |
392 success, args = self.validate_form(action, names, values) |
393 if success: |
393 if success: |
394 # Any X,N where we don't seem to use N is an optimisation |
394 # Any X,N where we don't seem to use N is an optimisation |
395 # printable_value won't need to query N again |
395 # printable_value won't need to query N again |
396 rset = self.req.execute('Any X,N WHERE X eid %%(x)s, X %s N' % rtype, |
396 rset = self.req.execute('Any X,N WHERE X eid %%(x)s, X %s N' % rtype, |
397 {'x': eid}, 'x') |
397 {'x': eid}, 'x') |
398 entity = rset.get_entity(0, 0) |
398 entity = rset.get_entity(0, 0) |
399 value = entity.printable_value(rtype) |
399 value = entity.printable_value(rtype) or default |
400 return (success, args, value or default) |
400 return (success, args, lzone + value) |
401 else: |
401 else: |
402 return (success, args, None) |
402 return (success, args, None) |
403 |
403 |
404 @jsonize |
404 @jsonize |
405 def js_edit_relation(self, action, names, values, |
405 def js_edit_relation(self, action, names, values, rtype, |
406 rtype, role, eid, vid, default): |
406 role, eid, vid, default, escape, lzone): |
407 success, args = self.validate_form(action, names, values) |
407 success, args = self.validate_form(action, names, values) |
408 if success: |
408 if success: |
409 entity = self.req.eid_rset(eid).get_entity(0, 0) |
409 entity = self.req.eid_rset(eid).get_entity(0, 0) |
410 rset = entity.related(rtype, role) |
410 rset = entity.related(rtype, role) |
411 if rset: |
411 if rset: |
412 output = self.view(vid, rset) |
412 output = self.view(vid, rset) |
413 if vid == 'textoutofcontext': |
413 if escape == 'True': |
414 output = xml_escape(output) |
414 output = xml_escape(output) |
415 else: |
415 else: |
416 output = default |
416 output = default |
417 return (success, args, output) |
417 return (success, args, lzone + output) |
418 else: |
418 else: |
419 return (success, args, None) |
419 return (success, args, None) |
420 |
420 |
421 @jsonize |
421 @jsonize |
422 def js_i18n(self, msgids): |
422 def js_i18n(self, msgids): |