glib-web 4.7.0 → 4.8.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: df493fd28bb7b0ab3a3e2c7ae79e407b6f5b0b5b349366c75729f351e4b36553
4
- data.tar.gz: 1bbc544c5ba2c4cd077c92bbe527ef4e82685dcf82b276860484ec4691cc9640
3
+ metadata.gz: 4af5ec6464503d4acd2375f22f2e7dbde209b628be35a6b749761a360e8ff061
4
+ data.tar.gz: d5447a14755f928524a26367f1ef9a132c773d8d2bce6bb3380be3503b7532eb
5
5
  SHA512:
6
- metadata.gz: 6a9f5f652188581b59f5639bbcad5fe805a03c1094c9818d39c57dbfeb64cd9db8c0909df7006c81ca5e3815223a9141a462190d683761b57d95cd424a0b64bc
7
- data.tar.gz: ad14b2561f8f8948430168cfd1551f0db4b8fbda6111dbc9b14db696eb05bf2f46d50c5460521267888109cb8cf9c0b0ebbf90e2779e6424318d171fe59b5a53
6
+ metadata.gz: 12b6d7f44ef0255a67551dc26ef975ffa474d6fbfbeca8603769e26fd05af893b186efe4a8837e4a98f5f36e9da3aa4b8d191d8a8f8413304cbaafe31e4e1d2f
7
+ data.tar.gz: 5ff79df928df12a4d3fdbdf7c8d5badd688bdd37c887573d4abfdeae4adbdf19e24bfc8abc79d8d2d29fa4f4ed74725c3878232ce42e06fd06908ccb328b02a9
@@ -2,7 +2,8 @@ module Glib
2
2
  module FormsHelper
3
3
  def glib_form_field_label(model_name, prop, args = {})
4
4
  I18n.t("dt_models.#{model_name}.#{prop}.label", **args.merge(default: nil)) ||
5
- I18n.t("activerecord.attributes.#{model_name}.#{prop}", **args)
5
+ I18n.t("activerecord.attributes.#{model_name}.#{prop}", **args.merge(default: nil)) ||
6
+ I18n.t("activemodel.attributes.#{model_name}.#{prop}", **args)
6
7
  end
7
8
 
8
9
  def glib_form_hint_label(model_name, prop, args = {})
@@ -3,6 +3,9 @@ class Glib::JsonUi::ActionBuilder
3
3
  class Upload < Action
4
4
  include Glib::JsonUi::Upload
5
5
  action :onFinished
6
+ string :paramNameForFiles
7
+ string :paramNameForContext
8
+ string :paramNameForFormData
6
9
  end
7
10
  end
8
11
  end
@@ -191,7 +191,9 @@ class Glib::JsonUi::ViewBuilder
191
191
  end
192
192
 
193
193
  class Select < AbstractField
194
- array :options
194
+ attr_reader :_options
195
+
196
+ # array :options
195
197
  # bool :readOnly
196
198
  bool :multiple, cache: true
197
199
  # bool :manualEntry
@@ -200,6 +202,11 @@ class Glib::JsonUi::ViewBuilder
200
202
  panels_builder :accessory, :header, :footer
201
203
  bool :clearable
202
204
 
205
+ def options(value)
206
+ @_options = value
207
+ json.set! 'options', value&.to_a
208
+ end
209
+
203
210
  def searchable(value)
204
211
  @searchable = value
205
212
  end
@@ -207,7 +214,9 @@ class Glib::JsonUi::ViewBuilder
207
214
  def created
208
215
  super
209
216
 
210
- @searchable = @searchable.nil? ? true : @searchable
217
+ if @searchable.nil?
218
+ @searchable = _options.size >= 10
219
+ end
211
220
  json.set! 'searchable', @searchable
212
221
  end
213
222
  end
@@ -102,7 +102,9 @@ class Glib::JsonUi::ViewBuilder
102
102
  if name.ends_with?('_id') && is_single_association?(model, name.chomp('_id'))
103
103
  name = name.chomp('_id') # Always uses non-ID property name in i18n files
104
104
  end
105
- I18n.t("dt_models.#{model_name}.#{name}.label", **args.merge(default: nil)) || I18n.t("activerecord.attributes.#{model_name}.#{name}", **args)
105
+ I18n.t("dt_models.#{model_name}.#{name}.label", **args.merge(default: nil)) ||
106
+ I18n.t("activerecord.attributes.#{model_name}.#{name}", **args.merge(default: nil)) ||
107
+ I18n.t("activemodel.attributes.#{model_name}.#{name}", **args)
106
108
  end
