glib-web 4.1.0 → 4.1.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: 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
  - ''