ui_bibz 1.1.0 → 1.1.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (150) hide show
  1. checksums.yaml +8 -8
  2. data/.yardoc/checksums +49 -46
  3. data/.yardoc/object_types +0 -0
  4. data/.yardoc/objects/root.dat +0 -0
  5. data/Gemfile.lock +69 -56
  6. data/README.md +156 -61
  7. data/doc/UiBibz/Concerns/Models/Searchable/ClassMethods.html +6 -6
  8. data/doc/UiBibz/Concerns/Models/Searchable.html +2 -2
  9. data/doc/UiBibz/Concerns/Models.html +115 -0
  10. data/doc/UiBibz/Concerns.html +115 -0
  11. data/doc/UiBibz/Helpers/MetaHelper.html +75 -9
  12. data/doc/UiBibz/Helpers/UiCoreHelper.html +120 -68
  13. data/doc/UiBibz/Helpers/UiUxHelper.html +2 -2
  14. data/doc/UiBibz/Helpers/UtilsHelper.html +2 -2
  15. data/doc/UiBibz/Helpers.html +115 -0
  16. data/doc/UiBibz/Rails/Engine.html +1 -1
  17. data/doc/UiBibz/Rails.html +1 -1
  18. data/doc/UiBibz/Ui/Base.html +2 -2
  19. data/doc/UiBibz/Ui/Core/Alert.html +26 -13
  20. data/doc/UiBibz/Ui/Core/Bar.html +26 -13
  21. data/doc/UiBibz/Ui/Core/Breadcrumb.html +32 -19
  22. data/doc/UiBibz/Ui/Core/BreadcrumbLink.html +26 -13
  23. data/doc/UiBibz/Ui/Core/Button.html +26 -13
  24. data/doc/UiBibz/Ui/Core/ButtonDropdown.html +31 -18
  25. data/doc/UiBibz/Ui/Core/ButtonGroup.html +26 -13
  26. data/doc/UiBibz/Ui/Core/ButtonLink.html +26 -13
  27. data/doc/UiBibz/Ui/Core/ButtonSplitDropdown.html +27 -14
  28. data/doc/UiBibz/Ui/Core/Col.html +26 -13
  29. data/doc/UiBibz/Ui/Core/Component.html +166 -225
  30. data/doc/UiBibz/Ui/Core/Dropdown.html +61 -410
  31. data/doc/UiBibz/Ui/Core/DropdownLink.html +373 -0
  32. data/doc/UiBibz/Ui/Core/DropdownList.html +26 -13
  33. data/doc/UiBibz/Ui/Core/Glyph.html +26 -386
  34. data/doc/UiBibz/Ui/Core/Jumbotron.html +26 -13
  35. data/doc/UiBibz/Ui/Core/Label.html +29 -15
  36. data/doc/UiBibz/Ui/Core/List.html +64 -25
  37. data/doc/UiBibz/Ui/Core/ListGroup.html +47 -21
  38. data/doc/UiBibz/Ui/Core/Nav.html +64 -25
  39. data/doc/UiBibz/Ui/Core/NavDropdown.html +29 -16
  40. data/doc/UiBibz/Ui/Core/NavLink.html +30 -15
  41. data/doc/UiBibz/Ui/Core/Navbar.html +154 -45
  42. data/doc/UiBibz/Ui/Core/NavbarForm.html +58 -38
  43. data/doc/UiBibz/Ui/Core/NavbarNav.html +7 -7
  44. data/doc/UiBibz/Ui/Core/NavbarText.html +26 -13
  45. data/doc/UiBibz/Ui/Core/Panel.html +38 -237
  46. data/doc/UiBibz/Ui/Core/ProgressBar.html +45 -19
  47. data/doc/UiBibz/Ui/Core/Row.html +26 -13
  48. data/doc/UiBibz/Ui/Core/Stars.html +367 -0
  49. data/doc/UiBibz/Ui/Core.html +16 -5
  50. data/doc/UiBibz/Ui/Ux/Actionable.html +1 -1
  51. data/doc/UiBibz/Ui/Ux/Actions.html +198 -14
  52. data/doc/UiBibz/Ui/Ux/Column.html +4 -4
  53. data/doc/UiBibz/Ui/Ux/Columns.html +42 -16
  54. data/doc/UiBibz/Ui/Ux/Grid.html +31 -371
  55. data/doc/UiBibz/Ui/Ux/Paginable.html +22 -9
  56. data/doc/UiBibz/Ui/Ux/Searchable.html +22 -9
  57. data/doc/UiBibz/Ui/Ux/Sortable.html +18 -7
  58. data/doc/UiBibz/Ui/Ux/Store.html +160 -56
  59. data/doc/UiBibz/Ui/Ux/Table.html +109 -374
  60. data/doc/UiBibz/Ui/Ux/TableAction.html +2 -2
  61. data/doc/UiBibz/Ui/Ux/TablePagination.html +33 -14
  62. data/doc/UiBibz/Ui/Ux/TablePaginationPerPage.html +30 -15
  63. data/doc/UiBibz/Ui/Ux/TablePanel.html +139 -43
  64. data/doc/UiBibz/Ui/Ux/TableSearchField.html +26 -13
  65. data/doc/UiBibz/Ui/Ux.html +15 -4
  66. data/doc/UiBibz/Ui.html +4 -2
  67. data/doc/UiBibz/Utils/Internationalization.html +1 -1
  68. data/doc/UiBibz/Utils.html +1 -1
  69. data/doc/UiBibz.html +5 -5
  70. data/doc/_index.html +50 -7
  71. data/doc/class_list.html +1 -1
  72. data/doc/file.README.html +155 -63
  73. data/doc/images/stars.png +0 -0
  74. data/doc/index.html +155 -63
  75. data/doc/method_list.html +278 -398
  76. data/doc/top-level-namespace.html +1 -1
  77. data/lib/ui_bibz/concerns/models/searchable.rb +36 -13
  78. data/lib/ui_bibz/helpers/meta_helper.rb +22 -3
  79. data/lib/ui_bibz/helpers/ui_core_helper.rb +4 -0
  80. data/lib/ui_bibz/ui/core/alert.rb +2 -0
  81. data/lib/ui_bibz/ui/core/breadcrumb/breadcrumb.rb +3 -0
  82. data/lib/ui_bibz/ui/core/breadcrumb/components/breadcrumb_link.rb +2 -0
  83. data/lib/ui_bibz/ui/core/button/button.rb +2 -0
  84. data/lib/ui_bibz/ui/core/button/button_dropdown.rb +6 -4
  85. data/lib/ui_bibz/ui/core/button/button_group.rb +2 -0
  86. data/lib/ui_bibz/ui/core/button/button_link.rb +2 -0
  87. data/lib/ui_bibz/ui/core/button/button_split_dropdown.rb +2 -0
  88. data/lib/ui_bibz/ui/core/col.rb +2 -0
  89. data/lib/ui_bibz/ui/core/component.rb +23 -25
  90. data/lib/ui_bibz/ui/core/dropdown/components/dropdown_link.rb +57 -0
  91. data/lib/ui_bibz/ui/core/dropdown/components/dropdown_list.rb +2 -0
  92. data/lib/ui_bibz/ui/core/dropdown/dropdown.rb +22 -9
  93. data/lib/ui_bibz/ui/core/glyph.rb +10 -0
  94. data/lib/ui_bibz/ui/core/jumbotron.rb +2 -0
  95. data/lib/ui_bibz/ui/core/label.rb +3 -0
  96. data/lib/ui_bibz/ui/core/list/components/list.rb +4 -0
  97. data/lib/ui_bibz/ui/core/list/list_group.rb +4 -0
  98. data/lib/ui_bibz/ui/core/nav/components/nav_dropdown.rb +4 -2
  99. data/lib/ui_bibz/ui/core/nav/components/nav_link.rb +4 -1
  100. data/lib/ui_bibz/ui/core/nav/components/navbar_form.rb +39 -3
  101. data/lib/ui_bibz/ui/core/nav/components/navbar_nav.rb +1 -0
  102. data/lib/ui_bibz/ui/core/nav/components/navbar_text.rb +8 -0
  103. data/lib/ui_bibz/ui/core/nav/nav.rb +6 -0
  104. data/lib/ui_bibz/ui/core/nav/navbar.rb +31 -4
  105. data/lib/ui_bibz/ui/core/panel.rb +7 -5
  106. data/lib/ui_bibz/ui/core/progress_bar/components/bar.rb +2 -0
  107. data/lib/ui_bibz/ui/core/progress_bar/progress_bar.rb +4 -0
  108. data/lib/ui_bibz/ui/core/row.rb +2 -0
  109. data/lib/ui_bibz/ui/core/stars.rb +88 -0
  110. data/lib/ui_bibz/ui/ux/grid.rb +4 -0
  111. data/lib/ui_bibz/ui/ux/table/components/actions.rb +17 -2
  112. data/lib/ui_bibz/ui/ux/table/components/column.rb +2 -2
  113. data/lib/ui_bibz/ui/ux/table/components/columns.rb +4 -2
  114. data/lib/ui_bibz/ui/ux/table/components/store.rb +10 -1
  115. data/lib/ui_bibz/ui/ux/table/extensions/actionable.rb +3 -1
  116. data/lib/ui_bibz/ui/ux/table/extensions/paginable.rb +1 -0
  117. data/lib/ui_bibz/ui/ux/table/extensions/searchable.rb +1 -0
  118. data/lib/ui_bibz/ui/ux/table/extensions/sortable.rb +8 -2
  119. data/lib/ui_bibz/ui/ux/table/table.rb +19 -8
  120. data/lib/ui_bibz/ui/ux/table/table_pagination.rb +8 -1
  121. data/lib/ui_bibz/ui/ux/table/table_pagination_per_page.rb +10 -2
  122. data/lib/ui_bibz/ui/ux/table/table_panel.rb +28 -13
  123. data/lib/ui_bibz/ui/ux/table/table_search_field.rb +9 -1
  124. data/lib/ui_bibz/version.rb +1 -1
  125. data/lib/ui_bibz.rb +1 -0
  126. data/test/test_helper.rb +5 -0
  127. data/test/ui/dropdown_test.rb +4 -4
  128. data/test/ui/stars_test.rb +42 -0
  129. data/test/ui/table_test.rb +25 -6
  130. data/ui_bibz.gemspec +4 -1
  131. data/vendor/assets/fonts/FontAwesome.otf +0 -0
  132. data/vendor/assets/fonts/fontawesome-webfont.eot +0 -0
  133. data/vendor/assets/fonts/fontawesome-webfont.svg +640 -0
  134. data/vendor/assets/fonts/fontawesome-webfont.ttf +0 -0
  135. data/vendor/assets/fonts/fontawesome-webfont.woff +0 -0
  136. data/vendor/assets/fonts/fontawesome-webfont.woff2 +0 -0
  137. data/vendor/assets/javascripts/bootstrap-datepicker.min.js +8 -0
  138. data/vendor/assets/javascripts/bootstrap-select.min.js +8 -0
  139. data/vendor/assets/javascripts/bootstrap-switch.min.js +22 -0
  140. data/vendor/assets/javascripts/bootstrap.min.js +7 -0
  141. data/vendor/assets/javascripts/jquery-2.1.4.min.js +4 -0
  142. data/vendor/assets/javascripts/ui_bibz.js.coffee +8 -0
  143. data/vendor/assets/stylesheets/bootstrap-datepicker3.min.css +8 -0
  144. data/vendor/assets/stylesheets/bootstrap-select.min.css +6 -0
  145. data/vendor/assets/stylesheets/bootstrap-switch.min.css +22 -0
  146. data/vendor/assets/stylesheets/bootstrap-theme.min.css +5 -0
  147. data/vendor/assets/stylesheets/bootstrap.min.css +5 -0
  148. data/vendor/assets/stylesheets/font-awesome.min.css +4 -0
  149. data/vendor/assets/stylesheets/ui_bibz.sass +23 -0
  150. metadata +71 -2
