glib-web 3.23.2 → 3.24.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: 5a463edeeb95d3a9e47207f9e5fd921303312b569631d93dd5ea8c23efba11ed
4
- data.tar.gz: b38669675d682f3d496494911644e77c1a6c1a3f7cf2842ae3ad711881d0a491
3
+ metadata.gz: efea09ac466f54d5eb3b868b7ab7f1f042d8f7185969f9fb6f8201c23de313c1
4
+ data.tar.gz: c09fe47288f977d7e8d61835294f66d10be6c4a8974845ca054123f94c0e5ad2
5
5
  SHA512:
6
- metadata.gz: f18b467c3684b845aa4a9df7ea9a59a2f295dca6e8a2a33e3b10f843f6e56470de7acd8033c41ef6e0648a289e40e91e9dcdfa525f4eddf3f1babcf58d2a39f5
7
- data.tar.gz: 1261d90e5b621f6a27b93505af7fef472d6fb7375a042827a84003694a212b271bedbaa08c1a08eae6c2c1334486b01f479bb0a8729fe03f6891494b1378b4db
6
+ metadata.gz: 803e0cd9bb622b0810e622a996c2d3e9ed26903d773280eae32e3c78877b04e1bed20f261ebcadd1b5124e21a08fb4ac8598b51ef203aa8c052bd9eddf424337
7
+ data.tar.gz: 31c43c485528da181ac17a78301f919d1c743d358adf0a72ec96908680cf5325fa6621ac4239b052f313e0b76fb0dc0a7e007201c1acf32294fa250c75bdefce
@@ -6,7 +6,8 @@ module Glib::Json::Libs
6
6
 
7
7
  helper_method :json_ui_app_bundle_id, :json_ui_app_build_version, :json_ui_app_device_os
8
8
  helper_method :json_ui_app_is_android?, :json_ui_app_is_ios?, :json_ui_app_is_web?
9
- helper_method :json_ui_redirect_back_or_to
9
+ # helper_method :json_ui_redirect_back_or_to
10
+ helper_method :delete_redirect_back_url
10
11
 
11
12
  include Glib::Auth::Response
12
13
  helper_method :glib_json_dialog_mode?
@@ -115,7 +116,7 @@ module Glib::Json::Libs
115
116
 
116
117
  def glib_handle_401(sign_in_url)
117
118
  if !glib_json_dialog_mode? && request.get?
118
- session[REDIRECT_BACK_KEY] = url_for(params.to_unsafe_h.merge(format: nil))
119
+ json_ui_save_return_url
119
120
  end
120
121
 
121
122
  respond_to do |format|
@@ -160,17 +161,22 @@ module Glib::Json::Libs
160
161
  session.delete(REDIRECT_BACK_KEY) || url
161
162
  end
162
163
 
164
+ def delete_redirect_back_url(url)
165
+ __delete_redirect_back_url(url)
166
+ end
167
+
163
168
  # def html_ui_redirect_back_or_to(default_url)
164
169
  # redirect_url = __delete_redirect_back_url(default_url)
165
170
  # redirect_to redirect_url
166
171
  # end
167
172
 
168
- def json_ui_redirect_back_or_to(default_url, json_action)
169
- redirect_url = __delete_redirect_back_url(default_url)
170
- json_action.windows_closeAll onClose: ->(subaction) do
171
- subaction.windows_open url: redirect_url
172
- end
173
- end
173
+ # def json_ui_redirect_back_or_to(default_url, json_action)
174
+ # redirect_url = __delete_redirect_back_url(default_url)
175
+ # json_action.windows_closeAll onClose: ->(subaction) do
176
+ # puts "***** R2: #{redirect_url}"
177
+ # subaction.windows_open url: redirect_url
178
+ # end
179
+ # end
174
180
 
175
181
  def __glib_error_dialog(title, message)
176
182
  {
@@ -223,15 +229,17 @@ module Glib::Json::Libs
223
229
  end
224
230
 
225
231
  def json_ui_redirect_to(url)
226
- # `onLoad` also executes in `onResponse` situation, e.g. form submit.
227
- on_load = { action: 'windows/open', url: url }
232
+ on_response = { action: 'windows/open', url: url }
228
233
 
229
234
  if glib_json_dialog_mode?
230
235
  # Only do this in dialog mode because this seems to add to the rendering time
231
236
  # (i.e. longer flicker time), presumably due to the use of things like `nextTick()`.
232
- on_load = { action: 'dialogs/close', onClose: on_load }
237
+ on_response = { action: 'dialogs/close', onClose: on_load }
233
238
  end
234
- render json: { onLoad: on_load }
239
+
240
+ # Use onResponse because it is harder to guarantee that `onLoad` executes in Vuejs because it relies
241
+ # on app.vue's reactivity.
242
+ render json: { onResponse: on_response }
235
243
  end
236
244
 
237
245
  module ClassMethods
@@ -1,11 +1,15 @@
1
1
  module Glib
2
2
  module EnumHelper
3
- def glib_enum_options(clazz, enum_field, keys: nil, include_hints: false)
3
+ def glib_enum_options(clazz, enum_field, keys: nil, hint_suffix: false, hint_subtitle: false)
4
4
  enum_name = enum_field.to_s
5
5
  keys ||= clazz.defined_enums[enum_name].keys
6
6
  keys.map do |i|
7
- text = clazz.glib_enum_humanize(enum_field, i, include_hints: include_hints)
8
- { text: text, value: i }
7
+ text = clazz.glib_enum_humanize(enum_field, i, hint_suffix: hint_suffix)
8
+ option = { text: text, value: i }
9
+ if hint_subtitle && (hint = clazz.glib_enum_hint(enum_field, i))
10
+ option[:subtitle] = hint
11
+ end
12
+ option
9
13
  end
10
14
  end
11
15
 
@@ -106,6 +106,7 @@ class Glib::JsonUi::ViewBuilder
106
106
  class Number < Text
107
107
  int :min
108
108
  int :max
109
+ int :precision
109
110
  end
110
111
 
111
112
  class Email < Text
@@ -11,13 +11,13 @@ module Glib
11
11
  extend ClassMethods
12
12
  end
13
13
 
14
- def glib_enum_humanize(enum_name, default_enum_value = nil, include_hints: false)
15
- self.class.glib_enum_humanize(enum_name, send(enum_name) || default_enum_value, include_hints: include_hints)
14
+ def glib_enum_humanize(enum_name, default_enum_value = nil, hint_suffix: false)
15
+ self.class.glib_enum_humanize(enum_name, send(enum_name) || default_enum_value, hint_suffix: hint_suffix)
16
16
  end
17
17
  end
18
18
 
19
19
  module ClassMethods
20
- def glib_enum_humanize(enum_name, enum_value, default_translation = nil, include_hints: false)
20
+ def glib_enum_humanize(enum_name, enum_value, default_translation = nil, hint_suffix: false)
21
21
  if enum_value
22
22
  translation_key = "activerecord.attributes.#{model_name.i18n_key}.#{enum_name.to_s.pluralize}.#{enum_value}"
23
23
 
@@ -27,15 +27,22 @@ module Glib
27
27
  text = I18n.t(translation_key, default: default_translation)
28
28
  end
29
29
 
30
- if include_hints
31
- i18n_key = self.model_name.i18n_key
32
- if (hint = I18n.t("dt_models.#{i18n_key}.#{enum_name.to_s.pluralize}.#{enum_value}.hint")).present?
33
- text += " #{hint}"
34
- end
30
+ if hint_suffix && (hint = glib_enum_hint(enum_name, enum_value))
31
+ text += " #{hint}"
35
32
  end
36
33
 
37
34
  text
38
35
  end
39
36
  end
37
+
38
+ def glib_enum_hint(enum_name, enum_value)
39
+ i18n_key = self.model_name.i18n_key
40
+ if (hint = I18n.t("dt_models.#{i18n_key}.#{enum_name.to_s.pluralize}.#{enum_value}.hint")).present?
41
+ # text += " #{hint}"
42
+ return hint
43
+ end
44
+
45
+ nil
46
+ end
40
47
  end
41
48
  end
@@ -61,6 +61,16 @@ page.form url: json_ui_garage_url(path: 'forms/generic_post'), method: 'post', p
61
61
  ]
62
62
  }
63
63
 
64
+ form.spacer height: 20
65
+ form.h2 text: 'Divided by 3 (with precision set)'
66
+ form.spacer height: 6
67
+ form.fields_number name: 'user[number1]', width: 'matchParent', value: 10
68
+ form.fields_number \
69
+ name: 'user[number2]',
70
+ width: 'matchParent',
71
+ precision: 1,
72
+ valueIf: { "/": [{ "var": 'user[number1]' }, 3] }
73
+
64
74
  form.spacer height: 20
65
75
  form.fields_submit text: 'Submit'
66
76
  form.spacer height: 40
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: 3.23.2
4
+ version: 3.24.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - ''