# HG changeset patch # User Rémi Cardona <remi.cardona@logilab.fr> # Date 1422009114 -3600 # Fri Jan 23 11:31:54 2015 +0100 # Node ID c89950b2fef7072e775a7ca6f189718436a5bc89 # Parent c825185c17fe5728cdaaa8bdbb2e9eef97017387 [basetemplates] Fix the main template global header/nav bar (closes #4881614) The core of this patch is to have the following layout :: <nav class="navbar"> <div class="container"> <div class="navbar-header"> [header-logo components] </div> <div class="collapse navbar-collapse> <div class="nav navbar-nav"> [header-left components] </div> <div class="nav navbar-nav navbar-right"> [header-right components] </div> </div> </div> </nav> diff --git a/views/basetemplates.py b/views/basetemplates.py --- a/views/basetemplates.py +++ b/views/basetemplates.py @@ -181,7 +181,7 @@ basecomponents.ApplLogo.context = 'header-logo' # use basecomponents.ApplicationName.visible = False -basecomponents.ApplicationName.context = 'header-logo' +basecomponents.ApplicationName.context = 'header-left' basecomponents.ApplLogo.order = 1 basecomponents.ApplicationName.order = 10 basecomponents.CookieLoginComponent.order = 10 @@ -190,10 +190,6 @@ SearchBox.context = 'header-right' SearchBox.layout_id = 'simple-layout' -basetemplates.HTMLPageHeader.headers_classes = { - 'header-left':'navbar-left', - 'header-right':'navbar-right', - } @monkeypatch(basetemplates.HTMLPageHeader) def call(self, view, **kwargs): @@ -208,20 +204,24 @@ context=context) basetemplates.HTMLPageHeader.get_components = get_components -basetemplates.HTMLPageHeader.css = {'header-navbar' : 'navbar-default', - 'breadcrumbs' : 'cw-breadcrumbs-default'} +basetemplates.HTMLPageHeader.css = { + 'navbar-extra': 'navbar-default', + 'breadcrumbs': 'cw-breadcrumbs-default', + 'container-cls': basetemplates.TheMainTemplate.twbs_container_cls, + 'header-left': '', + 'header-right': 'navbar-right', +} @monkeypatch(basetemplates.HTMLPageHeader) def main_header(self, view): w = self.w - title = self._cw.property_value('ui.site-title') - w(u'<header class="navbar %s" role="banner">' % - self.css.get('header-navbar', 'header-navbar')) - w(u'<nav>') + w(u'<nav class="navbar %s" role="banner">' % self.css['navbar-extra']) + w(u'<div class="%s">' % self.css['container-cls']) self.dispaly_navbar_header(w, view) + w(u'<div id="tools-group" class="collapse navbar-collapse">') self.display_header_components(w, view, 'header-left') self.display_header_components(w, view, 'header-right') - w(u'</nav></header>') + w(u'</div></div></nav>') def dispaly_navbar_header(self, w, view): w(u'''<div class="navbar-header"> @@ -242,15 +242,12 @@ def display_header_components(self, w, view, context): components = self.get_components(view, context=context) if components: - w(u'<div id="tools-group" class="collapse navbar-collapse">') - w(u'<ul class="nav navbar-nav %s">' % \ - self.headers_classes[context]) + w(u'<ul class="nav navbar-nav %s">' % self.css[context]) for component in components: w(u'<li>') component.render(w=w) w(u'</li>') w(u'</ul>') - w(u'</div>') basetemplates.HTMLPageHeader.display_header_components = display_header_components