##// END OF EJS Templates
Don't use a global variable for storing context menu URL....
Jean-Philippe Lang -
r15554:18073c971e69
parent child
Show More
@@ -1165,7 +1165,7 module ApplicationHelper
1165 end
1165 end
1166 end
1166 end
1167
1167
1168 def context_menu(url)
1168 def context_menu
1169 unless @context_menu_included
1169 unless @context_menu_included
1170 content_for :header_tags do
1170 content_for :header_tags do
1171 javascript_include_tag('context_menu') +
1171 javascript_include_tag('context_menu') +
@@ -1178,7 +1178,7 module ApplicationHelper
1178 end
1178 end
1179 @context_menu_included = true
1179 @context_menu_included = true
1180 end
1180 end
1181 javascript_tag "contextMenuInit('#{ url_for(url) }')"
1181 nil
1182 end
1182 end
1183
1183
1184 def calendar_for(field_id)
1184 def calendar_for(field_id)
@@ -90,7 +90,7 module IssuesHelper
90 end
90 end
91
91
92 def render_descendants_tree(issue)
92 def render_descendants_tree(issue)
93 s = '<form><table class="list issues">'
93 s = '<table class="list issues">'
94 issue_list(issue.descendants.visible.preload(:status, :priority, :tracker, :assigned_to).sort_by(&:lft)) do |child, level|
94 issue_list(issue.descendants.visible.preload(:status, :priority, :tracker, :assigned_to).sort_by(&:lft)) do |child, level|
95 css = "issue issue-#{child.id} hascontextmenu #{child.css_classes}"
95 css = "issue issue-#{child.id} hascontextmenu #{child.css_classes}"
96 css << " idnt idnt-#{level}" if level > 0
96 css << " idnt idnt-#{level}" if level > 0
@@ -102,7 +102,7 module IssuesHelper
102 content_tag('td', child.disabled_core_fields.include?('done_ratio') ? '' : progress_bar(child.done_ratio), :class=> 'done_ratio'),
102 content_tag('td', child.disabled_core_fields.include?('done_ratio') ? '' : progress_bar(child.done_ratio), :class=> 'done_ratio'),
103 :class => css)
103 :class => css)
104 end
104 end
105 s << '</table></form>'
105 s << '</table>'
106 s.html_safe
106 s.html_safe
107 end
107 end
108
108
@@ -1,4 +1,4
1 <%= form_tag({}) do -%>
1 <%= form_tag({}, :data => {:cm_url => issues_context_menu_path}) do -%>
2 <%= hidden_field_tag 'back_url', url_for(:params => request.query_parameters), :id => nil %>
2 <%= hidden_field_tag 'back_url', url_for(:params => request.query_parameters), :id => nil %>
3 <div class="autoscroll">
3 <div class="autoscroll">
4 <table class="list issues <%= sort_css_classes %>">
4 <table class="list issues <%= sort_css_classes %>">
@@ -1,5 +1,5
1 <% if issues && issues.any? %>
1 <% if issues && issues.any? %>
2 <%= form_tag({}) do %>
2 <%= form_tag({}, :data => {:cm_url => issues_context_menu_path}) do %>
3 <table class="list list-simple issues">
3 <table class="list list-simple issues">
4 <thead><tr>
4 <thead><tr>
5 <th class="id">#</th>
5 <th class="id">#</th>
@@ -7,7 +7,7
7 <p><strong><%=l(:label_related_issues)%></strong></p>
7 <p><strong><%=l(:label_related_issues)%></strong></p>
8
8
9 <% if @relations.present? %>
9 <% if @relations.present? %>
10 <form>
10 <%= form_tag({}, :data => {:cm_url => issues_context_menu_path}) do %>
11 <table class="list issues">
11 <table class="list issues">
12 <% @relations.each do |relation| %>
12 <% @relations.each do |relation| %>
13 <% other_issue = relation.other_issue(@issue) -%>
13 <% other_issue = relation.other_issue(@issue) -%>
@@ -30,7 +30,7
30 </tr>
30 </tr>
31 <% end %>
31 <% end %>
32 </table>
32 </table>
33 </form>
33 <% end %>
34 <% end %>
34 <% end %>
35
35
36 <%= form_for @relation, {
36 <%= form_for @relation, {
@@ -69,4 +69,4
69 :title => l(:label_changes_details)) %>
69 :title => l(:label_changes_details)) %>
70 <% end %>
70 <% end %>
71
71
72 <%= context_menu issues_context_menu_path %>
72 <%= context_menu %>
@@ -96,7 +96,9 end %>
96 <%= link_to_new_subtask(@issue) if User.current.allowed_to?(:manage_subtasks, @project) %>
96 <%= link_to_new_subtask(@issue) if User.current.allowed_to?(:manage_subtasks, @project) %>
97 </div>
97 </div>
98 <p><strong><%=l(:label_subtask_plural)%></strong></p>
98 <p><strong><%=l(:label_subtask_plural)%></strong></p>
99 <%= form_tag({}, :data => {:cm_url => issues_context_menu_path}) do %>
99 <%= render_descendants_tree(@issue) unless @issue.leaf? %>
100 <%= render_descendants_tree(@issue) unless @issue.leaf? %>
101 <% end %>
100 </div>
102 </div>
101 <% end %>
103 <% end %>
102
104
@@ -157,4 +159,4 end %>
157 <%= auto_discovery_link_tag(:atom, {:format => 'atom', :key => User.current.rss_key}, :title => "#{@issue.project} - #{@issue.tracker} ##{@issue.id}: #{@issue.subject}") %>
159 <%= auto_discovery_link_tag(:atom, {:format => 'atom', :key => User.current.rss_key}, :title => "#{@issue.project} - #{@issue.tracker} ##{@issue.id}: #{@issue.subject}") %>
158 <% end %>
160 <% end %>
159
161
160 <%= context_menu issues_context_menu_path %>
162 <%= context_menu %>
@@ -16,6 +16,6
16 <%= render_blocks(@blocks['right'], @user) %>
16 <%= render_blocks(@blocks['right'], @user) %>
17 </div>
17 </div>
18
18
19 <%= context_menu issues_context_menu_path %>
19 <%= context_menu %>
20
20
21 <% html_title(l(:label_my_page)) -%>
21 <% html_title(l(:label_my_page)) -%>
@@ -1,4 +1,4
1 <%= form_tag({}) do -%>
1 <%= form_tag({}, :data => {:cm_url => time_entries_context_menu_path}) do -%>
2 <%= hidden_field_tag 'back_url', url_for(:params => request.query_parameters), :id => nil %>
2 <%= hidden_field_tag 'back_url', url_for(:params => request.query_parameters), :id => nil %>
3 <div class="autoscroll">
3 <div class="autoscroll">
4 <table class="list time-entries">
4 <table class="list time-entries">
@@ -60,4 +60,4
60 </div>
60 </div>
61 <% end -%>
61 <% end -%>
62
62
63 <%= context_menu time_entries_context_menu_path %>
63 <%= context_menu %>
@@ -23,7 +23,7
23 <%= render(:partial => "wiki/content",
23 <%= render(:partial => "wiki/content",
24 :locals => {:content => version.wiki_page.content}) if version.wiki_page %>
24 :locals => {:content => version.wiki_page.content}) if version.wiki_page %>
25 <% if (issues = @issues_by_version[version]) && issues.size > 0 %>
25 <% if (issues = @issues_by_version[version]) && issues.size > 0 %>
26 <%= form_tag({}) do -%>
26 <%= form_tag({}, :data => {:cm_url => issues_context_menu_path}) do -%>
27 <table class="list related-issues">
27 <table class="list related-issues">
28 <caption><%= l(:label_related_issues) %></caption>
28 <caption><%= l(:label_related_issues) %></caption>
29 <% issues.each do |issue| -%>
29 <% issues.each do |issue| -%>
@@ -99,4 +99,4
99
99
100 <% html_title(l(:label_roadmap)) %>
100 <% html_title(l(:label_roadmap)) %>
101
101
102 <%= context_menu issues_context_menu_path %>
102 <%= context_menu %>
@@ -36,7 +36,7
36 </div>
36 </div>
37
37
38 <% if @issues.present? %>
38 <% if @issues.present? %>
39 <%= form_tag({}) do -%>
39 <%= form_tag({}, :data => {:cm_url => issues_context_menu_path}) do -%>
40 <table class="list related-issues">
40 <table class="list related-issues">
41 <caption><%= l(:label_related_issues) %></caption>
41 <caption><%= l(:label_related_issues) %></caption>
42 <%- @issues.each do |issue| -%>
42 <%- @issues.each do |issue| -%>
@@ -47,7 +47,7
47 <% end %>
47 <% end %>
48 </table>
48 </table>
49 <% end %>
49 <% end %>
50 <%= context_menu issues_context_menu_path %>
50 <%= context_menu %>
51 <% end %>
51 <% end %>
52 </div>
52 </div>
53
53
@@ -2,7 +2,6
2 Copyright (C) 2006-2016 Jean-Philippe Lang */
2 Copyright (C) 2006-2016 Jean-Philippe Lang */
3
3
4 var contextMenuObserving;
4 var contextMenuObserving;
5 var contextMenuUrl;
6
5
7 function contextMenuRightClick(event) {
6 function contextMenuRightClick(event) {
8 var target = $(event.target);
7 var target = $(event.target);
@@ -98,13 +97,16 function contextMenuShow(event) {
98 var window_height;
97 var window_height;
99 var max_width;
98 var max_width;
100 var max_height;
99 var max_height;
100 var url;
101
101
102 $('#context-menu').css('left', (render_x + 'px'));
102 $('#context-menu').css('left', (render_x + 'px'));
103 $('#context-menu').css('top', (render_y + 'px'));
103 $('#context-menu').css('top', (render_y + 'px'));
104 $('#context-menu').html('');
104 $('#context-menu').html('');
105
105
106 url = $(event.target).parents('form').first().data('cm-url');
107
106 $.ajax({
108 $.ajax({
107 url: contextMenuUrl,
109 url: url,
108 data: $(event.target).parents('form').first().serialize(),
110 data: $(event.target).parents('form').first().serialize(),
109 success: function(data, textStatus, jqXHR) {
111 success: function(data, textStatus, jqXHR) {
110 $('#context-menu').html(data);
112 $('#context-menu').html(data);
@@ -208,8 +210,7 function contextMenuClearDocumentSelection() {
208 }
210 }
209 }
211 }
210
212
211 function contextMenuInit(url) {
213 function contextMenuInit() {
212 contextMenuUrl = url;
213 contextMenuCreate();
214 contextMenuCreate();
214 contextMenuUnselectAll();
215 contextMenuUnselectAll();
215
216
@@ -243,5 +244,6 function window_size() {
243 }
244 }
244
245
245 $(document).ready(function(){
246 $(document).ready(function(){
247 contextMenuInit();
246 $('input[type=checkbox].toggle-selection').on('change', toggleIssuesSelection);
248 $('input[type=checkbox].toggle-selection').on('change', toggleIssuesSelection);
247 });
249 });
@@ -36,7 +36,7 class VersionsControllerTest < Redmine::ControllerTest
36 assert_select 'h3', :text => Version.find(1).name, :count => 0
36 assert_select 'h3', :text => Version.find(1).name, :count => 0
37
37
38 # Context menu on issues
38 # Context menu on issues
39 assert_select "script", :text => Regexp.new(Regexp.escape("contextMenuInit('/issues/context_menu')"))
39 assert_select "form[data-cm-url=?]", '/issues/context_menu'
40 assert_select "div#sidebar" do
40 assert_select "div#sidebar" do
41 # Links to versions anchors
41 # Links to versions anchors
42 assert_select 'a[href=?]', '#2.0'
42 assert_select 'a[href=?]', '#2.0'
General Comments 0
You need to be logged in to leave comments. Login now