glib-web 0.6.15 → 0.8.1

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: 2c4ff8cc0d06eb6c81fb0a0a96374b9747e4f437fb3d2d0a8bc7a53132d49011
4
- data.tar.gz: 48212d3c11fb41cf147d7b2ab01d7ecc01d332a111bd77c05066c86da82ab242
3
+ metadata.gz: 0eecbcc062d2c7e335ae9753739cc29dbb9d28683e656063c18839f4f282d4f6
4
+ data.tar.gz: f4ee02cb9f32a927074caa1afb942d431bed96938594cb460417111e5d92ecf3
5
5
  SHA512:
6
- metadata.gz: bbf2cf1722acd92649e2d71f0048ea16fc246cac6f03e9a5da61aa5bc137de2f9748e0357c20d5c43290c86a5356f40b61a6314d348cd7996dbff130230a3673
7
- data.tar.gz: cd0ff0f239eb2468b81327dd76c5e476dd4a1b6eb4b9daaf8432e9fbdba7201ddda67c6217103b923d67a86aa0bf994ddabc33a59cee6a75e581020c05a56089
6
+ metadata.gz: d95a9abd99525e1487b59eb64f22d6bb35ecaba0d0f15d296d5a33053388ac7ac3571bc45b3187ed73d62b000fcd5526a8546e1a2d3260c65c0e77fdf59c408d
7
+ data.tar.gz: 4eb2aac64c5f8e86cbdfeff2f9e1f56a38a7ca9dcc839236cf60e2d94de95a9b8f4abb1c0972c149acf9b60a34c9fa6033ccd24fa09f86ef82445fe24f14721e
@@ -32,6 +32,7 @@ class Glib::JsonUi::ActionBuilder
32
32
 
33
33
  class Open < Action
34
34
  string :url, cache: true
35
+ bool :showClose
35
36
  end
36
37
 
37
38
  class Close < Action
@@ -28,7 +28,7 @@ module Glib
28
28
  end
29
29
 
30
30
  class Standard < AbstractTemplate
31
- string :id
31
+ string :recordId
32
32
  string :title
33
33
  string :subtitle
34
34
  string :subsubtitle
@@ -43,6 +43,7 @@ module Glib
43
43
  string :paramNameForNewSectionIndex
44
44
  string :paramNameForNewSectionedRowIndex
45
45
 
46
+ string :id # Deprecated
46
47
  string :paramNameForNewIndex # Deprecated
47
48
 
48
49
  # # NOTE: Experimental. Still deciding whether this needs to be a full blown panel or
@@ -3,7 +3,7 @@ class Glib::JsonUi::ViewBuilder
3
3
  class Form < View
4
4
  action :onSubmit
5
5
  string :paramNameForFormData
6
- # boolean :local
6
+ bool :local
7
7
 
8
8
  def is_array_association?(prop)
9
9
  # # Not all model is ActiveRecord
@@ -85,7 +85,7 @@ class Glib::JsonUi::ViewBuilder
85
85
  end
86
86
  end
87
87
 
88
- @method ||= :get
88
+ @method = @method&.to_sym || :get
89
89
 
90
90
  json.url @url
91
91
  json.method @method
@@ -112,6 +112,11 @@ class Glib::JsonUi::ViewBuilder
112
112
  end
113
113
 
114
114
  class List < View
115
+ string :fieldPrefix
116
+ string :fieldTitleName
117
+ string :fieldSubtitleName
118
+ string :fieldSubsubtitleName
119
+
115
120
  hash :phoenixSocket
116
121
  hash :actionCable
117
122
 
@@ -262,15 +262,17 @@ module Glib
262
262
  bool :reversed
263
263
  end
264
264
 
265
- class SocialSharing < View
265
+ class ShareButton < View
266
266
  string :network, required: true
267
267
  string :url, required: true
268
268
  string :title
269
269
  string :description
270
- string :quote
270
+ string :facebookQuote
271
271
  string :hashtags
272
- string :twitter_user
272
+ string :twitterUser
273
273
  string :text
274
+
275
+ action :onClick
274
276
  end
275
277
  end
276
278
  end
