Skip to content

Instantly share code, notes, and snippets.

@foxxx0
Created August 12, 2016 12:21
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save foxxx0/03bea37b29154d98db0cbfdd72136b50 to your computer and use it in GitHub Desktop.
Save foxxx0/03bea37b29154d98db0cbfdd72136b50 to your computer and use it in GitHub Desktop.
- @form[:hidden_fields].each do |f|
%input{ type: 'hidden', name: f[:name], value: f[:value] }<
- @form[:visible_fields].each do |field|
- class_suffix = 'has-error' if field[:errors]
.form-group{ class: class_suffix }<
- if field[:type] == 'checkbox'
%label.col-md-4.control-label<= field[:label]
.col-md-offset-1.col-md-4<
.checkbox<
- if field[:checked]
%input{ type: 'checkbox', name: field[:name], checked: 'checked' }<
- else
%input{ type: 'checkbox', name: field[:name] }<
- elsif field[:type] == 'select'
%label.col-md-4.control-label<= field[:label]
.col-md-4<
%select.form-control{ name: field[:name] }<
- field[:options].each do |opt|
- if opt[:selected]
%option{ value: opt[:value], selected: 'selected' }<= opt[:text]
- else
%option{ value: opt[:value] }<= opt[:text]
- else
%label.col-md-4.control-label<= field[:label]
.col-md-4<
%input.form-control{ type: field[:type],
name: field[:name],
value: field[:value] }<
- if field[:errors]
%p.help-block.error<
- field[:errors].each do |err|
= err
%br<
.form-group<
.col-sm-offset-4.col-sm-10<
%button.btn.btn-default{ type: 'submit', value: 'submit' }< Submit
# @param record [Hash]
# @return [Hash]
def form_content(record)
form_content = {}
form_content[:hidden_fields] = []
form_content[:visible_fields] = []
record.each_pair do |key, value|
case key.to_s
when 'id' then
next
when %r{enabled$} then
element = { label: key.to_s, type: 'checkbox', name: key.to_s }
element[:checked] = 'checked' if value
form_content[:visible_fields].push(element)
when %r{(user)} then
element = { label: key.to_s, type: 'select', name: "#{key}_id" }
element[:options] = []
element[:options].push(value: value['id'], text: value['name'],
selected: 'selected')
@users.each do |u|
element[:options].push(value: u[1]['id'], text: u[1]['name'])
end
form_content[:visible_fields].push(element)
when %r{ed_at$} then
next
else
elem = { label: key.to_s, type: 'text', name: key.to_s, value: value }
form_content[:visible_fields].push(elem)
end
end
form_content
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment