Skip to content

Commit 23036c4

Browse files
committed
[FEATURE] Translate Checkbox group field
refs OSC-17
1 parent 8fe0ae4 commit 23036c4

5 files changed

Lines changed: 31 additions & 6 deletions

File tree

app/assets/javascripts/common.coffee

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -151,6 +151,9 @@ CIF.Common =
151151
setTimeout(->
152152
if self.type == 'radio' && confirm('Clear selection/លុបចោលការជ្រើសរើស?')
153153
$(self).closest('.radio_buttons.form-group').find('input').removeAttr('checked').iCheck('update');
154+
localOptionElement = $(self).closest('.radio_buttons.form-group').next()
155+
if localOptionElement
156+
localOptionElement.children('input').val('')
154157
else
155158
return
156159
, 0)

app/assets/javascripts/custom_form_builder.coffee

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ class CIF.CustomFormBuilder
2424
self.handleCheckingForm()
2525
self.preventClickEnterOrTab(fld)
2626

27-
eventCheckboxOption: ->
27+
eventCheckboxOption: (fields = []) ->
2828
self = @
2929
onadd: (fld) ->
3030
$('.other-wrap, .className-wrap, .access-wrap, .description-wrap, .name-wrap, .toggle-wrap, .inline-wrap').hide()
@@ -33,6 +33,7 @@ class CIF.CustomFormBuilder
3333
self.addOptionCallback(fld)
3434
self.generateValueForSelectOption(fld)
3535
self.preventClickEnterOrTab(fld)
36+
self.handleAddTranslateLabelField(fld, fields)
3637
onclone: (fld) ->
3738
setTimeout ( ->
3839
self.handleCheckingForm()
@@ -73,6 +74,7 @@ class CIF.CustomFormBuilder
7374
$('.number-field').find('.className-wrap, .placeholder-wrap, .value-wrap, .step-wrap, .access-wrap, .description-wrap, .name-wrap').hide()
7475
self.handleCheckingForm()
7576
self.preventClickEnterOrTab(fld)
77+
console.log(fields)
7678
self.handleAddTranslateLabelField(fld, fields)
7779
onclone: (fld) ->
7880
setTimeout ( ->
@@ -270,7 +272,7 @@ class CIF.CustomFormBuilder
270272
handleAddTranslateLabelField: (fld, fields) ->
271273
fldElement = $(fld)
272274
fldId = fldElement.attr('id')
273-
index = fldId.substr(fldId.length - 1)
275+
index = fldId.substr(fldId.lastIndexOf('-') + 1)
274276
localLabelName = "local_label"
275277
localLabel = "Local Label"
276278
if fields[index - 1]

app/assets/javascripts/multiple_form/form.coffee

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
CIF.Client_trackingsNew = CIF.Client_trackingsCreate = CIF.Client_custom_fieldsNew = CIF.Client_custom_fieldsCreate = CIF.Client_enrollmentsNew = CIF.Client_enrollmentsCreate = do ->
2-
2+
checkedItems = []
33
_init = ->
44
_initSelect2()
55
_initFileInput()
@@ -15,6 +15,8 @@ CIF.Client_trackingsNew = CIF.Client_trackingsCreate = CIF.Client_custom_fieldsN
1515
_copyTextAreaTextToLocalLanguage()
1616
_copyNumberToLocalLanguage()
1717
_copyDateToLocalLanguage()
18+
_checkCheckbox()
19+
_uncheckCheckbox()
1820

1921
_initICheckBox = ->
2022
$('.i-checks').iCheck
@@ -27,6 +29,18 @@ CIF.Client_trackingsNew = CIF.Client_trackingsCreate = CIF.Client_custom_fieldsN
2729
el.parents('.radio_buttons').next().children('#' + el.data('option')).val(el.data('value'))
2830
$(@).parents('span.radio').siblings('.radio').find('.iradio_square-green').removeClass('checked')
2931

32+
_checkCheckbox = ->
33+
$('input[type="checkbox"]').on 'ifChecked', (e) ->
34+
el = $(@)
35+
checkedItems.push(el.data('value'))
36+
el.parents('.check_boxes').next().children('#' + el.data('checkbox')).val(checkedItems).trigger('change')
37+
38+
_uncheckCheckbox = ->
39+
$('input[type="checkbox"]').on 'ifUnchecked', (e) ->
40+
el = $(@)
41+
checkedItems.splice(checkedItems.indexOf(el.data('value')), 1)
42+
el.parents('.check_boxes').next().children('#' + el.data('checkbox')).val(checkedItems).trigger('change')
43+
3044
_initSelect2 = ->
3145
$('select').select2()
3246

app/assets/javascripts/program_streams/form.coffee

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -286,7 +286,7 @@ CIF.Program_streamsNew = CIF.Program_streamsEdit = CIF.Program_streamsCreate = C
286286
left: 'auto'
287287
}
288288
typeUserEvents: {
289-
'checkbox-group': builderOption.eventCheckboxOption()
289+
'checkbox-group': builderOption.eventCheckboxOption(fields)
290290
date: builderOption.eventDateOption(fields)
291291
file: builderOption.eventFileOption()
292292
number: builderOption.eventNumberOption(fields)
Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,14 @@
1+
- label = field_label(field_props)
12
%div{ class: "form-group i-checks #{field_with(field_props['label'],errors)}" }
23
%label.control-label{ class: required?(field_props['required'] || false) }
34
%abbr{ title: 'required' }= '*' if field_props['required'] || false
4-
= field_props['label'].html_safe
5+
= label.html_safe
56

6-
= f.input field_props['label'], 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}"] }, 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']}
7+
- if I18n.locale.to_s == I18n.default_locale.to_s
8+
= f.input field_props['label'], 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 }
9+
= f.input field_props['local_label'], 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
10+
- else
11+
= f.input field_props['local_label'], 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
12+
= f.input field_props['label'], 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' }
713
%span.help-block
814
= field_message(field_props['label'], errors)

0 commit comments

Comments
 (0)