ui_bibz 1.0.0 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (154) hide show
  1. checksums.yaml +13 -5
  2. data/.gitignore +1 -1
  3. data/.yardoc/checksums +52 -0
  4. data/.yardoc/object_types +0 -0
  5. data/.yardoc/objects/root.dat +0 -0
  6. data/.yardoc/proxy_types +0 -0
  7. data/Gemfile +1 -1
  8. data/Gemfile.lock +11 -21
  9. data/README.md +359 -239
  10. data/Rakefile +12 -13
  11. data/doc/UiBibz/Concerns/Models/Searchable/ClassMethods.html +174 -0
  12. data/doc/UiBibz/Concerns/Models/Searchable.html +120 -0
  13. data/doc/UiBibz/Helpers/MetaHelper.html +218 -0
  14. data/doc/UiBibz/Helpers/UiCoreHelper.html +1130 -0
  15. data/doc/UiBibz/Helpers/UiUxHelper.html +463 -0
  16. data/doc/UiBibz/Helpers/UtilsHelper.html +187 -0
  17. data/doc/UiBibz/Rails/Engine.html +123 -0
  18. data/doc/UiBibz/Rails.html +115 -0
  19. data/doc/UiBibz/Ui/Base.html +304 -0
  20. data/doc/UiBibz/Ui/Core/Alert.html +367 -0
  21. data/doc/UiBibz/Ui/Core/Bar.html +356 -0
  22. data/doc/UiBibz/Ui/Core/Breadcrumb.html +427 -0
  23. data/doc/UiBibz/Ui/Core/BreadcrumbLink.html +354 -0
  24. data/doc/UiBibz/Ui/Core/Button.html +363 -0
  25. data/doc/UiBibz/Ui/Core/ButtonDropdown.html +385 -0
  26. data/doc/UiBibz/Ui/Core/ButtonGroup.html +356 -0
  27. data/doc/UiBibz/Ui/Core/ButtonLink.html +365 -0
  28. data/doc/UiBibz/Ui/Core/ButtonSplitDropdown.html +387 -0
  29. data/doc/UiBibz/Ui/Core/Col.html +357 -0
  30. data/doc/UiBibz/Ui/Core/Component.html +1144 -0
  31. data/doc/UiBibz/Ui/Core/Dropdown.html +877 -0
  32. data/doc/UiBibz/Ui/Core/DropdownList.html +369 -0
  33. data/doc/UiBibz/Ui/Core/Glyph.html +742 -0
  34. data/doc/UiBibz/Ui/Core/Jumbotron.html +363 -0
  35. data/doc/UiBibz/Ui/Core/Label.html +361 -0
  36. data/doc/UiBibz/Ui/Core/List.html +486 -0
  37. data/doc/UiBibz/Ui/Core/ListGroup.html +446 -0
  38. data/doc/UiBibz/Ui/Core/Nav.html +474 -0
  39. data/doc/UiBibz/Ui/Core/NavDropdown.html +376 -0
  40. data/doc/UiBibz/Ui/Core/NavLink.html +347 -0
  41. data/doc/UiBibz/Ui/Core/Navbar.html +535 -0
  42. data/doc/UiBibz/Ui/Core/NavbarForm.html +341 -0
  43. data/doc/UiBibz/Ui/Core/NavbarNav.html +301 -0
  44. data/doc/UiBibz/Ui/Core/NavbarText.html +341 -0
  45. data/doc/UiBibz/Ui/Core/Panel.html +806 -0
  46. data/doc/UiBibz/Ui/Core/ProgressBar.html +433 -0
  47. data/doc/UiBibz/Ui/Core/Row.html +335 -0
  48. data/doc/UiBibz/Ui/Core.html +117 -0
  49. data/doc/UiBibz/Ui/Ux/Actionable.html +478 -0
  50. data/doc/UiBibz/Ui/Ux/Actions.html +314 -0
  51. data/doc/UiBibz/Ui/Ux/Column.html +1177 -0
  52. data/doc/UiBibz/Ui/Ux/Columns.html +312 -0
  53. data/doc/UiBibz/Ui/Ux/Grid.html +823 -0
  54. data/doc/UiBibz/Ui/Ux/Paginable.html +368 -0
  55. data/doc/UiBibz/Ui/Ux/Searchable.html +363 -0
  56. data/doc/UiBibz/Ui/Ux/Sortable.html +289 -0
  57. data/doc/UiBibz/Ui/Ux/Store.html +968 -0
  58. data/doc/UiBibz/Ui/Ux/Table.html +957 -0
  59. data/doc/UiBibz/Ui/Ux/TableAction.html +309 -0
  60. data/doc/UiBibz/Ui/Ux/TablePagination.html +319 -0
  61. data/doc/UiBibz/Ui/Ux/TablePaginationPerPage.html +331 -0
  62. data/doc/UiBibz/Ui/Ux/TablePanel.html +576 -0
  63. data/doc/UiBibz/Ui/Ux/TableSearchField.html +291 -0
  64. data/doc/UiBibz/Ui/Ux.html +117 -0
  65. data/doc/UiBibz/Ui.html +117 -0
  66. data/doc/UiBibz/Utils/Internationalization.html +262 -0
  67. data/doc/UiBibz/Utils.html +115 -0
  68. data/doc/UiBibz.html +129 -0
  69. data/doc/_index.html +635 -0
  70. data/doc/class_list.html +58 -0
  71. data/doc/css/common.css +1 -0
  72. data/doc/css/full_list.css +57 -0
  73. data/doc/css/style.css +339 -0
  74. data/doc/file.README.html +1022 -0
  75. data/doc/file_list.html +60 -0
  76. data/doc/frames.html +26 -0
  77. data/doc/images/navbar.png +0 -0
  78. data/doc/index.html +1022 -0
  79. data/doc/js/app.js +219 -0
  80. data/doc/js/full_list.js +181 -0
  81. data/doc/js/jquery.js +4 -0
  82. data/doc/method_list.html +1335 -0
  83. data/doc/top-level-namespace.html +112 -0
  84. data/lib/ui_bibz/helpers/ui_core_helper.rb +94 -0
  85. data/lib/ui_bibz/helpers/ui_ux_helper.rb +43 -0
  86. data/lib/ui_bibz/rails/engine.rb +2 -1
  87. data/lib/ui_bibz/ui/{ui.rb → base.rb} +1 -1
  88. data/lib/ui_bibz/ui/{alert.rb → core/alert.rb} +15 -7
  89. data/lib/ui_bibz/ui/core/breadcrumb/breadcrumb.rb +71 -0
  90. data/lib/ui_bibz/ui/{breadcrumb → core/breadcrumb}/components/breadcrumb_link.rb +6 -6
  91. data/lib/ui_bibz/ui/{button → core/button}/button.rb +13 -6
  92. data/lib/ui_bibz/ui/{button → core/button}/button_dropdown.rb +15 -4
  93. data/lib/ui_bibz/ui/{button → core/button}/button_group.rb +14 -6
  94. data/lib/ui_bibz/ui/{button → core/button}/button_link.rb +14 -6
  95. data/lib/ui_bibz/ui/{button → core/button}/button_split_dropdown.rb +15 -4
  96. data/lib/ui_bibz/ui/{grid/components → core}/col.rb +12 -6
  97. data/lib/ui_bibz/ui/{component.rb → core/component.rb} +7 -7
  98. data/lib/ui_bibz/ui/{dropdown → core/dropdown}/components/dropdown_list.rb +7 -7
  99. data/lib/ui_bibz/ui/{dropdown → core/dropdown}/dropdown.rb +18 -7
  100. data/lib/ui_bibz/ui/{glyph.rb → core/glyph.rb} +18 -10
  101. data/lib/ui_bibz/ui/{jumbotron.rb → core/jumbotron.rb} +14 -6
  102. data/lib/ui_bibz/ui/{label.rb → core/label.rb} +14 -6
  103. data/lib/ui_bibz/ui/{list → core/list}/components/list.rb +8 -8
  104. data/lib/ui_bibz/ui/{list → core/list}/list_group.rb +28 -6
  105. data/lib/ui_bibz/ui/core/nav/components/nav_dropdown.rb +64 -0
  106. data/lib/ui_bibz/ui/{nav → core/nav}/components/nav_link.rb +6 -6
  107. data/lib/ui_bibz/ui/core/nav/components/navbar_form.rb +45 -0
  108. data/lib/ui_bibz/ui/core/nav/components/navbar_nav.rb +56 -0
  109. data/lib/ui_bibz/ui/core/nav/components/navbar_text.rb +45 -0
  110. data/lib/ui_bibz/ui/core/nav/nav.rb +90 -0
  111. data/lib/ui_bibz/ui/core/nav/navbar.rb +121 -0
  112. data/lib/ui_bibz/ui/{panel.rb → core/panel.rb} +36 -8
  113. data/lib/ui_bibz/ui/{progress_bar → core/progress_bar}/components/bar.rb +7 -7
  114. data/lib/ui_bibz/ui/{progress_bar → core/progress_bar}/progress_bar.rb +20 -9
  115. data/lib/ui_bibz/ui/{grid/components → core}/row.rb +12 -4
  116. data/lib/ui_bibz/ui/{grid → ux}/grid.rb +17 -8
  117. data/lib/ui_bibz/ui/{table → ux/table}/components/actions.rb +5 -5
  118. data/lib/ui_bibz/ui/ux/table/components/column.rb +34 -0
  119. data/lib/ui_bibz/ui/ux/table/components/columns.rb +16 -0
  120. data/lib/ui_bibz/ui/{table → ux/table}/components/store.rb +4 -4
  121. data/lib/ui_bibz/ui/{table → ux/table}/components/table_action.rb +2 -2
  122. data/lib/ui_bibz/ui/{table/ux → ux/table/extensions}/actionable.rb +3 -3
  123. data/lib/ui_bibz/ui/{table/ux → ux/table/extensions}/paginable.rb +5 -5
  124. data/lib/ui_bibz/ui/{table/ux → ux/table/extensions}/searchable.rb +4 -4
  125. data/lib/ui_bibz/ui/{table/ux → ux/table/extensions}/sortable.rb +3 -3
  126. data/lib/ui_bibz/ui/{table → ux/table}/table.rb +40 -22
  127. data/lib/ui_bibz/ui/ux/table/table_pagination.rb +51 -0
  128. data/lib/ui_bibz/ui/{table → ux/table}/table_pagination_per_page.rb +26 -4
  129. data/lib/ui_bibz/ui/ux/table/table_panel.rb +155 -0
  130. data/lib/ui_bibz/ui/{table → ux/table}/table_search_field.rb +7 -7
  131. data/lib/ui_bibz/version.rb +1 -1
  132. data/lib/ui_bibz.rb +40 -29
  133. data/test/store_test.rb +2 -2
  134. data/test/ui/button_test.rb +6 -6
  135. data/test/ui/component_test.rb +2 -2
  136. data/test/ui/dropdown_test.rb +1 -1
  137. data/test/ui/glyph_test.rb +3 -3
  138. data/test/ui/grid_test.rb +4 -4
  139. data/test/ui/list_group_test.rb +2 -2
  140. data/test/ui/nav_test.rb +3 -4
  141. data/test/ui/panel_test.rb +4 -4
  142. data/test/ui/table_test.rb +32 -32
  143. data/test/ui_helper_test.rb +18 -2
  144. data/ui_bibz.gemspec +1 -0
  145. data/vendor/assets/stylesheets/ui_bibz.sass +3 -0
  146. metadata +166 -132
  147. data/README.rdoc +0 -0
  148. data/lib/ui_bibz/helpers/ui_helper.rb +0 -119
  149. data/lib/ui_bibz/ui/breadcrumb/breadcrumb.rb +0 -54
  150. data/lib/ui_bibz/ui/nav/nav.rb +0 -65
  151. data/lib/ui_bibz/ui/table/components/column.rb +0 -34
  152. data/lib/ui_bibz/ui/table/components/columns.rb +0 -16
  153. data/lib/ui_bibz/ui/table/table_pagination.rb +0 -29
  154. data/lib/ui_bibz/ui/table/table_panel.rb +0 -66
