ui_bibz 2.0.2 → 2.0.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (31) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +4 -4
  3. data/app/assets/javascripts/interface.coffee +1 -1
  4. data/app/assets/stylesheets/fix_addon.sass +5 -0
  5. data/app/assets/stylesheets/forms.sass +1 -1
  6. data/lib/ui_bibz/ui/core/boxes/card.rb +5 -1
  7. data/lib/ui_bibz/ui/core/boxes/components/card_header.rb +16 -0
  8. data/lib/ui_bibz/ui/core/boxes/components/card_image.rb +1 -1
  9. data/lib/ui_bibz/ui/core/boxes/components/card_tab_group.rb +26 -0
  10. data/lib/ui_bibz/ui/core/forms/choices/checkbox_field.rb +3 -3
  11. data/lib/ui_bibz/ui/core/forms/choices/choice_group.rb +1 -1
  12. data/lib/ui_bibz/ui/core/lists/components/list.rb +2 -2
  13. data/lib/ui_bibz/ui/core/lists/list_group.rb +12 -8
  14. data/lib/ui_bibz/ui/core/navigations/breadcrumb.rb +33 -17
  15. data/lib/ui_bibz/ui/core/navigations/components/breadcrumb_link.rb +11 -3
  16. data/lib/ui_bibz/ui/core/navigations/components/nav_link.rb +1 -1
  17. data/lib/ui_bibz/ui/core/navigations/tab_group.rb +7 -3
  18. data/lib/ui_bibz/ui/core/notifications/alert.rb +3 -5
  19. data/lib/ui_bibz/ui/core/notifications/badge.rb +9 -6
  20. data/lib/ui_bibz/version.rb +1 -1
  21. data/test/ui/core/boxes/card_test.rb +14 -1
  22. data/test/ui/core/forms/choices/checkbox_field_test.rb +1 -1
  23. data/test/ui/core/forms/choices/choice_group_test.rb +3 -3
  24. data/test/ui/core/lists/list_group_test.rb +33 -3
  25. data/test/ui/core/navigations/breadcrumb_test.rb +3 -3
  26. data/test/ui/core/navigations/tab_group_test.rb +15 -4
  27. data/test/ui/core/notifications/badge_test.rb +7 -0
  28. data/ui_bibz.gemspec +1 -1
  29. data/vendor/assets/stylesheets/awesome-bootstrap-checkbox.css +205 -277
  30. metadata +7 -7
  31. data/lib/ui_bibz/ui/core/forms/buttons/button_choice.rb +0 -92
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: be1a71fc5f03db04db8ae4252bf32c3225d5118f
4
- data.tar.gz: 96d7cc8b42b66975fe4f0218bb7185c60f5c490c
3
+ metadata.gz: ea70b53e1fa027cef5b1811801a41d6d74ff7988
4
+ data.tar.gz: fa7fcf9685f92dd939844df73d323381dfdd5b29
5
5
  SHA512:
6
- metadata.gz: 83e0900d32daf641e58802ad9cbdb856d268e150383eaa9a75347268a3c0a2a09f9d979f83c5c024ee2093dd7037fd6c6509a36939abe706c62292cc88ab11a4
7
- data.tar.gz: 590cb656bfbd1cf4f9cb5fe65e6da7653fb7eb523dc5013481d9c7df7fdf6700f7d0e14c0631703f8a3760d4998989783620dea1c21df979d78bb6c786f05783
6
+ metadata.gz: 0cbe8b9c14bdfe66f05de625bd3793a0af8342b7eaecf3145f54a2cdc42077f1e5726c88b5bdef50ffc936b0c7cc35dcb09715295ea2e5b496dae638cae1cce3
7
+ data.tar.gz: efc3de7d2b7f67dd45dec59559f398625da9b64998f7e362d2ec043d21c047d6256b657b073f1fa5310bbe86f22653b2a4ae58a3f3565c479ad5280fd9a819fa
data/Gemfile.lock CHANGED
@@ -1,8 +1,8 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- ui_bibz (2.0.2)
5
- bootstrap (= 4.0.0)
4
+ ui_bibz (2.0.3)
5
+ bootstrap (~> 4.1.0)
6
6
  font-awesome-sass
7
7
  haml
8
8
  haml-rails
@@ -61,7 +61,7 @@ GEM
61
61
  autoprefixer-rails (8.4.1)
62
62
  execjs
63
63
  awesome_print (1.8.0)
