Changeset - 87c97fcea029
[Not reviewed]
rhodecode/lib/base.py
Show inline comments
 
@@ -307,32 +307,36 @@ class BaseController(WSGIController):
 
            meta.Session.remove()
 

	
 

	
 
class BaseRepoController(BaseController):
 
    """
 
    Base class for controllers responsible for loading all needed data for
 
    repository loaded items are
 

	
 
    c.rhodecode_repo: instance of scm repository
 
    c.rhodecode_db_repo: instance of db
 
    c.repository_followers: number of followers
 
    c.repository_forks: number of forks
 
    c.repository_following: weather the current user is following the current repo
 

	
 
    """
 

	
 
    def __before__(self):
 
        super(BaseRepoController, self).__before__()
 
        if c.repo_name:
 

	
 
            dbr = c.rhodecode_db_repo = Repository.get_by_repo_name(c.repo_name)
 
            c.rhodecode_repo = c.rhodecode_db_repo.scm_instance
 
            # update last change according to VCS data
 
            dbr.update_changeset_cache(dbr.get_changeset())
 
            if c.rhodecode_repo is None:
 
                log.error('%s this repository is present in database but it '
 
                          'cannot be created as an scm instance', c.repo_name)
 

	
 
                redirect(url('home'))
 

	
 
            # some globals counter for menu
 
            c.repository_followers = self.scm_model.get_followers(dbr)
 
            c.repository_forks = self.scm_model.get_forks(dbr)
 
            c.repository_pull_requests = self.scm_model.get_pull_requests(dbr)
 
            c.repository_following = self.scm_model.is_following_repo(c.repo_name,
 
                                                self.rhodecode_user.user_id)
rhodecode/lib/helpers.py
Show inline comments
 
