40 from logilab.mtconverter import xml_escape |
40 from logilab.mtconverter import xml_escape |
41 |
41 |
42 from cubicweb import AuthenticationError |
42 from cubicweb import AuthenticationError |
43 from cubicweb.req import RequestSessionBase |
43 from cubicweb.req import RequestSessionBase |
44 from cubicweb.uilib import remove_html_tags, js |
44 from cubicweb.uilib import remove_html_tags, js |
45 from cubicweb.utils import SizeConstrainedList, HTMLHead, make_uid |
45 from cubicweb.utils import HTMLHead, make_uid |
46 from cubicweb.view import TRANSITIONAL_DOCTYPE_NOEXT |
46 from cubicweb.view import TRANSITIONAL_DOCTYPE_NOEXT |
47 from cubicweb.web import (INTERNAL_FIELD_VALUE, LOGGER, NothingToEdit, |
47 from cubicweb.web import (INTERNAL_FIELD_VALUE, LOGGER, NothingToEdit, |
48 RequestError, StatusResponse) |
48 RequestError, StatusResponse) |
49 from cubicweb.web.httpcache import get_validators |
49 from cubicweb.web.httpcache import get_validators |
50 from cubicweb.web.http_headers import Headers, Cookie, parseDateTime |
50 from cubicweb.web.http_headers import Headers, Cookie, parseDateTime |
396 for etype in rset.column_types(0): |
396 for etype in rset.column_types(0): |
397 if etype != searchedtype: |
397 if etype != searchedtype: |
398 return False |
398 return False |
399 return True |
399 return True |
400 |
400 |
401 def update_breadcrumbs(self): |
|
402 """stores the last visisted page in session data""" |
|
403 searchstate = self.search_state[0] |
|
404 if searchstate == 'normal': |
|
405 breadcrumbs = self.session.data.get('breadcrumbs') |
|
406 if breadcrumbs is None: |
|
407 breadcrumbs = SizeConstrainedList(10) |
|
408 self.session.data['breadcrumbs'] = breadcrumbs |
|
409 breadcrumbs.append(self.url()) |
|
410 else: |
|
411 url = self.url() |
|
412 if breadcrumbs and breadcrumbs[-1] != url: |
|
413 breadcrumbs.append(url) |
|
414 |
|
415 def last_visited_page(self): |
|
416 breadcrumbs = self.session.data.get('breadcrumbs') |
|
417 if breadcrumbs: |
|
418 return breadcrumbs.pop() |
|
419 return self.base_url() |
|
420 |
|
421 # web edition helpers ##################################################### |
401 # web edition helpers ##################################################### |
422 |
402 |
423 @cached # so it's writed only once |
403 @cached # so it's writed only once |
424 def fckeditor_config(self): |
404 def fckeditor_config(self): |
425 fckeditor_url = self.build_url('fckeditor/fckeditor.js') |
405 fckeditor_url = self.build_url('fckeditor/fckeditor.js') |