glib-web 2.6.0 → 2.6.1

Sign up to get free protection for your applications and to get access to all the features.
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
  - ''