app/views/feedback_questions/_form.html.erb
<%
if question.intrange?
intrange_min, intrange_max = question.intrange.minmax
question.kind = 'intrange' # so it works with the radio button
else
intrange_min, intrange_max = [0, 10]
end
if question.new_record?
url = organization_course_feedback_questions_path(@organization, question.course)
else
url = feedback_question_path(question)
end
kind_disabled = !question.new_record?
%>
<%= form_for question, :url => url do |f| %>
<%= render 'shared/error_messages', :target => question %>
<%= labeled_field("Question", f.text_field(:question, :style => 'width: 30em')) %>
<%= labeled_field("Question title in results views", f.text_field(:title, :style => 'width: 10em')) %>
<%= labeled_field("Question type") do %>
<div id="feedback_question_kind">
<div class="field">
<%= labeled('Integer range', f.radio_button(:kind, 'intrange', :disabled => kind_disabled), :order => :label_last) %>
<div class="suboption">
Min: <%= text_field_tag :intrange_min, intrange_min, :style => 'width: 4em', :disabled => kind_disabled %>
Max: <%= text_field_tag :intrange_max, intrange_max, :style => 'width: 4em', :disabled => kind_disabled %> (inclusive)
</div>
</div>
<%= labeled_field('Text area', f.radio_button(:kind, 'text', :disabled => kind_disabled), :order => :label_last) %>
</div>
<% end %>
<% if question.new_record? %>
<%= f.submit("Create question", class: "btn btn-primary") %>
<% else %>
<%= f.submit("Save", class: "btn btn-primary") %>
<% end %>
<% end %>
<script type="text/javascript">
$(".suboption").hide();
var fun = function(e) {
if ($(e.target).attr("id") == "feedback_question_kind_intrange") {
$(".suboption").show();
} else {
$(".suboption").hide();
}
};
$("input:radio").on("change", fun);
</script>