glib-web 0.2.14 → 0.2.15
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/helpers/glib/json_ui/action_builder.rb +43 -5
- data/app/helpers/glib/json_ui/view_builder.rb +5 -0
- data/app/helpers/glib/json_ui/view_builder/banners.rb +24 -0
- data/app/helpers/glib/json_ui/view_builder/fields.rb +1 -0
- data/app/views/json_ui/garage/actions/index.json.jbuilder +48 -4
- data/app/views/json_ui/garage/forms/file_upload.json.jbuilder +2 -1
- data/app/views/json_ui/garage/forms/selects.json.jbuilder +24 -10
- data/app/views/json_ui/garage/panels/card.json.jbuilder +9 -8
- data/app/views/json_ui/garage/views/banners.json.jbuilder +19 -0
- data/app/views/json_ui/garage/views/index.json.jbuilder +3 -0
- data/app/views/json_ui/garage/views/texts.json.jbuilder +7 -1
- metadata +3 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 59b75aa6c868bd135ec30d6dbee76230273552a2
|
4
|
+
data.tar.gz: 97a6c118d67b7b30e5bef02d37cb72268291f145
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6a5b1aebfce1d89720cec4e13f91123fc1cc1345e0891deb5c9f9e8451ccff48823a71056e0d3dc17ad427162c39904e97b5b0db4218ec6af03448fe80c30354
|
7
|
+
data.tar.gz: d736bdf4eaa401c6ffacd9782093bb251d127c013838b3d501d9ba35f36b861b2218ad9fb5b943a8c84b1ef0b32250280099ea4201820cd8154f591b3a4baabd
|
@@ -44,11 +44,11 @@ module Glib
|
|
44
44
|
action :onClose
|
45
45
|
end
|
46
46
|
|
47
|
-
class Confirm < Action
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
end
|
47
|
+
# class Confirm < Action
|
48
|
+
# string :message
|
49
|
+
# action :onConfirm
|
50
|
+
# action :onCancel
|
51
|
+
# end
|
52
52
|
|
53
53
|
class Options < Action
|
54
54
|
string :message
|
@@ -64,6 +64,7 @@ module Glib
|
|
64
64
|
string :url, cache: true
|
65
65
|
end
|
66
66
|
|
67
|
+
# TODO: Deprecate
|
67
68
|
# Consider renaming to ShowSnackbar
|
68
69
|
class Snackbar < Action
|
69
70
|
string :message
|
@@ -73,6 +74,43 @@ module Glib
|
|
73
74
|
end
|
74
75
|
|
75
76
|
end
|
77
|
+
|
78
|
+
module Snackbars
|
79
|
+
class Alert < Action
|
80
|
+
string :message
|
81
|
+
action :onClose
|
82
|
+
|
83
|
+
string :verticalPosition
|
84
|
+
string :horizontalPosition
|
85
|
+
singleton_array :styleClass, :styleClasses
|
86
|
+
end
|
87
|
+
|
88
|
+
# class Confirm < Action
|
89
|
+
# string :message
|
90
|
+
# action :onConfirm
|
91
|
+
# action :onCancel
|
92
|
+
|
93
|
+
# string :verticalPosition
|
94
|
+
# string :horizontalPosition
|
95
|
+
# singleton_array :styleClass, :styleClasses
|
96
|
+
# end
|
97
|
+
|
98
|
+
class Options < Action
|
99
|
+
string :message
|
100
|
+
|
101
|
+
string :verticalPosition
|
102
|
+
string :horizontalPosition
|
103
|
+
singleton_array :styleClass, :styleClasses
|
104
|
+
|
105
|
+
def buttons(block)
|
106
|
+
json.buttons do
|
107
|
+
block.call page.menu_builder
|
108
|
+
end
|
109
|
+
end
|
110
|
+
|
111
|
+
end
|
112
|
+
|
113
|
+
end
|
76
114
|
|
77
115
|
module Forms
|
78
116
|
class Submit < Action
|
@@ -0,0 +1,24 @@
|
|
1
|
+
class Glib::JsonUi::ViewBuilder
|
2
|
+
module Banners
|
3
|
+
|
4
|
+
class Alert < View
|
5
|
+
icon :icon
|
6
|
+
string :message
|
7
|
+
singleton_array :styleClass, :styleClasses
|
8
|
+
end
|
9
|
+
|
10
|
+
# TODO: Implement
|
11
|
+
class Options < View
|
12
|
+
icon :icon
|
13
|
+
string :message
|
14
|
+
singleton_array :styleClass, :styleClasses
|
15
|
+
|
16
|
+
def buttons(block)
|
17
|
+
json.buttons do
|
18
|
+
block.call page.menu_builder
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
end
|
24
|
+
end
|
@@ -11,9 +11,19 @@ json_ui_page json do |page|
|
|
11
11
|
|
12
12
|
section.rows builder: ->(template) do
|
13
13
|
template.thumbnail title: 'dialogs/alert', onClick: ->(action) do
|
14
|
-
action.dialogs_alert message: 'This is an alert'
|
14
|
+
action.dialogs_alert message: 'This is an alert dialog', onClose: ->(action) do
|
15
|
+
action.dialogs_snackbar message: 'Closed'
|
16
|
+
end
|
15
17
|
end
|
16
18
|
|
19
|
+
# template.thumbnail title: 'dialogs/confirm (Experimental)', onClick: ->(action) do
|
20
|
+
# action.dialogs_confirm message: 'This is a confirm dialog', onCancel: ->(action) do
|
21
|
+
# action.dialogs_snackbar message: 'Canceled'
|
22
|
+
# end, onConfirm: ->(action) do
|
23
|
+
# action.dialogs_snackbar message: 'Confirmed'
|
24
|
+
# end
|
25
|
+
# end
|
26
|
+
|
17
27
|
template.thumbnail title: 'dialogs/option', onClick: ->(action) do
|
18
28
|
action.dialogs_options message: 'Select one', buttons: ->(menu) do
|
19
29
|
menu.button text: 'Option1', onClick: ->(action) do
|
@@ -30,13 +40,47 @@ json_ui_page json do |page|
|
|
30
40
|
action.dialogs_open url: json_ui_garage_url(path: 'forms/basic')
|
31
41
|
end
|
32
42
|
|
33
|
-
template.thumbnail title: 'dialogs/snackbar', onClick: ->(action) do
|
43
|
+
template.thumbnail title: 'dialogs/snackbar (Legacy)', onClick: ->(action) do
|
34
44
|
action.dialogs_snackbar message: 'This is a default snackbar'
|
35
45
|
end
|
36
46
|
|
37
|
-
|
38
|
-
|
47
|
+
end
|
48
|
+
end, ->(section) do
|
49
|
+
section.header padding: { top: 12, bottom: 12, left: 16, right: 16 }, childViews: ->(header) do
|
50
|
+
header.h3 text: 'Snackbars'
|
51
|
+
end
|
52
|
+
|
53
|
+
section.rows builder: ->(template) do
|
54
|
+
template.thumbnail title: 'snackbars/alert', onClick: ->(action) do
|
55
|
+
action.snackbars_alert message: 'This is an alert snackbar', onClose: ->(action) do
|
56
|
+
action.dialogs_alert message: 'Closed'
|
57
|
+
end
|
39
58
|
end
|
59
|
+
|
60
|
+
# template.thumbnail title: 'snackbars/confirm (Experimental)', onClick: ->(action) do
|
61
|
+
# action.snackbars_confirm message: 'This is a confirm dialog', onCancel: ->(action) do
|
62
|
+
# action.dialogs_alert message: 'Canceled'
|
63
|
+
# end, onConfirm: ->(action) do
|
64
|
+
# action.dialogs_alert message: 'Confirmed'
|
65
|
+
# end
|
66
|
+
# end
|
67
|
+
|
68
|
+
template.thumbnail title: 'snackbars/options', onClick: ->(action) do
|
69
|
+
action.snackbars_options message: 'Select one', buttons: ->(menu) do
|
70
|
+
menu.button text: 'Option1', onClick: ->(action) do
|
71
|
+
action.dialogs_alert message: 'Option 1'
|
72
|
+
end
|
73
|
+
menu.button text: 'Option2', onClick: ->(action) do
|
74
|
+
action.dialogs_alert message: 'Option 2'
|
75
|
+
end
|
76
|
+
menu.button text: 'Cancel'
|
77
|
+
end
|
78
|
+
end
|
79
|
+
|
80
|
+
template.thumbnail title: 'snackbars with styling', onClick: ->(action) do
|
81
|
+
action.snackbars_alert message: 'This is a styled snackbar', verticalPosition: 'top', styleClass: 'success'
|
82
|
+
end
|
83
|
+
|
40
84
|
end
|
41
85
|
end, ->(section) do
|
42
86
|
section.header padding: { top: 12, bottom: 12, left: 16, right: 16 }, childViews: ->(header) do
|
@@ -16,7 +16,8 @@ json_ui_page json do |page|
|
|
16
16
|
value: 'eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBFQT09IiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--193dc0d939b9558fc4973fafbba91d989cbb04d4',
|
17
17
|
fileUrl: 'https://imageserver-demo.herokuapp.com/image/itinerarybuilder-demo/o6CKzNt67PWnkPdUEnWMt7pr?h=100&w=100',
|
18
18
|
fileTitle: '1 month ago'
|
19
|
-
form.fields_file name: 'user[photo][]', width: 'matchParent', label: 'Photo', accepts: rules2, directUploadUrl: rails_direct_uploads_url
|
19
|
+
form.fields_file name: 'user[photo][]', width: 'matchParent', label: 'Photo', accepts: rules2, directUploadUrl: rails_direct_uploads_url,
|
20
|
+
styleClass: 'avatar'
|
20
21
|
form.button text: 'Submit', onClick: ->(action) { action.forms_submit }
|
21
22
|
end)
|
22
23
|
end
|
@@ -9,16 +9,13 @@ json_ui_page json do |page|
|
|
9
9
|
form.h2 text: 'Basic select fields'
|
10
10
|
form.spacer height: 6
|
11
11
|
languages = {
|
12
|
-
'
|
13
|
-
'
|
14
|
-
'
|
15
|
-
'
|
16
|
-
'ko-KR' => 'Korea',
|
17
|
-
'ru-RU' => 'Russian',
|
18
|
-
'en-PH' => 'Philippines'
|
12
|
+
'brisbane' => 'Brisbane',
|
13
|
+
'canberra' => 'Canberra',
|
14
|
+
'melbourne' => 'Melbourne',
|
15
|
+
'sydney' => 'Sydney',
|
19
16
|
}
|
20
|
-
form.fields_select name: 'user[
|
21
|
-
form.fields_select name: 'user[
|
17
|
+
form.fields_select name: 'user[city]', width: 'matchParent', label: 'Primary Language', options: languages.map { |k, v| { value: k, text: v } }, value: 'canberra'
|
18
|
+
form.fields_select name: 'user[cities][]', width: 'matchParent', label: 'Preferred Languages', options: languages.map { |k, v| { value: k, text: v } }, value: ['melbourne', 'sydney'], multiple: true
|
22
19
|
|
23
20
|
form.spacer height: 20
|
24
21
|
form.h2 text: 'Select fields with manual entry'
|
@@ -32,7 +29,24 @@ json_ui_page json do |page|
|
|
32
29
|
form.spacer height: 6
|
33
30
|
form.label text: 'Applicable to select fields with many options'
|
34
31
|
form.spacer height: 6
|
35
|
-
|
32
|
+
|
33
|
+
languages = {
|
34
|
+
"ar" => 'Arabic',
|
35
|
+
"zh" => "Chinese",
|
36
|
+
"nl" => "Dutch",
|
37
|
+
"en" => "English",
|
38
|
+
"fr" => "French",
|
39
|
+
"de" => "German",
|
40
|
+
"hi" => "Hindi",
|
41
|
+
"it" => "Italian",
|
42
|
+
"ja" => "Japanese",
|
43
|
+
"ko" => "Korean",
|
44
|
+
"pt" => "Portuguese",
|
45
|
+
"ru" => "Russian",
|
46
|
+
"es" => "Spanish",
|
47
|
+
}
|
48
|
+
form.fields_select name: 'user[language]', width: 'matchParent', label: 'Primary Language', options: languages.map { |k, v| { value: k, text: v } }, value: 'nl'
|
49
|
+
form.fields_select name: 'user[languages][]', width: 'matchParent', label: 'Primary Language', options: languages.map { |k, v| { value: k, text: v } }, value: ['fr', 'de'], multiple: true
|
36
50
|
|
37
51
|
form.button text: 'Submit', onClick: ->(action) { action.forms_submit }
|
38
52
|
|
@@ -71,23 +71,24 @@ json_ui_page json do |page|
|
|
71
71
|
scroll.h2 text: 'Grid-like layout'
|
72
72
|
scroll.spacer height: 6
|
73
73
|
scroll.panels_responsive childViews: ->(horizontal) do
|
74
|
-
|
75
|
-
|
74
|
+
gap = { top: 12, left: 10, right: 10, bottom: 12 }
|
75
|
+
horizontal.panels_column lg: 4, padding: gap, childViews: ->(column) do
|
76
|
+
column.panels_vertical styleClass: 'card', width: 'matchParent', padding: glib_json_padding_body, childViews: ->(column) do
|
76
77
|
column.button text: '1'
|
77
78
|
end
|
78
79
|
end
|
79
|
-
horizontal.panels_column lg: 4, padding:
|
80
|
-
column.panels_vertical styleClass: 'card', width: 'matchParent', childViews: ->(column) do
|
80
|
+
horizontal.panels_column lg: 4, padding: gap, childViews: ->(column) do
|
81
|
+
column.panels_vertical styleClass: 'card', width: 'matchParent', padding: glib_json_padding_body, childViews: ->(column) do
|
81
82
|
column.button text: '2'
|
82
83
|
end
|
83
84
|
end
|
84
|
-
horizontal.panels_column lg: 4, padding:
|
85
|
-
column.panels_vertical styleClass: 'card', width: 'matchParent', childViews: ->(column) do
|
85
|
+
horizontal.panels_column lg: 4, padding: gap, childViews: ->(column) do
|
86
|
+
column.panels_vertical styleClass: 'card', width: 'matchParent', padding: glib_json_padding_body, childViews: ->(column) do
|
86
87
|
column.button text: '3'
|
87
88
|
end
|
88
89
|
end
|
89
|
-
horizontal.panels_column lg: 4, padding:
|
90
|
-
column.panels_vertical styleClass: 'card', width: 'matchParent', childViews: ->(column) do
|
90
|
+
horizontal.panels_column lg: 4, padding: gap, childViews: ->(column) do
|
91
|
+
column.panels_vertical styleClass: 'card', width: 'matchParent', padding: glib_json_padding_body, childViews: ->(column) do
|
91
92
|
column.button text: '4'
|
92
93
|
end
|
93
94
|
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
json.title 'Views'
|
2
|
+
|
3
|
+
json_ui_page json do |page|
|
4
|
+
render "#{@path_prefix}/nav_menu", json: json, page: page
|
5
|
+
|
6
|
+
page.scroll padding: glib_json_padding_body, childViews: ->(scroll) do
|
7
|
+
|
8
|
+
scroll.spacer height: 20
|
9
|
+
scroll.h2 text: 'Alert banner'
|
10
|
+
scroll.spacer height: 6
|
11
|
+
scroll.banners_alert width: 'matchParent', icon: 'info', message: 'This is an alert banner'
|
12
|
+
|
13
|
+
scroll.spacer height: 20
|
14
|
+
scroll.h2 text: 'Alert banner with styling'
|
15
|
+
scroll.spacer height: 6
|
16
|
+
scroll.banners_alert width: 'matchParent', icon: 'info', message: 'This is an alert banner', styleClass: 'success'
|
17
|
+
|
18
|
+
end
|
19
|
+
end
|
@@ -23,6 +23,9 @@ json_ui_page json do |page|
|
|
23
23
|
template.thumbnail title: 'Links', onClick: ->(action) do
|
24
24
|
action.windows_open url: json_ui_garage_url(path: 'views/links')
|
25
25
|
end
|
26
|
+
template.thumbnail title: 'Banners', onClick: ->(action) do
|
27
|
+
action.windows_open url: json_ui_garage_url(path: 'views/banners')
|
28
|
+
end
|
26
29
|
end
|
27
30
|
|
28
31
|
end
|
@@ -20,8 +20,8 @@ json_ui_page json do |page|
|
|
20
20
|
|
21
21
|
scroll.spacer height: 20
|
22
22
|
scroll.hr width: 'matchParent'
|
23
|
-
scroll.spacer height: 20
|
24
23
|
|
24
|
+
scroll.spacer height: 20
|
25
25
|
scroll.h2 text: 'Paragraph'
|
26
26
|
scroll.spacer height: 6
|
27
27
|
scroll.p text: 'Contrary to popular belief, Lorem Ipsum is not simply random text. It has roots in a piece of classical Latin literature from 45 BC,'\
|
@@ -33,9 +33,15 @@ json_ui_page json do |page|
|
|
33
33
|
'The standard chunk of Lorem Ipsum used since the 1500s is reproduced below for those interested. Sections 1.10.32 and 1.10.33 from "de Finibus Bonorum et Malorum"'\
|
34
34
|
' by Cicero are also reproduced in their exact original form, accompanied by English versions from the 1914 translation by H. Rackham.'
|
35
35
|
|
36
|
+
scroll.spacer height: 20
|
36
37
|
scroll.h2 text: 'Chip'
|
37
38
|
scroll.spacer height: 6
|
38
39
|
scroll.chip text: 'pending'
|
39
40
|
|
41
|
+
scroll.spacer height: 20
|
42
|
+
scroll.h2 text: 'Banner'
|
43
|
+
scroll.spacer height: 6
|
44
|
+
scroll.banners_alert icon: 'info', message: 'This is an alert banner'
|
45
|
+
|
40
46
|
end
|
41
47
|
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.2.
|
4
|
+
version: 0.2.15
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- ''
|
@@ -44,6 +44,7 @@ files:
|
|
44
44
|
- app/helpers/glib/json_ui/styling_helper.rb
|
45
45
|
- app/helpers/glib/json_ui/table_builders.rb
|
46
46
|
- app/helpers/glib/json_ui/view_builder.rb
|
47
|
+
- app/helpers/glib/json_ui/view_builder/banners.rb
|
47
48
|
- app/helpers/glib/json_ui/view_builder/fields.rb
|
48
49
|
- app/helpers/glib/json_ui/view_builder/panels.rb
|
49
50
|
- app/views/app/views/json_ui/vue/renderer.html.erb
|
@@ -92,6 +93,7 @@ files:
|
|
92
93
|
- app/views/json_ui/garage/panels/split.json.jbuilder
|
93
94
|
- app/views/json_ui/garage/panels/table.json.jbuilder
|
94
95
|
- app/views/json_ui/garage/panels/vertical.json.jbuilder
|
96
|
+
- app/views/json_ui/garage/views/banners.json.jbuilder
|
95
97
|
- app/views/json_ui/garage/views/calendar_data.json.jbuilder
|
96
98
|
- app/views/json_ui/garage/views/carousels.json.jbuilder
|
97
99
|
- app/views/json_ui/garage/views/charts.json.jbuilder
|