glib-web 0.6.15 → 0.8.1

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: 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