Skip to content

Commit

Permalink
[IMP] Fix issue Tracking frm not saving
Browse files Browse the repository at this point in the history
refs OSC-17
  • Loading branch information
Bunhok committed Oct 29, 2022
1 parent 250dc2c commit 36a091d
Show file tree
Hide file tree
Showing 5 changed files with 62 additions and 6 deletions.
56 changes: 54 additions & 2 deletions app/assets/javascripts/client_enrollment_trackings/form.coffee
Original file line number Diff line number Diff line change
@@ -1,21 +1,31 @@
CIF.Client_enrollment_trackingsNew = CIF.Client_enrollment_trackingsCreate = CIF.Client_enrollment_trackingsEdit = CIF.Client_enrollment_trackingsUpdate = CIF.Client_enrolled_program_trackingsUpdate =
CIF.Client_enrolled_program_trackingsNew = CIF.Client_enrolled_program_trackingsCreate = CIF.Client_enrolled_program_trackingsEdit = do ->

checkedItems = []
_init = ->
_initSelect2()
_initFileInput()
_preventRequireFileUploader()
_toggleCheckingRadioButton()
_initICheckBox()
_setAnotherLanguageFieldValue()
_hideAnotherLanguageField()
_checkCheckbox()
_uncheckCheckbox()
_copyNumberToLocalLanguage()
_copyInputTextToLocalLanguage()
_copyTextAreaTextToLocalLanguage()

_initICheckBox = ->
$('.i-checks').iCheck
checkboxClass: 'icheckbox_square-green'
radioClass: 'iradio_square-green'

_toggleCheckingRadioButton = ->
$('input[type="radio"]').on 'ifChecked', (e) ->
$(@).parents('span.radio').siblings('.radio').find('.iradio_square-green').removeClass('checked')
$('input[type="radio"]').on 'ifChecked', (e) ->
el = $(@)
el.parents('.radio_buttons').next().children('#' + el.data('option')).val(el.data('value'))
$(@).parents('span.radio').siblings('.radio').find('.iradio_square-green').removeClass('checked')

_initSelect2 = ->
$('select').select2()
Expand All @@ -32,4 +42,46 @@ CIF.Client_enrolled_program_trackingsNew = CIF.Client_enrolled_program_trackings
prevent = new CIF.PreventRequiredFileUploader()
prevent.preventFileUploader()

_setAnotherLanguageFieldValue = ->
$('select').on 'select2-selecting', (e) ->
$('#' + $(e.target).data('label')).val($(e.choice.element).data('value')).trigger("change")
return

_hideAnotherLanguageField = ->
$('.client-enrolled-program-tracking').find('.d-none').parent().addClass('hide')

_checkCheckbox = ->
$('input[type="checkbox"]').on 'ifChecked', (e) ->
el = $(@)
checkedItems.push(el.data('value'))
el.parents('.check_boxes').next().children('#' + el.data('checkbox')).val(checkedItems).trigger('change')

_uncheckCheckbox = ->
$('input[type="checkbox"]').on 'ifUnchecked', (e) ->
el = $(@)
checkedItems.splice(checkedItems.indexOf(el.data('value')), 1)
el.parents('.check_boxes').next().children('#' + el.data('checkbox')).val(checkedItems).trigger('change')

_copyNumberToLocalLanguage = ->
$('input[type="number"]').on 'keyup mouseup', (e) ->
el = $(@)
el.parent().next().find('#' + el.data('local-number')).val(el.val())

_copyInputTextToLocalLanguage = ->
$('input[type="text"]').on 'keyup', (e) ->
el = $(@)
if el.hasClass('date-picker')
else
el.parent().next().find('#' + el.data('local-input')).val(el.val())

_copyTextAreaTextToLocalLanguage = ->
$('textarea').on 'keyup', (e) ->
el = $(@)
el.parent().next().find('#' + el.data('local-textarea')).val(el.val())

