Changeset - 2f2695771579
[Not reviewed]
beta
0 2 0
Marcin Kuzminski - 14 years ago 2012-03-09 21:12:00
marcin@python-works.com
ui
2 files changed with 32 insertions and 4 deletions:
0 comments (0 inline, 0 general)
rhodecode/lib/helpers.py
Show inline comments
 
@@ -715,100 +715,100 @@ def repo_link(groups_and_repos):
 
    Makes a breadcrumbs link to repo within a group
 
    joins » on each group to create a fancy link
 

	
 
    ex::
 
        group >> subgroup >> repo
 

	
 
    :param groups_and_repos:
 
    """
 
    groups, repo_name = groups_and_repos
 

	
 
    if not groups:
 
        return repo_name
 
    else:
 
        def make_link(group):
 
            return link_to(group.name, url('repos_group_home',
 
                                           group_name=group.group_name))
 
        return literal(' » '.join(map(make_link, groups)) + \
 
                       " » " + repo_name)
 

	
 

	
 
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
 
    """
 

	
 
    a, d, t = stats[0], stats[1], stats[0] + stats[1]
 
    width = 100
 
    unit = float(width) / (t or 1)
 

	
 
    # needs > 9% of width to be visible or 0 to be hidden
 
    a_p = max(9, unit * a) if a > 0 else 0
 
    d_p = max(9, unit * d) if d > 0 else 0
 
    p_sum = a_p + d_p
 

	
 
    if p_sum > width:
 
        #adjust the percentage to be == 100% since we adjusted to 9
 
        if a_p > d_p:
 
            a_p = a_p - (p_sum - width)
 
        else:
 
            d_p = d_p - (p_sum - width)
 

	
 
    a_v = a if a > 0 else ''
 
    d_v = d if d > 0 else ''
 

	
 
    def cgen(l_type):
 
        mapping = {'tr': 'top-right-rounded-corner',
 
                   'tl': 'top-left-rounded-corner',
 
                   'br': 'bottom-right-rounded-corner',
 
                   'bl': 'bottom-left-rounded-corner'}
 
        mapping = {'tr': 'top-right-rounded-corner-mid',
 
                   'tl': 'top-left-rounded-corner-mid',
 
                   'br': 'bottom-right-rounded-corner-mid',
 
                   'bl': 'bottom-left-rounded-corner-mid'}
 
        map_getter = lambda x: mapping[x]
 

	
 
        if l_type == 'a' and d_v:
 
            #case when added and deleted are present
 
            return ' '.join(map(map_getter, ['tl', 'bl']))
 

	
 
        if l_type == 'a' and not d_v:
 
            return ' '.join(map(map_getter, ['tr', 'br', 'tl', 'bl']))
 

	
 
        if l_type == 'd' and a_v:
 
            return ' '.join(map(map_getter, ['tr', 'br']))
 

	
 
        if l_type == 'd' and not a_v:
 
            return ' '.join(map(map_getter, ['tr', 'br', 'tl', 'bl']))
 

	
 
    d_a = '<div class="added %s" style="width:%s%%">%s</div>' % (
 
        cgen('a'), a_p, a_v
 
    )
 
    d_d = '<div class="deleted %s" style="width:%s%%">%s</div>' % (
 
        cgen('d'), d_p, d_v
 
    )
 
    return literal('<div style="width:%spx">%s%s</div>' % (width, d_a, d_d))
 

	
 

	
 
def urlify_text(text_):
 
    import re
 

	
 
    url_pat = re.compile(r'''(http[s]?://(?:[a-zA-Z]|[0-9]|[$-_@.&+]'''
 
                         '''|[!*\(\),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+)''')
 

	
 
    def url_func(match_obj):
 
        url_full = match_obj.groups()[0]
 
        return '<a href="%(url)s">%(url)s</a>' % ({'url': url_full})
 

	
 
    return literal(url_pat.sub(url_func, text_))
 

	
 

	
 
def urlify_changesets(text_, repository):
 
    """
 
    Extract revision ids from changeset and make link from them
 
    
 
    :param text_:
 
    :param repository:
 
    """
 
    import re
 
    URL_PAT = re.compile(r'([0-9a-fA-F]{12,})')
 

	
 
    def url_func(match_obj):
rhodecode/public/css/style.css
Show inline comments
 
