Mercurial > kallithea
changeset 6428:8bd7a637cea0
template: use Bootstrap compatible navbar markup
Based on work from Andrew Shadura <andrew@shadura.me>.
Further modified by Mads Kiilerich.
author | domruf <dominikruf@gmail.com> |
---|---|
date | Tue, 20 Sep 2016 19:03:37 +0200 |
parents | 71acaf87e5a2 |
children | d94e87f92a47 |
files | kallithea/public/css/contextbar.css kallithea/public/css/style.css kallithea/templates/base/base.html kallithea/templates/base/root.html kallithea/tests/functional/test_admin_settings.py |
diffstat | 5 files changed, 157 insertions(+), 154 deletions(-) [+] |
line wrap: on
line diff
--- a/kallithea/public/css/contextbar.css Wed Sep 21 19:58:44 2016 +0200 +++ b/kallithea/public/css/contextbar.css Tue Sep 20 19:03:37 2016 +0200 @@ -48,20 +48,20 @@ min-height: 36px; } -#content #context-bar h2 { +#content #context-bar .navbar-header { display: inline-block; color: #FFF; margin: 8px 20px 3px; padding-bottom: 2px; } -#header #header-inner #quick a, +nav.navbar #quick a, #content #context-bar, #content #context-bar a { color: #FFFFFF; } -#header #header-inner #quick a:hover, +nav.navbar #quick a:hover, #content #context-bar a:hover { text-decoration: none; } @@ -77,16 +77,19 @@ margin: 0; } +ul.navbar-nav, ul.horizontal-list { display: block; } +ul.navbar-nav > li, ul.horizontal-list > li { float: left; position: relative; } -#header #header-inner #quick ul, +nav.navbar #quick ul, +ul.navbar-nav > li ul, ul.horizontal-list > li ul { position: absolute; display: none; @@ -94,13 +97,15 @@ z-index: 999; } -#header #header-inner #quick li ul li, +nav.navbar #quick li ul li, +ul.navbar-nav ul li, ul.horizontal-list ul li { position: relative; border-bottom: 1px solid rgba(0,0,0,0.1); border-top: 1px solid rgba(255,255,255,0.1); } +ul.navbar-nav > li ul ul, ul.horizontal-list > li ul ul { position: absolute; right: 100%; @@ -111,7 +116,8 @@ overflow-y: auto; } -#header #header-inner #quick ul a, +nav.navbar #quick ul a, +ul.navbar-nav li a, ul.horizontal-list li a { white-space: nowrap; } @@ -129,7 +135,7 @@ font-size: 1.4em; } -#header #header-inner #quick ul, +nav.navbar #quick ul, #revision-changer, #context-pages, #context-pages ul { @@ -137,7 +143,7 @@ background: linear-gradient(to bottom, #577632 0%, #577632 100%); /* W3C */ } -#header #header-inner #quick a, +nav.navbar #quick a, #context-actions a, #context-pages a { background-repeat: no-repeat; @@ -180,14 +186,14 @@ } ul.dropdown-menu li a:focus, -#header #header-inner #quick li:hover, +nav.navbar #quick li:hover, #revision-changer:hover, #context-pages li:hover, #context-actions li:hover, #content #context-actions li:hover, -#header #header-inner #quick li.current, -#header #header-inner #quick li a.menu_link:focus, -#context-pages li.current { +nav.navbar #quick li.active, +nav.navbar #quick li a.menu_link:focus, +#context-pages li.active { background: #6388ad; /* Old browsers */ background: linear-gradient(to bottom, rgba(255,255,255,0.2) 0%, rgba(255,255,255,0.1) 100%); /* W3C */ } @@ -225,27 +231,27 @@ margin-right: 5px; } -#header #header-inner #quick li, +nav.navbar #quick li, #content #context-pages li { border-right: 1px solid rgba(0,0,0,0.1); border-left: 1px solid rgba(255,255,255,0.1); padding: 0; } -#header #header-inner #quick li:last-child, +nav.navbar #quick li:last-child, #content #context-pages li:last-child { border-right: none; } -#header #header-inner #quick > li:first-child { +nav.navbar #quick > li:first-child { border-left: none; } -#header #header-inner #quick > li:first-child > a { +nav.navbar #quick > li:first-child > a { border-radius: 4px 0 0 4px; } -#header #header-inner #quick a, +nav.navbar #quick a, #context-pages a, #context-pages .dropdown-menu a { display: block; @@ -253,17 +259,17 @@ line-height: 35px; } -#header #header-inner #quick a.thin, +nav.navbar #quick a.thin, #context-pages a.thin, #context-pages .dropdown-menu a.thin { line-height: 28px !important; } -#header #header-inner #quick a#quick_login_link { +nav.navbar #quick a#quick_login_link { padding-left: 0px; } -#header #header-inner #quick a { +nav.navbar #quick a { overflow: hidden; } #context-pages a.dropdown-toggle:after {
--- a/kallithea/public/css/style.css Wed Sep 21 19:58:44 2016 +0200 +++ b/kallithea/public/css/style.css Tue Sep 20 19:03:37 2016 +0200 @@ -265,25 +265,33 @@ visibility: visible; } -#header #logo { +nav.navbar #logo { padding-left: 10px; } -div.header img { +#content nav.navbar #logo { + padding-left: inherit; +} + +nav.navbar #logo .navbar-brand img { padding-top: 5px; -} - -#header #logo div.header, -#header #logo div.branding { + margin-right: 5px; +} + +nav.navbar #logo .navbar-brand { font-size: 20px; color: white; float: left; height: 44px; line-height: 44px; - margin-right: 5px; -} - -#header ul#logged-user { +} + +#content nav.navbar #logo .navbar-brand { + height: inherit; + line-height: inherit; +} + +nav.navbar ul#logged-user { margin-bottom: 5px !important; border-radius: 0px 0px 8px 8px; height: 37px; @@ -293,7 +301,7 @@ box-shadow: 0 2px 2px rgba(0, 0, 0, 0.6); } -#header ul#logged-user li { +nav.navbar ul#logged-user li { list-style: none; float: left; margin: 8px 0 0; @@ -301,58 +309,42 @@ border-left: 1px solid #576622; } -#header ul#logged-user li.first { +nav.navbar ul#logged-user li.first { border-left: none; margin: 4px; } -#header ul#logged-user li.first div.gravatar { +nav.navbar ul#logged-user li.first div.gravatar { margin-top: -2px; } -#header ul#logged-user li.first div.account { +nav.navbar ul#logged-user li.first div.account { padding-top: 4px; float: left; } -#header ul#logged-user li.last { +nav.navbar ul#logged-user li.last { border-right: none; } -#header ul#logged-user li a { +nav.navbar ul#logged-user li a { color: #fff; font-weight: 700; text-decoration: none; } -#header ul#logged-user li a:hover { +nav.navbar ul#logged-user li a:hover { text-decoration: underline; } -#header ul#logged-user li.highlight a { +nav.navbar ul#logged-user li.highlight a { color: #fff; } -#header ul#logged-user li.highlight a:hover { +nav.navbar ul#logged-user li.highlight a:hover { color: #FFF; } -#header-dd { - clear: both; - position: fixed !important; - background-color: #577632; - opacity: 0.01; - cursor: pointer; - min-height: 10px; - width: 100% !important; - border-radius: 0px 0px 4px 4px; -} - -#header-dd:hover { - opacity: 0.2; - transition: opacity 0.5s ease-in-out; -} - -#header #header-inner { +nav.navbar { min-height: 44px; clear: both; position: relative; @@ -365,19 +357,14 @@ box-shadow: 0 2px 2px rgba(0, 0, 0, 0.6); border-radius: 0px 0px 4px 4px; } -#header #header-inner.hover { - width: 100% !important; - border-radius: 0px 0px 0px 0px; - position: fixed !important; - z-index: 10000; -} - -.header-pos-fix, .anchor { + +.header-pos-fix, +.anchor { margin-top: -46px; padding-top: 46px; } -#header #header-inner #home a { +nav.navbar #home a { height: 40px; width: 46px; display: block; @@ -386,32 +373,32 @@ padding: 0; } -#header #header-inner #home a:hover { +nav.navbar #home a:hover { background-position: 0 -40px; } -#header #header-inner #logo { +nav.navbar #logo { float: left; position: absolute; } -#header #header-inner #logo h1 { +nav.navbar #logo h1 { color: #FFF; font-size: 20px; margin: 12px 0 0 13px; padding: 0; } -#header #header-inner #logo a { +nav.navbar #logo a { color: #fff; text-decoration: none; } -#header #header-inner #logo a:hover { +nav.navbar #logo a:hover { color: #bfe3ff; } -#header #header-inner #quick { +nav.navbar #quick { position: relative; float: right; list-style-type: none; @@ -421,63 +408,59 @@ border-radius: 4px; } -#header #header-inner #quick li span.short { +nav.navbar #quick li span.short { padding: 9px 6px 8px 6px; } -#header #header-inner #quick li span { +nav.navbar #quick li span { display: inline; margin: 0; } -#header #header-inner #quick li span.normal { +nav.navbar #quick li span.normal { border: none; padding: 10px 12px 8px; } -#header #header-inner #quick li .icon { +nav.navbar #quick li .icon { border-left: none; padding-left: 10px; -} - -#header #header-inner #quick li .icon_short { - top: 0; - left: 0; - border-left: none; - border-right: 1px solid #2e5c89; - padding: 8px 6px 4px; -} - -#header #header-inner #quick li .icon img, -#header #header-inner #quick li .icon_short img { + display: inline; +} + +nav.navbar #quick li .icon img { vertical-align: middle; margin-bottom: 2px; } -#header #header-inner #quick ul.repo_switcher { +nav.navbar #quick ul.repo_switcher { max-height: 275px; overflow-x: hidden; overflow-y: auto; } -#header #header-inner #quick ul.repo_switcher li.qfilter_rs { +nav.navbar #quick ul.repo_switcher li.qfilter_rs { padding: 2px 3px; padding-right: 17px; } -#header #header-inner #quick ul.repo_switcher li.qfilter_rs input { +nav.navbar #quick ul.repo_switcher li.qfilter_rs input { width: 100%; border-radius: 10px; padding: 2px 7px; } -#header #header-inner #quick .repo_switcher_type { +nav.navbar #quick .repo_switcher_type { position: absolute; left: 0; top: 9px; margin: 0px 2px 0px 2px; } +.navbar-toggle { + display: none; +} + .groups_breadcrumbs a { color: #fff; } @@ -522,6 +505,7 @@ margin: 0 60px 10px 290px; } +#content nav.navbar, #content div.panel { clear: both; background: #fff; @@ -2906,7 +2890,7 @@ border-radius: 2px; } -#header, #content, #footer { +nav.navbar, #content, #footer { min-width: 978px; } @@ -3114,7 +3098,7 @@ } img, -#header #header-inner #quick li a:hover span.normal, +nav.navbar #quick li a:hover span.normal, #clone_url, #clone_url_id { @@ -3125,7 +3109,7 @@ vertical-align: bottom; } -#header ul#logged-user, +nav.navbar ul#logged-user, #content div.panel div.panel-heading ul.links, #content div.panel div.message div.dismiss, #content div.panel div.traffic div.legend ul { @@ -3134,8 +3118,8 @@ padding: 0; } -#header #header-inner #home, -#header #header-inner #logo, +nav.navbar #home, +nav.navbar #logo, #content div.panel ul.left, #content div.panel ol.left, div#commit_history, @@ -3143,7 +3127,7 @@ float: left; } -#header #header-inner #quick li #quick_login, +nav.navbar #quick li #quick_login, #content #left #menu ul.closed, #content #left #menu li ul.collapsed, .yui-tt-shadow { @@ -3161,12 +3145,16 @@ content: ' \23f7'; /* triangle-down */ } +.branch-switcher .select2-choice, .repo-switcher .select2-choice { padding: 0px 8px 1px !important; display: block; height: 100%; } +.branch-switcher .select2-container, +.branch-switcher .select2-choice, +.branch-switcher .select2-choice span, .repo-switcher .select2-container, .repo-switcher .select2-choice, .repo-switcher .select2-choice span { @@ -3176,16 +3164,19 @@ color: #FFFFFF !important; } +.branch-switcher .select2-arrow, .repo-switcher .select2-arrow { display: none !important; } +.branch-switcher-dropdown.select2-drop.select2-drop-active, .repo-switcher-dropdown.select2-drop.select2-drop-active { box-shadow: none; color: #fff; background-color: #576622; } +.branch-switcher-dropdown.select2-drop.select2-drop-active .select2-results .select2-highlighted, .repo-switcher-dropdown.select2-drop.select2-drop-active .select2-results .select2-highlighted { background-color: #6388ad; }
--- a/kallithea/templates/base/base.html Wed Sep 21 19:58:44 2016 +0200 +++ b/kallithea/templates/base/base.html Tue Sep 20 19:03:37 2016 +0200 @@ -93,8 +93,9 @@ <%def name="repo_context_bar(current=None, rev=None)"> <% rev = None if rev == 'tip' else rev %> <!--- CONTEXT BAR --> - <div id="context-bar" class="panel panel-primary"> - <h2> + <nav id="context-bar" class="navbar navbar-inverse"> + <div class="navbar-header" id="logo"> + <div class="navbar-brand"> ${repotag(c.db_repo)} ## public/private @@ -104,27 +105,28 @@ <i class="icon-globe"></i> %endif %for group in c.db_repo.groups_with_parents: - ${h.link_to(group.name, url('repos_group_home', group_name=group.group_name))} + ${h.link_to(group.name, url('repos_group_home', group_name=group.group_name), class_='navbar-link')} » %endfor - ${h.link_to(c.db_repo.just_name, url('summary_home', repo_name=c.db_repo.repo_name))} + ${h.link_to(c.db_repo.just_name, url('summary_home', repo_name=c.db_repo.repo_name), class_='navbar-link')} %if current == 'createfork': - ${_('Create Fork')} %endif - </h2> - <ul id="context-pages" class="horizontal-list"> - <li class="${'current' if current == 'summary' else ''}" data-context="summary"><a href="${h.url('summary_home', repo_name=c.repo_name)}"><i class="icon-doc-text"></i> ${_('Summary')}</a></li> + </div> + </div> + <ul id="context-pages" class="nav navbar-nav navbar-right navbar-collapse collapse"> + <li class="${'active' if current == 'summary' else ''}" data-context="summary"><a href="${h.url('summary_home', repo_name=c.repo_name)}"><i class="icon-doc-text"></i> ${_('Summary')}</a></li> %if rev: - <li class="${'current' if current == 'changelog' else ''}" data-context="changelog"><a href="${h.url('changelog_file_home', repo_name=c.repo_name, revision=rev, f_path='')}"><i class="icon-clock"></i> ${_('Changelog')}</a></li> + <li class="${'active' if current == 'changelog' else ''}" data-context="changelog"><a href="${h.url('changelog_file_home', repo_name=c.repo_name, revision=rev, f_path='')}"><i class="icon-clock"></i> ${_('Changelog')}</a></li> %else: - <li class="${'current' if current == 'changelog' else ''}" data-context="changelog"><a href="${h.url('changelog_home', repo_name=c.repo_name)}"><i class="icon-clock"></i> ${_('Changelog')}</a></li> + <li class="${'active' if current == 'changelog' else ''}" data-context="changelog"><a href="${h.url('changelog_home', repo_name=c.repo_name)}"><i class="icon-clock"></i> ${_('Changelog')}</a></li> %endif - <li class="${'current' if current == 'files' else ''}" data-context="files"><a href="${h.url('files_home', repo_name=c.repo_name, revision=rev or 'tip')}"><i class="icon-doc-inv"></i> ${_('Files')}</a></li> - <li class="${'current' if current == 'switch-to' else ''}" data-context="switch-to"> + <li class="${'active' if current == 'files' else ''}" data-context="files"><a href="${h.url('files_home', repo_name=c.repo_name, revision=rev or 'tip')}"><i class="icon-doc-inv"></i> ${_('Files')}</a></li> + <li class="${'active' if current == 'switch-to' else ''}" data-context="switch-to"> <input id="branch_switcher" name="branch_switcher" type="hidden"> </li> - <li class="${'current' if current == 'options' else ''} dropdown" data-context="options"> + <li class="${'active' if current == 'options' else ''} dropdown" data-context="options"> %if h.HasRepoPermissionAny('repository.admin')(c.repo_name): <a href="${h.url('edit_repo',repo_name=c.repo_name)}" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false" aria-haspopup="true"><i class="icon-wrench"></i> ${_('Options')} <i class="caret"></i></a> %else: @@ -153,9 +155,9 @@ ## also it feels like a job for the controller %if c.authuser.username != 'default': <li> - <a class="${'following' if c.repository_following else 'follow'}" onclick="toggleFollowingRepo(this, ${c.db_repo.repo_id});"> - <span class="show-follow"><i class="icon-heart-empty"></i> ${_('Follow')}</span> - <span class="show-following"><i class="icon-heart"></i> ${_('Unfollow')}</span> + <a href="#" class="${'following' if c.repository_following else 'follow'}" onclick="toggleFollowingRepo(this, ${c.db_repo.repo_id});"> + <span class="show-follow ${'hidden' if c.repository_following else ''}"><i class="icon-heart-empty"></i> ${_('Follow')}</span> + <span class="show-following ${'' if c.repository_following else 'hidden'}"><i class="icon-heart"></i> ${_('Unfollow')}</span> </a> </li> <li><a href="${h.url('repo_fork_home',repo_name=c.repo_name)}"><i class="icon-git-pull-request"></i> ${_('Fork')}</a></li> @@ -163,21 +165,21 @@ %endif </ul> </li> - <li class="${'current' if current == 'showpullrequest' else ''}" data-context="showpullrequest"> + <li class="${'active' if current == 'showpullrequest' else ''}" data-context="showpullrequest"> <a href="${h.url('pullrequest_show_all',repo_name=c.repo_name)}" title="${_('Show Pull Requests for %s') % c.repo_name}"> <i class="icon-git-pull-request"></i> ${_('Pull Requests')} %if c.repository_pull_requests: <span class="badge">${c.repository_pull_requests}</span> %endif </a> </li> - </ul> - </div> + </ul> + </nav> <script type="text/javascript"> $(document).ready(function() { var bcache = {}; $("#branch_switcher").select2({ - placeholder: '<i class="icon-exchange"></i> ${_('Switch To')} <span class="caret"></span>', + placeholder: '<span class="navbar-text"> <i class="icon-exchange"></i> ${_('Switch To')} <span class="caret"></span></span>', dropdownAutoWidth: true, sortResults: prefixFirstSort, formatResult: function(obj) { @@ -191,13 +193,13 @@ }, escapeMarkup: function(m) { // don't escape our custom placeholder - if (m.substr(0, 29) == '<i class="icon-exchange"></i>') { + if (m.substr(0, 25) == '<span class="navbar-text"') { return m; } return Select2.util.escapeMarkup(m); }, - containerCssClass: "repo-switcher", + containerCssClass: "branch-switcher", dropdownCssClass: "repo-switcher-dropdown", query: function(query) { var key = 'cache'; @@ -248,7 +250,7 @@ $("#branch_switcher").on('select2-selecting', function(e) { e.preventDefault(); - var context = $('#context-bar .current').data('context'); + var context = $('#context-bar .active').data('context'); if (context == 'files') { window.location = pyroutes.url('files_home', { 'repo_name': REPO_NAME, @@ -274,27 +276,27 @@ </%def> <%def name="menu(current=None)"> - <ul id="quick" class="horizontal-list"> + <ul id="quick" class="nav navbar-nav navbar-right"> <!-- repo switcher --> - <li class="${'current' if current == 'repositories' else ''}"> + <li class="${'active' if current == 'repositories' else ''}"> <input id="repo_switcher" name="repo_switcher" type="hidden"> </li> ##ROOT MENU %if c.authuser.username != 'default': - <li class="${'current' if current == 'journal' else ''}"> + <li class="${'active' if current == 'journal' else ''}"> <a class="menu_link" title="${_('Show recent activity')}" href="${h.url('journal')}"> <i class="icon-book"></i> ${_('Journal')} </a> </li> %else: - <li class="${'current' if current == 'journal' else ''}"> + <li class="${'active' if current == 'journal' else ''}"> <a class="menu_link" title="${_('Public journal')}" href="${h.url('public_journal')}"> <i class="icon-book"></i> ${_('Public journal')} </a> </li> %endif - <li class="${'current' if current == 'gists' else ''} dropdown"> + <li class="${'active' if current == 'gists' else ''} dropdown"> <a class="menu_link dropdown-toggle" data-toggle="dropdown" role="button" title="${_('Show public gists')}" href="${h.url('gists')}"> <i class="icon-clippy"></i> ${_('Gists')} <span class="caret"></span> </a> @@ -307,20 +309,20 @@ %endif </ul> </li> - <li class="${'current' if current == 'search' else ''}"> + <li class="${'active' if current == 'search' else ''}"> <a class="menu_link" title="${_('Search in repositories')}" href="${h.url('search')}"> <i class="icon-search"></i> ${_('Search')} </a> </li> % if h.HasPermissionAny('hg.admin')('access admin main page'): - <li class="${'current' if current == 'admin' else ''} dropdown"> + <li class="${'active' if current == 'admin' else ''} dropdown"> <a class="menu_link dropdown-toggle" data-toggle="dropdown" role="button" title="${_('Admin')}" href="${h.url('admin_home')}"> <i class="icon-gear"></i> ${_('Admin')} <span class="caret"></span> </a> ${admin_menu()} </li> % elif c.authuser.repositories_admin or c.authuser.repository_groups_admin or c.authuser.user_groups_admin: - <li class="${'current' if current == 'admin' else ''} dropdown"> + <li class="${'active' if current == 'admin' else ''} dropdown"> <a class="menu_link dropdown-toggle" data-toggle="dropdown" role="button" title="${_('Admin')}"> <i class="icon-gear"></i> ${_('Admin')} </a> @@ -330,7 +332,7 @@ </li> % endif - <li class="${'current' if current == 'my_pullrequests' else ''}"> + <li class="${'active' if current == 'my_pullrequests' else ''}"> <a class="menu_link" title="${_('My Pull Requests')}" href="${h.url('my_pullrequests')}"> <i class="icon-git-pull-request"></i> ${_('My Pull Requests')} %if c.my_pr_count != 0: @@ -349,7 +351,7 @@ href="#" %endif > - ${h.gravatar_div(c.authuser.email, size=20, div_class="icon", div_style="display:inline", div_aria_hidden="true")} + ${h.gravatar_div(c.authuser.email, size=20, div_class="icon")} %if c.authuser.username != 'default': <span class="menu_link_user">${c.authuser.username}</span> %if c.unread_notifications != 0: @@ -360,8 +362,8 @@ %endif </a> - <div class="user-menu" role="menu"> - <div id="quick_login" role="form" aria-describedby="quick_login_h" aria-hidden="true" class="dropdown-menu"> + <div class="dropdown-menu user-menu" role="menu"> + <div id="quick_login" role="form" aria-describedby="quick_login_h" aria-hidden="true" class="container-fluid"> %if c.authuser.username == 'default' or c.authuser.user_id is None: <h4 id="quick_login_h">${_('Login to Your Account')}</h4> ${h.form(h.url('login_home', came_from=request.path_qs))} @@ -399,20 +401,18 @@ </div> ${h.end_form()} %else: - <div class="pull-left links_left"> + <div class="pull-left"> ${h.gravatar_div(c.authuser.email, size=48, div_class="big_gravatar")} - <div class="full_name">${c.authuser.full_name_or_username}</div> + <b class="full_name">${c.authuser.full_name_or_username}</b> <div class="email">${c.authuser.email}</div> </div> - <div class="pull-right links_right" id="quick_login_h"> - <ol class="links"> - <li><a href="${h.url('notifications')}">${_('Notifications')}: ${c.unread_notifications}</a></li> - <li>${h.link_to(_('My Account'),h.url('my_account'))}</li> + <div class="pull-right list-group text-right"> + <a class="list-group-item" href="${h.url('notifications')}">${_('Notifications')}: ${c.unread_notifications}</a> + ${h.link_to(_('My Account'),h.url('my_account'),class_='list-group-item')} %if not c.authuser.is_external_auth: ## Cannot log out if using external (container) authentication. - <li class="logout">${h.link_to(_('Log Out'), h.url('logout_home'))}</li> + ${h.link_to(_('Log Out'), h.url('logout_home'),class_='list-group-item')} %endif - </ol> </div> %endif </div> @@ -456,7 +456,7 @@ } $("#repo_switcher").select2({ - placeholder: '<i class="icon-database"></i> ${_('Repositories')} <span class="caret"></span>', + placeholder: '<span class="navbar-text"><i class="icon-database"></i> ${_('Repositories')} <span class="caret"></span></span>', dropdownAutoWidth: true, sortResults: prefixFirstSort, formatResult: format, @@ -468,7 +468,7 @@ dropdownCssClass: "repo-switcher-dropdown", escapeMarkup: function(m){ // don't escape our custom placeholder - if(m.substr(0,29) == '<i class="icon-database"></i>'){ + if(m.substr(0,55) == '<span class="navbar-text"><i class="icon-database"></i>'){ return m; }
--- a/kallithea/templates/base/root.html Wed Sep 21 19:58:44 2016 +0200 +++ b/kallithea/templates/base/root.html Tue Sep 20 19:03:37 2016 +0200 @@ -105,21 +105,27 @@ <%block name="head_extra"/> </head> <body> - <div id="header"> - <div id="header-inner" class="title"> - <div id="logo"> - <a href="${h.url('home')}" style="display: block;"> - <div class="header"> - <img src="${h.url('/images/kallithea-logo.svg')}" alt="Kallithea"/> - </div> - %if c.site_name: - <div class="branding">${c.site_name}</div> - %endif + <nav class="navbar navbar-inverse"> + <div> + <div class="navbar-header" id="logo"> + <a class="navbar-brand" href="${h.url('home')}"> + <img class="pull-left" src="${h.url('/images/kallithea-logo.svg')}" alt="Kallithea"/> + %if c.site_name: + <span class="branding">${c.site_name}</span> + %endif </a> + <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false"> + <span class="sr-only">Toggle navigation</span> + <span class="icon-bar"></span> + <span class="icon-bar"></span> + <span class="icon-bar"></span> + </button> </div> - <%block name="header_menu"/> + <div id="navbar" class="navbar-collapse collapse"> + <%block name="header_menu"/> + </div> </div> - </div> + </nav> ${next.body()}
--- a/kallithea/tests/functional/test_admin_settings.py Wed Sep 21 19:58:44 2016 +0200 +++ b/kallithea/tests/functional/test_admin_settings.py Tue Sep 20 19:03:37 2016 +0200 @@ -174,4 +174,4 @@ assert Setting.get_app_settings()['title'] == new_title.decode('utf-8') response = response.follow() - response.mustcontain("""<div class="branding">%s</div>""" % new_title) + response.mustcontain("""<span class="branding">%s</span>""" % new_title)