glib-web 0.5.47 → 0.5.53

Sign up to get free protection for your applications and to get access to all the features.
Files changed (147) hide show
  1. checksums.yaml +4 -4
  2. data/app/channels/glib/channel/is_typing_channel.rb +28 -0
  3. data/app/controllers/concerns/glib/analytics/funnel.rb +0 -0
  4. data/app/controllers/concerns/glib/auth/policy.rb +0 -0
  5. data/app/controllers/concerns/glib/json/new_dynamic_text.rb +0 -0
  6. data/app/controllers/concerns/glib/json/traversal.rb +5 -0
  7. data/app/helpers/glib/app_feature_support_helper.rb +0 -0
  8. data/app/helpers/glib/dynamic_images_helper.rb +0 -0
  9. data/app/helpers/glib/dynamic_texts_helper.rb +0 -0
  10. data/app/helpers/glib/enum_helper.rb +0 -0
  11. data/app/helpers/glib/forms_helper.rb +0 -0
  12. data/app/helpers/glib/json_ui/action_builder.rb +9 -0
  13. data/app/helpers/glib/json_ui/action_builder/dialogs.rb +0 -0
  14. data/app/helpers/glib/json_ui/action_builder/http.rb +0 -0
  15. data/app/helpers/glib/json_ui/action_builder/sheets.rb +0 -0
  16. data/app/helpers/glib/json_ui/action_builder/snackbars.rb +0 -0
  17. data/app/helpers/glib/json_ui/action_builder/windows.rb +0 -0
  18. data/app/helpers/glib/json_ui/analytics_helper.rb +0 -0
  19. data/app/helpers/glib/json_ui/generic_builders.rb +0 -0
  20. data/app/helpers/glib/json_ui/list_builders.rb +6 -1
  21. data/app/helpers/glib/json_ui/menu_builder.rb +0 -0
  22. data/app/helpers/glib/json_ui/page_helper.rb +11 -3
  23. data/app/helpers/glib/json_ui/split_builders.rb +0 -0
  24. data/app/helpers/glib/json_ui/styling_helper.rb +0 -0
  25. data/app/helpers/glib/json_ui/table_builders.rb +0 -0
  26. data/app/helpers/glib/json_ui/view_builder.rb +1 -0
  27. data/app/helpers/glib/json_ui/view_builder/banners.rb +1 -0
  28. data/app/helpers/glib/json_ui/view_builder/fields.rb +2 -0
  29. data/app/helpers/glib/urls_helper.rb +5 -0
  30. data/app/models/glib/active_storage/attachment.rb +0 -0
  31. data/app/models/glib/active_storage/blob.rb +0 -0
  32. data/app/models/glib/application_record.rb +0 -0
  33. data/app/models/glib/dynamic_text_record.rb +0 -0
  34. data/app/models/glib/text.rb +0 -0
  35. data/app/policies/glib/application_policy.rb +0 -0
  36. data/app/validators/email_typo_validator.rb +0 -0
  37. data/app/validators/email_validator.rb +0 -0
  38. data/app/validators/url_validator.rb +0 -0
  39. data/app/views/json_ui/garage/_nav_menu.json.jbuilder +0 -0
  40. data/app/views/json_ui/garage/actions/_dialogs.json.jbuilder +0 -0
  41. data/app/views/json_ui/garage/actions/_http.json.jbuilder +0 -0
  42. data/app/views/json_ui/garage/actions/_reload.json.jbuilder +0 -0
  43. data/app/views/json_ui/garage/actions/_sheets.json.jbuilder +0 -0
  44. data/app/views/json_ui/garage/actions/_snackbars.json.jbuilder +0 -0
  45. data/app/views/json_ui/garage/actions/_timeouts.json.jbuilder +0 -0
  46. data/app/views/json_ui/garage/actions/_windows.json.jbuilder +0 -0
  47. data/app/views/json_ui/garage/actions/dialogs_oauth_post.json.jbuilder +0 -0
  48. data/app/views/json_ui/garage/forms/basic.json.jbuilder +0 -0
  49. data/app/views/json_ui/garage/forms/basic_post.json.jbuilder +0 -0
  50. data/app/views/json_ui/garage/forms/checkboxes.json.jbuilder +0 -0
  51. data/app/views/json_ui/garage/forms/dynamic_group.json.jbuilder +0 -0
  52. data/app/views/json_ui/garage/forms/dynamic_select.json.jbuilder +0 -0
  53. data/app/views/json_ui/garage/forms/dynamic_select_data.json.jbuilder +0 -0
  54. data/app/views/json_ui/garage/forms/file_upload.json.jbuilder +0 -0
  55. data/app/views/json_ui/garage/forms/floating_submit.json.jbuilder +0 -0
  56. data/app/views/json_ui/garage/forms/generic_post.json.jbuilder +0 -0
  57. data/app/views/json_ui/garage/forms/get_request.json.jbuilder +20 -21
  58. data/app/views/json_ui/garage/forms/index.json.jbuilder +83 -85
  59. data/app/views/json_ui/garage/forms/new_rich_text.json.jbuilder +28 -29
  60. data/app/views/json_ui/garage/forms/pickers.json.jbuilder +41 -43
  61. data/app/views/json_ui/garage/forms/rich_text.json.jbuilder +0 -0
  62. data/app/views/json_ui/garage/forms/submission_flow.json.jbuilder +1 -1
  63. data/app/views/json_ui/garage/forms/submission_flow_post.json.jbuilder +0 -0
  64. data/app/views/json_ui/garage/forms/submission_indicator.json.jbuilder +0 -0
  65. data/app/views/json_ui/garage/forms/submission_indicator_post.json.jbuilder +0 -0
  66. data/app/views/json_ui/garage/forms/text_validation.json.jbuilder +0 -0
  67. data/app/views/json_ui/garage/home/blank.json.jbuilder +0 -0
  68. data/app/views/json_ui/garage/home/slow.json.jbuilder +0 -0
  69. data/app/views/json_ui/garage/lists/autoload_all.json.jbuilder +0 -0
  70. data/app/views/json_ui/garage/lists/autoload_as_needed.json.jbuilder +0 -0
  71. data/app/views/json_ui/garage/lists/chat_ui.json.jbuilder +0 -0
  72. data/app/views/json_ui/garage/lists/fab.json.jbuilder +0 -0
  73. data/app/views/json_ui/garage/lists/reordering.json.jbuilder +13 -3
  74. data/app/views/json_ui/garage/lists/templating.json.jbuilder +0 -0
  75. data/app/views/json_ui/garage/notifications/action_cable.json.jbuilder +97 -0
  76. data/app/views/json_ui/garage/notifications/index.json.jbuilder +5 -1
  77. data/app/views/json_ui/garage/notifications/web_socket.json.jbuilder +0 -0
  78. data/app/views/json_ui/garage/pages/flat_centered.json.jbuilder +0 -0
  79. data/app/views/json_ui/garage/pages/full_width.json.jbuilder +0 -0
  80. data/app/views/json_ui/garage/pages/full_width_height.json.jbuilder +0 -0
  81. data/app/views/json_ui/garage/pages/index.json.jbuilder +0 -0
  82. data/app/views/json_ui/garage/pages/layout.json.jbuilder +0 -0
  83. data/app/views/json_ui/garage/pages/loading_indicator.json.jbuilder +0 -0
  84. data/app/views/json_ui/garage/pages/nav_buttons.json.jbuilder +0 -0
  85. data/app/views/json_ui/garage/pages/nested_scroll.json.jbuilder +0 -0
  86. data/app/views/json_ui/garage/pages/tab_bar.json.jbuilder +0 -0
  87. data/app/views/json_ui/garage/panels/_styled.json.jbuilder +0 -0
  88. data/app/views/json_ui/garage/panels/card.json.jbuilder +0 -0
  89. data/app/views/json_ui/garage/panels/carousel.json.jbuilder +0 -0
  90. data/app/views/json_ui/garage/panels/custom.json.jbuilder +0 -0
  91. data/app/views/json_ui/garage/panels/flow.json.jbuilder +0 -0
  92. data/app/views/json_ui/garage/panels/horizontal.json.jbuilder +0 -0
  93. data/app/views/json_ui/garage/panels/index.json.jbuilder +0 -0
  94. data/app/views/json_ui/garage/panels/outlined.json.jbuilder +0 -0
  95. data/app/views/json_ui/garage/panels/responsive.json.jbuilder +0 -0
  96. data/app/views/json_ui/garage/panels/split.json.jbuilder +0 -0
  97. data/app/views/json_ui/garage/panels/vertical.json.jbuilder +0 -0
  98. data/app/views/json_ui/garage/services/dynamic_text.json.jbuilder +0 -0
  99. data/app/views/json_ui/garage/services/image.json.jbuilder +0 -0
  100. data/app/views/json_ui/garage/services/index.json.jbuilder +0 -0
  101. data/app/views/json_ui/garage/tables/_autoload_section.json.jbuilder +0 -0
  102. data/app/views/json_ui/garage/tables/autoload_all.json.jbuilder +0 -0
  103. data/app/views/json_ui/garage/tables/autoload_as_needed.json.jbuilder +0 -0
  104. data/app/views/json_ui/garage/tables/export_import.json.jbuilder +0 -0
  105. data/app/views/json_ui/garage/tables/horizontal_scroll.json.jbuilder +0 -0
  106. data/app/views/json_ui/garage/tables/index.json.jbuilder +0 -0
  107. data/app/views/json_ui/garage/tables/layout.json.jbuilder +0 -0
  108. data/app/views/json_ui/garage/views/banners.json.jbuilder +0 -0
  109. data/app/views/json_ui/garage/views/calendar_data.json.jbuilder +0 -0
  110. data/app/views/json_ui/garage/views/charts.json.jbuilder +0 -0
  111. data/app/views/json_ui/garage/views/icons.json.jbuilder +0 -0
  112. data/app/views/json_ui/garage/views/images.json.jbuilder +0 -0
  113. data/app/views/json_ui/garage/views/index.json.jbuilder +0 -0
  114. data/app/views/json_ui/garage/views/links.json.jbuilder +0 -0
  115. data/app/views/json_ui/garage/views/map_cluster_data.json.jbuilder +0 -0
  116. data/app/views/json_ui/garage/views/map_data.json.jbuilder +0 -0
  117. data/app/views/json_ui/garage/views/misc.json.jbuilder +0 -0
  118. data/app/views/json_ui/garage/views/texts.json.jbuilder +0 -0
  119. data/config/routes.rb +0 -0
  120. data/lib/generators/glib/install_generator.rb +0 -0
  121. data/lib/generators/templates/20191017062519_create_texts.rb +0 -0
  122. data/lib/generators/templates/20191024063257_add_scope_to_texts.rb +0 -0
  123. data/lib/generators/templates/20191112095018_add_lang_to_texts.rb +0 -0
  124. data/lib/generators/templates/20191126071051_create_active_storage_tables.active_storage.rb +0 -0
  125. data/lib/generators/templates/database.yml +0 -0
  126. data/lib/generators/templates/dynamic_text.rb +0 -0
  127. data/lib/glib-web.rb +0 -0
  128. data/lib/glib/crypt.rb +0 -0
  129. data/lib/glib/crypt/utils.rb +0 -0
  130. data/lib/glib/dynamic_text.rb +0 -0
  131. data/lib/glib/dynamic_text/config.rb +0 -0
  132. data/lib/glib/engine.rb +0 -0
  133. data/lib/glib/json_crawler.rb +0 -0
  134. data/lib/glib/json_crawler/action_crawler.rb +0 -0
  135. data/lib/glib/json_crawler/action_crawlers/action_http.rb +0 -0
  136. data/lib/glib/json_crawler/action_crawlers/forms_submit.rb +0 -0
  137. data/lib/glib/json_crawler/action_crawlers/menu.rb +0 -0
  138. data/lib/glib/json_crawler/action_crawlers/nav_initiate.rb +0 -0
  139. data/lib/glib/json_crawler/action_crawlers/run_multiple.rb +0 -0
  140. data/lib/glib/json_crawler/action_crawlers/windows_open.rb +0 -0
  141. data/lib/glib/json_crawler/coverage.rb +0 -0
  142. data/lib/glib/json_crawler/http.rb +0 -0
  143. data/lib/glib/mailer_tester.rb +0 -0
  144. data/lib/glib/value.rb +0 -0
  145. data/lib/glib/version.rb +0 -0
  146. data/lib/tasks/db.rake +0 -0
  147. metadata +19 -8
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 447bcfaf2d83ed28b408d031d3e432be855228e928ea6d8a360c799ae8165d03
4
- data.tar.gz: 369e66c38dcae535bfff9b077ea64763bf42705ad3f72d264c27070a263d5662
3
+ metadata.gz: 65a2bc305ef53f9a39b851abfa09c8e760b174c74c2a8fcf41a7d04c527ef0ee
4
+ data.tar.gz: 5a75ed552c05fcf47468e8d91e630dd4567d5f5028656324ef36d5d0818bd8e3
5
5
  SHA512:
