##// END OF EJS Templates
Removed the "New issue" menu item (#6204)....
Jean-Philippe Lang -
r14962:dcc569fa34f7
parent child
Show More
@@ -16,7 +16,6
16 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
16 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
17
17
18 class IssuesController < ApplicationController
18 class IssuesController < ApplicationController
19 menu_item :new_issue, :only => [:new, :create]
20 default_search_scope :issues
19 default_search_scope :issues
21
20
22 before_filter :find_issue, :only => [:show, :edit, :update]
21 before_filter :find_issue, :only => [:show, :edit, :update]
@@ -1,8 +1,7
1 <div class="contextual">
1 <div class="contextual">
2 <% if !@query.new_record? && @query.editable_by?(User.current) %>
2 <% if @project && User.current.allowed_to?(:add_issues, @project) && @project.trackers.any? %>
3 <%= link_to l(:button_edit), edit_query_path(@query), :class => 'icon icon-edit' %>
3 <%= link_to l(:label_issue_new), new_project_issue_path(@project), :class => 'icon icon-add new-issue' %>
4 <%= delete_link query_path(@query) %>
4 <% end %>
5 <% end %>
6 </div>
5 </div>
7
6
8 <h2><%= @query.new_record? ? l(:label_issue_plural) : @query.name %></h2>
7 <h2><%= @query.new_record? ? l(:label_issue_plural) : @query.name %></h2>
@@ -50,10 +49,17
50 <p class="buttons">
49 <p class="buttons">
51 <%= link_to_function l(:button_apply), '$("#query_form").submit()', :class => 'icon icon-checked' %>
50 <%= link_to_function l(:button_apply), '$("#query_form").submit()', :class => 'icon icon-checked' %>
52 <%= link_to l(:button_clear), { :set_filter => 1, :project_id => @project }, :class => 'icon icon-reload' %>
51 <%= link_to l(:button_clear), { :set_filter => 1, :project_id => @project }, :class => 'icon icon-reload' %>
53 <% if @query.new_record? && User.current.allowed_to?(:save_queries, @project, :global => true) %>
52 <% if @query.new_record? %>
53 <% if User.current.allowed_to?(:save_queries, @project, :global => true) %>
54 <%= link_to_function l(:button_save),
54 <%= link_to_function l(:button_save),
55 "$('#query_form').attr('action', '#{ @project ? new_project_query_path(@project) : new_query_path }').submit()",
55 "$('#query_form').attr('action', '#{ @project ? new_project_query_path(@project) : new_query_path }').submit()",
56 :class => 'icon icon-save' %>
56 :class => 'icon icon-save' %>
57 <% end %>
58 <% else %>
59 <% if @query.editable_by?(User.current) %>
60 <%= link_to l(:button_edit), edit_query_path(@query), :class => 'icon icon-edit' %>
61 <%= delete_link query_path(@query) %>
62 <% end %>
57 <% end %>
63 <% end %>
58 </p>
64 </p>
59 </div>
65 </div>
@@ -231,10 +231,6 Redmine::MenuManager.map :project_menu do |menu|
231 menu.push :roadmap, { :controller => 'versions', :action => 'index' }, :param => :project_id,
231 menu.push :roadmap, { :controller => 'versions', :action => 'index' }, :param => :project_id,
232 :if => Proc.new { |p| p.shared_versions.any? }
232 :if => Proc.new { |p| p.shared_versions.any? }
233 menu.push :issues, { :controller => 'issues', :action => 'index' }, :param => :project_id, :caption => :label_issue_plural
233 menu.push :issues, { :controller => 'issues', :action => 'index' }, :param => :project_id, :caption => :label_issue_plural
234 menu.push :new_issue, { :controller => 'issues', :action => 'new', :copy_from => nil }, :param => :project_id, :caption => :label_issue_new,
235 :html => { :accesskey => Redmine::AccessKeys.key_for(:new_issue) },
236 :if => Proc.new { |p| p.trackers.any? },
237 :permission => :add_issues
238 menu.push :gantt, { :controller => 'gantts', :action => 'show' }, :param => :project_id, :caption => :label_gantt
234 menu.push :gantt, { :controller => 'gantts', :action => 'show' }, :param => :project_id, :caption => :label_gantt
239 menu.push :calendar, { :controller => 'calendars', :action => 'show' }, :param => :project_id, :caption => :label_calendar
235 menu.push :calendar, { :controller => 'calendars', :action => 'show' }, :param => :project_id, :caption => :label_calendar
240 menu.push :news, { :controller => 'news', :action => 'index' }, :param => :project_id, :caption => :label_news_plural
236 menu.push :news, { :controller => 'news', :action => 'index' }, :param => :project_id, :caption => :label_news_plural
@@ -1057,6 +1057,30 class IssuesControllerTest < ActionController::TestCase
1057 assert @response.body.blank?
1057 assert @response.body.blank?
1058 end
1058 end
1059
1059
1060 def test_index_should_include_new_issue_link
1061 @request.session[:user_id] = 2
1062 get :index, :project_id => 1
1063 assert_select 'a.new-issue[href="/projects/ecookbook/issues/new"]', :text => 'New issue'
1064 end
1065
1066 def test_index_should_not_include_new_issue_link_for_project_without_trackers
1067 Project.find(1).trackers.clear
1068
1069 @request.session[:user_id] = 2
1070 get :index, :project_id => 1
1071 assert_select 'a.new-issue', 0
1072 end
1073
1074 def test_index_should_not_include_new_issue_link_for_users_with_copy_issues_permission_only
1075 role = Role.find(1)
1076 role.remove_permission! :add_issues
1077 role.add_permission! :copy_issues
1078
1079 @request.session[:user_id] = 2
1080 get :index, :project_id => 1
1081 assert_select 'a.new-issue', 0
1082 end
1083
1060 def test_show_by_anonymous
1084 def test_show_by_anonymous
1061 get :show, :id => 1
1085 get :show, :id => 1
1062 assert_response :success
1086 assert_response :success
@@ -2795,9 +2819,6 class IssuesControllerTest < ActionController::TestCase
2795 end
2819 end
2796 assert_select 'input[name=copy_from][value="1"]'
2820 assert_select 'input[name=copy_from][value="1"]'
2797 end
2821 end
2798
2799 # "New issue" menu item should not link to copy
2800 assert_select '#main-menu a.new-issue[href="/projects/ecookbook/issues/new"]'
2801 end
2822 end
2802
2823
2803 def test_new_as_copy_without_add_issues_permission_should_not_propose_current_project_as_target
2824 def test_new_as_copy_without_add_issues_permission_should_not_propose_current_project_as_target
@@ -691,28 +691,4 class ProjectsControllerTest < ActionController::TestCase
691 get :show, :id => 1
691 get :show, :id => 1
692 assert_select 'body.project-ecookbook'
692 assert_select 'body.project-ecookbook'
693 end
693 end
694
695 def test_project_menu_should_include_new_issue_link
696 @request.session[:user_id] = 2
697 get :show, :id => 1
698 assert_select '#main-menu a.new-issue[href="/projects/ecookbook/issues/new"]', :text => 'New issue'
699 end
700
701 def test_project_menu_should_not_include_new_issue_link_for_project_without_trackers
702 Project.find(1).trackers.clear
703
704 @request.session[:user_id] = 2
705 get :show, :id => 1
706 assert_select '#main-menu a.new-issue', 0
707 end
708
709 def test_project_menu_should_not_include_new_issue_link_for_users_with_copy_issues_permission_only
710 role = Role.find(1)
711 role.remove_permission! :add_issues
712 role.add_permission! :copy_issues
713
714 @request.session[:user_id] = 2
715 get :show, :id => 1
716 assert_select '#main-menu a.new-issue', 0
717 end
718 end
694 end
@@ -62,12 +62,11 class RedmineTest < ActiveSupport::TestCase
62 end
62 end
63
63
64 def test_project_menu
64 def test_project_menu
65 assert_number_of_items_in_menu :project_menu, 14
65 assert_number_of_items_in_menu :project_menu, 13
66 assert_menu_contains_item_named :project_menu, :overview
66 assert_menu_contains_item_named :project_menu, :overview
67 assert_menu_contains_item_named :project_menu, :activity
67 assert_menu_contains_item_named :project_menu, :activity
68 assert_menu_contains_item_named :project_menu, :roadmap
68 assert_menu_contains_item_named :project_menu, :roadmap
69 assert_menu_contains_item_named :project_menu, :issues
69 assert_menu_contains_item_named :project_menu, :issues
70 assert_menu_contains_item_named :project_menu, :new_issue
71 assert_menu_contains_item_named :project_menu, :calendar
70 assert_menu_contains_item_named :project_menu, :calendar
72 assert_menu_contains_item_named :project_menu, :gantt
71 assert_menu_contains_item_named :project_menu, :gantt
73 assert_menu_contains_item_named :project_menu, :news
72 assert_menu_contains_item_named :project_menu, :news
@@ -78,9 +77,4 class RedmineTest < ActiveSupport::TestCase
78 assert_menu_contains_item_named :project_menu, :repository
77 assert_menu_contains_item_named :project_menu, :repository
79 assert_menu_contains_item_named :project_menu, :settings
78 assert_menu_contains_item_named :project_menu, :settings
80 end
79 end
81
82 def test_new_issue_should_have_root_as_a_parent
83 new_issue = get_menu_item(:project_menu, :new_issue)
84 assert_equal :root, new_issue.parent.name
85 end
86 end
80 end
General Comments 0
You need to be logged in to leave comments. Login now