glib-web 0.8.1 → 0.9.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (111) hide show
  1. checksums.yaml +4 -4
  2. data/app/controllers/concerns/glib/json/new_dynamic_text.rb +0 -0
  3. data/app/helpers/glib/app_feature_support_helper.rb +0 -0
  4. data/app/helpers/glib/dynamic_images_helper.rb +0 -0
  5. data/app/helpers/glib/dynamic_texts_helper.rb +0 -0
  6. data/app/helpers/glib/forms_helper.rb +0 -0
  7. data/app/helpers/glib/json_ui/action_builder/http.rb +0 -0
  8. data/app/helpers/glib/json_ui/action_builder/panels.rb +0 -0
  9. data/app/helpers/glib/json_ui/action_builder/sheets.rb +0 -0
  10. data/app/helpers/glib/json_ui/action_builder/snackbars.rb +0 -0
  11. data/app/helpers/glib/json_ui/analytics_helper.rb +0 -0
  12. data/app/helpers/glib/json_ui/generic_builders.rb +0 -0
  13. data/app/helpers/glib/json_ui/table_builders.rb +0 -0
  14. data/app/helpers/glib/json_ui/view_builder/fields.rb +1 -0
  15. data/app/helpers/glib/json_ui/view_builder/panels.rb +11 -0
  16. data/app/helpers/glib/urls_helper.rb +0 -0
  17. data/app/models/glib/active_storage/attachment.rb +0 -0
  18. data/app/models/glib/active_storage/blob.rb +0 -0
  19. data/app/models/glib/dynamic_text_record.rb +0 -0
  20. data/app/models/glib/text.rb +0 -0
  21. data/app/validators/email_typo_validator.rb +0 -0
  22. data/app/validators/email_validator.rb +0 -0
  23. data/app/validators/url_validator.rb +0 -0
  24. data/app/views/json_ui/garage/_nav_menu.json.jbuilder +1 -1
  25. data/app/views/json_ui/garage/actions/_dialogs.json.jbuilder +0 -0
  26. data/app/views/json_ui/garage/actions/_http.json.jbuilder +0 -0
  27. data/app/views/json_ui/garage/actions/_panels.json.jbuilder +0 -0
  28. data/app/views/json_ui/garage/actions/_reload.json.jbuilder +0 -0
  29. data/app/views/json_ui/garage/actions/_sheets.json.jbuilder +0 -0
  30. data/app/views/json_ui/garage/actions/_snackbars.json.jbuilder +0 -0
  31. data/app/views/json_ui/garage/actions/dialogs_oauth_post.json.jbuilder +0 -0
  32. data/app/views/json_ui/garage/forms/basic.json.jbuilder +0 -0
  33. data/app/views/json_ui/garage/forms/basic_post.json.jbuilder +0 -0
  34. data/app/views/json_ui/garage/forms/disable_dirty_prompt.json.jbuilder +4 -2
  35. data/app/views/json_ui/garage/forms/dynamic_group.json.jbuilder +0 -0
  36. data/app/views/json_ui/garage/forms/dynamic_select_data.json.jbuilder +0 -0
  37. data/app/views/json_ui/garage/forms/floating_submit.json.jbuilder +0 -0
  38. data/app/views/json_ui/garage/forms/generic_post.json.jbuilder +0 -0
  39. data/app/views/json_ui/garage/forms/get_request.json.jbuilder +0 -0
  40. data/app/views/json_ui/garage/forms/submission_flow.json.jbuilder +0 -0
  41. data/app/views/json_ui/garage/forms/submission_flow_post.json.jbuilder +0 -0
  42. data/app/views/json_ui/garage/forms/submission_indicator.json.jbuilder +0 -0
  43. data/app/views/json_ui/garage/forms/submission_indicator_post.json.jbuilder +0 -0
  44. data/app/views/json_ui/garage/home/blank.json.jbuilder +0 -0
  45. data/app/views/json_ui/garage/home/slow.json.jbuilder +0 -0
  46. data/app/views/json_ui/garage/lists/_autoload_section.json.jbuilder +5 -14
  47. data/app/views/json_ui/garage/lists/autoload_all.json.jbuilder +0 -0
  48. data/app/views/json_ui/garage/lists/autoload_as_needed.json.jbuilder +0 -0
  49. data/app/views/json_ui/garage/lists/autoload_as_needed_on_top_scroll.json.jbuilder +39 -0
  50. data/app/views/json_ui/garage/lists/chat_ui.json.jbuilder +0 -0
  51. data/app/views/json_ui/garage/lists/fab.json.jbuilder +0 -0
  52. data/app/views/json_ui/garage/lists/index.json.jbuilder +3 -0
  53. data/app/views/json_ui/garage/notifications/web_socket.json.jbuilder +0 -0
  54. data/app/views/json_ui/garage/pages/flat_centered.json.jbuilder +0 -0
  55. data/app/views/json_ui/garage/pages/full_width.json.jbuilder +0 -0
  56. data/app/views/json_ui/garage/pages/full_width_height.json.jbuilder +0 -0
  57. data/app/views/json_ui/garage/pages/index.json.jbuilder +0 -0
  58. data/app/views/json_ui/garage/pages/layout.json.jbuilder +0 -0
  59. data/app/views/json_ui/garage/pages/lifecycle_hooks.json.jbuilder +0 -0
  60. data/app/views/json_ui/garage/pages/loading_indicator.json.jbuilder +0 -0
  61. data/app/views/json_ui/garage/pages/nested_scroll.json.jbuilder +0 -0
  62. data/app/views/json_ui/garage/panels/_styled.json.jbuilder +0 -0
  63. data/app/views/json_ui/garage/panels/card.json.jbuilder +0 -0
  64. data/app/views/json_ui/garage/panels/custom.json.jbuilder +0 -0
  65. data/app/views/json_ui/garage/panels/grid.json.jbuilder +37 -0
  66. data/app/views/json_ui/garage/panels/horizontal.json.jbuilder +12 -10
  67. data/app/views/json_ui/garage/panels/index.json.jbuilder +5 -3
  68. data/app/views/json_ui/garage/panels/outlined.json.jbuilder +0 -0
  69. data/app/views/json_ui/garage/panels/responsive.json.jbuilder +22 -0
  70. data/app/views/json_ui/garage/panels/vertical.json.jbuilder +0 -0
  71. data/app/views/json_ui/garage/services/dynamic_text.json.jbuilder +0 -0
  72. data/app/views/json_ui/garage/services/image.json.jbuilder +0 -0
  73. data/app/views/json_ui/garage/services/index.json.jbuilder +0 -0
  74. data/app/views/json_ui/garage/tables/_autoload_section.json.jbuilder +0 -0
  75. data/app/views/json_ui/garage/tables/autoload_all.json.jbuilder +0 -0
  76. data/app/views/json_ui/garage/tables/autoload_as_needed.json.jbuilder +0 -0
  77. data/app/views/json_ui/garage/tables/export_import.json.jbuilder +0 -0
  78. data/app/views/json_ui/garage/tables/index.json.jbuilder +0 -0
  79. data/app/views/json_ui/garage/views/calendar_data.json.jbuilder +0 -0
  80. data/app/views/json_ui/garage/views/links.json.jbuilder +0 -0
  81. data/app/views/json_ui/garage/views/map_cluster_data.json.jbuilder +0 -0
  82. data/app/views/json_ui/garage/views/map_data.json.jbuilder +0 -0
  83. data/app/views/json_ui/garage/views/multimedia.json.jbuilder +0 -0
  84. data/config/routes.rb +0 -0
  85. data/lib/generators/glib/install_generator.rb +0 -0
  86. data/lib/generators/templates/20191017062519_create_texts.rb +0 -0
  87. data/lib/generators/templates/20191024063257_add_scope_to_texts.rb +0 -0
  88. data/lib/generators/templates/20191112095018_add_lang_to_texts.rb +0 -0
  89. data/lib/generators/templates/20191126071051_create_active_storage_tables.active_storage.rb +0 -0
  90. data/lib/generators/templates/database.yml +0 -0
  91. data/lib/generators/templates/dynamic_text.rb +0 -0
  92. data/lib/glib/crypt/utils.rb +0 -0
  93. data/lib/glib/crypt.rb +0 -0
  94. data/lib/glib/dynamic_text/config.rb +0 -0
  95. data/lib/glib/dynamic_text.rb +0 -0
  96. data/lib/glib/engine.rb +0 -0
  97. data/lib/glib/json_crawler/action_crawler.rb +0 -0
  98. data/lib/glib/json_crawler/action_crawlers/action_http.rb +0 -0
  99. data/lib/glib/json_crawler/action_crawlers/forms_submit.rb +0 -0
  100. data/lib/glib/json_crawler/action_crawlers/menu.rb +0 -0
  101. data/lib/glib/json_crawler/action_crawlers/nav_initiate.rb +0 -0
  102. data/lib/glib/json_crawler/action_crawlers/run_multiple.rb +0 -0
  103. data/lib/glib/json_crawler/action_crawlers/windows_open.rb +0 -0
  104. data/lib/glib/json_crawler/coverage.rb +0 -0
  105. data/lib/glib/json_crawler.rb +0 -0
  106. data/lib/glib/mailer_tester.rb +0 -0
  107. data/lib/glib/value.rb +0 -0
  108. data/lib/glib/version.rb +0 -0
  109. data/lib/glib-web.rb +0 -0
  110. data/lib/tasks/db.rake +0 -0
  111. metadata +5 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 0eecbcc062d2c7e335ae9753739cc29dbb9d28683e656063c18839f4f282d4f6
