adjust form fields

pull/349/head
Pete Matsyburka 1 year ago
parent 377244f948
commit e87522eeab

@ -102,14 +102,16 @@ module Templates
field_name = field_name&.encode('utf-8', invalid: :replace, undef: :replace, replace: '') field_name = field_name&.encode('utf-8', invalid: :replace, undef: :replace, replace: '')
attrs = { name: field_name.to_s }
attrs[:description] = field[:TU] if field[:TU].present? && field[:TU] != field.full_field_name
if field.field_type == :Btn && field.concrete_field_type == :radio_button && field[:Opt].present? if field.field_type == :Btn && field.concrete_field_type == :radio_button && field[:Opt].present?
selected_option_index = (field.allowed_values || []).find_index(field.field_value) selected_option_index = (field.allowed_values || []).find_index(field.field_value)
selected_option = field[:Opt][selected_option_index] if selected_option_index selected_option = field[:Opt][selected_option_index] if selected_option_index
{ {
name: field_name.to_s, **attrs,
type: 'radio', type: 'radio',
description: field[:TU],
options: build_options(field[:Opt], 'radio'), options: build_options(field[:Opt], 'radio'),
default_value: selected_option default_value: selected_option
} }
@ -120,55 +122,48 @@ module Templates
return {} if field.allowed_values.include?(:BBox) return {} if field.allowed_values.include?(:BBox)
{ {
name: field_name.to_s, **attrs,
type: 'radio', type: 'radio',
description: field[:TU],
options: build_options(field.allowed_values, 'radio'), options: build_options(field.allowed_values, 'radio'),
default_value: selected_option default_value: selected_option
} }
elsif field.field_type == :Btn && field.concrete_field_type == :check_box elsif field.field_type == :Btn && field.concrete_field_type == :check_box
{ {
name: field_name.to_s, **attrs,
type: 'checkbox', type: 'checkbox',
description: field[:TU],
default_value: field.field_value.present? default_value: field.field_value.present?
} }
elsif field.field_type == :Ch && elsif field.field_type == :Ch &&
%i[combo_box editable_combo_box].include?(field.concrete_field_type) && field[:Opt].present? %i[combo_box editable_combo_box].include?(field.concrete_field_type) && field[:Opt].present?
{ {
name: field_name.to_s, **attrs,
type: 'select', type: 'select',
description: field[:TU],
options: build_options(field[:Opt]), options: build_options(field[:Opt]),
default_value: field.field_value default_value: field.field_value
} }
elsif field.field_type == :Ch && field.concrete_field_type == :multi_select && field[:Opt].present? elsif field.field_type == :Ch && field.concrete_field_type == :multi_select && field[:Opt].present?
{ {
name: field_name.to_s, **attrs,
type: 'multiple', type: 'multiple',
description: field[:TU],
options: build_options(field[:Opt], 'multiple'), options: build_options(field[:Opt], 'multiple'),
default_value: field.field_value default_value: field.field_value
} }
elsif field.field_type == :Tx && field.concrete_field_type == :comb_text_field elsif field.field_type == :Tx && field.concrete_field_type == :comb_text_field
{ {
name: field_name.to_s, **attrs,
type: 'cells', type: 'cells',
description: field[:TU],
default_value: field.field_value default_value: field.field_value
} }
elsif field.field_type == :Tx elsif field.field_type == :Tx
{ {
name: field_name.to_s, **attrs,
type: 'text', type: 'text',
description: field[:TU],
default_value: field.field_value default_value: field.field_value
} }
elsif field.field_type == :Sig elsif field.field_type == :Sig
{ {
name: field_name.to_s, **attrs,
type: 'signature', type: 'signature'
description: field[:TU]
} }
else else
{} {}

Loading…
Cancel
Save