107
109
 
108
110
  def hint_label(prop, args)
@@ -427,6 +429,8 @@ class Glib::JsonUi::ViewBuilder
427
429
  class Tree < View
428
430
  include Glib::JsonUi::Upload
429
431
 
432
+ string :paramNameForFormData
433
+ string :paramNameForContext
430
434
  string :selected
431
435
  action :onDropFile
432
436
  action :onDropView
@@ -50,6 +50,7 @@ module Glib
50
50
  include Builder::MouseEvents
51
51
 
52
52
  string :id
53
+ string :key
53
54
  length :width
54
55
  length :height
55
56
  color :backgroundColor
@@ -21,5 +21,15 @@ module Glib
21
21
  end
22
22
  end
23
23
  end
24
+
25
+ def assert_core_columns_exist
26
+ if Rails.env.development? || Rails.env.test?
27
+ [:id, :created_at, :updated_at].each do |column_name|
28
+ unless self.class.column_names.include?(column_name.to_s)
29
+ raise ActiveRecord::ConfigurationError, "#{self.class.table_name}.#{column_name} should exist"
30
+ end
31
+ end
32
+ end
33
+ end
24
34
  end
25
35
  end
@@ -46,7 +46,7 @@ page.form url: json_ui_garage_url(path: 'forms/basic_post'), method: 'post', pad
46
46
  ],
47
47
  imageUploader: {
48
48
  name: 'user[images_attributes][]',
49
- accepts: { fileType: 'image/*', maxFileSize: 5000 },
49
+ accepts: { fileType: 'image', maxFileSize: 5000 },
50
50
  directUploadUrl: glib_direct_uploads_url
51
51
  },
52
52
  onChange: ->(action) do
@@ -383,7 +383,7 @@ page.form \
383
383
  end
384
384
  end
385
385
 
386
- form.panels_vertical \
386
+ form.panels_responsive \
387
387
  id: 'panel7a',
388
388
  styleClass: 'border-2',
389
389
  width: 'matchParent',
@@ -392,7 +392,7 @@ page.form \
392
392
  vertical.fields_text name: 'user[0][loadif_target9]', width: 'matchParent', value: 'Value 7a'
393
393
  end
394
394
 
395
- form.panels_vertical \
395
+ form.panels_responsive \
396
396
  id: 'panel7b',
397
397
  styleClass: 'border-2',
398
398
  width: 'matchParent',
@@ -401,7 +401,7 @@ page.form \
401
401
  vertical.fields_text name: 'user[1][loadif_target9]', width: 'matchParent', value: 'Value 7b'
402
402
  end
403
403
 
404
- form.panels_vertical \
404
+ form.panels_responsive \
405
405
  id: 'panel7c',
406
406
  styleClass: 'border-2',
407
407
  width: 'matchParent',
@@ -1,9 +1,12 @@
1
1
  json.title 'Panels'
2
2
 
3
3
  onDropFile = ->(action) do
4
- action.files_upload directUploadUrl: glib_direct_uploads_url, onFinished: ->(saction) do
5
- saction.http_post url: json_ui_garage_url(path: 'forms/generic_post_all')
6
- end
4
+ action.files_upload \
5
+ directUploadUrl: glib_direct_uploads_url,
6
+ paramNameForFiles: 'signedIds',
7
+ onFinished: ->(saction) do
8
+ saction.http_post url: json_ui_garage_url(path: 'forms/generic_post_all')
9
+ end
7
10
  end
8
11
  onDropView = ->(action) do
9
12
  action.http_post url: json_ui_garage_url(path: 'forms/generic_post_all')
@@ -18,6 +21,8 @@ json_ui_page json do |page|
18
21
 
19
22
  scroll.panels_column md: { cols: 4 }, childViews: ->(col) do
20
23
  scroll.panels_tree \
24
+ paramNameForContext: 'moved',
25
+ # paramNameForFormData: 'message',
21
26
  onDropFile: onDropFile,
22
27
  onDropView: onDropView,
23
28
  selected: params[:selected] || 'arabian-1.mp3',
@@ -33,6 +38,7 @@ json_ui_page json do |page|
33
38
  id: 'pop',
34
39
  title: 'Pop',
35
40
  icon: { name: 'folder', size: 24, color: '#6e6e6e' },