4
- data.tar.gz: f4ee02cb9f32a927074caa1afb942d431bed96938594cb460417111e5d92ecf3
3
+ metadata.gz: 80e4dbdf6fa49ae7529f5f0c7f731e3bcb804926fa26848cd87dc0cc1f3ed999
4
+ data.tar.gz: 4bd64b4c5abfd53b05355bd7a16c6727344d6124479cdb159df7a744d8587155
5
5
  SHA512:
6
- metadata.gz: d95a9abd99525e1487b59eb64f22d6bb35ecaba0d0f15d296d5a33053388ac7ac3571bc45b3187ed73d62b000fcd5526a8546e1a2d3260c65c0e77fdf59c408d
7
- data.tar.gz: 4eb2aac64c5f8e86cbdfeff2f9e1f56a38a7ca9dcc839236cf60e2d94de95a9b8f4abb1c0972c149acf9b60a34c9fa6033ccd24fa09f86ef82445fe24f14721e
6
+ metadata.gz: 41ebae9f16115cd1409874b9143d5d93563f21d202877757c4e4f3e07faa3379891fbcfc3e02e3ba7200ba40e2016ba35a0b7a13fc2ba9f531f833d40cdf7fa0
7
+ data.tar.gz: 6e63089dd081a6e8a5805704b814727d51f2396197750cdef12289c3d48da9d53d1a8493eb71859839d0c23d5489634eec1f427c089b5059cd699a77122d3f68
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
@@ -5,6 +5,7 @@ class Glib::JsonUi::ViewBuilder
5
5
  bool :readOnly
