glib-web 0.8.2 → 0.10.0

Sign up to get free protection for your applications and to get access to all the features.
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