209 content_type = vobj.content_type |
209 content_type = vobj.content_type |
210 if content_type == 'application/xhtml+xml': |
210 if content_type == 'application/xhtml+xml': |
211 self.req.set_content_type(content_type) |
211 self.req.set_content_type(content_type) |
212 return xmlize(data) |
212 return xmlize(data) |
213 return data |
213 return data |
214 |
214 |
215 def html_exec(self, rset=None): |
215 def html_exec(self, rset=None): |
216 """html mode: execute query and return the view as HTML""" |
216 # XXX try to use the page-content template |
217 req = self.req |
217 req = self.req |
218 rql = req.form.get('rql') |
218 rql = req.form.get('rql') |
219 if rset is None and rql: |
219 if rset is None and rql: |
220 rset = self._exec(rql) |
220 rset = self._exec(rql) |
221 |
221 |
222 vid = req.form.get('vid') or vid_from_rset(req, rset, self.schema) |
222 vid = req.form.get('vid') or vid_from_rset(req, rset, self.schema) |
223 try: |
223 try: |
224 view = self.vreg.select_view(vid, req, rset) |
224 view = self.vreg.select_view(vid, req, rset) |
225 except NoSelectableObject: |
225 except NoSelectableObject: |
226 vid = req.form.get('fallbackvid', 'noresult') |
226 vid = req.form.get('fallbackvid', 'noresult') |
237 stream.write(u'<h1 class="vtitle">%s</h1>\n' % vtitle) |
237 stream.write(u'<h1 class="vtitle">%s</h1>\n' % vtitle) |
238 view.pagination(req, rset, view.w, not view.need_navigation) |
238 view.pagination(req, rset, view.w, not view.need_navigation) |
239 if divid == 'pageContent': |
239 if divid == 'pageContent': |
240 stream.write(u'<div id="contentmain">') |
240 stream.write(u'<div id="contentmain">') |
241 view.dispatch() |
241 view.dispatch() |
|
242 extresources = req.html_headers.getvalue(skiphead=True) |
|
243 stream.write(u'<div class="ajaxHtmlHead">\n') # XXX use a widget ? |
|
244 stream.write(extresources) |
|
245 stream.write(u'</div>\n') |
242 if req.form.get('paginate') and divid == 'pageContent': |
246 if req.form.get('paginate') and divid == 'pageContent': |
243 stream.write(u'</div></div>') |
247 stream.write(u'</div></div>') |
244 source = stream.getvalue() |
248 source = stream.getvalue() |
245 return self._set_content_type(view, source) |
249 return self._set_content_type(view, source) |
246 |
250 |