6
6
  hash :validation
7
7
  bool :submitOnChange
8
+ bool :disableDirtyCheck
8
9
 
9
10
  def label(label)
10
11
  @label = label
@@ -121,6 +121,7 @@ class Glib::JsonUi::ViewBuilder
121
121
  hash :actionCable
122
122
 
123
123
  hash :nextPage
124
+ hash :prevPage
124
125
  action :onScrollToTop
125
126
  action :onScrollToBottom
126
127
 
@@ -218,6 +219,7 @@ class Glib::JsonUi::ViewBuilder
218
219
  views :childViews
219
220
  string :distribution
220
221
  string :align
222
+ action :onClick
221
223
  end
222
224
 
223
225
  class Flow < View
@@ -249,6 +251,15 @@ class Glib::JsonUi::ViewBuilder
249
251
  end
250
252
  end
251
253
 
254
+ class Grid < View
255
+ length :boxMinWidth
256
+ length :boxMaxWidth
257
+ length :columnGap
258
+ length :rowGap
259
+
260
+ views :childViews
261
+ end
262
+
252
263
  class Web < View
253
264
  string :url
254
265
  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
@@ -1,6 +1,6 @@
1
1
 
2
2
  if local_assigns[:top_nav] || json_ui_app_is_web?
3
- page.leftDrawer content: ->(drawer) do
3
+ page.leftDrawer styleClasses:['maxi'], content: ->(drawer) do
4
4
  drawer.header childViews: ->(header) do
