@@ -1047,806 +1047,818 @@ padding:6px 12px;
div.form div.fields div.field div.highlight .ui-state-hover {
background:#46a0c1 url("../images/button_highlight_selected.png") repeat-x;
border-top:1px solid #78acbf;
border-left:1px solid #34819e;
border-right:1px solid #35829f;
border-bottom:1px solid #257897;
color:#FFF;
margin:0;
padding:6px 12px;
}
#content div.box div.form div.fields div.buttons div.highlight input.ui-button {
background:#4e85bb url("../images/button_highlight.png") repeat-x;
border-top:1px solid #5c91a4;
border-left:1px solid #2a6f89;
border-right:1px solid #2b7089;
border-bottom:1px solid #1a6480;
color:#fff;
#content div.box div.form div.fields div.buttons div.highlight input.ui-state-hover {
#content div.box table {
width:100%;
border-collapse:collapse;
padding:0;
#content div.box table th {
background:#eee;
border-bottom:1px solid #ddd;
padding:5px 0px 5px 5px;
#content div.box table th.left {
text-align:left;
#content div.box table th.right {
text-align:right;
#content div.box table th.center {
text-align:center;
#content div.box table th.selected {
vertical-align:middle;
#content div.box table td {
background:#fff;
border-bottom:1px solid #cdcdcd;
padding:5px;
#content div.box table tr.selected td {
background:#FFC;
#content div.box table td.selected {
width:3%;
#content div.box table td.action {
width:45%;
#content div.box table td.date {
width:33%;
#content div.box div.action {
float:right;
background:#FFF;
margin:10px 0 0;
#content div.box div.action select {
font-family:Lucida Grande, Verdana, Lucida Sans Regular, Lucida Sans Unicode, Arial, sans-serif;
font-size:11px;
#content div.box div.action .ui-selectmenu {
#content div.box div.pagination {
height:1%;
clear:both;
overflow:hidden;
#content div.box div.pagination ul.pager {
#content div.box div.pagination ul.pager li {
float:left;
list-style:none;
background:#ebebeb url("../images/pager.png") repeat-x;
border-top:1px solid #dedede;
border-left:1px solid #cfcfcf;
border-right:1px solid #c4c4c4;
border-bottom:1px solid #c4c4c4;
color:#4A4A4A;
font-weight:700;
margin:0 0 0 4px;
#content div.box div.pagination ul.pager li.separator {
padding:6px;
#content div.box div.pagination ul.pager li.current {
background:#b4b4b4 url("../images/pager_selected.png") repeat-x;
border-top:1px solid #ccc;
border-left:1px solid #bebebe;
border-right:1px solid #b1b1b1;
border-bottom:1px solid #afafaf;
color:#515151;
#content div.box div.pagination ul.pager li a {
display:block;
text-decoration:none;
#content div.box div.pagination ul.pager li a:hover,#content div.box div.pagination ul.pager li a:active {
margin:-1px;
#content div.box div.pagination-wh {
#content div.box div.pagination-right {
#content div.box div.pagination-wh a,#content div.box div.pagination-wh span.pager_dotdot {
#content div.box div.pagination-wh span.pager_curpage {
#content div.box div.pagination-wh a:hover,#content div.box div.pagination-wh a:active {
#content div.box div.traffic div.legend {
margin:0 0 10px;
padding:0 0 10px;
#content div.box div.traffic div.legend h6 {
border:none;
#content div.box div.traffic div.legend li {
padding:0 8px 0 4px;
#content div.box div.traffic div.legend li.visits {
border-left:12px solid #edc240;
#content div.box div.traffic div.legend li.pageviews {
border-left:12px solid #afd8f8;
#content div.box div.traffic table {
width:auto;
#content div.box div.traffic table td {
background:transparent;
padding:2px 3px 3px;
#content div.box div.traffic table td.legendLabel {
padding:0 3px 2px;
#summary{
#summary .desc{
white-space: pre;
width: 100%;
#summary .repo_name{
font-size: 1.6em;
font-weight: bold;
vertical-align: baseline;
clear:right
#footer {
padding:0 10px 4px;
margin:-10px 0 0;
#footer div#footer-inner {
background:url("../images/header_inner.png") repeat-x scroll 0 0 #003367;
border-top:2px solid #FFFFFF;
#footer div#footer-inner p {
padding:15px 25px 15px 0;
#footer div#footer-inner .footer-link {
padding-left:10px;
#footer div#footer-inner .footer-link a,#footer div#footer-inner .footer-link-right a {
#login div.title {
width:420px;
position:relative;
background:#003367 url("../images/header_inner.png") repeat-x;
margin:0 auto;
#login div.inner {
width:380px;
background:#FFF url("../images/login.png") no-repeat top left;
border-top:none;
border-bottom:none;
padding:20px;
#login div.form div.fields div.field div.label {
width:173px;
margin:2px 10px 0 0;
padding:5px 0 0 5px;
#login div.form div.fields div.field div.input input {
width:176px;
border-top:1px solid #b3b3b3;
border-left:1px solid #b3b3b3;
border-right:1px solid #eaeaea;
border-bottom:1px solid #eaeaea;
color:#000;
padding:7px 7px 6px;
#login div.form div.fields div.buttons {
border-top:1px solid #DDD;
padding:10px 0 0;
#login div.form div.links {
padding:0 0 2px;
#quick_login{
top: 31px;
background-color: rgb(0, 51, 103);
z-index: 999;
height: 150px;
position: absolute;
margin-left: -16px;
width: 281px;
border-radius: 0 0 8px 8px;
box-shadow: 0 2px 2px rgba(0, 0, 0, 0.6);
#quick_login .password_forgoten{
padding-right:10px;
padding-top:10px;
padding-top:0px;
#quick_login .password_forgoten a{
font-size: 10px
#quick_login .register{
padding-top:5px;
#quick_login .register a{
#quick_login div.form div.fields{
padding-top: 2px;
#quick_login div.form div.fields div.field{
padding: 5px;
#quick_login div.form div.fields div.field div.label label{
padding-bottom: 3px;
#quick_login div.form div.fields div.field div.input input {
width:236px;
padding:5px 7px 4px;
#quick_login div.form div.fields div.buttons {
padding:10px 14px 0;
padding:10px 14px 3px 5px;
#quick_login div.form div.fields div.buttons input.ui-button{
background:#e5e3e3 url("../images/button.png") repeat-x;
border-left:1px solid #c6c6c6;
border-right:1px solid #DDD;
border-bottom:1px solid #c6c6c6;
padding:4px 10px;
#quick_login div.form div.links {
#register div.title {
#register div.inner {
#register div.form div.fields div.field div.label {
width:135px;
#register div.form div.fields div.field div.input input {
width:300px;
#register div.form div.fields div.buttons {
padding:10px 0 0 150px;
#register div.form div.fields div.buttons div.highlight input.ui-button {
background:url("../images/button_highlight.png") repeat-x scroll 0 0 #4E85BB;
border-color:#5C91A4 #2B7089 #1A6480 #2A6F89;
border-style:solid;
border-width:1px;
#register div.form div.activation_msg {
padding-top:4px;
padding-bottom:4px;
#journal .journal_day{
font-size:20px;
padding:10px 0px;
border-bottom:2px solid #DDD;
margin-left:10px;
margin-right:10px;
#journal .journal_container{
margin:0px 5px 0px 10px;
#journal .journal_action_container{
padding-left:38px;
#journal .journal_user{
color: #747474;
font-size: 14px;
height: 30px;
#journal .journal_icon{
clear: both;
float: left;
padding-right: 4px;
padding-top: 3px;
#journal .journal_action{
min-height:2px;
float:left
#journal .journal_action_params{
clear: left;
padding-left: 22px;
#journal .journal_repo{
margin-left: 6px;
#journal .date{
color: #777777;
font-size: 11px;
#journal .journal_repo .journal_repo_name{
font-size: 1.1em;
#journal .compare_view{
padding: 5px 0px 5px 0px;
width: 95px;
.journal_highlight{
padding: 0 2px;
vertical-align: bottom;
.trending_language_tbl,.trending_language_tbl td {
border:0 !important;
margin:0 !important;
padding:0 !important;
.trending_language {
background-color:#003367;
min-width:20px;
height:12px;
margin-bottom:4px;
margin-left:5px;
white-space:pre;
padding:3px;
h3.files_location {
font-size:1.8em;
border-bottom:none !important;
margin:10px 0 !important;
#files_data dl dt {
width:115px;
#files_data dl dd {
padding:5px !important;
#changeset_content {
border:1px solid #CCC;
#changeset_compare_view_content{
#changeset_content .container {
min-height:120px;
font-size:1.2em;
#changeset_compare_view_content .compare_view_commits{
width: auto !important;
#changeset_compare_view_content .compare_view_commits td{
padding:0px 0px 0px 12px !important;
#changeset_content .container .right {
width:25%;
#changeset_content .container .left .message {
font-style:italic;
color:#556CB5;
white-space:pre-wrap;
.cs_files .cur_cs{
margin:10px 2px;
.cs_files .node{
.cs_files .changes{
float: right;
.cs_files .changes .added{
background-color: #BBFFBB;
text-align: center;
font-size: 90%;
.cs_files .changes .deleted{
background-color: #FF8888;
.cs_files .cs_added {
background:url("../images/icons/page_white_add.png") no-repeat scroll 3px;
height:16px;
padding-left:20px;
margin-top:7px;
.cs_files .cs_changed {
background:url("../images/icons/page_white_edit.png") no-repeat scroll 3px;
.cs_files .cs_removed {
background:url("../images/icons/page_white_delete.png") no-repeat scroll 3px;
#graph {
#graph_nodes {
margin-right: -6px;
margin-top: -4px;
#graph_content {
width:800px;
#graph_content .container_header {
padding:10px;
#graph_content #rev_range_container{
#graph_content .container {
border-bottom:1px solid #CCC;
border-left:1px solid #CCC;
border-right:1px solid #CCC;
min-height:70px;
#graph_content .container .right {
width:28%;
padding-bottom:5px;
#graph_content .container .left .date {
#graph_content .container .left .date span{
vertical-align: text-top;
#graph_content .container .left .author{
height: 22px;
#graph_content .container .left .author .user{
color: #444444;
font-size: 12px;
margin-left: -4px;
margin-top: 4px;
#graph_content .container .left .message {
font-size:100%;
padding-top:3px;
.right div {
.right .changes .changed_total{
border:1px solid #DDD;
min-width:45px;
cursor: pointer;
background:#FD8;
.right .changes .added,.changed,.removed {
min-width:15px;
cursor: help;
.right .changes .large {
background: #54A9F7;
.right .changes .added {
background:#BFB;
.right .changes .changed {
.right .changes .removed {
background:#F88;
.right .merge {
vertical-align:top;
font-size:0.75em;
.right .parent {
font-size:90%;
font-family:monospace;
.right .logtags .branchtag {
## -*- coding: utf-8 -*-
<%inherit file="root.html"/>
<!-- HEADER -->
<div id="header">
<!-- user -->
<ul id="logged-user">
<li class="first">
<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)}
<label for="password">${_('Password')}:</label>
${h.password('password',class_='focus',size=40)}
<div class="buttons">
<div class="password_forgoten">${h.link_to(_('Forgot password ?'),h.url('reset_password'))}</div>${h.submit('sign_in','Sign In',class_="ui-button")}
<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
${h.submit('sign_in','Sign In',class_="ui-button")}
${h.end_form()}
<div class="gravatar">
<img alt="gravatar" src="${h.gravatar_url(c.rhodecode_user.email,20)}" />
<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))}
</li>
<li>
<a href="${h.url('home')}">${_('Home')}</a>
%if c.rhodecode_user.username != 'default':
<a href="${h.url('journal')}">${_('Journal')}</a>
##(${c.unread_journal}
<li class="last highlight">${h.link_to(u'Login',h.url('login_home'),id='quick_login_link')}</li>
<li class="last highlight">${h.link_to(u'Log Out',h.url('logout_home'))}</li>
</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>
<!-- MENU -->
${self.page_nav()}
<!-- END MENU -->
${self.body()}
<!-- 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
% endif
<div id="main">
${next.main()}
<!-- END CONTENT -->
<!-- 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
<!-- END FOOTER -->
### MAKO DEFS ###
<%def name="page_nav()">
${self.menu()}
</%def>
<%def name="breadcrumbs()">
<div class="breadcrumbs">
${self.breadcrumbs_links()}
<%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 -->
<a id="repo_switcher" title="${_('Switch repository')}" href="#">
<span class="icon">
<img src="${h.url('/images/icons/database.png')}" alt="${_('Products')}" />
</span>
<span>↓</span>
</a>
<ul id="repo_switcher_list" class="repo_switcher">
<a href="#">${_('loading...')}</a>
<script type="text/javascript">
YUE.on('repo_switcher','mouseover',function(){
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
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){
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);
F.filterTimeout = setTimeout(F.updateFilter,600);
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();},
function(o){YUD.removeClass('repo_switcher','loaded');}
,null);
return false;
</script>
<li ${is_current('summary')}>
<a title="${_('Summary')}" href="${h.url('summary_home',repo_name=c.repo_name)}">
<img src="${h.url('/images/icons/clipboard_16.png')}" alt="${_('Summary')}" />
<span>${_('Summary')}</span>
##<li ${is_current('shortlog')}>
## <a title="${_('Shortlog')}" href="${h.url('shortlog_home',repo_name=c.repo_name)}">
## <span class="icon">
## <img src="${h.url('/images/icons/application_view_list.png')}" alt="${_('Shortlog')}" />
## </span>
## <span>${_('Shortlog')}</span>
## </a>
##</li>
<li ${is_current('changelog')}>
<a title="${_('Changelog')}" href="${h.url('changelog_home',repo_name=c.repo_name)}">
<img src="${h.url('/images/icons/time.png')}" alt="${_('Changelog')}" />
<span>${_('Changelog')}</span>
<li ${is_current('switch_to')}>
<a title="${_('Switch to')}" href="#">
<img src="${h.url('/images/icons/arrow_switch.png')}" alt="${_('Switch to')}" />
<span>${_('Switch to')}</span>
<ul>
${h.link_to('%s (%s)' % (_('branches'),len(c.rhodecode_repo.branches.values()),),h.url('branches_home',repo_name=c.repo_name),class_='branches childs')}
%if c.rhodecode_repo.branches.values():
%for cnt,branch in enumerate(c.rhodecode_repo.branches.items()):
<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>
%endfor
<li>${h.link_to(_('There are no branches yet'),'#')}</li>
${h.link_to('%s (%s)' % (_('tags'),len(c.rhodecode_repo.tags.values()),),h.url('tags_home',repo_name=c.repo_name),class_='tags childs')}
%if c.rhodecode_repo.tags.values():
%for cnt,tag in enumerate(c.rhodecode_repo.tags.items()):
<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>
<li>${h.link_to(_('There are no tags yet'),'#')}</li>
<li ${is_current('files')}>
<a title="${_('Files')}" href="${h.url('files_home',repo_name=c.repo_name)}">
<img src="${h.url('/images/icons/file.png')}" alt="${_('Files')}" />
<span>${_('Files')}</span>
<li ${is_current('options')}>
<a title="${_('Options')}" href="#">
<img src="${h.url('/images/icons/table_gear.png')}" alt="${_('Admin')}" />
<span>${_('Options')}</span>
%if h.HasRepoPermissionAll('repository.admin')(c.repo_name):
%if h.HasPermissionAll('hg.admin')('access settings on repository'):
<li>${h.link_to(_('settings'),h.url('edit_repo',repo_name=c.repo_name),class_='settings')}</li>
<li>${h.link_to(_('settings'),h.url('repo_settings_home',repo_name=c.repo_name),class_='settings')}</li>
<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>
% if h.HasPermissionAll('hg.admin')('access admin main page'):
${h.link_to(_('admin'),h.url('admin_home'),class_='admin')}
<%def name="admin_menu()">
<li>${h.link_to(_('journal'),h.url('admin_home'),class_='journal')}</li>
<li>${h.link_to(_('repositories'),h.url('repos'),class_='repos')}</li>
<li>${h.link_to(_('repositories groups'),h.url('repos_groups'),class_='repos_groups')}</li>
<li>${h.link_to(_('users'),h.url('users'),class_='users')}</li>
<li>${h.link_to(_('users 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 class="last">${h.link_to(_('settings'),h.url('admin_settings'),class_='settings')}</li>
${admin_menu()}
<a 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 id="current_followers_count" class="short">${c.repository_followers}</span>
<a title="${_('Forks')}" href="${h.url('repo_forks_home',repo_name=c.repo_name)}">
<img src="${h.url('/images/icons/arrow_divide.png')}" alt="${_('Forks')}" />
<span class="short">${c.repository_forks}</span>
##ROOT MENU
<a title="${_('Home')}" href="${h.url('home')}">
<img src="${h.url('/images/icons/home_16.png')}" alt="${_('Home')}" />
<span>${_('Home')}</span>
% if c.rhodecode_user.username != 'default':
<a title="${_('Journal')}" href="${h.url('journal')}">
<img src="${h.url('/images/icons/book.png')}" alt="${_('Journal')}" />
<span>${_('Journal')}</span>
<a title="${_('Search')}" href="${h.url('search')}">
<img src="${h.url('/images/icons/search_16.png')}" alt="${_('Search')}" />
<span>${_('Search')}</span>
%if h.HasPermissionAll('hg.admin')('access admin main page'):
<li ${is_current('admin')}>
<a title="${_('Admin')}" href="${h.url('admin_home')}">
<img src="${h.url('/images/icons/cog_edit.png')}" alt="${_('Admin')}" />
<span>${_('Admin')}</span>
\ No newline at end of file
Status change: