From: Jean-Philippe Lang Date: Tue, 19 Apr 2016 18:37:52 +0000 (+0000) Subject: Removed the "New issue" menu item (#6204). X-Git-Tag: 3.3.0~117 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=dcc569fa34f7c961c2d2a5ba1f9da7b7a85b2f3b;p=redmine.git Removed the "New issue" menu item (#6204). git-svn-id: http://svn.redmine.org/redmine/trunk@15344 e93f8b46-1217-0410-a6f0-8f06a7374b81 --- diff --git a/app/controllers/issues_controller.rb b/app/controllers/issues_controller.rb index 51999544f..21b810c8c 100644 --- a/app/controllers/issues_controller.rb +++ b/app/controllers/issues_controller.rb @@ -16,7 +16,6 @@ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. class IssuesController < ApplicationController - menu_item :new_issue, :only => [:new, :create] default_search_scope :issues before_filter :find_issue, :only => [:show, :edit, :update] diff --git a/app/views/issues/index.html.erb b/app/views/issues/index.html.erb index 0d1f008ca..2e971711f 100644 --- a/app/views/issues/index.html.erb +++ b/app/views/issues/index.html.erb @@ -1,8 +1,7 @@
-<% if !@query.new_record? && @query.editable_by?(User.current) %> - <%= link_to l(:button_edit), edit_query_path(@query), :class => 'icon icon-edit' %> - <%= delete_link query_path(@query) %> -<% end %> + <% if @project && User.current.allowed_to?(:add_issues, @project) && @project.trackers.any? %> + <%= link_to l(:label_issue_new), new_project_issue_path(@project), :class => 'icon icon-add new-issue' %> + <% end %>

<%= @query.new_record? ? l(:label_issue_plural) : @query.name %>

@@ -50,10 +49,17 @@

<%= link_to_function l(:button_apply), '$("#query_form").submit()', :class => 'icon icon-checked' %> <%= link_to l(:button_clear), { :set_filter => 1, :project_id => @project }, :class => 'icon icon-reload' %> - <% if @query.new_record? && User.current.allowed_to?(:save_queries, @project, :global => true) %> + <% if @query.new_record? %> + <% if User.current.allowed_to?(:save_queries, @project, :global => true) %> <%= link_to_function l(:button_save), "$('#query_form').attr('action', '#{ @project ? new_project_query_path(@project) : new_query_path }').submit()", :class => 'icon icon-save' %> + <% end %> + <% else %> + <% if @query.editable_by?(User.current) %> + <%= link_to l(:button_edit), edit_query_path(@query), :class => 'icon icon-edit' %> + <%= delete_link query_path(@query) %> + <% end %> <% end %>

diff --git a/lib/redmine.rb b/lib/redmine.rb index df234ebbd..64c6a6946 100644 --- a/lib/redmine.rb +++ b/lib/redmine.rb @@ -231,10 +231,6 @@ Redmine::MenuManager.map :project_menu do |menu| menu.push :roadmap, { :controller => 'versions', :action => 'index' }, :param => :project_id, :if => Proc.new { |p| p.shared_versions.any? } menu.push :issues, { :controller => 'issues', :action => 'index' }, :param => :project_id, :caption => :label_issue_plural - menu.push :new_issue, { :controller => 'issues', :action => 'new', :copy_from => nil }, :param => :project_id, :caption => :label_issue_new, - :html => { :accesskey => Redmine::AccessKeys.key_for(:new_issue) }, - :if => Proc.new { |p| p.trackers.any? }, - :permission => :add_issues menu.push :gantt, { :controller => 'gantts', :action => 'show' }, :param => :project_id, :caption => :label_gantt menu.push :calendar, { :controller => 'calendars', :action => 'show' }, :param => :project_id, :caption => :label_calendar menu.push :news, { :controller => 'news', :action => 'index' }, :param => :project_id, :caption => :label_news_plural diff --git a/test/functional/issues_controller_test.rb b/test/functional/issues_controller_test.rb index 38125feee..f6e6459c7 100644 --- a/test/functional/issues_controller_test.rb +++ b/test/functional/issues_controller_test.rb @@ -1057,6 +1057,30 @@ class IssuesControllerTest < ActionController::TestCase assert @response.body.blank? end + def test_index_should_include_new_issue_link + @request.session[:user_id] = 2 + get :index, :project_id => 1 + assert_select 'a.new-issue[href="/projects/ecookbook/issues/new"]', :text => 'New issue' + end + + def test_index_should_not_include_new_issue_link_for_project_without_trackers + Project.find(1).trackers.clear + + @request.session[:user_id] = 2 + get :index, :project_id => 1 + assert_select 'a.new-issue', 0 + end + + def test_index_should_not_include_new_issue_link_for_users_with_copy_issues_permission_only + role = Role.find(1) + role.remove_permission! :add_issues + role.add_permission! :copy_issues + + @request.session[:user_id] = 2 + get :index, :project_id => 1 + assert_select 'a.new-issue', 0 + end + def test_show_by_anonymous get :show, :id => 1 assert_response :success @@ -2795,9 +2819,6 @@ class IssuesControllerTest < ActionController::TestCase end assert_select 'input[name=copy_from][value="1"]' end - - # "New issue" menu item should not link to copy - assert_select '#main-menu a.new-issue[href="/projects/ecookbook/issues/new"]' end def test_new_as_copy_without_add_issues_permission_should_not_propose_current_project_as_target diff --git a/test/functional/projects_controller_test.rb b/test/functional/projects_controller_test.rb index e7ae2218d..55dbeefb0 100644 --- a/test/functional/projects_controller_test.rb +++ b/test/functional/projects_controller_test.rb @@ -691,28 +691,4 @@ class ProjectsControllerTest < ActionController::TestCase get :show, :id => 1 assert_select 'body.project-ecookbook' end - - def test_project_menu_should_include_new_issue_link - @request.session[:user_id] = 2 - get :show, :id => 1 - assert_select '#main-menu a.new-issue[href="/projects/ecookbook/issues/new"]', :text => 'New issue' - end - - def test_project_menu_should_not_include_new_issue_link_for_project_without_trackers - Project.find(1).trackers.clear - - @request.session[:user_id] = 2 - get :show, :id => 1 - assert_select '#main-menu a.new-issue', 0 - end - - def test_project_menu_should_not_include_new_issue_link_for_users_with_copy_issues_permission_only - role = Role.find(1) - role.remove_permission! :add_issues - role.add_permission! :copy_issues - - @request.session[:user_id] = 2 - get :show, :id => 1 - assert_select '#main-menu a.new-issue', 0 - end end diff --git a/test/unit/lib/redmine_test.rb b/test/unit/lib/redmine_test.rb index 4329871df..b385d36a8 100644 --- a/test/unit/lib/redmine_test.rb +++ b/test/unit/lib/redmine_test.rb @@ -62,12 +62,11 @@ class RedmineTest < ActiveSupport::TestCase end def test_project_menu - assert_number_of_items_in_menu :project_menu, 14 + assert_number_of_items_in_menu :project_menu, 13 assert_menu_contains_item_named :project_menu, :overview assert_menu_contains_item_named :project_menu, :activity assert_menu_contains_item_named :project_menu, :roadmap assert_menu_contains_item_named :project_menu, :issues - assert_menu_contains_item_named :project_menu, :new_issue assert_menu_contains_item_named :project_menu, :calendar assert_menu_contains_item_named :project_menu, :gantt assert_menu_contains_item_named :project_menu, :news @@ -78,9 +77,4 @@ class RedmineTest < ActiveSupport::TestCase assert_menu_contains_item_named :project_menu, :repository assert_menu_contains_item_named :project_menu, :settings end - - def test_new_issue_should_have_root_as_a_parent - new_issue = get_menu_item(:project_menu, :new_issue) - assert_equal :root, new_issue.parent.name - end end