2011-10-29 16:19:11 +04:00
#-- encoding: UTF-8
2011-05-30 00:11:52 +04:00
#-- copyright
# ChiliProject is a project management system.
2011-05-30 22:52:25 +04:00
#
2012-01-03 23:36:40 +04:00
# Copyright (C) 2010-2012 the ChiliProject Team
2011-05-30 22:52:25 +04:00
#
2011-05-30 00:11:52 +04:00
# 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.
2011-05-30 22:52:25 +04:00
#
2011-05-30 00:11:52 +04:00
# See doc/COPYRIGHT.rdoc for more details.
#++
2007-03-12 20:59:02 +03:00
class AdminController < ApplicationController
2009-12-17 21:21:02 +03:00
layout 'admin'
2011-05-30 22:52:25 +04:00
2007-03-12 20:59:02 +03:00
before_filter :require_admin
2011-05-30 22:52:25 +04:00
include SortHelper
2007-03-12 20:59:02 +03:00
2011-10-07 19:09:45 +04:00
menu_item :projects , :only = > [ :projects ]
menu_item :plugins , :only = > [ :plugins ]
menu_item :info , :only = > [ :info ]
2008-01-05 14:33:49 +03:00
def index
@no_configuration_data = Redmine :: DefaultData :: Loader :: no_data?
2007-03-12 20:59:02 +03:00
end
2011-05-30 22:52:25 +04:00
2007-03-12 20:59:02 +03:00
def projects
2008-10-24 21:12:39 +04:00
@status = params [ :status ] ? params [ :status ] . to_i : 1
c = ARCondition . new ( @status == 0 ? " status <> 0 " : [ " status = ? " , @status ] )
2011-05-30 22:52:25 +04:00
2008-10-24 21:12:39 +04:00
unless params [ :name ] . blank?
name = " % #{ params [ :name ] . strip . downcase } % "
c << [ " LOWER(identifier) LIKE ? OR LOWER(name) LIKE ? " , name , name ]
end
2011-05-30 22:52:25 +04:00
2009-01-24 14:31:15 +03:00
@projects = Project . find :all , :order = > 'lft' ,
:conditions = > c . conditions
2007-03-12 20:59:02 +03:00
render :action = > " projects " , :layout = > false if request . xhr?
end
2011-05-30 22:52:25 +04:00
2008-11-16 14:58:41 +03:00
def plugins
2011-08-25 20:46:53 +04:00
@plugins = Redmine :: Plugin . all . sort
2008-11-16 14:58:41 +03:00
end
2011-05-30 22:52:25 +04:00
2008-01-05 14:33:49 +03: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
2011-05-30 22:52:25 +04:00
2007-08-14 14:36:19 +04: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 20:52:35 +04:00
@test = Mailer . deliver_test ( User . current )
flash [ :notice ] = l ( :notice_email_sent , User . current . mail )
2007-08-14 14:36:19 +04:00
rescue Exception = > e
flash [ :error ] = l ( :notice_email_error , e . message )
end
ActionMailer :: Base . raise_delivery_errors = raise_delivery_errors
2008-01-06 23:24:26 +03:00
redirect_to :controller = > 'settings' , :action = > 'edit' , :tab = > 'notifications'
2007-08-14 14:36:19 +04:00
end
2011-05-30 22:52:25 +04:00
2007-03-12 20:59:02 +03:00
def info
@db_adapter_name = ActiveRecord :: Base . connection . adapter_name
2009-12-19 23:33:24 +03:00
@checklist = [
[ :text_default_administrator_account_changed , User . find ( :first , :conditions = > [ " login=? and hashed_password=? " , 'admin' , User . hash_password ( 'admin' ) ] ) . nil? ] ,
[ :text_file_repository_writable , File . writable? ( Attachment . storage_path ) ] ,
[ :text_plugin_assets_writable , File . writable? ( Engines . public_directory ) ] ,
[ :text_rmagick_available , Object . const_defined? ( :Magick ) ]
]
2011-05-30 22:52:25 +04:00
end
2006-06-28 22:11:03 +04:00
end