Feature #28829 » fix-context-menu-on-issue.patch
| app/views/context_menus/issues.html.erb | ||
|---|---|---|
| 2 | 2 |
<%= call_hook(:view_issues_context_menu_start, {:issues => @issues, :can => @can, :back => @back }) %>
|
| 3 | 3 | |
| 4 | 4 |
<% if @issue -%> |
| 5 |
<li><%= context_menu_link l(:button_edit), edit_issue_path(@issue), |
|
| 5 |
<% if @back != issue_url(@issue.id, :only_path => false) -%> |
|
| 6 |
<li><%= context_menu_link l(:button_edit), edit_issue_path(@issue), |
|
| 6 | 7 |
:class => 'icon icon-edit', :disabled => !@can[:edit] %></li> |
| 8 |
<% end %> |
|
| 7 | 9 |
<% else %> |
| 8 | 10 |
<li><%= context_menu_link l(:button_edit), bulk_edit_issues_path(:ids => @issue_ids), |
| 9 | 11 |
:class => 'icon icon-edit', :disabled => !@can[:edit] %></li> |
| ... | ... | |
| 129 | 131 |
</li> |
| 130 | 132 |
<% end %> |
| 131 | 133 | |
| 132 |
<% if User.current.logged? %> |
|
| 134 |
<% if User.current.logged? && (@issue.nil? || @back != issue_url(@issue.id, :only_path => false)) -%>
|
|
| 133 | 135 |
<li><%= watcher_link(@issues, User.current) %></li> |
| 134 | 136 |
<% end %> |
| 135 | 137 | |
| ... | ... | |
| 139 | 141 |
<% end %> |
| 140 | 142 | |
| 141 | 143 |
<% if @issue.present? %> |
| 142 |
<% if @can[:log_time] -%> |
|
| 143 |
<li><%= context_menu_link l(:button_log_time), new_issue_time_entry_path(@issue), |
|
| 144 |
:class => 'icon icon-time-add' %></li> |
|
| 144 |
<% if @back != issue_url(@issue.id, :only_path => false) -%> |
|
| 145 |
<% if @can[:log_time] -%> |
|
| 146 |
<li><%= context_menu_link l(:button_log_time), new_issue_time_entry_path(@issue), |
|
| 147 |
:class => 'icon icon-time-add' %></li> |
|
| 148 |
<% end %> |
|
| 149 |
<li><%= context_menu_link l(:button_copy), project_copy_issue_path(@project, @issue), |
|
| 150 |
:class => 'icon icon-copy', :disabled => !@can[:copy] %></li> |
|
| 145 | 151 |
<% end %> |
| 146 |
<li><%= context_menu_link l(:button_copy), project_copy_issue_path(@project, @issue), |
|
| 147 |
:class => 'icon icon-copy', :disabled => !@can[:copy] %></li> |
|
| 148 | 152 |
<% else %> |
| 149 | 153 |
<li><%= context_menu_link l(:button_copy), bulk_edit_issues_path(:ids => @issue_ids, :copy => '1'), |
| 150 | 154 |
:class => 'icon icon-copy', :disabled => !@can[:copy] %></li> |
| 151 | 155 |
<% end %> |
| 156 |
<% if @issue.nil? || @back != issue_url(@issue.id, :only_path => false) -%> |
|
| 152 | 157 |
<li><%= context_menu_link l(:button_delete), issues_path(:ids => @issue_ids, :back_url => @back), |
| 153 | 158 |
:method => :delete, :data => {:confirm => issues_destroy_confirmation_message(@issues)}, :class => 'icon icon-del', :disabled => !@can[:delete] %></li>
|
| 154 | ||
| 159 |
<% end %> |
|
| 155 | 160 |
<%= call_hook(:view_issues_context_menu_end, {:issues => @issues, :can => @can, :back => @back }) %>
|
| 156 | 161 |
</ul> |
| app/views/issues/_action_menu.html.erb | ||
|---|---|---|
| 4 | 4 |
<%= watcher_link(@issue, User.current) %> |
| 5 | 5 |
<%= 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? %> |
| 6 | 6 |
<%= link_to l(:button_delete), issue_path(@issue), :data => {:confirm => issues_destroy_confirmation_message(@issue)}, :method => :delete, :class => 'icon icon-del' if @issue.deletable? %>
|
| 7 |
<%= form_tag({}, :data => {:cm_url => issues_context_menu_path}) do %>
|
|
| 8 |
<span class="hascontextmenu"> |
|
| 9 |
<%= check_box_tag("ids[]", @issue.id, false, :style => 'display:none;', :id => nil) %>
|
|
| 10 |
<%= link_to_context_menu %> |
|
| 11 |
</span> |
|
| 7 |
<% if @issue.new_statuses_allowed_to.present? %> |
|
| 8 |
<%= form_tag({}, :data => {:cm_url => issues_context_menu_path}) do %>
|
|
| 9 |
<span class="hascontextmenu"> |
|
| 10 |
<%= check_box_tag("ids[]", @issue.id, false, :style => 'display:none;', :id => nil) %>
|
|
| 11 |
<%= link_to_context_menu %> |
|
| 12 |
</span> |
|
| 13 |
<% end %> |
|
| 12 | 14 |
<% end %> |
| 13 | 15 |
</div> |
| public/stylesheets/responsive.css | ||
|---|---|---|
| 625 | 625 |
} |
| 626 | 626 | |
| 627 | 627 |
.contextual span.hascontextmenu a.js-contextmenu {
|
| 628 |
width: initial !important;
|
|
| 629 |
height: initial !important;
|
|
| 630 |
margin-top: 3px !important;
|
|
| 628 |
width: auto;
|
|
| 629 |
height: auto;
|
|
| 630 |
margin-top: 2px !important;
|
|
| 631 | 631 |
padding-left: 25px !important; |
| 632 |
font-size: 100%; |
|
| 632 | 633 |
} |
| 633 | 634 |
.contextual span.hascontextmenu a.js-contextmenu::after { content: ''; }
|
| 634 | 635 | |
| test/functional/context_menus_controller_test.rb | ||
|---|---|---|
| 66 | 66 |
assert_select 'a.icon-del.disabled[href="#"]', :text => 'Delete' |
| 67 | 67 |
end |
| 68 | 68 |
end |
| 69 |
def test_context_menu_one_issue_if_the_back_url_is_issue_path |
|
| 70 |
@request.session[:user_id] = 2 |
|
| 71 |
@request.env['HTTP_REFERER'] = issue_url(1, :only_path => false) |
|
| 72 |
get :issues, :params => {
|
|
| 73 |
:ids => [1] |
|
| 74 |
} |
|
| 75 |
assert_response :success |
|
| 76 |
assert_select 'a.icon-edit[href=?]', '/issues/1/edit', { :text => 'Edit', :count => 0 }
|
|
| 77 |
assert_select 'a.icon-time-add[href=?]', '/issues/1/time_entries/new', { :text => 'Log time', :count => 0 }
|
|
| 78 |
assert_select 'a.icon-fav-off[href=?]', '/watchers/watch?object_id=1&object_type=issue', { :text => 'Watch', :count => 0 }
|
|
| 79 |
assert_select 'a.icon-copy[href=?]', '/projects/ecookbook/issues/1/copy', { :text => 'Copy', :count => 0 }
|
|
| 80 |
assert_select 'a.icon-del[href=?]', '/issues?ids%5B%5D=1', { :text => 'Delete', :count => 0 }
|
|
| 81 |
end |
|
| 69 | 82 | |
| 70 | 83 |
def test_context_menu_multiple_issues_of_same_project |
| 71 | 84 |
@request.session[:user_id] = 2 |
| test/functional/issues_controller_test.rb | ||
|---|---|---|
| 1577 | 1577 |
# action_menu for anonymous role |
| 1578 | 1578 |
assert_select 'div.contextual' do |
| 1579 | 1579 |
assert_select 'a[href=?]', '/issues/1/edit' |
| 1580 |
assert_select "form[data-cm-url=?]", '/issues/context_menu' do |
|
| 1581 |
assert_select 'span[class=?]', 'hascontextmenu' |
|
| 1582 |
end |
|
| 1583 | 1580 |
end |
| 1584 | 1581 |
end |
| 1585 | 1582 | |
- « Previous
- 1
- …
- 7
- 8
- 9
- Next »