@@ -140,96 +140,124 @@ div.color a {
 
	padding: 0;
 
}
 
 
div.options {
 
	clear: both;
 
	overflow: hidden;
 
	position: absolute;
 
	background: #FFF;
 
	margin: 7px 0 0 162px;
 
	padding: 0;
 
}
 
 
div.options a {
 
	height: 1%;
 
	display: block;
 
	text-decoration: none;
 
	margin: 0;
 
	padding: 3px 8px;
 
}
 
 
.top-left-rounded-corner {
 
	-webkit-border-top-left-radius: 8px;
 
	-khtml-border-radius-topleft: 8px;
 
	-moz-border-radius-topleft: 8px;
 
	border-top-left-radius: 8px;
 
}
 
 
.top-right-rounded-corner {
 
	-webkit-border-top-right-radius: 8px;
 
	-khtml-border-radius-topright: 8px;
 
	-moz-border-radius-topright: 8px;
 
	border-top-right-radius: 8px;
 
}
 
 
.bottom-left-rounded-corner {
 
	-webkit-border-bottom-left-radius: 8px;
 
	-khtml-border-radius-bottomleft: 8px;
 
	-moz-border-radius-bottomleft: 8px;
 
	border-bottom-left-radius: 8px;
 
}
 
 
.bottom-right-rounded-corner {
 
	-webkit-border-bottom-right-radius: 8px;
 
	-khtml-border-radius-bottomright: 8px;
 
	-moz-border-radius-bottomright: 8px;
 
	border-bottom-right-radius: 8px;
 
}
 
 
.top-left-rounded-corner-mid {
 
    -webkit-border-top-left-radius: 4px;
 
    -khtml-border-radius-topleft: 4px;
 
    -moz-border-radius-topleft: 4px;
 
    border-top-left-radius: 4px;
 
}
 
 
.top-right-rounded-corner-mid {
 
    -webkit-border-top-right-radius: 4px;
 
    -khtml-border-radius-topright: 4px;
 
    -moz-border-radius-topright: 4px;
 
    border-top-right-radius: 4px;
 
}
 
 
.bottom-left-rounded-corner-mid {
 
    -webkit-border-bottom-left-radius: 4px;
 
    -khtml-border-radius-bottomleft: 4px;
 
    -moz-border-radius-bottomleft: 4px;
 
    border-bottom-left-radius: 4px;
 
}
 
 
.bottom-right-rounded-corner-mid {
 
    -webkit-border-bottom-right-radius: 4px;
 
    -khtml-border-radius-bottomright: 4px;
 
    -moz-border-radius-bottomright: 4px;
 
    border-bottom-right-radius: 4px;
 
}
 
 
.help-block {
 
    color: #999999;
 
    display: block;
 
    margin-bottom: 0;
 
    margin-top: 5px;
 
}
 
 
#header {
 
	margin: 0;
 
	padding: 0 10px;
 
}
 
 
#header ul#logged-user {
 
	margin-bottom: 5px !important;
 
	-webkit-border-radius: 0px 0px 8px 8px;
 
	-khtml-border-radius: 0px 0px 8px 8px;
 
	-moz-border-radius: 0px 0px 8px 8px;
 
	border-radius: 0px 0px 8px 8px;
 
	height: 37px;
 
    background-color: #eedc94;
 
    background-repeat: repeat-x;
 
    background-image: -khtml-gradient(linear, left top, left bottom, from(#fceec1),
 
        to(#eedc94) );
 
    background-image: -moz-linear-gradient(top, #003b76, #00376e);
 
    background-image: -ms-linear-gradient(top, #003b76, #00376e);
 
    background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #003b76), color-stop(100%, #00376e) );
 
    background-image: -webkit-linear-gradient(top, #003b76, #00376e);
 
    background-image: -o-linear-gradient(top, #003b76, #00376e);
 
    background-image: linear-gradient(top, #003b76, #00376e);
 
    filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#003b76',
 
        endColorstr='#00376e', GradientType=0 );
 
	box-shadow: 0 2px 2px rgba(0, 0, 0, 0.6);
 
}
 
 
#header ul#logged-user li {
 
	list-style: none;
 
	float: left;
 
	margin: 8px 0 0;
 
	padding: 4px 12px;
 
	border-left: 1px solid #316293;
 
}
 
 
#header ul#logged-user li.first {
 
	border-left: none;
 
	margin: 4px;
 
}
 
 
#header ul#logged-user li.first div.gravatar {
0 comments (0 inline, 0 general)