web/component.py
branchstable
changeset 3013 6a40a9a72957
parent 3012 97696093ba54
child 3014 62ce5a139b52
equal deleted inserted replaced
3012:97696093ba54 3013:6a40a9a72957
     5 :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr
     5 :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr
     6 :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses
     6 :license: GNU Lesser General Public License, v2.1 - http://www.gnu.org/licenses
     7 """
     7 """
     8 __docformat__ = "restructuredtext en"
     8 __docformat__ = "restructuredtext en"
     9 _ = unicode
     9 _ = unicode
       
    10 
       
    11 from simplejson import dumps
    10 
    12 
    11 from logilab.common.deprecation import class_renamed
    13 from logilab.common.deprecation import class_renamed
    12 from logilab.mtconverter import xml_escape
    14 from logilab.mtconverter import xml_escape
    13 
    15 
    14 from cubicweb import role
    16 from cubicweb import role
   111         if self.start_param in params:
   113         if self.start_param in params:
   112             del params[self.start_param]
   114             del params[self.start_param]
   113         if self.stop_param in params:
   115         if self.stop_param in params:
   114             del params[self.stop_param]
   116             del params[self.stop_param]
   115 
   117 
       
   118     def page_url(self, path, params, start, stop):
       
   119         params = merge_dicts(params, {self.start_param : start,
       
   120                                       self.stop_param : stop,})
       
   121         if path == 'json':
       
   122             rql = params.pop('rql', self.rset.printable_rql())
       
   123             # latest 'true' used for 'swap' mode
       
   124             url = 'javascript: replacePageChunk(%s, %s, %s, %s, true)' % (
       
   125                 dumps(params.get('divid', 'paginated-content')),
       
   126                 dumps(rql), dumps(params.pop('vid', None)), dumps(params))
       
   127         else:
       
   128             url = self.build_url(path, **params)
       
   129         return url
       
   130 
   116     def page_link(self, path, params, start, stop, content):
   131     def page_link(self, path, params, start, stop, content):
   117         url = self.build_url(path, **merge_dicts(params, {self.start_param : start,
   132         url = xml_escape(self.page_url(path, params, start, stop))
   118                                                           self.stop_param : stop,}))
       
   119         url = xml_escape(url)
       
   120         if start == self.starting_from:
   133         if start == self.starting_from:
   121             return self.selected_page_link_templ % (url, content, content)
   134             return self.selected_page_link_templ % (url, content, content)
   122         return self.page_link_templ % (url, content, content)
   135         return self.page_link_templ % (url, content, content)
   123 
   136 
   124     def previous_link(self, params, content='<<', title=_('previous_results')):
   137     def previous_link(self, params, content='<<', title=_('previous_results')):