64
- bootstrap (4.0.0)
64
+ bootstrap (4.1.1)
65
65
  autoprefixer-rails (>= 6.0.3)
66
66
  popper_js (>= 1.12.9, < 2)
67
67
  sass (>= 3.5.2)
@@ -118,7 +118,7 @@ GEM
118
118
  mini_mime (1.0.0)
119
119
  mini_portile2 (2.3.0)
120
120
  minitest (5.11.3)
121
- nio4r (2.3.0)
121
+ nio4r (2.3.1)
122
122
  nokogiri (1.8.2)
123
123
  mini_portile2 (~> 2.3.0)
124
124
  popper_js (1.12.9)
@@ -9,7 +9,7 @@
9
9
  @notify()
10
10
 
11
11
  nav: ->
12
- $('.nav-tabs nav-link').tab('show')
12
+ #$('.nav-tabs .nav-item .nav-link').tab('show')
13
13
 
14
14
  popover: ->
15
15
  $('[data-toggle="popover"]').popover({ html: true })
@@ -185,3 +185,8 @@ $input-group-btn-border-color: $input-border-color
185
185
  @include hover-focus-active
186
186
  z-index: 3
187
187
 
188
+ .input-group-addon .glyph, .input-group-btn .btn .glyph
189
+ padding: 0.4rem 0
190
+
191
+ .input-group-sm .input-group-addon .glyph
192
+ padding: 0.37rem 0
@@ -50,7 +50,7 @@
50
50
  border-radius: 0px
51
51
  .abc-radio.input-group-addon, .abc-checkbox.input-group-addon
52
52
  input
53
- margin-left: 17px
53
+ margin-left: 0.5rem
54
54
  select:not(:first-child):not(:last-child)
55
55
  border-radius: 0px
56
56
 
@@ -97,7 +97,11 @@ module UiBibz::Ui::Core::Boxes
97
97
  # Add Header which is a component
98
98
  def header content = nil, options = nil, html_options = nil, &block
99
99
  options, content = inherit_options(content, options, block)
100
- @header = UiBibz::Ui::Core::Boxes::Components::CardHeader.new(content, options, html_options, &block).render
100
+ if is_tap(content, options)
101
+ @header = UiBibz::Ui::Core::Boxes::Components::CardHeader.new(content, options, html_options).tap(&block).render
102
+ else
103
+ @header = UiBibz::Ui::Core::Boxes::Components::CardHeader.new(content, options, html_options, &block).render
104
+ end
101
105
  end
102
106
 
103
107
  # Add Body div which is a component
@@ -1,3 +1,4 @@
1
+ require 'ui_bibz/ui/core/boxes/components/card_tab_group'
1
2
  module UiBibz::Ui::Core::Boxes::Components
2
3
 
3
4
  # Create a card header
@@ -29,6 +30,13 @@ module UiBibz::Ui::Core::Boxes::Components
29
30
  # 'Exemple'
30
31
  # end.render
31
32
  #
33
+ # UiBibz::Ui::Core::Boxes::CardHeader.new(tap: true) do |h|
34
+ # h.tab_group do |tg|
35
+ # tg.tab 'link', url: '#link"
36
+ # tg.tab 'link', url: '#link"
37
+ # end
38
+ # end.render
39
+ #
32
40
  class CardHeader < UiBibz::Ui::Core::Component
33
41
 
34
42
  # See UiBibz::Ui::Core::Component.initialize
@@ -41,6 +49,14 @@ module UiBibz::Ui::Core::Boxes::Components
41
49
  content_tag :div, glyph_and_content_html, html_options
42
50
  end
43
51
 
52
+ def tab_group content = nil, options = nil, html_options = nil, &block
53
+ if is_tap(content, options)
54
+ @content = CardTabGroup.new(content, options, html_options).tap(&block).render
55
+ else
56
+ @content = CardTabGroup.new(content, options, html_options, &block).render
57
+ end
58
+ end
59
+
44
60
  private
45
61
 
46
62
  def component_html_classes
@@ -41,7 +41,7 @@ module UiBibz::Ui::Core::Boxes::Components
41
41
  # Render html tag
42
42
  def pre_render
43
43
  #image_tag content, html_options
44
- image_tag asset_path("assets/#{content}"), html_options
44
+ image_tag content, html_options
45
45
  end
46
46
 
47
47
  private
