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.
Files changed (173) hide show
  1. checksums.yaml +4 -4
  2. data/app/channels/glib/channel/is_typing_channel.rb +28 -28
  3. data/app/controllers/concerns/glib/analytics/funnel.rb +61 -61
  4. data/app/controllers/concerns/glib/auth/policy.rb +148 -148
  5. data/app/controllers/concerns/glib/json/dynamic_text.rb +126 -126
  6. data/app/controllers/concerns/glib/json/libs.rb +144 -144
  7. data/app/controllers/concerns/glib/json/new_dynamic_text.rb +122 -122
  8. data/app/controllers/concerns/glib/json/transformation.rb +11 -11
  9. data/app/controllers/concerns/glib/json/traversal.rb +92 -92
  10. data/app/controllers/concerns/glib/json/ui.rb +88 -88
  11. data/app/controllers/concerns/glib/json/validation.rb +13 -13
  12. data/app/controllers/glib/home_controller.rb +16 -16
  13. data/app/helpers/glib/app_feature_support_helper.rb +16 -16
  14. data/app/helpers/glib/dynamic_images_helper.rb +55 -55
  15. data/app/helpers/glib/dynamic_texts_helper.rb +42 -42
  16. data/app/helpers/glib/enum_helper.rb +8 -8
  17. data/app/helpers/glib/forms_helper.rb +15 -15
  18. data/app/helpers/glib/json_ui/abstract_builder.rb +294 -294
  19. data/app/helpers/glib/json_ui/action_builder.rb +140 -140
  20. data/app/helpers/glib/json_ui/action_builder/dialogs.rb +58 -58
  21. data/app/helpers/glib/json_ui/action_builder/http.rb +39 -39
  22. data/app/helpers/glib/json_ui/action_builder/sheets.rb +15 -15
  23. data/app/helpers/glib/json_ui/action_builder/snackbars.rb +41 -41
  24. data/app/helpers/glib/json_ui/action_builder/windows.rb +26 -26
  25. data/app/helpers/glib/json_ui/analytics_helper.rb +17 -17
  26. data/app/helpers/glib/json_ui/dynamic_field_builders.rb +25 -25
  27. data/app/helpers/glib/json_ui/generic_builders.rb +28 -28
  28. data/app/helpers/glib/json_ui/list_builders.rb +109 -109
  29. data/app/helpers/glib/json_ui/menu_builder.rb +94 -94
  30. data/app/helpers/glib/json_ui/page_helper.rb +221 -221
  31. data/app/helpers/glib/json_ui/response_helper.rb +25 -25
  32. data/app/helpers/glib/json_ui/split_builders.rb +32 -32
  33. data/app/helpers/glib/json_ui/styling_helper.rb +47 -47
  34. data/app/helpers/glib/json_ui/table_builders.rb +74 -74
  35. data/app/helpers/glib/json_ui/view_builder.rb +209 -209
  36. data/app/helpers/glib/json_ui/view_builder/banners.rb +25 -25
  37. data/app/helpers/glib/json_ui/view_builder/charts.rb +33 -33
  38. data/app/helpers/glib/json_ui/view_builder/fields.rb +240 -240
  39. data/app/helpers/glib/json_ui/view_builder/panels.rb +250 -250
  40. data/app/helpers/glib/urls_helper.rb +12 -7
  41. data/app/models/glib/active_storage/attachment.rb +9 -9
  42. data/app/models/glib/active_storage/blob.rb +9 -9
  43. data/app/models/glib/application_record.rb +18 -18
  44. data/app/models/glib/dynamic_text_record.rb +9 -9
  45. data/app/models/glib/text.rb +95 -95
  46. data/app/policies/glib/application_policy.rb +161 -161
  47. data/app/validators/email_typo_validator.rb +38 -38
  48. data/app/validators/email_validator.rb +7 -7
  49. data/app/validators/url_validator.rb +20 -20
  50. data/app/views/json_ui/garage/_nav_menu.json.jbuilder +70 -70
  51. data/app/views/json_ui/garage/actions/_dialogs.json.jbuilder +104 -104
  52. data/app/views/json_ui/garage/actions/_http.json.jbuilder +24 -24
  53. data/app/views/json_ui/garage/actions/_reload.json.jbuilder +17 -17
  54. data/app/views/json_ui/garage/actions/_sheets.json.jbuilder +18 -18
  55. data/app/views/json_ui/garage/actions/_snackbars.json.jbuilder +33 -33
  56. data/app/views/json_ui/garage/actions/_timeouts.json.jbuilder +18 -18
  57. data/app/views/json_ui/garage/actions/_windows.json.jbuilder +24 -24
  58. data/app/views/json_ui/garage/actions/dialogs_oauth_post.json.jbuilder +6 -6
  59. data/app/views/json_ui/garage/actions/index.json.jbuilder +22 -22
  60. data/app/views/json_ui/garage/forms/_alert_post_data.json.jbuilder +6 -6
  61. data/app/views/json_ui/garage/forms/basic.json.jbuilder +21 -21
  62. data/app/views/json_ui/garage/forms/basic_post.json.jbuilder +8 -8
  63. data/app/views/json_ui/garage/forms/checkboxes.json.jbuilder +43 -43
  64. data/app/views/json_ui/garage/forms/conditional_value.json.jbuilder +36 -36
  65. data/app/views/json_ui/garage/forms/dynamic_group.json.jbuilder +39 -39
  66. data/app/views/json_ui/garage/forms/dynamic_select.json.jbuilder +22 -22
  67. data/app/views/json_ui/garage/forms/dynamic_select_data.json.jbuilder +38 -38
  68. data/app/views/json_ui/garage/forms/file_upload.json.jbuilder +32 -32
  69. data/app/views/json_ui/garage/forms/floating_submit.json.jbuilder +19 -19
  70. data/app/views/json_ui/garage/forms/generic_post.json.jbuilder +3 -3
  71. data/app/views/json_ui/garage/forms/get_request.json.jbuilder +27 -27
  72. data/app/views/json_ui/garage/forms/index.json.jbuilder +108 -108
  73. data/app/views/json_ui/garage/forms/new_rich_text.json.jbuilder +39 -39
  74. data/app/views/json_ui/garage/forms/pickers.json.jbuilder +46 -46
  75. data/app/views/json_ui/garage/forms/rich_text.json.jbuilder +40 -40
  76. data/app/views/json_ui/garage/forms/selects.json.jbuilder +70 -70
  77. data/app/views/json_ui/garage/forms/show_hide.json.jbuilder +105 -105
  78. data/app/views/json_ui/garage/forms/styled_boxes.json.jbuilder +36 -36
  79. data/app/views/json_ui/garage/forms/submission_flow.json.jbuilder +17 -17
  80. data/app/views/json_ui/garage/forms/submission_flow_post.json.jbuilder +24 -24
  81. data/app/views/json_ui/garage/forms/submission_indicator.json.jbuilder +63 -63
  82. data/app/views/json_ui/garage/forms/submission_indicator_post.json.jbuilder +25 -25
  83. data/app/views/json_ui/garage/forms/text_validation.json.jbuilder +59 -59
  84. data/app/views/json_ui/garage/home/blank.json.jbuilder +11 -11
  85. data/app/views/json_ui/garage/home/index.json.jbuilder +32 -32
  86. data/app/views/json_ui/garage/home/slow.json.jbuilder +11 -11
  87. data/app/views/json_ui/garage/lists/_autoload_section.json.jbuilder +28 -28
  88. data/app/views/json_ui/garage/lists/autoload_all.json.jbuilder +32 -32
  89. data/app/views/json_ui/garage/lists/autoload_as_needed.json.jbuilder +35 -35
  90. data/app/views/json_ui/garage/lists/chat_ui.json.jbuilder +93 -93
  91. data/app/views/json_ui/garage/lists/edit_actions.json.jbuilder +54 -54
  92. data/app/views/json_ui/garage/lists/fab.json.jbuilder +12 -12
  93. data/app/views/json_ui/garage/lists/index.json.jbuilder +32 -32
  94. data/app/views/json_ui/garage/lists/reordering.json.jbuilder +34 -34
  95. data/app/views/json_ui/garage/lists/templating.json.jbuilder +35 -35
  96. data/app/views/json_ui/garage/notifications/action_cable.json.jbuilder +97 -97
  97. data/app/views/json_ui/garage/notifications/android_post.json.jbuilder +48 -48
  98. data/app/views/json_ui/garage/notifications/index.json.jbuilder +36 -36
  99. data/app/views/json_ui/garage/notifications/web_socket.json.jbuilder +60 -60
  100. data/app/views/json_ui/garage/pages/flat_centered.json.jbuilder +29 -29
  101. data/app/views/json_ui/garage/pages/full_width.json.jbuilder +29 -29
  102. data/app/views/json_ui/garage/pages/full_width_height.json.jbuilder +16 -16
  103. data/app/views/json_ui/garage/pages/index.json.jbuilder +58 -58
  104. data/app/views/json_ui/garage/pages/layout.json.jbuilder +18 -18
  105. data/app/views/json_ui/garage/pages/loading_indicator.json.jbuilder +10 -10
  106. data/app/views/json_ui/garage/pages/nav_buttons.json.jbuilder +21 -21
  107. data/app/views/json_ui/garage/pages/nested_scroll.json.jbuilder +40 -40
  108. data/app/views/json_ui/garage/pages/tab_bar.json.jbuilder +27 -27
  109. data/app/views/json_ui/garage/panels/_styled.json.jbuilder +78 -78
  110. data/app/views/json_ui/garage/panels/card.json.jbuilder +4 -4
  111. data/app/views/json_ui/garage/panels/carousel.json.jbuilder +37 -37
  112. data/app/views/json_ui/garage/panels/custom.json.jbuilder +17 -17
  113. data/app/views/json_ui/garage/panels/flow.json.jbuilder +49 -49
  114. data/app/views/json_ui/garage/panels/horizontal.json.jbuilder +91 -91
  115. data/app/views/json_ui/garage/panels/index.json.jbuilder +132 -132
  116. data/app/views/json_ui/garage/panels/outlined.json.jbuilder +4 -4
  117. data/app/views/json_ui/garage/panels/responsive.json.jbuilder +98 -98
  118. data/app/views/json_ui/garage/panels/split.json.jbuilder +182 -182
  119. data/app/views/json_ui/garage/panels/vertical.json.jbuilder +50 -50
  120. data/app/views/json_ui/garage/services/dynamic_text.json.jbuilder +13 -13
  121. data/app/views/json_ui/garage/services/image.json.jbuilder +47 -47
  122. data/app/views/json_ui/garage/services/index.json.jbuilder +17 -17
  123. data/app/views/json_ui/garage/tables/_autoload_section.json.jbuilder +16 -16
  124. data/app/views/json_ui/garage/tables/autoload_all.json.jbuilder +43 -43
  125. data/app/views/json_ui/garage/tables/autoload_as_needed.json.jbuilder +50 -50
  126. data/app/views/json_ui/garage/tables/export_import.json.jbuilder +29 -29
  127. data/app/views/json_ui/garage/tables/horizontal_scroll.json.jbuilder +26 -26
  128. data/app/views/json_ui/garage/tables/index.json.jbuilder +25 -25
  129. data/app/views/json_ui/garage/tables/layout.json.jbuilder +36 -36
  130. data/app/views/json_ui/garage/views/_chart_data.json.jbuilder +17 -17
  131. data/app/views/json_ui/garage/views/banners.json.jbuilder +63 -63
  132. data/app/views/json_ui/garage/views/calendar_data.json.jbuilder +30 -30
  133. data/app/views/json_ui/garage/views/charts.json.jbuilder +115 -115
  134. data/app/views/json_ui/garage/views/icons.json.jbuilder +1450 -1450
  135. data/app/views/json_ui/garage/views/images.json.jbuilder +89 -89
  136. data/app/views/json_ui/garage/views/index.json.jbuilder +54 -54
  137. data/app/views/json_ui/garage/views/links.json.jbuilder +70 -70
  138. data/app/views/json_ui/garage/views/map_cluster_data.json.jbuilder +41 -41
  139. data/app/views/json_ui/garage/views/map_data.json.jbuilder +51 -51
  140. data/app/views/json_ui/garage/views/maps.json.jbuilder +31 -31
  141. data/app/views/json_ui/garage/views/markdowns.json.jbuilder +41 -41
  142. data/app/views/json_ui/garage/views/misc.json.jbuilder +34 -34
  143. data/app/views/json_ui/garage/views/texts.json.jbuilder +44 -44
  144. data/app/views/layouts/json_ui/renderer.html.erb +35 -35
  145. data/config/routes.rb +7 -7
  146. data/lib/generators/glib/install_generator.rb +24 -24
  147. data/lib/generators/templates/20191017062519_create_texts.rb +12 -12
  148. data/lib/generators/templates/20191024063257_add_scope_to_texts.rb +7 -7
  149. data/lib/generators/templates/20191112095018_add_lang_to_texts.rb +7 -7
  150. data/lib/generators/templates/20191126071051_create_active_storage_tables.active_storage.rb +27 -27
  151. data/lib/generators/templates/database.yml +107 -107
  152. data/lib/generators/templates/dynamic_text.rb +2 -2
  153. data/lib/glib-web.rb +9 -9
  154. data/lib/glib/crypt/utils.rb +26 -26
  155. data/lib/glib/dynamic_text/config.rb +21 -21
  156. data/lib/glib/engine.rb +7 -7
  157. data/lib/glib/json_crawler.rb +11 -11
  158. data/lib/glib/json_crawler/action_crawler.rb +23 -23
  159. data/lib/glib/json_crawler/action_crawlers/action_http.rb +11 -11
  160. data/lib/glib/json_crawler/action_crawlers/forms_submit.rb +48 -48
  161. data/lib/glib/json_crawler/action_crawlers/menu.rb +12 -12
  162. data/lib/glib/json_crawler/action_crawlers/nav_initiate.rb +19 -19
  163. data/lib/glib/json_crawler/action_crawlers/run_multiple.rb +13 -13
  164. data/lib/glib/json_crawler/action_crawlers/windows_open.rb +33 -33
  165. data/lib/glib/json_crawler/coverage.rb +20 -20
  166. data/lib/glib/json_crawler/http.rb +120 -120
  167. data/lib/glib/json_crawler/router.rb +98 -98
  168. data/lib/glib/mailer_tester.rb +36 -36
  169. data/lib/glib/test_helpers.rb +52 -52
  170. data/lib/glib/value.rb +7 -7
  171. data/lib/glib/version.rb +5 -5
  172. data/lib/tasks/db.rake +95 -95
  173. metadata +3 -8
