# 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