@@ -0,0 +1,26 @@
1
+ module UiBibz::Ui::Core::Boxes::Components
2
+
3
+ # Create a card tab group
4
+ #
5
+ # This element is an extend of UiBibz::Ui::Core::Navigation::TabGroup.
6
+ #
7
+ # ==== Attributes
8
+ #
9
+ # * +content+ - Content of element
10
+ # * +options+ - Options of element
11
+ # * +html_options+ - Html Options of element
12
+ #
13
+ class CardTabGroup < UiBibz::Ui::Core::Navigations::TabGroup
14
+
15
+ def initialize content = nil, options = nil, html_options = nil, &block
16
+ super
17
+ end
18
+
19
+ private
20
+
21
+ def component_html_classes
22
+ super << "card-header-tabs"
23
+ end
24
+
25
+ end
26
+ end
@@ -65,7 +65,7 @@ module UiBibz::Ui::Core::Forms::Choices
65
65
  end
66
66
 
67
67
  def checkbox_html_options
68
- { class: 'styled', disabled: options[:state] == :disabled }
68
+ { class: 'form-check-input', disabled: options[:state] == :disabled }
69
69
  end
70
70
 
71
71
  def label_name
@@ -73,7 +73,7 @@ module UiBibz::Ui::Core::Forms::Choices
73
73
  end
74
74
 
75
75
  def label_html_options
76
- options[:label] == false ? { class: 'fix-label' } : nil
76
+ { class: join_classes("form-check-label", ("fix-label" if options[:label] == false)) }
77
77
  end
78
78
 
79
79
  def label_content
@@ -104,7 +104,7 @@ module UiBibz::Ui::Core::Forms::Choices
104
104
  end
105
105
 
106
106
  def component_html_classes
107
- super << ["checkbox", "abc-checkbox", type, indeterminate, inline]
107
+ super << ["form-check", "abc-checkbox", type, indeterminate, inline]
108
108
  end
109
109
 
110
110
  end
@@ -65,7 +65,7 @@ module UiBibz::Ui::Core::Forms::Choices
65
65
  private
66
66
 
67
67
  def component_html_classes
68
- super << ['button-choice']
68
+ super << ['button-choice', "btn-group-toggle"]
69
69
  end
70
70
 
71
71
  def component_html_options
@@ -114,11 +114,11 @@ module UiBibz::Ui::Core::Lists::Components
114
114
 
115
115
  def is_link_type?
116
116
  @html_options[:href] = @options[:url] if @options[:url]
117
- @options[:tag] == :a || @html_options[:tag] == :a
117
+ @options[:tag_type] == :a || @html_options.delete(:tag_type) == :a
118
118
  end
119
119
 
120
120
  def is_button_type?
121
- @options[:tag] == :button || @html_options[:tag] == :button
121
+ @options[:tag_type] == :button || @html_options.delete(:tag_type) == :button
122
122
  end
123
123
 
124
124
  def tag_type
@@ -15,8 +15,9 @@ module UiBibz::Ui::Core::Lists
15
15
  #
16
16
  # You can add HTML attributes using the +html_options+.
17
17
  # You can pass arguments in options attribute:
18
- # * +type+ - Type of list (default: :list)
19
- # (+:link+, +:list+)
18
+ # * +flush+ - Boolean
19
+ # * +tag_type+ - Type of list (default: :li)
20
+ # (+:a+, +:button+, +:li+)
20
21
  #
21
22
  # ==== Signatures
22
23
  #
@@ -33,7 +34,7 @@ module UiBibz::Ui::Core::Lists
33
34
  # d.list 'Test2', status: :primary
34
35
  # end.render
35
36
  #
36
- # UiBibz::Ui::Core::ListGroup.new(type: :link).tap do |d|
37
+ # UiBibz::Ui::Core::ListGroup.new(tag_type: :li).tap do |d|
37
38
  # d.list 'Test', status: :success, url: '#test'
38
39
  # d.list(status: :primary) do
39
40
  # 'Test 2'
@@ -84,10 +85,9 @@ module UiBibz::Ui::Core::Lists
84
85
  # Add group list
85
86
  # See UiBibz::Ui::Core::List
86
87
  def list content = nil, options = {} , html_options = nil, &block
87
- is_tap = (content[:tap] if content.kind_of?(Hash)) || (options[:tap] unless options.nil?)
88
- options = options.merge({ tag: @options[:tag] }) unless @options[:tag].nil?
88
+ options = options.merge({ tag_type: @options[:tag_type] }) unless @options[:tag_type].nil?
89
89
 
