view.py
changeset 9725 2614362be11e
parent 9492 c7fc56eecd1a
child 9821 2077c8da1893
equal deleted inserted replaced
9724:e45bf9baa7b7 9725:2614362be11e
   499 # concrete component base classes #############################################
   499 # concrete component base classes #############################################
   500 
   500 
   501 class ReloadableMixIn(object):
   501 class ReloadableMixIn(object):
   502     """simple mixin for reloadable parts of UI"""
   502     """simple mixin for reloadable parts of UI"""
   503 
   503 
   504     def user_callback(self, cb, args, msg=None, nonify=False):
       
   505         """register the given user callback and return an url to call it ready to be
       
   506         inserted in html
       
   507         """
       
   508         self._cw.add_js('cubicweb.ajax.js')
       
   509         if nonify:
       
   510             _cb = cb
       
   511             def cb(*args):
       
   512                 _cb(*args)
       
   513         cbname = self._cw.register_onetime_callback(cb, *args)
       
   514         return self.build_js(cbname, xml_escape(msg or ''))
       
   515 
       
   516     def build_update_js_call(self, cbname, msg):
       
   517         rql = self.cw_rset.printable_rql()
       
   518         return "javascript: %s" % js.userCallbackThenUpdateUI(
       
   519             cbname, self.__regid__, rql, msg, self.__registry__, self.domid)
       
   520 
       
   521     def build_reload_js_call(self, cbname, msg):
       
   522         return "javascript: %s" % js.userCallbackThenReloadPage(cbname, msg)
       
   523 
       
   524     build_js = build_update_js_call # expect updatable component by default
       
   525 
       
   526     @property
   504     @property
   527     def domid(self):
   505     def domid(self):
   528         return domid(self.__regid__)
   506         return domid(self.__regid__)
   529 
   507 
   530     @deprecated('[3.10] use .domid property')
   508     @deprecated('[3.10] use .domid property')