@@ -1,17 +1,17 @@
1
- require "ui_bibz/ui/table/components/store"
2
- require "ui_bibz/ui/table/components/columns"
3
- require "ui_bibz/ui/table/components/column"
4
- require "ui_bibz/ui/table/components/actions"
5
- require "ui_bibz/ui/table/ux/paginable"
6
- require "ui_bibz/ui/table/ux/paginable"
7
- require "ui_bibz/ui/table/ux/searchable"
8
- require "ui_bibz/ui/table/ux/sortable"
9
- require "ui_bibz/ui/table/ux/actionable"
10
- module UiBibz::Ui
1
+ require "ui_bibz/ui/ux/table/components/store"
2
+ require "ui_bibz/ui/ux/table/components/columns"
3
+ require "ui_bibz/ui/ux/table/components/column"
4
+ require "ui_bibz/ui/ux/table/components/actions"
5
+ require "ui_bibz/ui/ux/table/extensions/paginable"
6
+ require "ui_bibz/ui/ux/table/extensions/paginable"
7
+ require "ui_bibz/ui/ux/table/extensions/searchable"
8
+ require "ui_bibz/ui/ux/table/extensions/sortable"
9
+ require "ui_bibz/ui/ux/table/extensions/actionable"
10
+ module UiBibz::Ui::Ux
11
11
 