@@ -103,7 +103,7 @@
103
103
  </div>
104
104
 
105
105
  <div id="footer">
106
- Generated on Wed Jul 8 15:00:15 2015 by
106
+ Generated on Mon Aug 31 14:08:52 2015 by
107
107
  <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
108
108
  0.8.7.6 (ruby-1.9.3).
109
109
  </div>
@@ -4,22 +4,40 @@ module UiBibz::Concerns::Models::Searchable
4
4
  included do
5
5
  # Maybe create a class to put all methods of table_search_pagination
6
6
  def self.table_search_pagination params, session, args = {}
7
- @params = params
8
- @session = session
9
- @arguments = args
10
- OpenStruct.new(records: search_sort_paginate,
11
- model: self,
12
- controller: params[:controller],
13
- direction: params[:direction],
14
- search: params[:search],
15
- sort: params[:sort],
16
- searchable_attributes: @searchable_attributes,
17
- action: params[:action])
18
- end
7
+ @params = params.clone
8
+ @session = session
9
+ @arguments = args
19
10
 
11
+ initialize_params unless @arguments[:store_id].nil?
12
+ OpenStruct.new(generate_parameters)
13
+ end
20
14
 
21
15
  private
22
16
 
17
+ def self.generate_parameters
18
+ {
19
+ controller: @params[:controller],
20
+ param_id: @params[:id],
21
+ direction: @params[:direction],
22
+ search: @params[:search],
23
+ sort: @params[:sort],
24
+ action: @params[:action],
25
+ id: @arguments[:store_id],
26
+ records: search_sort_paginate,
27
+ searchable_attributes: @searchable_attributes,
28
+ model: self
29
+ }
30
+ end
31
+
32
+ # If there is more one table in html page
33
+ def self.initialize_params
34
+ unless self.is_good_store_id?
35
+ @params[:search] = nil
36
+ @params[:per_page] = nil
37
+ @params[:page] = nil
38
+ end
39
+ end
40
+
23
41
  def self.search
