Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
DISCONTINUED:openSUSE:11.1
viewvc
viewvc-buglink.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File viewvc-buglink.patch of Package viewvc
from James Henstridge <james@jamesh.id.au> http://sourceforge.net/tracker/index.php?func=detail&aid=986023&group_id=18760&atid=318760 lib/config.py | 1 + lib/viewvc.py | 21 ++++++++++++--------- viewvc.conf.dist | 15 +++++++++++++++ 3 files changed, 28 insertions(+), 9 deletions(-) --- a/lib/config.py +++ b/lib/config.py @@ -224,6 +224,7 @@ class Config: self.options.use_localtime = 0 self.options.http_expiration_time = 600 self.options.generate_etags = 1 + self.options.buglink_base = None def is_forbidden(self, root, path_parts, pathtype): # If we don't have a root and path to check, get outta here. --- a/lib/viewvc.py +++ b/lib/viewvc.py @@ -982,17 +982,20 @@ def get_file_view_info(request, where, r # addresses. Note that the regexps assume the text is already HTML-encoded. _re_rewrite_url = re.compile('((http|https|ftp|file|svn|svn\+ssh)(://[-a-zA-Z0-9%.~:_/]+)((\?|\&)([-a-zA-Z0-9%.~:_]+)=([-a-zA-Z0-9%.~:_])+)*(#([-a-zA-Z0-9%.~:_]+)?)?)') _re_rewrite_email = re.compile('([-a-zA-Z0-9_.\+]+)@(([-a-zA-Z0-9]+\.)+[A-Za-z]{2,4})') -def htmlify(html): +_re_rewrite_bug = re.compile(r'((?:\bbug[\s#+]|[^&]#|^#)\s*(\d\d+))', re.I) +def htmlify(html, buglink = None): html = cgi.escape(html) html = re.sub(_re_rewrite_url, r'<a href="\1">\1</a>', html) html = re.sub(_re_rewrite_email, r'<a href="mailto:\1@\2">\1@\2</a>', html) + if buglink is not None: + html = re.sub(_re_rewrite_bug, r'<a href="%s\2">\1</a>' % buglink, html) return html def format_log(log, cfg, htmlize=1): if not log: return log if htmlize: - s = htmlify(log[:cfg.options.short_log_len]) + s = htmlify(log[:cfg.options.short_log_len], cfg.options.buglink_base) else: s = cgi.escape(log[:cfg.options.short_log_len]) if len(log) > cfg.options.short_log_len: @@ -1412,7 +1415,7 @@ def view_markup(request): 'date' : make_time_string(entry.date, cfg), 'author' : entry.author, 'changed' : entry.changed, - 'log' : htmlify(entry.log), + 'log' : htmlify(entry.log, cfg.options.buglink_base), 'size' : entry.size, }) @@ -1673,7 +1676,7 @@ def view_directory(request): 'sortby' : sortby, 'sortdir' : sortdir, 'tarball_href' : None, - 'search_re' : search_re and htmlify(search_re) or None, + 'search_re' : search_re and htmlify(search_re, cfg.options.buglink_base) or None, 'dir_pagestart' : None, 'sortby_file_href' : request.get_url(params={'sortby': 'file', 'sortdir': None}, @@ -1921,7 +1924,7 @@ def view_log(request): entry.ago = None if rev.date is not None: entry.ago = html_time(request, rev.date, 1) - entry.log = htmlify(rev.log or "") + entry.log = htmlify(rev.log or "", cfg.options.buglink_base) entry.size = rev.size entry.branch_point = None entry.next_main = None @@ -2395,7 +2398,7 @@ def spaced_html_text(text, cfg): text = string.replace(text, ' ', ' \x01nbsp;') else: text = string.replace(text, ' ', '\x01nbsp;') - text = htmlify(text) + text = htmlify(text, cfg.options.buglink_base) text = string.replace(text, '\x01', '&') text = string.replace(text, '\x02', '<span style="color:red">\</span><br />') return text @@ -2815,7 +2818,7 @@ def view_diff(request): else: changes = DiffSource(fp, cfg) else: - raw_diff_fp = MarkupPipeWrapper(fp, htmlify(headers), None, 1) + raw_diff_fp = MarkupPipeWrapper(fp, htmlify(headers, cfg.options.buglink_base), None, 1) data.update({ 'date_left' : rcsdiff_date_reformat(date1, cfg), @@ -3139,7 +3142,7 @@ def view_revision(request): 'rev' : str(rev), 'author' : author, 'date' : date_str, - 'log' : msg and htmlify(msg) or None, + 'log' : msg and htmlify(msg, request.cfg.options.buglink_base) or None, 'ago' : None, 'changes' : changes, 'prev_href' : prev_rev_href, @@ -3401,7 +3404,7 @@ def build_commit(request, files, max_fil commit = _item(num_files=len(commit_files), files=commit_files, plus=plus_count, minus=minus_count) commit.limited_files = ezt.boolean(num_allowed > len(commit_files)) - commit.log = htmlify(desc) + commit.log = htmlify(desc, request.cfg.options.buglink_base) commit.short_log = format_log(desc, request.cfg, format != 'rss') commit.author = request.server.escape(author) commit.rss_date = make_rss_time_string(date, request.cfg) --- a/viewvc.conf.dist +++ b/viewvc.conf.dist @@ -293,6 +293,21 @@ languages = en-us #--------------------------------------------------------------------------- [options] +# The 'buglink_base' value is a string that can be used to form a URL +# by appending a bug number. If viewvc sees something that looks +# like a bug number in a log message (eg. "bug 12345" or "#12345"), it +# will be displayed as a link to the bug in your bug tracking system. +# +# For a Bugzilla installation, you probably want to set this to +# something like "http://hostname/show_bug.cgi?id=". For the Debian +# bug tracker, you might use +# "http://hostname/cgi-bin/bugreport.cgi?bug=". +# +# If 'buglink_base' is not set, then bug tracker links won't be +# generated. +# +# buglink_base = http://example.com/show_bug.cgi?id= + # root_as_url_component: Interpret the first path component in the URL # after the script location as the root to use. This is an # alternative to using the "root=" query key. If ViewVC is configured
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor