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 %> + + <%= check_box_tag("ids[]", @issue.id, false, :style => 'display:none;', :id => nil) %> + <%= link_to_context_menu %> + +<% 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