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""" |