41
+ dropData: { genre: 'pop' },
36
42
  onClick: ->(action) { action.windows_reload url: json_ui_garage_current_url(selected: 'pop') },
37
43
  subtitle: params['selected'] == 'pop' ? 'Pop music is a genre of popular music that originated in its modern' : nil,
38
44
  rows: ['pop-1.mp3', 'pop-2.mp3', 'pop-3.mp3']
@@ -40,6 +46,7 @@ json_ui_page json do |page|
40
46
  id: 'arab',
41
47
  title: 'Arabian',
42
48
  icon: { name: 'folder', size: 24, color: '#6e6e6e' },
49
+ dropData: { genre: 'arab' },
43
50
  onClick: ->(action) { action.windows_reload url: json_ui_garage_current_url(selected: 'arab') },
44
51
  subtitle: params['selected'] == 'arab' ? 'Arabic music is the music of the Arab world' : nil,
45
52
  rows: ['arabian-1.mp3', 'arabian-2.mp3', 'arabian-3.mp3']
@@ -48,6 +55,7 @@ json_ui_page json do |page|
48
55
  title: 'Phonk',
49
56
  onClick: ->(action) { action.windows_reload url: json_ui_garage_current_url(selected: 'phonk') },
50
57
  icon: { name: 'folder', size: 24, color: '#6e6e6e' },
58
+ dropData: { genre: 'phonk' },
51
59
  subtitle: params['selected'] == 'phonk' ? 'Phonk is a subgenre of hip hop and trap music' : nil,
52
60
  rows: ['phonk1.mp3', 'phonk-2.mp3', { id: 'hard-phonk', title: 'Hard Phonk', rows: ['hard-phonk-1.mp3', 'hard-phonk-2.mp3'] }]
53
61
  end
@@ -44,7 +44,11 @@ page.body childViews: ->(body) do
44
44
  end
45
45
  hori.spacer width: 4
46
46
  hori.button text: 'hide select', onClick: ->(action) do
47
- action.components_set targetId: 'select', data: { displayed: false }
47
+ action.runMultiple childActions: ->(saction) do
48
+ ['select', 'select1', 'select2', 'select3'].each do |id|
49
+ saction.components_set targetId: id, data: { displayed: false }
50
+ end
51
+ end
48
52
  end
49
53
  hori.spacer height: 4
50
54
  hori.button text: 'hide jack', onClick: ->(action) do
@@ -71,8 +75,22 @@ page.body childViews: ->(body) do
71
75
 
72
76
  form.fields_date width: 'matchParent', name: 'user[date]', id: 'date', value: Date.new(2024, 7, 24), validation: validation
73
77
  form.hr width: 'matchParent'
74
- form.fields_select multiple: true, width: 'matchParent', name: 'user[select][]', id: 'select', options: options, value: ['option1', 'option2'], validation: validation
78
+ form.fields_select clearable: true, multiple: true, width: 'matchParent', name: 'user[select][]', id: 'select', options: options, value: ['option1', 'option2'], validation: validation
75
79
  form.hr width: 'matchParent'
80
+ form.panels_flow innerPadding: { bottom: 0 }, width: 'matchParent', id: 'select1', childViews: ->(flow) do
81
+ form.fields_select clearable: true, width: 'matchParent', name: 'user[select1]', options: options, value: 'option1'
82
+ form.hr width: 'matchParent'
83
+ end
84
+ form.panels_horizontal id: 'select2', width: 'matchParent', childViews: ->(hori) do
85
+ form.fields_select clearable: true, width: 'matchParent', name: 'user[select2]', options: options, value: 'option2'
86
+ form.hr width: 'matchParent'
87
+ end
88
+ form.panels_split id: 'select3', width: 'matchParent', content: ->(split) do
89
+ split.left childViews: ->(right) do
90
+ form.fields_select clearable: true, width: 'matchParent', name: 'user[select3]', options: options, value: 'option3'
91
+ form.hr width: 'matchParent'
92
+ end
93
+ end
76
94
  form.fields_chipGroup width: 'matchParent', name: 'user[chip_group]', id: 'chip_group', options: options, value: ['option2'], validation: validation
77
95
  form.hr width: 'matchParent'
78
96
  form.fields_radioGroup width: 'matchParent', name: 'user[radio_group]', id: 'radio_group', value: 'option3', validation: validation, childViews: ->(radio) do
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: 4.7.0
4
+ version: 4.8.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - ''