formily 0.0.5.5.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (162) hide show
  1. checksums.yaml +7 -0
  2. data/CODE_OF_CONDUCT.md +13 -0
  3. data/Gemfile +4 -0
  4. data/Gemfile.lock +156 -0
  5. data/LICENSE.txt +21 -0
  6. data/README.md +84 -0
  7. data/Rakefile +1 -0
  8. data/app/assets/fonts/formily-icon.eot +0 -0
  9. data/app/assets/fonts/formily-icon.svg +26 -0
  10. data/app/assets/fonts/formily-icon.ttf +0 -0
  11. data/app/assets/fonts/formily-icon.woff +0 -0
  12. data/app/assets/fonts/formily-icon.woff2 +0 -0
  13. data/app/assets/images/blank_file.png +0 -0
  14. data/app/assets/images/formily_spin.gif +0 -0
  15. data/app/assets/javascripts/formily.js +5 -0
  16. data/app/assets/javascripts/formily/base/ajax_reloader.js +24 -0
  17. data/app/assets/javascripts/formily/base/buttons.js +160 -0
  18. data/app/assets/javascripts/formily/base/form_response.js +28 -0
  19. data/app/assets/javascripts/formily/base/local_time.js +9 -0
  20. data/app/assets/javascripts/formily/editor.js +46 -0
  21. data/app/assets/javascripts/formily/editor/editor_buttons.js +186 -0
  22. data/app/assets/javascripts/formily/editor/form_preview.js +53 -0
  23. data/app/assets/javascripts/formily/editor/input_model.js +76 -0
  24. data/app/assets/javascripts/formily/editor/input_on_change.js +83 -0
  25. data/app/assets/javascripts/formily/editor/related_fields.js +76 -0
  26. data/app/assets/javascripts/formily/form.js +22 -0
  27. data/app/assets/javascripts/formily/formily_editor.js +329 -0
  28. data/app/assets/javascripts/formily/formily_modal.js +104 -0
  29. data/app/assets/javascripts/formily/formily_url.js.erb +26 -0
  30. data/app/assets/javascripts/formily/inputs/conditioned.js +4 -0
  31. data/app/assets/javascripts/formily/inputs/conditioned/checkbox.js +73 -0
  32. data/app/assets/javascripts/formily/inputs/conditioned/option.js +82 -0
  33. data/app/assets/javascripts/formily/inputs/conditioned/radio.js +160 -0
  34. data/app/assets/javascripts/formily/inputs/date_time.js +25 -0
  35. data/app/assets/javascripts/formily/inputs/input_tab.js +18 -0
  36. data/app/assets/javascripts/formily/inputs/location.js +39 -0
  37. data/app/assets/javascripts/formily/inputs/multi_file.js +228 -0
  38. data/app/assets/javascripts/formily/lib/jquery.datetimepicker.full.min.js +2 -0
  39. data/app/assets/javascripts/formily/lib/modernizr.js +8 -0
  40. data/app/assets/javascripts/formily/lib/strftime.min.js +12 -0
  41. data/app/assets/javascripts/formily/lib/tag-it.min.js +17 -0
  42. data/app/assets/javascripts/formily/mobile.js +10 -0
  43. data/app/assets/javascripts/formily_app.js +15 -0
  44. data/app/assets/javascripts/formily_iframe.js +11 -0
  45. data/app/assets/stylesheets/formily.scss +14 -0
  46. data/app/assets/stylesheets/formily/base/fonts.scss +65 -0
  47. data/app/assets/stylesheets/formily/base/layout.scss +66 -0
  48. data/app/assets/stylesheets/formily/base/links.css +7 -0
  49. data/app/assets/stylesheets/formily/base/ui-dialog.scss +129 -0
  50. data/app/assets/stylesheets/formily/editor.scss +25 -0
  51. data/app/assets/stylesheets/formily/editor/inputs_group_list.css +14 -0
  52. data/app/assets/stylesheets/formily/editor/inputs_list.css +97 -0
  53. data/app/assets/stylesheets/formily/editor/related_modal.scss +49 -0
  54. data/app/assets/stylesheets/formily/formily_editor.scss +53 -0
  55. data/app/assets/stylesheets/formily/formily_modal.scss +2 -0
  56. data/app/assets/stylesheets/formily/foundation_fix.scss +140 -0
  57. data/app/assets/stylesheets/formily/inputs/date_time.scss +8 -0
  58. data/app/assets/stylesheets/formily/inputs/multi_file.scss +111 -0
  59. data/app/assets/stylesheets/formily/jquery.datetimepicker.min.css +1 -0
  60. data/app/assets/stylesheets/formily/lib/jquery.tagit.css +69 -0
  61. data/app/assets/stylesheets/formily/modal/content.scss +36 -0
  62. data/app/assets/stylesheets/formily/modal/iframe.scss +29 -0
  63. data/app/assets/stylesheets/formily_iframe.scss +64 -0
  64. data/app/assets/stylesheets/foundation_formily.scss +20 -0
  65. data/app/controllers/formily/file_controller.rb +17 -0
  66. data/app/controllers/formily/form_types_controller.rb +46 -0
  67. data/app/controllers/formily/formilyable_controller.rb +98 -0
  68. data/app/controllers/formily/forms_controller.rb +133 -0
  69. data/app/controllers/formily/iframe/forms_controller.rb +28 -0
  70. data/app/controllers/formily/inputs_controller.rb +113 -0
  71. data/app/controllers/formily/submit_data_controller.rb +151 -0
  72. data/app/controllers/formily_controller.rb +22 -0
  73. data/app/helpers/formily_helper.rb +17 -0
  74. data/app/models/formily/checkbox_input.rb +8 -0
  75. data/app/models/formily/checkbox_input_group.rb +14 -0
  76. data/app/models/formily/date_time_input.rb +19 -0
  77. data/app/models/formily/file.rb +14 -0
  78. data/app/models/formily/form.rb +41 -0
  79. data/app/models/formily/form_type.rb +10 -0
  80. data/app/models/formily/formilyable_form.rb +18 -0
  81. data/app/models/formily/input.rb +124 -0
  82. data/app/models/formily/input_value.rb +23 -0
  83. data/app/models/formily/multiple_file_input.rb +18 -0
  84. data/app/models/formily/option_input.rb +8 -0
  85. data/app/models/formily/options_input_group.rb +14 -0
  86. data/app/models/formily/radio_input.rb +12 -0
  87. data/app/models/formily/radio_input_group.rb +14 -0
  88. data/app/models/formily/static_text.rb +8 -0
  89. data/app/models/formily/submit.rb +47 -0
  90. data/app/models/formily/text_input.rb +8 -0
  91. data/app/models/formily/textarea_input.rb +8 -0
  92. data/app/views/formily/data/_forms_table.html.haml +19 -0
  93. data/app/views/formily/data/_many_tables.html.erb +3 -0
  94. data/app/views/formily/data/_table.html.erb +33 -0
  95. data/app/views/formily/data/submit_data_table.html.haml +32 -0
  96. data/app/views/formily/editor/_default_value.haml +18 -0
  97. data/app/views/formily/editor/_editor.haml +18 -0
  98. data/app/views/formily/editor/_modal.haml +197 -0
  99. data/app/views/formily/editor/partial/_group.haml +41 -0
  100. data/app/views/formily/editor/partial/_group_input.haml +36 -0
  101. data/app/views/formily/editor/partial/_input.haml +35 -0
  102. data/app/views/formily/editor/partial/_input_fieldset.haml +12 -0
  103. data/app/views/formily/form_types/_form.haml +9 -0
  104. data/app/views/formily/form_types/edit.haml +6 -0
  105. data/app/views/formily/form_types/index.haml +24 -0
  106. data/app/views/formily/form_types/new.haml +6 -0
  107. data/app/views/formily/formilyable/index.haml +67 -0
  108. data/app/views/formily/formilyable/new.haml +37 -0
  109. data/app/views/formily/forms/_form.haml +34 -0
  110. data/app/views/formily/forms/_preview.haml +16 -0
  111. data/app/views/formily/forms/edit.haml +5 -0
  112. data/app/views/formily/forms/index.haml +40 -0
  113. data/app/views/formily/forms/new.haml +5 -0
  114. data/app/views/formily/forms/reload_formily_table.haml +4 -0
  115. data/app/views/formily/forms/show.haml +1 -0
  116. data/app/views/formily/helpers/_iframe_formily_modal.html.haml +3 -0
  117. data/app/views/formily/helpers/_related_forms.html.haml +12 -0
  118. data/app/views/formily/helpers/_related_forms_tr.html.haml +28 -0
  119. data/app/views/formily/iframe/forms/show.haml +1 -0
  120. data/app/views/formily/inputs/_group.haml +40 -0
  121. data/app/views/formily/inputs/_group_input.haml +36 -0
  122. data/app/views/formily/inputs/_input.haml +35 -0
  123. data/app/views/formily/inputs/_input_fieldset.haml +12 -0
  124. data/app/views/formily/inputs/render_input_html.haml +7 -0
  125. data/app/views/formily/partial/_form.haml +37 -0
  126. data/app/views/formily/partial/inputs/_checkbox_input.haml +18 -0
  127. data/app/views/formily/partial/inputs/_checkbox_input_group.haml +36 -0
  128. data/app/views/formily/partial/inputs/_conditioned_fields.haml +36 -0
  129. data/app/views/formily/partial/inputs/_date_time_input.haml +15 -0
  130. data/app/views/formily/partial/inputs/_file_input.haml +20 -0
  131. data/app/views/formily/partial/inputs/_file_preview.haml +14 -0
  132. data/app/views/formily/partial/inputs/_input.haml +1 -0
  133. data/app/views/formily/partial/inputs/_multiple_file_input.haml +25 -0
  134. data/app/views/formily/partial/inputs/_options_input_group.haml +77 -0
  135. data/app/views/formily/partial/inputs/_radio_input_group.haml +41 -0
  136. data/app/views/formily/partial/inputs/_static_text.haml +11 -0
  137. data/app/views/formily/partial/inputs/_text_input.haml +19 -0
  138. data/app/views/formily/partial/inputs/_textarea_input.haml +19 -0
  139. data/app/views/formily/submit_data/submit.html.erb +5 -0
  140. data/app/views/formily/submit_data/submit.json.jbuilder +5 -0
  141. data/app/views/layouts/formily_iframe.haml +16 -0
  142. data/config/routes.rb +41 -0
  143. data/formily.gemspec +41 -0
  144. data/lib/formily.rb +37 -0
  145. data/lib/formily/config.rb +72 -0
  146. data/lib/formily/engine.rb +12 -0
  147. data/lib/formily/helpers/view_helper.rb +114 -0
  148. data/lib/formily/relation.rb +26 -0
  149. data/lib/formily/relation/formily_methods.rb +30 -0
  150. data/lib/formily/relation/has_many_methods.rb +16 -0
  151. data/lib/formily/submitted_data_table.rb +74 -0
  152. data/lib/formily/version.rb +4 -0
  153. data/lib/generators/formily/install/install_generator.rb +43 -0
  154. data/lib/generators/formily/install/templates/create_formily_data.rb +28 -0
  155. data/lib/generators/formily/install/templates/create_formily_files.rb +13 -0
  156. data/lib/generators/formily/install/templates/create_formily_form_types.rb +12 -0
  157. data/lib/generators/formily/install/templates/create_formily_forms.rb +16 -0
  158. data/lib/generators/formily/install/templates/create_formily_inputs.rb +24 -0
  159. data/lib/generators/formily/install/templates/create_formilyable_forms.rb +17 -0
  160. data/lib/generators/formily/install/templates/formily.rb +21 -0
  161. data/lib/generators/formily/views/views_generator.rb +11 -0
  162. metadata +350 -0
