glib-web 4.1.0 → 4.1.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: 075c1d55a3db9efb8b8fd9302c410203f54f3feaf13e9debb3273fab7facf009
4
- data.tar.gz: c9f19882259bb4e898578994734ece1c472a63b0dfffd7b41cb9fa8a3f89d1bb
3
+ metadata.gz: 5022fe611c19e51340f145ab4bb5577c208211186b575a2e784f8f50de06860c
4
+ data.tar.gz: c1fc17633202ac17023f5040129165779283654334212168933608ed7df12e4f
5
5
  SHA512:
6
- metadata.gz: 7c07ee59726cdf85c3cedf5970097fff38916c1e56d062332f61d7fd2692ebf316d9eacb32c9d6e4a65bedec4af28f66ceddf86fe95c84d0fba87ec215250ca6
7
- data.tar.gz: 70d5e728d9730c9b0f2d63d9d34bea15654d8d8048eba682f114ec29c937020c1e058d205d523837a63ea54fa3ef878de498cd310cf1d96e52b435d7ded18109
6
+ metadata.gz: d42b359a6e270fcdadfb8592af408974defc48bbd632d9cf91116f3a37fba4c47ac4bd54f53417c07ccb36afc883b1cbb72cd4afc1e0378b7a7dff283079c365
7
+ data.tar.gz: 2b96d286b67a6e6faa900a474ea93d34a060eef45c0c1d85a493993757497ba8c0a14a624ba3e0764ad9c599bf35518c761f3c061af7a9ec20fa22c6948fd8ae
@@ -53,6 +53,10 @@ class Glib::JsonUi::ViewBuilder
53
53
  @prop = prop
54
54
  end
55
55
 
56
+ def autoValidate(autoValidate)
57
+ @autoValidate = autoValidate
58
+ end
59
+
56
60
  # Override
57
61
  def created
58
62
  if @prop && (form = page.current_form)
@@ -79,8 +83,7 @@ class Glib::JsonUi::ViewBuilder
79
83
  # - Placeholder competes with label for space
80
84
  json.placeholder @placeholder if @placeholder
81
85
 
82
- # TODO: Add a flag so the framework's user can turn it on and off.
83
- # json.validation @validation if @validation
86
+ json.validation @validation if @autoValidate
84
87
  end
85
88
 
86
89
  # To be overridden
@@ -139,6 +142,7 @@ class Glib::JsonUi::ViewBuilder
139
142
  string :text
140
143
  color :color
141
144
  icon :icon
145
+ bool :disableIfFormInvalid
142
146
  end
143
147
 
144
148
  class CheckGroup < AbstractField
@@ -317,6 +321,7 @@ class Glib::JsonUi::ViewBuilder
317
321
 
318
322
  string :storagePrefix
319
323
  hash :metadata
324
+ hash :tags
320
325
 
321
326
  required :accepts, :directUploadUrl
322
327
 
@@ -121,10 +121,40 @@ class Glib::JsonUi::ViewBuilder
121
121
  def self.field_validation(model, prop)
122
122
  validations = {}
123
123
  model.class.validators_on(prop).each do |validator|
124
- if validator.kind == :presence
125
- validations[:required] = { message: 'Required' }
124
+ validations[validator.kind] = validator.options.except(:if, :unless)
125
+ validations[validator.kind][:message] = validator.options[:message]
126
+ case validator.kind
127
+ when :presence
128
+ validations[validator.kind][:message] ||= I18n.t('errors.messages.present')
129
+ when :acceptance
130
+ validations[validator.kind][:message] ||= I18n.t('errors.messages.accepted')
131
+ when :confirmation
132
+ # raise NotImplemented
133
+ when :numericality
134
+ # raise NotImplemented
135
+ when :comparison
136
+ comparison = validator.options.first[0]
137
+ validations[validator.kind][:message] ||= I18n.t("errors.messages.#{comparison}")
138
+ when :format
139
+ validations[validator.kind][:message] ||= I18n.t('errors.messages.invalid')
140
+ when :inclusion
141
+ validations[validator.kind][:message] ||= I18n.t('errors.messages.inclusion')
142
+ when :exclusion
143
+ validations[validator.kind][:message] ||= I18n.t('errors.messages.exclusion')
144
+ when :length
145
+ validations[validator.kind][:message] = {
146
+ too_long: I18n.t('errors.messages.too_long'),
147
+ wrong_length: I18n.t('errors.messages.wrong_length'),
148
+ too_short: I18n.t('errors.messages.too_short')
149
+ }
126
150
  end