6
- metadata.gz: a023dc6ebb3d9e34a9d584a1a965d132042b8dad6c849305650ee9671a48ffe05686a686f7227cf3338d40168cdfb336ac3f41e2c264f09e71f9e2c8238e8b54
7
- data.tar.gz: 92a215ad853da45033527e2ff824ca16a92ae3a737fb0217516101f5d226b1bbc0aab4fd1e443f85375fa52eafc38c6027d7cea24b8ee5e84faa013ce568f710
6
+ metadata.gz: 9ac891b106a5e45b949d523464c82152f24166bc61e274a0377108cee8a3784e97cda6b2627340d1c1fa7cb0187870a3526fd60e6e5d3da01443e24e50b60313
7
+ data.tar.gz: 4e15c49028568df461f16c3de40b7c22bbfdc5e6ff2cfdd938f55e1e6263041a52f95620eef38126d7531c3ba3b10e31a1d7d2c7cb46a75d94be589d724fe9b2
@@ -0,0 +1,28 @@
1
+ module Glib
2
+ module Channel
3
+ class IsTypingChannel < ApplicationCable::Channel
4
+ class << self
5
+ attr_accessor :channel_name
6
+ end
7
+
8
+ def channel_name
9
+ self.class.channel_name
10
+ end
11
+
12
+ def subscribed
13
+ stream_from "#{self.class.channel_name}_#{params['conversation_id']}"
14
+ end
15
+
16
+ def typing(data)
17
+ ActionCable.server.broadcast \
18
+ "#{self.class.channel_name}_#{params['conversation_id']}",
19
+ action: {
20
+ action: 'component/set',
21
+ name: User.find(data['user_id']).full_name,
22
+ status: data['status'],
23
+ user_id: data['user_id']
24
+ }
25
+ end
26
+ end
27
+ end
28
+ end
File without changes
File without changes
@@ -73,6 +73,11 @@ module Glib::Json::Traversal
73
73
  traverse_vertical_content view['center'], block
