diff --git a/app/views/issues/_action_menu.html.erb b/app/views/issues/_action_menu.html.erb
index b535faec90..6398583946 100644
--- a/app/views/issues/_action_menu.html.erb
+++ b/app/views/issues/_action_menu.html.erb
@@ -4,4 +4,10 @@
<%= 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 %>
+
+<% end %>
+
\ No newline at end of file
diff --git a/public/stylesheets/application.css b/public/stylesheets/application.css
index ebe2ae02e8..c48ff37c4b 100644
--- a/public/stylesheets/application.css
+++ b/public/stylesheets/application.css
@@ -435,6 +435,8 @@ div.square {
.contextual .icon {padding-top: 2px; padding-bottom: 3px;}
.contextual input, .contextual select {font-size:0.9em;}
.message .contextual { margin-top: 0; }
+.contextual span.hascontextmenu { background-color: transparent !important; }
+.contextual span.hascontextmenu a.js-contextmenu { color: #169 !important; }
.splitcontent {overflow:auto;}
.splitcontentleft, #list-left {float:left; width:49%;}
diff --git a/public/stylesheets/responsive.css b/public/stylesheets/responsive.css
index fb156863a7..3157444063 100644
--- a/public/stylesheets/responsive.css
+++ b/public/stylesheets/responsive.css
@@ -624,6 +624,14 @@
float: none;
}
+ .contextual span.hascontextmenu a.js-contextmenu {
+ width: initial !important;
+ height: initial !important;
+ margin-top: 3px !important;
+ padding-left: 25px !important;
+ }
+ .contextual span.hascontextmenu a.js-contextmenu::after { content: ''; }
+
/* loading indicator */
#ajax-indicator {
width: 60%;
diff --git a/test/functional/issues_controller_test.rb b/test/functional/issues_controller_test.rb
index 99336f682c..44033b80f8 100644
--- a/test/functional/issues_controller_test.rb
+++ b/test/functional/issues_controller_test.rb
@@ -1573,6 +1573,14 @@ class IssuesControllerTest < Redmine::ControllerTest
end
end
assert_select 'title', :text => "Bug #1: Cannot print recipes - eCookbook - Redmine"
+
+ # Assert action_menu on issue
+ 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 icon-only-context-menu'
+ end
+ end
end
def test_show_by_manager
@@ -1596,6 +1604,18 @@ class IssuesControllerTest < Redmine::ControllerTest
assert_select 'textarea[name=?]', 'issue[notes]'
end
end
+
+ # Assert action_menu on issue
+ assert_select "div.contextual" do
+ assert_select 'a[href=?]', '/issues/1/edit'
+ assert_select 'a[href=?]', '/issues/1/time_entries/new'
+ assert_select 'a[href=?]', '/watchers/watch?object_id=1&object_type=issue'
+ assert_select 'a[href=?]', '/projects/ecookbook/issues/1/copy'
+ assert_select 'a[href=?][data-method=?]', '/issues/1', 'delete'
+ assert_select 'form[data-cm-url=?]', '/issues/context_menu' do
+ assert_select 'span[class=?]', 'hascontextmenu icon-only-context-menu'
+ end
+ end
end
def test_show_should_display_update_form