view.py
changeset 6047 ee6deb534f57
parent 6039 6e84db1b3e44
parent 6044 9e48ebd5400c
child 6140 65a619eb31c4
equal deleted inserted replaced
6041:31776723c0c5 6047:ee6deb534f57
    21 _ = unicode
    21 _ = unicode
    22 
    22 
    23 from cStringIO import StringIO
    23 from cStringIO import StringIO
    24 from warnings import warn
    24 from warnings import warn
    25 
    25 
    26 from cubicweb.utils import json
       
    27 from logilab.common.deprecation import deprecated
    26 from logilab.common.deprecation import deprecated
    28 from logilab.mtconverter import xml_escape
    27 from logilab.mtconverter import xml_escape
    29 
    28 
    30 from rql import nodes
    29 from rql import nodes
    31 
    30 
    32 from cubicweb import NotAnEntity
    31 from cubicweb import NotAnEntity
    33 from cubicweb.selectors import yes, non_final_entity, nonempty_rset, none_rset
    32 from cubicweb.selectors import yes, non_final_entity, nonempty_rset, none_rset
    34 from cubicweb.appobject import AppObject
    33 from cubicweb.appobject import AppObject
    35 from cubicweb.utils import UStringIO, HTMLStream
    34 from cubicweb.utils import UStringIO, HTMLStream
       
    35 from cubicweb.uilib import domid, js
    36 from cubicweb.schema import display_name
    36 from cubicweb.schema import display_name
    37 from cubicweb.vregistry import classid
    37 from cubicweb.vregistry import classid
    38 
    38 
    39 # robots control
    39 # robots control
    40 NOINDEX = u'<meta name="ROBOTS" content="NOINDEX" />'
    40 NOINDEX = u'<meta name="ROBOTS" content="NOINDEX" />'
   323     def create_url(self, etype, **kwargs):
   323     def create_url(self, etype, **kwargs):
   324         """ return the url of the entity creation form for a given entity type"""
   324         """ return the url of the entity creation form for a given entity type"""
   325         return self._cw.vreg["etypes"].etype_class(etype).cw_create_url(
   325         return self._cw.vreg["etypes"].etype_class(etype).cw_create_url(
   326             self._cw, **kwargs)
   326             self._cw, **kwargs)
   327 
   327 
   328     def field(self, label, value, row=True, show_label=True, w=None, tr=True, table=False):
   328     def field(self, label, value, row=True, show_label=True, w=None, tr=True,
       
   329               table=False):
   329         """read-only field"""
   330         """read-only field"""
   330         if w is None:
   331         if w is None:
   331             w = self.w
   332             w = self.w
   332         if table:
   333         if table:
   333             w(u'<tr class="entityfield">')
   334             w(u'<tr class="entityfield">')
   493         cbname = self._cw.register_onetime_callback(cb, *args)
   494         cbname = self._cw.register_onetime_callback(cb, *args)
   494         return self.build_js(cbname, xml_escape(msg or ''))
   495         return self.build_js(cbname, xml_escape(msg or ''))
   495 
   496 
   496     def build_update_js_call(self, cbname, msg):
   497     def build_update_js_call(self, cbname, msg):
   497         rql = self.cw_rset.printable_rql()
   498         rql = self.cw_rset.printable_rql()
   498         return "javascript:userCallbackThenUpdateUI('%s', '%s', %s, %s, '%s', '%s')" % (
   499         return "javascript: %s" % js.userCallbackThenUpdateUI(
   499             cbname, self.id, json.dumps(rql), json.dumps(msg),
   500             cbname, self.__regid__, rql, msg, self.__registry__, self.domid)
   500             self.__registry__, self.div_id())
       
   501 
   501 
   502     def build_reload_js_call(self, cbname, msg):
   502     def build_reload_js_call(self, cbname, msg):
   503         return "javascript:userCallbackThenReloadPage('%s', %s)" % (cbname, json.dumps(msg))
   503         return "javascript: %s" % js.userCallbackThenReloadPage(cbname, msg)
   504 
   504 
   505     build_js = build_update_js_call # expect updatable component by default
   505     build_js = build_update_js_call # expect updatable component by default
   506 
   506 
   507     def div_id(self):
   507     def div_id(self):
   508         return ''
   508         return ''