74
74
  traverse_vertical_content view['right'], block
75
75
 
76
+ # List template
77
+ traverse_multiple view['editButtons'], block
78
+ traverse_multiple view['leftButtons'], block
79
+ traverse_multiple view['rightButtons'], block
80
+
76
81
  # TODO: crawl header and footer
77
82
  # Table/List
78
83
  if (sections = view['sections']).is_a? Array
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -95,10 +95,19 @@ module Glib
95
95
  end
96
96
  end
97
97
 
98
+ module Cables
99
+ class Push < Action
100
+ string :channel
101
+ string :event
102
+ hash :payload
103
+ end
104
+ end
105
+
98
106
  module Timeouts
99
107
  class Set < Action
100
108
  int :interval # Milliseconds
101
109
  action :onTimeout
110
+ bool :repeat
102
111
  end
103
112
 
104
113
  # FUTURE
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -11,6 +11,7 @@ module Glib
11
11
  menu :rightButtons
12
12
  menu :editButtons
13
13
  menu :chips
14
+ singleton_array :styleClass, :styleClasses
14
15
 
15
16
  # def editButtons(block)
16
17
  # json.editButtons do
@@ -37,7 +38,11 @@ module Glib
37
38
  bool :avatar
38
39
  action :onReorder
39
40
  string :paramNameForFormData