90
- if is_tap
90
+ if is_tap(content, options)
91
91
  @lists << UiBibz::Ui::Core::Lists::Components::List.new(content, options, html_options).tap(&block).render
92
92
  else
93
93
  @lists << UiBibz::Ui::Core::Lists::Components::List.new(content, options, html_options, &block).render
@@ -97,11 +97,15 @@ module UiBibz::Ui::Core::Lists
97
97
  private
98
98
 
99
99
  def component_html_classes
100
- "list-group"
100
+ super << ["list-group", flush]
101
+ end
102
+
103
+ def flush
104
+ "list-group-flush" if options[:flush]
101
105
  end
102
106
 
103
107
  def tag_type
104
- [:a, :button].include?(options[:tag]) ? :div : :ul
108
+ [:a, :button].include?(options[:tag_type]) ? :div : :ul
105
109
  end
106
110
 
107
111
  end
@@ -15,6 +15,13 @@ module UiBibz::Ui::Core::Navigations
15
15
  # * +options+ - Options of element
16
16
  # * +html_options+ - Html Options of element
17
17
  #
18
+ # ==== Options
19
+ #
20
+ # You can add HTML attributes using the +html_options+.
21
+ # You can pass arguments in options attribute:
22
+ # * +link_label+ - [Symbol | String] Display label of link with store
23
+ # * +link_url+ - [String] Display url of link with store
24
+ #
18
25
  # ==== Components
19
26
  #
20
27
  # +link+ is UiBibz::Ui::Core::Navigations::BreadCrumb::Components::BreadcrumbLink component
@@ -28,6 +35,9 @@ module UiBibz::Ui::Core::Navigations
28
35
  # ...
29
36
  # end
30
37
  #
38
+ # UiBibz::Ui::Core::Navigations::Breadcrumb.new(@store)
39
+ #
40
+ #
31
41
  # ==== Examples
32
42
  #
33
43
  # UiBibz::Ui::Core::Navigations::Breadcrumb.new().tap do |b|
@@ -38,16 +48,24 @@ module UiBibz::Ui::Core::Navigations
38
48
  # b.link 'Level 2', state: :active
39
49
  # end.render
40
50
  #
51
+ # # or
52
+ #
53
+ # @users = User.all
54
+ # UiBibz::Ui::Core::Navigations::Breadcrumb.new(@users).render
55
+ #
41
56
  # ==== Helper
42
57
  #
43
- # breadcrumb({tap: true}) do |b|
58
+ # ui_breadcrumb({tap: true}) do |b|
44
59
  # b.link(content, options = {}, html_options = {})
45
60
  # b.link(options = {}, html_options = {}) do
46
61
  # content
47
62
  # end
48
63
  # end
49
64
  #
50
- # breadcrumb({store: @users, link_label: name, link_url: user_path(:id)})
65
+ # # or
66
+ #
67
+ # @users = User.all
68
+ # ui_breadcrumb(@users, { link_label: name, link_url: user_path(:id) })
51
69
  #
52
70
  class Breadcrumb < UiBibz::Ui::Core::Component
53
71
 
@@ -55,12 +73,14 @@ module UiBibz::Ui::Core::Navigations
55
73
  def initialize content = nil, options = nil, html_options = nil, &block
56
74
  super
57
75
  @links = []
76
+ generate_links unless @content.nil?
58
77
  end
59
78
 
60
79
  # Render html tag
61
80
  def pre_render
62
- generate_links unless store.nil?
63
- content_tag :ol, @links.join.html_safe, html_options
81
+ content_tag :nav, html_options do
82
+ content_tag :ol, @links.join.html_safe, class: 'breadcrumb'
83
+ end
64
84
  end
65
85
 
66
86
  # Add breadcrumb link items
@@ -71,16 +91,12 @@ module UiBibz::Ui::Core::Navigations
71
91
 
72
92
  private
73
93
 
74
- def component_html_classes
75
- 'breadcrumb'
76
- end
77
-
78
- def store
79
- @options[:store]
94
+ def component_html_options
95
+ super.merge({ "arial-label": "breadcrumb" })
80
96
  end
81
97
 
82
98
  def model_name
83
- store.class.to_s
99
+ content.class.to_s
84
100
  end
85
101
 
86
102
  def link_label