127
151
  end
152
+
153
+ if validations[:presence].present?
154
+ validations[:required] = validations[:presence]
155
+ validations.delete(:presence)
156
+ end
157
+
128
158
  validations
129
159
  end
130
160
 
@@ -32,6 +32,11 @@ page.scroll childViews: ->(scroll) do
32
32
  group.fields_check checkValue: 4, label: 'Photography'
33
33
  end
34
34
 
35
+ form.spacer height: 20
36
+ form.h2 text: 'Check without group'
37
+ form.spacer height: 4
38
+ form.fields_check name: 'user[driver]', label: 'Do you have driver license?'
39
+
35
40
  form.spacer height: 20
36
41
  form.button text: 'Submit', onClick: ->(action) { action.forms_submit }
37
42
  end
@@ -106,4 +106,5 @@ page.form \
106
106
 
107
107
  form.spacer height: 30
108
108
  form.fields_submit text: 'Submit'
109
+ form.fields_submit text: 'Submit (disable if form invalid)', disableIfFormInvalid: true
109
110
  end
@@ -11,7 +11,7 @@ section.rows builder: ->(row) do
11
11
  array.each do |i|
12
12
  index = page_index * batch_count + i
13
13
  if local_assigns[:reorder]
14
- row.thumbnail title: "Item #{index}", id: "item_#{index}"
14
+ row.thumbnail title: "Item #{index}"
15
15
  else
16
16
  row.thumbnail title: "Item #{index}", subtitle: "Sub Item #{index}", subsubtitle: "Sub Sub Item #{index}"
17
17
  end
@@ -38,10 +38,25 @@ page.scroll padding: glib_json_padding_body, childViews: ->(scroll) do
38
38
  action.windows_open url: json_ui_garage_url(path: 'home/blank')
39
39
  end
40
40
 
41
- ul.button icon: 'keyboard_arrow_down', text: 'Level 2', styleClass: 'link', childButtons: ->(menu) do
42
- menu.button text: 'Dropdown item 1'
43
- menu.button text: 'Dropdown item 2'
44
- menu.button text: 'Dropdown item 3'
41
+ ul.button icon: 'keyboard_arrow_down', text: 'Level 2', styleClass: 'link', onClick: ->(action) do
42
+ action.popovers_show \
43
+ key: 'menu',
44
+ placement: 'bottom-start',
45
+ content: ->(dialog) do
46
+ dialog.body childViews: ->(view) do
47
+ view.panels_responsive styleClass: 'popover-menu', width: 200, childViews: ->(res) do
48
+ res.label text: 'Item 1', styleClass: 'popover-menu-item', onClick: ->(saction) do
49
+ saction.popovers_close key: 'menu'
50
+ end
51
+ res.label text: 'Item 2', styleClass: 'popover-menu-item', onClick: ->(saction) do
52
+ saction.popovers_close key: 'menu'
53
+ end
54
+ res.label text: 'Item 3', styleClass: 'popover-menu-item', onClick: ->(saction) do
55
+ saction.popovers_close key: 'menu'
56
+ end
57
+ end
58
+ end
59
+ end
45
60
  end
46
61
  ul.label text: 'Level 3'
47
62
  end
@@ -58,7 +58,7 @@ json_ui_page json do |page|
58
58
  scroll.spacer height: 20
59
59
  scroll.h2 text: 'Icon with onClick'
60
60
  scroll.spacer height: 6
61
- scroll.icon spec: 'info', onClick: ->(action) do
61
+ scroll.icon name: 'info', onClick: ->(action) do
62
62
  action.windows_open url: json_ui_garage_url(path: 'home/blank')
63
63
  end
64
64
 
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.1.0
4
+ version: 4.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - ''