formily 0.0.5.5.7

Sign up to get free protection for your applications and to get access to all the features.
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