base.html
400 lines
| 16.3 KiB
| text/html
|
HtmlLexer
r547 | ## -*- coding: utf-8 -*- | ||
r1157 | <%inherit file="root.html"/> | ||
<!-- HEADER --> | |||
<div id="header"> | |||
<!-- user --> | |||
<ul id="logged-user"> | |||
<li class="first"> | |||
r1316 | |||
<div id="quick_login" style="display:none"> | |||
${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"> | |||
r1417 | <div class="password_forgoten">${h.link_to(_('Forgot password ?'),h.url('reset_password'))}</div>${h.submit('sign_in','Sign In',class_="ui-button")} | ||
r1316 | </div> | ||
</div> | |||
</div> | |||
${h.end_form()} | |||
r1318 | <script type="text/javascript"> | ||
YUE.on('quick_login_link','click',function(e){ | |||
if(YUD.hasClass('quick_login_link','enabled')){ | |||
YUD.setStyle('quick_login','display','none'); | |||
YUD.removeClass('quick_login_link','enabled'); | |||
} | |||
else{ | |||
YUD.setStyle('quick_login','display',''); | |||
YUD.addClass('quick_login_link','enabled'); | |||
r1319 | YUD.get('username').focus(); | ||
r1318 | } | ||
//make sure we don't redirect | |||
YUE.preventDefault(e); | |||
}); | |||
</script> | |||
r1316 | </div> | ||
r1157 | <div class="gravatar"> | ||
<img alt="gravatar" src="${h.gravatar_url(c.rhodecode_user.email,20)}" /> | |||
</div> | |||
<div class="account"> | |||
%if c.rhodecode_user.username == 'default': | |||
<a href="${h.url('public_journal')}">${_('Public journal')}</a> | |||
%else: | |||
${h.link_to(c.rhodecode_user.username,h.url('admin_settings_my_account'),title='%s %s'%(c.rhodecode_user.name,c.rhodecode_user.lastname))} | |||
%endif | |||
</div> | |||
</li> | |||
<li> | |||
<a href="${h.url('home')}">${_('Home')}</a> | |||
</li> | |||
%if c.rhodecode_user.username != 'default': | |||
<li> | |||
<a href="${h.url('journal')}">${_('Journal')}</a> | |||
##(${c.unread_journal} | |||
</li> | |||
%endif | |||
%if c.rhodecode_user.username == 'default': | |||
r1318 | <li class="last highlight">${h.link_to(u'Login',h.url('login_home'),id='quick_login_link')}</li> | ||
r1157 | %else: | ||
<li class="last highlight">${h.link_to(u'Log Out',h.url('logout_home'))}</li> | |||
%endif | |||
</ul> | |||
<!-- end user --> | |||
<div id="header-inner" class="title top-left-rounded-corner top-right-rounded-corner"> | |||
<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 | |||
r547 | </ul> | ||
r1157 | % endif | ||
</div> | |||
<div id="main"> | |||
${next.main()} | |||
</div> | |||
</div> | |||
<!-- END CONTENT --> | |||
r547 | |||
r1157 | <!-- FOOTER --> | ||
<div id="footer"> | |||
<div id="footer-inner" class="title bottom-left-rounded-corner bottom-right-rounded-corner"> | |||
<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</a> | |||
${c.rhodecode_version} © 2010-${h.datetime.today().year} by Marcin Kuzminski | |||
</p> | |||
</div> | |||
</div> | |||
<script type="text/javascript"> | |||
function tooltip_activate(){ | |||
${h.tooltip.activate()} | |||
} | |||
tooltip_activate(); | |||
</script> | |||
</div> | |||
<!-- END FOOTER --> | |||
r547 | |||
r1157 | ### MAKO DEFS ### | ||
<%def name="page_nav()"> | |||
${self.menu()} | |||
</%def> | |||
r547 | |||
r1157 | <%def name="breadcrumbs()"> | ||
<div class="breadcrumbs"> | |||
${self.breadcrumbs_links()} | |||
</div> | |||
r547 | </%def> | ||
r1157 | |||
r547 | <%def name="menu(current=None)"> | ||
<% | |||
def is_current(selected): | |||
if selected == current: | |||
return h.literal('class="current"') | |||
%> | |||
%if current not in ['home','admin']: | |||
##REGULAR MENU | |||
<ul id="quick"> | |||
<!-- repo switcher --> | |||
<li> | |||
<a id="repo_switcher" title="${_('Switch repository')}" href="#"> | |||
<span class="icon"> | |||
r1316 | <img src="${h.url('/images/icons/database.png')}" alt="${_('Products')}" /> | ||
r547 | </span> | ||
<span>↓</span> | |||
</a> | |||
r1158 | <ul id="repo_switcher_list" class="repo_switcher"> | ||
<li> | |||
<a href="#">${_('loading...')}</a> | |||
</li> | |||
</ul> | |||
<script type="text/javascript"> | |||
YUE.on('repo_switcher','mouseover',function(){ | |||
r1263 | function qfilter(){ | ||
var S = YAHOO.util.Selector; | |||
var q_filter = YUD.get('q_filter_rs'); | |||
var F = YAHOO.namespace('q_filter_rs'); | |||
YUE.on(q_filter,'click',function(){ | |||
q_filter.value = ''; | |||
}); | |||
F.filterTimeout = null; | |||
F.updateFilter = function() { | |||
// Reset timeout | |||
F.filterTimeout = null; | |||
var obsolete = []; | |||
var nodes = S.query('ul#repo_switcher_list li a.repo_name'); | |||
var req = YUD.get('q_filter_rs').value; | |||
for (n in nodes){ | |||
YUD.setStyle(nodes[n].parentNode,'display','') | |||
} | |||
if (req){ | |||
for (n in nodes){ | |||
console.log(n); | |||
if (nodes[n].innerHTML.toLowerCase().indexOf(req) == -1) { | |||
obsolete.push(nodes[n]); | |||
} | |||
} | |||
if(obsolete){ | |||
for (n in obsolete){ | |||
YUD.setStyle(obsolete[n].parentNode,'display','none'); | |||
} | |||
} | |||
} | |||
} | |||
YUE.on(q_filter,'keyup',function(e){ | |||
clearTimeout(F.filterTimeout); | |||
setTimeout(F.updateFilter,600); | |||
}); | |||
} | |||
r1158 | var loaded = YUD.hasClass('repo_switcher','loaded'); | ||
if(!loaded){ | |||
YUD.addClass('repo_switcher','loaded'); | |||
YAHOO.util.Connect.asyncRequest('GET',"${h.url('repo_switcher')}",{ | |||
success:function(o){ | |||
YUD.get('repo_switcher_list').innerHTML = o.responseText; | |||
r1263 | qfilter(); | ||
r1158 | }, | ||
failure:function(o){ | |||
YUD.removeClass('repo_switcher','loaded'); | |||
} | |||
},null); | |||
} | |||
return false; | |||
}); | |||
</script> | |||
r547 | </li> | ||
<li ${is_current('summary')}> | |||
<a title="${_('Summary')}" href="${h.url('summary_home',repo_name=c.repo_name)}"> | |||
<span class="icon"> | |||
r1318 | <img src="${h.url('/images/icons/clipboard_16.png')}" alt="${_('Summary')}" /> | ||
r547 | </span> | ||
<span>${_('Summary')}</span> | |||
</a> | |||
</li> | |||
r637 | ##<li ${is_current('shortlog')}> | ||
## <a title="${_('Shortlog')}" href="${h.url('shortlog_home',repo_name=c.repo_name)}"> | |||
## <span class="icon"> | |||
r1051 | ## <img src="${h.url("/images/icons/application_view_list.png")}" alt="${_('Shortlog')}" /> | ||
r637 | ## </span> | ||
## <span>${_('Shortlog')}</span> | |||
## </a> | |||
##</li> | |||
r547 | <li ${is_current('changelog')}> | ||
<a title="${_('Changelog')}" href="${h.url('changelog_home',repo_name=c.repo_name)}"> | |||
<span class="icon"> | |||
r1318 | <img src="${h.url('/images/icons/time.png')}" alt="${_('Changelog')}" /> | ||
r547 | </span> | ||
<span>${_('Changelog')}</span> | |||
</a> | |||
</li> | |||
<li ${is_current('switch_to')}> | |||
<a title="${_('Switch to')}" href="#"> | |||
<span class="icon"> | |||
r1318 | <img src="${h.url('/images/icons/arrow_switch.png')}" alt="${_('Switch to')}" /> | ||
r547 | </span> | ||
<span>${_('Switch to')}</span> | |||
</a> | |||
<ul> | |||
<li> | |||
r1045 | ${h.link_to('%s (%s)' % (_('branches'),len(c.rhodecode_repo.branches.values()),),h.url('branches_home',repo_name=c.repo_name),class_='branches childs')} | ||
r547 | <ul> | ||
r1045 | %if c.rhodecode_repo.branches.values(): | ||
%for cnt,branch in enumerate(c.rhodecode_repo.branches.items()): | |||
r636 | <li>${h.link_to('%s - %s' % (branch[0],h.short_id(branch[1])),h.url('files_home',repo_name=c.repo_name,revision=branch[1]))}</li> | ||
r547 | %endfor | ||
%else: | |||
<li>${h.link_to(_('There are no branches yet'),'#')}</li> | |||
%endif | |||
</ul> | |||
</li> | |||
<li> | |||
r1045 | ${h.link_to('%s (%s)' % (_('tags'),len(c.rhodecode_repo.tags.values()),),h.url('tags_home',repo_name=c.repo_name),class_='tags childs')} | ||
r547 | <ul> | ||
r1045 | %if c.rhodecode_repo.tags.values(): | ||
%for cnt,tag in enumerate(c.rhodecode_repo.tags.items()): | |||
r636 | <li>${h.link_to('%s - %s' % (tag[0],h.short_id(tag[1])),h.url('files_home',repo_name=c.repo_name,revision=tag[1]))}</li> | ||
r547 | %endfor | ||
%else: | |||
<li>${h.link_to(_('There are no tags yet'),'#')}</li> | |||
%endif | |||
</ul> | |||
</li> | |||
</ul> | |||
</li> | |||
<li ${is_current('files')}> | |||
<a title="${_('Files')}" href="${h.url('files_home',repo_name=c.repo_name)}"> | |||
<span class="icon"> | |||
r1318 | <img src="${h.url('/images/icons/file.png')}" alt="${_('Files')}" /> | ||
r547 | </span> | ||
<span>${_('Files')}</span> | |||
</a> | |||
</li> | |||
<li ${is_current('options')}> | |||
<a title="${_('Options')}" href="#"> | |||
<span class="icon"> | |||
r1318 | <img src="${h.url('/images/icons/table_gear.png')}" alt="${_('Admin')}" /> | ||
r547 | </span> | ||
<span>${_('Options')}</span> | |||
</a> | |||
<ul> | |||
%if h.HasRepoPermissionAll('repository.admin')(c.repo_name): | |||
r917 | %if h.HasPermissionAll('hg.admin')('access settings on repository'): | ||
r916 | <li>${h.link_to(_('settings'),h.url('edit_repo',repo_name=c.repo_name),class_='settings')}</li> | ||
%else: | |||
<li>${h.link_to(_('settings'),h.url('repo_settings_home',repo_name=c.repo_name),class_='settings')}</li> | |||
%endif | |||
r1054 | %endif | ||
r547 | <li>${h.link_to(_('fork'),h.url('repo_fork_home',repo_name=c.repo_name),class_='fork')}</li> | ||
<li>${h.link_to(_('search'),h.url('search_repo',search_repo=c.repo_name),class_='search')}</li> | |||
r613 | |||
r1305 | % if h.HasPermissionAll('hg.admin')('access admin main page'): | ||
<li> | |||
r613 | ${h.link_to(_('admin'),h.url('admin_home'),class_='admin')} | ||
r769 | <%def name="admin_menu()"> | ||
r613 | <ul> | ||
<li>${h.link_to(_('journal'),h.url('admin_home'),class_='journal')}</li> | |||
<li>${h.link_to(_('repositories'),h.url('repos'),class_='repos')}</li> | |||
r1345 | <li>${h.link_to(_('repositories groups'),h.url('repos_groups'),class_='repos_groups')}</li> | ||
r613 | <li>${h.link_to(_('users'),h.url('users'),class_='users')}</li> | ||
r956 | <li>${h.link_to(_('users groups'),h.url('users_groups'),class_='groups')}</li> | ||
r613 | <li>${h.link_to(_('permissions'),h.url('edit_permission',id='default'),class_='permissions')}</li> | ||
r769 | <li>${h.link_to(_('ldap'),h.url('ldap_home'),class_='ldap')}</li> | ||
r613 | <li class="last">${h.link_to(_('settings'),h.url('admin_settings'),class_='settings')}</li> | ||
</ul> | |||
r769 | </%def> | ||
${admin_menu()} | |||
r1305 | </li> | ||
% endif | |||
r547 | </ul> | ||
</li> | |||
r747 | |||
<li> | |||
r1279 | <a title="${_('Followers')}" href="${h.url('repo_followers_home',repo_name=c.repo_name)}"> | ||
r747 | <span class="icon_short"> | ||
r1318 | <img src="${h.url('/images/icons/heart.png')}" alt="${_('Followers')}" /> | ||
r747 | </span> | ||
r1070 | <span id="current_followers_count" class="short">${c.repository_followers}</span> | ||
r747 | </a> | ||
</li> | |||
<li> | |||
r1301 | <a title="${_('Forks')}" href="${h.url('repo_forks_home',repo_name=c.repo_name)}"> | ||
r747 | <span class="icon_short"> | ||
r1318 | <img src="${h.url('/images/icons/arrow_divide.png')}" alt="${_('Forks')}" /> | ||
r747 | </span> | ||
<span class="short">${c.repository_forks}</span> | |||
</a> | |||
</li> | |||
r547 | </ul> | ||
%else: | |||
##ROOT MENU | |||
<ul id="quick"> | |||
<li> | |||
r636 | <a title="${_('Home')}" href="${h.url('home')}"> | ||
r547 | <span class="icon"> | ||
r1318 | <img src="${h.url('/images/icons/home_16.png')}" alt="${_('Home')}" /> | ||
r547 | </span> | ||
<span>${_('Home')}</span> | |||
</a> | |||
</li> | |||
r1305 | % if c.rhodecode_user.username != 'default': | ||
<li> | |||
r734 | <a title="${_('Journal')}" href="${h.url('journal')}"> | ||
<span class="icon"> | |||
r1318 | <img src="${h.url('/images/icons/book.png')}" alt="${_('Journal')}" /> | ||
r734 | </span> | ||
<span>${_('Journal')}</span> | |||
</a> | |||
r1305 | </li> | ||
% endif | |||
r734 | <li> | ||
r547 | <a title="${_('Search')}" href="${h.url('search')}"> | ||
<span class="icon"> | |||
r1318 | <img src="${h.url('/images/icons/search_16.png')}" alt="${_('Search')}" /> | ||
r547 | </span> | ||
<span>${_('Search')}</span> | |||
</a> | |||
</li> | |||
%if h.HasPermissionAll('hg.admin')('access admin main page'): | |||
<li ${is_current('admin')}> | |||
<a title="${_('Admin')}" href="${h.url('admin_home')}"> | |||
<span class="icon"> | |||
r1318 | <img src="${h.url('/images/icons/cog_edit.png')}" alt="${_('Admin')}" /> | ||
r547 | </span> | ||
<span>${_('Admin')}</span> | |||
r769 | </a> | ||
${admin_menu()} | |||
r547 | </li> | ||
%endif | |||
</ul> | |||
%endif | |||
</%def> |