Improved Redmine links:

* issue and changeset links generated only if the object exists
* issue subject and status appear in the link title
* strike issue link if issue is closed
* red wiki page link if page doesn't exist
* new icon for external links

Wiki page cache had to be disabled.

git-svn-id: http://redmine.rubyforge.org/svn/trunk@714 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
Jean-Philippe Lang
2007-09-07 20:07:54 +00:00
parent b812705976
commit fdf842a4c4
7 changed files with 35 additions and 13 deletions
+19 -3
View File
@@ -157,7 +157,16 @@ module ApplicationHelper
page = title || $2
title = $1 if page.blank?
end
link_to((title || page), format_wiki_link.call(link_project, Wiki.titleize(page)), :class => 'wiki-page')
if link_project && link_project.wiki
# check if page exists
wiki_page = link_project.wiki.find_page(page)
link_to((title || page), format_wiki_link.call(link_project, Wiki.titleize(page)),
:class => ('wiki-page' + (wiki_page ? '' : ' new')))
else
# project or wiki doesn't exist
title || page
end
end
# turn issue and revision ids into links
@@ -168,9 +177,16 @@ module ApplicationHelper
leading, otype, oid = $1, $2, $3
link = nil
if otype == 'r'
link = link_to("r#{oid}", {:controller => 'repositories', :action => 'revision', :id => project.id, :rev => oid}, :class => 'changeset') if project
if project && (changeset = project.changesets.find_by_revision(oid))
link = link_to("r#{oid}", {:controller => 'repositories', :action => 'revision', :id => project.id, :rev => oid}, :class => 'changeset',
:title => truncate(changeset.comments, 100))
end
else
link = link_to("##{oid}", {:controller => 'issues', :action => 'show', :id => oid}, :class => 'issue')
if issue = Issue.find_by_id(oid.to_i, :include => [:project, :status], :conditions => Project.visible_by(User.current))
link = link_to("##{oid}", {:controller => 'issues', :action => 'show', :id => oid}, :class => 'issue',
:title => "#{truncate(issue.subject, 100)} (#{issue.status.name})")
link = content_tag('del', link) if issue.closed?
end
end
leading + (link || "#{otype}#{oid}")
end