258 return self.response(domid, status, args, entity) |
258 return self.response(domid, status, args, entity) |
259 |
259 |
260 def optional_kwargs(extraargs): |
260 def optional_kwargs(extraargs): |
261 if extraargs is None: |
261 if extraargs is None: |
262 return {} |
262 return {} |
263 else: # we receive unicode keys which is not supported by the **syntax |
263 # we receive unicode keys which is not supported by the **syntax |
264 return dict((str(key), value) |
264 return dict((str(key), value) for key, value in extraargs.iteritems()) |
265 for key, value in extraargs.items()) |
|
266 |
265 |
267 class JSonController(Controller): |
266 class JSonController(Controller): |
268 __regid__ = 'json' |
267 __regid__ = 'json' |
269 |
268 |
270 def publish(self, rset=None): |
269 def publish(self, rset=None): |
426 #except NoSelectableObject: |
425 #except NoSelectableObject: |
427 # raise RemoteCallFailed('unselectable') |
426 # raise RemoteCallFailed('unselectable') |
428 return self._call_view(comp, **extraargs) |
427 return self._call_view(comp, **extraargs) |
429 |
428 |
430 @xhtmlize |
429 @xhtmlize |
431 def js_render(self, registry, oid, eid=None, selectargs=None, renderargs=None): |
430 def js_render(self, registry, oid, eid=None, |
|
431 selectargs=None, renderargs=None): |
432 if eid is not None: |
432 if eid is not None: |
433 rset = self._cw.eid_rset(eid) |
433 rset = self._cw.eid_rset(eid) |
434 elif self._cw.form.get('rql'): |
434 elif self._cw.form.get('rql'): |
435 rset = self._cw.execute(self._cw.form['rql']) |
435 rset = self._cw.execute(self._cw.form['rql']) |
436 else: |
436 else: |
437 rset = None |
437 rset = None |
438 selectargs = optional_kwargs(selectargs) |
438 view = self._cw.vreg[registry].select(oid, self._cw, rset=rset, |
439 view = self._cw.vreg[registry].select(oid, self._cw, rset=rset, **selectargs) |
439 **optional_kwargs(selectargs)) |
440 return self._call_view(view, **optional_kwargs(renderargs)) |
440 return self._call_view(view, **optional_kwargs(renderargs)) |
441 |
441 |
442 @check_pageid |
442 @check_pageid |
443 @xhtmlize |
443 @xhtmlize |
444 def js_inline_creation_form(self, peid, petype, ttype, rtype, role, i18nctx): |
444 def js_inline_creation_form(self, peid, petype, ttype, rtype, role, i18nctx): |