Description:
Merge pull request #22 from nattee/master fix viewing stat and add load file to the live edit view
Commit status:
[Not Reviewed]
References:
merge default
Comments:
0 Commit comments 0 Inline Comments
Unresolved TODOs:
There are no unresolved TODOs
Add another comment

r723:4f2d84656f3a - - 2 files changed: 30 inserted, 2 deleted

@@ -1,42 +1,45
1 1 require 'net/smtp'
2 2
3 3 class UsersController < ApplicationController
4 4
5 5 include MailHelperMethods
6 6
7 7 before_filter :authenticate, :except => [:new,
8 8 :register,
9 9 :confirm,
10 10 :forget,
11 11 :retrieve_password]
12 12
13 13 before_filter :verify_online_registration, :only => [:new,
14 14 :register,
15 15 :forget,
16 16 :retrieve_password]
17 17 before_filter :authenticate, :profile_authorization, only: [:profile]
18 18
19 + before_filter :admin_authorization, only: [:stat, :toggle_activate, :toggle_enable]
20 +
21 +
19 22 verify :method => :post, :only => [:chg_passwd],
20 23 :redirect_to => { :action => :index }
21 24
22 25 #in_place_edit_for :user, :alias_for_editing
23 26 #in_place_edit_for :user, :email_for_editing
24 27
25 28 def index
26 29 if !GraderConfiguration['system.user_setting_enabled']
27 30 redirect_to :controller => 'main', :action => 'list'
28 31 else
29 32 @user = User.find(session[:user_id])
30 33 end
31 34 end
32 35
33 36 def chg_passwd
34 37 user = User.find(session[:user_id])
35 38 user.password = params[:passwd]
36 39 user.password_confirmation = params[:passwd_verify]
37 40 if user.save
38 41 flash[:notice] = 'password changed'
39 42 else
40 43 flash[:notice] = 'Error: password changing failed'
41 44 end
42 45 redirect_to :action => 'index'
@@ -1,77 +1,102
1 1 %h2 Live submit
2 2 %br
3 3
4 4 %textarea#text_sourcecode{style: "display:none"}~ @source
5 5 .container
6 6 .row
7 7 .col-md-12
8 8 .alert.alert-info
9 9 Write your code in the following box, choose language, and click submit button when finished
10 10 .row
11 11 .col-md-8
12 12 %div#editor{style: 'height: 500px; border-radius: 7px; font-size: 14px;'}
13 13 .col-md-4
14 14 - # submission form
15 15 = form_tag({controller: :main, :action => 'submit'}, :multipart => true, class: 'form') do
16 16
17 17 = hidden_field_tag 'editor_text', @source
18 18 = hidden_field_tag 'submission[problem_id]', @problem.id
19 19 .form-group
20 20 = label_tag "Task:"
21 21 = text_field_tag 'asdf', "#{@problem.long_name}", class: 'form-control', disabled: true
22 + .form-group
23 + = label_tag "Description:"
24 + = link_to_description_if_any "[download] <span class='glyphicon glyphicon-file'></span>".html_safe, @problem
22 25
23 26 .form-group
24 - = label_tag 'Language'
27 + = label_tag 'Language:'
25 28 = select_tag 'language_id', options_from_collection_for_select(Language.all, 'id', 'pretty_name', @lang_id || Language.find_by_pretty_name("Python").id || Language.first.id), class: 'form-control select', style: "width: 100px"
26 29 .form-group
30 + .input-group
31 + %span.input-group-btn
32 + %span.btn.btn-default.btn-file
33 + Browse
34 + = file_field_tag 'load_file'
35 + = text_field_tag '' , nil, {readonly: true, class: 'form-control'}
36 + .form-group
27 37 = submit_tag 'Submit', class: 'btn btn-success', id: 'live_submit',
28 38 data: {confirm: "Submitting this source code for task #{@problem.long_name}?"}
29 39 - # latest submission status
30 40 .panel{class: (@submission && @submission.graded_at) ? "panel-info" : "panel-warning"}
31 41 .panel-heading
32 42 Latest Submission Status
33 43 = link_to "Refresh",get_latest_submission_status_submissions_path(@submission.user,@problem), class: "btn btn-default btn-sm", remote: true if @submission
34 44 .panel-body
35 45 %div#latest_status
36 46 - if @submission
37 47 = render :partial => 'submission_short',
38 48 :locals => {submission: @submission, problem_name: @problem.name, problem_id: @problem.id }
39 49 .row
40 50 .col-md-12
41 51 %h2 Console
42 52 %textarea#console{style: 'height: 100%; width: 100%;background-color:#000;color:#fff;font-family: consolas, monaco, "Droid Sans Mono";',rows: 20}
43 53
44 54 :javascript
45 55 $(document).ready(function() {
46 56 e = ace.edit("editor")
47 57 e.setValue($("#text_sourcecode").val());
48 58 e.gotoLine(1);
49 59 $("#language_id").trigger('change');
50 - brython();
60 +
61 + $("#load_file").on('change',function(evt) {
62 + var file = evt.target.files[0];
63 + var reader = new FileReader();
64 + reader.onload = function(theFile) {
65 + var e = ace.edit("editor")
66 + e.setValue(theFile.target.result);
67 + e.gotoLine(1);
68 + };
69 + reader.readAsText(file)
70 + });
71 +
72 + //brython();
51 73 });
52 74
53 75
76 +
77 +
78 +
54 79 %script#__main__{type:'text/python3'}
55 80 :plain
56 81 import sys
57 82 import traceback
58 83
59 84 from browser import document as doc
60 85 from browser import window, alert, console
61 86
62 87 _credits = """ Thanks to CWI, CNRI, BeOpen.com, Zope Corporation and a cast of thousands
63 88 for supporting Python development. See www.python.org for more information."""
64 89
65 90 _copyright = """Copyright (c) 2012, Pierre Quentel pierre.quentel@gmail.com
66 91 All Rights Reserved.
67 92
68 93 Copyright (c) 2001-2013 Python Software Foundation.
69 94 All Rights Reserved.
70 95
71 96 Copyright (c) 2000 BeOpen.com.
72 97 All Rights Reserved.
73 98
74 99 Copyright (c) 1995-2001 Corporation for National Research Initiatives.
75 100 All Rights Reserved.
76 101
77 102 Copyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam.
You need to be logged in to leave comments. Login now