summaryrefslogtreecommitdiffstats
path: root/app/views
diff options
context:
space:
mode:
authorJean-Philippe Lang <jp_lang@yahoo.fr>2012-02-05 10:56:27 +0000
committerJean-Philippe Lang <jp_lang@yahoo.fr>2012-02-05 10:56:27 +0000
commit1d4ef8964def4ecbe7a11485f72d7fbe61c55724 (patch)
tree4986d5f51daebd1ff66ac58cdf56042624e2edc3 /app/views
parentc4ea429acbc09205155509e9c41e111294bc8f82 (diff)
downloadredmine-1d4ef8964def4ecbe7a11485f72d7fbe61c55724.tar.gz
redmine-1d4ef8964def4ecbe7a11485f72d7fbe61c55724.zip
Adds a "Manage related isses" permission to add/remove commits/issues relations manually from the changeset view (#2009).
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@8777 e93f8b46-1217-0410-a6f0-8f06a7374b81
Diffstat (limited to 'app/views')
-rw-r--r--app/views/repositories/_related_issues.html.erb34
-rw-r--r--app/views/repositories/revision.html.erb9
2 files changed, 36 insertions, 7 deletions
diff --git a/app/views/repositories/_related_issues.html.erb b/app/views/repositories/_related_issues.html.erb
new file mode 100644
index 000000000..d65d07945
--- /dev/null
+++ b/app/views/repositories/_related_issues.html.erb
@@ -0,0 +1,34 @@
+<% manage_allowed = User.current.allowed_to?(:manage_related_issues, @repository.project) %>
+
+<div id="related-issues">
+<% if manage_allowed %>
+ <div class="contextual">
+ <%= toggle_link l(:button_add), 'new-relation-form', {:focus => 'issue_id'} %>
+ </div>
+<% end %>
+
+<h3><%= l(:label_related_issues) %></h3>
+<ul>
+<% @changeset.issues.visible.each do |issue| %>
+ <li id="<%= "related-issue-#{issue.id}" %>"><%= link_to_issue issue %>
+ <%= link_to_remote(image_tag('link_break.png'),
+ {:url => {:controller => 'repositories', :action => 'remove_related_issue', :id => @project, :repository_id => @repository.identifier_param, :rev => @changeset.identifier, :issue_id => issue},
+ :method => :delete,
+ }, :title => l(:label_relation_delete)) if manage_allowed %>
+
+ </li>
+<% end %>
+</ul>
+
+<% if manage_allowed %>
+ <% remote_form_for(:issue, @issue,
+ :url => {:controller => 'repositories', :action => 'add_related_issue', :id => @project, :repository_id => @repository.identifier_param, :rev => @changeset.identifier},
+ :method => :post,
+ :complete => "Form.Element.focus('issue_id');",
+ :html => {:id => 'new-relation-form', :style => (@issue ? '' : 'display: none;')}) do |f| %>
+ <%= l(:label_issue) %> #<%= text_field_tag 'issue_id', '', :size => 10 %>
+ <%= submit_tag l(:button_add) %>
+ <%= toggle_link l(:button_cancel), 'new-relation-form'%>
+ <% end %>
+<% end %>
+</div>
diff --git a/app/views/repositories/revision.html.erb b/app/views/repositories/revision.html.erb
index 7c44cd674..4e7ad4c2a 100644
--- a/app/views/repositories/revision.html.erb
+++ b/app/views/repositories/revision.html.erb
@@ -64,13 +64,8 @@
<%= textilizable @changeset.comments %>
-<% if @changeset.issues.visible.any? %>
-<h3><%= l(:label_related_issues) %></h3>
-<ul>
-<% @changeset.issues.visible.each do |issue| %>
- <li><%= link_to_issue issue %></li>
-<% end %>
-</ul>
+<% if @changeset.issues.visible.any? || User.current.allowed_to?(:manage_related_issues, @repository.project) %>
+ <%= render :partial => 'related_issues' %>
<% end %>
<% if User.current.allowed_to?(:browse_repository, @project) %>