glib-web 0.6.14 → 0.7.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 +4 -4
- data/app/controllers/concerns/glib/json/new_dynamic_text.rb +0 -0
- data/app/helpers/glib/app_feature_support_helper.rb +0 -0
- data/app/helpers/glib/dynamic_images_helper.rb +0 -0
- data/app/helpers/glib/dynamic_texts_helper.rb +0 -0
- data/app/helpers/glib/forms_helper.rb +0 -0
- data/app/helpers/glib/json_ui/action_builder/dialogs.rb +0 -0
- data/app/helpers/glib/json_ui/action_builder/http.rb +0 -0
- data/app/helpers/glib/json_ui/action_builder/panels.rb +0 -0
- data/app/helpers/glib/json_ui/action_builder/sheets.rb +0 -0
- data/app/helpers/glib/json_ui/action_builder/snackbars.rb +0 -0
- data/app/helpers/glib/json_ui/analytics_helper.rb +0 -0
- data/app/helpers/glib/json_ui/generic_builders.rb +0 -0
- data/app/helpers/glib/json_ui/list_builders.rb +2 -1
- data/app/helpers/glib/json_ui/page_helper.rb +6 -0
- data/app/helpers/glib/json_ui/table_builders.rb +0 -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/helpers/glib/urls_helper.rb +0 -0
- data/app/models/glib/active_storage/attachment.rb +0 -0
- data/app/models/glib/active_storage/blob.rb +0 -0
- data/app/models/glib/dynamic_text_record.rb +0 -0
- data/app/models/glib/text.rb +0 -0
- data/app/validators/email_typo_validator.rb +0 -0
- data/app/validators/email_validator.rb +0 -0
- data/app/validators/url_validator.rb +0 -0
- data/app/views/json_ui/garage/actions/_dialogs.json.jbuilder +0 -0
- data/app/views/json_ui/garage/actions/_http.json.jbuilder +0 -0
- data/app/views/json_ui/garage/actions/_panels.json.jbuilder +0 -0
- data/app/views/json_ui/garage/actions/_reload.json.jbuilder +0 -0
- data/app/views/json_ui/garage/actions/_sheets.json.jbuilder +0 -0
- data/app/views/json_ui/garage/actions/_snackbars.json.jbuilder +0 -0
- data/app/views/json_ui/garage/actions/dialogs_oauth_post.json.jbuilder +0 -0
- data/app/views/json_ui/garage/forms/_alert_post_data.json.jbuilder +8 -6
- data/app/views/json_ui/garage/forms/basic.json.jbuilder +0 -0
- data/app/views/json_ui/garage/forms/basic_post.json.jbuilder +0 -0
- data/app/views/json_ui/garage/forms/disable_dirty_prompt.json.jbuilder +27 -0
- data/app/views/json_ui/garage/forms/dynamic_group.json.jbuilder +0 -0
- data/app/views/json_ui/garage/forms/dynamic_select_data.json.jbuilder +0 -0
- data/app/views/json_ui/garage/forms/floating_submit.json.jbuilder +0 -0
- data/app/views/json_ui/garage/forms/generic_post.json.jbuilder +0 -0
- data/app/views/json_ui/garage/forms/get_request.json.jbuilder +0 -0
- data/app/views/json_ui/garage/forms/index.json.jbuilder +6 -0
- data/app/views/json_ui/garage/forms/local_request.json.jbuilder +27 -0
- data/app/views/json_ui/garage/forms/submission_flow.json.jbuilder +0 -0
- data/app/views/json_ui/garage/forms/submission_flow_post.json.jbuilder +0 -0
- data/app/views/json_ui/garage/forms/submission_indicator.json.jbuilder +0 -0
- data/app/views/json_ui/garage/forms/submission_indicator_post.json.jbuilder +0 -0
- data/app/views/json_ui/garage/home/blank.json.jbuilder +0 -0
- data/app/views/json_ui/garage/home/slow.json.jbuilder +0 -0
- data/app/views/json_ui/garage/lists/_autoload_section.json.jbuilder +1 -1
- data/app/views/json_ui/garage/lists/autoload_all.json.jbuilder +0 -0
- data/app/views/json_ui/garage/lists/autoload_as_needed.json.jbuilder +0 -0
- data/app/views/json_ui/garage/lists/chat_ui.json.jbuilder +0 -0
- data/app/views/json_ui/garage/lists/edit_mode.json.jbuilder +38 -0
- data/app/views/json_ui/garage/lists/fab.json.jbuilder +0 -0
- data/app/views/json_ui/garage/lists/index.json.jbuilder +3 -0
- data/app/views/json_ui/garage/notifications/web_socket.json.jbuilder +0 -0
- data/app/views/json_ui/garage/pages/flat_centered.json.jbuilder +0 -0
- data/app/views/json_ui/garage/pages/full_width.json.jbuilder +0 -0
- data/app/views/json_ui/garage/pages/full_width_height.json.jbuilder +0 -0
- data/app/views/json_ui/garage/pages/index.json.jbuilder +0 -0
- data/app/views/json_ui/garage/pages/layout.json.jbuilder +0 -0
- data/app/views/json_ui/garage/pages/lifecycle_hooks.json.jbuilder +0 -0
- data/app/views/json_ui/garage/pages/loading_indicator.json.jbuilder +0 -0
- data/app/views/json_ui/garage/pages/nested_scroll.json.jbuilder +0 -0
- data/app/views/json_ui/garage/panels/_styled.json.jbuilder +0 -0
- data/app/views/json_ui/garage/panels/card.json.jbuilder +0 -0
- data/app/views/json_ui/garage/panels/custom.json.jbuilder +0 -0
- data/app/views/json_ui/garage/panels/horizontal.json.jbuilder +29 -0
- data/app/views/json_ui/garage/panels/outlined.json.jbuilder +0 -0
- data/app/views/json_ui/garage/panels/responsive.json.jbuilder +0 -0
- data/app/views/json_ui/garage/panels/vertical.json.jbuilder +0 -0
- data/app/views/json_ui/garage/services/dynamic_text.json.jbuilder +0 -0
- data/app/views/json_ui/garage/services/image.json.jbuilder +0 -0
- data/app/views/json_ui/garage/services/index.json.jbuilder +0 -0
- data/app/views/json_ui/garage/tables/_autoload_section.json.jbuilder +0 -0
- data/app/views/json_ui/garage/tables/autoload_all.json.jbuilder +0 -0
- data/app/views/json_ui/garage/tables/autoload_as_needed.json.jbuilder +0 -0
- data/app/views/json_ui/garage/tables/export_import.json.jbuilder +0 -0
- data/app/views/json_ui/garage/tables/index.json.jbuilder +0 -0
- data/app/views/json_ui/garage/views/calendar_data.json.jbuilder +0 -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/links.json.jbuilder +0 -0
- data/app/views/json_ui/garage/views/map_cluster_data.json.jbuilder +0 -0
- data/app/views/json_ui/garage/views/map_data.json.jbuilder +0 -0
- data/app/views/json_ui/garage/views/multimedia.json.jbuilder +0 -0
- data/app/views/json_ui/garage/views/socialSharing.json.jbuilder +102 -0
- data/config/routes.rb +0 -0
- data/lib/generators/glib/install_generator.rb +0 -0
- data/lib/generators/templates/20191017062519_create_texts.rb +0 -0
- data/lib/generators/templates/20191024063257_add_scope_to_texts.rb +0 -0
- data/lib/generators/templates/20191112095018_add_lang_to_texts.rb +0 -0
- data/lib/generators/templates/20191126071051_create_active_storage_tables.active_storage.rb +0 -0
- data/lib/generators/templates/database.yml +0 -0
- data/lib/generators/templates/dynamic_text.rb +0 -0
- data/lib/glib/crypt/utils.rb +0 -0
- data/lib/glib/crypt.rb +0 -0
- data/lib/glib/dynamic_text/config.rb +0 -0
- data/lib/glib/dynamic_text.rb +0 -0
- data/lib/glib/engine.rb +0 -0
- data/lib/glib/json_crawler/action_crawler.rb +0 -0
- data/lib/glib/json_crawler/action_crawlers/action_http.rb +0 -0
- data/lib/glib/json_crawler/action_crawlers/forms_submit.rb +0 -0
- data/lib/glib/json_crawler/action_crawlers/menu.rb +0 -0
- data/lib/glib/json_crawler/action_crawlers/nav_initiate.rb +0 -0
- data/lib/glib/json_crawler/action_crawlers/run_multiple.rb +0 -0
- data/lib/glib/json_crawler/action_crawlers/windows_open.rb +0 -0
- data/lib/glib/json_crawler/coverage.rb +0 -0
- data/lib/glib/json_crawler.rb +0 -0
- data/lib/glib/mailer_tester.rb +0 -0
- data/lib/glib/value.rb +0 -0
- data/lib/glib/version.rb +0 -0
- data/lib/glib-web.rb +0 -0
- data/lib/tasks/db.rake +0 -0
- metadata +7 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: b657d8ea974cc37a6a1fb3d434f56a7fb5c144f921864a4fb5018339e8e405a8
|
|
4
|
+
data.tar.gz: 56c9cb933c9c5a63c5e729a0af16908dd67675ffc2b2569d80d575209b9c2838
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: cc460b11171944ef3b4d99473854ec8d943b6747a0f1dd6d3646d7f60bf796526000ad71c9e78cf06437186c3b1c85ffbc1e5c06a69b99d4d57a6c0d8451e6b3
|
|
7
|
+
data.tar.gz: 6ceea3b0acfbc081f910a9b52050ef7fbec8da70d53a727a517b183915de73d2a640a10816af5baa1520127df69f2991a87778ddd8a9a98b4fd0b620504c01d3
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -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
|
|
File without changes
|
|
@@ -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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
data/app/models/glib/text.rb
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -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
|
|
File without changes
|
|
File without changes
|
|
@@ -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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -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
|
|
File without changes
|
|
@@ -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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -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
|
data/config/routes.rb
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
data/lib/glib/crypt/utils.rb
CHANGED
|
File without changes
|
data/lib/glib/crypt.rb
CHANGED
|
File without changes
|
|
File without changes
|
data/lib/glib/dynamic_text.rb
CHANGED
|
File without changes
|
data/lib/glib/engine.rb
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
data/lib/glib/json_crawler.rb
CHANGED
|
File without changes
|
data/lib/glib/mailer_tester.rb
CHANGED
|
File without changes
|
data/lib/glib/value.rb
CHANGED
|
File without changes
|
data/lib/glib/version.rb
CHANGED
|
File without changes
|
data/lib/glib-web.rb
CHANGED
|
File without changes
|
data/lib/tasks/db.rake
CHANGED
|
File without changes
|
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.
|
|
4
|
+
version: 0.7.0
|
|
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,6 +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
|
|
242
|
+
- app/views/json_ui/garage/views/socialSharing.json.jbuilder
|
|
239
243
|
- app/views/json_ui/garage/views/texts.json.jbuilder
|
|
240
244
|
- app/views/layouts/json_ui/renderer.html.erb
|
|
241
245
|
- config/routes.rb
|
|
@@ -286,7 +290,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
286
290
|
- !ruby/object:Gem::Version
|
|
287
291
|
version: '0'
|
|
288
292
|
requirements: []
|
|
289
|
-
|
|
293
|
+
rubyforge_project:
|
|
294
|
+
rubygems_version: 2.7.6
|
|
290
295
|
signing_key:
|
|
291
296
|
specification_version: 4
|
|
292
297
|
summary: ''
|