5
5
  header.button text: 'App', styleClasses: ['link', 'logo'], onClick: ->(action) do
6
6
  action.windows_open url: root_url
File without changes
File without changes
@@ -1,5 +1,5 @@
1
1
  json.title 'Forms'
2
- json.disableDirtyPrompt true
2
+ # json.disableDirtyPrompt true
3
3
 
4
4
  data = params[:user] || {}
5
5
 
@@ -17,7 +17,9 @@ page.form \
17
17
  form.spacer height: 14
18
18
  form.h3 text: "Hello #{ data[:name] }"
19
19
  form.spacer height: 4
20
- form.fields_text name: 'user[name]', width: 'matchParent', label: 'Name'
20
+ form.fields_text name: 'user[dirty_check_enabled]', width: 'matchParent', label: 'Dirty check enabled'
21
+ form.spacer height: 14
22
+ form.fields_text name: 'user[dirty_check_disabled]', width: 'matchParent', label: 'Dirty check disabled', disableDirtyCheck: true
21
23
 
22
24
  form.panels_split width: 'matchParent', content: ->(split) do
23
25
  split.right childViews: ->(right) do
File without changes
File without changes
@@ -1,23 +1,14 @@
1
1
 
2
- # json.rows do
3
- # batch_count = 30
4
- # batch_count.times do |i|
5
- # index = page * batch_count + i
6
- # json.child! do
7
- # json.template 'thumbnail'
8
- # json.title "Item #{index}"
9
- # end
10
- # end
11
- # end
12
-
13
- # section = json_ui_section json
14
-
15
2
  sleep 1
16
3
 
17
4
  section = page.list_section_builder
18
5
  section.rows builder: ->(row) do
19
6
  batch_count = 30
20
- batch_count.times do |i|
7
+ array = (0..(batch_count - 1)).to_a
8
+ if local_assigns[:reverse]
9
+ array = array.reverse
10
+ end
11
+ array.each do |i|
21
12
  index = page_index * batch_count + i
22
13
  if local_assigns[:reorder]
23
14
  row.thumbnail title: "Item #{index}", onReorder: ->(action) do
@@ -0,0 +1,39 @@
1
+
2
+ page_index = params[:page].to_i
3
+ next_page = {
4
+ url: json_ui_garage_url(path: 'lists/autoload_as_needed_on_top_scroll', page: page_index + 1, section_only: 'v1'),
5
+ autoload: 'asNeeded'
6
+ }
7
+
8
+ page = json_ui_page json
9
+
10
+ # TODO: Cater
11
+ # - for SEO: one URL for a standalone page and one URL for pagination only
12
+ # - for generic approach, e.g. excluding nav_menu when there is no change
13
+ if params[:section_only].present?
14
+ sleep 1
15
+
16
+ json.prevPage next_page if page_index < 3
17
+ json.sections do
18
+ json.child! do
19
+ render 'json_ui/garage/lists/autoload_section', page: page, page_index: page_index
20
+ end
21
+ end
22
+ else
23
+ json.title 'Lists'
24
+
25
+ page.on load: ->(action) do
26
+ action.panels_scrollToBottom
27
+ end
28
+
29
+ render "#{@path_prefix}/nav_menu", json: json, page: page
30
+
31
+ page.list prevPage: next_page, firstSection: ->(section) do
32
+ render 'json_ui/garage/lists/autoload_section', page: page, page_index: page_index, reverse: true
33
+ end, onScrollToBottom: ->(action) do
34
+ action.snackbars_alert message: 'Scrolled to Bottom'
35
+ end, onScrollToTop: ->(action) do
36
+ action.snackbars_alert message: 'Scrolled to Top'
37
+ end
38
+
39
+ end
File without changes
File without changes
@@ -32,6 +32,9 @@ json_ui_page json do |page|
32
32
  template.thumbnail title: 'Autoload as Needed with Responsive Columns', onClick: ->(action) do
33
33
  action.windows_open url: json_ui_garage_url(path: 'lists/autoload_as_needed_responsive_columns')
34
34
  end
35
+ template.thumbnail title: 'Autoload as Needed (top scroll)', onClick: ->(action) do
36
+ action.windows_open url: json_ui_garage_url(path: 'lists/autoload_as_needed_on_top_scroll')
37
+ end
35
38
  template.thumbnail title: 'Reordering', onClick: ->(action) do
36
39
  action.windows_open url: json_ui_garage_url(path: 'lists/reordering')
37
40
  end
File without changes
File without changes
File without changes
File without changes
@@ -0,0 +1,37 @@
1
+ json.title 'Panels'
2
+
3
+ page = json_ui_page json
4
+ render "#{@path_prefix}/nav_menu", json: json, page: page
5
+
6
+ small_image_url = 'https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSGQpSWjtELISLBlmugOZ6wzl1JamYXQvbFeYywpfg3E8b8DrO0Kg&s'
7
+
8
+ page.scroll padding: glib_json_padding_body, childViews: ->(scroll) do
9
+ scroll.h2 text: 'Responsive grid box, try to resize browser width'
10
+ scroll.spacer height: 8
11
+ scroll.panels_grid width: 'matchParent', boxMinWidth: 200, columnGap: 20, rowGap: 10, childViews: ->(box) do
12
+ box.label text: 'Box', width: 'matchParent', backgroundColor: '#ddd'
13
+ box.label text: 'Box', width: 'matchParent', backgroundColor: '#ddd'
14
+ box.label text: 'Box', width: 'matchParent', backgroundColor: '#ddd'
15
+ box.label text: 'Box', width: 'matchParent', backgroundColor: '#ddd'
16
+ box.label text: 'Box', width: 'matchParent', backgroundColor: '#ddd'
17
+ end
18
+
19
+ scroll.spacer height: 16
20
+ scroll.h2 text: 'Responsive grid box with image'
21
+ scroll.spacer height: 8
22
+ scroll.panels_grid \
23
+ width: 'matchParent',
24
+ boxMinWidth: 300,
25
+ columnGap: 20,
26
+ rowGap: 10,
27
+ padding: { top: 0, right: 10, bottom: 0, left: 10 },
28
+ childViews: ->(box) do
29
+ box.image url: small_image_url
30
+ box.image url: small_image_url
31
+ box.image url: small_image_url
32
+ box.image url: small_image_url
33
+ box.image url: small_image_url
34
+ end
35
+
36
+ scroll.spacer height: 64
37
+ end
@@ -11,7 +11,7 @@ json_ui_page json do |page|
11
11
  panel.button text: '3'
12
12
  end
13
13
 
14
- scroll.label text: "\n"
14
+ scroll.spacer height: 20
15
15
  scroll.h1 text: 'Equal filling'
16
16
  scroll.panels_horizontal backgroundColor: '#b3bac2', width: 300, distribution: 'fillEqually', childViews: ->(panel) do
17
17
  panel.button text: '1'
@@ -19,7 +19,7 @@ json_ui_page json do |page|
19
19
  panel.button text: '3', height: 70
20
20
  end
21
21
 
22
- scroll.label text: "\n"
22
+ scroll.spacer height: 20
23
23
  scroll.h1 text: 'Equal spacing'
24
24
  scroll.panels_horizontal backgroundColor: '#b3bac2', width: 300, distribution: 'spaceEqually', childViews: ->(panel) do
25
25
  panel.button text: '1'
@@ -27,7 +27,7 @@ json_ui_page json do |page|
27
27
  panel.button text: '3'
28
28
  end
29
29
 
