ui_bibz 2.1.6 → 2.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +19 -10
- data/app/assets/javascripts/interface.coffee +8 -0
- data/app/assets/javascripts/ui_bibz.coffee.erb +3 -0
- data/app/assets/stylesheets/fix_addon.sass +2 -2
- data/lib/ui_bibz.rb +8 -0
- data/lib/ui_bibz/helpers/ui/core/forms_helper.rb +35 -0
- data/lib/ui_bibz/infos.rb +2 -2
- data/lib/ui_bibz/inputs/ui_bibz_inputs/ui_box_switch_field_input.rb +18 -0
- data/lib/ui_bibz/inputs/ui_bibz_inputs/ui_file_field_input.rb +10 -0
- data/lib/ui_bibz/inputs/ui_bibz_inputs/ui_range_field_input.rb +10 -0
- data/lib/ui_bibz/inputs/ui_bibz_inputs/ui_switch_field_input.rb +5 -1
- data/lib/ui_bibz/ui/core/component.rb +4 -0
- data/lib/ui_bibz/ui/core/forms/choices/box_switch_field.rb +141 -0
- data/lib/ui_bibz/ui/core/forms/choices/checkbox_field.rb +18 -27
- data/lib/ui_bibz/ui/core/forms/choices/radio_field.rb +15 -40
- data/lib/ui_bibz/ui/core/forms/choices/switch_field.rb +11 -95
- data/lib/ui_bibz/ui/core/forms/dates/date_picker_field.rb +25 -0
- data/lib/ui_bibz/ui/core/forms/dropdowns/dropdown.rb +5 -1
- data/lib/ui_bibz/ui/core/forms/files/file_field.rb +72 -0
- data/lib/ui_bibz/ui/core/forms/numbers/number_field.rb +15 -0
- data/lib/ui_bibz/ui/core/forms/numbers/range_field.rb +66 -0
- data/lib/ui_bibz/ui/core/forms/selects/multi_select_field.rb +9 -1
- data/lib/ui_bibz/ui/core/forms/texts/text_field.rb +3 -0
- data/test/simple_form_test.rb +33 -3
- data/test/ui/core/forms/choices/{switch_field_test.rb → box_switch_field_test.rb} +21 -21
- data/test/ui/core/forms/choices/checkbox_field_test.rb +1 -1
- data/test/ui/core/forms/choices/radio_field_test.rb +1 -1
- data/test/ui/core/forms/files/text_field_test.rb +11 -0
- data/test/ui/core/forms/numbers/number_field_test.rb +18 -0
- data/test/ui/core/forms/numbers/range_field_test.rb +18 -0
- data/vendor/assets/javascripts/bs-custom-file-input.min.js +7 -0
- metadata +19 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 28b2120a42b008d9db7300223c513f47f29b5e2b31d65d39483e87e55834a3b6
|
4
|
+
data.tar.gz: 430093a7d9f3ae35d3f371ba20425ef0d42c2926be31c61334e425dcc7383e79
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 308f601643a668e5764ae6898e8d28440f0f440b2be2767c57a231f040993c035d1c057b9a8b9cc4eb263bb8bc7a6e85b634775921d96baa06696c0b0062224a
|
7
|
+
data.tar.gz: d2aabe40d98a154d48ced23dcadabece4405cf888b93071fbcd58f072fe36ac62950538d1279090856acc7d7d8fd8d3bccbeb9f6035fd7c2b2c4daae34606a16
|
data/Gemfile.lock
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
ui_bibz (2.
|
5
|
-
bootstrap (= 4.1
|
4
|
+
ui_bibz (2.2.0)
|
5
|
+
bootstrap (= 4.2.1)
|
6
6
|
haml
|
7
7
|
haml-rails
|
8
8
|
jquery-rails (>= 3.1.0)
|
@@ -57,13 +57,13 @@ GEM
|
|
57
57
|
minitest (~> 5.1)
|
58
58
|
tzinfo (~> 1.1)
|
59
59
|
arel (9.0.0)
|
60
|
-
autoprefixer-rails (9.4.
|
60
|
+
autoprefixer-rails (9.4.4)
|
61
61
|
execjs
|
62
62
|
awesome_print (1.8.0)
|
63
|
-
bootstrap (4.1
|
64
|
-
autoprefixer-rails (>=
|
65
|
-
popper_js (>= 1.
|
66
|
-
|
63
|
+
bootstrap (4.2.1)
|
64
|
+
autoprefixer-rails (>= 9.1.0)
|
65
|
+
popper_js (>= 1.14.3, < 2)
|
66
|
+
sassc-rails (>= 2.0.0)
|
67
67
|
builder (3.2.3)
|
68
68
|
byebug (10.0.2)
|
69
69
|
codeclimate-test-reporter (1.0.7)
|
@@ -96,7 +96,7 @@ GEM
|
|
96
96
|
haml (>= 4.0, < 6)
|
97
97
|
nokogiri (>= 1.6.0)
|
98
98
|
ruby_parser (~> 3.5)
|
99
|
-
i18n (1.
|
99
|
+
i18n (1.5.1)
|
100
100
|
concurrent-ruby (~> 1.0)
|
101
101
|
jquery-rails (4.3.3)
|
102
102
|
rails-dom-testing (>= 1, < 3)
|
@@ -116,7 +116,7 @@ GEM
|
|
116
116
|
mini_portile2 (2.4.0)
|
117
117
|
minitest (5.11.3)
|
118
118
|
nio4r (2.3.1)
|
119
|
-
nokogiri (1.
|
119
|
+
nokogiri (1.10.0)
|
120
120
|
mini_portile2 (~> 2.4.0)
|
121
121
|
popper_js (1.14.5)
|
122
122
|
rack (2.0.6)
|
@@ -152,7 +152,7 @@ GEM
|
|
152
152
|
ffi (~> 1.0)
|
153
153
|
ruby_parser (3.12.0)
|
154
154
|
sexp_processor (~> 4.9)
|
155
|
-
sass (3.7.
|
155
|
+
sass (3.7.3)
|
156
156
|
sass-listen (~> 4.0.0)
|
157
157
|
sass-listen (4.0.0)
|
158
158
|
rb-fsevent (~> 0.9, >= 0.9.4)
|
@@ -163,6 +163,15 @@ GEM
|
|
163
163
|
sprockets (>= 2.8, < 4.0)
|
164
164
|
sprockets-rails (>= 2.0, < 4.0)
|
165
165
|
tilt (>= 1.1, < 3)
|
166
|
+
sassc (2.0.0)
|
167
|
+
ffi (~> 1.9.6)
|
168
|
+
rake
|
169
|
+
sassc-rails (2.1.0)
|
170
|
+
railties (>= 4.0.0)
|
171
|
+
sassc (>= 2.0)
|
172
|
+
sprockets (> 3.0)
|
173
|
+
sprockets-rails
|
174
|
+
tilt
|
166
175
|
sexp_processor (4.11.0)
|
167
176
|
simple_form (4.1.0)
|
168
177
|
actionpack (>= 5.0)
|
@@ -7,10 +7,14 @@
|
|
7
7
|
@checkbox()
|
8
8
|
@popover()
|
9
9
|
@notify()
|
10
|
+
@fileInputBrowser()
|
10
11
|
|
11
12
|
nav: ->
|
12
13
|
#$('.nav-tabs .nav-item .nav-link').tab('show')
|
13
14
|
|
15
|
+
fileInputBrowser: ->
|
16
|
+
bsCustomFileInput.init()
|
17
|
+
|
14
18
|
popover: ->
|
15
19
|
$('[data-toggle="popover"]').popover()
|
16
20
|
|
@@ -20,6 +24,10 @@
|
|
20
24
|
|
21
25
|
dropdown: ->
|
22
26
|
$('.dropdown-toggle').dropdown()
|
27
|
+
# $('.dropdown-toggle').on 'click', ->
|
28
|
+
# $(this).next().toggle()
|
29
|
+
# $('.dropdown-menu.keep-open').on 'click', (e) ->
|
30
|
+
# e.stopPropagation()
|
23
31
|
|
24
32
|
notify: ->
|
25
33
|
$('.alert').each ->
|
@@ -122,7 +122,7 @@ $input-group-btn-border-color: $input-border-color
|
|
122
122
|
// Reset rounded corners
|
123
123
|
//
|
124
124
|
|
125
|
-
|
125
|
+
//.input-group .form-control:not(:last-child),
|
126
126
|
.input-group-addon:not(:last-child),
|
127
127
|
.input-group-btn:not(:last-child) > .btn,
|
128
128
|
.input-group-btn:not(:last-child) > .btn-group > .btn,
|
@@ -134,7 +134,7 @@ $input-group-btn-border-color: $input-border-color
|
|
134
134
|
.input-group-addon:not(:last-child)
|
135
135
|
border-right: 0
|
136
136
|
|
137
|
-
|
137
|
+
//.input-group .form-control:not(:first-child),
|
138
138
|
.input-group-addon:not(:first-child),
|
139
139
|
.input-group-btn:not(:first-child) > .btn,
|
140
140
|
.input-group-btn:not(:first-child) > .btn-group > .btn,
|
data/lib/ui_bibz.rb
CHANGED
@@ -24,8 +24,10 @@ module UiBibzInputs
|
|
24
24
|
autoload :UiNumberFieldInput, "ui_bibz/inputs/ui_bibz_inputs/ui_number_field_input"
|
25
25
|
autoload :UiRadioFieldInput, "ui_bibz/inputs/ui_bibz_inputs/ui_radio_field_input"
|
26
26
|
autoload :UiSelectFieldInput, "ui_bibz/inputs/ui_bibz_inputs/ui_select_field_input"
|
27
|
+
autoload :UiBoxSwitchFieldInput, "ui_bibz/inputs/ui_bibz_inputs/ui_box_switch_field_input"
|
27
28
|
autoload :UiSwitchFieldInput, "ui_bibz/inputs/ui_bibz_inputs/ui_switch_field_input"
|
28
29
|
autoload :UiTextFieldInput, "ui_bibz/inputs/ui_bibz_inputs/ui_text_field_input"
|
30
|
+
autoload :UiFileFieldInput, "ui_bibz/inputs/ui_bibz_inputs/ui_file_field_input"
|
29
31
|
|
30
32
|
end
|
31
33
|
|
@@ -92,14 +94,20 @@ module UiBibz
|
|
92
94
|
|
93
95
|
module Choices
|
94
96
|
autoload :SwitchField, "ui_bibz/ui/core/forms/choices/switch_field"
|
97
|
+
autoload :BoxSwitchField, "ui_bibz/ui/core/forms/choices/box_switch_field"
|
95
98
|
autoload :CheckboxField, "ui_bibz/ui/core/forms/choices/checkbox_field"
|
96
99
|
autoload :RadioField, "ui_bibz/ui/core/forms/choices/radio_field"
|
97
100
|
autoload :ChoiceGroup, "ui_bibz/ui/core/forms/choices/choice_group"
|
98
101
|
end
|
99
102
|
|
103
|
+
module Files
|
104
|
+
autoload :FileField, "ui_bibz/ui/core/forms/files/file_field"
|
105
|
+
end
|
106
|
+
|
100
107
|
module Numbers
|
101
108
|
autoload :FormulaField, "ui_bibz/ui/core/forms/numbers/formula_field"
|
102
109
|
autoload :NumberField, "ui_bibz/ui/core/forms/numbers/number_field"
|
110
|
+
autoload :RangeField, "ui_bibz/ui/core/forms/numbers/range_field"
|
103
111
|
end
|
104
112
|
|
105
113
|
module Selects
|
@@ -80,6 +80,14 @@ module UiBibz::Helpers::Ui::Core::FormsHelper
|
|
80
80
|
UiBibz::Ui::Core::Forms::Texts::TextField.new(content, options, html_options, &block).render
|
81
81
|
end
|
82
82
|
|
83
|
+
# Box Switch Field Component
|
84
|
+
#
|
85
|
+
# +options+ (Hash)
|
86
|
+
# +html_options+ (Hash)
|
87
|
+
def ui_box_switch_field content = nil, options = nil, html_options = nil, &block
|
88
|
+
UiBibz::Ui::Core::Forms::Choices::BoxSwitchField.new(content, options, html_options, &block).render
|
89
|
+
end
|
90
|
+
|
83
91
|
# Switch Field Component
|
84
92
|
#
|
85
93
|
# +options+ (Hash)
|
@@ -153,5 +161,32 @@ module UiBibz::Helpers::Ui::Core::FormsHelper
|
|
153
161
|
def ui_split_dropdown name, options = nil, html_options = nil, &block
|
154
162
|
UiBibz::Ui::Core::Forms::Dropdowns::SplitDropdown.new(name, options, html_options).tap(&block).render
|
155
163
|
end
|
164
|
+
|
165
|
+
# Number Component
|
166
|
+
#
|
167
|
+
# +name+ (String) [Required]
|
168
|
+
# +options+ (Hash)
|
169
|
+
# +html_options+ (Hash)
|
170
|
+
def ui_number_field name, options = nil, html_options = nil, &block
|
171
|
+
UiBibz::Ui::Core::Forms::Numbers::NumberField.new(name, options, html_options, &block).render
|
172
|
+
end
|
173
|
+
|
174
|
+
# Range Component
|
175
|
+
#
|
176
|
+
# +name+ (String) [Required]
|
177
|
+
# +options+ (Hash)
|
178
|
+
# +html_options+ (Hash)
|
179
|
+
def ui_range_field name, options = nil, html_options = nil, &block
|
180
|
+
UiBibz::Ui::Core::Forms::Numbers::RangeField.new(name, options, html_options, &block).render
|
181
|
+
end
|
182
|
+
|
183
|
+
# File Component
|
184
|
+
#
|
185
|
+
# +name+ (String) [Required]
|
186
|
+
# +options+ (Hash)
|
187
|
+
# +html_options+ (Hash)
|
188
|
+
def ui_file_field name, options = nil, html_options = nil, &block
|
189
|
+
UiBibz::Ui::Core::Forms::Files::FileField.new(name, options, html_options, &block).render
|
190
|
+
end
|
156
191
|
end
|
157
192
|
|
data/lib/ui_bibz/infos.rb
CHANGED
@@ -1,9 +1,9 @@
|
|
1
1
|
module UiBibz
|
2
2
|
NAME = "Ui Bibz"
|
3
|
-
VERSION = "2.
|
3
|
+
VERSION = "2.2.0"
|
4
4
|
DESCRIPTION = "A Rails Interface Framework using Bootstrap."
|
5
5
|
SUMMARY = "Create your project with Ui Bibz. Over a thirty reusable components built to provide iconography, dropdowns, input groups, navigation, alerts, and much more."
|
6
6
|
LICENSE = "MIT"
|
7
7
|
FONTAWESOME_VERSION = "5.5.0"
|
8
|
-
BOOTSTRAP_VERSION = "4.1
|
8
|
+
BOOTSTRAP_VERSION = "4.2.1"
|
9
9
|
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
module UiBibzInputs
|
2
|
+
class UiBoxSwitchFieldInput < BaseInput
|
3
|
+
include UiBibz::Ui::Core::Forms::Choices
|
4
|
+
|
5
|
+
def input(wrapper_options)
|
6
|
+
UiBibz::Ui::Core::Forms::Choices::BoxSwitchField.new(input_attribute_name, options, new_input_html_options).render
|
7
|
+
end
|
8
|
+
|
9
|
+
def new_input_html_options
|
10
|
+
input_html_options.merge({ checked: value.nil? ? false : value })
|
11
|
+
end
|
12
|
+
|
13
|
+
def value
|
14
|
+
@value ||= @builder.object.send(attribute_name)
|
15
|
+
end
|
16
|
+
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,10 @@
|
|
1
|
+
module UiBibzInputs
|
2
|
+
class UiRangeFieldInput < UiTextFieldInput
|
3
|
+
include UiBibz::Ui::Core::Forms::Numbers
|
4
|
+
|
5
|
+
def input(wrapper_options)
|
6
|
+
UiBibz::Ui::Core::Forms::Numbers::RangeField.new(input_attribute_name, options, input_html_options).render
|
7
|
+
end
|
8
|
+
|
9
|
+
end
|
10
|
+
end
|
@@ -3,7 +3,7 @@ module UiBibzInputs
|
|
3
3
|
include UiBibz::Ui::Core::Forms::Choices
|
4
4
|
|
5
5
|
def input(wrapper_options)
|
6
|
-
UiBibz::Ui::Core::Forms::Choices::SwitchField.new(input_attribute_name,
|
6
|
+
UiBibz::Ui::Core::Forms::Choices::SwitchField.new(input_attribute_name, new_options, new_input_html_options).render
|
7
7
|
end
|
8
8
|
|
9
9
|
def new_input_html_options
|
@@ -14,5 +14,9 @@ module UiBibzInputs
|
|
14
14
|
@value ||= @builder.object.send(attribute_name)
|
15
15
|
end
|
16
16
|
|
17
|
+
def new_options
|
18
|
+
options.merge({ label: attribute_name.to_s.titleize })
|
19
|
+
end
|
20
|
+
|
17
21
|
end
|
18
22
|
end
|
@@ -0,0 +1,141 @@
|
|
1
|
+
module UiBibz::Ui::Core::Forms::Choices
|
2
|
+
|
3
|
+
# Create a SurroundField
|
4
|
+
#
|
5
|
+
# This element is an extend of UiBibz::Ui::Core::Component.
|
6
|
+
# Source : http://www.bootstrap-switch.org/documentation-2.html
|
7
|
+
# ==== Attributes
|
8
|
+
#
|
9
|
+
# * +content+ - Content of element
|
10
|
+
# * +options+ - Options of element
|
11
|
+
# * +html_options+ - Html Options of element
|
12
|
+
#
|
13
|
+
# ==== Options
|
14
|
+
#
|
15
|
+
# You can add HTML attributes using the +html_options+.
|
16
|
+
# You can pass arguments in options attribute:
|
17
|
+
# * +state+ - Symbol
|
18
|
+
# (+:active+, +:disabled+)
|
19
|
+
# * +inline+ - Boolean
|
20
|
+
# * +animate+ - Boolean
|
21
|
+
# * +on_color+ - String
|
22
|
+
# * +off_color+ - String
|
23
|
+
# * +on_text+ - String
|
24
|
+
# * +off_text+ - String
|
25
|
+
# * +label_text+ - String
|
26
|
+
# * +readonly+ - Boolean
|
27
|
+
# * +checked+ - Boolean
|
28
|
+
#
|
29
|
+
# ==== Signatures
|
30
|
+
#
|
31
|
+
# UiBibz::Ui::Core::Forms::BoxSwitchField.new(content, options = {}, html_options = {}).render
|
32
|
+
#
|
33
|
+
# UiBibz::Ui::Core::Forms::BoxSwitchField.new(options = {}, html_options = {}) do
|
34
|
+
# content
|
35
|
+
# end.render
|
36
|
+
#
|
37
|
+
# ==== Examples
|
38
|
+
#
|
39
|
+
# box_switch_field 'name', { on_color: :primary }, { readonly: true }
|
40
|
+
#
|
41
|
+
# ==== Helper
|
42
|
+
#
|
43
|
+
# box_switch_field(options = {}, html_options = {}) do
|
44
|
+
# # content
|
45
|
+
# end
|
46
|
+
#
|
47
|
+
class BoxSwitchField < UiBibz::Ui::Core::Component
|
48
|
+
|
49
|
+
# See UiBibz::Ui::Core::Component.initialize
|
50
|
+
def initialize content = nil, options = nil, html_options = nil, &block
|
51
|
+
super
|
52
|
+
end
|
53
|
+
|
54
|
+
# Render html tag
|
55
|
+
def pre_render
|
56
|
+
box_switch_field_html_tag
|
57
|
+
end
|
58
|
+
|
59
|
+
private
|
60
|
+
|
61
|
+
def box_switch_field_html_tag
|
62
|
+
content_tag :div, class: component_wrapper_html_classes do
|
63
|
+
concat hidden_field_tag content, '0'
|
64
|
+
concat check_box_tag content, '1', html_options[:checked], html_options
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
68
|
+
def value
|
69
|
+
options[:value]
|
70
|
+
end
|
71
|
+
|
72
|
+
def component_wrapper_html_classes
|
73
|
+
join_classes('switch-field-container', inline)
|
74
|
+
end
|
75
|
+
|
76
|
+
def component_html_classes
|
77
|
+
super << "switch-field"
|
78
|
+
end
|
79
|
+
|
80
|
+
def component_html_data
|
81
|
+
super
|
82
|
+
size
|
83
|
+
state
|
84
|
+
animate
|
85
|
+
left_color
|
86
|
+
right_color
|
87
|
+
left_text
|
88
|
+
right_text
|
89
|
+
middle_text
|
90
|
+
end
|
91
|
+
|
92
|
+
# '', 'mini', 'small', 'normal', 'large'
|
93
|
+
def size
|
94
|
+
add_html_data('size', matching_size[options[:size]]) unless options[:size].nil?
|
95
|
+
end
|
96
|
+
|
97
|
+
def matching_size
|
98
|
+
{ sm: 'small', md: 'normal', lg: 'large' }
|
99
|
+
end
|
100
|
+
|
101
|
+
# true, false => default : true
|
102
|
+
def animate
|
103
|
+
add_html_data('animate', options.delete(:animate)) unless options[:animate].nil?
|
104
|
+
end
|
105
|
+
|
106
|
+
# active, disabled => default : active
|
107
|
+
def state
|
108
|
+
html_options[:disabled] = true if options[:state] == 'disabled'
|
109
|
+
end
|
110
|
+
|
111
|
+
# 'primary', 'info', 'success', 'warning', 'danger', 'default' => default : default
|
112
|
+
def left_color
|
113
|
+
add_html_data('on_color', options[:left_color]) unless options[:left_color].nil?
|
114
|
+
end
|
115
|
+
|
116
|
+
# 'primary', 'info', 'success', 'warning', 'danger', 'default' => default : default
|
117
|
+
def right_color
|
118
|
+
add_html_data('off_color', options[:right_color]) unless options[:right_color].nil?
|
119
|
+
end
|
120
|
+
|
121
|
+
# String => default : "ON"
|
122
|
+
def left_text
|
123
|
+
add_html_data('on_text', options[:left_text]) unless options[:left_text].nil?
|
124
|
+
end
|
125
|
+
|
126
|
+
# String => default : "OFF"
|
127
|
+
def right_text
|
128
|
+
add_html_data('off_text', options[:right_text]) unless options[:right_text].nil?
|
129
|
+
end
|
130
|
+
|
131
|
+
# String => default : ' '
|
132
|
+
def middle_text
|
133
|
+
add_html_data('label_text', options[:middle_text]) unless options[:middle_text].nil?
|
134
|
+
end
|
135
|
+
|
136
|
+
def inline
|
137
|
+
"btn-group" unless options[:inline].nil?
|
138
|
+
end
|
139
|
+
|
140
|
+
end
|
141
|
+
end
|