24
42
  sql = all
25
43
  column_args = get_column_args
@@ -42,7 +60,7 @@ module UiBibz::Concerns::Models::Searchable
42
60
  self.paginate_by_sql(sq, :page => @params[:page], per_page: @session[:per_page])
43
61
  else
44
62
  sql.order(order_sql).paginate(:page => @params[:page], per_page: @session[:per_page])
45
- end
63
+ end
46
64
 
47
65
  end
48
66
 
@@ -82,6 +100,11 @@ module UiBibz::Concerns::Models::Searchable
82
100
  @session[:per_page] = @params[:per_page] unless @params[:per_page].nil?
83
101
  self.search
84
102
  end
103
+
104
+ # If there's several table in the same page
105
+ def self.is_good_store_id?
106
+ @arguments[:store_id] == @params[:store_id]
107
+ end
85
108
  end
86
109
 
87
110
  module ClassMethods
@@ -12,11 +12,9 @@ module UiBibz::Helpers::MetaHelper
12
12
  def ui_bibz_meta_links
13
13
  capture do
14
14
  # Latest compiled and minified CSS
15
- concat stylesheet_link_tag "https://maxcdn.bootstrapcdn.com/bootstrap/3.3.1/css/bootstrap.min.css"
15
+ concat stylesheet_link_tag "https://maxcdn.bootstrapcdn.com/bootstrap/3.3.1/css/bootstrap.min.css", title: 'Default'
16
16
  # font awesome icons
