diff --git a/app/views/context_menus/issues.html.erb b/app/views/context_menus/issues.html.erb
index 7919472af0..63fd4da37c 100644
--- a/app/views/context_menus/issues.html.erb
+++ b/app/views/context_menus/issues.html.erb
@@ -2,8 +2,10 @@
<%= call_hook(:view_issues_context_menu_start, {:issues => @issues, :can => @can, :back => @back }) %>
<% if @issue -%>
-
<%= context_menu_link l(:button_edit), edit_issue_path(@issue),
+ <% if @back != issue_url(@issue.id, :only_path => false) -%>
+ <%= context_menu_link l(:button_edit), edit_issue_path(@issue),
:class => 'icon icon-edit', :disabled => !@can[:edit] %>
+ <% end %>
<% else %>
<%= context_menu_link l(:button_edit), bulk_edit_issues_path(:ids => @issue_ids),
:class => 'icon icon-edit', :disabled => !@can[:edit] %>
@@ -129,7 +131,7 @@
<% end %>
-<% if User.current.logged? %>
+<% if User.current.logged? && (@issue.nil? || @back != issue_url(@issue.id, :only_path => false)) -%>
<%= watcher_link(@issues, User.current) %>
<% end %>
@@ -139,18 +141,21 @@
<% end %>
<% if @issue.present? %>
- <% if @can[:log_time] -%>
- <%= context_menu_link l(:button_log_time), new_issue_time_entry_path(@issue),
- :class => 'icon icon-time-add' %>
+ <% if @back != issue_url(@issue.id, :only_path => false) -%>
+ <% if @can[:log_time] -%>
+ <%= context_menu_link l(:button_log_time), new_issue_time_entry_path(@issue),
+ :class => 'icon icon-time-add' %>
+ <% end %>
+ <%= context_menu_link l(:button_copy), project_copy_issue_path(@project, @issue),
+ :class => 'icon icon-copy', :disabled => !@can[:copy] %>
<% end %>
- <%= context_menu_link l(:button_copy), project_copy_issue_path(@project, @issue),
- :class => 'icon icon-copy', :disabled => !@can[:copy] %>
<% else %>
<%= context_menu_link l(:button_copy), bulk_edit_issues_path(:ids => @issue_ids, :copy => '1'),
:class => 'icon icon-copy', :disabled => !@can[:copy] %>
<% end %>
+<% if @issue.nil? || @back != issue_url(@issue.id, :only_path => false) -%>
<%= context_menu_link l(:button_delete), issues_path(:ids => @issue_ids, :back_url => @back),
:method => :delete, :data => {:confirm => issues_destroy_confirmation_message(@issues)}, :class => 'icon icon-del', :disabled => !@can[:delete] %>
-
+<% end %>
<%= call_hook(:view_issues_context_menu_end, {:issues => @issues, :can => @can, :back => @back }) %>
diff --git a/app/views/issues/_action_menu.html.erb b/app/views/issues/_action_menu.html.erb
index 6398583946..06c59541ae 100644
--- a/app/views/issues/_action_menu.html.erb
+++ b/app/views/issues/_action_menu.html.erb
@@ -4,10 +4,12 @@
<%= watcher_link(@issue, User.current) %>
<%= link_to l(:button_copy), project_copy_issue_path(@project, @issue), :class => 'icon icon-copy' if User.current.allowed_to?(:copy_issues, @project) && Issue.allowed_target_projects.any? %>
<%= link_to l(:button_delete), issue_path(@issue), :data => {:confirm => issues_destroy_confirmation_message(@issue)}, :method => :delete, :class => 'icon icon-del' if @issue.deletable? %>
-<%= form_tag({}, :data => {:cm_url => issues_context_menu_path}) do %>
-
+<% if @issue.new_statuses_allowed_to.present? %>
+ <%= form_tag({}, :data => {:cm_url => issues_context_menu_path}) do %>
+
+ <% end %>
<% end %>
\ No newline at end of file
diff --git a/public/stylesheets/responsive.css b/public/stylesheets/responsive.css
index 3157444063..0d75bc9fbc 100644
--- a/public/stylesheets/responsive.css
+++ b/public/stylesheets/responsive.css
@@ -625,10 +625,11 @@
}
.contextual span.hascontextmenu a.js-contextmenu {
- width: initial !important;
- height: initial !important;
- margin-top: 3px !important;
+ width: auto;
+ height: auto;
+ margin-top: 2px !important;
padding-left: 25px !important;
+ font-size: 100%;
}
.contextual span.hascontextmenu a.js-contextmenu::after { content: ''; }
diff --git a/test/functional/context_menus_controller_test.rb b/test/functional/context_menus_controller_test.rb
index 60ffdb819f..4fc08fd379 100644
--- a/test/functional/context_menus_controller_test.rb
+++ b/test/functional/context_menus_controller_test.rb
@@ -66,6 +66,19 @@ class ContextMenusControllerTest < Redmine::ControllerTest
assert_select 'a.icon-del.disabled[href="#"]', :text => 'Delete'
end
end
+ def test_context_menu_one_issue_if_the_back_url_is_issue_path
+ @request.session[:user_id] = 2
+ @request.env['HTTP_REFERER'] = issue_url(1, :only_path => false)
+ get :issues, :params => {
+ :ids => [1]
+ }
+ assert_response :success
+ assert_select 'a.icon-edit[href=?]', '/issues/1/edit', { :text => 'Edit', :count => 0 }
+ assert_select 'a.icon-time-add[href=?]', '/issues/1/time_entries/new', { :text => 'Log time', :count => 0 }
+ assert_select 'a.icon-fav-off[href=?]', '/watchers/watch?object_id=1&object_type=issue', { :text => 'Watch', :count => 0 }
+ assert_select 'a.icon-copy[href=?]', '/projects/ecookbook/issues/1/copy', { :text => 'Copy', :count => 0 }
+ assert_select 'a.icon-del[href=?]', '/issues?ids%5B%5D=1', { :text => 'Delete', :count => 0 }
+ end
def test_context_menu_multiple_issues_of_same_project
@request.session[:user_id] = 2
diff --git a/test/functional/issues_controller_test.rb b/test/functional/issues_controller_test.rb
index 35c5053450..6608ae0198 100644
--- a/test/functional/issues_controller_test.rb
+++ b/test/functional/issues_controller_test.rb
@@ -1577,9 +1577,6 @@ class IssuesControllerTest < Redmine::ControllerTest
# action_menu for anonymous role
assert_select 'div.contextual' do
assert_select 'a[href=?]', '/issues/1/edit'
- assert_select "form[data-cm-url=?]", '/issues/context_menu' do
- assert_select 'span[class=?]', 'hascontextmenu'
- end
end
end