@@ -0,0 +1,23 @@
1
+ # coding: utf-8
2
+ class Formily::InputValue < ActiveRecord::Base
3
+
4
+ self.table_name = 'formily_input_values'
5
+
6
+ has_paper_trail
7
+
8
+ belongs_to :input
9
+ has_many :attach, foreign_key: :input_value_id, class_name: 'Formily::File'
10
+
11
+ def get_value
12
+ if self.attach.blank?
13
+ if self.input.inputs.blank?
14
+ self.input_value
15
+ else
16
+ self.input.inputs.map{|i| i.data.input_value.get_value}.join(', ')
17
+ end
18
+ else
19
+ self.attach.file.url
20
+ end
21
+ end
22
+
23
+ end
@@ -0,0 +1,18 @@
1
+ # coding: utf-8
2
+ class Formily::MultipleFileInput < Formily::Input
3
+
4
+ def editor_type
5
+ 'multi file'
6
+ end
7
+
8
+ def get_value_from_submit(submit)
9
+ value = submit.input_values.find_by(input_id: self.id) rescue nil
10
+
11
+ if value
12
+ value.attach.map{|f| [f.file.url, f.id, f.file_file_name, (f.file_file_name.match(/([^.]+)\z/)[0] rescue '?')]}
13
+ else
14
+ []
15
+ end
16
+ end
17
+
18
+ end
@@ -0,0 +1,8 @@
1
+ # coding: utf-8
2
+ class Formily::OptionInput < Formily::Input
3
+
4
+ def editor_type
5
+ 'option'
6
+ end
7
+
8
+ end
@@ -0,0 +1,14 @@
1
+ # coding: utf-8
2
+ class Formily::OptionsInputGroup < Formily::Input
3
+
4
+ has_many :inputs, foreign_key: :group_input_id, class_name: 'Formily::OptionInput'
5
+
6
+ def editor_type
7
+ 'select box'
8
+ end
9
+
10
+ def input_type
11
+ 'Formily::OptionInput'
12
+ end
13
+
14
+ end
@@ -0,0 +1,12 @@
1
+ # coding: utf-8
2
+ class Formily::RadioInput < Formily::Input
3
+
4
+ def partial_path
5
+ 'formily/partial/inputs/radio'
6
+ end
7
+
8
+ def editor_type
9
+ 'radio'
10
+ end
11
+
12
+ end
@@ -0,0 +1,14 @@
1
+ # coding: utf-8
2
+ class Formily::RadioInputGroup < Formily::Input
3
+
4
+ has_many :inputs, foreign_key: :group_input_id, class_name: 'Formily::RadioInput'
5
+
6
+ def editor_type
7
+ 'radio group'
8
+ end
9
+
10
+ def input_type
11
+ 'Formily::RadioInput'
12
+ end
13
+
14
+ end
@@ -0,0 +1,8 @@
1
+ # coding: utf-8
2
+ class Formily::StaticText < Formily::Input
3
+
4
+ def editor_type
5
+ 'static text'
6
+ end
7
+
8
+ end
@@ -0,0 +1,47 @@
1
+ # coding: utf-8
2
+ class Formily::Submit < ActiveRecord::Base
3
+
4
+ self.table_name = 'formily_submits'
5
+
6
+ has_paper_trail
7
+
8
+ belongs_to :form
9
+ has_many :input_values, foreign_key: :submit_id, class_name: 'Formily::InputValue', dependent: :destroy
10
+
11
+ validates :form_id, presence: true
12
+ validates :resource_id, presence: true
13
+ validates :resource_type, presence: true
14
+
15
+ STATES = {
16
+ 0 => 'Not Started',
17
+ 1 => 'In Progress',
18
+ 2 => 'Complete'
19
+ }
20
+
21
+ def is_complete?
22
+ self.state == 2
23
+ end
24
+
25
+ def data
26
+ ids = self.form.inputs.map do |i|
27
+ if i.try(:inputs)
28
+ i.inputs.map(&:id)
29
+ else
30
+ i.id
31
+ end
32
+ end
33
+
34
+ values = self.input_values.to_a
35
+
36
+ ids.map do |i|
37
+
38
+ if i.is_a?(Array)
39
+ values.select{|x| i.include?(x.input_id)}.map(&:get_value).join(', ')
40
+ else
41
+ values.select{|x| x.input_id == i}.first.get_value rescue ''
42
+ end
43
+
44
+ end
45
+ end
46
+
47
+ end
@@ -0,0 +1,8 @@
1
+ # coding: utf-8
2
+ class Formily::TextInput < Formily::Input
3
+
4
+ def editor_type
5
+ 'text'
6
+ end
7
+
8
+ end
@@ -0,0 +1,8 @@
1
+ # coding: utf-8
2
+ class Formily::TextareaInput < Formily::Input
3
+
4
+ def editor_type
5
+ 'textarea'
6
+ end
7
+
8
+ end
@@ -0,0 +1,19 @@
1
+ %table
2
+ %thead
3
+ %tr
4
+ %th
5
+ Form
6
+ %th
7
+ date
8
+ %th
9
+
10
+ %tbody
11
+ - @forms.each do |form|
12
+ %tr
13
+ %td
14
+ = form.title
15
+ %td
16
+ = form.created_at.strftime('%-d %b %Y %H:%M (%Z)')
17
+ %td
18
+ %button{type: :button, 'data-formily-src' => formily_forms_data_table_path(form_id: form.id, model_id: @res.id, model_name: @res.class.name, iframe: true)}
19
+ View Responses
@@ -0,0 +1,3 @@
1
+ <% @forms.each do |form| %>
2
+ <%= render partial: 'formily/data/table', :locals => {:@form => form} %>
3
+ <% end %>
@@ -0,0 +1,33 @@
1
+ <h2>|<%= @form.title %>| - data</h2>
2
+ <table border="1">
3
+ <thead>
4
+ <tr>
5
+ <th>
6
+ id
7
+ </th>
8
+ <% @form.inputs.map(&:name).each do |n| %>
9
+ <th><%= n %></th>
10
+ <% end %>
11
+ <th>Date</th>
12
+ </tr>
13
+ </thead>
14
+ <tbody>
15
+ <% @form.submits.where(resource_id: @res.id, resource_type: @res.class.to_s).each_with_index do |submit, i| %>
16
+
17
+ <tr>
18
+ <td><%= i + 1 %></td>
19
+
20
+ <% submit.data.each do |val| %>
21
+ <td>
22
+ <%= val.blank? ? 'no data' : raw(val) %>
23
+ </td>
24
+ <% end %>
25
+ <td>
26
+ <%= submit.created_at.strftime('%Y/%-m/%-d %H:%M') %>
27
+ </td>
28
+ </tr>
29
+
30
+ <% end %>
31
+ </tbody>
32
+
33
+ </table>
@@ -0,0 +1,32 @@
1
+ .row
2
+ .columns.large-12
3
+
4
+ %h1= @form.title
5
+
6
+ - if @res
7
+ %h3 #{@res.try(:code) ? @res.code : "#{@res.id}##{@res.class.name}"}
8
+
9
+ %table.datatable.large-12.columns
10
+ %thead
11
+ %tr
12
+ %th
13
+ - @data_table.headers.each do |n|
14
+ %th
15
+ = n
16
+ %tbody
17
+ - @data_table.rows.each_with_index do |row, i|
18
+ %tr
19
+ %td
20
+ = i + 1
21
+ - row.each do |v|
22
+ %td
23
+ - if v =~ /\/file\//i
24
+ = link_to v, v
25
+ - else
26
+ = v
27
+
28
+ .large-12.columns
29
+ - if @res
30
+ = link_to 'Download as CSV', formily_forms_data_table_path(form_id: @form.id, model_id: @res.id, model_name: @res.class.name, format: :csv), class: 'button'
31
+ - else
32
+ = link_to 'Download as CSV', formily_forms_data_table_path(form_id: @form.id, format: :csv), class: 'button'
@@ -0,0 +1,18 @@
1
+ %label
2
+ Default value
3
+ %select.input-types.no-select2{'data-ff-name' => 'default_value'}
4
+ %option{value: ''}
5
+ NULL
6
+ %option{value: 'current_user_name'}
7
+ Current User Name
8
+ %option{value: 'device_location'}
9
+ Device Location Coordinates
10
+ %option{value: 'device_location_address'}
11
+ Device Location Address
12
+ %option{value: 'custom_value'}
13
+ Custom Value
14
+ %option{value: 'related_value'}
15
+ Related Value
16
+ %input{:placeholder => 'Custom Value', 'data-ff-name' => 'default_value', style: 'display: none', type: :text}
17
+ %ul.related_value_tag{style: 'display: none;'}
18
+ %input.related{type: :hidden, 'data-ff-related' => true}
@@ -0,0 +1,18 @@
1
+ .panel.formily
2
+ %ul#formily_sortable_inputs
3
+
4
+ - unless @form.new_record?
5
+ - @form.form_inputs.where(is_deleted: false).each do |input|
6
+
7
+ - if input.class.name.to_s =~ /group/i
8
+ = render partial: 'formily/editor/partial/group', locals: {:@input => input}
9
+ - else
10
+ = render partial: 'formily/editor/partial/input', locals: {:@input => input}
11
+
12
+ %ul.button-group.round.text-center.btn-fix
13
+
14
+ %li
15
+ %a.button.success.small{href: '#', 'data-formily' => 'add_input'}
16
+ Add New Input
17
+
18
+ = render partial: 'formily/editor/modal'
@@ -0,0 +1,197 @@
1
+ #formily_modal
2
+ %section{'data-formily' => 'input'}
3
+
4
+ %select.no-select2{'data-ff-name' => 'type'}
5
+ %optgroup{label: 'Base Inputs'}
6
+ %option{value: 'Formily::TextInput'} Text Box
7
+ %option{value: 'Formily::TextareaInput'} Text Area
8
+ %option{value: 'Formily::DateTimeInput'} Date Time
9
+ %option{value: 'Formily::CheckboxInput'} Checkbox
10
+ %option{value: 'Formily::MultipleFileInput'} Multiple File Upload
11
+
12
+ %optgroup{label: 'Static'}
13
+ %option{value: 'Formily::StaticText'} Static Text
14
+
15
+ %optgroup{label: 'Groups'}
16
+ %option{value: 'Formily::CheckboxInputGroup'}
17
+ Checkbox Group
18
+
19
+ %option{value: 'Formily::RadioInputGroup'}
20
+ Radio Group
21
+
22
+ %option{value: 'Formily::OptionsInputGroup'}
23
+ Select Box
24
+
25
+ %section{'data-formily' => 'Formily::TextInput'}
26
+
27
+ %input{'data-ff-name' => 'name', :placeholder => 'Name', :type => 'text'}
28
+ %input{'data-ff-name' => 'label', :placeholder => 'Label', :type => 'text'}
29
+ .label
30
+ Description will be visible as a tooltip
31
+ %textarea{'data-ff-name' => 'description', :placeholder => 'Description', rows: 3}
32
+
33
+ .label
34
+ Determines Mobile Popup Keyboard Type
35
+ %label
36
+ %select.input-types.no-select2{'data-ff-name' => 'tag_attributes', 'data-ff-sname' => 'type'}
37
+ %option{value: 'text'}
38
+ Text
39
+ %option{value: 'number'}
40
+ Number
41
+ %option{value: 'email'}
42
+ Email
43
+
44
+ %label
45
+ %input{type: 'checkbox', 'data-ff-name' => 'tag_attributes', 'data-ff-sname' => 'data-required', value: 'required'}
46
+ Required field ?
47
+
48
+ %label
49
+ %input{type: 'checkbox', 'data-ff-name' => 'tag_attributes', 'data-ff-sname' => 'readonly', value: 'readonly'}
50
+ Readonly input
51
+
52
+ = render partial: 'formily/editor/default_value'
53
+
54
+ %section{'data-formily' => 'Formily::TextareaInput'}
55
+ %input{'data-ff-name' => 'name', :placeholder => 'Name', :type => 'text'}
56
+ %input{'data-ff-name' => 'label', :placeholder => 'Label', :type => 'text'}
57
+ .label
58
+ Description will be visible as a tooltip
59
+ %textarea{'data-ff-name' => 'description', :placeholder => 'Description', :type => 'text', rows: 3}
60
+
61
+ %label
62
+ %input{type: 'checkbox', 'data-ff-name' => 'tag_attributes', 'data-ff-sname' => 'data-required', value: 'required'}
63
+ Required field ?
64
+
65
+ %label
66
+ %input{type: 'checkbox', 'data-ff-name' => 'tag_attributes', 'data-ff-sname' => 'readonly', value: 'readonly'}
67
+ Readonly input
68
+
69
+ = render partial: 'formily/editor/default_value'
70
+
71
+ %section{'data-formily' => 'Formily::DateTimeInput'}
72
+ %input{'data-ff-name' => 'name', :placeholder => 'Name', :type => 'text'}
73
+ %input{'data-ff-name' => 'label', :placeholder => 'Label', :type => 'text'}
74
+ .label
75
+ Description will be visible as a tooltip
76
+ %textarea{'data-ff-name' => 'description', :placeholder => 'Description', :type => 'text', rows: 3}
77
+
78
+ %label
79
+ %input{type: 'checkbox', 'data-ff-name' => 'tag_attributes', 'data-ff-sname' => 'data-required', value: 'required'}
80
+ Required field ?
81
+
82
+ %label
83
+ %input{type: 'checkbox', 'data-ff-name' => 'tag_attributes', 'data-ff-sname' => 'readonly', value: 'readonly'}
84
+ Readonly input
85
+
86
+ %label
87
+ %input{'data-ff-name' => 'default_value', :value => 'current date', :type => 'checkbox'}
88
+ Default value to current date
89
+
90
+ %section{'data-formily' => 'Formily::CheckboxInput'}
91
+ %input{'data-ff-name' => 'name', :placeholder => 'Name', :type => 'text'}
92
+ %input{'data-ff-name' => 'label', :placeholder => 'Label', :type => 'text'}
93
+ .label
94
+ Description will be visible as a tooltip
95
+ %textarea{'data-ff-name' => 'description', :placeholder => 'Description', :type => 'text', rows: 3}
96
+
97
+ %label
98
+ %input{type: 'checkbox', 'data-ff-name' => 'tag_attributes', 'data-ff-sname' => 'data-required', value: 'required'}
99
+ Required field ?
100
+
101
+ %section{'data-formily' => 'Formily::MultipleFileInput'}
102
+ %input{'data-ff-name' => 'name', :placeholder => 'Name', :type => 'text'}
103
+ %input{'data-ff-name' => 'label', :placeholder => 'Label', :type => 'text'}
104
+ .label
105
+ Description will be visible as a tooltip
106
+ %textarea{'data-ff-name' => 'description', :placeholder => 'Description', :type => 'text', rows: 3}
107
+
108
+ %label
109
+ %input{type: 'checkbox', 'data-ff-name' => 'tag_attributes', 'data-ff-sname' => 'data-required', value: 'required'}
110
+ Required field ?
111
+
112
+ %section{'data-formily' => 'Formily::StaticText'}
113
+ .label
114
+ You can use HTML markup
115
+ %textarea{'data-ff-name' => 'description', :placeholder => 'Text', :type => 'text', rows: 3}
116
+
117
+ = render partial: 'formily/editor/default_value'
118
+
119
+ %section{'data-formily' => 'Formily::CheckboxInputGroup'}
120
+ %input{'data-ff-name' => 'name', :placeholder => 'Name', :type => 'text'}
121
+ %input{'data-ff-name' => 'label', :placeholder => 'Label', :type => 'text'}
122
+ .label
123
+ Description will be visible as a tooltip
124
+ %textarea{'data-ff-name' => 'description', :placeholder => 'Description', :type => 'text', rows: 3}
125
+
126
+ %section{'data-formily' => 'Formily::RadioInputGroup'}
127
+ %input{'data-ff-name' => 'name', :placeholder => 'Name', :type => 'text'}
128
+ %input{'data-ff-name' => 'label', :placeholder => 'Label', :type => 'text'}
129
+ .label
130
+ Description will be visible as a tooltip
131
+ %textarea{'data-ff-name' => 'description', :placeholder => 'Description', :type => 'text', rows: 3}
132
+
133
+ %section{'data-formily' => 'Formily::OptionsInputGroup'}
134
+ %input{'data-ff-name' => 'name', :placeholder => 'Name', :type => 'text'}
135
+ %input{'data-ff-name' => 'label', :placeholder => 'Label', :type => 'text'}
136
+ .label
137
+ Description will be visible as a tooltip
138
+ %textarea{'data-ff-name' => 'description', :placeholder => 'Description', :type => 'text', rows: 3}
139
+
140
+ %section{'data-formily' => 'Formily::Input'}
141
+
142
+
143
+ %section{'data-formily' => 'group'}
144
+
145
+ %section{'data-formily' => 'Formily::RadioInput'}
146
+ %input{'data-ff-name' => 'name', :placeholder => 'Name', :type => 'text'}
147
+ %input{'data-ff-name' => 'label', :placeholder => 'Label', :type => 'text'}
148
+ .label
149
+ Description will be visible as a tooltip
150
+ %textarea{'data-ff-name' => 'description', :placeholder => 'Description', :type => 'text', rows: 3}
151
+
152
+ %label
153
+ conditioned
154
+ %select.input-types.no-select2{'data-ff-name' => 'tag_attributes','data-ff-sname' => 'formily_conditioned'}
155
+ %option{value: ''}
156
+ NULL
157
+ %option{value: 'Formily::TextInput'}
158
+ Text Box
159
+ %option{value: 'Formily::TextareaInput'}
160
+ Text Area
161
+ %option{value: 'Formily::MultipleFileInput'}
162
+ Multiple File Upload
163
+
164
+ %section{'data-formily' => 'Formily::CheckboxInput'}
165
+ %input{'data-ff-name' => 'name', :placeholder => 'Name', :type => 'text'}
166
+ %input{'data-ff-name' => 'label', :placeholder => 'Label', :type => 'text'}
167
+ .label
168
+ Description will be visible as a tooltip
169
+ %textarea{'data-ff-name' => 'description', :placeholder => 'Description', :type => 'text', rows: 3}
170
+
171
+ %label
172
+ conditioned
173
+ %select.input-types.no-select2{'data-ff-name' => 'tag_attributes','data-ff-sname' => 'formily_conditioned'}
174
+ %option{value: ''}
175
+ NULL
176
+ %option{value: 'Formily::TextInput'}
177
+ Text Box
178
+ %option{value: 'Formily::TextareaInput'}
179
+ Text Area
180
+ %option{value: 'Formily::MultipleFileInput'}
181
+ Multiple File Upload
182
+
183
+ %section{'data-formily' => 'Formily::OptionInput'}
184
+ %input{'data-ff-name' => 'name', :placeholder => 'Name', :type => 'text'}
185
+ %input{'data-ff-name' => 'label', :placeholder => 'Label', :type => 'text'}
186
+
187
+ %label
188
+ conditioned
189
+ %select.input-types.no-select2{'data-ff-name' => 'tag_attributes','data-ff-sname' => 'formily_conditioned'}
190
+ %option{value: ''}
191
+ NULL
192
+ %option{value: 'Formily::TextInput'}
193
+ Text Box
194
+ %option{value: 'Formily::TextareaInput'}
195
+ Text Area
196
+ %option{value: 'Formily::MultipleFileInput'}
197
+ Multiple File Upload