glib-web 3.20.2 → 3.20.5
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/page_helper.rb +9 -0
- data/app/helpers/glib/json_ui/view_builder/fields.rb +2 -0
- data/app/helpers/glib/json_ui/view_builder.rb +12 -1
- data/app/views/json_ui/garage/actions/_dialogs_show.json.jbuilder +5 -3
- data/app/views/json_ui/garage/forms/dialogs_update.json.jbuilder +8 -1
- data/app/views/json_ui/garage/forms/file_upload.json.jbuilder +13 -0
- data/app/views/json_ui/garage/notifications/action_cable.json.jbuilder +9 -3
- data/app/views/json_ui/garage/pages/index.json.jbuilder +4 -0
- data/app/views/json_ui/garage/pages/paste_file.jbuilder +15 -0
- data/app/views/json_ui/garage/views/icon_names.json.jbuilder +2153 -1332
- data/app/views/json_ui/garage/views/index.json.jbuilder +1 -1
- data/app/views/json_ui/garage/views/treeView.json.jbuilder +50 -0
- data/app/views/layouts/json_ui/renderer.html.erb +1 -1
- data/lib/glib-web.rb +0 -0
- metadata +3 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: '09a9fcb392c01c3befef1f951014fe4934bafea422cb1d5a7f13d2eed5f3e5db'
|
4
|
+
data.tar.gz: 21c5e44448d4eaa6b51ff67dfdf8d20234e83cdbfc8f2bfd571c58ee5cbf98cb
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4420d70795aa12b42bb493cec14553c150740b48864bf7c90a92c4012139109c301721b61d31bba3333ddc85dab39a8a45cac82a0ce0d4b40e285b9e2554319f
|
7
|
+
data.tar.gz: bae84a5f666c73f04151cbc47e685335914bcfd527392350f31ba90b1450f18f09d3fd2aca1dc92ae7a9ff1c883e99b31a7403d15f437448f584d22c7927accb
|
@@ -98,6 +98,15 @@ module Glib
|
|
98
98
|
# @generic_content_builder = GenericBuilders::Content.new(json, self, @view_builder)
|
99
99
|
end
|
100
100
|
|
101
|
+
def pasteFile(options = {})
|
102
|
+
json.pasteFile do
|
103
|
+
json.accepts options[:accepts]
|
104
|
+
json.directUploadUrl options[:directUploadUrl]
|
105
|
+
json.url options[:url]
|
106
|
+
json.inputName options[:inputName]
|
107
|
+
end
|
108
|
+
end
|
109
|
+
|
101
110
|
def actionCable(options = {})
|
102
111
|
json.actionCable do
|
103
112
|
if (on_error = options[:onError])
|
@@ -186,6 +186,7 @@ class Glib::JsonUi::ViewBuilder
|
|
186
186
|
end
|
187
187
|
|
188
188
|
class ChipGroup < AbstractField
|
189
|
+
string :color
|
189
190
|
array :options
|
190
191
|
bool :multiple
|
191
192
|
end
|
@@ -320,6 +321,7 @@ class Glib::JsonUi::ViewBuilder
|
|
320
321
|
string :directUploadUrl
|
321
322
|
string :uploadTitle
|
322
323
|
string :uploadFailedText # deprecated
|
324
|
+
action :onFinishUpload
|
323
325
|
|
324
326
|
required :accepts, :directUploadUrl
|
325
327
|
|
@@ -50,7 +50,8 @@ module Glib
|
|
50
50
|
|
51
51
|
hash :analytics
|
52
52
|
# hash :tooltip
|
53
|
-
array :extensions
|
53
|
+
array :extensions # deprecated
|
54
|
+
hash :dragData
|
54
55
|
|
55
56
|
def self.component_name
|
56
57
|
@component_name ||= self.name.sub('Glib::JsonUi::ViewBuilder::', '')
|
@@ -322,6 +323,16 @@ module Glib
|
|
322
323
|
|
323
324
|
action :onClick
|
324
325
|
end
|
326
|
+
|
327
|
+
class TreeView < View
|
328
|
+
string :inputName
|
329
|
+
string :url
|
330
|
+
string :directUploadUrl
|
331
|
+
array :accepts
|
332
|
+
string :selected
|
333
|
+
hash :items
|
334
|
+
hash :dropData
|
335
|
+
end
|
325
336
|
end
|
326
337
|
end
|
327
338
|
end
|
@@ -5,9 +5,11 @@ markdown = '## Emphasis' + "\n" +
|
|
5
5
|
"\n" +
|
6
6
|
'~~Strikethrough~~' + "\n"
|
7
7
|
|
8
|
-
options = {
|
9
|
-
|
10
|
-
|
8
|
+
options = {}
|
9
|
+
if (update_existing = local_assigns[:update_existing])
|
10
|
+
options[:updateExisting] = update_existing
|
11
|
+
end
|
12
|
+
|
11
13
|
action.send "dialogs_#{dialog_mode}", **options, content: ->(dialog) do
|
12
14
|
dialog.body padding: glib_json_padding_body, childViews: ->(body) do
|
13
15
|
body.markdown text: markdown
|
@@ -8,5 +8,12 @@ page.scroll childViews: ->(scroll) do
|
|
8
8
|
end
|
9
9
|
|
10
10
|
page.on load: ->(action) do
|
11
|
-
|
11
|
+
action.timeouts_set interval: 500, onTimeout: ->(subaction) do
|
12
|
+
render \
|
13
|
+
'json_ui/garage/actions/dialogs_show',
|
14
|
+
json: json,
|
15
|
+
action: subaction,
|
16
|
+
dialog_mode: :show,
|
17
|
+
update_existing: true
|
18
|
+
end
|
12
19
|
end
|
@@ -37,6 +37,8 @@ page.form options.merge(childViews: ->(form) do
|
|
37
37
|
# placeholderView: { type: 'avatar', width: 100, height: 100, url: 'data:image/jpeg;base64,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' }
|
38
38
|
|
39
39
|
form.spacer height: 16
|
40
|
+
form.label text: 'Simple file upload'
|
41
|
+
form.spacer height: 8
|
40
42
|
form.fields_multiUpload \
|
41
43
|
name: 'user[multi][]',
|
42
44
|
width: 360,
|
@@ -48,5 +50,16 @@ page.form options.merge(childViews: ->(form) do
|
|
48
50
|
{ name: 'File (Example)', signed_id: ActiveStorage::Attachment.last&.signed_id }
|
49
51
|
]
|
50
52
|
form.spacer height: 16
|
53
|
+
form.label text: 'File upload with onFinishUpload'
|
54
|
+
form.spacer height: 8
|
55
|
+
form.fields_multiUpload \
|
56
|
+
name: 'user[multi2][]',
|
57
|
+
width: 360,
|
58
|
+
accepts: { fileType: 'image', maxFileSize: 5000 },
|
59
|
+
directUploadUrl: rails_direct_uploads_url,
|
60
|
+
uploadTitle: 'Files uploaded:',
|
61
|
+
uploadFailedText: '(UPLOAD FAILED)',
|
62
|
+
onFinishUpload: ->(action) { action.forms_submit }
|
63
|
+
form.spacer height: 16
|
51
64
|
form.fields_submit text: 'Submit'
|
52
65
|
end)
|
@@ -19,13 +19,19 @@ if room.present?
|
|
19
19
|
}
|
20
20
|
],
|
21
21
|
onOpen: ->(action) do
|
22
|
-
action.
|
22
|
+
action.components_update targetId: 'label-1', views: ->(view) do
|
23
|
+
view.p text: "Room ##{room.upcase}"
|
24
|
+
end
|
23
25
|
end,
|
24
26
|
onClose: ->(action) do
|
25
|
-
action.
|
27
|
+
action.components_update targetId: 'label-1', views: ->(view) do
|
28
|
+
view.p text: "Room ##{room.upcase} (OFF)"
|
29
|
+
end
|
26
30
|
end,
|
27
31
|
onError: ->(action) do
|
28
|
-
action.
|
32
|
+
action.components_update targetId: 'label-1', views: ->(view) do
|
33
|
+
view.p text: "Room ##{room.upcase} (ERROR)"
|
34
|
+
end
|
29
35
|
end
|
30
36
|
end
|
31
37
|
|
@@ -34,6 +34,10 @@ json_ui_page json do |page|
|
|
34
34
|
action.windows_open url: json_ui_garage_url(path: 'pages/redirect_onload')
|
35
35
|
end
|
36
36
|
|
37
|
+
template.thumbnail title: 'Paste file to page', onClick: ->(action) do
|
38
|
+
action.windows_open url: json_ui_garage_url(path: 'pages/paste_file')
|
39
|
+
end
|
40
|
+
|
37
41
|
template.thumbnail title: 'Custom Style Class', onClick: ->(action) do
|
38
42
|
action.windows_open url: json_ui_garage_url(path: 'pages/custom_style_class')
|
39
43
|
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
json.title 'Pages'
|
2
|
+
|
3
|
+
page = json_ui_page json
|
4
|
+
|
5
|
+
render "#{@path_prefix}/nav_menu", json: json, page: page
|
6
|
+
|
7
|
+
page.pasteFile \
|
8
|
+
directUploadUrl: rails_direct_uploads_url,
|
9
|
+
accepts: { fileType: 'image', maxFileSize: 1000 },
|
10
|
+
inputName: 'user',
|
11
|
+
url: json_ui_garage_url(path: 'forms/generic_post')
|
12
|
+
|
13
|
+
page.scroll padding: glib_json_padding_body, childViews: ->(scroll) do
|
14
|
+
scroll.label text: 'Paste image to this page'
|
15
|
+
end
|