@@ -55,19 +55,40 @@ force_https = false
commit_parse_limit = 25
use_gravatar = true
container_auth_enabled = false
proxypass_auth_enabled = false
## overwrite schema of clone url
# available vars:
# scheme - http/https
# user - current user
# pass - password
# netloc - network location
# path - usually repo_name
# clone_uri = {scheme}://{user}{pass}{netloc}{path}
## available vars:
## scheme - http/https
## user - current user
## pass - password
## netloc - network location
## path - usually repo_name
#clone_uri = {scheme}://{user}{pass}{netloc}{path}
## issue tracking mapping for commits messages
## uncomment url_pat, issue_server, issue_prefix to enable
## pattern to get the issues from commit messages
## default one used here is #1234
#url_pat = (?:^#|\s#)(\w+)
## server url to the issue, each {id} will be replaced with id
## fetched from the regex
#issue_server = https://myissueserver.com/issue/{id}
## prefix to add to link to indicate it's an url
## #314 will be replaced by <issue_prefix><id>
#issue_prefix = #
####################################
### CELERY CONFIG ####
use_celery = false
broker.host = localhost
commit_parse_limit = 50
@@ -55,20 +55,41 @@ force_https = false
broker.vhost = rabbitmqhost
@@ -5,12 +5,13 @@ available to Controllers. This module is
"""
import random
import hashlib
import StringIO
import urllib
import math
import logging
from datetime import datetime
from pygments.formatters.html import HtmlFormatter
from pygments import highlight as code_highlight
from pylons import url, request, config
from pylons.i18n.translation import _, ungettext
@@ -38,12 +39,14 @@ from webhelpers.html.tags import _set_in
from rhodecode.lib.annotate import annotate_highlight
from rhodecode.lib.utils import repo_name_slug
from rhodecode.lib import str2bool, safe_unicode, safe_str, get_changeset_safe
from rhodecode.lib.markup_renderer import MarkupRenderer
log = logging.getLogger(__name__)
def _reset(name, value=None, id=NotGiven, type="reset", **attrs):
Reset button
_set_input_attrs(attrs, type, name, value)
@@ -737,12 +740,39 @@ def urlify_text(text):
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_commit(text):
import re
import traceback
try:
conf = config['app_conf']
URL_PAT = re.compile(r'%s' % conf.get('url_pat'))
if URL_PAT:
ISSUE_SERVER = conf.get('issue_server')
ISSUE_PREFIX = conf.get('issue_prefix')
issue_id = match_obj.groups()[0]
return ' <a href="%(url)s">%(issue-prefix)s%(id-repr)s</a>' % (
{'url':ISSUE_SERVER.replace('{id}',issue_id),
'id-repr':issue_id,
'issue-prefix':ISSUE_PREFIX,
'serv':ISSUE_SERVER,
}
)
return literal(URL_PAT.sub(url_func, text))
except:
log.error(traceback.format_exc())
pass
return text
def rst(source):
return literal('<div class="rst-block">%s</div>' %
MarkupRenderer.rst(source))
def rst_w_mentions(source):
@@ -2143,14 +2143,12 @@ h3.files_location {
float: right;
width: 25%;
text-align: right;
#changeset_content .container .left .message {
font-style: italic;
color: #556CB5;
white-space: pre-wrap;
#changeset_content .container .left .message a:hover {
text-decoration: none;
.cs_files .cur_cs {
@@ -45,21 +45,21 @@ ${c.repo_name} ${_('Changelog')} - ${c.r
%for cnt,cs in enumerate(c.pagination):
<div id="chg_${cnt+1}" class="container">
<div class="left">
<div class="date">
${h.checkbox(cs.short_id,class_="changeset_range")}
<span>${_('commit')} ${cs.revision}: ${h.short_id(cs.raw_id)}@${cs.date}</span>
<span class="tooltip" title="${cs.date}"><a href="${h.url('changeset_home',repo_name=c.repo_name,revision=cs.raw_id)}">${cs.revision}:${h.short_id(cs.raw_id)}</a></span>
</div>
<div class="author">
<div class="gravatar">
<img alt="gravatar" src="${h.gravatar_url(h.email(cs.author),16)}"/>
<div title="${cs.author}" class="user">${h.person(cs.author)}</div>
<div class="message">${h.link_to(h.wrap_paragraphs(cs.message),h.url('changeset_home',repo_name=c.repo_name,revision=cs.raw_id))}</div>
<div class="message">${h.urlify_commit(h.wrap_paragraphs(cs.message))}</div>
<div class="right">
<div id="${cs.raw_id}_changes_info" class="changes">
<span id="${cs.raw_id}" class="changed_total tooltip" title="${_('Affected number of files, click to show more details')}">${len(cs.affected_files)}</span>
%if len(cs.parents)>1:
@@ -49,13 +49,13 @@
<img alt="gravatar" src="${h.gravatar_url(h.email(c.changeset.author),20)}"/>
<span>${h.person(c.changeset.author)}</span><br/>
<span><a href="mailto:${h.email_or_none(c.changeset.author)}">${h.email_or_none(c.changeset.author)}</a></span><br/>
<div class="message">${h.link_to(h.wrap_paragraphs(c.changeset.message),h.url('changeset_home',repo_name=c.repo_name,revision=c.changeset.raw_id))}</div>
<div class="message">${h.urlify_commit(h.wrap_paragraphs(c.changeset.message))}</div>
<div class="changes">
% if len(c.changeset.affected_files) <= c.affected_files_cut_off:
<span class="removed" title="${_('removed')}">${len(c.changeset.removed)}</span>
<span class="changed" title="${_('changed')}">${len(c.changeset.changed)}</span>
@@ -38,13 +38,13 @@
%for cs in c.cs_ranges:
<tr>
<td><div class="gravatar"><img alt="gravatar" src="${h.gravatar_url(h.email(cs.author),14)}"/></div></td>
<td>${h.link_to('r%s:%s' % (cs.revision,h.short_id(cs.raw_id)),h.url('changeset_home',repo_name=c.repo_name,revision=cs.raw_id))}</td>
<td><div class="author">${h.person(cs.author)}</div></td>
<td><span class="tooltip" title="${h.age(cs.date)}">${cs.date}</span></td>
<td><div class="message">${h.link_to(h.wrap_paragraphs(cs.message),h.url('changeset_home',repo_name=c.repo_name,revision=cs.raw_id))}</div></td>
<td><div class="message">${h.urlify_commit(h.wrap_paragraphs(c.changeset.message))}</div></td>
</tr>
%endfor
</table>
<div style="font-size:1.1em;font-weight: bold;clear:both;padding-top:10px">${_('Files affected')}</div>
<div class="cs_files">
## -*- coding: utf-8 -*-
%if c.repo_changesets:
<table class="table_disp">
<th class="left">${_('commit message')}</th>
<th class="left">${_('revision')}</th>
<th class="left">${_('age')}</th>
<th class="left">${_('author')}</th>
<th class="left">${_('branch')}</th>
<th class="left">${_('tags')}</th>
%for cnt,cs in enumerate(c.repo_changesets):
<tr class="parity${cnt%2}">
<td>
<div><pre><a href="${h.url('files_home',repo_name=c.repo_name,revision=cs.raw_id)}">r${cs.revision}:${h.short_id(cs.raw_id)}</a></pre></div>
</td>
${h.link_to(h.truncate(cs.message,50),
h.url('changeset_home',repo_name=c.repo_name,revision=cs.raw_id),
title=cs.message)}
<td><span class="tooltip" title="${cs.date}">
${h.age(cs.date)}</span>
<td title="${cs.author}">${h.person(cs.author)}</td>
<td><div><pre><a href="${h.url('files_home',repo_name=c.repo_name,revision=cs.raw_id)}">r${cs.revision}:${h.short_id(cs.raw_id)}</a></pre></div></td>
<span class="logtags">
<span class="branchtag">${cs.branch}</span>
</span>
Status change: