glib-web 0.8.2 → 0.10.0

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 144c37b7b2c2acfb416c9aa7ac8cf286bfc0afb0c0b7f30dc51bedba3d3cb542
4
- data.tar.gz: c5d4d978ea3e29dc8917af83214b9aa7750b1a4e486c7ee650c8c6596e661b5a
3
+ metadata.gz: aa095592b5c0a4c1b5cef5dd0c76095c3a6c2d4143d098ce7a35b32180a858aa
4
+ data.tar.gz: ee3327349607b707dd4d5ba9fb0037dce4daeea2e68a92e04c6683b9a550efa4
5
5
  SHA512:
6
- metadata.gz: c9b86b01fd2d313c3ca0675cefbf6588372313e69b954416a16984d03f3685c83e481ad35bccdde7a9f7062d89b878723a8e4061fa4286c6278f08f81d3609eb
7
- data.tar.gz: fb123fab4806c449c039a92c61c983f33c059a75a1d1f3674334aec01dd0cbe83db656ca0f23d83fc725575a17958a47bf90ad9981807c166631209126dde2c4
6
+ metadata.gz: c552ce93b0a47a4c7141425655fac46bdc1c699a00aca7b6bd917049dd0614dd276ae49eac1bc70d2760bbeb27473492a28029963c253787d6e0a71434ca0cb9
7
+ data.tar.gz: fb4df6d227777f82cdde5b6c2ae95e2a666c5e77b2e770c17a2310fb8cbea3049002da4ecb5fd073395618255a0dbcf46d09d195f9b504bfc25bcd7d91f41023
@@ -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
@@ -219,6 +219,7 @@ class Glib::JsonUi::ViewBuilder
219
219
  views :childViews
220
220
  string :distribution
221
221
  string :align
222
+ action :onClick
222
223
  end
223
224
 
224
225
  class Flow < View
@@ -250,6 +251,15 @@ class Glib::JsonUi::ViewBuilder
250
251
  end
251
252
  end
252
253
 
254
+ class Grid < View
255
+ length :boxMinWidth
256
+ length :boxMaxWidth
257
+ length :columnGap
258
+ length :rowGap
259
+
260
+ views :childViews
261
+ end
262
+
253
263
  class Web < View
254
264
  string :url
255
265
  end
@@ -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
@@ -4,7 +4,11 @@ sleep 1
4
4
  section = page.list_section_builder
5
5
  section.rows builder: ->(row) do
6
6
  batch_count = 30
7
- 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|
8
12
  index = page_index * batch_count + i
9
13
  if local_assigns[:reorder]
10
14
  row.thumbnail title: "Item #{index}", onReorder: ->(action) do
@@ -29,7 +29,7 @@ else
29
29
  render "#{@path_prefix}/nav_menu", json: json, page: page
30
30
 
31
31
  page.list prevPage: next_page, firstSection: ->(section) do
32
- render 'json_ui/garage/lists/autoload_section', page: page, page_index: page_index
32
+ render 'json_ui/garage/lists/autoload_section', page: page, page_index: page_index, reverse: true
33
33
  end, onScrollToBottom: ->(action) do
34
34
  action.snackbars_alert message: 'Scrolled to Bottom'
35
35
  end, onScrollToTop: ->(action) do
@@ -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
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.2
4
+ version: 0.10.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - ''
@@ -204,6 +204,7 @@ files:
204
204
  - app/views/json_ui/garage/panels/carousel.json.jbuilder
205
205
  - app/views/json_ui/garage/panels/custom.json.jbuilder
206
206
  - app/views/json_ui/garage/panels/flow.json.jbuilder
207
+ - app/views/json_ui/garage/panels/grid.json.jbuilder
207
208
  - app/views/json_ui/garage/panels/horizontal.json.jbuilder
208
209
  - app/views/json_ui/garage/panels/index.json.jbuilder
209
210
  - app/views/json_ui/garage/panels/outlined.json.jbuilder