401 breadcrumbs = self.session.data.get('breadcrumbs') |
401 breadcrumbs = self.session.data.get('breadcrumbs') |
402 if breadcrumbs: |
402 if breadcrumbs: |
403 return breadcrumbs.pop() |
403 return breadcrumbs.pop() |
404 return self.base_url() |
404 return self.base_url() |
405 |
405 |
|
406 @deprecated('[3.19] use a traditional ajaxfunc / controller') |
406 def user_rql_callback(self, rqlargs, *args, **kwargs): |
407 def user_rql_callback(self, rqlargs, *args, **kwargs): |
407 """register a user callback to execute some rql query, and return a URL |
408 """register a user callback to execute some rql query, and return a URL |
408 to call that callback which can be inserted in an HTML view. |
409 to call that callback which can be inserted in an HTML view. |
409 |
410 |
410 `rqlargs` should be a tuple containing argument to give to the execute function. |
411 `rqlargs` should be a tuple containing argument to give to the execute function. |
436 jsfunc = kwargs.pop('jsfunc', 'userCallbackThenReloadPage') |
437 jsfunc = kwargs.pop('jsfunc', 'userCallbackThenReloadPage') |
437 assert not kwargs, 'dunno what to do with remaining kwargs: %s' % kwargs |
438 assert not kwargs, 'dunno what to do with remaining kwargs: %s' % kwargs |
438 cbname = self.register_onetime_callback(cb, *cbargs) |
439 cbname = self.register_onetime_callback(cb, *cbargs) |
439 return "javascript: %s" % getattr(js, jsfunc)(cbname, *args) |
440 return "javascript: %s" % getattr(js, jsfunc)(cbname, *args) |
440 |
441 |
|
442 @deprecated('[3.19] use a traditional ajaxfunc / controller') |
441 def register_onetime_callback(self, func, *args): |
443 def register_onetime_callback(self, func, *args): |
442 cbname = build_cb_uid(func.__name__) |
444 cbname = build_cb_uid(func.__name__) |
443 def _cb(req): |
445 def _cb(req): |
444 try: |
446 try: |
445 return func(req, *args) |
447 return func(req, *args) |
446 finally: |
448 finally: |
447 self.unregister_callback(self.pageid, cbname) |
449 self.unregister_callback(self.pageid, cbname) |
448 self.set_page_data(cbname, _cb) |
450 self.set_page_data(cbname, _cb) |
449 return cbname |
451 return cbname |
450 |
452 |
|
453 @deprecated('[3.19] use a traditional ajaxfunc / controller') |
451 def unregister_callback(self, pageid, cbname): |
454 def unregister_callback(self, pageid, cbname): |
452 assert pageid is not None |
455 assert pageid is not None |
453 assert cbname.startswith('cb_') |
456 assert cbname.startswith('cb_') |
454 self.info('unregistering callback %s for pageid %s', cbname, pageid) |
457 self.info('unregistering callback %s for pageid %s', cbname, pageid) |
455 self.del_page_data(cbname) |
458 self.del_page_data(cbname) |
456 |
459 |
|
460 @deprecated('[3.19] use a traditional ajaxfunc / controller') |
457 def clear_user_callbacks(self): |
461 def clear_user_callbacks(self): |
458 if self.session is not None: # XXX |
462 if self.session is not None: # XXX |
459 for key in list(self.session.data): |
463 for key in list(self.session.data): |
460 if key.startswith('cb_'): |
464 if key.startswith('cb_'): |
461 del self.session.data[key] |
465 del self.session.data[key] |