12
12
  # Create a Table
13
13
  #
14
- # This element is an extend of UiBibz::Ui::Component.
14
+ # This element is an extend of UiBibz::Ui::Ux::Component.
15
15
  #
16
16
  # ==== Attributes
17
17
  #
@@ -31,36 +31,54 @@ module UiBibz::Ui
31
31
  #
32
32
  # ==== Signatures
33
33
  #
34
- # UiBibz::Ui::Table.new(store: @store)
34
+ # UiBibz::Ui::Ux::Table.new(store: @store)
35
35
  #
36
- # UiBibz::Ui::Table.new(store: @store, tap: true) do |t|
36
+ # UiBibz::Ui::Ux::Table.new(store: @store, tap: true) do |t|
37
37
  # t.columns do |c|
38
38
  # c.column name: '#', data_index: '#'
39
39
  # end
40
- # t.action do |a|
40
+ # t.actions do |a|
41
41
  # a.action '', url: url, glyph: ''
42
42
  # end
43
43
  # end
44
44
  #
45
45
  # ==== Examples
46
46
  #
47
- # UiBibz::Ui::Table.new(store: @users).render
47
+ # UiBibz::Ui::Ux::Table.new(store: @users).render
48
48
  #
49
- # UiBibz::Ui::Table.new(store: @users).tap do |t|
49
+ # UiBibz::Ui::Ux::Table.new(store: @users).tap do |t|
50
50
  # t.columns do |c|
51
- # c.column name: '#', data_index: 'id'
52
- # c.column name: 'Name fr', data_index: 'name_fr', link: edit_user_path(:id), order: 2
53
- # c.column name: 'Name en', data_index: 'name_en', order: 1
54
- # c.column name: 'Name en', data_index: 'name_en', format: lambda{ |records, record| "name #{ record.id}"}
51
+ # c.column '#', { data_index: 'id' }
52
+ # c.column 'Name fr', { data_index: 'name_fr', link: edit_user_path(:id), order: 2 }
53
+ # c.column 'Name en', { data_index: 'name_en', order: 1 }
54
+ # c.column 'Name en', { data_index: 'name_en', format: lambda{ |records, record| "name #{ record.id}"} }
55
55
  # end
56
- # t.action do |a|
56
+ # t.actions do |a|
57
57
  # a.action 'toto', url: users_path(:id), glyph: 'eye'
58
58
  # a.action '---'
59
59
  # a.action 'momo', url: users_path(:id), glyph: 'home'
60
60
  # end
61
61
  # end.render
62
62
  #
