/*** Initial Settings ***/
#mainhtml{
margin: 15px 50px;
background: #DBD4C6;
font-family: sans-serif;
}
#mainhtml .breadcrumbs a:HOVER{
text-decoration: underline;
a {
color: #556CB5;
text-decoration: none;
a:HOVER{
/*** end of Initial Settings ***/
/*** ***/
.table_disp {
border-left: 0px solid #666666;
border-bottom: 1px solid #666666;
border-right: 1px solid #666666;
padding: 0px;
margin: 0px;
border-spacing: 0px;
.table_disp .header {
border-top: 1px solid #666666;
background-color: #556CB5;
font-weight: bold;
color: white;
vertical-align: middle;
padding: 3px 5px;
text-align: left;
font-size: 0.9em;
.table_disp .header td {
padding: 4px;
border-top: 1px solid #AAAAAA;
border-bottom: 2px solid #666666;
.table_disp td {
border-left: 1px solid #AAAAAA;
padding-left: 4px;
padding-right: 4px;
table tr.parity0:hover,table tr.parity1:hover {
background: #D5E1E6;
table tr.parity0 {
background: #EAEAE9;
table tr.parity1 {
background: #FFFFFF;
/** common settings **/
.add_icon{
background: url("/images/icons/add.png") no-repeat scroll 3px;
height: 16px;
padding-left: 20px;
padding-top: 0px;
.edit_icon{
background: url("/images/icons/folder_edit.png") no-repeat scroll 3px;
.delete_icon{
background: url("/images/icons/delete.png") no-repeat scroll 3px;
.action_button{
border:0px;
display: block;
.action_button:hover{
font-style:italic;
cursor: pointer;
.flash_msg ul{
margin:0;
padding:25px 0px 0px 0px;
.error_msg {
background-color:#FFCFCF;
background-image: url("/images/icons/error_msg.png");
border:1px solid #FF9595;
color:#CC3300;
.warning_msg {
background-color:#FFFBCC;
background-image: url("/images/icons/warning_msg.png");
border:1px solid #FFF35E;
color:#C69E00;
.success_msg {
background-color:#D5FFCF;
background-image: url("/images/icons/success_msg.png");
border:1px solid #97FF88;
color:#009900;
.notice_msg {
background-color:#DCE3FF;
background-image: url("/images/icons/notice_msg.png");
border:1px solid #93A8FF;
color:#556CB5;
.success_msg, .error_msg, .notice_msg, .warning_msg{
background-position:10px center;
background-repeat:no-repeat;
font-size:12px;
font-weight:bold;
min-height:14px;
line-height:14px;
margin-bottom:0px;
margin-top:0px;
padding:3px 10px 3px 40px;
display:block;
overflow: auto;
#msg_close {
background:transparent url("icons/cross_grey_small.png") no-repeat scroll 0 0;
cursor:pointer;
height:16px;
position:absolute;
right:5px;
top:5px;
width:16px;
.error-message{
/**** Tooltip ****/
.yui-overlay,
.yui-panel-container {
visibility:hidden;
z-index: 2;
.yui-tt {
color:#666666;
background-color:#FFFFFF;
font-family:arial,helvetica,verdana,sans-serif;
padding:8px;
border:2px solid #556CB5;
font:100% sans-serif;
width:auto;
opacity:1.0;
.yui-tt-shadow {
display: none;
/** end of Tooltip **/
div#main {
padding: 5px;
div#container {
position: relative;
color: #666;
div.page-header {
padding: 50px 20px 0;
background: #556cb5 top left repeat-x;
div.page-header h1 {
margin: 10px 0 30px;
font-size: 1.8em;
letter-spacing: 1px;
color: #FFFFFF;
div.page-header h1 a {
div.page-header a {
div.page-header form {
position: absolute;
margin-bottom: 2px;
bottom: 0;
right: 20px;
div.page-header form label {
color: #DDD;
div.page-header form input {
padding: 2px;
border: solid 1px #DDD;
div.page-header form dl {
overflow: hidden;
div.page-header form dl dt {
font-size: 1.2em;
div.page-header form dl dt,div.page-header form dl dd {
margin: 0 0 0 5px;
float: left;
height: 24px;
line-height: 20px;
ul.page-nav {
margin: 10px 0 0 0;
list-style-type: none;
width: 800px;
padding: 0;
ul.page-nav li {
margin: 0 4px 0 0;
font-size: 1.1em;
line-height: 24px;
text-align: center;
background: #556CB5;
ul.page-nav li.current {
background: #FFF;
padding-right: 5px;
padding-left: 5px;
ul.page-nav li.current a {
ul.page-nav li a {
color: #FFF;
ul.page-nav li.logout a {
color: #FDAC9D;
ul.page-nav li a:hover {
ul.submenu {
margin: 5px 0px -20px 0px;
ul.submenu li {
margin: 0 10px 0 0;
display: inline;
ul.submenu .repos {
ul.submenu .users {
background: url("/images/icons/user_edit.png") no-repeat scroll 3px;
ul.submenu .permissions {
background: url("/images/icons/folder_key.png") no-repeat scroll 3px;
ul.submenu .current_submenu {
border-bottom: 2px solid #556CB5;
h2 {
margin: 20px 0 10px;
height: 30px;
line-height: 30px;
text-indent: 20px;
border-top: dotted 1px #D5E1E6;
h2.no-link {
color: #006699;
h2.no-border {
border: 0;
h2 a {
div.page-path {
text-align: right;
padding: 20px 30px 10px 0;
border: solid #d9d8d1;
border-width: 0px 0px 1px;
div.page-footer {
margin: 50px 0 0;
font-size: 90%;
div.page-footer p {
left: 20px;
bottom: 5px;
ul.rss-logo {
top: -10px;
height: 20px;
ul.rss-logo li {
## -*- 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>
<h1 class="breadcrumbs">${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()}
<script type="text/javascript">${h.tooltip.activate()}</script>
<div class="page-footer">
Hg App ${c.hg_app_version} © 2010 by Marcin Kuzminski
<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 id="corner-top-left"></div>
<div id="corner-top-right"></div>
<div id="corner-bottom-left"></div>
<div id="corner-bottom-right"></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>
</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>
%else:
##Root menu
<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>
%endif
<%def name="submenu(current=None)">
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>
<%def name="css()">
<link rel="stylesheet" href="/css/monoblue_custom.css" type="text/css" />
<%def name="js()">
<script type="text/javascript" src="/js/yui/utilities/utilities.js"></script>
<script type="text/javascript" src="/js/yui/container/container-min.js"></script>
<!-- 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>
\ No newline at end of file
Status change: