web/component.py
changeset 9530 170e1437948d
parent 8900 010a59e12d89
child 9536 1e39c5e91b68
equal deleted inserted replaced
9529:39b46b0b01e4 9530:170e1437948d
   106         if stop is not None:
   106         if stop is not None:
   107             params[self.stop_param] = stop
   107             params[self.stop_param] = stop
   108         view = self.cw_extra_kwargs.get('view')
   108         view = self.cw_extra_kwargs.get('view')
   109         if view is not None and hasattr(view, 'page_navigation_url'):
   109         if view is not None and hasattr(view, 'page_navigation_url'):
   110             url = view.page_navigation_url(self, path, params)
   110             url = view.page_navigation_url(self, path, params)
   111         elif path in ('json', 'ajax'):
   111         else:
   112             # 'ajax' is the new correct controller, but the old 'json'
       
   113             # controller should still be supported
       
   114             url = self.ajax_page_url(**params)
   112             url = self.ajax_page_url(**params)
   115         else:
       
   116             url = self._cw.build_url(path, **params)
       
   117         # XXX hack to avoid opening a new page containing the evaluation of the
   113         # XXX hack to avoid opening a new page containing the evaluation of the
   118         # js expression on ajax call
   114         # js expression on ajax call
   119         if url.startswith('javascript:'):
   115         if url.startswith('javascript:'):
   120             url += '; $.noop();'
   116             url += '; $.noop();'
   121         return url
   117         return url
   122 
   118 
   123     def ajax_page_url(self, **params):
   119     def ajax_page_url(self, **params):
   124         divid = params.setdefault('divid', 'pageContent')
   120         divid = params.setdefault('divid', 'pageContent')
       
   121         params['fname'] = 'view'
   125         params['rql'] = self.cw_rset.printable_rql()
   122         params['rql'] = self.cw_rset.printable_rql()
   126         return js_href("$(%s).loadxhtml(AJAX_PREFIX_URL, %s, 'get', 'swap')" % (
   123         return self._cw.build_url('ajax', **params)
   127             json_dumps('#'+divid), js.ajaxFuncArgs('view', params)))
       
   128 
   124 
   129     def page_link(self, path, params, start, stop, content):
   125     def page_link(self, path, params, start, stop, content):
   130         url = xml_escape(self.page_url(path, params, start, stop))
   126         url = xml_escape(self.page_url(path, params, start, stop))
   131         if start == self.starting_from:
   127         if start == self.starting_from:
   132             return self.selected_page_link_templ % (url, content, content)
   128             return self.selected_page_link_templ % (url, content, content)