Fixed issue 126, easy link to a file in the repository from the tickets.
The syntax src:AUTHORS or src:src/IDF/Scm.php is allowed.
This commit is contained in:
parent
47f84bcb55
commit
9bcf99e3a7
@ -50,6 +50,8 @@ class IDF_Template_IssueComment extends Pluf_Template_Tag
|
||||
if ($request->rights['hasSourceAccess']) {
|
||||
$text = preg_replace_callback('#(commit\s+)([0-9a-f]{1,40})#im',
|
||||
array($this, 'callbackCommit'), $text);
|
||||
$text = preg_replace_callback('#(src:)([^\s\(\)]+)#im',
|
||||
array($this, 'callbackSource'), $text);
|
||||
}
|
||||
if ($echo) {
|
||||
echo $text;
|
||||
@ -102,6 +104,24 @@ class IDF_Template_IssueComment extends Pluf_Template_Tag
|
||||
return '<a href="'.Pluf_HTTP_URL_urlForView('IDF_Views_Source::commit', array($this->project->shortname, $co->commit)).'">'.$m[1].$m[2].'</a>';
|
||||
}
|
||||
|
||||
function callbackSource($m)
|
||||
{
|
||||
$branches = $this->scm->getBranches();
|
||||
if (count($branches) == 0) return $m[0];
|
||||
$file = $m[2];
|
||||
if ('commit' != $this->scm->testHash($branches[0], $file)) {
|
||||
return $m[0];
|
||||
}
|
||||
$request_file_info = $this->scm->getFileInfo($file, $branches[0]);
|
||||
if (!$request_file_info) {
|
||||
return $m[0];
|
||||
}
|
||||
if ($request_file_info->type != 'tree') {
|
||||
return $m[1].'<a href="'.Pluf_HTTP_URL_urlForView('IDF_Views_Source::tree', array($this->project->shortname, $branches[0], $file)).'">'.$m[2].'</a>';
|
||||
}
|
||||
return $m[0];
|
||||
}
|
||||
|
||||
/**
|
||||
* Generate the link to an issue.
|
||||
*
|
||||
|
Loading…
Reference in New Issue
Block a user