63
- class Table < Component
63
+ # ==== Helper
64
+ #
65
+ # table(options = {}, html_options = {})
66
+ #
67
+ # table(options = { tap: true }, html_options = {}) do |t|
68
+ # t.columns do |cls|
69
+ # cls.column(name, options = {}, html_options = {})
70
+ # cls.column(options = {}, html_options = {}) do
71
+ # name
72
+ # end
73
+ # end
74
+ # t.actions do |acs|
75
+ # acs.action(content, options = {}, html_options = {})
76
+ # acs.action(options = {}, html_options = {}) do
77
+ # content
78
+ # end
79
+ # end
80
+ # end
81
+ class Table < UiBibz::Ui::Core::Component
64
82
 
65
83
  attr_accessor :columns
66
84
 
@@ -0,0 +1,51 @@
1
+ require 'will_paginate'
2
+ require "will_paginate-bootstrap"
3
+ require "ui_bibz/ui/ux/table/components/store"
4
+ module UiBibz::Ui::Ux
5
+
6
+ # Create a pagination for table
7
+ #
8
+ # ==== Attributes
9
+ #
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
+ # * +store+ - Store generate by '+table_search_pagination+' method
18
+ #
19
+ # ==== Signatures
20
+ #
21
+ # UiBibz::Ui::Ux::TablePagination.new(store: @store)
22
+ #
23
+ # ==== Helper
24
+ #
25
+ # table_pagination(options = {})
26
+ #
27
+ class TablePagination < UiBibz::Ui::Base
28
+ include WillPaginate::ActionView
29
+
30
+ def initialize options = nil, html_options = nil
31
+ @pagination = UiBibz::Ui::Core::Component.new nil, options, html_options
32
+ end
33
+
34
+ def render
35
+ will_paginate(store.records, params: { controller: store.controller }, renderer: BootstrapPagination::Rails)
36
+ end
37
+
38
+ private
39
+
40
+ def store
41
+ @store ||= if @pagination.options[:store].nil?
42
+ raise 'Store is nil!'
43
+ elsif @pagination.options[:store].try(:records).nil?
44
+ raise 'Store can be created only with "table_search_pagination" method!'
45
+ else
46
+ Store.new @pagination.options.delete :store
47
+ end
48
+ end
49
+
50
+ end
51
+ end
@@ -1,10 +1,32 @@
1
- require "ui_bibz/ui/table/components/store"
2
- module UiBibz::Ui
3
- class TablePaginationPerPage < Ui
1
+ require "ui_bibz/ui/ux/table/components/store"
2
+ module UiBibz::Ui::Ux
3
+
4
+ # Create a select pagination per page
5
+ #
6
+ # ==== Attributes
7
+ #
8
+ # * +options+ - Options of element
9
+ # * +html_options+ - Html Options of element
10
+ #
11
+ # ==== Options
12
+ #
13
+ # You can add HTML attributes using the +html_options+.
14
+ # You can pass arguments in options attribute:
15
+ # * +store+ - Store generate by '+table_search_pagination+' method
16
+ #
17
+ # ==== Signatures
18
+ #
19
+ # UiBibz::Ui::Ux::TablePaginationPerPage.new(store: @store)
20
+ #
21
+ # ==== Helper
22
+ #
23
+ # table_pagination_per_page(options = {})
24
+ #
25
+ class TablePaginationPerPage < UiBibz::Ui::Base
4
26
  include WillPaginate::ActionView
5
27
 
6
28
  def initialize options = nil, html_options = nil
7
- @per_page_field = Component.new nil, options, html_options
29
+ @per_page_field = UiBibz::Ui::Core::Component.new nil, options, html_options
8
30
  end
9
31
 
10
32
  def render
