testmycode/tmc-server

View on GitHub
app/views/feedback_questions/_form.html.erb

Summary

Maintainability
Test Coverage
<%
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>