40
- string :paramNameForNewIndex
41
+ string :paramNameForNewAbsoluteIndex
42
+ string :paramNameForNewSectionIndex
43
+ string :paramNameForNewSectionedRowIndex
44
+
45
+ string :paramNameForNewIndex # Deprecated
41
46
 
42
47
  # # NOTE: Experimental. Still deciding whether this needs to be a full blown panel or
43
48
  # # an array of badges (with relevant properties, e.g. text, color, etc)
File without changes
@@ -201,9 +201,17 @@ module Glib
201
201
  raise "Invalid properties: #{options.keys}" if options.size > 0
202
202
  end
203
203
 
204
- def onLoad(options = {})
205
- json.onLoad do
206
- yield @action_builder
204
+ # def onLoad(options = {})
205
+ # json.onLoad do
206
+ # yield @action_builder
207
+ # end
208
+ # end
209
+
210
+ def on(options = {})
211
+ if (on_load = options[:load])
212
+ json.onLoad do
213
+ on_load.call @action_builder
214
+ end
207
215
  end
208
216
  end
209
217
 
File without changes
File without changes
File without changes
@@ -109,6 +109,7 @@ module Glib
109
109
  end
110
110
 
111
111
  class Label < AbstractText
112
+ hash :actionCable
112
113
  # string :format