@@ -896,31 +896,31 @@ def repo_link(groups_and_repos, last_url
 

	
 
    ex::
 
        group >> subgroup >> repo
 

	
 
    :param groups_and_repos:
 
    :param last_url:
 
    """
 
    groups, repo_name = groups_and_repos
 
    last_link = link_to(repo_name, last_url) if last_url else repo_name
 

	
 
    if not groups:
 
        if last_url:
 
            return last_link
 
        return repo_name
 
            return literal('<span>%s</span>' % last_link)
 
        return literal('<span>%s</span>' % repo_name)
 
    else:
 
        def make_link(group):
 
            return link_to(group.name,
 
                           url('repos_group_home', group_name=group.group_name))
 
        return literal(' &raquo; '.join(map(make_link, groups) + [last_link]))
 
        return literal(' &raquo; '.join(map(make_link, groups) + ['<span>' + last_link + '</span>']))
 

	
 

	
 
def fancy_file_stats(stats):
 
    """
 
    Displays a fancy two colored bar for number of added/deleted
 
    lines of code on file
 

	
 
    :param stats: two element list of added/deleted lines of code
 
    """
 
    def cgen(l_type, a_v, d_v):
 
        mapping = {'tr': 'top-right-rounded-corner-mid',
 
                   'tl': 'top-left-rounded-corner-mid',
rhodecode/public/css/contextbar.css
Show inline comments
 
new file 100644
 
/**
 
 * Stylesheets for the context bar
 
 */
 

	
 
#context-bar button.follow 		{ background-image: url("../images/icons/heart.png"); }
 
#context-bar button.following	{ background-image: url("../images/icons/heart_delete.png"); }
 
#context-bar a.fork 			{ background-image: url("../images/icons/arrow_divide.png"); }
 
#context-bar a.summary 			{ background-image: url("../images/icons/clipboard_16.png"); }
 
#context-bar a.changelogs 		{ background-image: url("../images/icons/time.png"); }
 
#context-bar a.files 			{ background-image: url("../images/icons/file.png"); }
 
#context-bar a.switch-to 		{ background-image: url("../images/icons/arrow_switch.png"); }
 
#context-bar a.options 			{ background-image: url("../images/icons/table_gear.png"); }
 
#context-bar a.pull-request 	{ background-image: url("../images/icons/arrow_join.png"); }
 
#context-bar a.branches 		{ background-image: url("../images/icons/arrow_branch.png"); }
 
#context-bar a.tags 			{ background-image: url("../images/icons/tag_blue.png"); }
 
#context-bar a.bookmarks		{ background-image: url("../images/icons/tag_green.png"); }
 
#context-bar a.settings 		{ background-image: url("../images/icons/cog.png"); }
 
#context-bar a.shortlog 		{ background-image: url("../images/icons/time.png"); }
 
#context-bar a.search 			{ background-image: url("../images/icons/search_16.png"); }
 
#context-bar a.admin 			{ background-image: url("../images/icons/cog_edit.png"); }
 

	
 
#context-bar a.journal			{ background-image: url("../images/icons/book.png"); }
 
#context-bar a.repos 			{ background-image: url("../images/icons/database_edit.png"); }
 
#context-bar a.repos_groups		{ background-image: url("../images/icons/database_link.png"); }
 
#context-bar a.users			{ background-image: url("../images/icons/user_edit.png"); }
 
#context-bar a.groups 			{ background-image: url("../images/icons/group_edit.png"); }
 
#context-bar a.permissions  	{ background-image: url("../images/icons/key.png"); }
 
#context-bar a.ldap 			{ background-image: url("../images/icons/server_key.png"); }
 
#context-bar a.defaults			{ background-image: url("../images/icons/wrench.png"); }
 
#context-bar a.settings			{ background-image: url("../images/icons/cog_edit.png"); }
 

	
 
#content #context-bar {
 
	position: relative;
 
	background-color: #003B76 !important;
 
	padding: 0px;
 
	overflow: visible;
 
}
 

	
 
#content #context-bar,
 
#content #context-bar a,
 
#content #context-bar button {
 
 	color: #FFFFFF;
 
}
 

	
 
#content #context-bar a:hover,
 
#content #context-bar button:hover {
 
 	text-decoration: none;
 
 	color: #bfe3ff;
 
}
 

	
 
#content #context-bar .icon {
 
	display: inline-block;
 
	width: 16px;
 
	height: 16px;
 
	vertical-align: text-bottom;
 
}
 

	
 
ul.horizontal-list {
 
	display: block;
 
/*	overflow: hidden;*/
 
}
 
ul.horizontal-list > li {
 
	float: left;
 
	padding-right: 5px;
 
	position: relative;
 
}
 

	
 
ul.horizontal-list > li ul {
 
	position: absolute;
 
	display: none;
 
	right: 0;
 
}
 

	
 
ul.horizontal-list li:hover > ul {
 
	display: block;
 
}
 

	
 
ul.horizontal-list ul li {
 
	position: relative;
 
	border-bottom: 1px solid rgba(0,0,0,0.1);
 
	border-top: 1px solid rgba(255,255,255,0.1);
 
}
 

	
 
ul.horizontal-list > li ul ul {
 
	position: absolute;
 
	right: 100%;
 
	top: -1px;
 
	min-width: 200px;
 
	max-height: 400px;
 
	overflow-x:hidden;
 
	overflow-y:auto;
 
}
 

	
 
ul.horizontal-list > li a {
 
	white-space: nowrap;
 
}
 

	
 
#breadcrumbs {
 
	float:left;
 
	padding: 12px 0;
 
	font-weight: bold;
 
}
 

	
 
#breadcrumbs span{
 
	font-weight: bold;
 
	font-size: 2em;
 
}
 

	
 
#context-top {
 
	position: relative;
 
	overflow: hidden;
 
	border-bottom: 1px solid #003162;
 
	padding: 10px;
 
}
 

	
 
#revision-changer,
 
#context-pages,
 
#context-pages ul,
 
ul#context-actions {
 
	background: #3b6998; /* Old browsers */
 
	background: -moz-linear-gradient(top, #4574a2 0%, #2f5d8b 100%); /* FF3.6+ */
 
	background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#4574a2), color-stop(100%,#2f5d8b)); /* Chrome,Safari4+ */
 
	background: -webkit-linear-gradient(top, #4574a2 0%, #2f5d8b 100%); /* Chrome10+,Safari5.1+ */
 
	background: -o-linear-gradient(top, #4574a2 0%, #2f5d8b 100%); /* Opera 11.10+ */
 
	background: -ms-linear-gradient(top, #4574a2 0%, #2f5d8b 100%); /* IE10+ */
 
	background: linear-gradient(to bottom, #4574a2 0%, #2f5d8b 100%); /* W3C */
 
	filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#4574a2', endColorstr='#2f5d8b',GradientType=0 ); /* IE6-9 */
 
}
 

	
 
#context-actions a,
 
#context-pages a {
 
	background-repeat: no-repeat;
 
	background-position: 10px 50%;
 
	padding-left: 30px;
 
}
 

	
 
#context-pages ul ul a{
 
	padding-left: 10px;
 
}
 

	
 
ul#context-actions {
 
	display: inline-block;
 
	float: right;
 
	border-radius: 4px;
 
	background-color:#3b6998;
 
	background-image: linear-gradient(top, #4574a2 0%, #2f5d8b 100%);
 
	padding: 5px;
 
}
 

	
 
#content ul#context-actions li {
 
	padding: 0px;
 
	border-right: 1px solid rgba(0,0,0,0.1);
 
	border-left: 1px solid rgba(255,255,255,0.1);
 
}
 

	
 
#context-actions button,
 
#context-actions a {
 
	display: block;
 
	cursor: pointer;
 
	background: none;
 
	border: none;
 
	margin: 0px;
 
	height: 13px;
 
	padding: 3px 7px;
 
	background-repeat: no-repeat;
 
	background-position: 50% 3px;
 
	padding-top: 24px;
 
}
 

	
 
#context-actions button{
 
	padding-top: 22px;
 
	height: 40px;
 
}
 

	
 
#revision-changer:hover,
 
#context-pages li:hover,
 
#context-actions li:hover,
 
#content #context-actions li:hover {
 
	/*background: rgba(255,255,255,0.2);*/
 
	background: #6388ad; /* Old browsers */
 
	background: -moz-linear-gradient(top, rgba(255,255,255,0.1) 0%, rgba(255,255,255,0) 100%); /* FF3.6+ */
 
	background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(255,255,255,0)), color-stop(100%,rgba(255,255,255,0))); /* Chrome,Safari4+ */
 
	background: -webkit-linear-gradient(top, rgba(255,255,255,0.1) 0%, rgba(255,255,255,0) 100%); /* Chrome10+,Safari5.1+ */
 
	background: -o-linear-gradient(top, rgba(255,255,255,0.1) 0%, rgba(255,255,255,0) 100%); /* Opera 11.10+ */
 
	background: -ms-linear-gradient(top, rgba(255,255,255,0.1) 0%, rgba(255,255,255,0) 100%); /* IE10+ */
 
	background: linear-gradient(to bottom, rgba(255,255,255,0.1) 0%, rgba(255,255,255,0) 100%); /* W3C */
 
	filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#88bfe8', endColorstr='#70b0e0',GradientType=0 ); /* IE6-9 */
 

	
 
	background-image: -webkit-gradient(linear, left top, left bottom, rgb(255,255,255) 0%, rgb(255,255,255) 100%);
 
	
 
	/*border-radius: 4px;*/
 
}
 

	
 

	
 
#content #context-actions li:first-child {
 
	border-left: none;
 
	border-radius:4px 0 0px 4px; 
 
}
 

	
 
#content #context-actions li:last-child {
 
	border-right: none;
 
	border-radius:0 4px 4px 0; 
 
}
 

	
 
#content  #context-actions .icon{
 
	margin: auto;
 
	margin-bottom: 5px;
 
	display: block;
 
	clear: both;
 
	float: none;
 
}
 

	
 
#content  #context-actions button.follow,
 
#content  #context-actions button.following{
 
	width: auto;
 
	float: none;
 
}
 

	
 
#content  #context-actions button .show-following,
 
#content  #context-actions button .show-follow {
 
	display: none;
 
}
 

	
 
#content #context-bar #context-actions button.follow .show-follow {
 
	display: block;
 
}
 

	
 
#content #context-bar #context-actions button.following .show-following {
 
	display: block;
 
}
 

	
 
#context-state {
 
	background-color: #336699;
 
	border-top: 1px solid #517da8;
 
/*	overflow: hidden;*/
 
}
 

	
 
#context-pages {
 
	float: right;
 
	border-left: 1px solid rgba(0,0,0,0.1);
 
/*	overflow: hidden;*/
 
}
 

	
 
#context-pages li.current{
 
	background: #535353; /* Old browsers */
 
	background: -moz-linear-gradient(top, #5d5d5d 0%, #484848 100%); /* FF3.6+ */
 
	background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#5d5d5d), color-stop(100%,#484848)); /* Chrome,Safari4+ */
 
	background: -webkit-linear-gradient(top, #5d5d5d 0%, #484848 100%); /* Chrome10+,Safari5.1+ */
 
	background: -o-linear-gradient(top, #5d5d5d 0%, #484848 100%); /* Opera 11.10+ */
 
	background: -ms-linear-gradient(top, #5d5d5d 0%, #484848 100%); /* IE10+ */
 
	background: linear-gradient(to bottom, #5d5d5d 0%, #484848 100%); /* W3C */
 
	filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#5d5d5d', endColorstr='#484848',GradientType=0 ); /* IE6-9 */
 
}
 

	
 
#content #context-pages .icon {
 
	margin-right:5px;
 
}
 

	
 
#content #context-pages li {
 
	border-right: 1px solid rgba(0,0,0,0.1);
 
	border-left: 1px solid rgba(255,255,255,0.1);
 
	padding: 0;
 
}
 

	
 
#content #context-pages li:last-child {
 
	border-right:none;
 
}
 

	
 
#context-pages a, 
 
#context-pages .admin_menu a{
 
	display: block;
 
	padding: 0px 10px;
 
	padding-left: 30px;
 
	line-height: 35px;
 
}
 

	
 
#revision-changer:before,
 
#context-pages a.childs:after,
 
#context-pages a.dropdown:after {
 
	content: ' \25BE';
 
}
 
#context-pages a.childs:after{
 
	float: right;
 
	padding-left: 5px;
 
}
 

	
 
#revision-changer:before {
 
	position: absolute;
 
	top: 0px;
 
	right: 0px;
 
	border-right: 1px solid rgba(0,0,0,0.1);
 
	height: 25px;
 
	padding-top: 10px;
 
	padding-right: 10px;
 
}
 

	
 
#context-pages li:last-child a {
 
	padding-right: 10px;
 
}
 

	
 
#context-bar #revision-changer {
 
	position: relative;
 
	cursor: pointer;
 
	border: none;
 
	padding: 0;
 
	margin: 0;
 
	color: #FFFFFF;
 
	font-size: 0.85em;
 
	padding: 2px 15px;
 
	padding-bottom: 3px;
 
	padding-right: 30px;
 
	border-right: 1px solid rgba(255,255,255,0.1);
 
}
 

	
 
#revision-changer .branch-name,
 
#revision-changer .revision {
 
	display: block;
 
	text-align: center;
 
	line-height: 1.5em;
 
}
 

	
 
#revision-changer .branch-name {
 
	font-weight: bold;
 
}
 

	
 
#revision-changer .revision{
 
	text-transform: uppercase;
 
}
 

	
 

	
rhodecode/public/css/style.css
Show inline comments
 
@@ -3492,25 +3492,25 @@ div.gravatar img {
 
    -webkit-border-radius: 2px;
 
    -khtml-border-radius: 2px;
 
    -moz-border-radius: 2px;
 
    border-radius: 2px;
 
}
 

	
 
#header, #content, #footer {
 
    min-width: 978px;
 
}
 

	
 
#content {
 
    clear: both;
 
    overflow: hidden;
 
    /*overflow: hidden;*/
 
    padding: 10px 10px 14px 10px;
 
}
 

	
 
#content.hover {
 
    padding: 55px 10px 14px 10px !important;
 
}
 

	
 
#content div.box div.title div.search {
 
    border-left: 1px solid #316293;
 
}
 

	
 
#content div.box div.title div.search div.input input {
rhodecode/public/js/rhodecode.js
Show inline comments
 
@@ -500,25 +500,25 @@ var show_changeset_tooltip = function(){
 
		if(rid && !YUD.hasClass(target, 'tooltip')){
 
			YUD.setAttribute(target,'id',ttid);
 
			YUD.setAttribute(target, 'title',_TM['loading...']);
 
			YAHOO.yuitip.main.set_listeners(target);
 
			YAHOO.yuitip.main.show_yuitip(e, target);
 
			var url = pyroutes.url('changeset_info', {"repo_name":repo_name, "revision": rid});
 
			ajaxGET(url, success)
 
		}
 
	});
 
};
 

	
 
var onSuccessFollow = function(target){
 
    var f = YUD.get(target.id);
 
    var f = YUD.get(target);
 
    var f_cnt = YUD.get('current_followers_count');
 

	
 
    if(YUD.hasClass(f, 'follow')){
 
        f.setAttribute('class','following');
 
        f.setAttribute('title',_TM['Stop following this repository']);
 

	
 
        if(f_cnt){
 
            var cnt = Number(f_cnt.innerHTML)+1;
 
            f_cnt.innerHTML = cnt;
 
        }
 
    }
 
    else{
 
@@ -567,24 +567,25 @@ var showRepoSize = function(target, repo
 
        YUD.get(target).innerHTML = _TM['loading...'];
 
        var url = pyroutes.url('repo_size', {"repo_name":repo_name});
 
        YUC.asyncRequest('POST',url,{
 
            success:function(o){
 
            	YUD.get(target).innerHTML = JSON.parse(o.responseText);
 
            	YUD.addClass(target, 'loaded');
 
            }
 
        },args);    	
 
    }
 
    return false;	
 
}
 

	
 

	
 
/**
 
 * TOOLTIP IMPL.
 
 */
 
YAHOO.namespace('yuitip');
 
YAHOO.yuitip.main = {
 

	
 
	$:			YAHOO.util.Dom.get,
 

	
 
	bgColor:	'#000',
 
	speed:		0.3,
 
	opacity:	0.9,
 
	offset:		[15,15],
rhodecode/templates/admin/repos/repo_edit.html
Show inline comments
 
@@ -9,24 +9,25 @@
 
    ${h.link_to(_(u'Home'),h.url('/'))}
 
    &raquo;
 
    ${h.repo_link(c.rhodecode_db_repo.groups_and_repo)}
 
    &raquo;
 
    ${_('edit')}
 
</%def>
 

	
 
<%def name="page_nav()">
 
    ${self.menu('options')}
 
</%def>
 

	
 
<%def name="main()">
 
 ${self.context_bar('options')}
 
<div class="box box-left">
 
    <!-- box / title -->
 
    <div class="title">
 
        ${self.breadcrumbs()}
 
    </div>
 
    ${h.form(url('repo', repo_name=c.repo_info.repo_name),method='put')}
 
    <div class="form">
 
        <!-- fields -->
 
        <div class="fields">
 
            <div class="field">
 
                <div class="label">
 
                    <label for="repo_name">${_('Name')}:</label>
rhodecode/templates/base/base.html
Show inline comments
 
@@ -52,24 +52,164 @@
 

	
 
### MAKO DEFS ###
 
<%def name="page_nav()">
 
    ${self.menu()}
 
</%def>
 

	
 
<%def name="breadcrumbs()">
 
    <div class="breadcrumbs">
 
    ${self.breadcrumbs_links()}
 
    </div>
 
</%def>
 

	
 
<%def name="context_bar(current=None)">
 
   %if c.repo_name:
 
    ${repo_context_bar(current)}
 
   %endif
 
</%def>
 

	
 
<%def name="repo_context_bar(current=None)">
 
  <%
 
      def follow_class():
 
          if c.repository_following:
 
              return h.literal('following')
 
          else:
 
            return h.literal('follow')
 
  %>
 
  <%
 
    def is_current(selected):
 
        if selected == current:
 
            return h.literal('class="current"')
 
    %>
 

	
 
  <!--- CONTEXT BAR -->
 
  <div id="context-bar" class="box">
 
    <div id="context-top">
 
      <div id= "breadcrumbs">
 
        ${h.link_to(_(u'Repositories'),h.url('home'))}
 
        »
 
        ${h.repo_link(c.rhodecode_db_repo.groups_and_repo)}
 
      </div>
 
      ## TODO: this check feels wrong, it would be better to have a check for permissions
 
      ## also it feels like a job for the controller
 
      %if c.rhodecode_user.username != 'default':
 
        <ul id="context-actions" class="horizontal-list">
 
          <li>
 
           <button class="${follow_class()}" onclick="javascript:toggleFollowingRepo(this,${c.rhodecode_db_repo.repo_id},'${str(h.get_token())}');">
 
            <!--span class="icon show-follow follow"></span>
 
            <span class="icon show-following following"></span-->
 
            <span class="show-follow">${_('Follow')}</span>
 
            <span class="show-following">${_('Unfollow')}</span>
 
          </button>
 
          </li>
 
          <li><a href="${h.url('repo_fork_home',repo_name=c.repo_name)}" class="fork">${_('Fork')}</a></li>
 
          %if h.is_hg(c.rhodecode_repo):
 
          <li><a href="${h.url('pullrequest_home',repo_name=c.repo_name)}" class="pull-request">${_('Pull Request')}</a></li>
 
          %endif
 
        </ul>
 
      %endif
 
    </div>
 
    <div id="context-state">
 
      <button id="revision-changer">
 
        <span class="branch-name">graphics/shader-move</span>
 
        <span class="revision">@73318:8d3d6ee94072</span>
 
      </button>
 
      <ul id="context-pages" class="horizontal-list">
 
        <li ${is_current('summary')}><a href="${h.url('summary_home', repo_name=c.repo_name)}" class="summary">${_('Summary')}</a></li>
 
        <li ${is_current('changelog')}><a href="${h.url('changelog_home', repo_name=c.repo_name)}" class="changelogs">${_('Changelogs')}</a></li>
 
        <li ${is_current('files')}><a href="${h.url('files_home', repo_name=c.repo_name)}" class="files"></span>${_('Files')}</a></li>
 
        <li>
 
          <a href="#" id="branch_tag_switcher_2" class="dropdown switch-to"></span>${_('Switch To')}</a>
 
          <ul id="switch_to_list_2" class="switch_to submenu">
 
            <li><a href="#">${_('loading...')}</a></li>
 
          </ul>
 
        </li>
 
        <li ${is_current('options')}>
 
          <a href="#" class="dropdown options"></span>Options</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
 
              %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 childs')}
 
                    <%def name="admin_menu()">
 
                    <ul class="admin_menu">
 
                        <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(_('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>${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(_('repositories groups'),h.url('repos_groups'),class_='repos_groups')}</li>
 
                    </ul>
 
                    </%def>
 
                    ## ADMIN MENU
 
                    ${admin_menu_simple()}
 
                 </li>
 
              % endif
 
             </ul>
 
        </li>
 
        <li ${is_current('showpullrequest')}><a href="${h.url('pullrequest_show_all',repo_name=c.repo_name)}" title="${_('Show Pull Requests')}" class="pull-request">1</a></li>
 
      </ul>
 
    </div>
 
  </div>
 
  <script type="text/javascript">
 
      YUE.on('branch_tag_switcher_2','mouseover',function(){
 
         var loaded = YUD.hasClass('branch_tag_switcher_2','loaded');
 
         if(!loaded){
 
             YUD.addClass('branch_tag_switcher_2','loaded');
 
             ypjax("${h.url('branch_tag_switcher',repo_name=c.repo_name)}",'switch_to_list_2',
 
                 function(o){},
 
                 function(o){YUD.removeClass('branch_tag_switcher_2','loaded');}
 
                 ,null);
 
         }
 
         return false;
 
      });
 
  </script>
 
  <!--- END CONTEXT BAR -->
 
</%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
 
@@ -155,151 +295,40 @@
 
              </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(_('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>${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(_('repositories 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;
rhodecode/templates/base/root.html
Show inline comments
 
@@ -2,24 +2,26 @@
 
<!DOCTYPE html>
 
<html xmlns="http://www.w3.org/1999/xhtml">
 
    <head>
 
        <title>${self.title()}</title>
 
        <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
 
        <meta name="robots" content="index, nofollow"/>
 
        <link rel="icon" href="${h.url('/images/icons/database_gear.png')}" type="image/png" />
 

	
 
        ## CSS ###
 
        <%def name="css()">
 
            <link rel="stylesheet" type="text/css" href="${h.url('/css/style.css', ver=c.rhodecode_version)}" media="screen"/>
 
            <link rel="stylesheet" type="text/css" href="${h.url('/css/pygments.css', ver=c.rhodecode_version)}"/>
 

	
 
            <link rel="stylesheet" type="text/css" href="${h.url('/css/contextbar.css', ver=c.rhodecode_version)}"/>
 
            ## EXTRA FOR CSS
 
            ${self.css_extra()}
 
        </%def>
 
        <%def name="css_extra()">
 
        </%def>
 

	
 
        ${self.css()}
 

	
 
        %if c.ga_code:
 
        <!-- Analytics -->
 
        <script type="text/javascript">
 
            var _gaq = _gaq || [];
rhodecode/templates/changelog/changelog.html
Show inline comments
 
@@ -11,24 +11,25 @@ ${_('%s Changelog') % c.repo_name} - ${c
 
    &raquo;
 
    ${h.repo_link(c.rhodecode_db_repo.groups_and_repo)}
 
    &raquo;
 
    <% size = c.size if c.size <= c.total_cs else c.total_cs %>
 
    ${_('changelog')} - ${ungettext('showing %d out of %d revision', 'showing %d out of %d revisions', size) % (size, c.total_cs)}
 
</%def>
 

	
 
<%def name="page_nav()">
 
    ${self.menu('changelog')}
 
</%def>
 

	
 
<%def name="main()">
 
 ${self.context_bar('changelog')}
 
<div class="box">
 
    <!-- box / title -->
 
    <div class="title">
 
        ${self.breadcrumbs()}
 
    </div>
 
    <div class="table">
 
        % if c.pagination:
 
            <div id="graph">
 
                <div id="graph_nodes">
 
                    <canvas id="graph_canvas"></canvas>
 
                </div>
 
                <div id="graph_content">
rhodecode/templates/files/files.html
Show inline comments
 
@@ -11,24 +11,25 @@
 
    &raquo;
 
    ${_('files')}
 
    %if c.file:
 
        @ r${c.changeset.revision}:${h.short_id(c.changeset.raw_id)}
 
    %endif
 
</%def>
 

	
 
<%def name="page_nav()">
 
    ${self.menu('files')}
 
</%def>
 

	
 
<%def name="main()">
 
 ${self.context_bar('files')}
 
<div class="box">
 
    <!-- box / title -->
 
    <div class="title">
 
        ${self.breadcrumbs()}
 
        <ul class="links">
 
            <li>
 
              <span style="text-transform: uppercase;"><a href="#">${_('branch')}: ${c.changeset.branch}</a></span>
 
            </li>
 
        </ul>
 
    </div>
 
    <div class="table">
 
        <div id="files_data">
rhodecode/templates/pullrequests/pullrequest_show_all.html
Show inline comments
 
@@ -4,25 +4,25 @@
 
    ${c.repo_name} ${_('all pull requests')}
 
</%def>
 

	
 
<%def name="breadcrumbs_links()">
 
    ${h.link_to(_(u'Home'),h.url('/'))}
 
    &raquo;
 
    ${h.repo_link(c.rhodecode_db_repo.groups_and_repo)}
 
    &raquo;
 
    ${_('pull requests')}
 
</%def>
 

	
 
<%def name="main()">
 

	
 
${self.context_bar('showpullrequest')}
 
<div class="box">
 
    <!-- box / title -->
 
    <div class="title">
 
        ${self.breadcrumbs()}
 
    </div>
 

	
 
    %for pr in c.pull_requests:
 
        <div>
 
          <h4  style="border:0px;padding:0px">
 
            %if pr.is_closed():
 
                <img src="${h.url('/images/icons/lock_go.png')}" title="${_('Closed')}"/>
 
            %endif
rhodecode/templates/search/search.html
Show inline comments
 
@@ -24,25 +24,25 @@
 
    ${c.cur_query}
 
  %endif
 
</%def>
 

	
 
<%def name="page_nav()">
 
    %if c.repo_name:
 
    ${self.menu('options')}
 
    %else:
 
    ${self.menu('search')}
 
    %endif
 
</%def>
 
<%def name="main()">
 

	
 
 ${self.context_bar('options')}
 
<div class="box">
 
    <!-- box / title -->
 
    <div class="title">
 
        ${self.breadcrumbs()}
 
    </div>
 
    <!-- end box / title -->
 
    %if c.repo_name:
 
        ${h.form(h.url('search_repo',repo_name=c.repo_name),method='get')}
 
    %else:
 
        ${h.form(h.url('search'),method='get')}
 
    %endif
 
    <div class="form">
rhodecode/templates/shortlog/shortlog.html
Show inline comments
 
@@ -15,24 +15,25 @@
 
        ${h.link_to(_('shortlog'),h.url('shortlog_home',repo_name=c.repo_name))}
 
        &raquo;
 
        ${c.file_history}
 
    %else:
 
        ${_('shortlog')}
 
    %endif
 
</%def>
 

	
 
<%def name="page_nav()">
 
    ${self.menu('shortlog')}
 
</%def>
 
<%def name="main()">
 
 ${self.context_bar('options')}
 
<div class="box">
 
    <!-- box / title -->
 
    <div class="title">
 
        ${self.breadcrumbs()}
 
    </div>
 
    <!-- end box / title -->
 
    <div class="table">
 
        <div id="shortlog_data">
 
            ${c.shortlog_data}
 
        </div>
 
    </div>
 
</div>
rhodecode/templates/summary/summary.html
Show inline comments
 
@@ -13,24 +13,25 @@
 
</%def>
 

	
 
<%def name="page_nav()">
 
    ${self.menu('summary')}
 
</%def>
 

	
 
<%def name="head_extra()">
 
<link href="${h.url('atom_feed_home',repo_name=c.dbrepo.repo_name,api_key=c.rhodecode_user.api_key)}" rel="alternate" title="${_('repo %s ATOM feed') % c.repo_name}" type="application/atom+xml" />
 
<link href="${h.url('rss_feed_home',repo_name=c.dbrepo.repo_name,api_key=c.rhodecode_user.api_key)}" rel="alternate" title="${_('repo %s RSS feed') % c.repo_name}" type="application/rss+xml" />
 
</%def>
 

	
 
<%def name="main()">
 
    ${self.context_bar('summary')}
 
    <%
 
    summary = lambda n:{False:'summary-short'}.get(n)
 
    %>
 
    %if c.show_stats:
 
        <div class="box box-left">
 
    %else:
 
        <div class="box">
 
    %endif
 
    <!-- box / title -->
 
    <div class="title">
 
        ${self.breadcrumbs()}
 
    </div>
 
@@ -87,25 +88,25 @@
 
                 ##PUBLIC/PRIVATE
 
                 %if c.dbrepo.private:
 
                    <img style="margin-bottom:2px" class="icon" title="${_('private repository')}" alt="${_('private repository')}" src="${h.url('/images/icons/lock.png')}"/>
 
                 %else:
 
                    <img style="margin-bottom:2px" class="icon" title="${_('public repository')}" alt="${_('public repository')}" src="${h.url('/images/icons/lock_open.png')}"/>
 
                 %endif
 

	
 
                  ##REPO NAME
 
                  <span class="repo_name" title="${_('Non changable ID %s') % c.dbrepo.repo_id}">${h.repo_link(c.dbrepo.groups_and_repo)}</span>
 

	
 
                  ##FORK
 
                  %if c.dbrepo.fork:
 
                    <div style="margin-top:5px;clear:both"">
 
                    <div style="margin-top:5px;clear:both">
 
                    <a href="${h.url('summary_home',repo_name=c.dbrepo.fork.repo_name)}"><img class="icon" alt="${_('public')}" title="${_('Fork of')} ${c.dbrepo.fork.repo_name}" src="${h.url('/images/icons/arrow_divide.png')}"/>
 
                        ${_('Fork of')} ${c.dbrepo.fork.repo_name}
 
                    </a>
 
                    </div>
 
                  %endif
 
                  ##REMOTE
 
                  %if c.dbrepo.clone_uri:
 
                    <div style="margin-top:5px;clear:both">
 
                    <a href="${h.url(str(h.hide_credentials(c.dbrepo.clone_uri)))}"><img class="icon" alt="${_('remote clone')}" title="${_('Clone from')} ${h.hide_credentials(c.dbrepo.clone_uri)}" src="${h.url('/images/icons/connect.png')}"/>
 
                        ${_('Clone from')} ${h.hide_credentials(c.dbrepo.clone_uri)}
 
                    </a>
 
                    </div>
0 comments (0 inline, 0 general)