glib-web 0.6.13 → 0.6.16
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 +4 -4
- data/app/controllers/concerns/glib/analytics/funnel.rb +12 -6
- data/app/helpers/glib/json_ui/list_builders.rb +2 -1
- data/app/helpers/glib/json_ui/view_builder/fields.rb +2 -0
- data/app/helpers/glib/json_ui/view_builder/panels.rb +7 -2
- data/app/helpers/glib/json_ui/view_builder.rb +11 -0
- data/app/views/json_ui/garage/forms/_alert_post_data.json.jbuilder +8 -6
- data/app/views/json_ui/garage/forms/index.json.jbuilder +3 -0
- data/app/views/json_ui/garage/forms/local_request.json.jbuilder +27 -0
- data/app/views/json_ui/garage/lists/edit_mode.json.jbuilder +38 -0
- data/app/views/json_ui/garage/lists/index.json.jbuilder +3 -0
- data/app/views/json_ui/garage/views/images.json.jbuilder +7 -2
- data/app/views/json_ui/garage/views/index.json.jbuilder +1 -1
- data/app/views/json_ui/garage/views/socialSharing.json.jbuilder +102 -0
- metadata +4 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bedc221c7a3ca4698e7544b004d173a2370d24f46c39c5e9843557196592d662
|
4
|
+
data.tar.gz: 70e02a74054949fe4aaf27fc34068330fd1a4054b336b49235b01dcad180db40
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 29259dcdbc183ee60c7c787a4ac0a72f7237fcedde68183480f0f6eb0e74d0cd02900976959597ea5f6e42541fb075efe7de57ea2101e9b8cca2b7c18de6e82e
|
7
|
+
data.tar.gz: 17be690ac40a42483ef7e0998133e3e9b4e56e5a504f856149fc4b127a8f3e5a4e95076da2cf3a4908ae3e169e1b943ac0325d4fdec0c140f1d35b6a82426711
|
@@ -35,14 +35,20 @@ module Glib::Analytics
|
|
35
35
|
action = request.headers['GApp-Analytics-Referer-Action']
|
36
36
|
segment = request.headers['GApp-Analytics-Referer-Segment']
|
37
37
|
placement = request.headers['GApp-Analytics-Referer-Placement']
|
38
|
-
|
39
|
-
if group.nil? && action.nil? && !
|
40
|
-
|
41
|
-
|
42
|
-
|
38
|
+
referrer_url = request.headers['referer'] # Notice that the HTTP header uses one "r"
|
39
|
+
if group.nil? && action.nil? && !referrer_url.nil?
|
40
|
+
current_host = request.host
|
41
|
+
referrer_host = URI.parse(referrer_url).host
|
42
|
+
|
43
|
+
# Replace the subdomain portion with regex so it will only match the non-subdomain part.
|
44
|
+
# This will allow cross-subdomain referral, but it will not work if the host is a bare domain,
|
45
|
+
# which is something that we should avoid doing anyway.
|
46
|
+
regex = '^([^\.]*)\.'
|
47
|
+
if current_host == referrer_host || !/#{current_host.sub(/#{regex}/, regex)}/.match(referrer_host).nil?
|
48
|
+
referrer_url = referrer_url.delete_suffix('/')
|
43
49
|
|
44
50
|
begin
|
45
|
-
route = Rails.application.routes.recognize_path(
|
51
|
+
route = Rails.application.routes.recognize_path(referrer_url)
|
46
52
|
group = route[:controller]
|
47
53
|
action = route[:action]
|
48
54
|
rescue ActionController::RoutingError
|
@@ -28,7 +28,7 @@ module Glib
|
|
28
28
|
end
|
29
29
|
|
30
30
|
class Standard < AbstractTemplate
|
31
|
-
string :
|
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
|
-
|
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
|
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
|
|
@@ -261,6 +261,17 @@ module Glib
|
|
261
261
|
color :backgroundColor
|
262
262
|
bool :reversed
|
263
263
|
end
|
264
|
+
|
265
|
+
class SocialSharing < View
|
266
|
+
string :network, required: true
|
267
|
+
string :url, required: true
|
268
|
+
string :title
|
269
|
+
string :description
|
270
|
+
string :quote
|
271
|
+
string :hashtags
|
272
|
+
string :twitter_user
|
273
|
+
string :text
|
274
|
+
end
|
264
275
|
end
|
265
276
|
end
|
266
277
|
end
|
@@ -1,9 +1,11 @@
|
|
1
|
-
info = "Method: #{request.method}\nForm Data:\n
|
2
|
-
params.require(:user).each do |k, v|
|
3
|
-
|
4
|
-
|
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
|
@@ -22,6 +22,9 @@ 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
|
25
28
|
|
26
29
|
end
|
27
30
|
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
|
@@ -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
|
@@ -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
|
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
|
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'].each do |component|
|
13
|
+
['texts', 'controls', 'images', 'multimedia', 'charts', 'banners', 'maps', 'misc', 'icons', 'progress', 'socialSharing'].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
|
@@ -0,0 +1,102 @@
|
|
1
|
+
json.title 'Views'
|
2
|
+
|
3
|
+
page = json_ui_page json
|
4
|
+
render "#{@path_prefix}/nav_menu", json: json, page: page
|
5
|
+
|
6
|
+
page.scroll padding: glib_json_padding_body, childViews: ->(scroll) do
|
7
|
+
scroll.h2 text: 'Social sharing'
|
8
|
+
scroll.spacer height: 6
|
9
|
+
scroll.panels_column width: 'matchParent', childViews: ->(col) do
|
10
|
+
col.panels_flow innerPadding: { top: 0, right: 0, bottom: 0, left: 0 }, childViews: ->(f) do
|
11
|
+
f.socialSharing \
|
12
|
+
network: 'facebook',
|
13
|
+
url: 'https://www.talentbasket.com/jobs',
|
14
|
+
title: 'TalentBasket internship',
|
15
|
+
description: 'Internship opportunities at talentbasket',
|
16
|
+
text: 'Facebook'
|
17
|
+
|
18
|
+
f.socialSharing \
|
19
|
+
network: 'linkedin',
|
20
|
+
url: 'https://www.talentbasket.com/jobs',
|
21
|
+
title: 'TalentBasket internship',
|
22
|
+
description: 'Internship opportunities at talentbasket',
|
23
|
+
text: 'LinkedIn'
|
24
|
+
|
25
|
+
f.socialSharing \
|
26
|
+
network: 'whatsapp',
|
27
|
+
url: 'https://www.talentbasket.com/jobs',
|
28
|
+
title: 'TalentBasket internship',
|
29
|
+
description: 'Internship opportunities at talentbasket',
|
30
|
+
text: 'WhatsApp'
|
31
|
+
|
32
|
+
f.socialSharing \
|
33
|
+
network: 'telegram',
|
34
|
+
url: 'https://www.talentbasket.com/jobs',
|
35
|
+
title: 'TalentBasket internship',
|
36
|
+
description: 'Internship opportunities at talentbasket',
|
37
|
+
text: 'Telegram'
|
38
|
+
end
|
39
|
+
end
|
40
|
+
scroll.spacer height: 20
|
41
|
+
scroll.panels_column width: 'matchParent', childViews: ->(col) do
|
42
|
+
col.panels_flow innerPadding: { top: 0, right: 0, bottom: 0, left: 0 }, childViews: ->(f) do
|
43
|
+
f.socialSharing \
|
44
|
+
network: 'facebook',
|
45
|
+
url: 'https://www.talentbasket.com/jobs',
|
46
|
+
title: 'TalentBasket internship',
|
47
|
+
description: 'Internship opportunities at talentbasket'
|
48
|
+
|
49
|
+
f.socialSharing \
|
50
|
+
network: 'linkedin',
|
51
|
+
url: 'https://www.talentbasket.com/jobs',
|
52
|
+
title: 'TalentBasket internship',
|
53
|
+
description: 'Internship opportunities at talentbasket'
|
54
|
+
|
55
|
+
f.socialSharing \
|
56
|
+
network: 'whatsapp',
|
57
|
+
url: 'https://www.talentbasket.com/jobs',
|
58
|
+
title: 'TalentBasket internship',
|
59
|
+
description: 'Internship opportunities at talentbasket'
|
60
|
+
|
61
|
+
f.socialSharing \
|
62
|
+
network: 'telegram',
|
63
|
+
url: 'https://www.talentbasket.com/jobs',
|
64
|
+
title: 'TalentBasket internship',
|
65
|
+
description: 'Internship opportunities at talentbasket'
|
66
|
+
end
|
67
|
+
end
|
68
|
+
scroll.spacer height: 20
|
69
|
+
|
70
|
+
scroll.panels_column width: 'matchParent', childViews: ->(col) do
|
71
|
+
col.panels_vertical childViews: ->(v) do
|
72
|
+
v.socialSharing \
|
73
|
+
network: 'facebook',
|
74
|
+
url: 'https://www.talentbasket.com/jobs',
|
75
|
+
title: 'TalentBasket internship',
|
76
|
+
description: 'Internship opportunities at talentbasket',
|
77
|
+
text: 'Facebook'
|
78
|
+
|
79
|
+
v.socialSharing \
|
80
|
+
network: 'linkedin',
|
81
|
+
url: 'https://www.talentbasket.com/jobs',
|
82
|
+
title: 'TalentBasket internship',
|
83
|
+
description: 'Internship opportunities at talentbasket',
|
84
|
+
text: 'LinkedIn'
|
85
|
+
|
86
|
+
v.socialSharing \
|
87
|
+
network: 'whatsapp',
|
88
|
+
url: 'https://www.talentbasket.com/jobs',
|
89
|
+
title: 'TalentBasket internship',
|
90
|
+
description: 'Internship opportunities at talentbasket',
|
91
|
+
text: 'WhatsApp'
|
92
|
+
|
93
|
+
v.socialSharing \
|
94
|
+
network: 'telegram',
|
95
|
+
url: 'https://www.talentbasket.com/jobs',
|
96
|
+
title: 'TalentBasket internship',
|
97
|
+
description: 'Internship opportunities at talentbasket',
|
98
|
+
text: 'Telegram'
|
99
|
+
end
|
100
|
+
end
|
101
|
+
scroll.spacer height: 20
|
102
|
+
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.6.
|
4
|
+
version: 0.6.16
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- ''
|
@@ -151,6 +151,7 @@ files:
|
|
151
151
|
- app/views/json_ui/garage/forms/generic_post.json.jbuilder
|
152
152
|
- app/views/json_ui/garage/forms/get_request.json.jbuilder
|
153
153
|
- app/views/json_ui/garage/forms/index.json.jbuilder
|
154
|
+
- app/views/json_ui/garage/forms/local_request.json.jbuilder
|
154
155
|
- app/views/json_ui/garage/forms/new_rich_text.json.jbuilder
|
155
156
|
- app/views/json_ui/garage/forms/online_participant1.json.jbuilder
|
156
157
|
- app/views/json_ui/garage/forms/online_participant2.json.jbuilder
|
@@ -177,6 +178,7 @@ files:
|
|
177
178
|
- app/views/json_ui/garage/lists/autoload_as_needed_responsive_columns.json.jbuilder
|
178
179
|
- app/views/json_ui/garage/lists/chat_ui.json.jbuilder
|
179
180
|
- app/views/json_ui/garage/lists/edit_actions.json.jbuilder
|
181
|
+
- app/views/json_ui/garage/lists/edit_mode.json.jbuilder
|
180
182
|
- app/views/json_ui/garage/lists/fab.json.jbuilder
|
181
183
|
- app/views/json_ui/garage/lists/index.json.jbuilder
|
182
184
|
- app/views/json_ui/garage/lists/reordering.json.jbuilder
|
@@ -236,6 +238,7 @@ files:
|
|
236
238
|
- app/views/json_ui/garage/views/misc.json.jbuilder
|
237
239
|
- app/views/json_ui/garage/views/multimedia.json.jbuilder
|
238
240
|
- app/views/json_ui/garage/views/progress.json.jbuilder
|
241
|
+
- app/views/json_ui/garage/views/socialSharing.json.jbuilder
|
239
242
|
- app/views/json_ui/garage/views/texts.json.jbuilder
|
240
243
|
- app/views/layouts/json_ui/renderer.html.erb
|
241
244
|
- config/routes.rb
|