17
17
  concat stylesheet_link_tag "https://maxcdn.bootstrapcdn.com/font-awesome/4.2.0/css/font-awesome.min.css"
18
- # Optional theme
19
- concat stylesheet_link_tag "https://maxcdn.bootstrapcdn.com/bootstrap/3.3.1/css/bootstrap-theme.min.css"
20
18
  # Jquery is required for boostrap
21
19
  concat javascript_include_tag 'https://code.jquery.com/jquery-2.1.1.min.js'
22
20
  # Latest compiled and minified JavaScript
@@ -24,4 +22,25 @@ module UiBibz::Helpers::MetaHelper
24
22
  end
25
23
  end
26
24
 
25
+ def ui_bibz_local_meta_links
26
+ capture do
27
+ # Latest compiled and minified CSS
28
+ concat stylesheet_link_tag "bootstrap.min"
29
+ # font awesome icons
30
+ concat stylesheet_link_tag "font-awesome.min"
31
+ # Jquery is required for boostrap
32
+ concat javascript_include_tag 'jquery-2.1.4.min'
33
+ # Latest compiled and minified JavaScript
34
+ concat javascript_include_tag "bootstrap.min"
35
+ end
36
+ end
37
+
38
+
39
+ #def ui_bibz_meta_links_ext
40
+ #capture do
41
+ ##concat javascript_include_tag '/vendor/assets/javascripts/moment.js'
42
+ ##concat javascript_include_tag 'boostrap-datetimepicker.js'
43
+ #end
44
+ #end
45
+
27
46
  end
@@ -13,6 +13,10 @@ module UiBibz::Helpers::UiCoreHelper
13
13
  UiBibz::Ui::Core::Alert.new(content, options, html_options, &block).render
14
14
  end
15
15
 
16
+ def stars content = nil, options = nil, html_options = nil, &block
17
+ UiBibz::Ui::Core::Stars.new(content, options, html_options, &block).render
18
+ end
19
+
16
20
  # Use "etiquette" instead of "label" : due to "actionview (4.2.0) lib/action_view/helpers/form_helper.rb" conflict
17
21
  def etiquette content = nil, options = nil, html_options = nil, &block
18
22
  UiBibz::Ui::Core::Label.new(content, options, html_options, &block).render
@@ -47,10 +47,12 @@ module UiBibz::Ui::Core
47
47
  #
48
48
  class Alert < Component
49
49
 
50
+ # See UiBibz::Ui::Core::Component.initialize
50
51
  def initialize content = nil, options = nil, html_options = nil, &block
51
52
  super
52
53
  end
53
54
 
55
+ # Render html tag
54
56
  def render
55
57
  content_tag :div, class_and_html_options('alert').merge({ role: 'alert'}) do
56
58
  concat glyph_and_content_html
@@ -53,15 +53,18 @@ module UiBibz::Ui::Core
53
53
  #
54
54
  class Breadcrumb < Component
55
55
 
56
+ # See UiBibz::Ui::Core::Component.initialize
56
57
  def initialize content = nil, options = nil, html_options = nil, &block
