web/request.py
changeset 4899 c666d265fb95
parent 4897 e402e0b32075
parent 4868 e34cbd85d14d
child 4984 6cb91be7707f
equal deleted inserted replaced
4897:e402e0b32075 4899:c666d265fb95
   309         if searchstate == 'normal':
   309         if searchstate == 'normal':
   310             breadcrumbs = self.get_session_data('breadcrumbs', None)
   310             breadcrumbs = self.get_session_data('breadcrumbs', None)
   311             if breadcrumbs is None:
   311             if breadcrumbs is None:
   312                 breadcrumbs = SizeConstrainedList(10)
   312                 breadcrumbs = SizeConstrainedList(10)
   313                 self.set_session_data('breadcrumbs', breadcrumbs)
   313                 self.set_session_data('breadcrumbs', breadcrumbs)
   314             breadcrumbs.append(self.url())
   314                 breadcrumbs.append(self.url())
       
   315             else:
       
   316                 url = self.url()
       
   317                 if breadcrumbs[-1] != url:
       
   318                     breadcrumbs.append(url)
   315 
   319 
   316     def last_visited_page(self):
   320     def last_visited_page(self):
   317         breadcrumbs = self.get_session_data('breadcrumbs', None)
   321         breadcrumbs = self.get_session_data('breadcrumbs', None)
   318         if breadcrumbs:
   322         if breadcrumbs:
   319             return breadcrumbs.pop()
   323             return breadcrumbs.pop()
   514         for jsfile in jsfiles:
   518         for jsfile in jsfiles:
   515             if localfile:
   519             if localfile:
   516                 jsfile = self.datadir_url + jsfile
   520                 jsfile = self.datadir_url + jsfile
   517             self.html_headers.add_js(jsfile)
   521             self.html_headers.add_js(jsfile)
   518 
   522 
   519     def add_css(self, cssfiles, media=u'all', localfile=True, ieonly=False):
   523     def add_css(self, cssfiles, media=u'all', localfile=True, ieonly=False,
       
   524                 iespec=u'[if lt IE 8]'):
   520         """specify a CSS file to include in the HTML headers
   525         """specify a CSS file to include in the HTML headers
   521         :param cssfiles: a CSS filename or a list of CSS filenames
   526         :param cssfiles: a CSS filename or a list of CSS filenames
   522         :param media: the CSS's media if necessary
   527         :param media: the CSS's media if necessary
   523         :param localfile: if True, the default data dir prefix is added to the
   528         :param localfile: if True, the default data dir prefix is added to the
   524                           CSS filename
   529                           CSS filename
       
   530         :param ieonly: True if this css is specific to IE
       
   531         :param iespec: conditional expression that will be used around
       
   532                        the css inclusion. cf:
       
   533                        http://msdn.microsoft.com/en-us/library/ms537512(VS.85).aspx
   525         """
   534         """
   526         if isinstance(cssfiles, basestring):
   535         if isinstance(cssfiles, basestring):
   527             cssfiles = (cssfiles,)
   536             cssfiles = (cssfiles,)
   528         if ieonly:
   537         if ieonly:
   529             if self.ie_browser():
   538             if self.ie_browser():
       
   539                 extraargs = [iespec]
   530                 add_css = self.html_headers.add_ie_css
   540                 add_css = self.html_headers.add_ie_css
   531             else:
   541             else:
   532                 return # no need to do anything on non IE browsers
   542                 return # no need to do anything on non IE browsers
   533         else:
   543         else:
       
   544             extraargs = []
   534             add_css = self.html_headers.add_css
   545             add_css = self.html_headers.add_css
   535         for cssfile in cssfiles:
   546         for cssfile in cssfiles:
   536             if localfile:
   547             if localfile:
   537                 cssfile = self.datadir_url + cssfile
   548                 cssfile = self.datadir_url + cssfile
   538             add_css(cssfile, media)
   549             add_css(cssfile, media, *extraargs)
   539 
   550 
   540     def build_ajax_replace_url(self, nodeid, rql, vid, replacemode='replace',
   551     def build_ajax_replace_url(self, nodeid, rql, vid, replacemode='replace',
   541                                **extraparams):
   552                                **extraparams):
   542         """builds an ajax url that will replace `nodeid`s content
   553         """builds an ajax url that will replace `nodeid`s content
   543         :param nodeid: the dom id of the node to replace
   554         :param nodeid: the dom id of the node to replace