Description:
[web] confirm when start contest, downloading task description through apache git-svn-id: http://theory.cpe.ku.ac.th/grader/web/trunk@260 6386c4cd-e34a-4fa8-8920-d93eb39b512e
Commit status:
[Not Reviewed]
References:
Comments:
0 Commit comments 0 Inline Comments
Unresolved TODOs:
There are no unresolved TODOs
Add another comment

r130:f343b8fb7d21 - - 3 files changed: 12 inserted, 4 deleted

@@ -2,23 +2,33
2
2
3 before_filter :authenticate, :check_viewability
3 before_filter :authenticate, :check_viewability
4
4
5 def index
5 def index
6 redirect_to :action => 'list'
6 redirect_to :action => 'list'
7 end
7 end
8
8
9 def list
9 def list
10 @problems = Problem.find_available_problems
10 @problems = Problem.find_available_problems
11 @user = User.find(session[:user_id])
11 @user = User.find(session[:user_id])
12 end
12 end
13
13
14 + def view
15 + file_name = "#{RAILS_ROOT}/data/tasks/#{params[:file]}"
16 + if !FileTest.exists?(file_name)
17 + redirect_to :action => 'index' and return
18 + end
19 + # ask Apache to send the file
20 + response.headers['X-Sendfile'] = file_name
21 + render :nothing => true
22 + end
23 +
14 protected
24 protected
15
25
16 def check_viewability
26 def check_viewability
17 user = User.find(session[:user_id])
27 user = User.find(session[:user_id])
18 if user==nil or !Configuration.show_tasks_to?(user)
28 if user==nil or !Configuration.show_tasks_to?(user)
19 redirect_to :controller => 'main', :action => 'list'
29 redirect_to :controller => 'main', :action => 'list'
20 return false
30 return false
21 end
31 end
22 end
32 end
23
33
24 end
34 end
@@ -46,25 +46,25
46 end
46 end
47 return true
47 return true
48 end
48 end
49
49
50 def self.allow_test_request(user)
50 def self.allow_test_request(user)
51 mode = get(SYSTEM_MODE_CONF_KEY)
51 mode = get(SYSTEM_MODE_CONF_KEY)
52 if (mode=='contest')
52 if (mode=='contest')
53 return false if (user.site!=nil) and ((user.site.started!=true) or (user.site.time_left < 30.minutes))
53 return false if (user.site!=nil) and ((user.site.started!=true) or (user.site.time_left < 30.minutes))
54 end
54 end
55 return false if mode=='analysis'
55 return false if mode=='analysis'
56 return true
56 return true
57 end
57 end
58 -
58 +
59 protected
59 protected
60 def self.read_config
60 def self.read_config
61 @@configurations = {}
61 @@configurations = {}
62 Configuration.find(:all).each do |conf|
62 Configuration.find(:all).each do |conf|
63 key = conf.key
63 key = conf.key
64 val = conf.value
64 val = conf.value
65 case conf.value_type
65 case conf.value_type
66 when 'string'
66 when 'string'
67 @@configurations[key] = val
67 @@configurations[key] = val
68
68
69 when 'integer'
69 when 'integer'
70 @@configurations[key] = val.to_i
70 @@configurations[key] = val.to_i
@@ -8,15 +8,13
8 (please
8 (please
9 = link_to 'refresh', :action => 'index'
9 = link_to 'refresh', :action => 'index'
10 to update)
10 to update)
11 %br/
11 %br/
12 %br/
12 %br/
13
13
14 - form_tag :action => 'start' do
14 - form_tag :action => 'start' do
15 When you're ready, you can click the button below to start the contest.
15 When you're ready, you can click the button below to start the contest.
16 %br/
16 %br/
17 Please make sure that the contestants are ready.
17 Please make sure that the contestants are ready.
18 After the contest is started, it <b>cannot</b> be paused or stopped.
18 After the contest is started, it <b>cannot</b> be paused or stopped.
19 %br/
19 %br/
20 - = submit_tag 'Start the Contest.'
20 + = submit_tag 'Start the Contest.', :onclick => "return confirm('Are you sure?');"
21 -
22 -
You need to be logged in to leave comments. Login now