57
58
  super
58
59
  @links = []
59
60
  end
60
61
 
62
+ # Render html tag
61
63
  def render
62
64
  content_tag :ol, @links.join.html_safe, class_and_html_options("breadcrumb")
63
65
  end
64
66
 
67
+ # Add breadcrumb link items
65
68
  # See UiBibz::Ui::Core::BreadcrumbLink
66
69
  def link content = nil, options = nil, html_options = nil, &block
67
70
  @links << BreadcrumbLink.new(content, options, html_options, &block).render
@@ -40,10 +40,12 @@ module UiBibz::Ui::Core
40
40
  #
41
41
  class BreadcrumbLink < Component
42
42
 
43
+ # See UiBibz::Ui::Core::Component.initialize
43
44
  def initialize content = nil, options = nil, html_options = nil, &block
44
45
  super
45
46
  end
46
47
 
48
+ # Render html tag
47
49
  def render
48
50
  content_tag :li, link_html, class_and_html_options
49
51
  end
@@ -48,10 +48,12 @@ module UiBibz::Ui::Core
48
48
  # end
49
49
  class Button < Component
50
50
 
51
+ # See UiBibz::Ui::Core::Component.initialize
51
52
  def initialize content = nil, options = nil, html_options = nil, &block
52
53
  super
53
54
  end
54
55
 
56
+ # Render html tag
55
57
  def render
56
58
  content_tag :button, glyph_and_content_html, class_and_html_options(['btn', size])
57
59
  end
@@ -26,19 +26,19 @@ module UiBibz::Ui::Core
26
26
  # ==== Signatures
27
27
  #
28
28
  # UiBibz::Ui::Core::ButtonDropdown.new(options = nil, html_options = nil).tap do |d|
29
+ # ...
29
30
  # d.list content = nil, options = nil, html_options = nil, &block
30
- # d.list content = nil, options = nil, html_options = nil, &block
31
- # d.list content = nil, options = nil, html_options = nil, &block
31
+ # d.link content = nil, options = nil, html_options = nil, &block
32
32
  # ...
33
33
  # end
34
34
  #
35
35
  # ==== Examples
36
36
  #
37
37
  # UiBibz::Ui::Core::ButtonDropdown.new(name, state: :success).tap do |d|
38
- # d.list link_to('test', '#')
38
+ # d.link 'test', { url: '#Test1' }
39
39
  # d.list('---')
40
40
  # d.list('Header 1', { type: :header })
41
- # d.list link_to('test2', '#')
41
+ # d.link 'test2', { url: '#Test2' }
42
42
  # end.render
43
43
  #
44
44
  # ==== Helper
@@ -52,10 +52,12 @@ module UiBibz::Ui::Core
52
52
  #
53
53
  class ButtonDropdown < Dropdown
54
54
 
55
+ # See UiBibz::Ui::Core::Component.initialize
55
56
  def initialize name, options = nil, html_options = nil, &block
56
57
  super
57
58
  end
58
59
 
60
+ # Render html tag
59
61
  def render
60
62
  content_tag :div, class_and_html_options(['btn-group', type]).merge({ role: 'group' }) do
61
63
  concat button_html
@@ -44,10 +44,12 @@ module UiBibz::Ui::Core
44
44
  #
45
45
  class ButtonGroup < Component
46
46
 
47
+ # See UiBibz::Ui::Core::Component.initialize
47
48
  def initialize content = nil, options = nil, html_options = nil, &block
48
49
  super
49
50
  end
50
51
 
52
+ # Render html tag
51
53
  def render
52
54
  content_tag :div, @content, class_and_html_options(["btn-#{ type }", size, position]).merge({ role: type })
53
55
  end
@@ -50,10 +50,12 @@ module UiBibz::Ui::Core
50
50
  #
51
51
  class ButtonLink < Component
52
52
 
53
+ # See UiBibz::Ui::Core::Component.initialize
53
54
  def initialize content = nil, options = nil, html_options = nil, &block
54
55
  super
55
56
  end
56
57
 
58
+ # Render html tag
57
59
  def render
58
60
  link_to glyph_and_content_html, @options[:url], class_and_html_options("btn")
59
61
  end
@@ -52,10 +52,12 @@ module UiBibz::Ui::Core
52
52
  #
53
53
  class ButtonSplitDropdown < Dropdown
54
54
 
55
+ # See UiBibz::Ui::Core::Component.initialize
55
56
  def initialize name, options = nil, html_options = nil, &block
56
57
  super
57
58
  end
58
59
 
60
+ # Render html tag
59
61
  def render
60
62
  content_tag :div, class_and_html_options(['btn-group', type]).merge({ role: 'group' }) do
