Newer
Older
dmpopidor / app / views / branded / questions / _new_edit_question_textarea.html.erb
<%# locals: { f, question, answer, research_output, locking } %>
<%#
  When locking variable is true, this partial renders a plain paragraph with the question answer or default value instead.
  Since the partial answers/_locking reuses the partial answers/_new_edit which reuses this partial within, when a stale answer is found
  the browser renders two forms (first the stale answer form followed by the latest answer saved). This reusability comes with a side-effect,
  i.e. the browser might end up with duplicate ids for the form controls and therefore re-loading tinymce for the locking form becomes
  rather cumbersome. As such, this workaround, simplifies the logic when a stale answer is found by rendering the html of the answer directly
  within a paragraph.
%>
<div class="form-group">
    <%= f.label(:text, sanitize(question.text), class: 'control-label') %>
    <% if locking || readonly %>
      <%= sanitize("<p>#{answer.text || question.default_value}</p>") %>
    <% else %>
      <%= text_area_tag('answer[text]', answer.text || question.default_value, id: "answer-text-#{question.id}-research-output-#{research_output.id}", class: "form-control tinymce_answer") %>
    <% end %>
</div>