@@ -0,0 +1,155 @@
1
+ module UiBibz::Ui::Ux
2
+
3
+ # Create a TablePanel
4
+ #
5
+ # This element is an extend of UiBibz::Ui::Ux::Panel.
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
+ # * +store+ - Store generate by '+table_search_pagination+' method
18
+ # * +url+ - String
19
+ # * tap - Boolean
20
+ # * columns - Add column
21
+ # * actions - Add action by row
22
+ #
23
+ # ==== Signatures
24
+ #
25
+ # UiBibz::Ui::Ux::TablePanel.new(store: @store)
26
+ #
27
+ # UiBibz::Ui::Ux::TablePanel.new(store: @store, tap: true) do |t|
28
+ # t.columns do |c|
29
+ # c.column '#', { data_index: '#' }
30
+ # end
31
+ # t.actions do |a|
32
+ # a.action '', url: url, glyph: ''
33
+ # end
34
+ # end
35
+ #
36
+ # ==== Examples
37
+ #
38
+ # UiBibz::Ui::Ux::TablePanel.new(store: @users, pagination).render
39
+ #
40
+ # UiBibz::Ui::Ux::TablePanel.new(store: @users).tap do |t|
41
+ # t.header 'My Table panel'
42
+ # t.columns do |c|
43
+ # c.column '#', { data_index: 'id' }, { class: 'column-id' }
44
+ # c.column 'Name fr', { data_index: 'name_fr', link: edit_user_path(:id), order: 2 }
45
+ # c.column 'Name en', { data_index: 'name_en', order: 1 }
46
+ # c.column 'Name en', { data_index: 'name_en', format: lambda{ |records, record| "name #{ record.id}"} }
47
+ # end
48
+ # t.actions do |a|
49
+ # a.action 'toto', url: users_path(:id), glyph: 'eye'
50
+ # a.action '---'
51
+ # a.action 'momo', url: users_path(:id), glyph: 'home'
52
+ # end
53
+ # end.render
54
+ #
55
+ # ==== Helper
56
+ #
57
+ # table_panel(options = {}, html_options = {})
58
+ #
59
+ # table_panel(options = { tap: true }, html_options = {}) do |t|
60
+ # t.header(content, options = {}, html_options = {})
61
+ # # or
62
+ # t.header(options = {}, html_options = {}) do
63
+ # content
64
+ # end
65
+ #
66
+ # t.body(content, options = {}, html_options = {})
67
+ # # or
68
+ # t.body(options = {}, html_options = {}) do
69
+ # content
70
+ # end
71
+ #
72
+ # t.columns do |cls|
73
+ # cls.column(name, options = {}, html_options = {})
74
+ # cls.column(options = {}, html_options = {}) do
75
+ # name
76
+ # end
77
+ # end
78
+ # t.actions do |acs|
79
+ # acs.action(name, options = {}, html_options = {})
80
+ # acs.action(options = {}, html_options = {}) do
81
+ # content
82
+ # end
83
+ # end
84
+ #
85
+ # t.footer(content, options = {}, html_options = {})
86
+ # # or
87
+ # t.footer(options = {}, html_options = {}) do
88
+ # content
89
+ # end
90
+ # end
91
+ class TablePanel < UiBibz::Ui::Core::Panel
92
+
93
+ attr_accessor :columns
94
+
95
+ def initialize content = nil, options = nil, html_options = nil, &block
96
+ super
97
+ @store = @options.delete(:store) if @options[:store]
98
+ table_options = (@options[:table_options] || {}).merge({ store: @store })
99
+ @table = UiBibz::Ui::Ux::Table.new(table_options, @options[:table_html_options])
100
+ end
101
+
102
+ def render
103
+ initialize_header
104
+ initialize_footer
105
+
106
+ content_tag :div, class_and_html_options(panel_classes) do |f|
107
+ form_tag(url_for(controller: @store.controller, action: @store.action), method: :get) do
108
+ concat(header_html) unless @header.nil?
109
+ concat(body_html) unless @body.nil?
110
+ concat(table_html) unless @store.nil?
111
+ concat(footer_html) unless @footer.nil?
112
+ end
113
+ end
114
+ end
115
+
116
+ def columns &block
117
+ @table.columns &block
118
+ end
119
+
120
+ def actions &block
121
+ @table.actions &block
122
+ end
123
+
124
+ private
125
+
126
+ def table_html
127
+ content_tag :div, @table.render, class: 'panel-table'
128
+ end
129
+
130
+ def panel_classes
131
+ %w(panel panel-default table-panel)
132
+ end
133
+
134
+ def search
135
+ @search ||= Searchable.new @store, @options
136
+ end
137
+
138
+ def pagination
139
+ @pagination ||= Paginable.new @store, @options
140
+ end
141
+
142
+ def initialize_footer
143
+ @footer = @table.pagination
144
+ end
145
+
146
+ def initialize_header
147
+ @header = UiBibz::Ui::Core::Component.new search.render
148
+ end
149
+
150
+ def initialize_footer
151
+ @footer = UiBibz::Ui::Core::Component.new(pagination.render) if pagination.paginable?
152
+ end
153
+
154
+ end
155
+ end
@@ -1,14 +1,14 @@
1
- require "ui_bibz/ui/table/components/store"
2
- module UiBibz::Ui
3
- class TableSearchField < Ui
1
+ require "ui_bibz/ui/ux/table/components/store"
2
+ module UiBibz::Ui::Ux
3
+ class TableSearchField < UiBibz::Ui::Base
4
4
 
5
5
  def initialize options = nil, html_options = nil
6
- @search_field = Component.new nil, options, html_options
6
+ @search_field = UiBibz::Ui::Core::Component.new nil, options, html_options
7
7
  end
8
8
 
9
9
  def render
10
10
  if @search_field.options[:wrap_form] != false
11
- form_tag(url_for(controller: store.controller, action: store.action), method: :get) do
11
+ form_tag(url_for(controller: store.controller, action: store.action), method: :get, class: 'form-table-search-field') do
12
12
  search_field_html
13
13
  end
14
14
  else
@@ -30,9 +30,9 @@ module UiBibz::Ui
30
30
 
31
31
  def search_field_html
32
32
  content_tag :div, @search_field.class_and_html_options(div_class) do
33
- concat content_tag(:span, Glyph.new('search').render, class: 'input-group-addon')
33
+ concat content_tag(:span, UiBibz::Ui::Core::Glyph.new('search').render, class: 'input-group-addon')
34
34
  concat tag(:input, type: 'search', value: store.search, name: 'search', class: 'form-control', placeholder: search_placeholder_field)
35
- concat content_tag(:span, Glyph.new('times-circle').render, class: 'clear-search-btn input-group-addon')
35
+ concat content_tag(:span, UiBibz::Ui::Core::Glyph.new('times-circle').render, class: 'clear-search-btn input-group-addon')
36
36
  end
37
37
  end
38
38
 
@@ -1,3 +1,3 @@
1
1
  module UiBibz
2
- VERSION = "1.0.0"
2
+ VERSION = "1.1.0"
3
3
  end
data/lib/ui_bibz.rb CHANGED
@@ -7,38 +7,49 @@ module UiBibz
7
7
  mattr_accessor :app_root
8
8
 
9
9
  module Ui
