glib-web 2.6.0 → 2.6.1

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f0d389754a1133b159974aeaa56aa3e4accfc8307b6b97cefbb2497fea7bfb8c
4
- data.tar.gz: 13c62150593ffdfb6ff2777024e1bc87388084a4e44de0639de3ab8d88879f1e
3
+ metadata.gz: eb13d4976eaaf07dbf2459dc8be1eee222ebd668c04f1886bec4ce8e0e497ec6
4
+ data.tar.gz: 6781da7837fadbe015c7df63adcc6956289900c2064aac27cf7d345888554ee9
5
5
  SHA512:
6
- metadata.gz: 2311300ae71398f14829508dc7ec1d99cc8de4d6747f11157dbbfcb92b81468212b5eeded5efa16c8956f40332366f3584fec2977ee8834872356c6de0c4b2ef
7
- data.tar.gz: 5390d92bcb6e076141e17fca981a250a304f6fa9582e3bb6aab492a05d46027125c2a0bea8cc15a496cabbc8beb80dc60e1bb17f209c0bb92b84fd254ccdf57d
6
+ metadata.gz: 2a95897d9a5725703b1379689095563dab95d29cceba0f0c6394673d3d2cb4360efc0031915a59e1fe6265086baade6924fe1646c66732ba295d6d652b3e79bd
7
+ data.tar.gz: ef34016972a3b1be612213db6269505ea37292ddc1c37d1b6d5a3bc4adb3a1a5fccdcc5fa3d5020e64adcdf8e5f267a444386dc93c68844202bf1dc9cf954c15
@@ -36,6 +36,24 @@ module Glib::Json::Libs
36
36
  json_ui_app_device_os == 'web'
37
37
  end
38
38
 
39
+ def json_ui_etag
40
+ template = "#{controller_name}/#{action_name}"
41
+
42
+ # 1) It's necessary to pass in the template explicitly because of the switching between JSON
43
+ # and HTML rendering.
44
+ #
45
+ # 2) When a model is not provided, two pages the use the same template (e.g. `projects#show`)
46
+ # will produce the exact same ETAG, even though their content might be different. Presumably
47
+ # this is because the ETAG is calculated based on the static template as opposed to the
48
+ # generated output.
49
+ #
50
+ # However, this is not a problem because the browser will still treat these pages as
51
+ # separate because they have different URLs (e.g. `projects/1` vs `projects/2`), meaning
52
+ # that it will not accidentally use the cache from a different URL even though the ETAG
53
+ # is exactly the same.
54
+ fresh_when nil, template: template
55
+ end
56
+
39
57
  def json_ui_render(template, args = {})
40
58
  JSON.parse(render_to_string(template, locals: args))
41
59
  end
@@ -1,6 +1,7 @@
1
1
  class Glib::JsonUi::ActionBuilder
2
2
  module Dialogs
3
3
  class Alert < Action
4
+ string :title
4
5
  string :message
5
6
  action :onLoad
6
7
  action :onClose
@@ -44,6 +45,7 @@ class Glib::JsonUi::ActionBuilder
44
45
  bool :showClose
45
46
  string :fullscreen
46
47
  length :width
48
+ length :height
47
49
  end
48
50
 
49
51
  class Reload < Action
@@ -9,5 +9,8 @@ class Glib::JsonUi::ActionBuilder
9
9
  array :steps
10
10
  int :startFrom
11
11
  end
12
+
13
+ class Stop < Action
14
+ end
12
15
  end
13
16
  end
@@ -303,7 +303,8 @@ class Glib::JsonUi::ViewBuilder
303
303
  end
304
304
 
305
305
  class Otp < AbstractField
306
- int :lengths
306
+ int :length
307
+ string :type
307
308
  end
308
309
 
309
310
  class Rating < AbstractField
@@ -14,21 +14,24 @@ page.form \
14
14
  form.spacer height: 6
15
15
  form.fields_otp \
16
16
  name: 'user[otp_summary1]',
17
- lengths: 7
17
+ length: 7,
18
+ type: 'text'
18
19
 
19
20
  form.spacer height: 20
