%textarea#text_sourcecode{style: "display:none"}~ @source .container .row .col-md-12 %h2 Live submit .row .col-md-12 .alert.alert-info Write your code in the following box, choose language, and click submit button when finished .row .col-md-8 %div#editor{style: 'height: 500px; border-radius: 7px; font-size: 14px;'} .col-md-4 -# submission form .card.mb-3 .card-header Submission .card-body = form_with url: submit_main_path, :multipart => true, class: 'form' do |form| = hidden_field_tag 'editor_text', @source = hidden_field_tag 'submission[problem_id]', @problem.id .row.mb-2 .col-md-4 = form.label "Task", class: 'col-form-label text-secondary' .col-md-8 = form.label nil, "#{@problem.long_name}", class: 'col-form-label fw-bold' .row.mb-2 .col-md-4 = form.label "Description", class: 'col-form-label text-secondary' .col-md-8 = link_to_description_if_any "[download] description".html_safe, @problem .row.mb-2 .col-md-4 = form.label :language_id, 'Language', class: 'col-form-label text-secondary' .col-md-8 = form.select :language_id, options_from_collection_for_select(Language.all, 'id', 'pretty_name', @lang_id || @current_user.default_language || Language.find_by_pretty_name("Python").id || Language.first.id), {}, class: 'form-select', style: "width: 100px", id: 'language_id' .row.mb-2 .col-12 = form.file_field :load_file, class: 'form-control', id: 'load_file' .row.mb-2 .col-12 = submit_tag 'Submit', class: 'btn ' + (@submission && @submission.number >= 100 ? 'golden-btn' : 'btn-success'), id: 'live_submit', data: {confirm: "Submitting this source code for task #{@problem.long_name}?"} -# latest submission status .card .card-header.text-bg-info.border-info Latest Submission Status = link_to "Refresh",get_latest_submission_status_submissions_path(@submission.user,@problem), id: 'refresh', class: "btn btn-light btn-sm", remote: true if @submission .card-body #latest_status .modal.fade#compiler{tabindex: -1,role: 'dialog'} .modal-dialog.modal-lg{role:'document'} .modal-content .modal-header %button.close{type: 'button', data: {dismissed: :modal}, aria: {label: 'close'}} %span{aria: {hidden: 'true'}, data: {dismiss: 'modal'}} × %h4 Compiler message .modal-body %pre#compiler_msg - if @submission = @submission.compiler_message .modal-footer %button.btn.btn-default{type: 'button', data: {dismiss: 'modal'}} Close :javascript $(document).ready(function() { var e = ace.edit("editor") e.setValue($("#text_sourcecode").val()); e.gotoLine(1); $("#language_id").trigger('change'); $("#load_file").on('change',function(evt) { var file = evt.target.files[0]; var reader = new FileReader(); reader.onload = function(theFile) { var e = ace.edit("editor") e.setValue(theFile.target.result); e.gotoLine(1); }; reader.readAsText(file) }); $("#live_submit").on("click", function(event) { $("#editor_text").val(e.getValue()); }); $("#language_id").on("change", function(event) { text = $("#language_id option:selected").text(); mode = 'ace/mode/c_cpp'; switch (text) { case 'Pascal': mode = 'ace/mode/pascal'; break; case 'C++': case 'C': mode = 'ace/mode/c_cpp'; break; case 'Ruby': mode = 'ace/mode/ruby'; break; case 'Python': mode = 'ace/mode/python'; break; case 'Java': mode = 'ace/mode/java'; } e.getSession().setMode(mode); }); //brython(); $('#refresh').click() });