_copyDateToLocalLanguage = ->
$('input.form-builder-date').on 'changeDate', (e) ->
el = $(@)
el.next('#' + el.data('local-date')).val(el.val())

{ init: _init }
8 changes: 6 additions & 2 deletions app/assets/javascripts/program_streams/form.coffee
Original file line number Diff line number Diff line change
Expand Up @@ -499,16 +499,18 @@ CIF.Program_streamsNew = CIF.Program_streamsEdit = CIF.Program_streamsCreate = C
$('.links a').trigger('click')

_handleInitProgramFields = ->
trackings = $('.tracking-builder')
elements = ['#enrollment', '#exit-program']
$.merge(elements, trackings)
_initMultipleFormBuilder(0, elements)
for element in elements
if element.id == 'enrollment' and $('#program_stream_id').val() != ''
_preventRemoveField(ENROLLMENT_URL, '#enrollment')
else if element.id == 'exit-program' and $('#program_stream_id').val() != ''
_preventRemoveField(EXIT_PROGRAM_URL, '#exit-program')

trackings = $('.tracking-builder')
_initMultipleFormBuilder(0, trackings)
# trackings = $('.tracking-builder')
# _initMultipleFormBuilder(0, trackings)
_preventRemoveField(TRACKING_URL, '') if $('#program_stream_id').val() != ''

_initButtonSave = ->
Expand All @@ -521,7 +523,9 @@ CIF.Program_streamsNew = CIF.Program_streamsEdit = CIF.Program_streamsCreate = C
$('#program_stream_rules').val(_handleStringfyRules(rules))

_handleSetValueToField = ->
console.log(@formBuilder)
for formBuilder in @formBuilder
console.log(formBuilder.actions.save())
element = formBuilder.element
specialCharacters = { "&": "&amp;", "<": "&lt;", ">": "&gt;", '"': "&qoute;" }
format = new CIF.FormatSpecialCharacters()
Expand Down
1 change: 1 addition & 0 deletions app/models/concerns/update_field_labels_form_builder.rb
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ module UpdateFieldLabelsFormBuilder
def labels_update(new_fields, old_fields, objects)
labels_changed = []
field_labels_changed = []
old_fields = [] if old_fields.empty?
fields_changed = new_fields - old_fields
fields_changed.each do |field_changed|
old_fields.each do |entity|
Expand Down
1 change: 0 additions & 1 deletion app/views/shared/fields/_checkbox_group.haml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@

