| 
									
										
										
										
											2007-03-12 17:59:02 +00:00
										 |  |  | # redMine - project management software | 
					
						
							|  |  |  | # Copyright (C) 2006  Jean-Philippe Lang | 
					
						
							|  |  |  | # | 
					
						
							|  |  |  | # This program is free software; you can redistribute it and/or | 
					
						
							|  |  |  | # modify it under the terms of the GNU General Public License | 
					
						
							|  |  |  | # as published by the Free Software Foundation; either version 2 | 
					
						
							|  |  |  | # of the License, or (at your option) any later version. | 
					
						
							|  |  |  | #  | 
					
						
							|  |  |  | # This program is distributed in the hope that it will be useful, | 
					
						
							|  |  |  | # but WITHOUT ANY WARRANTY; without even the implied warranty of | 
					
						
							|  |  |  | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | 
					
						
							|  |  |  | # GNU General Public License for more details. | 
					
						
							|  |  |  | #  | 
					
						
							|  |  |  | # You should have received a copy of the GNU General Public License | 
					
						
							|  |  |  | # along with this program; if not, write to the Free Software | 
					
						
							|  |  |  | # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class AdminController < ApplicationController | 
					
						
							|  |  |  |   before_filter :require_admin | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   helper :sort | 
					
						
							|  |  |  |   include SortHelper	 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-01-05 11:33:49 +00:00
										 |  |  |   def index | 
					
						
							|  |  |  |     @no_configuration_data = Redmine::DefaultData::Loader::no_data? | 
					
						
							| 
									
										
										
										
											2007-03-12 17:59:02 +00:00
										 |  |  |   end | 
					
						
							|  |  |  | 	 | 
					
						
							|  |  |  |   def projects | 
					
						
							|  |  |  |     sort_init 'name', 'asc' | 
					
						
							| 
									
										
										
										
											2008-12-24 10:03:13 +00:00
										 |  |  |     sort_update %w(name is_public created_on) | 
					
						
							| 
									
										
										
										
											2007-05-27 17:42:04 +00:00
										 |  |  |      | 
					
						
							| 
									
										
										
										
											2008-10-24 17:12:39 +00:00
										 |  |  |     @status = params[:status] ? params[:status].to_i : 1
 | 
					
						
							|  |  |  |     c = ARCondition.new(@status == 0 ? "status <> 0" : ["status = ?", @status]) | 
					
						
							| 
									
										
										
										
											2007-05-27 17:42:04 +00:00
										 |  |  |      | 
					
						
							| 
									
										
										
										
											2008-10-24 17:12:39 +00:00
										 |  |  |     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) | 
					
						
							| 
									
										
										
										
											2007-03-12 17:59:02 +00:00
										 |  |  |     @project_pages = Paginator.new self, @project_count, | 
					
						
							| 
									
										
										
										
											2007-12-29 11:36:30 +00:00
										 |  |  | 								per_page_option, | 
					
						
							| 
									
										
										
										
											2007-03-12 17:59:02 +00:00
										 |  |  | 								params['page']								 | 
					
						
							|  |  |  |     @projects = Project.find :all, :order => sort_clause, | 
					
						
							| 
									
										
										
										
											2008-10-24 17:12:39 +00:00
										 |  |  |                         :conditions => c.conditions, | 
					
						
							| 
									
										
										
										
											2007-03-12 17:59:02 +00:00
										 |  |  | 						:limit  =>  @project_pages.items_per_page, | 
					
						
							|  |  |  | 						:offset =>  @project_pages.current.offset | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     render :action => "projects", :layout => false if request.xhr? | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  |    | 
					
						
							| 
									
										
										
										
											2008-11-16 11:58:41 +00:00
										 |  |  |   def plugins | 
					
						
							| 
									
										
										
										
											2008-11-16 15:38:37 +00:00
										 |  |  |     @plugins = Redmine::Plugin.all | 
					
						
							| 
									
										
										
										
											2008-11-16 11:58:41 +00:00
										 |  |  |   end | 
					
						
							|  |  |  |    | 
					
						
							| 
									
										
										
										
											2008-01-05 11:33:49 +00:00
										 |  |  |   # Loads the default configuration | 
					
						
							|  |  |  |   # (roles, trackers, statuses, workflow, enumerations) | 
					
						
							|  |  |  |   def default_configuration | 
					
						
							|  |  |  |     if request.post? | 
					
						
							|  |  |  |       begin | 
					
						
							|  |  |  |         Redmine::DefaultData::Loader::load(params[:lang]) | 
					
						
							|  |  |  |         flash[:notice] = l(:notice_default_data_loaded) | 
					
						
							|  |  |  |       rescue Exception => e | 
					
						
							|  |  |  |         flash[:error] = l(:error_can_t_load_default_data, e.message) | 
					
						
							|  |  |  |       end | 
					
						
							|  |  |  |     end | 
					
						
							|  |  |  |     redirect_to :action => 'index' | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  |    | 
					
						
							| 
									
										
										
										
											2007-08-14 10:36:19 +00:00
										 |  |  |   def test_email | 
					
						
							|  |  |  |     raise_delivery_errors = ActionMailer::Base.raise_delivery_errors | 
					
						
							|  |  |  |     # Force ActionMailer to raise delivery errors so we can catch it | 
					
						
							|  |  |  |     ActionMailer::Base.raise_delivery_errors = true | 
					
						
							|  |  |  |     begin | 
					
						
							| 
									
										
										
										
											2007-08-29 16:52:35 +00:00
										 |  |  |       @test = Mailer.deliver_test(User.current) | 
					
						
							|  |  |  |       flash[:notice] = l(:notice_email_sent, User.current.mail) | 
					
						
							| 
									
										
										
										
											2007-08-14 10:36:19 +00:00
										 |  |  |     rescue Exception => e | 
					
						
							|  |  |  |       flash[:error] = l(:notice_email_error, e.message) | 
					
						
							|  |  |  |     end | 
					
						
							|  |  |  |     ActionMailer::Base.raise_delivery_errors = raise_delivery_errors | 
					
						
							| 
									
										
										
										
											2008-01-06 20:24:26 +00:00
										 |  |  |     redirect_to :controller => 'settings', :action => 'edit', :tab => 'notifications' | 
					
						
							| 
									
										
										
										
											2007-08-14 10:36:19 +00:00
										 |  |  |   end | 
					
						
							|  |  |  |    | 
					
						
							| 
									
										
										
										
											2007-03-12 17:59:02 +00:00
										 |  |  |   def info | 
					
						
							|  |  |  |     @db_adapter_name = ActiveRecord::Base.connection.adapter_name | 
					
						
							| 
									
										
										
										
											2007-09-15 20:39:40 +00:00
										 |  |  |     @flags = { | 
					
						
							|  |  |  |       :default_admin_changed => User.find(:first, :conditions => ["login=? and hashed_password=?", 'admin', User.hash_password('admin')]).nil?, | 
					
						
							|  |  |  |       :file_repository_writable => File.writable?(Attachment.storage_path), | 
					
						
							| 
									
										
										
										
											2008-12-31 11:48:56 +00:00
										 |  |  |       :plugin_assets_writable => File.writable?(Engines.public_directory), | 
					
						
							| 
									
										
										
										
											2007-09-15 20:39:40 +00:00
										 |  |  |       :rmagick_available => Object.const_defined?(:Magick) | 
					
						
							| 
									
										
										
										
											2007-09-23 17:19:27 +00:00
										 |  |  |     } | 
					
						
							| 
									
										
										
										
											2007-03-12 17:59:02 +00:00
										 |  |  |   end   | 
					
						
							| 
									
										
										
										
											2006-06-28 18:11:03 +00:00
										 |  |  | end |