glib-web 0.5.52 → 0.5.53
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.
- checksums.yaml +4 -4
- data/app/channels/glib/channel/is_typing_channel.rb +28 -28
- data/app/controllers/concerns/glib/analytics/funnel.rb +61 -61
- data/app/controllers/concerns/glib/auth/policy.rb +148 -148
- data/app/controllers/concerns/glib/json/dynamic_text.rb +126 -126
- data/app/controllers/concerns/glib/json/libs.rb +144 -144
- data/app/controllers/concerns/glib/json/new_dynamic_text.rb +122 -122
- data/app/controllers/concerns/glib/json/transformation.rb +11 -11
- data/app/controllers/concerns/glib/json/traversal.rb +92 -92
- data/app/controllers/concerns/glib/json/ui.rb +88 -88
- data/app/controllers/concerns/glib/json/validation.rb +13 -13
- data/app/controllers/glib/home_controller.rb +16 -16
- data/app/helpers/glib/app_feature_support_helper.rb +16 -16
- data/app/helpers/glib/dynamic_images_helper.rb +55 -55
- data/app/helpers/glib/dynamic_texts_helper.rb +42 -42
- data/app/helpers/glib/enum_helper.rb +8 -8
- data/app/helpers/glib/forms_helper.rb +15 -15
- data/app/helpers/glib/json_ui/abstract_builder.rb +294 -294
- data/app/helpers/glib/json_ui/action_builder.rb +140 -140
- data/app/helpers/glib/json_ui/action_builder/dialogs.rb +58 -58
- data/app/helpers/glib/json_ui/action_builder/http.rb +39 -39
- data/app/helpers/glib/json_ui/action_builder/sheets.rb +15 -15
- data/app/helpers/glib/json_ui/action_builder/snackbars.rb +41 -41
- data/app/helpers/glib/json_ui/action_builder/windows.rb +26 -26
- data/app/helpers/glib/json_ui/analytics_helper.rb +17 -17
- data/app/helpers/glib/json_ui/dynamic_field_builders.rb +25 -25
- data/app/helpers/glib/json_ui/generic_builders.rb +28 -28
- data/app/helpers/glib/json_ui/list_builders.rb +109 -109
- data/app/helpers/glib/json_ui/menu_builder.rb +94 -94
- data/app/helpers/glib/json_ui/page_helper.rb +221 -221
- data/app/helpers/glib/json_ui/response_helper.rb +25 -25
- data/app/helpers/glib/json_ui/split_builders.rb +32 -32
- data/app/helpers/glib/json_ui/styling_helper.rb +47 -47
- data/app/helpers/glib/json_ui/table_builders.rb +74 -74
- data/app/helpers/glib/json_ui/view_builder.rb +209 -209
- data/app/helpers/glib/json_ui/view_builder/banners.rb +25 -25
- data/app/helpers/glib/json_ui/view_builder/charts.rb +33 -33
- data/app/helpers/glib/json_ui/view_builder/fields.rb +240 -240
- data/app/helpers/glib/json_ui/view_builder/panels.rb +250 -250
- data/app/helpers/glib/urls_helper.rb +12 -7
- data/app/models/glib/active_storage/attachment.rb +9 -9
- data/app/models/glib/active_storage/blob.rb +9 -9
- data/app/models/glib/application_record.rb +18 -18
- data/app/models/glib/dynamic_text_record.rb +9 -9
- data/app/models/glib/text.rb +95 -95
- data/app/policies/glib/application_policy.rb +161 -161
- data/app/validators/email_typo_validator.rb +38 -38
- data/app/validators/email_validator.rb +7 -7
- data/app/validators/url_validator.rb +20 -20
- data/app/views/json_ui/garage/_nav_menu.json.jbuilder +70 -70
- data/app/views/json_ui/garage/actions/_dialogs.json.jbuilder +104 -104
- data/app/views/json_ui/garage/actions/_http.json.jbuilder +24 -24
- data/app/views/json_ui/garage/actions/_reload.json.jbuilder +17 -17
- data/app/views/json_ui/garage/actions/_sheets.json.jbuilder +18 -18
- data/app/views/json_ui/garage/actions/_snackbars.json.jbuilder +33 -33
- data/app/views/json_ui/garage/actions/_timeouts.json.jbuilder +18 -18
- data/app/views/json_ui/garage/actions/_windows.json.jbuilder +24 -24
- data/app/views/json_ui/garage/actions/dialogs_oauth_post.json.jbuilder +6 -6
- data/app/views/json_ui/garage/actions/index.json.jbuilder +22 -22
- data/app/views/json_ui/garage/forms/_alert_post_data.json.jbuilder +6 -6
- data/app/views/json_ui/garage/forms/basic.json.jbuilder +21 -21
- data/app/views/json_ui/garage/forms/basic_post.json.jbuilder +8 -8
- data/app/views/json_ui/garage/forms/checkboxes.json.jbuilder +43 -43
- data/app/views/json_ui/garage/forms/conditional_value.json.jbuilder +36 -36
- data/app/views/json_ui/garage/forms/dynamic_group.json.jbuilder +39 -39
- data/app/views/json_ui/garage/forms/dynamic_select.json.jbuilder +22 -22
- data/app/views/json_ui/garage/forms/dynamic_select_data.json.jbuilder +38 -38
- data/app/views/json_ui/garage/forms/file_upload.json.jbuilder +32 -32
- data/app/views/json_ui/garage/forms/floating_submit.json.jbuilder +19 -19
- data/app/views/json_ui/garage/forms/generic_post.json.jbuilder +3 -3
- data/app/views/json_ui/garage/forms/get_request.json.jbuilder +27 -27
- data/app/views/json_ui/garage/forms/index.json.jbuilder +108 -108
- data/app/views/json_ui/garage/forms/new_rich_text.json.jbuilder +39 -39
- data/app/views/json_ui/garage/forms/pickers.json.jbuilder +46 -46
- data/app/views/json_ui/garage/forms/rich_text.json.jbuilder +40 -40
- data/app/views/json_ui/garage/forms/selects.json.jbuilder +70 -70
- data/app/views/json_ui/garage/forms/show_hide.json.jbuilder +105 -105
- data/app/views/json_ui/garage/forms/styled_boxes.json.jbuilder +36 -36
- data/app/views/json_ui/garage/forms/submission_flow.json.jbuilder +17 -17
- data/app/views/json_ui/garage/forms/submission_flow_post.json.jbuilder +24 -24
- data/app/views/json_ui/garage/forms/submission_indicator.json.jbuilder +63 -63
- data/app/views/json_ui/garage/forms/submission_indicator_post.json.jbuilder +25 -25
- data/app/views/json_ui/garage/forms/text_validation.json.jbuilder +59 -59
- data/app/views/json_ui/garage/home/blank.json.jbuilder +11 -11
- data/app/views/json_ui/garage/home/index.json.jbuilder +32 -32
- data/app/views/json_ui/garage/home/slow.json.jbuilder +11 -11
- data/app/views/json_ui/garage/lists/_autoload_section.json.jbuilder +28 -28
- data/app/views/json_ui/garage/lists/autoload_all.json.jbuilder +32 -32
- data/app/views/json_ui/garage/lists/autoload_as_needed.json.jbuilder +35 -35
- data/app/views/json_ui/garage/lists/chat_ui.json.jbuilder +93 -93
- data/app/views/json_ui/garage/lists/edit_actions.json.jbuilder +54 -54
- data/app/views/json_ui/garage/lists/fab.json.jbuilder +12 -12
- data/app/views/json_ui/garage/lists/index.json.jbuilder +32 -32
- data/app/views/json_ui/garage/lists/reordering.json.jbuilder +34 -34
- data/app/views/json_ui/garage/lists/templating.json.jbuilder +35 -35
- data/app/views/json_ui/garage/notifications/action_cable.json.jbuilder +97 -97
- data/app/views/json_ui/garage/notifications/android_post.json.jbuilder +48 -48
- data/app/views/json_ui/garage/notifications/index.json.jbuilder +36 -36
- data/app/views/json_ui/garage/notifications/web_socket.json.jbuilder +60 -60
- data/app/views/json_ui/garage/pages/flat_centered.json.jbuilder +29 -29
- data/app/views/json_ui/garage/pages/full_width.json.jbuilder +29 -29
- data/app/views/json_ui/garage/pages/full_width_height.json.jbuilder +16 -16
- data/app/views/json_ui/garage/pages/index.json.jbuilder +58 -58
- data/app/views/json_ui/garage/pages/layout.json.jbuilder +18 -18
- data/app/views/json_ui/garage/pages/loading_indicator.json.jbuilder +10 -10
- data/app/views/json_ui/garage/pages/nav_buttons.json.jbuilder +21 -21
- data/app/views/json_ui/garage/pages/nested_scroll.json.jbuilder +40 -40
- data/app/views/json_ui/garage/pages/tab_bar.json.jbuilder +27 -27
- data/app/views/json_ui/garage/panels/_styled.json.jbuilder +78 -78
- data/app/views/json_ui/garage/panels/card.json.jbuilder +4 -4
- data/app/views/json_ui/garage/panels/carousel.json.jbuilder +37 -37
- data/app/views/json_ui/garage/panels/custom.json.jbuilder +17 -17
- data/app/views/json_ui/garage/panels/flow.json.jbuilder +49 -49
- data/app/views/json_ui/garage/panels/horizontal.json.jbuilder +91 -91
- data/app/views/json_ui/garage/panels/index.json.jbuilder +132 -132
- data/app/views/json_ui/garage/panels/outlined.json.jbuilder +4 -4
- data/app/views/json_ui/garage/panels/responsive.json.jbuilder +98 -98
- data/app/views/json_ui/garage/panels/split.json.jbuilder +182 -182
- data/app/views/json_ui/garage/panels/vertical.json.jbuilder +50 -50
- data/app/views/json_ui/garage/services/dynamic_text.json.jbuilder +13 -13
- data/app/views/json_ui/garage/services/image.json.jbuilder +47 -47
- data/app/views/json_ui/garage/services/index.json.jbuilder +17 -17
- data/app/views/json_ui/garage/tables/_autoload_section.json.jbuilder +16 -16
- data/app/views/json_ui/garage/tables/autoload_all.json.jbuilder +43 -43
- data/app/views/json_ui/garage/tables/autoload_as_needed.json.jbuilder +50 -50
- data/app/views/json_ui/garage/tables/export_import.json.jbuilder +29 -29
- data/app/views/json_ui/garage/tables/horizontal_scroll.json.jbuilder +26 -26
- data/app/views/json_ui/garage/tables/index.json.jbuilder +25 -25
- data/app/views/json_ui/garage/tables/layout.json.jbuilder +36 -36
- data/app/views/json_ui/garage/views/_chart_data.json.jbuilder +17 -17
- data/app/views/json_ui/garage/views/banners.json.jbuilder +63 -63
- data/app/views/json_ui/garage/views/calendar_data.json.jbuilder +30 -30
- data/app/views/json_ui/garage/views/charts.json.jbuilder +115 -115
- data/app/views/json_ui/garage/views/icons.json.jbuilder +1450 -1450
- data/app/views/json_ui/garage/views/images.json.jbuilder +89 -89
- data/app/views/json_ui/garage/views/index.json.jbuilder +54 -54
- data/app/views/json_ui/garage/views/links.json.jbuilder +70 -70
- data/app/views/json_ui/garage/views/map_cluster_data.json.jbuilder +41 -41
- data/app/views/json_ui/garage/views/map_data.json.jbuilder +51 -51
- data/app/views/json_ui/garage/views/maps.json.jbuilder +31 -31
- data/app/views/json_ui/garage/views/markdowns.json.jbuilder +41 -41
- data/app/views/json_ui/garage/views/misc.json.jbuilder +34 -34
- data/app/views/json_ui/garage/views/texts.json.jbuilder +44 -44
- data/app/views/layouts/json_ui/renderer.html.erb +35 -35
- data/config/routes.rb +7 -7
- data/lib/generators/glib/install_generator.rb +24 -24
- data/lib/generators/templates/20191017062519_create_texts.rb +12 -12
- data/lib/generators/templates/20191024063257_add_scope_to_texts.rb +7 -7
- data/lib/generators/templates/20191112095018_add_lang_to_texts.rb +7 -7
- data/lib/generators/templates/20191126071051_create_active_storage_tables.active_storage.rb +27 -27
- data/lib/generators/templates/database.yml +107 -107
- data/lib/generators/templates/dynamic_text.rb +2 -2
- data/lib/glib-web.rb +9 -9
- data/lib/glib/crypt/utils.rb +26 -26
- data/lib/glib/dynamic_text/config.rb +21 -21
- data/lib/glib/engine.rb +7 -7
- data/lib/glib/json_crawler.rb +11 -11
- data/lib/glib/json_crawler/action_crawler.rb +23 -23
- data/lib/glib/json_crawler/action_crawlers/action_http.rb +11 -11
- data/lib/glib/json_crawler/action_crawlers/forms_submit.rb +48 -48
- data/lib/glib/json_crawler/action_crawlers/menu.rb +12 -12
- data/lib/glib/json_crawler/action_crawlers/nav_initiate.rb +19 -19
- data/lib/glib/json_crawler/action_crawlers/run_multiple.rb +13 -13
- data/lib/glib/json_crawler/action_crawlers/windows_open.rb +33 -33
- data/lib/glib/json_crawler/coverage.rb +20 -20
- data/lib/glib/json_crawler/http.rb +120 -120
- data/lib/glib/json_crawler/router.rb +98 -98
- data/lib/glib/mailer_tester.rb +36 -36
- data/lib/glib/test_helpers.rb +52 -52
- data/lib/glib/value.rb +7 -7
- data/lib/glib/version.rb +5 -5
- data/lib/tasks/db.rake +95 -95
- metadata +3 -8
|
@@ -1,39 +1,39 @@
|
|
|
1
|
-
json.title 'Forms'
|
|
2
|
-
|
|
3
|
-
page = json_ui_page json
|
|
4
|
-
render "#{@path_prefix}/nav_menu", json: json, page: page
|
|
5
|
-
|
|
6
|
-
page.form url: json_ui_garage_url(path: 'forms/basic_post'), method: 'post', padding: { top: 12, left: 20, right: 20, bottom: 12 }, childViews: ->(form) do
|
|
7
|
-
form.fields_text name: 'user[name]', width: 'matchParent', label: 'Name'
|
|
8
|
-
|
|
9
|
-
# images = [
|
|
10
|
-
# {
|
|
11
|
-
# value: "eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBFQT09IiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--193dc0d939b9558fc4973fafbba91d989cbb04d4",
|
|
12
|
-
# fileUrl: "https://imageserver-demo.herokuapp.com/image/itinerarybuilder-demo/o6CKzNt67PWnkPdUEnWMt7pr?h=100&w=100"
|
|
13
|
-
# }
|
|
14
|
-
# ]
|
|
15
|
-
# form.fields_richText name: 'user[bio]', width: 'matchParent', label: 'Content', images: images, value: '<p>Test {{image1}}</p>'
|
|
16
|
-
|
|
17
|
-
json.child! do
|
|
18
|
-
json.view 'fields/newRichText-v1'
|
|
19
|
-
json.width 'matchParent'
|
|
20
|
-
json.label 'Content'
|
|
21
|
-
json.name 'user[bio]'
|
|
22
|
-
json.value '<p>Test {{image1}}</p>'
|
|
23
|
-
|
|
24
|
-
json.images do
|
|
25
|
-
json.child! do
|
|
26
|
-
json.value "eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBFQT09IiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--193dc0d939b9558fc4973fafbba91d989cbb04d4"
|
|
27
|
-
# json.fileTitle "hita i hanom hg.jpg"
|
|
28
|
-
json.fileUrl "https://imageserver-demo.herokuapp.com/image/itinerarybuilder-demo/o6CKzNt67PWnkPdUEnWMt7pr?h=100&w=100"
|
|
29
|
-
end
|
|
30
|
-
end
|
|
31
|
-
|
|
32
|
-
json.imageUploader do
|
|
33
|
-
json.accepts(fileType: "image/*", maxFileSize: 5000)
|
|
34
|
-
json.directUploadUrl rails_direct_uploads_url
|
|
35
|
-
end
|
|
36
|
-
end
|
|
37
|
-
|
|
38
|
-
form.button text: 'Submit', onClick: ->(action) { action.forms_submit }
|
|
39
|
-
end
|
|
1
|
+
json.title 'Forms'
|
|
2
|
+
|
|
3
|
+
page = json_ui_page json
|
|
4
|
+
render "#{@path_prefix}/nav_menu", json: json, page: page
|
|
5
|
+
|
|
6
|
+
page.form url: json_ui_garage_url(path: 'forms/basic_post'), method: 'post', padding: { top: 12, left: 20, right: 20, bottom: 12 }, childViews: ->(form) do
|
|
7
|
+
form.fields_text name: 'user[name]', width: 'matchParent', label: 'Name'
|
|
8
|
+
|
|
9
|
+
# images = [
|
|
10
|
+
# {
|
|
11
|
+
# value: "eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBFQT09IiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--193dc0d939b9558fc4973fafbba91d989cbb04d4",
|
|
12
|
+
# fileUrl: "https://imageserver-demo.herokuapp.com/image/itinerarybuilder-demo/o6CKzNt67PWnkPdUEnWMt7pr?h=100&w=100"
|
|
13
|
+
# }
|
|
14
|
+
# ]
|
|
15
|
+
# form.fields_richText name: 'user[bio]', width: 'matchParent', label: 'Content', images: images, value: '<p>Test {{image1}}</p>'
|
|
16
|
+
|
|
17
|
+
json.child! do
|
|
18
|
+
json.view 'fields/newRichText-v1'
|
|
19
|
+
json.width 'matchParent'
|
|
20
|
+
json.label 'Content'
|
|
21
|
+
json.name 'user[bio]'
|
|
22
|
+
json.value '<p>Test {{image1}}</p>'
|
|
23
|
+
|
|
24
|
+
json.images do
|
|
25
|
+
json.child! do
|
|
26
|
+
json.value "eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBFQT09IiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--193dc0d939b9558fc4973fafbba91d989cbb04d4"
|
|
27
|
+
# json.fileTitle "hita i hanom hg.jpg"
|
|
28
|
+
json.fileUrl "https://imageserver-demo.herokuapp.com/image/itinerarybuilder-demo/o6CKzNt67PWnkPdUEnWMt7pr?h=100&w=100"
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
json.imageUploader do
|
|
33
|
+
json.accepts(fileType: "image/*", maxFileSize: 5000)
|
|
34
|
+
json.directUploadUrl rails_direct_uploads_url
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
form.button text: 'Submit', onClick: ->(action) { action.forms_submit }
|
|
39
|
+
end
|
|
@@ -1,46 +1,46 @@
|
|
|
1
|
-
json.title 'Forms'
|
|
2
|
-
|
|
3
|
-
page = json_ui_page json
|
|
4
|
-
render "#{@path_prefix}/nav_menu", json: json, page: page
|
|
5
|
-
|
|
6
|
-
page.form url: json_ui_garage_url(path: 'forms/generic_post'), method: 'post', padding: glib_json_padding_body, childViews: ->(form) do
|
|
7
|
-
form.h2 text: 'Radio Group'
|
|
8
|
-
form.spacer height: 6
|
|
9
|
-
form.h4 text: 'Gender'
|
|
10
|
-
form.fields_radioGroup name: 'user[gender]', value: 'F', childViews: ->(group) do
|
|
11
|
-
group.fields_radio value: '', label: 'Unknown'
|
|
12
|
-
group.fields_radio value: 'M', label: 'Male'
|
|
13
|
-
group.fields_radio value: 'F', label: 'Female'
|
|
14
|
-
end
|
|
15
|
-
|
|
16
|
-
form.spacer height: 20
|
|
17
|
-
form.h2 text: 'Single Checkbox'
|
|
18
|
-
form.fields_check name: 'user[age_range]', value: '16+', checkValue: '16+', uncheckValue: '0-16', label: 'I am over 16 (has default value)'
|
|
19
|
-
form.fields_check name: 'user[employer]', checkValue: 1, label: 'I am an employer (no default value)'
|
|
20
|
-
form.fields_check name: 'user[enabled]', checkValue: true, label: 'Enable', styleClass: 'switch', value: 'true'
|
|
21
|
-
|
|
22
|
-
form.spacer height: 20
|
|
23
|
-
form.h2 text: 'Date/Time'
|
|
24
|
-
form.spacer height: 6
|
|
25
|
-
form.fields_date name: 'user[date]', width: 'matchParent', label: 'Date', min: '2010-01-01', max: '2012-01-01', value: '2010-02-01'
|
|
26
|
-
form.fields_datetime name: 'user[date_time]', width: 'matchParent', label: 'Date Time', min: '2018-06-09T00:00', max: '2018-06-17T00:00', value: '2018-06-15T19:30'
|
|
27
|
-
|
|
28
|
-
form.spacer height: 20
|
|
29
|
-
form.h2 text: 'Country'
|
|
30
|
-
form.spacer height: 6
|
|
31
|
-
region_field = { name: 'user[city]', label: 'City' }
|
|
32
|
-
form.fields_country name: 'user[country]', width: 'matchParent', label: 'Country', region: region_field
|
|
33
|
-
|
|
34
|
-
form.spacer height: 20
|
|
35
|
-
form.h2 text: 'Map'
|
|
36
|
-
form.spacer height: 6
|
|
37
|
-
form.fields_location name: 'user[address]', width: 'matchParent', label: 'Type an address', value: 'Sydney Harbour Bridge',
|
|
38
|
-
autocompleteOptions: { componentRestrictions: { country: 'au' }, types: ['(cities)'] },
|
|
39
|
-
latitudeField: { view: 'fields/text', name: 'user[latitude]', label: 'Lat', value: -33.8523063, readOnly: true },
|
|
40
|
-
longitudeField: { view: 'fields/text', name: 'user[longitude]', label: 'Long', value: 151.21078710000006, readOnly: true },
|
|
41
|
-
zoomField: { view: 'fields/text', name: 'user[zoom]', label: 'Zoom' }
|
|
42
|
-
|
|
43
|
-
form.spacer height: 20
|
|
44
|
-
form.fields_submit text: 'Submit'
|
|
45
|
-
|
|
46
|
-
end
|
|
1
|
+
json.title 'Forms'
|
|
2
|
+
|
|
3
|
+
page = json_ui_page json
|
|
4
|
+
render "#{@path_prefix}/nav_menu", json: json, page: page
|
|
5
|
+
|
|
6
|
+
page.form url: json_ui_garage_url(path: 'forms/generic_post'), method: 'post', padding: glib_json_padding_body, childViews: ->(form) do
|
|
7
|
+
form.h2 text: 'Radio Group'
|
|
8
|
+
form.spacer height: 6
|
|
9
|
+
form.h4 text: 'Gender'
|
|
10
|
+
form.fields_radioGroup name: 'user[gender]', value: 'F', childViews: ->(group) do
|
|
11
|
+
group.fields_radio value: '', label: 'Unknown'
|
|
12
|
+
group.fields_radio value: 'M', label: 'Male'
|
|
13
|
+
group.fields_radio value: 'F', label: 'Female'
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
form.spacer height: 20
|
|
17
|
+
form.h2 text: 'Single Checkbox'
|
|
18
|
+
form.fields_check name: 'user[age_range]', value: '16+', checkValue: '16+', uncheckValue: '0-16', label: 'I am over 16 (has default value)'
|
|
19
|
+
form.fields_check name: 'user[employer]', checkValue: 1, label: 'I am an employer (no default value)'
|
|
20
|
+
form.fields_check name: 'user[enabled]', checkValue: true, label: 'Enable', styleClass: 'switch', value: 'true'
|
|
21
|
+
|
|
22
|
+
form.spacer height: 20
|
|
23
|
+
form.h2 text: 'Date/Time'
|
|
24
|
+
form.spacer height: 6
|
|
25
|
+
form.fields_date name: 'user[date]', width: 'matchParent', label: 'Date', min: '2010-01-01', max: '2012-01-01', value: '2010-02-01'
|
|
26
|
+
form.fields_datetime name: 'user[date_time]', width: 'matchParent', label: 'Date Time', min: '2018-06-09T00:00', max: '2018-06-17T00:00', value: '2018-06-15T19:30'
|
|
27
|
+
|
|
28
|
+
form.spacer height: 20
|
|
29
|
+
form.h2 text: 'Country'
|
|
30
|
+
form.spacer height: 6
|
|
31
|
+
region_field = { name: 'user[city]', label: 'City' }
|
|
32
|
+
form.fields_country name: 'user[country]', width: 'matchParent', label: 'Country', region: region_field
|
|
33
|
+
|
|
34
|
+
form.spacer height: 20
|
|
35
|
+
form.h2 text: 'Map'
|
|
36
|
+
form.spacer height: 6
|
|
37
|
+
form.fields_location name: 'user[address]', width: 'matchParent', label: 'Type an address', value: 'Sydney Harbour Bridge',
|
|
38
|
+
autocompleteOptions: { componentRestrictions: { country: 'au' }, types: ['(cities)'] },
|
|
39
|
+
latitudeField: { view: 'fields/text', name: 'user[latitude]', label: 'Lat', value: -33.8523063, readOnly: true },
|
|
40
|
+
longitudeField: { view: 'fields/text', name: 'user[longitude]', label: 'Long', value: 151.21078710000006, readOnly: true },
|
|
41
|
+
zoomField: { view: 'fields/text', name: 'user[zoom]', label: 'Zoom' }
|
|
42
|
+
|
|
43
|
+
form.spacer height: 20
|
|
44
|
+
form.fields_submit text: 'Submit'
|
|
45
|
+
|
|
46
|
+
end
|
|
@@ -1,40 +1,40 @@
|
|
|
1
|
-
json.title 'Forms'
|
|
2
|
-
|
|
3
|
-
json_ui_page json do |page|
|
|
4
|
-
render "#{@path_prefix}/nav_menu", json: json, page: page
|
|
5
|
-
|
|
6
|
-
page.form url: json_ui_garage_url(path: 'forms/basic_post'), method: 'post', padding: { top: 12, left: 20, right: 20, bottom: 12 }, childViews: ->(form) do
|
|
7
|
-
form.fields_text name: 'user[name]', width: 'matchParent', label: 'Name'
|
|
8
|
-
|
|
9
|
-
# images = [
|
|
10
|
-
# {
|
|
11
|
-
# value: "eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBFQT09IiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--193dc0d939b9558fc4973fafbba91d989cbb04d4",
|
|
12
|
-
# fileUrl: "https://imageserver-demo.herokuapp.com/image/itinerarybuilder-demo/o6CKzNt67PWnkPdUEnWMt7pr?h=100&w=100"
|
|
13
|
-
# }
|
|
14
|
-
# ]
|
|
15
|
-
# form.fields_richText name: 'user[bio]', width: 'matchParent', label: 'Content', images: images, value: '<p>Test {{image1}}</p>'
|
|
16
|
-
|
|
17
|
-
json.child! do
|
|
18
|
-
json.view 'fields/richText-v1'
|
|
19
|
-
json.width 'matchParent'
|
|
20
|
-
json.label 'Content'
|
|
21
|
-
json.name 'user[bio]'
|
|
22
|
-
json.value '<p>Test {{image1}}</p>'
|
|
23
|
-
|
|
24
|
-
json.images do
|
|
25
|
-
json.child! do
|
|
26
|
-
json.value "eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBFQT09IiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--193dc0d939b9558fc4973fafbba91d989cbb04d4"
|
|
27
|
-
# json.fileTitle "hita i hanom hg.jpg"
|
|
28
|
-
json.fileUrl "https://imageserver-demo.herokuapp.com/image/itinerarybuilder-demo/o6CKzNt67PWnkPdUEnWMt7pr?h=100&w=100"
|
|
29
|
-
end
|
|
30
|
-
end
|
|
31
|
-
|
|
32
|
-
json.imageUploader do
|
|
33
|
-
json.accepts(fileType: "image/*", maxFileSize: 5000)
|
|
34
|
-
json.directUploadUrl rails_direct_uploads_url
|
|
35
|
-
end
|
|
36
|
-
end
|
|
37
|
-
|
|
38
|
-
form.button text: 'Submit', onClick: ->(action) { action.forms_submit }
|
|
39
|
-
end
|
|
40
|
-
end
|
|
1
|
+
json.title 'Forms'
|
|
2
|
+
|
|
3
|
+
json_ui_page json do |page|
|
|
4
|
+
render "#{@path_prefix}/nav_menu", json: json, page: page
|
|
5
|
+
|
|
6
|
+
page.form url: json_ui_garage_url(path: 'forms/basic_post'), method: 'post', padding: { top: 12, left: 20, right: 20, bottom: 12 }, childViews: ->(form) do
|
|
7
|
+
form.fields_text name: 'user[name]', width: 'matchParent', label: 'Name'
|
|
8
|
+
|
|
9
|
+
# images = [
|
|
10
|
+
# {
|
|
11
|
+
# value: "eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBFQT09IiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--193dc0d939b9558fc4973fafbba91d989cbb04d4",
|
|
12
|
+
# fileUrl: "https://imageserver-demo.herokuapp.com/image/itinerarybuilder-demo/o6CKzNt67PWnkPdUEnWMt7pr?h=100&w=100"
|
|
13
|
+
# }
|
|
14
|
+
# ]
|
|
15
|
+
# form.fields_richText name: 'user[bio]', width: 'matchParent', label: 'Content', images: images, value: '<p>Test {{image1}}</p>'
|
|
16
|
+
|
|
17
|
+
json.child! do
|
|
18
|
+
json.view 'fields/richText-v1'
|
|
19
|
+
json.width 'matchParent'
|
|
20
|
+
json.label 'Content'
|
|
21
|
+
json.name 'user[bio]'
|
|
22
|
+
json.value '<p>Test {{image1}}</p>'
|
|
23
|
+
|
|
24
|
+
json.images do
|
|
25
|
+
json.child! do
|
|
26
|
+
json.value "eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBFQT09IiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--193dc0d939b9558fc4973fafbba91d989cbb04d4"
|
|
27
|
+
# json.fileTitle "hita i hanom hg.jpg"
|
|
28
|
+
json.fileUrl "https://imageserver-demo.herokuapp.com/image/itinerarybuilder-demo/o6CKzNt67PWnkPdUEnWMt7pr?h=100&w=100"
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
json.imageUploader do
|
|
33
|
+
json.accepts(fileType: "image/*", maxFileSize: 5000)
|
|
34
|
+
json.directUploadUrl rails_direct_uploads_url
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
form.button text: 'Submit', onClick: ->(action) { action.forms_submit }
|
|
39
|
+
end
|
|
40
|
+
end
|
|
@@ -1,70 +1,70 @@
|
|
|
1
|
-
json.title 'Forms'
|
|
2
|
-
|
|
3
|
-
json_ui_page json do |page|
|
|
4
|
-
render "#{@path_prefix}/nav_menu", json: json, page: page
|
|
5
|
-
|
|
6
|
-
page.form url: json_ui_garage_url(path: 'forms/generic_post'), method: 'post', padding: glib_json_padding_body, childViews: ->(form) do
|
|
7
|
-
|
|
8
|
-
form.spacer height: 20
|
|
9
|
-
form.h2 text: 'Basic select fields'
|
|
10
|
-
form.spacer height: 6
|
|
11
|
-
languages = {
|
|
12
|
-
'brisbane' => 'Brisbane',
|
|
13
|
-
'canberra' => 'Canberra',
|
|
14
|
-
'melbourne' => 'Melbourne',
|
|
15
|
-
'sydney' => 'Sydney',
|
|
16
|
-
}
|
|
17
|
-
form.fields_select name: 'user[city]', width: 'matchParent', label: 'Primary Language', options: languages.map { |k, v| { value: k, text: v } }, value: 'canberra'
|
|
18
|
-
form.fields_select name: 'user[cities][]', width: 'matchParent', label: 'Preferred Languages', options: languages.map { |k, v| { value: k, text: v } }, value: ['melbourne', 'sydney'], multiple: true
|
|
19
|
-
|
|
20
|
-
form.spacer height: 20
|
|
21
|
-
form.h2 text: 'Select fields with grouping'
|
|
22
|
-
form.spacer height: 6
|
|
23
|
-
form.label text: 'Applicable to select fields with many options'
|
|
24
|
-
form.spacer height: 6
|
|
25
|
-
|
|
26
|
-
languages = {
|
|
27
|
-
"East Asia" => {
|
|
28
|
-
"zh" => "Chinese",
|
|
29
|
-
"ja" => "Japanese",
|
|
30
|
-
"ko" => "Korean",
|
|
31
|
-
},
|
|
32
|
-
"Middle East" => {
|
|
33
|
-
"ar" => 'Arabic',
|
|
34
|
-
"hi" => "Hindi",
|
|
35
|
-
},
|
|
36
|
-
"Europe" => {
|
|
37
|
-
"nl" => "Dutch",
|
|
38
|
-
"en" => "English",
|
|
39
|
-
"fr" => "French",
|
|
40
|
-
"de" => "German",
|
|
41
|
-
"it" => "Italian",
|
|
42
|
-
"pt" => "Portuguese",
|
|
43
|
-
"es" => "Spanish",
|
|
44
|
-
},
|
|
45
|
-
"Eastern Europe" => {
|
|
46
|
-
"ru" => "Russian",
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
options = []
|
|
50
|
-
languages.each do |group, sub|
|
|
51
|
-
options << { type: 'label', text: group }
|
|
52
|
-
options.concat(sub.map { |k, v| { value: k, text: v } })
|
|
53
|
-
options << { type: 'divider' }
|
|
54
|
-
end
|
|
55
|
-
|
|
56
|
-
form.fields_select name: 'user[language]', width: 'matchParent', label: 'Primary Language', options: options, value: 'nl'
|
|
57
|
-
form.fields_select name: 'user[languages][]', width: 'matchParent', label: 'Primary Language', options: options, value: ['ja', 'de'], multiple: true
|
|
58
|
-
|
|
59
|
-
form.spacer height: 20
|
|
60
|
-
form.h2 text: 'Autocomplete (select with manual entry)'
|
|
61
|
-
form.spacer height: 6
|
|
62
|
-
skills = ['Singing', 'Dancing', 'Fighting']
|
|
63
|
-
form.fields_autocomplete name: 'user[skill]', width: 'matchParent', label: 'Skill', options: skills, value: 'Singing'
|
|
64
|
-
form.fields_autocomplete name: 'user[skills][]', width: 'matchParent', label: 'Skills', options: skills, value: ['Dancing', 'Fencing'], multiple: true
|
|
65
|
-
|
|
66
|
-
form.button text: 'Submit', onClick: ->(action) { action.forms_submit }
|
|
67
|
-
|
|
68
|
-
end
|
|
69
|
-
|
|
70
|
-
end
|
|
1
|
+
json.title 'Forms'
|
|
2
|
+
|
|
3
|
+
json_ui_page json do |page|
|
|
4
|
+
render "#{@path_prefix}/nav_menu", json: json, page: page
|
|
5
|
+
|
|
6
|
+
page.form url: json_ui_garage_url(path: 'forms/generic_post'), method: 'post', padding: glib_json_padding_body, childViews: ->(form) do
|
|
7
|
+
|
|
8
|
+
form.spacer height: 20
|
|
9
|
+
form.h2 text: 'Basic select fields'
|
|
10
|
+
form.spacer height: 6
|
|
11
|
+
languages = {
|
|
12
|
+
'brisbane' => 'Brisbane',
|
|
13
|
+
'canberra' => 'Canberra',
|
|
14
|
+
'melbourne' => 'Melbourne',
|
|
15
|
+
'sydney' => 'Sydney',
|
|
16
|
+
}
|
|
17
|
+
form.fields_select name: 'user[city]', width: 'matchParent', label: 'Primary Language', options: languages.map { |k, v| { value: k, text: v } }, value: 'canberra'
|
|
18
|
+
form.fields_select name: 'user[cities][]', width: 'matchParent', label: 'Preferred Languages', options: languages.map { |k, v| { value: k, text: v } }, value: ['melbourne', 'sydney'], multiple: true
|
|
19
|
+
|
|
20
|
+
form.spacer height: 20
|
|
21
|
+
form.h2 text: 'Select fields with grouping'
|
|
22
|
+
form.spacer height: 6
|
|
23
|
+
form.label text: 'Applicable to select fields with many options'
|
|
24
|
+
form.spacer height: 6
|
|
25
|
+
|
|
26
|
+
languages = {
|
|
27
|
+
"East Asia" => {
|
|
28
|
+
"zh" => "Chinese",
|
|
29
|
+
"ja" => "Japanese",
|
|
30
|
+
"ko" => "Korean",
|
|
31
|
+
},
|
|
32
|
+
"Middle East" => {
|
|
33
|
+
"ar" => 'Arabic',
|
|
34
|
+
"hi" => "Hindi",
|
|
35
|
+
},
|
|
36
|
+
"Europe" => {
|
|
37
|
+
"nl" => "Dutch",
|
|
38
|
+
"en" => "English",
|
|
39
|
+
"fr" => "French",
|
|
40
|
+
"de" => "German",
|
|
41
|
+
"it" => "Italian",
|
|
42
|
+
"pt" => "Portuguese",
|
|
43
|
+
"es" => "Spanish",
|
|
44
|
+
},
|
|
45
|
+
"Eastern Europe" => {
|
|
46
|
+
"ru" => "Russian",
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
options = []
|
|
50
|
+
languages.each do |group, sub|
|
|
51
|
+
options << { type: 'label', text: group }
|
|
52
|
+
options.concat(sub.map { |k, v| { value: k, text: v } })
|
|
53
|
+
options << { type: 'divider' }
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
form.fields_select name: 'user[language]', width: 'matchParent', label: 'Primary Language', options: options, value: 'nl'
|
|
57
|
+
form.fields_select name: 'user[languages][]', width: 'matchParent', label: 'Primary Language', options: options, value: ['ja', 'de'], multiple: true
|
|
58
|
+
|
|
59
|
+
form.spacer height: 20
|
|
60
|
+
form.h2 text: 'Autocomplete (select with manual entry)'
|
|
61
|
+
form.spacer height: 6
|
|
62
|
+
skills = ['Singing', 'Dancing', 'Fighting']
|
|
63
|
+
form.fields_autocomplete name: 'user[skill]', width: 'matchParent', label: 'Skill', options: skills, value: 'Singing'
|
|
64
|
+
form.fields_autocomplete name: 'user[skills][]', width: 'matchParent', label: 'Skills', options: skills, value: ['Dancing', 'Fencing'], multiple: true
|
|
65
|
+
|
|
66
|
+
form.button text: 'Submit', onClick: ->(action) { action.forms_submit }
|
|
67
|
+
|
|
68
|
+
end
|
|
69
|
+
|
|
70
|
+
end
|
|
@@ -1,105 +1,105 @@
|
|
|
1
|
-
json.title 'Forms'
|
|
2
|
-
|
|
3
|
-
page = json_ui_page json
|
|
4
|
-
render "#{@path_prefix}/nav_menu", json: json, page: page
|
|
5
|
-
|
|
6
|
-
page.form url: json_ui_garage_url(path: 'forms/generic_post'), method: 'post', padding: glib_json_padding_body, childViews: ->(form) do
|
|
7
|
-
form.h1 text: 'Text'
|
|
8
|
-
form.fields_password name: 'user[text1]', width: 'matchParent', label: 'Type "show"'
|
|
9
|
-
form.label text: 'Typed', showIf: {
|
|
10
|
-
"==": [
|
|
11
|
-
{
|
|
12
|
-
"var": 'user[text1]'
|
|
13
|
-
},
|
|
14
|
-
'show'
|
|
15
|
-
]
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
form.spacer height: 20
|
|
19
|
-
form.h1 text: 'Textarea'
|
|
20
|
-
form.fields_textarea name: 'user[textarea1]', width: 'matchParent', label: 'Type "show"'
|
|
21
|
-
form.label text: 'Typed', showIf: {
|
|
22
|
-
"==": [
|
|
23
|
-
{
|
|
24
|
-
"var": 'user[textarea1]'
|
|
25
|
-
},
|
|
26
|
-
'show'
|
|
27
|
-
]
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
form.spacer height: 20
|
|
31
|
-
form.h1 text: 'Check'
|
|
32
|
-
form.fields_check name: 'user[check1]', checkValue: 'on', label: 'Show text'
|
|
33
|
-
form.spacer height: 10
|
|
34
|
-
form.label text: 'Checked', showIf: {
|
|
35
|
-
"==": [
|
|
36
|
-
{
|
|
37
|
-
"var": 'user[check1]'
|
|
38
|
-
},
|
|
39
|
-
'on'
|
|
40
|
-
]
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
form.spacer height: 20
|
|
44
|
-
form.h1 text: 'Radio Group'
|
|
45
|
-
form.fields_radioGroup name: 'user[radio1]', value: 'F', childViews: ->(group) do
|
|
46
|
-
group.fields_radio value: 'show', label: 'Show'
|
|
47
|
-
group.fields_radio value: 'hide', label: 'Hide'
|
|
48
|
-
end
|
|
49
|
-
form.spacer height: 10
|
|
50
|
-
form.label text: 'Chosen', showIf: {
|
|
51
|
-
"==": [
|
|
52
|
-
{
|
|
53
|
-
"var": 'user[radio1]'
|
|
54
|
-
},
|
|
55
|
-
'show'
|
|
56
|
-
]
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
form.spacer height: 20
|
|
60
|
-
form.h1 text: 'Select'
|
|
61
|
-
options = ['show', 'hide']
|
|
62
|
-
form.fields_select name: 'user[select1]', width: 'matchParent', label: 'Select "show"', options: options
|
|
63
|
-
form.label text: 'Selected', showIf: {
|
|
64
|
-
"==": [
|
|
65
|
-
{
|
|
66
|
-
"var": 'user[select1]'
|
|
67
|
-
},
|
|
68
|
-
'show'
|
|
69
|
-
]
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
form.spacer height: 20
|
|
73
|
-
form.h1 text: 'Combined conditions'
|
|
74
|
-
form.label text: 'Select the same option on both the radio and select fields above'
|
|
75
|
-
form.spacer height: 10
|
|
76
|
-
form.h3 text: 'Same!', showIf: {
|
|
77
|
-
"==": [
|
|
78
|
-
{
|
|
79
|
-
"var": 'user[radio1]'
|
|
80
|
-
},
|
|
81
|
-
{
|
|
82
|
-
"var": 'user[select1]'
|
|
83
|
-
},
|
|
84
|
-
]
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
form.spacer height: 20
|
|
88
|
-
form.h1 text: 'Show/hide another field'
|
|
89
|
-
form.label text: ''
|
|
90
|
-
form.spacer height: 10
|
|
91
|
-
form.fields_check name: 'user[check2]', checkValue: 'on', label: 'Show field'
|
|
92
|
-
form.spacer height: 10
|
|
93
|
-
form.fields_text width: 'matchParent', label: 'Comment (optional)', name: 'user[comment]', value: 'This field can be submitted when it is hidden, but it is not necessary (i.e. up to the app)', showIf: {
|
|
94
|
-
"==": [
|
|
95
|
-
{
|
|
96
|
-
"var": 'user[check2]'
|
|
97
|
-
},
|
|
98
|
-
'on'
|
|
99
|
-
]
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
form.spacer height: 20
|
|
103
|
-
form.fields_submit text: 'Submit'
|
|
104
|
-
form.spacer height: 40
|
|
105
|
-
end
|
|
1
|
+
json.title 'Forms'
|
|
2
|
+
|
|
3
|
+
page = json_ui_page json
|
|
4
|
+
render "#{@path_prefix}/nav_menu", json: json, page: page
|
|
5
|
+
|
|
6
|
+
page.form url: json_ui_garage_url(path: 'forms/generic_post'), method: 'post', padding: glib_json_padding_body, childViews: ->(form) do
|
|
7
|
+
form.h1 text: 'Text'
|
|
8
|
+
form.fields_password name: 'user[text1]', width: 'matchParent', label: 'Type "show"'
|
|
9
|
+
form.label text: 'Typed', showIf: {
|
|
10
|
+
"==": [
|
|
11
|
+
{
|
|
12
|
+
"var": 'user[text1]'
|
|
13
|
+
},
|
|
14
|
+
'show'
|
|
15
|
+
]
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
form.spacer height: 20
|
|
19
|
+
form.h1 text: 'Textarea'
|
|
20
|
+
form.fields_textarea name: 'user[textarea1]', width: 'matchParent', label: 'Type "show"'
|
|
21
|
+
form.label text: 'Typed', showIf: {
|
|
22
|
+
"==": [
|
|
23
|
+
{
|
|
24
|
+
"var": 'user[textarea1]'
|
|
25
|
+
},
|
|
26
|
+
'show'
|
|
27
|
+
]
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
form.spacer height: 20
|
|
31
|
+
form.h1 text: 'Check'
|
|
32
|
+
form.fields_check name: 'user[check1]', checkValue: 'on', label: 'Show text'
|
|
33
|
+
form.spacer height: 10
|
|
34
|
+
form.label text: 'Checked', showIf: {
|
|
35
|
+
"==": [
|
|
36
|
+
{
|
|
37
|
+
"var": 'user[check1]'
|
|
38
|
+
},
|
|
39
|
+
'on'
|
|
40
|
+
]
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
form.spacer height: 20
|
|
44
|
+
form.h1 text: 'Radio Group'
|
|
45
|
+
form.fields_radioGroup name: 'user[radio1]', value: 'F', childViews: ->(group) do
|
|
46
|
+
group.fields_radio value: 'show', label: 'Show'
|
|
47
|
+
group.fields_radio value: 'hide', label: 'Hide'
|
|
48
|
+
end
|
|
49
|
+
form.spacer height: 10
|
|
50
|
+
form.label text: 'Chosen', showIf: {
|
|
51
|
+
"==": [
|
|
52
|
+
{
|
|
53
|
+
"var": 'user[radio1]'
|
|
54
|
+
},
|
|
55
|
+
'show'
|
|
56
|
+
]
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
form.spacer height: 20
|
|
60
|
+
form.h1 text: 'Select'
|
|
61
|
+
options = ['show', 'hide']
|
|
62
|
+
form.fields_select name: 'user[select1]', width: 'matchParent', label: 'Select "show"', options: options
|
|
63
|
+
form.label text: 'Selected', showIf: {
|
|
64
|
+
"==": [
|
|
65
|
+
{
|
|
66
|
+
"var": 'user[select1]'
|
|
67
|
+
},
|
|
68
|
+
'show'
|
|
69
|
+
]
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
form.spacer height: 20
|
|
73
|
+
form.h1 text: 'Combined conditions'
|
|
74
|
+
form.label text: 'Select the same option on both the radio and select fields above'
|
|
75
|
+
form.spacer height: 10
|
|
76
|
+
form.h3 text: 'Same!', showIf: {
|
|
77
|
+
"==": [
|
|
78
|
+
{
|
|
79
|
+
"var": 'user[radio1]'
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
"var": 'user[select1]'
|
|
83
|
+
},
|
|
84
|
+
]
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
form.spacer height: 20
|
|
88
|
+
form.h1 text: 'Show/hide another field'
|
|
89
|
+
form.label text: ''
|
|
90
|
+
form.spacer height: 10
|
|
91
|
+
form.fields_check name: 'user[check2]', checkValue: 'on', label: 'Show field'
|
|
92
|
+
form.spacer height: 10
|
|
93
|
+
form.fields_text width: 'matchParent', label: 'Comment (optional)', name: 'user[comment]', value: 'This field can be submitted when it is hidden, but it is not necessary (i.e. up to the app)', showIf: {
|
|
94
|
+
"==": [
|
|
95
|
+
{
|
|
96
|
+
"var": 'user[check2]'
|
|
97
|
+
},
|
|
98
|
+
'on'
|
|
99
|
+
]
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
form.spacer height: 20
|
|
103
|
+
form.fields_submit text: 'Submit'
|
|
104
|
+
form.spacer height: 40
|
|
105
|
+
end
|