git-svn-id: http://svn.redmine.org/redmine/trunk@15344 e93f8b46-1217-0410-a6f0-8f06a7374b81tags/3.3.0
@@ -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] |
@@ -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> |
@@ -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 |
@@ -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 |
@@ -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 |
@@ -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 |