|
|
## -*- coding: utf-8 -*-
|
|
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
|
|
<html xmlns="http://www.w3.org/1999/xhtml" id="mainhtml">
|
|
|
<head>
|
|
|
<link rel="icon" href="/images/hgicon.png" type="image/png" />
|
|
|
<meta name="robots" content="index, nofollow"/>
|
|
|
<title>${next.title()}</title>
|
|
|
##For future use yui reset for cross browser compatability.
|
|
|
##<link rel="stylesheet" href="/js/yui/reset-fonts-grids/reset-fonts-grids.css" type="text/css" />
|
|
|
${self.css()}
|
|
|
${self.js()}
|
|
|
</head>
|
|
|
|
|
|
<body class="mainbody">
|
|
|
<div id="container">
|
|
|
<div class="page-header">
|
|
|
<h1>${next.breadcrumbs()}</h1>
|
|
|
${self.page_nav()}
|
|
|
<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 class="page-footer">
|
|
|
Hg App ${c.hg_app_version} © 2010 by Marcin Kuzminski
|
|
|
</div>
|
|
|
|
|
|
<div id="powered-by">
|
|
|
<p>
|
|
|
<a href="http://mercurial.selenic.com/" title="Mercurial">
|
|
|
<img src="/images/hglogo.png" width="75" height="90" alt="mercurial"/></a>
|
|
|
</p>
|
|
|
</div>
|
|
|
|
|
|
<div id="corner-top-left"></div>
|
|
|
<div id="corner-top-right"></div>
|
|
|
<div id="corner-bottom-left"></div>
|
|
|
<div id="corner-bottom-right"></div>
|
|
|
|
|
|
</div>
|
|
|
</body>
|
|
|
</html>
|
|
|
|
|
|
### MAKO DEFS ###
|
|
|
|
|
|
<%def name="page_nav()">
|
|
|
${self.menu()}
|
|
|
${self.submenu()}
|
|
|
</%def>
|
|
|
|
|
|
<%def name="menu(current)">
|
|
|
<%
|
|
|
def is_current(selected):
|
|
|
if selected == current:
|
|
|
return "class='current'"
|
|
|
%>
|
|
|
%if current not in ['home','admin']:
|
|
|
##regular menu
|
|
|
<script type="text/javascript">
|
|
|
YAHOO.util.Event.onDOMReady(function(){
|
|
|
YAHOO.util.Event.addListener('repo_switcher','click',function(){
|
|
|
if(YAHOO.util.Dom.hasClass('repo_switcher','selected')){
|
|
|
YAHOO.util.Dom.setStyle('switch_repos','display','none');
|
|
|
YAHOO.util.Dom.setStyle('repo_switcher','background','');
|
|
|
YAHOO.util.Dom.removeClass('repo_switcher','selected');
|
|
|
YAHOO.util.Dom.get('repo_switcher').removeAttribute('style');
|
|
|
}
|
|
|
else{
|
|
|
YAHOO.util.Dom.setStyle('switch_repos','display','');
|
|
|
YAHOO.util.Dom.setStyle('repo_switcher','background','#FFFFFF');
|
|
|
YAHOO.util.Dom.setStyle('repo_switcher','color','#556CB5');
|
|
|
YAHOO.util.Dom.addClass('repo_switcher','selected');
|
|
|
}
|
|
|
});
|
|
|
YAHOO.util.Event.addListener('repos_list','change',function(e){
|
|
|
var wa = YAHOO.util.Dom.get('repos_list').value;
|
|
|
|
|
|
var url = "${h.url('summary_home',repo_name='__REPLACE__')}".replace('__REPLACE__',wa);
|
|
|
window.location = url;
|
|
|
})
|
|
|
});
|
|
|
</script>
|
|
|
<ul class="page-nav">
|
|
|
<li>
|
|
|
<a id="repo_switcher" title="${_('Switch repository')}" href="#">↓</a>
|
|
|
<div id="switch_repos" style="display:none;position: absolute;height: 25px">
|
|
|
<select id="repos_list" size="=10" style="min-width: 150px">
|
|
|
%for repo in sorted(x.name.lower() for x in c.cached_repo_list.values()):
|
|
|
<option value="${repo}">${repo}</option>
|
|
|
%endfor
|
|
|
</select>
|
|
|
</div>
|
|
|
</li>
|
|
|
<li ${is_current('summary')}>${h.link_to(_('summary'),h.url('summary_home',repo_name=c.repo_name))}</li>
|
|
|
<li ${is_current('shortlog')}>${h.link_to(_('shortlog'),h.url('shortlog_home',repo_name=c.repo_name))}</li>
|
|
|
<li ${is_current('changelog')}>${h.link_to(_('changelog'),h.url('changelog_home',repo_name=c.repo_name))}</li>
|
|
|
<li ${is_current('branches')}>${h.link_to(_('branches'),h.url('branches_home',repo_name=c.repo_name))}</li>
|
|
|
<li ${is_current('tags')}>${h.link_to(_('tags'),h.url('tags_home',repo_name=c.repo_name))}</li>
|
|
|
<li ${is_current('files')}>${h.link_to(_('files'),h.url('files_home',repo_name=c.repo_name))}</li>
|
|
|
</ul>
|
|
|
%else:
|
|
|
##Root menu
|
|
|
<ul class="page-nav">
|
|
|
<li ${is_current('home')}>${h.link_to(_('Home'),h.url('/'))}</li>
|
|
|
<li ${is_current('admin')}>${h.link_to(_('Admin'),h.url('admin_home'))}</li>
|
|
|
<li class="logout">${h.link_to(u'Logout',h.url('logout_home'))}</li>
|
|
|
</ul>
|
|
|
%endif
|
|
|
</div>
|
|
|
</%def>
|
|
|
<%def name="submenu(current=None)">
|
|
|
<%
|
|
|
def is_current(selected):
|
|
|
if selected == current:
|
|
|
return "class='current_submenu'"
|
|
|
%>
|
|
|
%if current != None:
|
|
|
<div>
|
|
|
<ul class="submenu">
|
|
|
<li ${is_current('repos')}>${h.link_to(u'repos',h.url('repos'),class_='repos')}</li>
|
|
|
<li ${is_current('users')}>${h.link_to(u'users',h.url('users'),class_='users')}</li>
|
|
|
<li ${is_current('permissions')}>${h.link_to(u'permissions',h.url('permissions'),class_='permissions')}</li>
|
|
|
</ul>
|
|
|
</div>
|
|
|
%endif
|
|
|
</%def>
|
|
|
|
|
|
|
|
|
<%def name="css()">
|
|
|
<link rel="stylesheet" href="/css/monoblue_custom.css" type="text/css" />
|
|
|
</%def>
|
|
|
|
|
|
<%def name="js()">
|
|
|
<script type="text/javascript" src="/js/yui/utilities/utilities.js"></script>
|
|
|
</%def>
|
|
|
|
|
|
<!-- DEFINITION OF FORM ERROR FETCHER -->
|
|
|
<%def name="get_form_error(element)">
|
|
|
%if hasattr(c,'form_errors') and type(c.form_errors) == dict:
|
|
|
%if c.form_errors.get(element,False):
|
|
|
<span class="error-message">
|
|
|
${c.form_errors.get(element,'')}
|
|
|
</span>
|
|
|
%endif
|
|
|
%endif
|
|
|
</%def>
|