113
114
  action :onClick
114
115
  end
@@ -12,6 +12,7 @@ class Glib::JsonUi::ViewBuilder
12
12
  icon :icon
13
13
  string :message
14
14
  singleton_array :styleClass, :styleClasses
15
+ color :color
15
16
 
16
17
  def buttons(block)
17
18
  json.buttons do
@@ -76,6 +76,8 @@ class Glib::JsonUi::ViewBuilder
76
76
  icon :leftIcon
77
77
  string :leftText
78
78
  string :rightText
79
+ action :onTypeStart
80
+ action :onTypeEnd
79
81
  end
80
82
 
81
83
  class Number < Text
@@ -3,5 +3,10 @@ module Glib
3
3
  def glib_url_current(new_params)
4
4
  url_for(params.to_unsafe_h.merge(new_params.merge(only_path: false)))
5
5
  end
6
+
7
+ def glib_url_equals_current?(url)
8
+ route = Rails.application.routes.recognize_path(url)
9
+ route[:controller] == controller_name && route[:action] == action_name
10
+ end
6
11
  end
7
12
  end
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -2,27 +2,26 @@ json.title 'Forms'
2
2
 
3
3
  data = params[:user] || {}
4
4
 
5
- json_ui_page json do |page|
6
- render "#{@path_prefix}/nav_menu", json: json, page: page
7
-
8
- page.form url: json_ui_garage_url(path: 'forms/get_request'), method: 'get', padding: glib_json_padding_body, childViews: ->(form) do
9
- # TODO: Potential improvement:
10
- # Use `reload` behaviour instead of `open` (i.e. don't keep adding URL to history).
11
- # Probably introduce a flag to panels_form so developer can enable/disable this behaviour.
12
- form.h3 text: "Hello #{ data[:name] }"
13
- form.spacer height: 6
14
- form.label text: 'On the web, upon submit, URL needs to change on the browser'
15
- form.spacer height: 10
16
- form.fields_text name: 'user[name]', width: 'matchParent', label: 'Name'
17
-
18
- # form.panels_split width: 'matchParent', rightViews: ->(split) do
19
- # split.button text: 'Submit', onClick: ->(action) { action.forms_submit }
20
- # end
21
-
22
- form.panels_split width: 'matchParent', content: ->(split) do
23
- split.right childViews: ->(right) do
24
- right.button text: 'Submit', onClick: ->(action) { action.forms_submit }
25
- end
5
+ page = json_ui_page json
6
+ render "#{@path_prefix}/nav_menu", json: json, page: page
7
+
8
+ page.form url: json_ui_garage_url(path: 'forms/get_request'), method: 'get', padding: glib_json_padding_body, childViews: ->(form) do
9
+ # TODO: Potential improvement:
10
+ # Use `reload` behaviour instead of `open` (i.e. don't keep adding URL to history).
11
+ # Probably introduce a flag to panels_form so developer can enable/disable this behaviour.
12
+ form.h3 text: "Hello #{ data[:name] }"
13
+ form.spacer height: 6
14
+ form.label text: 'On the web, upon submit, URL needs to change on the browser'
15
+ form.spacer height: 10
16
+ form.fields_text name: 'user[name]', width: 'matchParent', label: 'Name'
17
+
18
+ # form.panels_split width: 'matchParent', rightViews: ->(split) do
19
+ # split.button text: 'Submit', onClick: ->(action) { action.forms_submit }
20
+ # end
21
+
22
+ form.panels_split width: 'matchParent', content: ->(split) do
23
+ split.right childViews: ->(right) do
24
+ right.button text: 'Submit', onClick: ->(action) { action.forms_submit }
26
25
  end