@@ -1,9 +1,11 @@
1
- info = "Method: #{request.method}\nForm Data:\n{\n"
2
- params.require(:user).each do |k, v|
3
- value = v.is_a?(String) ? '"' + v + '"' : v
4
- info += " #{k} => #{value}\n"
5
- end
6
- info += '}'
1
+ info = "Method: #{request.method}\nForm Data:\n"
2
+ # params.require(:user).each do |k, v|
3
+ # value = v.is_a?(String) ? '"' + v + '"' : v
4
+ # info += " #{k} => #{value}\n"
5
+ # end
6
+ # info += '}'
7
+
8
+ info += JSON.pretty_generate(params.require(:user).to_unsafe_h)
7
9
 
8
10
  action.dialogs_alert message: info, onClose: ->(action) do
9
11
  action.windows_refreshState
@@ -0,0 +1,27 @@
1
+ json.title 'Forms'
2
+ json.disableDirtyPrompt true
3
+
4
+ data = params[:user] || {}
5
+
6
+ page = json_ui_page json
7
+ render "#{@path_prefix}/nav_menu", json: json, page: page
8
+
9
+ page.form \
10
+ local: true,
11
+ url: json_ui_garage_url(path: 'forms/local_request'),
12
+ method: 'post',
13
+ padding: glib_json_padding_body,
14
+ childViews: ->(form) do
15
+ form.spacer height: 14
16
+ form.label text: 'This page will not show a dirty prompt even when the form field content has changed'
17
+ form.spacer height: 14
18
+ form.h3 text: "Hello #{ data[:name] }"
19
+ form.spacer height: 4
20
+ form.fields_text name: 'user[name]', width: 'matchParent', label: 'Name'
21
+
22
+ form.panels_split width: 'matchParent', content: ->(split) do
23
+ split.right childViews: ->(right) do
24
+ right.fields_submit text: 'Submit'
25
+ end
26
+ end
27
+ end
@@ -22,6 +22,12 @@ page.list sections: [
22
22
  template.thumbnail title: 'GET Request', onClick: ->(action) do
23
23
  action.windows_open url: json_ui_garage_url(path: 'forms/get_request')
24
24
  end
25
+ template.thumbnail title: 'Synchronous Request', onClick: ->(action) do
26
+ action.windows_open url: json_ui_garage_url(path: 'forms/local_request')
27
+ end
28
+ template.thumbnail title: 'Disable dirty prompt', onClick: ->(action) do
29
+ action.windows_open url: json_ui_garage_url(path: 'forms/disable_dirty_prompt')
30
+ end
25
31
 
26
32
  end
27
33
  end, ->(section) do
@@ -0,0 +1,27 @@
1
+ json.title 'Forms'
2
+
3
+ data = params[:user] || {}
4
+
5
+ page = json_ui_page json
6
+ render "#{@path_prefix}/nav_menu", json: json, page: page
7
+
8
+ page.form \
9
+ local: true,
10
+ url: json_ui_garage_url(path: 'forms/local_request'),
11
+ method: 'post',
12
+ padding: glib_json_padding_body,
13
+ childViews: ->(form) do
14
+ form.spacer height: 14
15
+ form.label text: "Analogous to Rails' form_with's `local: true`. The page should be reloaded upon submit. " \
16
+ 'This is rarely needed, only in cases like submitting to other websites, e.g. for Google OAuth login.'
17
+ form.spacer height: 14
18
+ form.h3 text: "Hello #{ data[:name] }"
19
+ form.spacer height: 4
20
+ form.fields_text name: 'user[name]', width: 'matchParent', label: 'Name'
21
+
22
+ form.panels_split width: 'matchParent', content: ->(split) do
23
+ split.right childViews: ->(right) do
24
+ right.fields_submit text: 'Submit'
25
+ end
26
+ end
27
+ end
@@ -16,7 +16,7 @@ sleep 1
16
16
 
17
17
  section = page.list_section_builder
18
18
  section.rows builder: ->(row) do
19
- batch_count = 1000
19
+ batch_count = 30
20
20
  batch_count.times do |i|
21
21
  index = page_index * batch_count + i
22
22
  if local_assigns[:reorder]
@@ -0,0 +1,38 @@
1
+ page = json_ui_page json
2
+
3
+ json.title 'Lists'
4
+
5
+ render "#{@path_prefix}/nav_menu", json: json, page: page
6
+
7
+ page.form \
8
+ width: 'matchParent',
9
+ url: json_ui_garage_url(path: 'forms/generic_post'),
10
+ method: 'post',
11
+ padding: glib_json_padding_body,
12
+ childViews: ->(form) do
13
+ form.panels_list fieldPrefix: 'user[items]', fieldTitleName: 'name', width: 'matchParent', sections: [
14
+ ->(section) do
15
+ section.header padding: glib_json_padding_list, childViews: ->(header) do
16
+
17
+ header.panels_horizontal childViews: ->(horizontal) do
18
+ # header.fields_text width: 'matchParent', styleClass: 'outlined', name: 'user[new_name]', label: 'Item name'
19
+ statuses = [:pending, :active]
20
+ header.fields_select \
21
+ styleClass: 'outlined',
22
+ name: 'user[status]',
23
+ width: 'matchParent',
24
+ label: 'Status',
25
+ options: statuses.map { |status| { value: status, text: status.to_s.humanize } }
26
+ header.spacer width: 20
27
+ header.fields_submit text: 'Update'
28
+ end
29
+ end
30
+ section.rows builder: ->(row) do
31
+ batch_count = 20
32
+ batch_count.times do |index|
33
+ row.thumbnail title: "Item #{index}", recordId: "PK_#{index}"
34
+ end
35
+ end
36
+ end
37
+ ]
38
+ end
@@ -35,6 +35,9 @@ json_ui_page json do |page|
35
35
  template.thumbnail title: 'Reordering', onClick: ->(action) do
36
36
  action.windows_open url: json_ui_garage_url(path: 'lists/reordering')
37
37
  end
38
+ template.thumbnail title: 'Edit Mode', onClick: ->(action) do
39
+ action.windows_open url: json_ui_garage_url(path: 'lists/edit_mode')
40
+ end
38
41
  end
39
42
 
40
43
  end
@@ -27,6 +27,35 @@ json_ui_page json do |page|
27
27
  panel.button text: '3'
28
28
  end
29
29
 
30
+ scroll.label text: "\n"
31
+ scroll.h1 text: 'Overlaps (negative spacing)'
32
+ scroll.markdown text: 'Uses Material Design spacings: https://vuetifyjs.com/en/styles/spacing/#how-it-works'
33
+ scroll.panels_horizontal width: 'matchParent', distribution: 'overlap-1', childViews: ->(panel) do
34
+ panel.button text: '1'
35
+ panel.button text: '2'
36
+ panel.button text: '3'
37
+ end
38
+ scroll.panels_horizontal width: 'matchParent', distribution: 'overlap-2', childViews: ->(panel) do
39
+ panel.button text: '1'
40
+ panel.button text: '2'
41
+ panel.button text: '3'
42
+ end
43
+ scroll.panels_horizontal width: 'matchParent', distribution: 'overlap-3', childViews: ->(panel) do
44
+ panel.button text: '1'
45
+ panel.button text: '2'
46
+ panel.button text: '3'
47
+ end
48
+ scroll.panels_horizontal width: 'matchParent', distribution: 'overlap-4', childViews: ->(panel) do
49
+ panel.button text: '1'
50
+ panel.button text: '2'
51
+ panel.button text: '3'
52
+ end
53
+ scroll.panels_horizontal width: 'matchParent', distribution: 'overlap-5', childViews: ->(panel) do
54
+ panel.button text: '1'
55
+ panel.button text: '2'
56
+ panel.button text: '3'
57
+ end
58
+
30
59
  scroll.label text: "\n"
31
60
  scroll.h1 text: 'Vertical panel combo'
32
61
  scroll.panels_horizontal distribution: 'spaceEqually', childViews: ->(panel) do
@@ -9,7 +9,9 @@ small_image_url = 'https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSGQpSWj
9
9
  page.scroll padding: glib_json_padding_body, childViews: ->(scroll) do
10
10
  scroll.h2 text: 'Avatar'
11
11
  scroll.spacer height: 6
12
- scroll.avatar url: glib_json_image_avatar_url
12
+ scroll.avatar \
13
+ url: glib_json_image_avatar_url,
14
+ tooltip: { text: 'This is a tooltip' }
13
15
 
14
16
  # scroll.spacer height: 20
15
17
  # scroll.h2 text: 'Icon'
@@ -19,7 +21,10 @@ page.scroll padding: glib_json_padding_body, childViews: ->(scroll) do
19
21
  scroll.spacer height: 20
20
22
  scroll.h2 text: 'Image with base64 data'
21
23
  scroll.spacer height: 6
22
- scroll.image height: 100, base64Data: 'data:image/gif;base64,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'
24
+ scroll.image \
25
+ height: 100,
26
+ tooltip: { text: 'This is a tooltip' },
27
+ base64Data: 'data:image/gif;base64,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'
23
28
 
24
29
  scroll.spacer height: 20
25
30
  scroll.h2 text: 'QR Code as base64 image'
@@ -10,7 +10,7 @@ json_ui_page json do |page|
10
10
  end
11
11
 
12
12
  section.rows builder: ->(template) do
13
- ['texts', 'controls', 'images', 'multimedia', 'charts', 'banners', 'maps', 'misc', 'icons', 'progress', 'socialSharing'].each do |component|
13
+ ['texts', 'controls', 'images', 'multimedia', 'charts', 'banners', 'maps', 'misc', 'icons', 'progress', 'shareButton'].each do |component|
14
14
  template.thumbnail title: component.humanize, onClick: ->(action) do
15
15
  action.windows_open url: json_ui_garage_url(path: "views/#{component}")
16
16
  end
@@ -4,32 +4,43 @@ page = json_ui_page json
4
4
  render "#{@path_prefix}/nav_menu", json: json, page: page
5
5
 
6
6
  page.scroll padding: glib_json_padding_body, childViews: ->(scroll) do
7
- scroll.h2 text: 'Social sharing'
7
+ scroll.h2 text: 'Share Button'
8
8
  scroll.spacer height: 6
9
9
  scroll.panels_column width: 'matchParent', childViews: ->(col) do
10
10
  col.panels_flow innerPadding: { top: 0, right: 0, bottom: 0, left: 0 }, childViews: ->(f) do
11
- f.socialSharing \
11
+ f.shareButton \
12
+ network: 'copy',
13
+ url: '',
14
+ title: 'TalentBasket internship',
15
+ description: 'Internship opportunities at talentbasket',
16
+ text: 'Copy Link',
17
+ onClick: ->(action) do
18
+ action.commands_copy text: 'copied'
19
+ end
20
+
21
+ f.shareButton \
12
22
  network: 'facebook',
13
23
  url: 'https://www.talentbasket.com/jobs',
14
24
  title: 'TalentBasket internship',
15
25
  description: 'Internship opportunities at talentbasket',
26
+ facebookQuote: 'Check internship at www.talentbasket.com',
16
27
  text: 'Facebook'
17
28
 
18
- f.socialSharing \
29
+ f.shareButton \
19
30
  network: 'linkedin',
20
31
  url: 'https://www.talentbasket.com/jobs',
21
32
  title: 'TalentBasket internship',
22
33
  description: 'Internship opportunities at talentbasket',
23
34
  text: 'LinkedIn'
24
35
 
25
- f.socialSharing \
36
+ f.shareButton \
26
37
  network: 'whatsapp',
27
38
  url: 'https://www.talentbasket.com/jobs',
28
39
  title: 'TalentBasket internship',
29
40
  description: 'Internship opportunities at talentbasket',
30
41
  text: 'WhatsApp'
31
42
 
32
- f.socialSharing \
43
+ f.shareButton \
33
44
  network: 'telegram',
34
45
  url: 'https://www.talentbasket.com/jobs',
35
46
  title: 'TalentBasket internship',
@@ -40,25 +51,25 @@ page.scroll padding: glib_json_padding_body, childViews: ->(scroll) do
40
51
  scroll.spacer height: 20
41
52
  scroll.panels_column width: 'matchParent', childViews: ->(col) do
42
53
  col.panels_flow innerPadding: { top: 0, right: 0, bottom: 0, left: 0 }, childViews: ->(f) do
43
- f.socialSharing \
54
+ f.shareButton \
44
55
  network: 'facebook',
45
56
  url: 'https://www.talentbasket.com/jobs',
46
57
  title: 'TalentBasket internship',
47
58
  description: 'Internship opportunities at talentbasket'
48
59
 
49
- f.socialSharing \
60
+ f.shareButton \
50
61
  network: 'linkedin',
51
62
  url: 'https://www.talentbasket.com/jobs',
52
63
  title: 'TalentBasket internship',
53
64
  description: 'Internship opportunities at talentbasket'
54
65
 
55
- f.socialSharing \
66
+ f.shareButton \
56
67
  network: 'whatsapp',
57
68
  url: 'https://www.talentbasket.com/jobs',
58
69
  title: 'TalentBasket internship',
59
70
  description: 'Internship opportunities at talentbasket'
60
71
 
61
- f.socialSharing \
72
+ f.shareButton \
62
73
  network: 'telegram',
63
74
  url: 'https://www.talentbasket.com/jobs',
64
75
  title: 'TalentBasket internship',
@@ -69,28 +80,28 @@ page.scroll padding: glib_json_padding_body, childViews: ->(scroll) do
69
80
 
70
81
  scroll.panels_column width: 'matchParent', childViews: ->(col) do
71
82
  col.panels_vertical childViews: ->(v) do
72
- v.socialSharing \
83
+ v.shareButton \
73
84
  network: 'facebook',
74
85
  url: 'https://www.talentbasket.com/jobs',
75
86
  title: 'TalentBasket internship',
76
87
  description: 'Internship opportunities at talentbasket',
77
88
  text: 'Facebook'
78
89
 
79
- v.socialSharing \
90
+ v.shareButton \
80
91
  network: 'linkedin',
81
92
  url: 'https://www.talentbasket.com/jobs',
82
93
  title: 'TalentBasket internship',
83
94
  description: 'Internship opportunities at talentbasket',
84
95
  text: 'LinkedIn'
85
96
 
86
- v.socialSharing \
97
+ v.shareButton \
87
98
  network: 'whatsapp',
88
99
  url: 'https://www.talentbasket.com/jobs',
89
100
  title: 'TalentBasket internship',
90
101
  description: 'Internship opportunities at talentbasket',
91
102
  text: 'WhatsApp'
92
103
 
93
- v.socialSharing \
104
+ v.shareButton \
94
105
  network: 'telegram',
95
106
  url: 'https://www.talentbasket.com/jobs',
96
107
  title: 'TalentBasket internship',
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.6.15
4
+ version: 0.8.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - ''
@@ -143,6 +143,7 @@ files:
143
143
  - app/views/json_ui/garage/forms/basic_post.json.jbuilder
144
144
  - app/views/json_ui/garage/forms/checkboxes.json.jbuilder
145
145
  - app/views/json_ui/garage/forms/conditional_value.json.jbuilder
146
+ - app/views/json_ui/garage/forms/disable_dirty_prompt.json.jbuilder
146
147
  - app/views/json_ui/garage/forms/dynamic_group.json.jbuilder
147
148
  - app/views/json_ui/garage/forms/dynamic_select.json.jbuilder
148
149
  - app/views/json_ui/garage/forms/dynamic_select_data.json.jbuilder
@@ -151,6 +152,7 @@ files:
151
152
  - app/views/json_ui/garage/forms/generic_post.json.jbuilder
152
153
  - app/views/json_ui/garage/forms/get_request.json.jbuilder
153
154
  - app/views/json_ui/garage/forms/index.json.jbuilder
155
+ - app/views/json_ui/garage/forms/local_request.json.jbuilder
154
156
  - app/views/json_ui/garage/forms/new_rich_text.json.jbuilder
155
157
  - app/views/json_ui/garage/forms/online_participant1.json.jbuilder
156
158
  - app/views/json_ui/garage/forms/online_participant2.json.jbuilder
@@ -177,6 +179,7 @@ files:
177
179
  - app/views/json_ui/garage/lists/autoload_as_needed_responsive_columns.json.jbuilder
178
180
  - app/views/json_ui/garage/lists/chat_ui.json.jbuilder
179
181
  - app/views/json_ui/garage/lists/edit_actions.json.jbuilder
182
+ - app/views/json_ui/garage/lists/edit_mode.json.jbuilder
180
183
  - app/views/json_ui/garage/lists/fab.json.jbuilder
181
184
  - app/views/json_ui/garage/lists/index.json.jbuilder
182
185
  - app/views/json_ui/garage/lists/reordering.json.jbuilder
@@ -236,7 +239,7 @@ files:
236
239
  - app/views/json_ui/garage/views/misc.json.jbuilder
237
240
  - app/views/json_ui/garage/views/multimedia.json.jbuilder
238
241
  - app/views/json_ui/garage/views/progress.json.jbuilder
239
- - app/views/json_ui/garage/views/socialSharing.json.jbuilder
242
+ - app/views/json_ui/garage/views/shareButton.json.jbuilder
240
243
  - app/views/json_ui/garage/views/texts.json.jbuilder
241
244
  - app/views/layouts/json_ui/renderer.html.erb
242
245
  - config/routes.rb