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 == 'json': |
111 elif path in ('json', 'ajax'): |
|
112 # 'ajax' is the new correct controller, but the old 'json' |
|
113 # controller should still be supported |
112 url = self.ajax_page_url(**params) |
114 url = self.ajax_page_url(**params) |
113 else: |
115 else: |
114 url = self._cw.build_url(path, **params) |
116 url = self._cw.build_url(path, **params) |
115 # XXX hack to avoid opening a new page containing the evaluation of the |
117 # XXX hack to avoid opening a new page containing the evaluation of the |
116 # js expression on ajax call |
118 # js expression on ajax call |
119 return url |
121 return url |
120 |
122 |
121 def ajax_page_url(self, **params): |
123 def ajax_page_url(self, **params): |
122 divid = params.setdefault('divid', 'pageContent') |
124 divid = params.setdefault('divid', 'pageContent') |
123 params['rql'] = self.cw_rset.printable_rql() |
125 params['rql'] = self.cw_rset.printable_rql() |
124 return js_href("$(%s).loadxhtml('json', %s, 'get', 'swap')" % ( |
126 return js_href("$(%s).loadxhtml(AJAX_PREFIX_URL, %s, 'get', 'swap')" % ( |
125 json_dumps('#'+divid), js.ajaxFuncArgs('view', params))) |
127 json_dumps('#'+divid), js.ajaxFuncArgs('view', params))) |
126 |
128 |
127 def page_link(self, path, params, start, stop, content): |
129 def page_link(self, path, params, start, stop, content): |
128 url = xml_escape(self.page_url(path, params, start, stop)) |
130 url = xml_escape(self.page_url(path, params, start, stop)) |
129 if start == self.starting_from: |
131 if start == self.starting_from: |