app/views/admin/documents/_form.html.erb
<%= nested_form_for @document, as: :document,
url: (@event ? admin_event_document_path(@event, @document) : admin_document_path(@document)),
multipart: true,
html: { class: 'form-horizontal' } do |f| %>
<%= error_messages_for(@document) %>
<% unless @document.event && @document.event.designation %>
<div class="control-group">
<%= f.label :designation_id, class: 'control-label' %>
<div class="controls">
<%= f.select :designation_id,
options_for_select(
@designations.map { |l| [l.name, l.id] },
@document.designation_id
), include_blank: true
%>
</div>
</div>
<% end %>
<div class="control-group">
<%= f.label :event_id, class: 'control-label' %>
<div class="controls">
<%= f.select :event_id,
options_for_select(
@events.map { |l| [l.name, l.id] },
@document.event_id
), include_blank: true
%>
<% if @document.event %>
<p>
<%= link_to "Reorder #{@document.event.name} documents", show_order_admin_event_documents_path(@document.event) %>
</p>
<% end %>
</div>
</div>
<div class="control-group">
<%= f.label :title, class: 'control-label' %>
<div class="controls">
<%= f.text_field :title %>
</div>
</div>
<div class="control-group">
<%= f.label :language_id, class: 'control-label' %>
<div class="controls">
<%= f.select :language_id,
options_for_select(
@languages.map { |l| [l.name, l.id] },
@document.language_id
)
%>
</div>
</div>
<div class="control-group">
<%= f.label :primary_language_document_id, class: 'control-label' %>
<div class="controls">
<%= f.hidden_field :primary_language_document_id, {
:class => 'primary-language-document',
:'data-init-selection' => {id: f.object.primary_language_document.try(:id), text: f.object.primary_language_document.try(:title)}.to_json,
} %>
</div>
</div>
<div class="control-group">
<%= f.label :date, class: 'control-label' %>
<div class="controls">
<%= f.text_field :date, :class => "datepicker", :value => @document.date_formatted %>
</div>
</div>
<div class="control-group">
<%= f.label :is_public, class: 'control-label' %>
<div class="controls">
<%= f.check_box :is_public %>
</div>
</div>
<% if @document.is_a?(Document::ReviewOfSignificantTrade) %>
<%= f.fields_for :review_details do |ff| %>
<div class="control-group">
<%= ff.label :review_phase_id, class: 'control-label' %>
<div class="controls">
<%= ff.select :review_phase_id,
options_for_select(DocumentTag::ReviewPhase.all.map { |rp| [rp.name, rp.id] },
@document.review_details.review_phase_id),
{ :class => 'phases', :style => 'width: 220px' }
%>
</div>
</div>
<div class="control-group">
<%= ff.label :process_stage_id, class: 'control-label' %>
<div class="controls">
<%= ff.select :process_stage_id,
options_for_select(DocumentTag::ProcessStage.all.map { |ps| [ps.name, ps.id] },
@document.review_details.process_stage_id),
{ :class => 'phases', :style => 'width: 220px' }
%>
</div>
</div>
<div class="control-group">
<%= ff.label :recommended_category, class: 'control-label' %>
<div class="controls">
<%= ff.text_area :recommended_category, :rows => 3, :value => @document.review_details.recommended_category %>
</div>
</div>
<% end %>
<% elsif @document.is_a?(Document::Proposal) %>
<%= f.fields_for :proposal_details do |ff| %>
<div class="control-group">
<%= ff.label :proposal_number, class: 'control-label' %>
<div class="controls">
<%= ff.text_field :proposal_number, :value => @document.proposal_details.proposal_number %>
</div>
</div>
<div class="control-group">
<%= ff.label :proposal_nature, class: 'control-label' %>
<div class="controls">
<%= ff.text_field :proposal_nature %>
</div>
</div>
<div class="control-group">
<%= ff.label :proposal_outcome_id, class: 'control-label' %>
<div class="controls">
<%= ff.select :proposal_outcome_id,
options_for_select(
DocumentTag::ProposalOutcome.all.map { |po| [po.name, po.id] },
@document.proposal_details.proposal_outcome_id
),
{
include_blank: true,
class: 'phases',
style: 'width: 220px'
}
%>
</div>
</div>
<div class="control-group">
<%= ff.label :representation, class: 'control-label' %>
<div class="controls">
<%= ff.text_field :representation %>
</div>
</div>
<% end %>
<% end %>
<div class="control-group">
<%= f.label :discussion_id, class: 'control-label' %>
<div class="controls">
<%= f.select :discussion_id,
options_for_select(DocumentTag::Discussion.order(:name).map { |d| [d.name, d.id] },
@document.discussion_id),
{include_blank: true, style: 'width: 220px'}
%>
</div>
</div>
<div class="control-group">
<%= f.label :discussion_sort_index, class: 'control-label' %>
<div class="controls">
<%= f.text_field :discussion_sort_index %>
</div>
</div>
<div class="control-group">
<%= f.label :citations, class: 'control-label' %>
<div class="controls">
<%= f.fields_for :citations do |ff| %>
<%= f.label :taxon_concept_ids %>
<%= ff.hidden_field :stringy_taxon_concept_ids, {
:class => 'citation-taxon-concept',
:'data-taxonomy-id' => @taxonomy.id,
:'data-name-status-filter' => ['A', 'N'].to_json,
:'data-init-selection' => ff.object.taxon_concepts.map{ |tc| {id: tc.id, text: tc.full_name} }.to_json,
} %>
<%= f.label :geo_entity_ids %>
<%= ff.select :geo_entity_ids,
options_from_collection_for_select(
@geo_entities,
:id,
:name_en,
ff.object.geo_entities.pluck(:id)
), { },
{ :multiple => true, :class => 'citation-geo-entity', :style => 'width: 220px' }
%>
<%= ff.link_to_remove 'Remove citation' %>
<% end %>
<p><%= f.link_to_add 'Add another citation', :citations %></p>
</div>
</div>
<div class="control-group">
<%= f.label :filename, class: 'control-label' %>
<div class="controls">
<%= @document.filename %>
<%= f.file_field :filename %>
</div>
</div>
<div class="control-group">
<div class="controls">
<%= f.submit 'Save' %>
</div>
</div>
<% end %>