30
- scroll.label text: "\n"
30
+ scroll.spacer height: 20
31
31
  scroll.h1 text: 'Overlaps (negative spacing)'
32
32
  scroll.markdown text: 'Uses Material Design spacings: https://vuetifyjs.com/en/styles/spacing/#how-it-works'
33
33
  scroll.panels_horizontal width: 'matchParent', distribution: 'overlap-1', childViews: ->(panel) do
@@ -56,7 +56,7 @@ json_ui_page json do |page|
56
56
  panel.button text: '3'
57
57
  end
58
58
 
59
- scroll.label text: "\n"
59
+ scroll.spacer height: 20
60
60
  scroll.h1 text: 'Vertical panel combo'
61
61
  scroll.panels_horizontal distribution: 'spaceEqually', childViews: ->(panel) do
62
62
  panel.button text: '1'
@@ -67,7 +67,7 @@ json_ui_page json do |page|
67
67
  panel.button text: '3'
68
68
  end
69
69
 
70
- scroll.label text: "\n"
70
+ scroll.spacer height: 20
71
71
  scroll.h1 text: 'Vertical panel combo (equal filling)'
72
72
  scroll.panels_horizontal width: 'matchParent', distribution: 'fillEqually', childViews: ->(panel) do
73
73
  panel.button text: '1'
@@ -78,7 +78,7 @@ json_ui_page json do |page|
78
78
  panel.button text: '3'
79
79
  end
80
80
 
81
- scroll.label text: "\n"
81
+ scroll.spacer height: 20
82
82
  scroll.h1 text: 'Vertical panel combo (equal spacing)'
83
83
  scroll.panels_horizontal width: 'matchParent', distribution: 'spaceEqually', childViews: ->(panel) do
84
84
  panel.button text: '1'
@@ -89,7 +89,7 @@ json_ui_page json do |page|
89
89
  panel.button text: '3'
90
90
  end
91
91
 
92
- scroll.label text: "\n"
92
+ scroll.spacer height: 20
93
93
  scroll.h1 text: 'Spacers'
94
94
  scroll.panels_horizontal width: 'matchParent', childViews: ->(panel) do
95
95
  panel.button text: '1'
@@ -99,7 +99,7 @@ json_ui_page json do |page|
99
99
  panel.button text: '3'
100
100
  end
101
101
 
102
- scroll.label text: "\n"
102
+ scroll.spacer height: 20
103
103
  scroll.h1 text: 'Alignments'
104
104
  scroll.panels_horizontal align: 'top', childViews: ->(panel) do
105
105
  panel.button height: 50, text: 'Button'
@@ -117,12 +117,14 @@ json_ui_page json do |page|
117
117
  panel.label text: 'bottom'
118
118
  end
119
119
 
120
- scroll.label text: "\n"
121
- scroll.h1 text: 'Label combo'
120
+ scroll.spacer height: 20
121
+ scroll.h1 text: 'Label combo (with onClick)'
122
122
  scroll.panels_horizontal childViews: ->(panel) do
123
123
  panel.label backgroundColor: '#b3bac2', text: 'Label 1'
124
124
  panel.label text: 'Label 2'
125
125
  panel.label backgroundColor: '#b3bac2', text: 'Label 3'
126
+ end, onClick: ->(action) do
127
+ action.windows_open url: json_ui_garage_url(path: 'home/blank')
126
128
  end
127
129
 
128
130
  scroll.label text: "\n"
@@ -30,8 +30,6 @@ json_ui_page json do |page|
30
30
  template.thumbnail title: 'Unordered List', subtitle: 'Bullet points similar to HTML\'s <ul> tag', onClick: ->(action) do
31
31
  action.windows_open url: json_ui_garage_url(path: 'panels/ul')
32
32
  end
33
-
34
-
35
33
  end
36
34
  end, ->(section) do
37
35
  section.header padding: glib_json_padding_list, childViews: ->(header) do
@@ -120,10 +118,14 @@ json_ui_page json do |page|
120
118
  end
121
119
  end, ->(section) do
122
120
  section.header padding: glib_json_padding_list, childViews: ->(header) do
