]> source.dussan.org Git - redmine.git/commitdiff
Removed the "New issue" menu item (#6204).
authorJean-Philippe Lang <jp_lang@yahoo.fr>
Tue, 19 Apr 2016 18:37:52 +0000 (18:37 +0000)
committerJean-Philippe Lang <jp_lang@yahoo.fr>
Tue, 19 Apr 2016 18:37:52 +0000 (18:37 +0000)
git-svn-id: http://svn.redmine.org/redmine/trunk@15344 e93f8b46-1217-0410-a6f0-8f06a7374b81

app/controllers/issues_controller.rb
app/views/issues/index.html.erb
lib/redmine.rb
test/functional/issues_controller_test.rb
test/functional/projects_controller_test.rb
test/unit/lib/redmine_test.rb

index 51999544f402442363a7ac441e19ca20cab97d87..21b810c8ceabc57124dedea93e840a1e7e3fb9c7 100644 (file)
@@ -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]
index 0d1f008caefb19f5fb845d89ecda7c1068fc2d64..2e971711f87a68d095a17b74b0622fedf245884e 100644 (file)
@@ -1,8 +1,7 @@
 <div class="contextual">
-<% 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 %>
 </div>
 
 <h2><%= @query.new_record? ? l(:label_issue_plural) : @query.name %></h2>
     <p class="buttons">
     <%= 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 %>
     </p>
   </div>
index df234ebbda7a4b187a23ac55d40005be04e52737..64c6a694622d20babbe48d70f451fe4bbe91a10d 100644 (file)
@@ -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
index 38125feee6f102e4fc18f776a2c11f923584ee14..f6e6459c754dade9280887a8b4849d5bc95f88da 100644 (file)
@@ -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
index e7ae2218d16cadfd71c97f776304579f410c2f6d..55dbeefb0ee5226052d4dfb3454e84a0746d1045 100644 (file)
@@ -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
index 4329871dfb2995a9b49eba31e152a55b544caead..b385d36a87fccffc756f4b44e822a7c0bba5d474 100644 (file)
@@ -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