##// END OF EJS Templates
iterate over repos groups for bool() calls to actually work on it....
iterate over repos groups for bool() calls to actually work on it. fixes some issues with correctly displaying if there are no groups you have permission to.

File last commit:

r3410:5f1850e4 beta
r3418:9fe4543b beta
Show More
base.html
390 lines | 16.8 KiB | text/html | HtmlLexer
## -*- coding: utf-8 -*-
<%inherit file="root.html"/>
<!-- HEADER -->
<div id="header-dd"></div>
<div id="header">
<div id="header-inner" class="title">
<div id="logo">
<h1><a href="${h.url('home')}">${c.rhodecode_name}</a></h1>
</div>
<!-- MENU -->
${self.page_nav()}
<!-- END MENU -->
${self.body()}
</div>
</div>
<!-- END HEADER -->
<!-- CONTENT -->
<div id="content">
<div class="flash_msg">
<% messages = h.flash.pop_messages() %>
% if messages:
<ul id="flash-messages">
% for message in messages:
<li class="${message.category}_msg">${message}</li>
% endfor
</ul>
% endif
</div>
<div id="main">
${next.main()}
</div>
</div>
<!-- END CONTENT -->
<!-- FOOTER -->
<div id="footer">
<div id="footer-inner" class="title">
<div>
<p class="footer-link">
<a href="${h.url('bugtracker')}">${_('Submit a bug')}</a>
</p>
<p class="footer-link-right">
<a href="${h.url('rhodecode_official')}">RhodeCode${'-%s' % c.rhodecode_instanceid if c.rhodecode_instanceid else ''}</a>
${c.rhodecode_version} &copy; 2010-${h.datetime.today().year} by Marcin Kuzminski
</p>
</div>
</div>
</div>
<!-- END FOOTER -->
### MAKO DEFS ###
<%def name="page_nav()">
${self.menu()}
</%def>
<%def name="breadcrumbs()">
<div class="breadcrumbs">
${self.breadcrumbs_links()}
</div>
</%def>
<%def name="usermenu()">
## USER MENU
<li>
<a class="menu_link" id="quick_login_link">
<span class="icon" style="padding:5px 5px 0px 5px">
<img src="${h.gravatar_url(c.rhodecode_user.email,20)}" alt="avatar">
</span>
%if c.rhodecode_user.username != 'default':
<span class="menu_link_user">${c.rhodecode_user.username}</span>
%if c.unread_notifications != 0:
<span class="menu_link_notifications">${c.unread_notifications}</span>
%endif
%else:
<span>${_('Not logged in')}</span>
%endif
</a>
<div class="user-menu">
<div id="quick_login">
%if c.rhodecode_user.username == 'default':
<h4>${_('Login to your account')}</h4>
${h.form(h.url('login_home',came_from=h.url.current()))}
<div class="form">
<div class="fields">
<div class="field">
<div class="label">
<label for="username">${_('Username')}:</label>
</div>
<div class="input">
${h.text('username',class_='focus',size=40)}
</div>
</div>
<div class="field">
<div class="label">
<label for="password">${_('Password')}:</label>
</div>
<div class="input">
${h.password('password',class_='focus',size=40)}
</div>
</div>
<div class="buttons">
<div class="password_forgoten">${h.link_to(_('Forgot password ?'),h.url('reset_password'))}</div>
<div class="register">
%if h.HasPermissionAny('hg.admin', 'hg.register.auto_activate', 'hg.register.manual_activate')():
${h.link_to(_("Don't have an account ?"),h.url('register'))}
%endif
</div>
<div class="submit">
${h.submit('sign_in',_('Log In'),class_="ui-btn xsmall")}
</div>
</div>
</div>
</div>
${h.end_form()}
%else:
<div class="links_left">
<div class="full_name">${c.rhodecode_user.full_name_or_username}</div>
<div class="email">${c.rhodecode_user.email}</div>
<div class="big_gravatar"><img alt="gravatar" src="${h.gravatar_url(c.rhodecode_user.email,48)}" /></div>
<div class="notifications"><a href="${h.url('notifications')}">${_('Notifications')}</a></div>
<div class="unread"><a href="${h.url('notifications')}">${_('Unread')}: ${c.unread_notifications}</a></div>
</div>
<div class="links_right">
<ol class="links">
<li>${h.link_to(_(u'Home'),h.url('home'))}</li>
<li>${h.link_to(_(u'Journal'),h.url('journal'))}</li>
<li>${h.link_to(_(u'My account'),h.url('admin_settings_my_account'))}</li>
<li class="logout">${h.link_to(_(u'Log Out'),h.url('logout_home'))}</li>
</ol>
</div>
%endif
</div>
</div>
</li>
</%def>
<%def name="menu(current=None)">
<%
def is_current(selected):
if selected == current:
return h.literal('class="current"')
%>
<ul id="quick">
<!-- repo switcher -->
<li ${is_current('home')}>
<a class="menu_link" id="repo_switcher" title="${_('Switch repository')}" href="${h.url('home')}">
<span class="icon">
<img src="${h.url('/images/icons/database.png')}" alt="${_('Products')}" />
</span>
<span>${_('Repositories')}</span>
</a>
<ul id="repo_switcher_list" class="repo_switcher">
<li>
<a href="#">${_('loading...')}</a>
</li>
</ul>
</li>
## we render this menu only not for those pages
%if current not in ['home','admin', 'search', 'journal']:
##REGULAR MENU
<li ${is_current('summary')}>
<a class="menu_link" title="${_('Summary page')}" href="${h.url('summary_home',repo_name=c.repo_name)}">
<span class="icon">
<img src="${h.url('/images/icons/clipboard_16.png')}" alt="${_('Summary')}" />
</span>
<span>${_('Summary')}</span>
</a>
</li>
<li ${is_current('changelog')}>
<a class="menu_link" title="${_('Changeset list')}" href="${h.url('changelog_home',repo_name=c.repo_name)}">
<span class="icon">
<img src="${h.url('/images/icons/time.png')}" alt="${_('Changelog')}" />
</span>
<span>${_('Changelog')}</span>
</a>
</li>
<li ${is_current('switch_to')}>
<a class="menu_link" id="branch_tag_switcher" title="${_('Switch to')}" href="#">
<span class="icon">
<img src="${h.url('/images/icons/arrow_switch.png')}" alt="${_('Switch to')}" />
</span>
<span>${_('Switch to')}</span>
</a>
<ul id="switch_to_list" class="switch_to">
<li><a href="#">${_('loading...')}</a></li>
</ul>
</li>
<li ${is_current('files')}>
<a class="menu_link" title="${_('Show repository content')}" href="${h.url('files_home',repo_name=c.repo_name)}">
<span class="icon">
<img src="${h.url('/images/icons/file.png')}" alt="${_('Files')}" />
</span>
<span>${_('Files')}</span>
</a>
</li>
<li ${is_current('options')}>
<a class="menu_link" title="${_('Options')}" href="#">
<span class="icon">
<img src="${h.url('/images/icons/table_gear.png')}" alt="${_('Admin')}" />
</span>
<span>${_('Options')}</span>
</a>
<ul>
%if h.HasRepoPermissionAll('repository.admin')(c.repo_name):
%if h.HasPermissionAll('hg.admin')('access settings on repository'):
<li>${h.link_to(_('repository settings'),h.url('edit_repo',repo_name=c.repo_name),class_='settings')}</li>
%else:
<li>${h.link_to(_('repository settings'),h.url('repo_settings_home',repo_name=c.repo_name),class_='settings')}</li>
%endif
%endif
<li>${h.link_to(_('fork'),h.url('repo_fork_home',repo_name=c.repo_name),class_='fork')}</li>
%if h.is_hg(c.rhodecode_repo):
<li>${h.link_to(_('open new pull request'),h.url('pullrequest_home',repo_name=c.repo_name),class_='pull_request')}</li>
%endif
%if c.rhodecode_db_repo.fork:
<li>${h.link_to(_('compare fork'),h.url('compare_url',repo_name=c.rhodecode_db_repo.fork.repo_name,org_ref_type='branch',org_ref='default',other_repo=c.repo_name,other_ref_type='branch',other_ref=request.GET.get('branch') or 'default'),class_='compare_request')}</li>
%endif
<li>${h.link_to(_('lightweight changelog'),h.url('shortlog_home',repo_name=c.repo_name),class_='shortlog')}</li>
<li>${h.link_to(_('search'),h.url('search_repo',repo_name=c.repo_name),class_='search')}</li>
%if h.HasRepoPermissionAny('repository.write','repository.admin')(c.repo_name) and c.rhodecode_db_repo.enable_locking:
%if c.rhodecode_db_repo.locked[0]:
<li>${h.link_to(_('unlock'), h.url('toggle_locking',repo_name=c.repo_name),class_='locking_del')}</li>
%else:
<li>${h.link_to(_('lock'), h.url('toggle_locking',repo_name=c.repo_name),class_='locking_add')}</li>
%endif
%endif
% if h.HasPermissionAll('hg.admin')('access admin main page'):
<li>
${h.link_to(_('admin'),h.url('admin_home'),class_='admin')}
<%def name="admin_menu()">
<ul>
<li>${h.link_to(_('admin journal'),h.url('admin_home'),class_='journal')}</li>
<li>${h.link_to(_('repositories'),h.url('repos'),class_='repos')}</li>
<li>${h.link_to(_('repository groups'),h.url('repos_groups'),class_='repos_groups')}</li>
<li>${h.link_to(_('users'),h.url('users'),class_='users')}</li>
<li>${h.link_to(_('user groups'),h.url('users_groups'),class_='groups')}</li>
<li>${h.link_to(_('permissions'),h.url('edit_permission',id='default'),class_='permissions')}</li>
<li>${h.link_to(_('ldap'),h.url('ldap_home'),class_='ldap')}</li>
<li>${h.link_to(_('defaults'),h.url('defaults'),class_='defaults')}</li>
<li class="last">${h.link_to(_('settings'),h.url('admin_settings'),class_='settings')}</li>
</ul>
</%def>
## ADMIN MENU
${admin_menu()}
</li>
## if you're a admin of any groups, show admin menu for it
% elif c.rhodecode_user.groups_admin:
<li>
${h.link_to(_('admin'),h.url('admin_home'),class_='admin')}
<%def name="admin_menu_simple()">
<ul>
<li>${h.link_to(_('repository groups'),h.url('repos_groups'),class_='repos_groups')}</li>
</ul>
</%def>
## ADMIN MENU
${admin_menu_simple()}
</li>
% endif
</ul>
</li>
<li>
<a class="menu_link" title="${_('Followers')}" href="${h.url('repo_followers_home',repo_name=c.repo_name)}">
<span class="icon_short">
<img src="${h.url('/images/icons/heart.png')}" alt="${_('Followers')}" />
</span>
<span id="current_followers_count" class="short">${c.repository_followers}</span>
</a>
</li>
<li>
<a class="menu_link" title="${_('Forks')}" href="${h.url('repo_forks_home',repo_name=c.repo_name)}">
<span class="icon_short">
<img src="${h.url('/images/icons/arrow_divide.png')}" alt="${_('Forks')}" />
</span>
<span class="short">${c.repository_forks}</span>
</a>
</li>
<li>
<a class="menu_link" title="${_('Pull requests')}" href="${h.url('pullrequest_show_all',repo_name=c.repo_name)}">
<span class="icon_short">
<img src="${h.url('/images/icons/arrow_join.png')}" alt="${_('Pull requests')}" />
</span>
<span class="short">${c.repository_pull_requests}</span>
</a>
</li>
${usermenu()}
<script type="text/javascript">
YUE.on('branch_tag_switcher','mouseover',function(){
var loaded = YUD.hasClass('branch_tag_switcher','loaded');
if(!loaded){
YUD.addClass('branch_tag_switcher','loaded');
ypjax("${h.url('branch_tag_switcher',repo_name=c.repo_name)}",'switch_to_list',
function(o){},
function(o){YUD.removeClass('branch_tag_switcher','loaded');}
,null);
}
return false;
});
</script>
%else:
##ROOT MENU
%if c.rhodecode_user.username != 'default':
<li ${is_current('journal')}>
<a class="menu_link" title="${_('Show recent activity')}" href="${h.url('journal')}">
<span class="icon">
<img src="${h.url('/images/icons/book.png')}" alt="${_('Journal')}" />
</span>
<span>${_('Journal')}</span>
</a>
</li>
%else:
<li ${is_current('journal')}>
<a class="menu_link" title="${_('Public journal')}" href="${h.url('public_journal')}">
<span class="icon">
<img src="${h.url('/images/icons/book.png')}" alt="${_('Public journal')}" />
</span>
<span>${_('Public journal')}</span>
</a>
</li>
%endif
<li ${is_current('search')}>
<a class="menu_link" title="${_('Search in repositories')}" href="${h.url('search')}">
<span class="icon">
<img src="${h.url('/images/icons/search_16.png')}" alt="${_('Search')}" />
</span>
<span>${_('Search')}</span>
</a>
</li>
% if h.HasPermissionAll('hg.admin')('access admin main page'):
<li ${is_current('admin')}>
<a class="menu_link" title="${_('Admin')}" href="${h.url('admin_home')}">
<span class="icon">
<img src="${h.url('/images/icons/cog_edit.png')}" alt="${_('Admin')}" />
</span>
<span>${_('Admin')}</span>
</a>
${admin_menu()}
</li>
% elif c.rhodecode_user.groups_admin:
<li ${is_current('admin')}>
<a class="menu_link" title="${_('Admin')}" href="${h.url('admin_home')}">
<span class="icon">
<img src="${h.url('/images/icons/cog_edit.png')}" alt="${_('Admin')}" />
</span>
<span>${_('Admin')}</span>
</a>
${admin_menu_simple()}
</li>
% endif
${usermenu()}
%endif
<script type="text/javascript">
YUE.on('repo_switcher','mouseover',function(){
var target = 'q_filter_rs';
var qfilter_activate = function(){
var nodes = YUQ('ul#repo_switcher_list li a.repo_name');
var func = function(node){
return node.parentNode;
}
q_filter(target,nodes,func);
}
var loaded = YUD.hasClass('repo_switcher','loaded');
if(!loaded){
YUD.addClass('repo_switcher','loaded');
ypjax("${h.url('repo_switcher')}",'repo_switcher_list',
function(o){qfilter_activate();YUD.get(target).focus()},
function(o){YUD.removeClass('repo_switcher','loaded');}
,null);
}else{
YUD.get(target).focus();
}
return false;
});
YUE.on('header-dd', 'click',function(e){
YUD.addClass('header-inner', 'hover');
YUD.addClass('content', 'hover');
});
</script>
</%def>