10
- autoload :Alert, "ui_bibz/ui/alert"
11
- autoload :Breadcrumb, "ui_bibz/ui/breadcrumb/breadcrumb"
12
- autoload :Button, "ui_bibz/ui/button/button"
13
- autoload :ButtonDropdown, "ui_bibz/ui/button/button_dropdown"
14
- autoload :ButtonGroup, "ui_bibz/ui/button/button_group"
15
- autoload :ButtonLink, "ui_bibz/ui/button/button_link"
16
- autoload :ButtonSplitDropdown, "ui_bibz/ui/button/button_split_dropdown"
17
- autoload :Col, "ui_bibz/ui/grid/components/col"
18
- autoload :Component, "ui_bibz/ui/component"
19
- autoload :Dropdown, "ui_bibz/ui/dropdown/dropdown"
20
- autoload :Glyph, "ui_bibz/ui/glyph"
21
- autoload :Grid, "ui_bibz/ui/grid/grid"
22
- autoload :Jumbotron, "ui_bibz/ui/jumbotron"
23
- autoload :Label, "ui_bibz/ui/label"
24
- autoload :ListGroup, "ui_bibz/ui/list/list_group"
25
- autoload :Nav, "ui_bibz/ui/nav/nav"
26
- autoload :Panel, "ui_bibz/ui/panel"
27
- autoload :ProgressBar, "ui_bibz/ui/progress_bar/progress_bar"
28
- autoload :Row, "ui_bibz/ui/grid/components/row"
29
- autoload :Tab, "ui_bibz/ui/nav/tab"
30
- autoload :Table, "ui_bibz/ui/table/table"
31
- autoload :TablePanel, "ui_bibz/ui/table/table_panel"
32
- autoload :TableSearchField, "ui_bibz/ui/table/table_search_field"
33
- autoload :TablePagination, "ui_bibz/ui/table/table_pagination"
34
- autoload :TablePaginationPerPage, "ui_bibz/ui/table/table_pagination_per_page"
35
- autoload :Ui, "ui_bibz/ui/ui"
10
+ # Base
11
+ autoload :Base, "ui_bibz/ui/base"
12
+
13
+ # Core
14
+ module Core
15
+ autoload :Alert, "ui_bibz/ui/core/alert"
16
+ autoload :Breadcrumb, "ui_bibz/ui/core/breadcrumb/breadcrumb"
17
+ autoload :Button, "ui_bibz/ui/core/button/button"
18
+ autoload :ButtonDropdown, "ui_bibz/ui/core/button/button_dropdown"
19
+ autoload :ButtonGroup, "ui_bibz/ui/core/button/button_group"
20
+ autoload :ButtonLink, "ui_bibz/ui/core/button/button_link"
21
+ autoload :ButtonSplitDropdown, "ui_bibz/ui/core/button/button_split_dropdown"
22
+ autoload :Col, "ui_bibz/ui/core/col"
23
+ autoload :Component, "ui_bibz/ui/core/component"
24
+ autoload :Dropdown, "ui_bibz/ui/core/dropdown/dropdown"
25
+ autoload :Glyph, "ui_bibz/ui/core/glyph"
26
+ autoload :Jumbotron, "ui_bibz/ui/core/jumbotron"
27
+ autoload :Label, "ui_bibz/ui/core/label"
28
+ autoload :ListGroup, "ui_bibz/ui/core/list/list_group"
29
+ autoload :Nav, "ui_bibz/ui/core/nav/nav"
30
+ autoload :Navbar, "ui_bibz/ui/core/nav/navbar"
31
+ autoload :Panel, "ui_bibz/ui/core/panel"
32
+ autoload :ProgressBar, "ui_bibz/ui/core/progress_bar/progress_bar"
33
+ autoload :Row, "ui_bibz/ui/core/row"
34
+ autoload :Tab, "ui_bibz/ui/core/nav/tab"
35
+ end
36
+
37
+ # Ux
38
+ module Ux
39
+ autoload :Grid, "ui_bibz/ui/ux/grid"
40
+ autoload :Table, "ui_bibz/ui/ux/table/table"
41
+ autoload :TablePanel, "ui_bibz/ui/ux/table/table_panel"
42
+ autoload :TableSearchField, "ui_bibz/ui/ux/table/table_search_field"
43
+ autoload :TablePagination, "ui_bibz/ui/ux/table/table_pagination"
44
+ autoload :TablePaginationPerPage, "ui_bibz/ui/ux/table/table_pagination_per_page"
45
+ end
36
46
  end
37
47
 
38
48
  module Helpers
39
- autoload :MetaHelper, "ui_bibz/helpers/meta_helper"
40
- autoload :UiHelper, "ui_bibz/helpers/ui_helper"
41
- autoload :UtilsHelper, "ui_bibz/helpers/utils_helper"
49
+ autoload :MetaHelper, "ui_bibz/helpers/meta_helper"
50
+ autoload :UiCoreHelper, "ui_bibz/helpers/ui_core_helper"
51
+ autoload :UiUxHelper, "ui_bibz/helpers/ui_ux_helper"
52
+ autoload :UtilsHelper, "ui_bibz/helpers/utils_helper"
42
53
  end
43
54
 
44
55
  module Concerns
data/test/store_test.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  require 'test_helper'
2
- require "ui_bibz/ui/table/components/store"
2
+ require "ui_bibz/ui/ux/table/components/store"
3
3
  require 'will_paginate'
4
4
 
