Description:
fixed form_tag/form_for, disabled attributes whitelist
Commit status:
[Not Reviewed]
References:
Comments:
0 Commit comments 0 Inline Comments
Unresolved TODOs:
There are no unresolved TODOs
Add another comment

r321:6490fd9a1f54 - - 17 files changed: 23 inserted, 22 deleted

@@ -37,49 +37,50
37 # Hide login if in single user mode and the url does not
37 # Hide login if in single user mode and the url does not
38 # explicitly specify /login
38 # explicitly specify /login
39 #
39 #
40 # logger.info "PATH: #{request.path}"
40 # logger.info "PATH: #{request.path}"
41 # if GraderConfiguration['system.single_user_mode'] and
41 # if GraderConfiguration['system.single_user_mode'] and
42 # request.path!='/main/login'
42 # request.path!='/main/login'
43 # @hidelogin = true
43 # @hidelogin = true
44 # end
44 # end
45
45
46 @announcements = Announcement.find_for_frontpage
46 @announcements = Announcement.find_for_frontpage
47 render :action => 'login', :layout => 'empty'
47 render :action => 'login', :layout => 'empty'
48 end
48 end
49
49
50 def list
50 def list
51 prepare_list_information
51 prepare_list_information
52 end
52 end
53
53
54 def help
54 def help
55 @user = User.find(session[:user_id])
55 @user = User.find(session[:user_id])
56 end
56 end
57
57
58 def submit
58 def submit
59 user = User.find(session[:user_id])
59 user = User.find(session[:user_id])
60
60
61 - @submission = Submission.new(params[:submission])
61 + @submission = Submission.new
62 + @submission.problem_id = params[:submission][:problem_id]
62 @submission.user = user
63 @submission.user = user
63 @submission.language_id = 0
64 @submission.language_id = 0
64 if (params['file']) and (params['file']!='')
65 if (params['file']) and (params['file']!='')
65 @submission.source = params['file'].read
66 @submission.source = params['file'].read
66 @submission.source_filename = params['file'].original_filename
67 @submission.source_filename = params['file'].original_filename
67 end
68 end
68 @submission.submitted_at = Time.new.gmtime
69 @submission.submitted_at = Time.new.gmtime
69
70
70 if GraderConfiguration.time_limit_mode? and user.contest_finished?
71 if GraderConfiguration.time_limit_mode? and user.contest_finished?
71 @submission.errors.add_to_base "The contest is over."
72 @submission.errors.add_to_base "The contest is over."
72 prepare_list_information
73 prepare_list_information
73 render :action => 'list' and return
74 render :action => 'list' and return
74 end
75 end
75
76
76 if @submission.valid?
77 if @submission.valid?
77 if @submission.save == false
78 if @submission.save == false
78 flash[:notice] = 'Error saving your submission'
79 flash[:notice] = 'Error saving your submission'
79 elsif Task.create(:submission_id => @submission.id,
80 elsif Task.create(:submission_id => @submission.id,
80 :status => Task::STATUS_INQUEUE) == false
81 :status => Task::STATUS_INQUEUE) == false
81 flash[:notice] = 'Error adding your submission to task queue'
82 flash[:notice] = 'Error adding your submission to task queue'
82 end
83 end
83 else
84 else
84 prepare_list_information
85 prepare_list_information
85 render :action => 'list' and return
86 render :action => 'list' and return
@@ -1,51 +1,51
1 - content_for :head do
1 - content_for :head do
2 = stylesheet_link_tag 'graders'
2 = stylesheet_link_tag 'graders'
3 <meta http-equiv ="refresh" content="60"/>
3 <meta http-equiv ="refresh" content="60"/>
4
4
5 %h1 Grader information
5 %h1 Grader information
6
6
7 = link_to '[Refresh]', :action => 'list'
7 = link_to '[Refresh]', :action => 'list'
8 %br/
8 %br/
9
9
10 .submitbox
10 .submitbox
11 .item
11 .item
12 Grader control:
12 Grader control:
13 .item
13 .item
14 - - form_for :clear, nil, :url => {:action => 'start_grading'} do |f|
14 + = form_for :clear, nil, :url => {:action => 'start_grading'} do |f|
15 = submit_tag 'Start graders in grading env'
15 = submit_tag 'Start graders in grading env'
16 .item
16 .item
17 - - form_for :clear, nil, :url => {:action => 'start_exam'} do |f|
17 + = form_for :clear, nil, :url => {:action => 'start_exam'} do |f|
18 = submit_tag 'Start graders in exam env'
18 = submit_tag 'Start graders in exam env'
19 .item
19 .item
20 - - form_for :clear, nil, :url => {:action => 'stop_all'} do |f|
20 + = form_for :clear, nil, :url => {:action => 'stop_all'} do |f|
21 = submit_tag 'Stop all running graders'
21 = submit_tag 'Stop all running graders'
22 .item
22 .item
23 - - form_for :clear, nil, :url => {:action => 'clear_all'} do |f|
23 + = form_for :clear, nil, :url => {:action => 'clear_all'} do |f|
24 = submit_tag 'Clear all data'
24 = submit_tag 'Clear all data'
25 %br{:style => 'clear:both'}/
25 %br{:style => 'clear:both'}/
26
26
27 - if @last_task
27 - if @last_task
28 Last task:
28 Last task:
29 = link_to "#{@last_task.id}", :action => 'view', :id => @last_task.id, :type => 'Task'
29 = link_to "#{@last_task.id}", :action => 'view', :id => @last_task.id, :type => 'Task'
30
30
31 %br/
31 %br/
32
32
33 - if @last_test_request
33 - if @last_test_request
34 Last test_request:
34 Last test_request:
35 = link_to "#{@last_test_request.id}", :action => 'view', :id => @last_test_request.id, :type => 'TestRequest'
35 = link_to "#{@last_test_request.id}", :action => 'view', :id => @last_test_request.id, :type => 'TestRequest'
36
36
37
37
38 %h2 Current graders
38 %h2 Current graders
39
39
40 = render :partial => 'grader_list', :locals => {:grader_list => @grader_processes}
40 = render :partial => 'grader_list', :locals => {:grader_list => @grader_processes}
41
41
42 %h2 Stalled graders
42 %h2 Stalled graders
43
43
44 = render :partial => 'grader_list', :locals => {:grader_list => @stalled_processes}
44 = render :partial => 'grader_list', :locals => {:grader_list => @stalled_processes}
45
45
46 %h2 Terminated graders
46 %h2 Terminated graders
47
47
48 - - form_for :clear, nil, :url => {:action => 'clear_terminated'} do |f|
48 + = form_for :clear, nil, :url => {:action => 'clear_terminated'} do |f|
49 = submit_tag 'Clear data for terminated graders'
49 = submit_tag 'Clear data for terminated graders'
50
50
51 = render :partial => 'grader_list', :locals => {:grader_list => @terminated_processes}
51 = render :partial => 'grader_list', :locals => {:grader_list => @terminated_processes}
@@ -1,16 +1,16
1 = user_title_bar(@user)
1 = user_title_bar(@user)
2
2
3 .announcementbox
3 .announcementbox
4 %span{:class => 'title'}
4 %span{:class => 'title'}
5 =t 'main.confirm_contest_start.box_title'
5 =t 'main.confirm_contest_start.box_title'
6 .announcement
6 .announcement
7 %center
7 %center
8 =t 'main.confirm_contest_start.contest_list'
8 =t 'main.confirm_contest_start.contest_list'
9 - @contests.each do |contest|
9 - @contests.each do |contest|
10 = contest.title
10 = contest.title
11 %br
11 %br
12
12
13 =t 'main.confirm_contest_start.timer_starts_after_click'
13 =t 'main.confirm_contest_start.timer_starts_after_click'
14
14
15 - - form_tag :action => 'confirm_contest_start', :method => 'post' do
15 + = form_tag :action => 'confirm_contest_start', :method => 'post' do
16 = submit_tag t('main.confirm_contest_start.start_button'), :confirm => t('main.confirm_contest_start.start_button_confirm')
16 = submit_tag t('main.confirm_contest_start.start_button'), :confirm => t('main.confirm_contest_start.start_button_confirm')
@@ -1,26 +1,26
1 = user_title_bar(@user)
1 = user_title_bar(@user)
2
2
3 .announcementbox
3 .announcementbox
4 %span{:class => 'title'}
4 %span{:class => 'title'}
5 How to submit clarification requests
5 How to submit clarification requests
6 .announcement
6 .announcement
7 %p
7 %p
8 :markdown
8 :markdown
9 The clarification requests should be phrased as yes/no questions.
9 The clarification requests should be phrased as yes/no questions.
10 The answers will be one of the following:
10 The answers will be one of the following:
11 (1) **YES**,
11 (1) **YES**,
12 (2) <b>NO</b>,
12 (2) <b>NO</b>,
13 (3) **ANSWERED IN TASK DESCRIPTION (EXPLICITLY OR IMPLICITLY)**,
13 (3) **ANSWERED IN TASK DESCRIPTION (EXPLICITLY OR IMPLICITLY)**,
14 (4) **INVALID QUESTION**, and
14 (4) **INVALID QUESTION**, and
15 (5) **NO COMMENT**.
15 (5) **NO COMMENT**.
16
16
17 - - form_for 'message', nil, :url => { :action => 'create'} do |f|
17 + = form_for 'message', nil, :url => { :action => 'create'} do |f|
18 %p
18 %p
19 %b New clarification request
19 %b New clarification request
20 = submit_tag "Post"
20 = submit_tag "Post"
21 %br/
21 %br/
22 = f.text_area :body, :rows => 5, :cols => 100
22 = f.text_area :body, :rows => 5, :cols => 100
23
23
24 %hr/
24 %hr/
25
25
26 = render :partial => 'message', :collection => @messages, :locals => {:reply => false}
26 = render :partial => 'message', :collection => @messages, :locals => {:reply => false}
@@ -1,20 +1,20
1 %h3 Message
1 %h3 Message
2
2
3 .message
3 .message
4 .stat
4 .stat
5 = "#{@message.sender.full_name} at #{@message.created_at}"
5 = "#{@message.sender.full_name} at #{@message.created_at}"
6 .body= simple_format(@message.body)
6 .body= simple_format(@message.body)
7
7
8 %h3 Your reply:
8 %h3 Your reply:
9 - - form_for 'r_message', nil, :url => { :action => 'reply'} do |f|
9 + = form_for 'r_message', nil, :url => { :action => 'reply'} do |f|
10 = f.text_area :body, :rows => 5, :cols => 100
10 = f.text_area :body, :rows => 5, :cols => 100
11 = f.hidden_field :receiver_id, {:value => @message.sender_id }
11 = f.hidden_field :receiver_id, {:value => @message.sender_id }
12 = f.hidden_field :replying_message_id, {:value => @message.id }
12 = f.hidden_field :replying_message_id, {:value => @message.id }
13 = submit_tag "Post"
13 = submit_tag "Post"
14
14
15 %p
15 %p
16 If you do not want to reply, but want to hide this message from
16 If you do not want to reply, but want to hide this message from
17 console, you can
17 console, you can
18 = link_to "[hide]", :action => 'hide', :id => @message.id
18 = link_to "[hide]", :action => 'hide', :id => @message.id
19 this message. (This message will be marked as replied.)
19 this message. (This message will be marked as replied.)
20
20
@@ -1,36 +1,36
1 - content_for :head do
1 - content_for :head do
2 = stylesheet_link_tag 'problems'
2 = stylesheet_link_tag 'problems'
3 = javascript_include_tag :defaults
3 = javascript_include_tag :defaults
4
4
5 %h1 Import problems
5 %h1 Import problems
6
6
7 %p= link_to '[Back to problem list]', :action => 'list'
7 %p= link_to '[Back to problem list]', :action => 'list'
8
8
9 - if @problem and @problem.errors
9 - if @problem and @problem.errors
10 =error_messages_for 'problem'
10 =error_messages_for 'problem'
11
11
12 - - form_tag({:action => 'do_import'}, :multipart => true) do
12 + = form_tag({:action => 'do_import'}, :multipart => true) do
13 .submitbox
13 .submitbox
14 %table
14 %table
15 %tr
15 %tr
16 %td Name:
16 %td Name:
17 %td= text_field_tag 'name'
17 %td= text_field_tag 'name'
18 %tr
18 %tr
19 %td Full name:
19 %td Full name:
20 %td
20 %td
21 = text_field_tag 'full_name'
21 = text_field_tag 'full_name'
22 %span{:class => 'help'} Leave blank to use the same value as the name above.
22 %span{:class => 'help'} Leave blank to use the same value as the name above.
23 %tr
23 %tr
24 %td Testdata file:
24 %td Testdata file:
25 %td= file_field_tag 'file'
25 %td= file_field_tag 'file'
26 %tr
26 %tr
27 %td
27 %td
28 %td
28 %td
29 %span{:class => 'help'}
29 %span{:class => 'help'}
30 In .zip, .tgz, tar.gz, .tar format.
30 In .zip, .tgz, tar.gz, .tar format.
31 It should includes inputs (e.g., 1.in, 2a.in, 2b.in)
31 It should includes inputs (e.g., 1.in, 2a.in, 2b.in)
32 and solutions (e.g., 1.sol, 2a.sol, 2b.sol).
32 and solutions (e.g., 1.sol, 2a.sol, 2b.sol).
33 %br/
33 %br/
34 You may put task description in *.html for raw html
34 You may put task description in *.html for raw html
35 and *.md or *.markdown for markdown.
35 and *.md or *.markdown for markdown.
36 - if @allow_test_pair_import
36 - if @allow_test_pair_import
@@ -1,33 +1,33
1 - content_for :head do
1 - content_for :head do
2 = stylesheet_link_tag 'problems'
2 = stylesheet_link_tag 'problems'
3 = javascript_include_tag :defaults
3 = javascript_include_tag :defaults
4
4
5 %h1 Manage problems
5 %h1 Manage problems
6
6
7 %p= link_to '[Back to problem list]', :action => 'list'
7 %p= link_to '[Back to problem list]', :action => 'list'
8
8
9 - - form_tag :action=>'do_manage' do
9 + = form_tag :action=>'do_manage' do
10 .submitbox
10 .submitbox
11 What do you want to do?
11 What do you want to do?
12 %br/
12 %br/
13 %ul
13 %ul
14 %li
14 %li
15 Change date added to
15 Change date added to
16 = select_date Date.current, :prefix => 'date_added'
16 = select_date Date.current, :prefix => 'date_added'
17 &nbsp;&nbsp;&nbsp;
17 &nbsp;&nbsp;&nbsp;
18 = submit_tag 'Change', :name => 'change_date_added'
18 = submit_tag 'Change', :name => 'change_date_added'
19
19
20 - if GraderConfiguration.multicontests?
20 - if GraderConfiguration.multicontests?
21 %li
21 %li
22 Add to
22 Add to
23 = select("contest","id",Contest.all.collect {|c| [c.title, c.id]})
23 = select("contest","id",Contest.all.collect {|c| [c.title, c.id]})
24 = submit_tag 'Add', :name => 'add_to_contest'
24 = submit_tag 'Add', :name => 'add_to_contest'
25
25
26 %table
26 %table
27 %tr
27 %tr
28 %th/
28 %th/
29 %th Name
29 %th Name
30 %th Full name
30 %th Full name
31 %th Date added
31 %th Date added
32 - if GraderConfiguration.multicontests?
32 - if GraderConfiguration.multicontests?
33 %th Contests
33 %th Contests
@@ -1,39 +1,39
1 %script{:type => 'text/javascript'}
1 %script{:type => 'text/javascript'}
2 var siteList = new Array();
2 var siteList = new Array();
3 - @countries.each do |country|
3 - @countries.each do |country|
4 = "siteList[#{country.id}] = new Array();"
4 = "siteList[#{country.id}] = new Array();"
5 - country.sites.each do |site|
5 - country.sites.each do |site|
6 = "siteList[#{country.id}][#{site.id}] = \"#{site.name}\";"
6 = "siteList[#{country.id}][#{site.id}] = \"#{site.name}\";"
7
7
8 var allSiteList = new Array();
8 var allSiteList = new Array();
9 - @site_select.each do |sel|
9 - @site_select.each do |sel|
10 = "allSiteList[#{sel[1]}]=\"#{sel[0]}\";"
10 = "allSiteList[#{sel[1]}]=\"#{sel[0]}\";"
11
11
12 %script{:type => 'text/javascript', :src => '/javascripts/site_update.js'}
12 %script{:type => 'text/javascript', :src => '/javascripts/site_update.js'}
13
13
14 %div{ :style => "border: solid 1px gray; padding: 2px; background: #f0f0f0;"}
14 %div{ :style => "border: solid 1px gray; padding: 2px; background: #f0f0f0;"}
15 %h2 For Site Administrator.
15 %h2 For Site Administrator.
16
16
17 - if @default_site
17 - if @default_site
18 - - form_for :login, nil, :url => {:controller => 'login', :action => 'site_login'} do |f|
18 + = form_for :login, nil, :url => {:controller => 'login', :action => 'site_login'} do |f|
19 %b Log in for default site.
19 %b Log in for default site.
20 = f.hidden_field :site_id, :value => @default_site.id
20 = f.hidden_field :site_id, :value => @default_site.id
21 %br/
21 %br/
22 Password:
22 Password:
23 = f.password_field :password
23 = f.password_field :password
24 = submit_tag "Site Administrator Login"
24 = submit_tag "Site Administrator Login"
25
25
26 - else
26 - else
27 Please select your country and site and login.
27 Please select your country and site and login.
28 - - form_for :login, nil, :url => {:controller => 'login', :action => 'site_login'} do |f|
28 + = form_for :login, nil, :url => {:controller => 'login', :action => 'site_login'} do |f|
29 Country:
29 Country:
30 = select :site_country, :id, @country_select_with_all, {}, {:onchange => "updateSiteList();", :onclick => "updateSiteList();" }
30 = select :site_country, :id, @country_select_with_all, {}, {:onchange => "updateSiteList();", :onclick => "updateSiteList();" }
31 Site:
31 Site:
32 = select :login, :site_id, @site_select
32 = select :login, :site_id, @site_select
33 %br/
33 %br/
34 Password:
34 Password:
35 = f.password_field :password
35 = f.password_field :password
36 = submit_tag "Site Administrator Login"
36 = submit_tag "Site Administrator Login"
37
37
38 %script{:type => 'text/javascript'}
38 %script{:type => 'text/javascript'}
39 updateSiteList();
39 updateSiteList();
@@ -1,24 +1,24
1 %h2
1 %h2
2 Contest Administration for site:
2 Contest Administration for site:
3 = "#{@site.name}, #{@site.country.name if @site.country}"
3 = "#{@site.name}, #{@site.country.name if @site.country}"
4
4
5
5
6 Current time at the server is
6 Current time at the server is
7 = "#{format_short_time(Time.new.gmtime)} UTC"
7 = "#{format_short_time(Time.new.gmtime)} UTC"
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.', :onclick => "return confirm('Are you sure?');"
20 = submit_tag 'Start the Contest.', :onclick => "return confirm('Are you sure?');"
21
21
22 %br/
22 %br/
23 %br/
23 %br/
24 = link_to '[log out]', :action => 'logout'
24 = link_to '[log out]', :action => 'logout'
@@ -19,49 +19,49
19 submissionCount[<%= submission.problem_id %>]=<%= submission.number %>;
19 submissionCount[<%= submission.problem_id %>]=<%= submission.number %>;
20 <% end %>
20 <% end %>
21
21
22 function updateSubmissionList() {
22 function updateSubmissionList() {
23 currentProb = document.getElementById("test_request_problem_id").value;
23 currentProb = document.getElementById("test_request_problem_id").value;
24 count = submissionCount[currentProb];
24 count = submissionCount[currentProb];
25 submissionSelect = document.getElementById("test_request_submission_number");
25 submissionSelect = document.getElementById("test_request_submission_number");
26 old_len = submissionSelect.length;
26 old_len = submissionSelect.length;
27 // clear the box
27 // clear the box
28 for(i=0; i<old_len; i++)
28 for(i=0; i<old_len; i++)
29 submissionSelect.remove(0);
29 submissionSelect.remove(0);
30 for(i=count; i>=1; i--) {
30 for(i=count; i>=1; i--) {
31 try {
31 try {
32 submissionSelect.add(new Option(""+i,""+i,false,false),null);
32 submissionSelect.add(new Option(""+i,""+i,false,false),null);
33 } catch(ex) {
33 } catch(ex) {
34 submissionSelect.add(new Option(""+i,""+i,false,false));
34 submissionSelect.add(new Option(""+i,""+i,false,false));
35 }
35 }
36 }
36 }
37 }
37 }
38 </script>
38 </script>
39
39
40 <% if GraderConfiguration.show_submitbox_to?(@user) and GraderConfiguration.allow_test_request(@user) %>
40 <% if GraderConfiguration.show_submitbox_to?(@user) and GraderConfiguration.allow_test_request(@user) %>
41 <div class="submitbox">
41 <div class="submitbox">
42 <%= error_messages_for 'submitted_test_request' %>
42 <%= error_messages_for 'submitted_test_request' %>
43 - <% form_for :test_request, nil,
43 + <%= form_for :test_request, nil,
44 :url => { :action => 'submit'},
44 :url => { :action => 'submit'},
45 :html => { :multipart => true } do |f| %>
45 :html => { :multipart => true } do |f| %>
46 <table>
46 <table>
47 <tr>
47 <tr>
48 <td>Task:</td>
48 <td>Task:</td>
49 <td>
49 <td>
50 <%= select(:test_request,
50 <%= select(:test_request,
51 :problem_id,
51 :problem_id,
52 @problems.collect {|p| [p.name, p.id]}, {},
52 @problems.collect {|p| [p.name, p.id]}, {},
53 { :onclick => "updateSubmissionList();" }) %>
53 { :onclick => "updateSubmissionList();" }) %>
54 </td>
54 </td>
55 </tr>
55 </tr>
56 <tr>
56 <tr>
57 <td>Submission:</td>
57 <td>Submission:</td>
58 <td>
58 <td>
59 <%= select(:test_request,
59 <%= select(:test_request,
60 :submission_number,
60 :submission_number,
61 ((1..@submissions[0].number).collect {|n| [n,n]}).reverse) %>
61 ((1..@submissions[0].number).collect {|n| [n,n]}).reverse) %>
62 </td>
62 </td>
63 </tr>
63 </tr>
64 <tr>
64 <tr>
65 <td>Input data:</td>
65 <td>Input data:</td>
66 <td>
66 <td>
67 <%= f.file_field :input_file %>
67 <%= f.file_field :input_file %>
@@ -1,25 +1,25
1 %h1 Administrators
1 %h1 Administrators
2
2
3 %table{:class => 'info'}
3 %table{:class => 'info'}
4 %tr{:class => 'info-head'}
4 %tr{:class => 'info-head'}
5 %th #
5 %th #
6 %th Login
6 %th Login
7 %th Full name
7 %th Full name
8 %th
8 %th
9 - @admins.each_with_index do |user, i|
9 - @admins.each_with_index do |user, i|
10 %tr
10 %tr
11 %td= i+1
11 %td= i+1
12 %td= user.login
12 %td= user.login
13 %td= user.full_name
13 %td= user.full_name
14 %td
14 %td
15 - if user.login!='root'
15 - if user.login!='root'
16 = link_to '[revoke]', :action => 'revoke_admin', :id => user.id
16 = link_to '[revoke]', :action => 'revoke_admin', :id => user.id
17 %hr
17 %hr
18
18
19 - - form_tag :action => 'grant_admin' do
19 + = form_tag :action => 'grant_admin' do
20 Grant admin permission to:
20 Grant admin permission to:
21 = text_field_tag 'login'
21 = text_field_tag 'login'
22 = submit_tag 'Grant'
22 = submit_tag 'Grant'
23
23
24 %hr/
24 %hr/
25 = link_to '[go back to index]', :action => 'index'
25 = link_to '[go back to index]', :action => 'index'
@@ -1,26 +1,26
1 %h1 Bulk edit users in contests
1 %h1 Bulk edit users in contests
2
2
3 - - form_tag :action => 'manage_contest' do
3 + = form_tag :action => 'manage_contest' do
4 List users' login below; one per line.
4 List users' login below; one per line.
5 %br/
5 %br/
6 = text_area_tag 'login_list', nil, :rows => 23, :cols => 80
6 = text_area_tag 'login_list', nil, :rows => 23, :cols => 80
7 %br/
7 %br/
8 %table
8 %table
9 %tr
9 %tr
10 %td{:valign => 'top'}
10 %td{:valign => 'top'}
11 You want to
11 You want to
12 = select(nil,"operation",[['assign users to','assign'],['add users to','add'],['remove users from','remove']])
12 = select(nil,"operation",[['assign users to','assign'],['add users to','add'],['remove users from','remove']])
13 contest
13 contest
14 = select("contest","id",Contest.all.collect {|c| [c.title, c.id]})
14 = select("contest","id",Contest.all.collect {|c| [c.title, c.id]})
15 and also
15 and also
16 %td
16 %td
17 = check_box_tag 'reset_timer'
17 = check_box_tag 'reset_timer'
18 Auto-reset current contest timer.
18 Auto-reset current contest timer.
19 %br/
19 %br/
20 = check_box_tag 'notification_emails'
20 = check_box_tag 'notification_emails'
21 Send notification email(s).
21 Send notification email(s).
22
22
23 = submit_tag "Perform action!", :confirm => 'Are you sure?'
23 = submit_tag "Perform action!", :confirm => 'Are you sure?'
24
24
25 %hr/
25 %hr/
26 = link_to '[go back to index]', :action => 'index'
26 = link_to '[go back to index]', :action => 'index'
@@ -1,19 +1,19
1 %h1 Send mass e-mails
1 %h1 Send mass e-mails
2
2
3 - - form_tag :action => 'bulk_mail' do
3 + = form_tag :action => 'bulk_mail' do
4 %b List recipients' login below; one per line.
4 %b List recipients' login below; one per line.
5 %br/
5 %br/
6 = text_area_tag 'login_list', nil, :rows => 7, :cols => 80
6 = text_area_tag 'login_list', nil, :rows => 7, :cols => 80
7 %br/
7 %br/
8 %b Subject:
8 %b Subject:
9 = text_field_tag 'subject', '', :size => 60
9 = text_field_tag 'subject', '', :size => 60
10 %br/
10 %br/
11 %b Email body:
11 %b Email body:
12 %br/
12 %br/
13 = text_area_tag 'email_body', nil, :rows => 11, :cols => 80
13 = text_area_tag 'email_body', nil, :rows => 11, :cols => 80
14 %br/
14 %br/
15
15
16 = submit_tag "Send mails", :confirm => 'Are you sure?'
16 = submit_tag "Send mails", :confirm => 'Are you sure?'
17
17
18 %hr/
18 %hr/
19 = link_to '[go back to index]', :action => 'index'
19 = link_to '[go back to index]', :action => 'index'
@@ -1,18 +1,18
1 .contest-title
1 .contest-title
2 %h1
2 %h1
3 = "#{GraderConfiguration['contest.name']}: #{t 'registration.password_retrieval.header'}"
3 = "#{GraderConfiguration['contest.name']}: #{t 'registration.password_retrieval.header'}"
4
4
5 - if flash[:notice]
5 - if flash[:notice]
6 %hr/
6 %hr/
7 %b= flash[:notice]
7 %b= flash[:notice]
8 %hr/
8 %hr/
9
9
10 %br/
10 %br/
11
11
12 - - form_tag :action => 'retrieve_password' do
12 + = form_tag :action => 'retrieve_password' do
13 =t 'registration.password_retrieval.instructions'
13 =t 'registration.password_retrieval.instructions'
14 = text_field 'email', nil, :size => 20
14 = text_field 'email', nil, :size => 20
15 %br/
15 %br/
16 = submit_tag(t 'registration.password_retrieval.button_label')
16 = submit_tag(t 'registration.password_retrieval.button_label')
17
17
18 = link_to "#{t 'go_back_to'}#{t 'home_page'}", :controller => 'main', :action => 'index'
18 = link_to "#{t 'go_back_to'}#{t 'home_page'}", :controller => 'main', :action => 'index'
@@ -3,36 +3,36
3
3
4 = user_title_bar(@user)
4 = user_title_bar(@user)
5
5
6 %h1 Your account settings
6 %h1 Your account settings
7
7
8 -#%p
8 -#%p
9 -#You can edit your alias and e-mails. Just click on the text and edit it.
9 -#You can edit your alias and e-mails. Just click on the text and edit it.
10
10
11 %table.uinfo
11 %table.uinfo
12 %tr
12 %tr
13 %th.uinfo Login
13 %th.uinfo Login
14 %td.uinfo= @user.login
14 %td.uinfo= @user.login
15 %tr
15 %tr
16 %th.uinfo Full name
16 %th.uinfo Full name
17 %td.uinfo= @user.full_name
17 %td.uinfo= @user.full_name
18 -#%tr
18 -#%tr
19 -#%th.uinfo Alias
19 -#%th.uinfo Alias
20 -#%td.uinfo= in_place_editor_field :user, 'alias_for_editing', {}, :rows => 1
20 -#%td.uinfo= in_place_editor_field :user, 'alias_for_editing', {}, :rows => 1
21 -#%tr
21 -#%tr
22 -#%th.uinfo E-mail
22 -#%th.uinfo E-mail
23 -#%td.uinfo= in_place_editor_field :user, 'email_for_editing', {}, :rows => 1
23 -#%td.uinfo= in_place_editor_field :user, 'email_for_editing', {}, :rows => 1
24 %tr
24 %tr
25 %th.uinfo Password
25 %th.uinfo Password
26 %td.uinfo
26 %td.uinfo
27 - - form_tag :action => 'chg_passwd', :method => 'post' do
27 + = form_tag :action => 'chg_passwd', :method => 'post' do
28 %table
28 %table
29 %tr
29 %tr
30 %td= password_field_tag 'passwd'
30 %td= password_field_tag 'passwd'
31 %td (new)
31 %td (new)
32 %tr
32 %tr
33 %td= password_field_tag 'passwd_verify'
33 %td= password_field_tag 'passwd_verify'
34 %td (verify)
34 %td (verify)
35 %tr
35 %tr
36 %td{:colspan => "2"}
36 %td{:colspan => "2"}
37 = submit_tag 'change password'
37 = submit_tag 'change password'
38
38
@@ -1,35 +1,35
1 .contest-title
1 .contest-title
2 %h1
2 %h1
3 = "#{GraderConfiguration['contest.name']}: #{t 'registration.title'}"
3 = "#{GraderConfiguration['contest.name']}: #{t 'registration.title'}"
4
4
5 .registration-desc
5 .registration-desc
6 =t 'registration.description'
6 =t 'registration.description'
7
7
8 = error_messages_for :user, :header_message => (t 'registration.errors.header')
8 = error_messages_for :user, :header_message => (t 'registration.errors.header')
9
9
10 %table
10 %table
11 - - form_for :user, @user, :url => { :action => 'register' } do |f|
11 + = form_for :user, @user, :url => { :action => 'register' } do |f|
12 %tr
12 %tr
13 %td{:align => "right"}
13 %td{:align => "right"}
14 = "#{t 'login_label'}:"
14 = "#{t 'login_label'}:"
15 %td= f.text_field :login
15 %td= f.text_field :login
16 %tr
16 %tr
17 %td
17 %td
18 %td
18 %td
19 %small
19 %small
20 =t 'registration.login_guide'
20 =t 'registration.login_guide'
21 %tr
21 %tr
22 %td{:align => "right"}
22 %td{:align => "right"}
23 = "#{t 'full_name_label'}:"
23 = "#{t 'full_name_label'}:"
24 %td= f.text_field :full_name
24 %td= f.text_field :full_name
25 %tr
25 %tr
26 %td{:align => "right"}
26 %td{:align => "right"}
27 = "#{t 'email_label'}:"
27 = "#{t 'email_label'}:"
28 %td= f.text_field :email
28 %td= f.text_field :email
29 %tr
29 %tr
30 %td
30 %td
31 %td
31 %td
32 %small
32 %small
33 =t 'registration.email_guide'
33 =t 'registration.email_guide'
34 %tr
34 %tr
35 %td/
35 %td/
@@ -30,33 +30,33
30 config.time_zone = 'UTC'
30 config.time_zone = 'UTC'
31
31
32 # The default locale is :en and all translations from config/locales/*.rb,yml are auto loaded.
32 # The default locale is :en and all translations from config/locales/*.rb,yml are auto loaded.
33 # config.i18n.load_path += Dir[Rails.root.join('my', 'locales', '*.{rb,yml}').to_s]
33 # config.i18n.load_path += Dir[Rails.root.join('my', 'locales', '*.{rb,yml}').to_s]
34 config.i18n.default_locale = :en
34 config.i18n.default_locale = :en
35
35
36 # Configure the default encoding used in templates for Ruby 1.9.
36 # Configure the default encoding used in templates for Ruby 1.9.
37 config.encoding = "utf-8"
37 config.encoding = "utf-8"
38
38
39 # Configure sensitive parameters which will be filtered from the log file.
39 # Configure sensitive parameters which will be filtered from the log file.
40 config.filter_parameters += [:password]
40 config.filter_parameters += [:password]
41
41
42 # Enable escaping HTML in JSON.
42 # Enable escaping HTML in JSON.
43 config.active_support.escape_html_entities_in_json = true
43 config.active_support.escape_html_entities_in_json = true
44
44
45 # Use SQL instead of Active Record's schema dumper when creating the database.
45 # Use SQL instead of Active Record's schema dumper when creating the database.
46 # This is necessary if your schema can't be completely dumped by the schema dumper,
46 # This is necessary if your schema can't be completely dumped by the schema dumper,
47 # like if you have constraints or database-specific column types
47 # like if you have constraints or database-specific column types
48 # config.active_record.schema_format = :sql
48 # config.active_record.schema_format = :sql
49
49
50 # Enforce whitelist mode for mass assignment.
50 # Enforce whitelist mode for mass assignment.
51 # This will create an empty whitelist of attributes available for mass-assignment for all models
51 # This will create an empty whitelist of attributes available for mass-assignment for all models
52 # in your app. As such, your models will need to explicitly whitelist or blacklist accessible
52 # in your app. As such, your models will need to explicitly whitelist or blacklist accessible
53 # parameters by using an attr_accessible or attr_protected declaration.
53 # parameters by using an attr_accessible or attr_protected declaration.
54 - config.active_record.whitelist_attributes = true
54 + config.active_record.whitelist_attributes = false
55
55
56 # Enable the asset pipeline
56 # Enable the asset pipeline
57 config.assets.enabled = false
57 config.assets.enabled = false
58
58
59 # Version of your assets, change this if you want to expire all your assets
59 # Version of your assets, change this if you want to expire all your assets
60 config.assets.version = '1.0'
60 config.assets.version = '1.0'
61 end
61 end
62 end
62 end
You need to be logged in to leave comments. Login now