61
63
  concat button_html
@@ -44,11 +44,13 @@ module UiBibz::Ui::Core
44
44
  #
45
45
  class Col < Component
46
46
 
47
+ # See UiBibz::Ui::Core::Component.initialize
47
48
  def initialize content = nil, options = nil, html_options = nil, &block
48
49
  super
49
50
  @cols = []
50
51
  end
51
52
 
53
+ # Render html tag
52
54
  def render
53
55
  content_tag :div, @content, class_and_html_options(col_classes)
54
56
  end
@@ -40,6 +40,11 @@ module UiBibz::Ui::Core
40
40
 
41
41
  attr_accessor :content, :html_options, :options
42
42
 
43
+ # Use link_to system in rails
44
+ # * Content can be send by content variable or by block
45
+ # if a block is sent, variable 'content' does not exit.
46
+ # * Options of component is defined in hash options
47
+ # * Html options is defined in hash html_options
43
48
  def initialize content = nil, options = nil, html_options = nil, &block
44
49
  if !block.nil?
45
50
  @html_options, @options = options, content
@@ -56,45 +61,40 @@ module UiBibz::Ui::Core
56
61
  @options = @options || {}
57
62
  end
58
63
 
64
+ # Render html tag
59
65
  def render
60
66
  glyph_and_content_html
61
67
  end
62
68
 
69
+ # Render glyph and content html
63
70
  def glyph_and_content_html
64
71
  [glyph_with_space, @content].compact.join.html_safe
65
72
  end
66
73
 
67
- def glyph
68
- glyph_info = options[:glyph] if options.kind_of?(Hash)
69
- Glyph.new(glyph_info).render unless glyph_info.nil?
70
- end
71
-
74
+ # Render glyph with space html
72
75
  def glyph_with_space
73
76
  "#{ glyph } " unless glyph.nil?
74
77
  end
75
78
 
76
- def options
77
- @options
78
- end
79
-
80
- def html_options
81
- @html_options
79
+ # Render glyph html
80
+ def glyph
81
+ glyph_info = options[:glyph] if options.kind_of?(Hash)
82
+ Glyph.new(glyph_info).render unless glyph_info.nil?
82
83
  end
83
84
 
84
- def content
85
- @content
85
+ # Render badge html tag
86
+ def badge_html
87
+ content_tag :span, @options[:badge], class: 'badge'
86
88
  end
87
89
 
90
+ # Set :default state symbol
88
91
  def state
89
92
  sym = options.delete(:state) if options[:state]
90
93
  sym = sym || :default
91
94
  states[:sym]
92
95
  end
93
96
 
94
- def badge_html
95
- content_tag :span, @options[:badge], class: 'badge'
96
- end
97
-
97
+ # Add classes in html_options
98
98
  def class_and_html_options classes = nil
99
99
  options_class = options[:class] if options.kind_of?(Hash)