@@ -92,14 +108,14 @@ module UiBibz::Ui::Core::Navigations
92
108
  end
93
109
 
94
110
  def generate_links
95
- @options[:store].each do |item|
96
- if item == @options[:store].last
97
- @links << UiBibz::Ui::Core::Navigations::Components::BreadcrumbLink.new(item.send(link_label), status: :disabled).render
98
- else
99
- @links << UiBibz::Ui::Core::Navigations::Components::BreadcrumbLink.new(item.send(link_label), url: inject_url(link_url, item)).render
100
- end
111
+ content.each do |item|
112
+ @links << UiBibz::Ui::Core::Navigations::Components::BreadcrumbLink.new(item.send(link_label), url: inject_url(link_url, item), current: item == last_item).render
101
113
  end
102
114
  end
103
115
 
116
+ def last_item
117
+ content.last
118
+ end
119
+
104
120
  end
105
121
  end
@@ -52,15 +52,23 @@ module UiBibz::Ui::Core::Navigations::Components
52
52
 
53
53
  private
54
54
 
55
+ def component_html_options
56
+ super.merge(options[:current] ? { "aria-current": "page" } : {})
57
+ end
58
+
55
59
  def component_html_classes
56
60
  "breadcrumb-item"
57
61
  end
58
62
 
63
+ def component_options
64
+ super.merge(options[:current] ? { status: :disabled } : {})
65
+ end
66
+
59
67
  def link_html
60
- if options[:url]
61
- link_to glyph_and_content_html, options[:url] || '#'
62
- else
68
+ if options[:current]
63
69
  glyph_and_content_html
70
+ else
71
+ link_to glyph_and_content_html, options[:url] || '#'
64
72
  end
65
73
  end
66
74
 
@@ -52,7 +52,7 @@ module UiBibz::Ui::Core::Navigations
52
52
  if options[:nav_type] == "nav-links"
53
53
  UiBibz::Ui::Core::Navigations::NavLinkLink.new(content, options, html_options).render
54
54
  else
55
- if options[:tag_type] == "span"
55
+ if options[:tag_type] == :span
56
56
  cont = UiBibz::Ui::Core::Navigations::NavLinkSpan.new(content, @old_options).render
57
57
  else
58
58
  cont = UiBibz::Ui::Core::Navigations::NavLinkLink.new(content, options).render
@@ -16,8 +16,8 @@ module UiBibz::Ui::Core::Navigations
16
16
  # You can pass arguments in options attribute:
17
17
  # * +position+ - Symbol
18
18
  # (+:left+, +:right+, +:center+)
19
- # * +tag+ - Symbol
20
- # (+:a+, +:li)
19
+ # * +tag_type+ - Symbol
20
+ # (+:a+, +:span)
21
21
  # * +justify+ - Boolean
22
22
  # * +fill+ - Boolean
23
23
  #
@@ -35,7 +35,7 @@ module UiBibz::Ui::Core::Navigations
35
35
  #
36
36
  # ==== Examples
37
37
  #
38
- # UiBibz::Ui::Core::Navigations::TabGroup.new(type: :pills).tap do |n|
38
+ # UiBibz::Ui::Core::Navigations::TabGroup.new(tag_type: :span).tap do |n|
39
39
  # n.tab 'Test', url: '#test'
40
40
  # n.tab 'Test2', url: '#test2', state: :active
41
41
  # n.dropdown('Action') do |d|
@@ -78,5 +78,9 @@ module UiBibz::Ui::Core::Navigations
78
78
  ["nav", "nav-tabs", position, justify, fill]
79
79
  end
80
80
 
81
+ def type
82
+ "nav-tabs"
83
+ end
84
+
81
85
  end
82
86
  end
@@ -18,11 +18,9 @@ module UiBibz::Ui::Core::Notifications
18
18
  # You can pass arguments in options attribute:
19
19
  # * +status+ - status of élement with symbol value:
20
20
  # (+:default+, +:primary+, +:info+, +:warning+, +:danger+)
21
- # * +glyph+ - Add glyph with name or hash options
22
- # * +name+ - String
23
- # * +size+ - Integer
24
- # * +type+ - Symbol
25
- # *+timeout+ - Integer
21
+ # * +glyph+ - [String | Hash] Add glyph with name or hash options
22
+ # * +name+ - [String]
23
+ # *+timeout+ - [Integer]
26
24
  #
27
25
  # ==== Signatures
28
26
  #