- if I18n.locale.to_s == I18n.default_locale.to_s
= f.input remove_field_prop_unicode(field_props), collection: field_props['values'].map { |f| [ f['label'], f['label'], id: "custom_field_property_properties_#{field_props['label'].gsub('"', '&qoute;').html_safe}_#{f['label'].html_safe}", 'data-value': f['local_label']] }, as: :check_boxes, required: (field_props['required'] || false), label: false, input_html: { name: "#{f.object_name}[#{remove_field_prop_unicode(field_props)}][]", title: field_props['description'], 'data-checkbox': "#{f.object_name}[#{remove_local_field_prop_unicode(field_props)}]".parameterize }
= f.input "Local_label #{remove_local_field_prop_unicode(field_props)}", collection: field_props['values'].map { |f| [ f['local_label'], f['local_label'], id: "custom_field_property_properties_#{field_props['label'].gsub('"', '&qoute;').html_safe}_#{f['label'].html_safe}"] }, input_html: { name: "#{f.object_name}[Local_label #{remove_local_field_prop_unicode(field_props)}][]", id: "#{f.object_name}[#{remove_local_field_prop_unicode(field_props)}]".parameterize, multiple: true, class: 'd-none' }, label: false
- else
= f.input "Local_label #{remove_local_field_prop_unicode(field_props)}", collection: field_props['values'].map { |f| [ f['local_label'], f['local_label'], id: "custom_field_property_properties_#{field_props['label'].gsub('"', '&qoute;').html_safe}_#{f['label'].html_safe}", 'data-value': f['label']] }, as: :check_boxes, required: (field_props['required'] || false), input_html: { name: "#{f.object_name}[Local_label #{remove_local_field_prop_unicode(field_props)}][]", 'data-checkbox': "#{f.object_name}[#{remove_field_prop_unicode(field_props)}]".parameterize }, label: false
= f.input remove_field_prop_unicode(field_props), collection: field_props['values'].map { |f| [ f['label'], f['label'], id: "custom_field_property_properties_#{field_props['label'].gsub('"', '&qoute;').html_safe}_#{f['label'].html_safe}"] }, required: (field_props['required'] || false), label: false, input_html: { name: "#{f.object_name}[#{remove_field_prop_unicode(field_props)}][]", title: field_props['description'], id: "#{f.object_name}[#{remove_field_prop_unicode(field_props)}]".parameterize, multiple: true, class: 'd-none' }
Expand Down
2 changes: 1 addition & 1 deletion app/views/shared/fields/_select.haml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,6 @@
= label.gsub('&amp;#91;', '&#91;').gsub('&amp;#93;', '&#93;').html_safe

= f.input remove_field_prop_unicode(field_props), collection: field_props['values'].map { |f| [format_placeholder(f['label']), f['label'], id: "custom_field_property_properties_#{field_props['label'].gsub('"', '&qoute;').html_safe}_#{f['label'].html_safe}", 'data-value': f['local_label']] }, required: (field_props['required'] || false), input_html: { id: field_props['label'].gsub(' ', '_').gsub("'", ""), class: "#{field_props['ClassName']} #{I18n.locale.to_s != I18n.default_locale.to_s ? 'd-none' : ''}", multiple: field_props['multiple'].present?, name: "#{f.object_name}[#{remove_field_prop_unicode(field_props)}][]", placeholder: format_placeholder(field_props['placeholder']), 'data-label': field_props["local_label"].gsub(' ', '_').gsub("'", "") }, label: false
= f.input "Local_label #{remove_local_field_prop_unicode(field_props)}", collection: field_props['values'].map { |f| [format_placeholder(f['local_label']), f['local_label'], id: "custom_field_property_properties_#{field_props["local_label"].gsub('"', '&qoute;').html_safe}_#{f['local_label'].html_safe}", 'data-value': f['label']] }, required: (field_props['required'] || false), input_html: { id: field_props["local_label"].gsub(' ', '_').gsub("'", ""), class: "#{field_props['ClassName']} #{I18n.locale.to_s == I18n.default_locale.to_s ? 'd-none' : ''}", multiple: field_props['multiple'].present?, name: "#{f.object_name}[Local_label #{remove_local_field_prop_unicode(field_props)}][]", placeholder: format_placeholder(field_props['placeholder']), 'data-label': field_props["label"].gsub(' ', '_').gsub("'", "") }, label: false
= f.input "Local_label #{remove_local_field_prop_unicode(field_props)}", collection: field_props['values'].map { |f| [format_placeholder(f['local_label']), f['local_label'], id: "custom_field_property_properties_#{field_props["local_label"].gsub('"', '&qoute;').html_safe}_#{f['local_label'].html_safe}", 'data-value': f['label']] }, required: (field_props['required'] || false), input_html: { id: field_props["local_label"].gsub(' ', '_').gsub("'", ""), class: "#{field_props['ClassName']} #{I18n.locale.to_s == I18n.default_locale.to_s ? 'd-none1' : ''}", multiple: field_props['multiple'].present?, name: "#{f.object_name}[Local_label #{remove_local_field_prop_unicode(field_props)}][]", placeholder: format_placeholder(field_props['placeholder']), 'data-label': field_props["label"].gsub(' ', '_').gsub("'", "") }, label: false
%span.help-block
= field_message(label, errors)

0 comments on commit 36a091d

Please sign in to comment.