27
26
  end
28
27
  end
@@ -1,110 +1,108 @@
1
1
  json.title 'Forms'
2
2
 
3
- json_ui_page json do |page|
4
- render "#{@path_prefix}/nav_menu", json: json, page: page, top_nav: true
3
+ page = json_ui_page json
4
+ render "#{@path_prefix}/nav_menu", json: json, page: page, top_nav: true
5
5
 
6
- page.list sections: [
7
- ->(section) do
8
- section.header padding: glib_json_padding_list, childViews: ->(header) do
9
- header.h2 text: 'Submission Logics'
10
- end
11
-
12
- section.rows builder: ->(template) do
13
- template.thumbnail title: 'Basic Logic', onClick: ->(action) do
14
- action.windows_open url: json_ui_garage_url(path: 'forms/basic')
15
- end
16
- template.thumbnail title: "Submission Flow (timestamp: #{DateTime.current.to_i})", onClick: ->(action) do
17
- action.windows_open url: json_ui_garage_url(path: 'forms/submission_flow')
18
- end
19
- template.thumbnail title: "Submission Indicator", onClick: ->(action) do
20
- action.windows_open url: json_ui_garage_url(path: 'forms/submission_indicator')
21
- end
22
- template.thumbnail title: 'GET Request', onClick: ->(action) do
23
- action.windows_open url: json_ui_garage_url(path: 'forms/get_request')
24
- end
6
+ page.list sections: [
7
+ ->(section) do
8
+ section.header padding: glib_json_padding_list, childViews: ->(header) do
9
+ header.h2 text: 'Submission Logics'
10
+ end
25
11
 
12
+ section.rows builder: ->(template) do
13
+ template.thumbnail title: 'Basic Logic', onClick: ->(action) do
14
+ action.windows_open url: json_ui_garage_url(path: 'forms/basic')
26
15
  end
27
- end, ->(section) do
28
- section.header padding: glib_json_padding_list, childViews: ->(header) do
29
- header.h2 text: 'Form Logics'
16
+ template.thumbnail title: "Submission Flow (timestamp: #{DateTime.current.to_i})", onClick: ->(action) do
17
+ action.windows_open url: json_ui_garage_url(path: 'forms/submission_flow')
18
+ end
19
+ template.thumbnail title: "Submission Indicator", onClick: ->(action) do
20
+ action.windows_open url: json_ui_garage_url(path: 'forms/submission_indicator')
21
+ end
22
+ template.thumbnail title: 'GET Request', onClick: ->(action) do
23
+ action.windows_open url: json_ui_garage_url(path: 'forms/get_request')
30
24
  end
31
25
 
32
- section.rows builder: ->(template) do
33
- template.thumbnail title: 'Text Validation', onClick: ->(action) do
34
- action.windows_open url: json_ui_garage_url(path: 'forms/text_validation')
35
- end
36
- template.thumbnail title: 'Show/Hide', onClick: ->(action) do
37
- action.windows_open url: json_ui_garage_url(path: 'forms/show_hide')
38
- end
39
- template.thumbnail title: 'Conditional Value', onClick: ->(action) do
40
- action.windows_open url: json_ui_garage_url(path: 'forms/conditional_value')
41
- end
26
+ end
27
+ end, ->(section) do
28
+ section.header padding: glib_json_padding_list, childViews: ->(header) do
29
+ header.h2 text: 'Form Logics'
30
+ end
42
31
 
32
+ section.rows builder: ->(template) do
33
+ template.thumbnail title: 'Text Validation', onClick: ->(action) do
34
+ action.windows_open url: json_ui_garage_url(path: 'forms/text_validation')
35
+ end
36
+ template.thumbnail title: 'Show/Hide', onClick: ->(action) do
37
+ action.windows_open url: json_ui_garage_url(path: 'forms/show_hide')
43
38
  end
44
- end, ->(section) do
45
- section.header padding: glib_json_padding_list, childViews: ->(header) do
46
- header.h2 text: 'Form Fields'
39
+ template.thumbnail title: 'Conditional Value', onClick: ->(action) do
40
+ action.windows_open url: json_ui_garage_url(path: 'forms/conditional_value')
47
41
  end
48
42
 
49
- section.rows builder: ->(template) do
50
- template.thumbnail title: 'Pickers', onClick: ->(action) do
51
- action.windows_open url: json_ui_garage_url(path: 'forms/pickers')
52
- end
53
- template.thumbnail title: 'Select Fields', onClick: ->(action) do
54
- action.windows_open url: json_ui_garage_url(path: 'forms/selects')
55
- end
56
- template.thumbnail title: 'File Upload', onClick: ->(action) do
57
- action.windows_open url: json_ui_garage_url(path: 'forms/file_upload')
58
- end
59
- template.thumbnail title: 'Floating Submit', onClick: ->(action) do
60
- action.windows_open url: json_ui_garage_url(path: 'forms/floating_submit')
61
- end
43
+ end
44
+ end, ->(section) do
45
+ section.header padding: glib_json_padding_list, childViews: ->(header) do
46
+ header.h2 text: 'Form Fields'
47
+ end
62
48
 
49
+ section.rows builder: ->(template) do
50
+ template.thumbnail title: 'Pickers', onClick: ->(action) do
51
+ action.windows_open url: json_ui_garage_url(path: 'forms/pickers')
63
52
  end
64
- end, ->(section) do
65
- section.header padding: glib_json_padding_list, childViews: ->(header) do
66
- header.h2 text: 'Styling'
53
+ template.thumbnail title: 'Select Fields', onClick: ->(action) do
54
+ action.windows_open url: json_ui_garage_url(path: 'forms/selects')
67
55
  end
68
- section.rows builder: ->(template) do
69
- template.thumbnail title: 'Text Boxes', onClick: ->(action) do
70
- action.windows_open url: json_ui_garage_url(path: 'forms/styled_boxes')
71
- end
56
+ template.thumbnail title: 'File Upload', onClick: ->(action) do
57
+ action.windows_open url: json_ui_garage_url(path: 'forms/file_upload')
72
58
  end
73
- end, ->(section) do
74
- section.header padding: glib_json_padding_list, childViews: ->(header) do
75
- header.h2 text: 'Web Only'
59
+ template.thumbnail title: 'Floating Submit', onClick: ->(action) do
60
+ action.windows_open url: json_ui_garage_url(path: 'forms/floating_submit')
76
61
  end
77
62
 
78
- section.rows builder: ->(template) do
79
- template.thumbnail title: 'Rich Text Editor', onClick: ->(action) do
80
- action.windows_open url: json_ui_garage_url(path: 'forms/rich_text')
81
- end
63
+ end
64
+ end, ->(section) do
65
+ section.header padding: glib_json_padding_list, childViews: ->(header) do
66
+ header.h2 text: 'Styling'
67
+ end
68
+ section.rows builder: ->(template) do
69
+ template.thumbnail title: 'Text Boxes', onClick: ->(action) do
70
+ action.windows_open url: json_ui_garage_url(path: 'forms/styled_boxes')
82
71
  end
72
+ end
73
+ end, ->(section) do
74
+ section.header padding: glib_json_padding_list, childViews: ->(header) do
75
+ header.h2 text: 'Web Only'
76
+ end
83
77
 
84
- section.rows builder: ->(template) do
85
- template.thumbnail title: 'New Rich Text Editor', onClick: ->(action) do
86
- action.windows_open url: json_ui_garage_url(path: 'forms/new_rich_text')
87
- end
88
-
78
+ section.rows builder: ->(template) do
79
+ template.thumbnail title: 'Rich Text Editor', onClick: ->(action) do
80
+ action.windows_open url: json_ui_garage_url(path: 'forms/rich_text')
89
81
  end
90
- end, ->(section) do
91
- section.header padding: glib_json_padding_list, childViews: ->(header) do
92
- header.h2 text: 'Experimental (not required yet)'
82
+ end
83
+
84
+ section.rows builder: ->(template) do
85
+ template.thumbnail title: 'New Rich Text Editor', onClick: ->(action) do
86
+ action.windows_open url: json_ui_garage_url(path: 'forms/new_rich_text')
93
87
  end
94
88
 
95
- section.rows builder: ->(template) do
96
- template.thumbnail title: 'Dynamic Group', onClick: ->(action) do
97
- action.windows_open url: json_ui_garage_url(path: 'forms/dynamic_group')
98
- end
99
- template.thumbnail title: 'Dynamic Select', onClick: ->(action) do
100
- action.windows_open url: json_ui_garage_url(path: 'forms/dynamic_select')
101
- end
102
- template.thumbnail title: 'Checkboxes', onClick: ->(action) do
103
- action.windows_open url: json_ui_garage_url(path: 'forms/checkboxes')
104
- end
89
+ end
90
+ end, ->(section) do
91
+ section.header padding: glib_json_padding_list, childViews: ->(header) do
92
+ header.h2 text: 'Experimental (not required yet)'
93
+ end
105
94
 
95
+ section.rows builder: ->(template) do
96
+ template.thumbnail title: 'Dynamic Group', onClick: ->(action) do
97
+ action.windows_open url: json_ui_garage_url(path: 'forms/dynamic_group')
98
+ end
99
+ template.thumbnail title: 'Dynamic Select', onClick: ->(action) do
100
+ action.windows_open url: json_ui_garage_url(path: 'forms/dynamic_select')
101
+ end
102
+ template.thumbnail title: 'Checkboxes', onClick: ->(action) do
103
+ action.windows_open url: json_ui_garage_url(path: 'forms/checkboxes')
106
104
  end
107
- end
108
- ]
109
105
 
110
- end
106
+ end
107
+ end
108
+ ]