skill-assessment-app/app/views/quiz/_live_code.html.erb

79 lines
3.3 KiB
Plaintext
Raw Normal View History

2016-08-01 15:16:20 -05:00
<%
2016-09-07 17:45:22 -05:00
content_for_javascript_once 'live-coder' do
javascript_include_tag "live-coder"
end
2016-08-01 15:16:20 -05:00
option_id = "#{question.question_id}_finish-later"
checkbox_html = {class: 'checkbox',
id: "answer_#{option_id}",
2016-08-04 21:20:01 -05:00
name: "answer[#{question.input_type}][later]",
2016-08-01 15:16:20 -05:00
checked: Array(question.answer).include?('finish-later')
}
2016-08-23 21:54:53 -05:00
answers = answer.try(:answer) || answer
value_text = answers['text'] || question.input_options['text']
value_html = answers['html'] || question.input_options['html']
value_css = answers['css'] || question.input_options['css']
value_js = answers['js'] || question.input_options['js']
2016-08-01 15:16:20 -05:00
%>
2016-07-27 22:16:12 -05:00
2016-08-08 17:08:20 -05:00
<%= render partial: "quiz/answer_errors", locals: {question: question, answer: answer} %>
2016-08-05 13:10:10 -05:00
2016-08-08 17:08:20 -05:00
<div id="nojs<%= question.question_id %>" data-id="live-coder-finish-later">
<noscript>
<p class="warning">
2016-08-12 14:32:09 -05:00
<% unless params[:action] == 'summary' %>
This is a question where you will be
<% else %>
This is a question where you were
<% end %>
asked to write code, and it utilizes a JavaScript-enabled
environment. It looks like JavaScript is not loaded.
2016-08-12 15:07:51 -05:00
<% unless params[:action] == 'summary' %>
Please check the box below to acknowledge that you agree to come back at a later time to finish
answering this question before you can submit the test.
<% else %>
You will need to enable JavaScript and answer this question before you can submit the test.
<% end %>
</p>
2016-08-04 22:28:20 -05:00
<% unless params[:action] == 'summary' %>
<%= form.check_box(:answer, checkbox_html, true, '') %>
<%= form.label(option_id, 'I will come back later to finish this code question') %>
2016-08-04 22:28:20 -05:00
<% end %>
</noscript>
2016-08-04 22:28:20 -05:00
</div>
2016-07-27 22:16:12 -05:00
2016-08-08 17:08:20 -05:00
<div id="answer<%= question.question_id %>" data-id="live-coder-answer" style="display: none;">
2016-09-02 17:51:35 -05:00
<label for="answer_answer_hash_text">Enter answer here</label>
<%= text_area_tag 'answer[answer_hash][text]', value_text, { disabled: true, data: {last: answers['text']}} %>
2016-08-08 17:08:20 -05:00
<div class="code-input">
2016-09-02 17:51:35 -05:00
<label for="answer_answer_hash_html">HTML</label>
<%= text_area_tag 'answer[answer_hash][html]', value_html, { disabled: true, data: {id: 'code-html', last: answers['html']}, class: 'code-answer code-html' } %>
2016-08-08 17:08:20 -05:00
</div>
<div class="code-input">
2016-09-02 17:51:35 -05:00
<label for="answer_answer_hash_css">CSS</label>
<%= text_area_tag 'answer[answer_hash][css]', value_css, { disabled: true, data: {id: 'code-css', last: answers['css']}, class: 'code-answer code-css' } %>
2016-08-08 17:08:20 -05:00
</div>
<div class="code-input">
2016-09-02 17:51:35 -05:00
<label for="answer_answer_hash_js">JS</label>
<%= text_area_tag 'answer[answer_hash][js]', value_js, { disabled: true, data: {id: 'code-js', last: answers['js']}, class: 'code-answer code-js' } %>
2016-08-08 17:08:20 -05:00
</div>
<div class="results" data-id="results"></div>
2016-07-27 22:16:12 -05:00
</div>
2016-08-08 17:08:20 -05:00
<script>
<% # removes the no-js message %>
2016-08-08 17:08:20 -05:00
document.getElementById("nojs<%= question.question_id %>").style.display = "none";
document.getElementById("answer<%= question.question_id %>").style.display = "";
<% # we want the coders disabled until JS is confirmed, so form post is easier to validate %>
var coders = document.querySelectorAll("[data-id=live-coder-answer] textarea");
2016-08-12 15:07:51 -05:00
for(i=0; i<coders.length; i++){ coders[i].disabled = false; }
2016-08-08 17:08:20 -05:00
</script>