20
- form.h2 text: 'OTP Custom Length'
21
+ form.h2 text: 'OTP Custom Length and input type number'
21
22
  form.spacer height: 6
22
23
  form.fields_otp \
23
24
  name: 'user[otp_summary2]',
24
- lengths: 3
25
+ length: 3,
26
+ type: 'number'
25
27
 
26
28
  form.spacer height: 20
27
29
  form.h2 text: 'OTP with Long Field'
28
30
  form.spacer height: 6
29
31
  form.fields_otp \
30
32
  name: 'user[otp_summary3]',
31
- lengths: 20
33
+ length: 20,
34
+ type: 'text'
32
35
 
33
36
  form.spacer height: 20
34
37
  form.fields_submit text: 'Submit'
@@ -17,8 +17,11 @@ page.scroll childViews: ->(scroll) do
17
17
  checkValue: '16+',
18
18
  uncheckValue: '0-16',
19
19
  label: 'I am over 16 (has default value)',
20
+ paramNameForFormData: 'message',
20
21
  onChange: ->(action) do
21
- action.forms_submit
22
+ action.dialogs_alert title: 'Submit data?', onClose: ->(subaction) do
23
+ action.forms_submit
24
+ end
22
25
  end
23
26
 
24
27
  form.fields_check \
@@ -43,7 +46,7 @@ page.scroll childViews: ->(scroll) do
43
46
  onChange: ->(action) do
44
47
  action.snackbars_select message: 'Submit data?', buttons: ->(menu) do
45
48
  menu.button text: 'Yes, submit', onClick: ->(subaction) do
46
- action.forms_submit
49
+ subaction.forms_submit
47
50
  end
48
51
  end
49
52
  end
@@ -57,6 +60,7 @@ page.scroll childViews: ->(scroll) do
57
60
  group.fields_radio value: 'senior', label: 'Senior'
58
61
  group.fields_radio value: 'junior', label: 'Junior'
59
62
  end,
63
+ paramNameForFormData: 'message',
60
64
  onChange: ->(action) do
61
65
  action.sheets_select message: 'Submit data?', buttons: ->(menu) do
62
66
  menu.button text: 'Yes, submit', onClick: ->(subaction) do
@@ -78,6 +82,20 @@ page.scroll childViews: ->(scroll) do
78
82
  end
79
83
  end
80
84
 
85
+
86
+ form.spacer height: 20
87
+ form.h2 text: 'Textarea'
88
+ form.fields_textarea \
89
+ name: 'user[bio]',
90
+ width: 'matchParent',
91
+ onChange: ->(action) do
92
+ action.sheets_select message: 'Submit data?', buttons: ->(menu) do
93
+ menu.button text: 'Yes, submit', onClick: ->(subaction) do
94
+ action.forms_submit
95
+ end
96
+ end
97
+ end
98
+
81
99
  form.spacer height: 20
82
100
  form.h2 text: 'Text (Asynchronous)'
83
101
  form.fields_text \
@@ -86,6 +104,23 @@ page.scroll childViews: ->(scroll) do
86
104
  onChange: ->(action) do
87
105
  action.http_post url: json_ui_garage_url(path: 'forms/generic_post')
88
106
  end
107
+
108
+ form.spacer height: 20
109
+ rules = { fileType: 'image', maxFileSize: 5000, fileTypeErrorText: 'Invalid!', maxFileSizeErrorText: 'Too big!' }
110
+ form.fields_file \
111
+ name: 'user[photo][]',
112
+ width: 'matchParent',
113
+ label: 'Avatar',
114
+ accepts: rules,
115
+ directUploadUrl: rails_direct_uploads_url,
116
+ placeholderView: { type: 'avatar', width: 100, height: 100, url: 'data:image/jpeg;base64,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' },
117
+ onChange: ->(action) do
118
+ action.sheets_select message: 'Submit data?', buttons: ->(menu) do
119
+ menu.button text: 'Yes, submit', onClick: ->(subaction) do
120
+ action.forms_submit
121
+ end
122
+ end
123
+ end
89
124
  end
90
125
 
91
126
  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: 2.6.0
4
+ version: 2.6.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - ''