##// END OF EJS Templates
Merged r4741 and r4764 from trunk....
Jean-Philippe Lang -
r4650:7be5bf6e4da8
parent child
Show More
@@ -28,6 +28,7 class IssueRelationsController < ApplicationController
28 respond_to do |format|
28 respond_to do |format|
29 format.html { redirect_to :controller => 'issues', :action => 'show', :id => @issue }
29 format.html { redirect_to :controller => 'issues', :action => 'show', :id => @issue }
30 format.js do
30 format.js do
31 @relations = @issue.relations.select {|r| r.other_issue(@issue) && r.other_issue(@issue).visible? }
31 render :update do |page|
32 render :update do |page|
32 page.replace_html "relations", :partial => 'issues/relations'
33 page.replace_html "relations", :partial => 'issues/relations'
33 if @relation.errors.empty?
34 if @relation.errors.empty?
@@ -47,7 +48,10 class IssueRelationsController < ApplicationController
47 end
48 end
48 respond_to do |format|
49 respond_to do |format|
49 format.html { redirect_to :controller => 'issues', :action => 'show', :id => @issue }
50 format.html { redirect_to :controller => 'issues', :action => 'show', :id => @issue }
50 format.js { render(:update) {|page| page.replace_html "relations", :partial => 'issues/relations'} }
51 format.js {
52 @relations = @issue.relations.select {|r| r.other_issue(@issue) && r.other_issue(@issue).visible? }
53 render(:update) {|page| page.replace_html "relations", :partial => 'issues/relations'}
54 }
51 end
55 end
52 end
56 end
53
57
@@ -108,6 +108,7 class IssuesController < ApplicationController
108 @journals.reverse! if User.current.wants_comments_in_reverse_order?
108 @journals.reverse! if User.current.wants_comments_in_reverse_order?
109 @changesets = @issue.changesets.visible.all
109 @changesets = @issue.changesets.visible.all
110 @changesets.reverse! if User.current.wants_comments_in_reverse_order?
110 @changesets.reverse! if User.current.wants_comments_in_reverse_order?
111 @relations = @issue.relations.select {|r| r.other_issue(@issue) && r.other_issue(@issue).visible? }
111 @allowed_statuses = @issue.new_statuses_allowed_to(User.current)
112 @allowed_statuses = @issue.new_statuses_allowed_to(User.current)
112 @edit_allowed = User.current.allowed_to?(:edit_issues, @project)
113 @edit_allowed = User.current.allowed_to?(:edit_issues, @project)
113 @priorities = IssuePriority.all
114 @priorities = IssuePriority.all
@@ -6,9 +6,9
6
6
7 <p><strong><%=l(:label_related_issues)%></strong></p>
7 <p><strong><%=l(:label_related_issues)%></strong></p>
8
8
9 <% if @issue.relations.any? %>
9 <% if @relations.present? %>
10 <table style="width:100%">
10 <table style="width:100%">
11 <% @issue.relations.select {|r| r.other_issue(@issue).visible? }.each do |relation| %>
11 <% @relations.each do |relation| %>
12 <tr>
12 <tr>
13 <td><%= l(relation.label_for(@issue)) %> <%= "(#{l('datetime.distance_in_words.x_days', :count => relation.delay)})" if relation.delay && relation.delay != 0 %>
13 <td><%= l(relation.label_for(@issue)) %> <%= "(#{l('datetime.distance_in_words.x_days', :count => relation.delay)})" if relation.delay && relation.delay != 0 %>
14 <%= h(relation.other_issue(@issue).project) + ' - ' if Setting.cross_project_issue_relations? %>
14 <%= h(relation.other_issue(@issue).project) + ' - ' if Setting.cross_project_issue_relations? %>
@@ -26,10 +26,10 api.issue do
26 render_api_issue_children(@issue, api) if include_in_api_response?('children')
26 render_api_issue_children(@issue, api) if include_in_api_response?('children')
27
27
28 api.array :relations do
28 api.array :relations do
29 @issue.relations.select {|r| r.other_issue(@issue).visible? }.each do |relation|
29 @relations.each do |relation|
30 api.relation(:id => relation.id, :issue_id => relation.other_issue(@issue).id, :relation_type => relation.relation_type_for(@issue), :delay => relation.delay)
30 api.relation(:id => relation.id, :issue_id => relation.other_issue(@issue).id, :relation_type => relation.relation_type_for(@issue), :delay => relation.delay)
31 end
31 end
32 end if include_in_api_response?('relations')
32 end if include_in_api_response?('relations') && @relations.present?
33
33
34 api.array :changesets do
34 api.array :changesets do
35 @issue.changesets.each do |changeset|
35 @issue.changesets.each do |changeset|
@@ -33,6 +33,19 class IssueRelationsControllerTest < ActionController::TestCase
33 end
33 end
34 end
34 end
35
35
36 def test_new_xhr
37 assert_difference 'IssueRelation.count' do
38 @request.session[:user_id] = 3
39 xhr :post, :new,
40 :issue_id => 3,
41 :relation => {:issue_to_id => '1', :relation_type => 'relates', :delay => ''}
42 assert_select_rjs 'relations' do
43 assert_select 'table', 1
44 assert_select 'tr', 2 # relations
45 end
46 end
47 end
48
36 def test_new_should_accept_id_with_hash
49 def test_new_should_accept_id_with_hash
37 assert_difference 'IssueRelation.count' do
50 assert_difference 'IssueRelation.count' do
38 @request.session[:user_id] = 3
51 @request.session[:user_id] = 3
@@ -68,4 +81,20 class IssueRelationsControllerTest < ActionController::TestCase
68 post :destroy, :id => '2', :issue_id => '3'
81 post :destroy, :id => '2', :issue_id => '3'
69 end
82 end
70 end
83 end
84
85 def test_destroy_xhr
86 IssueRelation.create!(:relation_type => IssueRelation::TYPE_RELATES) do |r|
87 r.issue_from_id = 3
88 r.issue_to_id = 1
89 end
90
91 assert_difference 'IssueRelation.count', -1 do
92 @request.session[:user_id] = 3
93 xhr :post, :destroy, :id => '2', :issue_id => '3'
94 assert_select_rjs 'relations' do
95 assert_select 'table', 1
96 assert_select 'tr', 1 # relation left
97 end
98 end
99 end
71 end
100 end
General Comments 0
You need to be logged in to leave comments. Login now