Skip to content

Commit

Permalink
Fix id generation on scholarity fields
Browse files Browse the repository at this point in the history
  • Loading branch information
JoaoFelipe committed Jun 9, 2024
1 parent 7b2cacd commit 011c33d
Show file tree
Hide file tree
Showing 2 changed files with 38 additions and 18 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,15 @@
configuration: configuration,
values: form_field.get_values("values"),
statuses: form_field.get_values("statuses"),
filled_class: filled_class
filled_class: filled_class,
run_js: false
}
%>
<div id="<%= sid %>-links" class="<%= filled_class %>-link">
<div id="<%= sid %>">
<%= field.fields_for :scholarities do |scholarity| %>
<%= render partial: "admissions/filled_form/edit/scholarity_item",
locals: local_options.merge({ f: scholarity }) %>
locals: local_options.merge({ f: scholarity, run_js: true }) %>
<% end %>
</div>
<div class="links">
Expand All @@ -28,12 +29,26 @@
<script>
$(`#<%= sid %> > input[type=hidden]`).addClass("<%= filled_class %>");
$(document).ready(function() {
let scholarity_stack = [];
let check_disabled = function(event) {
if ($("#<%= sid %>-links").hasClass("disabled-links")) {
event.preventDefault();
return false;
}
return true;
};
$("#<%= sid %>-links").on("cocoon:before-insert", check_disabled);
$("#<%= sid %>-links").on("cocoon:before-insert", function(event, inserted_item, original_event) {
if (check_disabled(event)) {
let random_number = parseInt(Math.random() * 1000000);
let new_id = `scholarity-item-${random_number}`;
inserted_item.closest('.scholarity').attr("id", new_id);
scholarity_stack.push(new_id);
}
});
$("#<%= sid %>-links").on("cocoon:after-insert", function() {
let new_id = scholarity_stack.pop();
scholarity_item_activate_js(new_id);
});
$("#<%= sid %>-links").on("cocoon:before-remove", check_disabled);
})
</script>
35 changes: 20 additions & 15 deletions app/views/admissions/filled_form/edit/_scholarity_item.html.erb
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,6 @@
field[:options] = {
class: ["scholarity-#{field[:name]}", "text-input", filled_class],
required: field[:required],
id: "#{sid}-#{field[:name]}"
}
if field[:type] == :date
dates << field
Expand Down Expand Up @@ -90,37 +89,37 @@

<script>

$(document).ready(function() {
$(`#<%= sid %> .remove-scholarity input[type=hidden]`).addClass("<%= filled_class %>");
$(`#<%= sid %> .scholarity-location .city-field`).on("change", function() {
let value = $(`#<%= sid %> .scholarity-location .city-field`)
function scholarity_item_activate_js(sid) {
$(`#${sid} .remove-scholarity input[type=hidden]`).addClass("<%= filled_class %>");
$(`#${sid} .scholarity-location .city-field`).on("change", function() {
let value = $(`#${sid} .scholarity-location .city-field`)
.map((i, el) => $(el).val()).toArray().reverse()
.join(", ")
$(`#<%= sid %> .scholarity-location .hidden`).val(value)
$(`#${sid} .scholarity-location .hidden`).val(value)
})

$(`#<%= sid %> .scholarity-location input[name="city"]`).autocomplete({
$(`#${sid} .scholarity-location input[name="city"]`).autocomplete({
source: autocomplete_search("<%= city_form_autocompletes_path %>", (request) => {
request.state = $(`#<%= sid %> .scholarity-location input[name="state"]`).val();
request.state = $(`#${sid} .scholarity-location input[name="state"]`).val();
})
})

$(`#<%= sid %> .scholarity-location input[name="state"]`).autocomplete({
$(`#${sid} .scholarity-location input[name="state"]`).autocomplete({
source: autocomplete_search("<%= state_form_autocompletes_path %>", (request) => {})
})


$(`#<%= sid %> input.scholarity-institution`).autocomplete({
$(`#${sid} input.scholarity-institution`).autocomplete({
source: autocomplete_search("<%= institution_form_autocompletes_path %>", (request) => {})
})

$(`#<%= sid %> input.scholarity-course`).autocomplete({
$(`#${sid} input.scholarity-course`).autocomplete({
source: autocomplete_search("<%= course_form_autocompletes_path %>", (request) => {
request.institution = $(`#<%= sid %> input.scholarity-institution`).val();
request.institution = $(`#${sid} input.scholarity-institution`).val();
}),
})

$(`#<%= sid %> input.scholarity-grade_interval`).autocomplete({
$(`#${sid} input.scholarity-grade_interval`).autocomplete({
source: ["[0, 10]", "[0, 100]", "[0, 5]", "[0, 4]", "[F, A]", "A, B, C, D, F"],
})

Expand All @@ -140,12 +139,12 @@ $(document).ready(function() {


<% dates.each do |field| %>
$(`#<%= sid %> input.scholarity-<%= field[:name] %>`).datepicker({
$(`#${sid} input.scholarity-<%= field[:name] %>`).datepicker({
yearRange: '<%= first_year %>:<%= last_year %>'
})

window.customFormValidations["<%= filled_class %>"].push(function() {
let input = $(`#<%= sid %> input.scholarity-<%= field[:name] %>`).get(0)
let input = $(`#${sid} input.scholarity-<%= field[:name] %>`).get(0)
if (input.disabled) {
return true;
}
Expand All @@ -160,6 +159,12 @@ $(document).ready(function() {
})

<% end %>
}

$(document).ready(function() {
<% if run_js %>
scholarity_item_activate_js("<%= sid %>");
<% end %>
})

</script>

0 comments on commit 011c33d

Please sign in to comment.