5
5
  class StoreTest < ActionView::TestCase
@@ -16,7 +16,7 @@ class StoreTest < ActionView::TestCase
16
16
  page: 1
17
17
  }
18
18
  users = User.table_search_pagination(params, session)
19
- @store = UiBibz::Ui::Store.new users
19
+ @store = UiBibz::Ui::Ux::Store.new users
20
20
  end
21
21
 
22
22
  test 'total pages' do
@@ -4,15 +4,15 @@ include UiBibz::Helpers
4
4
  class ButtonTest < ActionView::TestCase
5
5
 
6
6
  test "button" do
7
- actual = UiBibz::Ui::Button.new('toto', state: :success).render
7
+ actual = UiBibz::Ui::Core::Button.new('toto', state: :success).render
8
8
  expected = "<button class=\"btn-success btn\">toto</button>"
9
9
 
10
10
  assert_equal expected, actual
11
11
  end
12
12
 
13
13
  test 'button group' do
14
- actual = UiBibz::Ui::ButtonGroup.new position: :vertical do
15
- UiBibz::Ui::Button.new('toto').render
14
+ actual = UiBibz::Ui::Core::ButtonGroup.new position: :vertical do
15
+ UiBibz::Ui::Core::Button.new('toto').render
16
16
  end.render
17
17
  expected = "<div class=\"btn-group btn-group-vertical\" role=\"group\"><button class=\"btn-default btn\">toto</button></div>"
18
18
 
@@ -20,14 +20,14 @@ class ButtonTest < ActionView::TestCase
20
20
  end
21
21
 
22
22
  test 'link button' do
23
- actual = UiBibz::Ui::ButtonLink.new('Toto', { url: users_path, state: :danger, glyph: 'add'}).render
23
+ actual = UiBibz::Ui::Core::ButtonLink.new('Toto', { url: users_path, state: :danger, glyph: 'add'}).render
24
24
  expected = "<a class=\"btn-danger btn\" href=\"/users\"><i class=\"glyph fa fa-add\"></i> Toto</a>"
25
25
 
26
26
  assert_equal expected, actual
27
27
  end
28
28
 
29
29
  test 'button dropdown' do
30
- actual = UiBibz::Ui::ButtonDropdown.new("Dropdown", type: :dropup, state: :success).tap do |d|
30
+ actual = UiBibz::Ui::Core::ButtonDropdown.new("Dropdown", type: :dropup, state: :success).tap do |d|
31
31
  d.list 'toto'
32
32
  d.list 'header', type: :header
33
33
  d.list 'momo'
@@ -40,7 +40,7 @@ class ButtonTest < ActionView::TestCase
40
40
  end
41
41
 
42
42
  test 'button split dropdown' do
43
- actual = UiBibz::Ui::ButtonSplitDropdown.new("Dropdown", type: :dropup, state: :primary).tap do |d|
43
+ actual = UiBibz::Ui::Core::ButtonSplitDropdown.new("Dropdown", type: :dropup, state: :primary).tap do |d|
44
44
  d.list 'toto'
45
45
  d.list 'header', type: :header
46
46
  d.list 'momo'
@@ -4,14 +4,14 @@ include UiBibz::Helpers
4
4
  class ComponentTest < ActionView::TestCase
5
5
 
6
6
  test 'create complex component' do
7
- actual = UiBibz::Ui::Component.new('New component', { status: :active, glyph: 'add' }, { class: 'new-class' }).render
7
+ actual = UiBibz::Ui::Core::Component.new('New component', { status: :active, glyph: 'add' }, { class: 'new-class' }).render
8
8
  expected = '<i class="glyph fa fa-add"></i> New component'
9
9
 
10
10
  assert_equal expected, actual
11
11
  end
12
12
 
13
13
  test 'create complex component with block' do
14
- actual = UiBibz::Ui::Component.new(status: :active) do
14
+ actual = UiBibz::Ui::Core::Component.new(status: :active) do
15
15
  "New content"
16
16
  end.render
17
17
  expected = 'New content'
@@ -3,7 +3,7 @@ include UiBibz::Helpers
3
3
  class DropdownTest < ActionView::TestCase
4
4
 
5
5
  test 'Dropdown' do
6
- actual = UiBibz::Ui::Dropdown.new("Dropdown", type: :dropup, state: :success).tap do |d|
6
+ actual = UiBibz::Ui::Core::Dropdown.new("Dropdown", type: :dropup, state: :success).tap do |d|
7
7
  d.list 'toto'
8
8
  d.list 'header', type: :header
9
9
  d.list 'momo'
@@ -4,19 +4,19 @@ include UiBibz::Helpers
4
4
  class GlyphTest < ActionView::TestCase
5
5
 
6
6
  test 'create glyph with a name' do
7
- actual = UiBibz::Ui::Glyph.new('add').render
7
+ actual = UiBibz::Ui::Core::Glyph.new('add').render
8
8
  expected = '<i class="glyph fa fa-add"></i>'
9
9
  assert_equal expected, actual
10
10
  end
11
11
 
12
12
  test 'create glyph with hash' do
13
- actual = UiBibz::Ui::Glyph.new({ name: 'add', size: 3, type: 'li'}).render
13
+ actual = UiBibz::Ui::Core::Glyph.new({ name: 'add', size: 3, type: 'li'}).render
14
14
  expected = '<i class="glyph fa fa-add fa-3x fa-li"></i>'
15
15
  assert_equal expected, actual
16
16
  end