123
- header.h2 text: 'Uncategorized'
121
+ header.h2 text: 'Experimental'
124
122
  end
125
123
 
126
124
  section.rows builder: ->(template) do
125
+ template.thumbnail title: 'Grid', subtitle: 'Arrage child component in grid like', onClick: ->(action) do
126
+ action.windows_open url: json_ui_garage_url(path: 'panels/grid')
127
+ end
128
+
127
129
  template.thumbnail title: 'Dynamic Group', onClick: ->(action) do
128
130
  # TODO
129
131
  end
@@ -93,6 +93,28 @@ page.scroll padding: glib_json_padding_body, childViews: ->(scroll) do
93
93
  action.windows_open url: json_ui_garage_url(path: 'home/blank')
94
94
  end
95
95
 
96
+ scroll.spacer height: 16
97
+ scroll.h2 text: 'With grid-like functionality'
98
+ scroll.spacer height: 8
99
+ scroll.panels_responsive \
100
+ width: 'matchParent',
101
+ padding: { top: 0, right: 10, bottom: 0, left: 10 },
102
+ childViews: ->(responsive) do
103
+ small_image_url = 'https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSGQpSWjtELISLBlmugOZ6wzl1JamYXQvbFeYywpfg3E8b8DrO0Kg&s'
104
+
105
+ 6.times do |_cell_index|
106
+ responsive.panels_column \
107
+ padding: { top: 5, right: 5, bottom: 5, left: 5 },
108
+ xl: { cols: 3 },
109
+ lg: { cols: 4 },
110
+ md: { cols: 6 },
111
+ backgroundColor: '#c3cad2',
112
+ childViews: ->(column) do
113
+ column.image width: 'matchParent', url: small_image_url
114
+ end
115
+ end
116
+ end
117
+
96
118
  scroll.spacer height: 20
97
119
 
98
120
  end
File without changes
File without changes
data/config/routes.rb CHANGED
File without changes
File without changes
File without changes
File without changes
File without changes
data/lib/glib/crypt.rb CHANGED
File without changes
File without changes
File without changes
data/lib/glib/engine.rb CHANGED
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
data/lib/glib/value.rb CHANGED
File without changes
data/lib/glib/version.rb CHANGED
File without changes
data/lib/glib-web.rb CHANGED
File without changes
data/lib/tasks/db.rake CHANGED
File without changes
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: glib-web
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.1
4
+ version: 0.9.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - ''
@@ -176,6 +176,7 @@ files:
176
176
  - app/views/json_ui/garage/lists/_autoload_section.json.jbuilder
177
177
  - app/views/json_ui/garage/lists/autoload_all.json.jbuilder
178
178
  - app/views/json_ui/garage/lists/autoload_as_needed.json.jbuilder
179
+ - app/views/json_ui/garage/lists/autoload_as_needed_on_top_scroll.json.jbuilder
179
180
  - app/views/json_ui/garage/lists/autoload_as_needed_responsive_columns.json.jbuilder
180
181
  - app/views/json_ui/garage/lists/chat_ui.json.jbuilder
181
182
  - app/views/json_ui/garage/lists/edit_actions.json.jbuilder
@@ -203,6 +204,7 @@ files:
203
204
  - app/views/json_ui/garage/panels/carousel.json.jbuilder
204
205
  - app/views/json_ui/garage/panels/custom.json.jbuilder
205
206
  - app/views/json_ui/garage/panels/flow.json.jbuilder
207
+ - app/views/json_ui/garage/panels/grid.json.jbuilder
206
208
  - app/views/json_ui/garage/panels/horizontal.json.jbuilder
207
209
  - app/views/json_ui/garage/panels/index.json.jbuilder
208
210
  - app/views/json_ui/garage/panels/outlined.json.jbuilder
@@ -290,7 +292,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
290
292
  - !ruby/object:Gem::Version
291
293
  version: '0'
292
294
  requirements: []
293
- rubygems_version: 3.1.4
295
+ rubyforge_project:
296
+ rubygems_version: 2.7.6
294
297
  signing_key:
295
298
  specification_version: 4
296
299
  summary: ''