Class: DrgcmsFormFields::TextWithSelect
- Inherits:
-
Select
- Object
- DrgcmsField
- Select
- DrgcmsFormFields::TextWithSelect
- Defined in:
- app/models/drgcms_form_fields/text_with_select.rb
Overview
Implementation of text_with_select DRG CMS form field. Field will provide text_field entry field with select dropdown box with optional values for the field. Form options are mostly same as in select field.
Form options:
-
name:
field name (required) -
type:
text_with_select (required) -
choices:
Values for choices separated by comma. Values can also be specified like description:value.
In this case description will be shown to user, but value will be saved to document.
choices: 'OK:0,Ready:1,Error:2'
choices: Ruby,Pyton,PHP
-
eval:
Choices will be provided by evaluating expression eval: dc_choices4(‘model_name’,‘description_field_name’,‘_id’); dc_choices4 helper will provide data for select field. eval: ModelName.choices4_field; ModelName class will define method choices4_field which will provide data for select field. Since expression is evaluated in the context of Form Field object
Even session session variables can be accessed.
eval: 'MyClass.method(@parent.session[:user_id])'
When searching is more complex custom search method may be defined in CollectionName model which will provide result set for search.
eval: collection_name.search_field_name.method_name;
If choices or eval is not defined choices will be provided from translation helpers. For example: Collection has field status. Choices for field will be provided by en.helpers.model_name.choices4_status entry of english translation. English is of course default translation. If you provide translations in your local language then select choices will be localized.
en.helpers.model_name.choices4_status: 'OK:0,Ready:1,Error:2'
sl.helpers.model_name.choices4_status: 'V redu:0,Pripravljen:1,Napaka:2'
-
html:
html options which apply to select and text_field fields (optional)
Form example:
10:
name: link
type: text_with_select
eval: '@parent.dc_page_class.all_pages_for_site(@parent.dc_get_site)'
html:
size: 50
Instance Attribute Summary
Attributes inherited from DrgcmsField
Instance Method Summary collapse
-
#render ⇒ Object
Render text_with_select field html code.
Methods inherited from Select
#add_edit_code, #add_view_code, #choices_in_eval, #choices_in_helper, #get_choices, get_data, #ro_standard
Methods inherited from DrgcmsField
get_data, #hash_to_options, #html, #initialize, #options_to_hash, #record_text_for, #ro_standard, #set_css_code, #set_default_value, #set_initial_value, #set_style, #t
Constructor Details
This class inherits a constructor from DrgcmsFormFields::DrgcmsField
Instance Method Details
#render ⇒ Object
Render text_with_select field html code
67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 |
# File 'app/models/drgcms_form_fields/text_with_select.rb', line 67 def render set_initial_value record = record_text_for(@yaml['name']) @html << @parent.text_field( record, @yaml['name'], @yaml['html']) @yaml['html']['class'] ||= '' @yaml['html']['class'] << ' text-with-select' @yaml['html'].symbolize_keys! unless @readonly @html << @parent.select( @yaml['name'] + '_', nil, get_choices, { include_blank: true }, { class: 'text-with-select' }) end # javascript to update text field if new value is selected in select field @js =<<EOJS $(document).ready(function() { $('##{@yaml['name']}_').on("click", function() { $('##{record}_#{@yaml['name']}').val( $(this).val().toString() ); $('##{record}_#{@yaml['name']}').trigger("change"); $('##{record}_#{@yaml['name']}').focus(); }); }); EOJS self end |