Description:
fixed layout problem, for real, using render :layout => ...
git-svn-id: http://theory.cpe.ku.ac.th/grader/web/trunk@51 6386c4cd-e34a-4fa8-8920-d93eb39b512e
Commit status:
[Not Reviewed]
References:
Diff options:
Comments:
0 Commit comments
0 Inline Comments
Unresolved TODOs:
There are no unresolved TODOs
r27:e418fd4486af - - 5 files changed: 26 inserted, 26 deleted
@@ -0,0 +1,22 | |||
|
1 | + <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" | |
|
2 | + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |
|
3 | + | |
|
4 | + <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> | |
|
5 | + <head> | |
|
6 | + <meta http-equiv="content-type" content="text/html;charset=UTF-8" /> | |
|
7 | + <title>Grader!</title> | |
|
8 | + <%= stylesheet_link_tag 'application' %> | |
|
9 | + <%= yield :head %> | |
|
10 | + </head> | |
|
11 | + <body> | |
|
12 | + | |
|
13 | + <div class="userbar"> | |
|
14 | + <%= user_header %> | |
|
15 | + </div> | |
|
16 | + | |
|
17 | + <p style="color: green"><%= flash[:notice] %></p> | |
|
18 | + | |
|
19 | + <%= yield %> | |
|
20 | + | |
|
21 | + </body> | |
|
22 | + </html> |
@@ -1,65 +1,63 | |||
|
1 | 1 | class MainController < ApplicationController |
|
2 | 2 | |
|
3 | 3 | before_filter :authenticate, :except => [:index, :login] |
|
4 | 4 | |
|
5 | - layout 'application' | |
|
6 | - | |
|
7 | 5 | verify :method => :post, :only => [:submit], |
|
8 | 6 | :redirect_to => { :action => :index } |
|
9 | 7 | |
|
10 | 8 | |
|
11 | 9 | def index |
|
12 | 10 | redirect_to :action => 'login' |
|
13 | 11 | end |
|
14 | 12 | |
|
15 | 13 | def login |
|
16 | - MainController.layout 'empty' | |
|
17 | 14 | reset_session |
|
15 | + render :action => 'login', :layout => 'empty' | |
|
18 | 16 | end |
|
19 | 17 | |
|
20 | 18 | def list |
|
21 | 19 | @problems = Problem.find_available_problems |
|
22 | 20 | @prob_submissions = Array.new |
|
23 | 21 | @user = User.find(session[:user_id]) |
|
24 | 22 | @problems.each do |p| |
|
25 | 23 | c, sub = Submission.find_by_user_and_problem(@user.id,p.id) |
|
26 | 24 | @prob_submissions << [c,sub] |
|
27 | 25 | end |
|
28 | 26 | end |
|
29 | 27 | |
|
30 | 28 | def submit |
|
31 | 29 | submission = Submission.new(params[:submission]) |
|
32 | 30 | submission.user_id = session[:user_id] |
|
33 | 31 | submission.language_id = 0 |
|
34 | 32 | source = params['file'].read |
|
35 | 33 | if source.length > 100_000 |
|
36 | 34 | flash[:notice] = 'Error: file too long' |
|
37 | 35 | elsif (lang = Submission.find_language_in_source(source))==nil |
|
38 | 36 | flash[:notice] = 'Error: cannot determine language used' |
|
39 | 37 | elsif ((submission.problem_id==-1) and |
|
40 | 38 | !(problem=Submission.find_problem_in_source(source))) |
|
41 | 39 | flash[:notice] = 'Error: cannot determine problem submitted' |
|
42 | 40 | elsif ((submission.problem_id==-1) and |
|
43 | 41 | (problem.available == false)) |
|
44 | 42 | flash[:notice] = 'Error: problem is not available' |
|
45 | 43 | else |
|
46 | 44 | submission.problem_id = problem.id if submission.problem_id == -1 |
|
47 | 45 | submission.source = source |
|
48 | 46 | submission.language_id = lang.id |
|
49 | 47 | submission.submitted_at = Time.new |
|
50 | 48 | if submission.save == false |
|
51 | 49 | flash[:notice] = 'Error saving your submission' |
|
52 | 50 | elsif Task.create(:submission_id => submission.id) == false |
|
53 | 51 | flash[:notice] = 'Error adding your submission to task queue' |
|
54 | 52 | end |
|
55 | 53 | end |
|
56 | 54 | redirect_to :action => 'list' |
|
57 | 55 | end |
|
58 | 56 | |
|
59 | 57 | def get_source |
|
60 | 58 | submission = Submission.find(params[:id]) |
|
61 | 59 | if submission.user_id == session[:user_id] |
|
62 | 60 | fname = submission.problem.name + '.' + submission.language.ext |
|
63 | 61 | send_data(submission.source, |
|
64 | 62 | {:filename => fname, |
|
65 | 63 | :type => 'text/plain'}) |
@@ -1,35 +1,35 | |||
|
1 | 1 | # Methods added to this helper will be available to all templates in the application. |
|
2 | 2 | module ApplicationHelper |
|
3 | 3 | |
|
4 | 4 | def user_header |
|
5 | 5 | options = '' |
|
6 | 6 | user = User.find(session[:user_id]) |
|
7 | 7 | |
|
8 | 8 | # main page |
|
9 | 9 | options += link_to_unless_current '[Main]', |
|
10 | 10 | :controller => 'main', :action => 'list' |
|
11 | 11 | options += ' ' |
|
12 | 12 | |
|
13 | 13 | # admin menu |
|
14 | - if user.admin? | |
|
14 | + if (user!=nil) and (user.admin?) | |
|
15 | 15 | options += |
|
16 | 16 | (link_to_unless_current '[Problem admin]', |
|
17 | 17 | :controller => 'problems', :action => 'index') + ' ' |
|
18 | 18 | options += |
|
19 | 19 | (link_to_unless_current '[User admin]', |
|
20 | 20 | :controller => 'user_admin', :action => 'index') + ' ' |
|
21 | 21 | options += |
|
22 | 22 | (link_to_unless_current '[User stat]', |
|
23 | 23 | :controller => 'user_admin', :action => 'user_stat') + ' ' |
|
24 | 24 | end |
|
25 | 25 | |
|
26 | 26 | # general options |
|
27 | 27 | options += link_to_unless_current '[Settings]', |
|
28 | 28 | :controller => 'users', :action => 'index' |
|
29 | 29 | options += ' ' |
|
30 | 30 | options += |
|
31 | 31 | link_to('[Log out]', {:controller => 'main', :action => 'login'}) |
|
32 | 32 | options |
|
33 | 33 | end |
|
34 | 34 | |
|
35 | 35 | end |
@@ -1,42 +1,44 | |||
|
1 | 1 | <% content_for :head do %> |
|
2 | 2 | <%= stylesheet_link_tag 'scaffold' %> |
|
3 | 3 | <%= javascript_include_tag :defaults %> |
|
4 | 4 | <% end %> |
|
5 | 5 | |
|
6 | 6 | <h1>Listing problems</h1> |
|
7 | 7 | |
|
8 | 8 | <div class="usermenu"> |
|
9 | 9 | <%= link_to 'Main', :controller => 'main', :action => 'list' %> |
|
10 | 10 | </div> |
|
11 | 11 | |
|
12 | + <%= link_to 'New problem', :action => 'new' %><br/> | |
|
13 | + | |
|
12 | 14 | <table> |
|
13 | 15 | <tr> |
|
14 | 16 | <th>Name</th> |
|
15 | 17 | <th>Full name</th> |
|
16 | 18 | <th>Full score</th> |
|
17 | 19 | <th>Date added</th> |
|
18 | 20 | <th>Available</th> |
|
19 | 21 | </tr> |
|
20 | 22 | |
|
21 | 23 | <% for problem in @problems %> |
|
22 | 24 | <tr> |
|
23 | 25 | <% @problem=problem %> |
|
24 | 26 | <td><%= in_place_editor_field :problem, :name, {}, :rows=>1 %> |
|
25 | 27 | <td><%= in_place_editor_field :problem, :full_name, {}, :rows=>1 %> |
|
26 | 28 | <td><%= in_place_editor_field :problem, :full_score, {}, :rows=>1 %> |
|
27 | 29 | <td><%= problem.date_added %> |
|
28 | 30 | <td><%= problem.available %> |
|
29 | 31 | |
|
30 | 32 | <td><%= link_to '[Toggle]', :action => 'toggle_avail', :id => problem.id %></td> |
|
31 | 33 | <td><%= link_to '[Stat]', :action => 'stat', :id => problem.id %></td> |
|
32 | 34 | <td><%= link_to '[Show]', :action => 'show', :id => problem %></td> |
|
33 | 35 | <td><%= link_to '[Edit]', :action => 'edit', :id => problem %></td> |
|
34 | 36 | <td><%= link_to '[Destroy]', { :action => 'destroy', :id => problem }, :confirm => 'Are you sure?', :method => :post %></td> |
|
35 | 37 | </tr> |
|
36 | 38 | <% end %> |
|
37 | 39 | </table> |
|
38 | 40 | |
|
39 | 41 | |
|
40 | 42 | <br /> |
|
41 | 43 | |
|
42 | 44 | <%= link_to 'New problem', :action => 'new' %> |
deleted file |
You need to be logged in to leave comments.
Login now