git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@1947 e93f8b46-1217-0410-a6f0-8f06a7374b81tags/0.8.0-RC1
@@ -29,16 +29,20 @@ class AdminController < ApplicationController | |||
sort_init 'name', 'asc' | |||
sort_update | |||
@status = params[:status] ? params[:status].to_i : 0 | |||
conditions = nil | |||
conditions = ["status=?", @status] unless @status == 0 | |||
@status = params[:status] ? params[:status].to_i : 1 | |||
c = ARCondition.new(@status == 0 ? "status <> 0" : ["status = ?", @status]) | |||
@project_count = Project.count(:conditions => conditions) | |||
unless params[:name].blank? | |||
name = "%#{params[:name].strip.downcase}%" | |||
c << ["LOWER(identifier) LIKE ? OR LOWER(name) LIKE ?", name, name] | |||
end | |||
@project_count = Project.count(:conditions => c.conditions) | |||
@project_pages = Paginator.new self, @project_count, | |||
per_page_option, | |||
params['page'] | |||
@projects = Project.find :all, :order => sort_clause, | |||
:conditions => conditions, | |||
:conditions => c.conditions, | |||
:limit => @project_pages.items_per_page, | |||
:offset => @project_pages.current.offset | |||
@@ -17,7 +17,7 @@ | |||
module AdminHelper | |||
def project_status_options_for_select(selected) | |||
options_for_select([[l(:label_all), "*"], | |||
options_for_select([[l(:label_all), ''], | |||
[l(:status_active), 1]], selected) | |||
end | |||
end |
@@ -4,11 +4,13 @@ | |||
<h2><%=l(:label_project_plural)%></h2> | |||
<% form_tag() do %> | |||
<% form_tag({}, :method => :get) do %> | |||
<fieldset><legend><%= l(:label_filter_plural) %></legend> | |||
<label><%= l(:field_status) %> :</label> | |||
<%= select_tag 'status', project_status_options_for_select(@status), :class => "small", :onchange => "this.form.submit(); return false;" %> | |||
<%= submit_tag l(:button_apply), :class => "small" %> | |||
<label><%= l(:label_project) %>:</label> | |||
<%= text_field_tag 'name', params[:name], :size => 30 %> | |||
<%= submit_tag l(:button_apply), :class => "small", :name => nil %> | |||
</fieldset> | |||
<% end %> | |||
|
@@ -45,6 +45,25 @@ class AdminControllerTest < Test::Unit::TestCase | |||
:attributes => { :class => /nodata/ } | |||
end | |||
def test_projects | |||
get :projects | |||
assert_response :success | |||
assert_template 'projects' | |||
assert_not_nil assigns(:projects) | |||
# active projects only | |||
assert_nil assigns(:projects).detect {|u| !u.active?} | |||
end | |||
def test_projects_with_name_filter | |||
get :projects, :name => 'store', :status => '' | |||
assert_response :success | |||
assert_template 'projects' | |||
projects = assigns(:projects) | |||
assert_not_nil projects | |||
assert_equal 1, projects.size | |||
assert_equal 'OnlineStore', projects.first.name | |||
end | |||
def test_load_default_configuration_data | |||
delete_configuration_data | |||
post :default_configuration, :lang => 'fr' |