@@ -1,36 +1,36 @@
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: glib_json_padding_body, childViews: ->(form) do
7
- form.fields_text name: 'user[name]', width: 'matchParent', label: 'Search', placeholder: 'Enter a keyword', styleClasses: ['outlined', 'rounded']
8
-
9
- form.spacer height: 14
10
- form.fields_password name: 'user[password]', width: 'matchParent', label: 'Password', placeholder: 'Type your password', styleClass: 'outlined'
11
-
12
- form.spacer height: 14
13
- form.fields_textarea name: 'user[bio]', width: 'matchParent', label: 'Bio', placeholder: 'Enter your bio', styleClasses: ['outlined']
14
-
15
- # form.spacer height: 14
16
- # form.fields_stripeToken name: 'user[stripe_token_outlined]', width: 'matchParent', publicKey: 'pk_test_TYooMQauvdEDq54NiTphI7jx', styleClass: 'outlined'
17
-
18
- # form.spacer height: 14
19
- # form.fields_stripeToken name: 'user[stripe_token_individual]', width: 'matchParent', publicKey: 'pk_test_TYooMQauvdEDq54NiTphI7jx', styleClass: 'individual'
20
-
21
- form.spacer height: 14
22
- form.fields_creditCard name: 'user[stripe_token_outlined]', width: 'matchParent', publicKey: 'pk_test_TYooMQauvdEDq54NiTphI7jx', styleClass: 'outlined'
23
-
24
- form.spacer height: 14
25
- form.fields_creditCard name: 'user[stripe_token_individual]', width: 'matchParent', publicKey: 'pk_test_TYooMQauvdEDq54NiTphI7jx', styleClass: 'individual'
26
-
27
- form.spacer height: 14
28
- form.panels_split width: 'matchParent', content: ->(split) do
29
- split.right childViews: ->(right) do
30
- right.fields_submit text: 'Submit'
31
- end
32
- end
33
-
34
- end
35
-
36
- 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: glib_json_padding_body, childViews: ->(form) do
7
+ form.fields_text name: 'user[name]', width: 'matchParent', label: 'Search', placeholder: 'Enter a keyword', styleClasses: ['outlined', 'rounded']
8
+
9
+ form.spacer height: 14
10
+ form.fields_password name: 'user[password]', width: 'matchParent', label: 'Password', placeholder: 'Type your password', styleClass: 'outlined'
11
+
12
+ form.spacer height: 14
13
+ form.fields_textarea name: 'user[bio]', width: 'matchParent', label: 'Bio', placeholder: 'Enter your bio', styleClasses: ['outlined']
14
+
15
+ # form.spacer height: 14
16
+ # form.fields_stripeToken name: 'user[stripe_token_outlined]', width: 'matchParent', publicKey: 'pk_test_TYooMQauvdEDq54NiTphI7jx', styleClass: 'outlined'
17
+
18
+ # form.spacer height: 14
19
+ # form.fields_stripeToken name: 'user[stripe_token_individual]', width: 'matchParent', publicKey: 'pk_test_TYooMQauvdEDq54NiTphI7jx', styleClass: 'individual'
20
+
21
+ form.spacer height: 14
22
+ form.fields_creditCard name: 'user[stripe_token_outlined]', width: 'matchParent', publicKey: 'pk_test_TYooMQauvdEDq54NiTphI7jx', styleClass: 'outlined'
23
+
24
+ form.spacer height: 14
25
+ form.fields_creditCard name: 'user[stripe_token_individual]', width: 'matchParent', publicKey: 'pk_test_TYooMQauvdEDq54NiTphI7jx', styleClass: 'individual'
26
+
27
+ form.spacer height: 14
28
+ form.panels_split width: 'matchParent', content: ->(split) do
29
+ split.right childViews: ->(right) do
30
+ right.fields_submit text: 'Submit'
31
+ end
32
+ end
33
+
34
+ end
35
+
36
+ end
@@ -1,17 +1,17 @@
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/submission_flow_post'), method: 'post', padding: { top: 12, left: 20, right: 20, bottom: 12 }, childViews: ->(form) do
7
- form.fields_radioGroup name: 'user[flow]', childViews: ->(group) do
8
- group.h3 text: 'Flow'
9
- group.spacer height: 6
10
- group.fields_radio value: 'close_reload', label: 'close+reload - useful for form submission in mobile apps'
11
- group.fields_radio value: 'open', label: 'open - useful for form submission in web app'
12
- group.fields_radio value: 'close_alert', label: 'close+alert - useful for non-model form (e.g. contact us) in both mobile/web'
13
- group.fields_radio value: 'alert_close', label: 'alert+close - useful for non-model form (e.g. contact us) in both mobile/web'
14
- end
15
- form.button text: 'Submit', onClick: ->(action) { action.forms_submit }
16
- end
17
- 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/submission_flow_post'), method: 'post', padding: { top: 12, left: 20, right: 20, bottom: 12 }, childViews: ->(form) do
7
+ form.fields_radioGroup name: 'user[flow]', childViews: ->(group) do
8
+ group.h3 text: 'Flow'
9
+ group.spacer height: 6
10
+ group.fields_radio value: 'close_reload', label: 'close+reload - useful for form submission in mobile apps'
11
+ group.fields_radio value: 'open', label: 'open - useful for form submission in web app'
12
+ group.fields_radio value: 'close_alert', label: 'close+alert - useful for non-model form (e.g. contact us) in both mobile/web'
13
+ group.fields_radio value: 'alert_close', label: 'alert+close - useful for non-model form (e.g. contact us) in both mobile/web'
14
+ end
15
+ form.button text: 'Submit', onClick: ->(action) { action.forms_submit }
16
+ end
17
+ end
@@ -1,24 +1,24 @@
1
-
2
- flow = params.require(:user)[:flow] if params[:user]
3
- json_ui_response json do |action|
4
- if !flow.present?
5
- action.dialogs_alert message: 'Please enter all required information'
6
- else
7
- case flow
8
- when 'close_reload'
9
- action.windows_close onClose: ->(action) do
10
- action.windows_reload
11
- end
12
- when 'close_alert'
13
- action.windows_close onClose: ->(action) do
14
- action.dialogs_alert message: 'Thanks for the submission!'
15
- end
16
- when 'alert_close'
17
- action.dialogs_alert message: 'Thanks for the submission!', onClose: ->(action) do
18
- action.windows_close
19
- end
20
- when 'open'
21
- action.windows_open url: json_ui_garage_url(path: 'forms/index')
22
- end
23
- end
24
- end
1
+
2
+ flow = params.require(:user)[:flow] if params[:user]
3
+ json_ui_response json do |action|
4
+ if !flow.present?
5
+ action.dialogs_alert message: 'Please enter all required information'
6
+ else
7
+ case flow
8
+ when 'close_reload'
9
+ action.windows_close onClose: ->(action) do
10
+ action.windows_reload
11
+ end
12
+ when 'close_alert'
13
+ action.windows_close onClose: ->(action) do
14
+ action.dialogs_alert message: 'Thanks for the submission!'
15
+ end
16
+ when 'alert_close'
17
+ action.dialogs_alert message: 'Thanks for the submission!', onClose: ->(action) do
18
+ action.windows_close
19
+ end
20
+ when 'open'
21
+ action.windows_open url: json_ui_garage_url(path: 'forms/index')
22
+ end
23
+ end
24
+ end
@@ -1,63 +1,63 @@
1
- json.title 'Forms'
2
-
3
- page = json_ui_page json
4
- render "#{@path_prefix}/nav_menu", json: json, page: page
5
-
6
- page.scroll padding: glib_json_padding_body, childViews: ->(scroll) do
7
- scroll.panels_form width: 'matchParent', styleClasses: ['card', 'outlined'], padding: glib_json_padding_body, url: json_ui_garage_url(path: 'forms/submission_indicator_post'), method: 'post', childViews: ->(form) do
8
- form.label text: 'These buttons get disabled on submit'
9
- form.spacer height: 14
10
- form.button text: 'Normal Button', onClick: ->(action) { action.forms_submit }
11
- form.spacer height: 14
12
- form.fields_submit text: 'Submit Button'
13
-
14
- form.fab icon: 'send', onClick: ->(action) { action.forms_submit }
15
- end
16
-
17
- scroll.spacer height: 14
18
-
19
- scroll.panels_form width: 'matchParent', styleClasses: ['card', 'outlined'], padding: glib_json_padding_body, url: json_ui_garage_url(path: 'forms/submission_indicator_post', mode: 'slow_open'), method: 'post', childViews: ->(form) do
20
- form.fields_submit text: 'Submit button with slow window/open'
21
- end
22
-
23
- scroll.spacer height: 14
24
-
25
- scroll.panels_form width: 'matchParent', styleClasses: ['card', 'outlined'], padding: glib_json_padding_body, url: json_ui_garage_url(path: 'forms/submission_indicator_post', mode: 'slow_openWeb'), method: 'post', childViews: ->(form) do
26
- form.fields_submit text: 'Submit button with slow window/openWeb'
27
- end
28
-
29
- scroll.spacer height: 14
30
-
31
- scroll.panels_form width: 'matchParent', styleClasses: ['card', 'outlined'], padding: glib_json_padding_body, url: json_ui_garage_url(path: 'forms/submission_indicator_post', mode: 'timeout_once'), method: 'post', childViews: ->(form) do
32
- form.fields_submit text: 'Submit Button with timeouts/set once'
33
- end
34
-
35
- scroll.spacer height: 14
36
-
37
- scroll.panels_form width: 'matchParent', styleClasses: ['card', 'outlined'], padding: glib_json_padding_body, url: json_ui_garage_url(path: 'forms/submission_indicator_post', mode: 'timeout_chain', count: 0), method: 'post', childViews: ->(form) do
38
- form.fields_submit text: 'Submit Button with timeouts/set chain'
39
- end
40
-
41
- # This needs to be long enough that the FAB is roughly at the bottom of a mobile screen.
42
- # Ideally the spacer can expand dynamically depending on available space.
43
- scroll.spacer height: 400
44
-
45
- end
46
-
47
- # page.form url: json_ui_garage_url(path: 'forms/submission_indicator_post'), method: 'post', padding: { top: 12, left: 20, right: 20, bottom: 12 }, childViews: ->(form) do
48
- # form.label text: 'These buttons get disabled on submit'
49
- # form.spacer height: 10
50
- # form.button text: 'Normal Button', onClick: ->(action) { action.forms_submit }
51
- # form.spacer height: 10
52
- # form.fields_submit text: 'Submit Button'
53
-
54
- # # This needs to be long enough that the FAB is roughly at the bottom of a mobile screen.
55
- # # Ideally the spacer can expand dynamically depending on available space.
56
- # form.spacer height: 400
57
-
58
- # form.fab icon: 'send', onClick: ->(action) { action.forms_submit }
59
- # end
60
-
61
- # page.form url: json_ui_garage_url(path: 'forms/submission_indicator_post', timeout: true), method: 'post', padding: { top: 12, left: 20, right: 20, bottom: 12 }, childViews: ->(form) do
62
- # form.fields_submit text: 'Submit Button with Timeout'
63
- # 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.scroll padding: glib_json_padding_body, childViews: ->(scroll) do
7
+ scroll.panels_form width: 'matchParent', styleClasses: ['card', 'outlined'], padding: glib_json_padding_body, url: json_ui_garage_url(path: 'forms/submission_indicator_post'), method: 'post', childViews: ->(form) do
8
+ form.label text: 'These buttons get disabled on submit'
9
+ form.spacer height: 14
10
+ form.button text: 'Normal Button', onClick: ->(action) { action.forms_submit }
11
+ form.spacer height: 14
12
+ form.fields_submit text: 'Submit Button'
13
+
14
+ form.fab icon: 'send', onClick: ->(action) { action.forms_submit }
15
+ end
16
+
17
+ scroll.spacer height: 14
18
+
19
+ scroll.panels_form width: 'matchParent', styleClasses: ['card', 'outlined'], padding: glib_json_padding_body, url: json_ui_garage_url(path: 'forms/submission_indicator_post', mode: 'slow_open'), method: 'post', childViews: ->(form) do
20
+ form.fields_submit text: 'Submit button with slow window/open'
21
+ end
22
+
23
+ scroll.spacer height: 14
24
+
25
+ scroll.panels_form width: 'matchParent', styleClasses: ['card', 'outlined'], padding: glib_json_padding_body, url: json_ui_garage_url(path: 'forms/submission_indicator_post', mode: 'slow_openWeb'), method: 'post', childViews: ->(form) do
26
+ form.fields_submit text: 'Submit button with slow window/openWeb'
27
+ end
28
+
29
+ scroll.spacer height: 14
30
+
31
+ scroll.panels_form width: 'matchParent', styleClasses: ['card', 'outlined'], padding: glib_json_padding_body, url: json_ui_garage_url(path: 'forms/submission_indicator_post', mode: 'timeout_once'), method: 'post', childViews: ->(form) do
32
+ form.fields_submit text: 'Submit Button with timeouts/set once'
33
+ end
34
+
35
+ scroll.spacer height: 14
36
+
37
+ scroll.panels_form width: 'matchParent', styleClasses: ['card', 'outlined'], padding: glib_json_padding_body, url: json_ui_garage_url(path: 'forms/submission_indicator_post', mode: 'timeout_chain', count: 0), method: 'post', childViews: ->(form) do
38
+ form.fields_submit text: 'Submit Button with timeouts/set chain'
39
+ end
40
+
41
+ # This needs to be long enough that the FAB is roughly at the bottom of a mobile screen.
42
+ # Ideally the spacer can expand dynamically depending on available space.
43
+ scroll.spacer height: 400
44
+
45
+ end
46
+
47
+ # page.form url: json_ui_garage_url(path: 'forms/submission_indicator_post'), method: 'post', padding: { top: 12, left: 20, right: 20, bottom: 12 }, childViews: ->(form) do
48
+ # form.label text: 'These buttons get disabled on submit'
49
+ # form.spacer height: 10
50
+ # form.button text: 'Normal Button', onClick: ->(action) { action.forms_submit }
51
+ # form.spacer height: 10
52
+ # form.fields_submit text: 'Submit Button'
53
+
54
+ # # This needs to be long enough that the FAB is roughly at the bottom of a mobile screen.
55
+ # # Ideally the spacer can expand dynamically depending on available space.
56
+ # form.spacer height: 400
57
+
58
+ # form.fab icon: 'send', onClick: ->(action) { action.forms_submit }
59
+ # end
60
+
61
+ # page.form url: json_ui_garage_url(path: 'forms/submission_indicator_post', timeout: true), method: 'post', padding: { top: 12, left: 20, right: 20, bottom: 12 }, childViews: ->(form) do
62
+ # form.fields_submit text: 'Submit Button with Timeout'
63
+ # end
@@ -1,25 +1,25 @@
1
- sleep 0.5
2
-
3
- json_ui_response json do |action|
4
- case params[:mode]
5
- when 'timeout_once'
6
- action.timeouts_set interval: 2000, onTimeout: ->(subaction) do
7
- subaction.dialogs_alert message: 'Success!'
8
- end
9
- when 'timeout_chain'
10
- count = params[:count].to_i
11
- if count > 3
12
- action.dialogs_alert message: 'Success!'
13
- else
14
- action.timeouts_set interval: 500, onTimeout: ->(subaction) do
15
- subaction.http_post url: json_ui_garage_url(path: 'forms/submission_indicator_post', mode: 'timeout_chain', count: count + 1)
16
- end
17
- end
18
- when 'slow_open'
19
- action.windows_open url: json_ui_garage_url(path: 'home/slow')
20
- when 'slow_openWeb'
21
- action.windows_openWeb url: 'https://www.google.com'
22
- else
23
- action.dialogs_alert message: 'Success!'
24
- end
25
- end
1
+ sleep 0.5
2
+
3
+ json_ui_response json do |action|
4
+ case params[:mode]
5
+ when 'timeout_once'
6
+ action.timeouts_set interval: 2000, onTimeout: ->(subaction) do
7
+ subaction.dialogs_alert message: 'Success!'
8
+ end
9
+ when 'timeout_chain'
10
+ count = params[:count].to_i
11
+ if count > 3
12
+ action.dialogs_alert message: 'Success!'
13
+ else
14
+ action.timeouts_set interval: 500, onTimeout: ->(subaction) do
15
+ subaction.http_post url: json_ui_garage_url(path: 'forms/submission_indicator_post', mode: 'timeout_chain', count: count + 1)
16
+ end
17
+ end
18
+ when 'slow_open'
19
+ action.windows_open url: json_ui_garage_url(path: 'home/slow')
20
+ when 'slow_openWeb'
21
+ action.windows_openWeb url: 'https://www.google.com'
22
+ else
23
+ action.dialogs_alert message: 'Success!'
24
+ end
25
+ end
@@ -1,59 +1,59 @@
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 \
7
- url: json_ui_garage_url(path: 'forms/generic_post'),
8
- method: 'post',
9
- padding: glib_json_padding_body,
10
- childViews: ->(form) do
11
- form.fields_email \
12
- name: 'user[email]',
13
- width: 'matchParent',
14
- label: 'Email'
15
-
16
- form.fields_url \
17
- name: 'user[url]',
18
- width: 'matchParent',
19
- label: 'URL'
20
-
21
- form.fields_number \
22
- name: 'user[number]',
23
- width: 'matchParent',
24
- label: 'Number',
25
- validation: { required: { message: 'Required' } },
26
- leftText: 'USD',
27
- rightText: '.00'
28
-
29
- form.fields_password \
30
- name: 'user[password]',
31
- width: 'matchParent',
32
- label: 'Password',
33
- hint: 'Should contain at least 6 characters',
34
- leftIcon: 'lock'
35
-
36
- form.fields_textarea \
37
- name: 'user[textarea]',
38
- width: 'matchParent',
39
- label: 'Textarea with maxLength',
40
- maxLength: 50,
41
- validation: { required: { message: 'Required' } }
42
-
43
- options = ['male', 'female'].map { |i| { text: i.humanize, value: i } }
44
- form.fields_select \
45
- name: 'user[gender]',
46
- width: 'matchParent',
47
- label: 'Gender',
48
- validation: { required: { message: 'Required' } },
49
- options: options
50
-
51
- form.spacer height: 20
52
- form.fields_stripeToken \
53
- name: 'user[stripe_token]',
54
- width: 'matchParent',
55
- publicKey: 'pk_test_TYooMQauvdEDq54NiTphI7jx'
56
-
57
- form.spacer height: 30
58
- form.fields_submit text: 'Submit'
59
- 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 \
7
+ url: json_ui_garage_url(path: 'forms/generic_post'),
8
+ method: 'post',
9
+ padding: glib_json_padding_body,
10
+ childViews: ->(form) do
11
+ form.fields_email \
12
+ name: 'user[email]',
13
+ width: 'matchParent',
14
+ label: 'Email'
15
+
16
+ form.fields_url \
17
+ name: 'user[url]',
18
+ width: 'matchParent',
19
+ label: 'URL'
20
+
21
+ form.fields_number \
22
+ name: 'user[number]',
23
+ width: 'matchParent',
24
+ label: 'Number',
25
+ validation: { required: { message: 'Required' } },
26
+ leftText: 'USD',
27
+ rightText: '.00'
28
+
29
+ form.fields_password \
30
+ name: 'user[password]',
31
+ width: 'matchParent',
32
+ label: 'Password',
33
+ hint: 'Should contain at least 6 characters',
34
+ leftIcon: 'lock'
35
+
36
+ form.fields_textarea \
37
+ name: 'user[textarea]',
38
+ width: 'matchParent',
39
+ label: 'Textarea with maxLength',
40
+ maxLength: 50,
41
+ validation: { required: { message: 'Required' } }
42
+
43
+ options = ['male', 'female'].map { |i| { text: i.humanize, value: i } }
44
+ form.fields_select \
45
+ name: 'user[gender]',
46
+ width: 'matchParent',
47
+ label: 'Gender',
48
+ validation: { required: { message: 'Required' } },
49
+ options: options
50
+
51
+ form.spacer height: 20
52
+ form.fields_stripeToken \
53
+ name: 'user[stripe_token]',
54
+ width: 'matchParent',
55
+ publicKey: 'pk_test_TYooMQauvdEDq54NiTphI7jx'
56
+
57
+ form.spacer height: 30
58
+ form.fields_submit text: 'Submit'
59
+ end