17
17
 
18
18
  test 'create glyph with name and hash' do
19
- actual = UiBibz::Ui::Glyph.new('add', { size: 3, type: 'li' }).render
19
+ actual = UiBibz::Ui::Core::Glyph.new('add', { size: 3, type: 'li' }).render
20
20
  expected = '<i class="glyph fa fa-add fa-3x fa-li"></i>'
21
21
  assert_equal expected, actual
22
22
  end
data/test/ui/grid_test.rb CHANGED
@@ -3,7 +3,7 @@ include UiBibz::Helpers
3
3
  class GridTest < ActionView::TestCase
4
4
 
5
5
  test 'row' do
6
- actual = UiBibz::Ui::Row.new() do
6
+ actual = UiBibz::Ui::Core::Row.new() do
7
7
  'test'
8
8
  end.render
9
9
  expected = "<div class=\"row\">test</div>"
@@ -12,7 +12,7 @@ class GridTest < ActionView::TestCase
12
12
  end
13
13
 
14
14
  test 'col with simple arg' do
15
- actual = UiBibz::Ui::Col.new({ size: :lg, num: 1}) do
15
+ actual = UiBibz::Ui::Core::Col.new({ size: :lg, num: 1}) do
16
16
  'test'
17
17
  end.render
18
18
  expected = "<div class=\"col-lg-1\">test</div>"
@@ -21,7 +21,7 @@ class GridTest < ActionView::TestCase
21
21
  end
22
22
 
23
23
  test 'col with multiple args' do
24
- actual = UiBibz::Ui::Col.new([{ size: :lg, num: 1, offset: 2}, { num: 1 }], class: 'test') do
24
+ actual = UiBibz::Ui::Core::Col.new([{ size: :lg, num: 1, offset: 2}, { num: 1 }], class: 'test') do
25
25
  'test'
26
26
  end.render
27
27
  expected = "<div class=\"test col-lg-1 col-offset-2 col-md-1\">test</div>"
@@ -30,7 +30,7 @@ class GridTest < ActionView::TestCase
30
30
  end
31
31
 
32
32
  test 'grid' do
33
- actual = UiBibz::Ui::Grid.new().tap do |g|
33
+ actual = UiBibz::Ui::Ux::Grid.new().tap do |g|
34
34
  g.view position: :left do
35
35
  'left'
36
36
  end
@@ -3,7 +3,7 @@ include UiBibz::Helpers
3
3
  class ListGroupTest < ActionView::TestCase
4
4
 
5
5
  test 'list_group with link' do
6
- actual = UiBibz::Ui::ListGroup.new(type: :link).tap do |lg|
6
+ actual = UiBibz::Ui::Core::ListGroup.new(type: :link).tap do |lg|
7
7
  lg.list 'Momo', { state: :success, url: '#momo' }
8
8
  lg.list({ tap: true, active: true, url: '#toto' }) do |l|
9
9
  l.header 'My title'
@@ -16,7 +16,7 @@ class ListGroupTest < ActionView::TestCase
16
16
  end
17
17
 
18
18
  test 'list_group' do
19
- actual = UiBibz::Ui::ListGroup.new().tap do |lg|
19
+ actual = UiBibz::Ui::Core::ListGroup.new().tap do |lg|
20
20
  lg.list 'Lulu'
21
21
  lg.list 'Toto'
22
22
  end.render
data/test/ui/nav_test.rb CHANGED
@@ -3,18 +3,17 @@ include UiBibz::Helpers
3
3
  class NavTest < ActionView::TestCase
4
4
 
5
5
  test 'Nav with tab' do
6
- actual = UiBibz::Ui::Nav.new().tap do |n|
6
+ actual = UiBibz::Ui::Core::Nav.new().tap do |n|
7
7
  n.link 'Home', status: :active, url: "#Home", selector: 'home'
8
8
  n.link 'Profile', url: "#profile", selector: 'profile'
9
9
  n.link 'Messages', url: "#messages", selector: 'messages'
10
10
  end.render
11
- expected = "<ul class=\"nav nav-tabs\"><li class=\"active\" role=\"presentation\"><a aria-controls=\"home\" role=\"tab\" data-toggle=\"tab\" href=\"#Home\">Home</a></li><li role=\"presentation\"><a aria-controls=\"profile\" role=\"tab\" data-toggle=\"tab\" href=\"#profile\">Profile</a></li><li role=\"presentation\"><a aria-controls=\"messages\" role=\"tab\" data-toggle=\"tab\" href=\"#messages\">Messages</a></li></ul>"
12
-
11
+ expected = "<ul class=\"nav nav-tabs\"><li class=\"active\" role=\"presentation\"><a href=\"#Home\">Home</a></li><li role=\"presentation\"><a href=\"#profile\">Profile</a></li><li role=\"presentation\"><a href=\"#messages\">Messages</a></li></ul>"
13
12
  assert_equal expected, actual
14
13
  end
15
14
 
16
15
  test 'Nav with pills' do
17
- actual = UiBibz::Ui::Nav.new(type: :pills, position: :justified).tap do |n|
16
+ actual = UiBibz::Ui::Core::Nav.new(type: :pills, position: :justified).tap do |n|
18
17
  n.link 'Home', status: :active, url: "#Home", selector: 'home'
19
18
  n.link 'Profile', url: "#profile", selector: 'profile', badge: 16
20
19
  n.link 'Messages', url: "#messages", selector: 'messages', status: :disabled