web/request.py
changeset 5940 0e3ae19b181a
parent 5890 141b935a38fc
child 6062 f1a550102f5c
equal deleted inserted replaced
5939:a33402c1aa79 5940:0e3ae19b181a
    35 from logilab.mtconverter import xml_escape
    35 from logilab.mtconverter import xml_escape
    36 
    36 
    37 from cubicweb.dbapi import DBAPIRequest
    37 from cubicweb.dbapi import DBAPIRequest
    38 from cubicweb.mail import header
    38 from cubicweb.mail import header
    39 from cubicweb.uilib import remove_html_tags
    39 from cubicweb.uilib import remove_html_tags
    40 from cubicweb.utils import SizeConstrainedList, HTMLHead, make_uid
    40 from cubicweb.utils import SizeConstrainedList, HTMLHead, make_uid, json_dumps
    41 from cubicweb.view import STRICT_DOCTYPE, TRANSITIONAL_DOCTYPE_NOEXT
    41 from cubicweb.view import STRICT_DOCTYPE, TRANSITIONAL_DOCTYPE_NOEXT
    42 from cubicweb.web import (INTERNAL_FIELD_VALUE, LOGGER, NothingToEdit,
    42 from cubicweb.web import (INTERNAL_FIELD_VALUE, LOGGER, NothingToEdit,
    43                           RequestError, StatusResponse, json)
    43                           RequestError, StatusResponse)
    44 from cubicweb.web.http_headers import Headers
    44 from cubicweb.web.http_headers import Headers
    45 
       
    46 dumps = json.dumps
       
    47 
    45 
    48 _MARKER = object()
    46 _MARKER = object()
    49 
    47 
    50 
    48 
    51 def list_form_param(form, param, pop=False):
    49 def list_form_param(form, param, pop=False):
   356         """register the given user callback and return an url to call it ready to be
   354         """register the given user callback and return an url to call it ready to be
   357         inserted in html
   355         inserted in html
   358         """
   356         """
   359         self.add_js('cubicweb.ajax.js')
   357         self.add_js('cubicweb.ajax.js')
   360         cbname = self.register_onetime_callback(cb, *args)
   358         cbname = self.register_onetime_callback(cb, *args)
   361         msg = dumps(msg or '')
   359         msg = json_dumps(msg or '')
   362         return "javascript:userCallbackThenReloadPage('%s', %s)" % (
   360         return "javascript:userCallbackThenReloadPage('%s', %s)" % (
   363             cbname, msg)
   361             cbname, msg)
   364 
   362 
   365     def register_onetime_callback(self, func, *args):
   363     def register_onetime_callback(self, func, *args):
   366         cbname = 'cb_%s' % (
   364         cbname = 'cb_%s' % (
   590         parameters of the generated url.
   588         parameters of the generated url.
   591         """
   589         """
   592         extraparams.setdefault('fname', 'view')
   590         extraparams.setdefault('fname', 'view')
   593         url = self.build_url('json', **extraparams)
   591         url = self.build_url('json', **extraparams)
   594         return "javascript: $('#%s').loadxhtml(%s, null, 'get', '%s'); noop()" % (
   592         return "javascript: $('#%s').loadxhtml(%s, null, 'get', '%s'); noop()" % (
   595                 nodeid, dumps(url), replacemode)
   593                 nodeid, json_dumps(url), replacemode)
   596 
   594 
   597     # urls/path management ####################################################
   595     # urls/path management ####################################################
   598 
   596 
   599     def url(self, includeparams=True):
   597     def url(self, includeparams=True):
   600         """return currently accessed url"""
   598         """return currently accessed url"""