summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJean-Philippe Lang <jp_lang@yahoo.fr>2016-04-19 18:37:52 +0000
committerJean-Philippe Lang <jp_lang@yahoo.fr>2016-04-19 18:37:52 +0000
commitdcc569fa34f7c961c2d2a5ba1f9da7b7a85b2f3b (patch)
tree291b5f8c010fc617610a0ffd6749039f3183c69f
parent025e1bf7e13f175384c695dcca5c2af96bb0bc10 (diff)
downloadredmine-dcc569fa34f7c961c2d2a5ba1f9da7b7a85b2f3b.tar.gz
redmine-dcc569fa34f7c961c2d2a5ba1f9da7b7a85b2f3b.zip
Removed the "New issue" menu item (#6204).
git-svn-id: http://svn.redmine.org/redmine/trunk@15344 e93f8b46-1217-0410-a6f0-8f06a7374b81
-rw-r--r--app/controllers/issues_controller.rb1
-rw-r--r--app/views/issues/index.html.erb16
-rw-r--r--lib/redmine.rb4
-rw-r--r--test/functional/issues_controller_test.rb27
-rw-r--r--test/functional/projects_controller_test.rb24
-rw-r--r--test/unit/lib/redmine_test.rb8
6 files changed, 36 insertions, 44 deletions
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 @@
<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>
@@ -50,10 +49,17 @@
<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>
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