app/views/setup/activities/_form.html.erb
<%= f.input :name, input_html: {value: params.has_key?(:activity) ? params[:activity][:name] : @activity.name} %>
<%= f.input :short_name, input_html: {value: params.has_key?(:activity) ? params[:activity][:short_name] : @activity.short_name} %>
<%= f.input :code, input_html: {value: params.has_key?(:activity) ? params[:activity][:code] : @activity.code} %>
<%if activity.missing_activity_states? %>
<hr>
<h3>Some data elements are not mapped for the state used by the following packages</h3>
<% activity.activity_packages.each do |activity_package| %>
<li><%= activity_package.package.name %>
<% if activity_package.package.missing_activity_states[activity] && activity_package.package.missing_activity_states[activity].any? %>
<br>
<%= icon('fas', "exclamation-triangle", class: "text-warning")%> Missing element for : <%= activity_package.package.missing_activity_states[activity].map(&:name).join(',') %>
<% end%>
</li>
<%end%>
<br>
<p>If the data element exists us the "Add data element for state mapping" feature below.<p>
<p>
If they don't exist yet in dhis2, you can create them via this <%= link_to "page", mass_creation_setup_project_activities_path(@current_project, activity_id: activity) %>
</p>
<%end%>
<hr>
<h2>Add dhis2 data for state mappings</h2>
<select class="state-mapping-action form-control" name="state-mapping-action">
<%= options_for_select([
["Add data elements", "data_element"],
["Add data elements with category option combo", "data_element_coc"],
["Add indicators", "indicator"],
["Add constants", "constant"]
], params["state-mapping-action"] || "data_element") %>
</select>
<ul>
<br>
<div class="state-mapping-form" data-action="data_element_coc">
<div class="row">
<div class="col-md-6 " >
<div class="form-group">
<label class="control-label">Data Elements</label>
<select id="data_elementcocs_selector" data-selected=""
data-placeholder="Lookup the data elements here..."
data-selection = "data_elementcocs_selection"
data-url = "<%= data_elements_setup_project_autocomplete_index_path(@activity.project) %>"
class="form-control sol-powered" name="data_element_cocs[]" multiple="multiple">
</select>
</div>
</div>
<div class="col-md-6">
<div class="col-md-12" id="data_elementcocs_selection"></div>
</div>
</div>
<div class="col-md-6">
<div >
<%= f.button :submit, 'Add for state mapping', class: "btn btn-primary" %>
</div>
</div>
</div>
<div class="state-mapping-form" data-action="data_element">
<div class="row">
<div class="col-md-6 " >
<div class="form-group">
<label class="control-label">Data Elements</label>
<select id="data_elements_selector"
data-selected=""
data-placeholder="Lookup the data elements here..."
data-selection = "data_elements_selection"
data-url = "<%= data_elements_setup_project_autocomplete_index_path(@activity.project) %>"
class="form-control sol-powered"
name="data_elements[]"
multiple="multiple">
</select>
</div>
</div>
<div class="col-md-6">
<div class="col-md-12" id="data_elements_selection"></div>
</div>
</div>
<div class="col-md-6">
<div class="col-md-12" id="data_elements_selection"></div>
<div >
<%= f.button :submit, 'Add for state mapping', class: "btn btn-primary" %>
</div>
</div>
</div>
<div class="row state-mapping-form" data-action="indicator">
<div class="col-md-6">
<div class="form-group">
<label class="control-label">Indicators</label>
<select id="indicators_selector"
data-selected=""
data-placeholder="Lookup the indicators here..."
data-selection = "indicators_selection"
data-url = "<%= indicators_setup_project_autocomplete_index_path(@activity.project) %>"
class="form-control sol-powered" name="indicators[]" multiple="multiple">
</select>
</div>
<div class="col-md-12" id="indicators_selection"></div>
<div >
<%= f.button :submit, 'Add indicators for state mapping', class: "btn btn-primary" %>
</div>
</div>
</div>
<div class="row state-mapping-form" data-action="constant">
<%= link_to_add_association 'Add a constant', f, :activity_states, partial: 'constant',class: "btn btn-secondary" %>
<%= f.button :submit, 'Add for state mapping', class: "btn btn-primary" %>
</div>
</ul>
<br>
<hr>
<% if params.has_key?(:activity) || activity.activity_states.present? %>
<h2>Map data to state</h2>
<div>
<table class="table table-striped table-condensed">
<thead>
<tr>
<th>Activity</th>
<th>Remove</th>
<th style="text-align: center;">State</th>
<th>Value</th>
<th>Origin</th>
</tr>
</thead>
<body>
<%= f.simple_fields_for :activity_states do |activity_state_form| %>
<%= render partial: "activity_state", locals: {
f: activity_state_form,
activity_state: activity_state_form.object,
prefix: "activity[activity_states_attributes][#{activity_state_form.index}]"
} %>
<% end %>
</body>
</table>
</div>
<div>
<table class="tabke table-striped table-condensed">
</table>
</div>
<br><br>
<% end %>
<%= f.button :submit, class: "btn btn-success" %>
<%= link_to "Cancel and back to setup", root_path(activity.project, anchor: "step-activities") ,class: "btn btn-default"%>
<br><br>
<br><br>
<br><br>