100
100
  cls = [
@@ -109,13 +109,15 @@ module UiBibz::Ui::Core
109
109
  html_options
110
110
  end
111
111
 
112
- def options_in_html_options opts
113
- html_options.merge!(opts) unless opts.nil?
114
- html_options
112
+ # Add classes in html_options
113
+ def add_classes *classes
114
+ classes.compact.join(' ')
115
115
  end
116
116
 
117
+ private
118
+
117
119
  def status
118
- options[:status]
120
+ options[:status] unless options[:status].nil?
119
121
  end
120
122
 
121
123
  def states
@@ -129,9 +131,5 @@ module UiBibz::Ui::Core
129
131
  @states
130
132
  end
131
133
 
132
- def add_classes *classes
133
- classes.compact.join(' ')
134
- end
135
-
136
134
  end
137
135
  end
@@ -0,0 +1,57 @@
1
+ module UiBibz::Ui::Core
2
+
3
+ # Create DropdownLink
4
+ #
5
+ # This element is an extend of UiBibz::Ui::Core::Component.
6
+ #
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
+ # * +status+ - State of élement with symbol value:
18
+ # (+:active+)
19
+ # * +url+ - String
20
+ # * +glyph+ - Add glyph with name or hash options
21
+ # * +name+ - String
22
+ # * +size+ - Integer
23
+ # * +type+ - Symbol
24
+ # * +link_html_options+ - Hash
25
+ #
26
+ # ==== Signatures
27
+ #
28
+ # UiBibz::Ui::Core::DropdownLink.new(content, options = nil, html_options = nil)
29
+ #
30
+ # UiBibz::Ui::Core::DropdownLink.new(options = nil, html_options = nil) do
31
+ # content
32
+ # end
33
+ #
34
+ # ==== Examples
35
+ #
36
+ # UiBibz::Ui::Core::DropdownLink.new('Home', { glyph: 'home', status: :active, url: '#home', link_html_options: { class: 'link1' }},{ class: 'test' }).render
37
+ #
38
+ # UiBibz::Ui::Core::DropdownLink.new({ glyph: { name: 'eye', size: 3 }, url: '#home' }, { class: 'test' }) do
39
+ # 'Home'
40
+ # end.render
41
+ #
42
+ class DropdownLink < Component
43
+
44
+ # See UiBibz::Ui::Core::Component.initialize
45
+ def initialize content = nil, options = nil, html_options = nil, &block
46
+ super
47
+ end
48
+
49
+ # Render html tag
50
+ def render
51
+ content_tag :li, @html_options.merge({ role: 'presentation' }) do
52
+ link_to glyph_and_content_html, @options[:url], @options[:link_html_options]
53
+ end
54
+ end
55
+
56
+ end
57
+ end
@@ -45,10 +45,12 @@ module UiBibz::Ui::Core
45
45
 
46
46
  DIVIDER = '---'
47
47
 
48
+ # See UiBibz::Ui::Core::Component.initialize
48
49
  def initialize content = nil, options = nil, html_options = nil, &block
49
50
  super
50
51
  end
51
52
 
53
+ # Render html tag
52
54
  def render
53
55
  @content == DIVIDER ? divider_html : link_html
54
56
  end
@@ -1,4 +1,5 @@
1
1
  require 'ui_bibz/ui/core/dropdown/components/dropdown_list'
2
+ require 'ui_bibz/ui/core/dropdown/components/dropdown_link'
2
3
  module UiBibz::Ui::Core
3
4
 
4
5
  # Create a dropdown
@@ -28,19 +29,19 @@ module UiBibz::Ui::Core
28
29
  # ==== Signatures
29
30
  #
30
31
  # UiBibz::Ui::Core::Dropdown.new(options = nil, html_options = nil).tap do |d|
32
+ # ...
31
33
  # d.list content = nil, options = nil, html_options = nil, &block
32
- # d.list content = nil, options = nil, html_options = nil, &block
33
- # d.list content = nil, options = nil, html_options = nil, &block
34
+ # d.link content = nil, options = nil, html_options = nil, &block
34
35
  # ...
35
36
  # end
36
37
  #
37
38
  # ==== Examples
38
39
  #
39
40
  # UiBibz::Ui::Core::Dropdown.new(name, state: :success).tap do |d|
40
- # d.list link_to('test', '#')
41
- # d.list('---')
42
- # d.list('Header 1', { type: :header })
43
- # d.list link_to('test2', '#')
41
+ # d.link 'test', { url: '#' }
42
+ # d.list '---'
43
+ # d.list 'Header 1', { type: :header }
44
+ # d.link 'test2', { url: '#' }
44
45
  # end.render
45
46
  #
46
47
  # ==== Helper
@@ -50,16 +51,21 @@ module UiBibz::Ui::Core
50
51
  # d.list(options = {}, html_options = {}) do
51
52
  # content
52
53
  # end
54
+ # d.link(content, options = {}, html_options = {})
55
+ # d.link(options = {}, html_options = {}) do
56
+ # content
57
+ # end
53
58
  # end
54
59
  #
55
60
  class Dropdown < Component
56
61
 
57
62
  def initialize content, options = nil, html_options = nil, &block
58
63
  super
59
- @lists = []
64
+ @items = []
60
65
  @state = @options.delete(:state)
61
66
  end
62
67
 
68
+ # Render html tag
63
69
  def render
64
70
  content_tag :div, class_and_html_options(type) do
65
71
  concat button_html
@@ -67,9 +73,16 @@ module UiBibz::Ui::Core
67
73
  end
68
74
  end
69
75
 
76
+ # Add dropdown list
70
77
  # See UiBibz::Ui::Core::DropdownList
71
78
  def list content = nil, options = nil, html_options = nil, &block
72
- @lists << DropdownList.new(content, options, html_options, &block).render
79
+ @items << DropdownList.new(content, options, html_options, &block).render
80
+ end
81
+
82
+ # Add dropdown link in list
83
+ # See UiBibz::Ui::Core::DropdownLink
84
+ def link content = nil, options = nil, html_options = nil, &block
85
+ @items << DropdownLink.new(content, options, html_options, &block).render
73
86
  end
74
87
 
75
88
  protected
@@ -83,7 +96,7 @@ module UiBibz::Ui::Core
83
96
  end
84
97
 
85
98
  def ul_html
86
- content_tag :ul, @lists.join.html_safe, class: "dropdown-menu dropdown-menu-#{ position }", role: 'menu'
99
+ content_tag :ul, @items.join.html_safe, class: "dropdown-menu dropdown-menu-#{ position }", role: 'menu'
87
100
  end
88
101
 
89
102
  def caret
@@ -17,6 +17,8 @@ module UiBibz::Ui::Core
17
17
  # * +name+ - String
18
18
  # * +size+ - Integer
19
19
  # * +type+ - Symbol
20
+ # * +state+ - Symbol
21
+ # (+:default+, +:primary+, +:info+, +:warning+, +:danger+)
20
22
  #
21
23
  # ==== Signatures
22
24
  #
@@ -54,14 +56,18 @@ module UiBibz::Ui::Core
54
56
  # end
55
57
  class Glyph < Component
56
58
 
59
+ # See UiBibz::Ui::Core::Component.initialize
57
60
  def initialize content, options = nil, html_options = nil, &block
58
61
  super
59
62
  end
60
63
 
64
+ # Render html tag
61
65
  def render
62
66
  content_tag :i, '', class_and_html_options(classes)
63
67
  end
64
68
 
69
+ private
70
+
65
71
  def classes
66
72
  cls = ["glyph", "fa", "fa-#{ content }"]
67
73
  cls << "fa-#{ size }x" unless size.nil?
@@ -96,5 +102,9 @@ module UiBibz::Ui::Core
96
102
  @options[:name] || @content
97
103
  end
98
104
 
105
+ def state
106
+ "glyph-#{ @options[:state] }" unless @options[:state].nil?
107
+ end
108
+
99
109
  end
100
110
  end
@@ -42,10 +42,12 @@ module UiBibz::Ui::Core
42
42
  #
43
43
  class Jumbotron < Component
44
44
 
45
+ # See UiBibz::Ui::Core::Component.initialize
45
46
  def initialize content = nil, options = nil, html_options = nil, &block
46
47
  super
47
48
  end
48
49
 
50
+ # Render html tag
49
51
  def render
50
52
  content_tag :div, class_and_html_options('jumbotron') do
51
53
  if full_width
@@ -3,6 +3,7 @@ module UiBibz::Ui::Core
3
3
  # Create a label
4
4
  #
5
5
  # This element is an extend of UiBibz::Ui::Core::Component.
6
+ # The helper use 'etiquette' method to avoid conflict with Rails.
6
7
  #
7
8
  # ==== Attributes
8
9
  #
@@ -47,10 +48,12 @@ module UiBibz::Ui::Core
47
48
  #
48
49
  class Label < Component
49
50
 
51
+ # See UiBibz::Ui::Core::Component.initialize
50
52
  def initialize content = nil, options = nil, html_options = nil, &block
51
53
  super
52
54
  end
53
55
 
56
+ # Render html tag
54
57
  def render
55
58
  content_tag :span, glyph_and_content_html, class_and_html_options('label')
56
59
  end
@@ -55,10 +55,12 @@ module UiBibz::Ui::Core
55
55
  #
56
56
  class List < Component
57
57
 
58
+ # See UiBibz::Ui::Core::Component.initialize
58
59
  def initialize content = nil, options = nil, html_options = nil, &block
59
60
  super
60
61
  end
61
62
 
63
+ # Render html tag
62
64
  def render
63
65
  content_tag tag, class_and_html_options('list-group-item') do
64
66
  concat glyph_and_content_html if @content
@@ -68,10 +70,12 @@ module UiBibz::Ui::Core
68
70
  end
69
71
  end
70
72
 
73
+ # Add header which is a component
71
74
  def header content = nil, options = nil, html_options = nil, &block
72
75
  @header = Component.new content, options, html_options, &block
73
76
  end
74
77
 
78
+ # Add body which is a component
75
79
  def body content = nil, options = nil, html_options = nil, &block
76
80
  @body = Component.new content, options, html_options, &block
77
81
  end
@@ -70,15 +70,19 @@ module UiBibz::Ui::Core
70
70
  #
71
71
  class ListGroup < Component
72
72
 
73
+ # See UiBibz::Ui::Core::Component.initialize
73
74
  def initialize content = nil, options = nil, html_options = nil, &block
74
75
  super
75
76
  @lists = []
76
77
  end
77
78
 
79
+ # Render html tag
78
80
  def render
79
81
  content_tag type, @lists.join().html_safe, class_and_html_options("list-group")
80
82
  end
81
83
 
84
+ # Add group list
85
+ # See UiBibz::Ui::Core::List
82
86
  def list content = nil, options = {} , html_options = nil, &block
83
87
  is_tap = (content[:tap] if content.kind_of?(Hash)) || (options[:tap] unless options.nil?)
84
88
  options = options.merge({ type: :link }) if @options[:type] == :link