Description:
- bootstrapize problem/edit - bootstrapize announcement/edit
Commit status:
[Not Reviewed]
References:
Comments:
0 Commit comments 0 Inline Comments
Unresolved TODOs:
There are no unresolved TODOs
Add another comment

r650:72b80e42fb9b - - 4 files changed: 2 inserted, 113 deleted

@@ -1,140 +1,140
1 %h2 Live submit
1 %h2 Live submit
2 %br
2 %br
3
3
4 - %textarea#text_haha{style: "display:none"}~ @source
4 + %textarea#text_sourcecode{style: "display:none"}~ @source
5 .container
5 .container
6 .row
6 .row
7 .col-md-12
7 .col-md-12
8 .alert.alert-info
8 .alert.alert-info
9 Write your code in the following box, choose language, and click submit button when finished
9 Write your code in the following box, choose language, and click submit button when finished
10 .row
10 .row
11 .col-md-8
11 .col-md-8
12 %div#editor{style: 'height: 500px; border-radius: 7px; font-size: 14px;'}
12 %div#editor{style: 'height: 500px; border-radius: 7px; font-size: 14px;'}
13 .col-md-4
13 .col-md-4
14 = form_tag({controller: :main, :action => 'submit'}, :multipart => true, class: 'form') do
14 = form_tag({controller: :main, :action => 'submit'}, :multipart => true, class: 'form') do
15
15
16 = hidden_field_tag 'editor_text', @source
16 = hidden_field_tag 'editor_text', @source
17 = hidden_field_tag 'submission[problem_id]', @problem.id
17 = hidden_field_tag 'submission[problem_id]', @problem.id
18 .form-group
18 .form-group
19 = label_tag "Task:"
19 = label_tag "Task:"
20 = text_field_tag 'asdf', "#{@problem.long_name}", class: 'form-control', disabled: true
20 = text_field_tag 'asdf', "#{@problem.long_name}", class: 'form-control', disabled: true
21
21
22 .form-group
22 .form-group
23 = label_tag 'Language'
23 = label_tag 'Language'
24 = 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"
24 = 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"
25 .form-group
25 .form-group
26 = submit_tag 'Submit', class: 'btn btn-success', id: 'live_submit',
26 = submit_tag 'Submit', class: 'btn btn-success', id: 'live_submit',
27 data: {confirm: "Submitting this source code for task #{@problem.long_name}?"}
27 data: {confirm: "Submitting this source code for task #{@problem.long_name}?"}
28 .panel.panel-info
28 .panel.panel-info
29 .panel-heading
29 .panel-heading
30 Latest Submission Status
30 Latest Submission Status
31 = link_to "Refresh",get_latest_submission_status_submissions_path(@submission.user,@problem), class: "btn btn-default btn-sm", remote: true if @submission
31 = link_to "Refresh",get_latest_submission_status_submissions_path(@submission.user,@problem), class: "btn btn-default btn-sm", remote: true if @submission
32 .panel-body
32 .panel-body
33 - if @submission
33 - if @submission
34 = render :partial => 'submission_short',
34 = render :partial => 'submission_short',
35 :locals => {submission: @submission, problem_name: @problem.name, problem_id: @problem.id }
35 :locals => {submission: @submission, problem_name: @problem.name, problem_id: @problem.id }
36 .row
36 .row
37 .col-md-12
37 .col-md-12
38 %h2 Console
38 %h2 Console
39 %textarea#console{style: 'height: 100%; width: 100%;background-color:#000;color:#fff;font-family: consolas, monaco, "Droid Sans Mono";',rows: 20}
39 %textarea#console{style: 'height: 100%; width: 100%;background-color:#000;color:#fff;font-family: consolas, monaco, "Droid Sans Mono";',rows: 20}
40
40
41 :javascript
41 :javascript
42 $(document).ready(function() {
42 $(document).ready(function() {
43 e = ace.edit("editor")
43 e = ace.edit("editor")
44 - e.setValue($("#text_haha").val());
44 + e.setValue($("#text_sourcecode").val());
45 e.gotoLine(1);
45 e.gotoLine(1);
46 $("#language_id").trigger('change');
46 $("#language_id").trigger('change');
47 brython();
47 brython();
48 });
48 });
49
49
50
50
51 %script#__main__{type:'text/python3'}
51 %script#__main__{type:'text/python3'}
52 :plain
52 :plain
53 import sys
53 import sys
54 import traceback
54 import traceback
55
55
56 from browser import document as doc
56 from browser import document as doc
57 from browser import window, alert, console
57 from browser import window, alert, console
58
58
59 _credits = """ Thanks to CWI, CNRI, BeOpen.com, Zope Corporation and a cast of thousands
59 _credits = """ Thanks to CWI, CNRI, BeOpen.com, Zope Corporation and a cast of thousands
60 for supporting Python development. See www.python.org for more information."""
60 for supporting Python development. See www.python.org for more information."""
61
61
62 _copyright = """Copyright (c) 2012, Pierre Quentel pierre.quentel@gmail.com
62 _copyright = """Copyright (c) 2012, Pierre Quentel pierre.quentel@gmail.com
63 All Rights Reserved.
63 All Rights Reserved.
64
64
65 Copyright (c) 2001-2013 Python Software Foundation.
65 Copyright (c) 2001-2013 Python Software Foundation.
66 All Rights Reserved.
66 All Rights Reserved.
67
67
68 Copyright (c) 2000 BeOpen.com.
68 Copyright (c) 2000 BeOpen.com.
69 All Rights Reserved.
69 All Rights Reserved.
70
70
71 Copyright (c) 1995-2001 Corporation for National Research Initiatives.
71 Copyright (c) 1995-2001 Corporation for National Research Initiatives.
72 All Rights Reserved.
72 All Rights Reserved.
73
73
74 Copyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam.
74 Copyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam.
75 All Rights Reserved."""
75 All Rights Reserved."""
76
76
77 _license = """Copyright (c) 2012, Pierre Quentel pierre.quentel@gmail.com
77 _license = """Copyright (c) 2012, Pierre Quentel pierre.quentel@gmail.com
78 All rights reserved.
78 All rights reserved.
79
79
80 Redistribution and use in source and binary forms, with or without
80 Redistribution and use in source and binary forms, with or without
81 modification, are permitted provided that the following conditions are met:
81 modification, are permitted provided that the following conditions are met:
82
82
83 Redistributions of source code must retain the above copyright notice, this
83 Redistributions of source code must retain the above copyright notice, this
84 list of conditions and the following disclaimer. Redistributions in binary
84 list of conditions and the following disclaimer. Redistributions in binary
85 form must reproduce the above copyright notice, this list of conditions and
85 form must reproduce the above copyright notice, this list of conditions and
86 the following disclaimer in the documentation and/or other materials provided
86 the following disclaimer in the documentation and/or other materials provided
87 with the distribution.
87 with the distribution.
88 Neither the name of the <ORGANIZATION> nor the names of its contributors may
88 Neither the name of the <ORGANIZATION> nor the names of its contributors may
89 be used to endorse or promote products derived from this software without
89 be used to endorse or promote products derived from this software without
90 specific prior written permission.
90 specific prior written permission.
91
91
92 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
92 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
93 AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
93 AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
94 IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
94 IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
95 ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
95 ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
96 LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
96 LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
97 CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
97 CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
98 SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
98 SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
99 INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
99 INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
100 CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
100 CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
101 ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
101 ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
102 POSSIBILITY OF SUCH DAMAGE.
102 POSSIBILITY OF SUCH DAMAGE.
103 """
103 """
104
104
105 def credits():
105 def credits():
106 print(_credits)
106 print(_credits)
107 credits.__repr__ = lambda:_credits
107 credits.__repr__ = lambda:_credits
108
108
109 def copyright():
109 def copyright():
110 print(_copyright)
110 print(_copyright)
111 copyright.__repr__ = lambda:_copyright
111 copyright.__repr__ = lambda:_copyright
112
112
113 def license():
113 def license():
114 print(_license)
114 print(_license)
115 license.__repr__ = lambda:_license
115 license.__repr__ = lambda:_license
116
116
117 def write(data):
117 def write(data):
118 doc['console'].value += str(data)
118 doc['console'].value += str(data)
119
119
120
120
121 sys.stdout.write = sys.stderr.write = write
121 sys.stdout.write = sys.stderr.write = write
122 history = []
122 history = []
123 current = 0
123 current = 0
124 _status = "main" # or "block" if typing inside a block
124 _status = "main" # or "block" if typing inside a block
125
125
126 # execution namespace
126 # execution namespace
127 editor_ns = {'credits':credits,
127 editor_ns = {'credits':credits,
128 'copyright':copyright,
128 'copyright':copyright,
129 'license':license,
129 'license':license,
130 '__name__':'__main__'}
130 '__name__':'__main__'}
131
131
132 def cursorToEnd(*args):
132 def cursorToEnd(*args):
133 pos = len(doc['console'].value)
133 pos = len(doc['console'].value)
134 doc['console'].setSelectionRange(pos, pos)
134 doc['console'].setSelectionRange(pos, pos)
135 doc['console'].scrollTop = doc['console'].scrollHeight
135 doc['console'].scrollTop = doc['console'].scrollHeight
136
136
137 def get_col(area):
137 def get_col(area):
138 # returns the column num of cursor
138 # returns the column num of cursor
139 sel = doc['console'].selectionStart
139 sel = doc['console'].selectionStart
140 lines = doc['console'].value.split('\n')
140 lines = doc['console'].value.split('\n')
deleted file
deleted file
deleted file
You need to be logged in to leave comments. Login now