aa-rails4 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (487) hide show
  1. checksums.yaml +7 -0
  2. data/.document +5 -0
  3. data/.gitignore +43 -0
  4. data/.travis.yml +8 -0
  5. data/.yardopts +7 -0
  6. data/CHANGELOG.md +894 -0
  7. data/CONTRIBUTING.md +121 -0
  8. data/Gemfile +40 -0
  9. data/Guardfile +7 -0
  10. data/LICENSE +25 -0
  11. data/README.rdoc +118 -0
  12. data/Rakefile +26 -0
  13. data/activeadmin.gemspec +33 -0
  14. data/app/assets/images/active_admin/admin_notes_icon.png +0 -0
  15. data/app/assets/images/active_admin/datepicker/datepicker-header-bg.png +0 -0
  16. data/app/assets/images/active_admin/datepicker/datepicker-input-icon.png +0 -0
  17. data/app/assets/images/active_admin/datepicker/datepicker-next-link-icon.png +0 -0
  18. data/app/assets/images/active_admin/datepicker/datepicker-nipple.png +0 -0
  19. data/app/assets/images/active_admin/datepicker/datepicker-prev-link-icon.png +0 -0
  20. data/app/assets/images/active_admin/index_list_icons/block_icon.svg +10 -0
  21. data/app/assets/images/active_admin/index_list_icons/blog_icon.svg +4 -0
  22. data/app/assets/images/active_admin/index_list_icons/grid_icon.svg +13 -0
  23. data/app/assets/images/active_admin/index_list_icons/table_icon.svg +3 -0
  24. data/app/assets/images/active_admin/loading.gif +0 -0
  25. data/app/assets/images/active_admin/nested_menu_arrow.gif +0 -0
  26. data/app/assets/images/active_admin/nested_menu_arrow_dark.gif +0 -0
  27. data/app/assets/images/active_admin/orderable.png +0 -0
  28. data/app/assets/javascripts/active_admin/application.js +3 -0
  29. data/app/assets/javascripts/active_admin/base.js +5 -0
  30. data/app/assets/javascripts/active_admin/components/jquery.aa.checkbox-toggler.js.coffee +37 -0
  31. data/app/assets/javascripts/active_admin/components/jquery.aa.dropdown-menu.js.coffee +105 -0
  32. data/app/assets/javascripts/active_admin/components/jquery.aa.popover.js.coffee +97 -0
  33. data/app/assets/javascripts/active_admin/components/jquery.aa.table-checkbox-toggler.js.coffee +25 -0
  34. data/app/assets/javascripts/active_admin/lib/namespace.js.coffee +3 -0
  35. data/app/assets/javascripts/active_admin/pages/application.js.coffee +21 -0
  36. data/app/assets/javascripts/active_admin/pages/batch_actions.js.coffee +26 -0
  37. data/app/assets/stylesheets/active_admin/_base.css.scss +41 -0
  38. data/app/assets/stylesheets/active_admin/_forms.css.scss +281 -0
  39. data/app/assets/stylesheets/active_admin/_header.css.scss +152 -0
  40. data/app/assets/stylesheets/active_admin/_mixins.css.scss +1 -0
  41. data/app/assets/stylesheets/active_admin/_typography.css.scss +100 -0
  42. data/app/assets/stylesheets/active_admin/components/_batch_actions.css.scss +11 -0
  43. data/app/assets/stylesheets/active_admin/components/_blank_slates.scss +31 -0
  44. data/app/assets/stylesheets/active_admin/components/_breadcrumbs.scss +20 -0
  45. data/app/assets/stylesheets/active_admin/components/_buttons.scss +11 -0
  46. data/app/assets/stylesheets/active_admin/components/_columns.scss +3 -0
  47. data/app/assets/stylesheets/active_admin/components/_comments.css.scss +41 -0
  48. data/app/assets/stylesheets/active_admin/components/_date_picker.css.scss +123 -0
  49. data/app/assets/stylesheets/active_admin/components/_dropdown_menu.scss +151 -0
  50. data/app/assets/stylesheets/active_admin/components/_flash_messages.css.scss +39 -0
  51. data/app/assets/stylesheets/active_admin/components/_grid.scss +9 -0
  52. data/app/assets/stylesheets/active_admin/components/_index_list.scss +12 -0
  53. data/app/assets/stylesheets/active_admin/components/_links.scss +5 -0
  54. data/app/assets/stylesheets/active_admin/components/_pagination.scss +34 -0
  55. data/app/assets/stylesheets/active_admin/components/_panels.scss +6 -0
  56. data/app/assets/stylesheets/active_admin/components/_popovers.css.scss +123 -0
  57. data/app/assets/stylesheets/active_admin/components/_scopes.scss +10 -0
  58. data/app/assets/stylesheets/active_admin/components/_status_tags.scss +12 -0
  59. data/app/assets/stylesheets/active_admin/components/_table_tools.css.scss +95 -0
  60. data/app/assets/stylesheets/active_admin/components/_tables.css.scss +108 -0
  61. data/app/assets/stylesheets/active_admin/mixins/_all.css.scss +11 -0
  62. data/app/assets/stylesheets/active_admin/mixins/_buttons.css.scss +66 -0
  63. data/app/assets/stylesheets/active_admin/mixins/_gradients.css.scss +38 -0
  64. data/app/assets/stylesheets/active_admin/mixins/_icons.css.scss +21 -0
  65. data/app/assets/stylesheets/active_admin/mixins/_reset.css.scss +165 -0
  66. data/app/assets/stylesheets/active_admin/mixins/_rounded.css.scss +43 -0
  67. data/app/assets/stylesheets/active_admin/mixins/_sections.css.scss +36 -0
  68. data/app/assets/stylesheets/active_admin/mixins/_shadows.css.scss +22 -0
  69. data/app/assets/stylesheets/active_admin/mixins/_typography.scss +3 -0
  70. data/app/assets/stylesheets/active_admin/mixins/_utilities.scss +26 -0
  71. data/app/assets/stylesheets/active_admin/mixins/_variables.css.scss +24 -0
  72. data/app/assets/stylesheets/active_admin/pages/_logged_out.scss +44 -0
  73. data/app/assets/stylesheets/active_admin/print.css.scss +284 -0
  74. data/app/assets/stylesheets/active_admin/structure/_footer.scss +14 -0
  75. data/app/assets/stylesheets/active_admin/structure/_main_structure.scss +26 -0
  76. data/app/assets/stylesheets/active_admin/structure/_title_bar.scss +44 -0
  77. data/app/views/active_admin/dashboard/index.html.arb +1 -0
  78. data/app/views/active_admin/devise/mailer/reset_password_instructions.html.erb +8 -0
  79. data/app/views/active_admin/devise/mailer/unlock_instructions.html.erb +7 -0
  80. data/app/views/active_admin/devise/passwords/edit.html.erb +19 -0
  81. data/app/views/active_admin/devise/passwords/new.html.erb +14 -0
  82. data/app/views/active_admin/devise/sessions/new.html.erb +18 -0
  83. data/app/views/active_admin/devise/shared/_links.erb +27 -0
  84. data/app/views/active_admin/devise/unlocks/new.html.erb +14 -0
  85. data/app/views/active_admin/page/index.html.arb +1 -0
  86. data/app/views/active_admin/resource/edit.html.arb +1 -0
  87. data/app/views/active_admin/resource/index.csv.erb +17 -0
  88. data/app/views/active_admin/resource/index.html.arb +1 -0
  89. data/app/views/active_admin/resource/new.html.arb +1 -0
  90. data/app/views/active_admin/resource/show.html.arb +1 -0
  91. data/app/views/layouts/active_admin.html.arb +1 -0
  92. data/app/views/layouts/active_admin_logged_out.html.erb +37 -0
  93. data/config/locales/bg.yml +101 -0
  94. data/config/locales/ca.yml +98 -0
  95. data/config/locales/cs.yml +92 -0
  96. data/config/locales/da.yml +102 -0
  97. data/config/locales/de-CH.yml +117 -0
  98. data/config/locales/de.yml +119 -0
  99. data/config/locales/en-GB.yml +90 -0
  100. data/config/locales/en.yml +101 -0
  101. data/config/locales/es.yml +106 -0
  102. data/config/locales/es_MX.yml +104 -0
  103. data/config/locales/fr.yml +89 -0
  104. data/config/locales/he.yml +91 -0
  105. data/config/locales/hr.yml +93 -0
  106. data/config/locales/hu.yml +92 -0
  107. data/config/locales/it.yml +89 -0
  108. data/config/locales/ja.yml +87 -0
  109. data/config/locales/ko.yml +84 -0
  110. data/config/locales/lt.yml +90 -0
  111. data/config/locales/lv.yml +89 -0
  112. data/config/locales/nl.yml +90 -0
  113. data/config/locales/no-NB.yml +85 -0
  114. data/config/locales/pl.yml +93 -0
  115. data/config/locales/pt-BR.yml +89 -0
  116. data/config/locales/pt-PT.yml +89 -0
  117. data/config/locales/ro.yml +93 -0
  118. data/config/locales/ru.yml +103 -0
  119. data/config/locales/sv-SE.yml +89 -0
  120. data/config/locales/tr.yml +90 -0
  121. data/config/locales/uk.yml +100 -0
  122. data/config/locales/vi.yml +90 -0
  123. data/config/locales/zh-CN.yml +90 -0
  124. data/config/locales/zh-TW.yml +90 -0
  125. data/cucumber.yml +3 -0
  126. data/docs/0-installation.md +56 -0
  127. data/docs/1-general-configuration.md +129 -0
  128. data/docs/10-custom-pages.md +96 -0
  129. data/docs/11-decorators.md +66 -0
  130. data/docs/12-arbre-components.md +144 -0
  131. data/docs/13-authorization-adapter.md +206 -0
  132. data/docs/2-resource-customization.md +292 -0
  133. data/docs/3-index-pages.md +191 -0
  134. data/docs/3-index-pages/create-an-index.md +29 -0
  135. data/docs/3-index-pages/index-as-block.md +16 -0
  136. data/docs/3-index-pages/index-as-blog.md +61 -0
  137. data/docs/3-index-pages/index-as-grid.md +21 -0
  138. data/docs/3-index-pages/index-as-table.md +120 -0
  139. data/docs/4-csv-format.md +32 -0
  140. data/docs/5-forms.md +72 -0
  141. data/docs/6-show-pages.md +43 -0
  142. data/docs/7-sidebars.md +42 -0
  143. data/docs/8-custom-actions.md +139 -0
  144. data/docs/9-batch-actions.md +161 -0
  145. data/features/action_item.feature +73 -0
  146. data/features/authorization.feature +64 -0
  147. data/features/authorization_cancan.feature +52 -0
  148. data/features/belongs_to.feature +63 -0
  149. data/features/breadcrumb.feature +27 -0
  150. data/features/comments/commenting.feature +128 -0
  151. data/features/comments/viewing_index.feature +19 -0
  152. data/features/dashboard.feature +16 -0
  153. data/features/decorators.feature +41 -0
  154. data/features/development_reloading.feature +31 -0
  155. data/features/edit_page.feature +127 -0
  156. data/features/favicon.feature +20 -0
  157. data/features/first_boot.feature +16 -0
  158. data/features/global_navigation.feature +29 -0
  159. data/features/i18n.feature +38 -0
  160. data/features/index/batch_actions.feature +123 -0
  161. data/features/index/filters.feature +94 -0
  162. data/features/index/format_as_csv.feature +117 -0
  163. data/features/index/formats.feature +39 -0
  164. data/features/index/index_as_block.feature +15 -0
  165. data/features/index/index_as_blog.feature +69 -0
  166. data/features/index/index_as_grid.feature +45 -0
  167. data/features/index/index_as_table.feature +195 -0
  168. data/features/index/index_blank_slate.feature +61 -0
  169. data/features/index/index_parameters.feature +75 -0
  170. data/features/index/index_scope_to.feature +56 -0
  171. data/features/index/index_scopes.feature +251 -0
  172. data/features/index/page_title.feature +30 -0
  173. data/features/index/pagination.feature +59 -0
  174. data/features/index/switch_index_view.feature +73 -0
  175. data/features/menu.feature +53 -0
  176. data/features/new_page.feature +119 -0
  177. data/features/registering_assets.feature +35 -0
  178. data/features/registering_pages.feature +148 -0
  179. data/features/registering_resources.feature +33 -0
  180. data/features/root_to.feature +17 -0
  181. data/features/show/default_content.feature +43 -0
  182. data/features/show/page_title.feature +47 -0
  183. data/features/sidebar_sections.feature +198 -0
  184. data/features/site_title.feature +47 -0
  185. data/features/specifying_actions.feature +93 -0
  186. data/features/step_definitions/action_item_steps.rb +7 -0
  187. data/features/step_definitions/action_link_steps.rb +7 -0
  188. data/features/step_definitions/additional_web_steps.rb +82 -0
  189. data/features/step_definitions/asset_steps.rb +15 -0
  190. data/features/step_definitions/attribute_steps.rb +13 -0
  191. data/features/step_definitions/batch_action_steps.rb +55 -0
  192. data/features/step_definitions/breadcrumb_steps.rb +3 -0
  193. data/features/step_definitions/comment_steps.rb +12 -0
  194. data/features/step_definitions/configuration_steps.rb +93 -0
  195. data/features/step_definitions/dashboard_steps.rb +15 -0
  196. data/features/step_definitions/factory_steps.rb +33 -0
  197. data/features/step_definitions/filter_steps.rb +17 -0
  198. data/features/step_definitions/flash_steps.rb +11 -0
  199. data/features/step_definitions/format_steps.rb +46 -0
  200. data/features/step_definitions/i18n_steps.rb +3 -0
  201. data/features/step_definitions/index_scope_steps.rb +21 -0
  202. data/features/step_definitions/index_views_steps.rb +3 -0
  203. data/features/step_definitions/layout_steps.rb +3 -0
  204. data/features/step_definitions/member_link_steps.rb +7 -0
  205. data/features/step_definitions/menu_steps.rb +11 -0
  206. data/features/step_definitions/pagination_steps.rb +8 -0
  207. data/features/step_definitions/sidebar_steps.rb +8 -0
  208. data/features/step_definitions/site_title_steps.rb +15 -0
  209. data/features/step_definitions/tab_steps.rb +3 -0
  210. data/features/step_definitions/table_steps.rb +119 -0
  211. data/features/step_definitions/user_steps.rb +39 -0
  212. data/features/step_definitions/web_steps.rb +82 -0
  213. data/features/sti_resource.feature +73 -0
  214. data/features/support/env.rb +118 -0
  215. data/features/support/paths.rb +63 -0
  216. data/features/support/selectors.rb +45 -0
  217. data/features/users/logging_in.feature +34 -0
  218. data/features/users/logging_out.feature +13 -0
  219. data/features/users/resetting_password.feature +34 -0
  220. data/lib/active_admin.rb +120 -0
  221. data/lib/active_admin/abstract_view_factory.rb +95 -0
  222. data/lib/active_admin/application.rb +245 -0
  223. data/lib/active_admin/asset_registration.rb +29 -0
  224. data/lib/active_admin/authorization_adapter.rb +132 -0
  225. data/lib/active_admin/base_controller.rb +78 -0
  226. data/lib/active_admin/base_controller/authorization.rb +153 -0
  227. data/lib/active_admin/base_controller/menu.rb +34 -0
  228. data/lib/active_admin/batch_actions.rb +17 -0
  229. data/lib/active_admin/batch_actions/controller.rb +25 -0
  230. data/lib/active_admin/batch_actions/resource_extension.rb +127 -0
  231. data/lib/active_admin/batch_actions/views/batch_action_form.rb +35 -0
  232. data/lib/active_admin/batch_actions/views/batch_action_popover.rb +28 -0
  233. data/lib/active_admin/batch_actions/views/batch_action_selector.rb +66 -0
  234. data/lib/active_admin/batch_actions/views/selection_cells.rb +37 -0
  235. data/lib/active_admin/callbacks.rb +87 -0
  236. data/lib/active_admin/cancan_adapter.rb +40 -0
  237. data/lib/active_admin/comments.rb +83 -0
  238. data/lib/active_admin/comments/comment.rb +49 -0
  239. data/lib/active_admin/comments/namespace_helper.rb +14 -0
  240. data/lib/active_admin/comments/resource_helper.rb +17 -0
  241. data/lib/active_admin/comments/show_page_helper.rb +23 -0
  242. data/lib/active_admin/comments/views.rb +2 -0
  243. data/lib/active_admin/comments/views/active_admin_comments.rb +75 -0
  244. data/lib/active_admin/component.rb +5 -0
  245. data/lib/active_admin/controller_action.rb +12 -0
  246. data/lib/active_admin/csv_builder.rb +49 -0
  247. data/lib/active_admin/deprecation.rb +36 -0
  248. data/lib/active_admin/devise.rb +70 -0
  249. data/lib/active_admin/dsl.rb +166 -0
  250. data/lib/active_admin/engine.rb +7 -0
  251. data/lib/active_admin/event.rb +33 -0
  252. data/lib/active_admin/filters.rb +9 -0
  253. data/lib/active_admin/filters/dsl.rb +21 -0
  254. data/lib/active_admin/filters/forms.rb +89 -0
  255. data/lib/active_admin/filters/formtastic_addons.rb +50 -0
  256. data/lib/active_admin/filters/resource_extension.rb +129 -0
  257. data/lib/active_admin/form_builder.rb +189 -0
  258. data/lib/active_admin/helpers/collection.rb +23 -0
  259. data/lib/active_admin/helpers/optional_display.rb +38 -0
  260. data/lib/active_admin/helpers/scope_chain.rb +23 -0
  261. data/lib/active_admin/helpers/settings.rb +108 -0
  262. data/lib/active_admin/iconic.rb +51 -0
  263. data/lib/active_admin/iconic/icons.rb +142 -0
  264. data/lib/active_admin/inputs.rb +15 -0
  265. data/lib/active_admin/inputs/datepicker_input.rb +11 -0
  266. data/lib/active_admin/inputs/filter_base.rb +33 -0
  267. data/lib/active_admin/inputs/filter_base/search_method_select.rb +73 -0
  268. data/lib/active_admin/inputs/filter_boolean_input.rb +32 -0
  269. data/lib/active_admin/inputs/filter_check_boxes_input.rb +40 -0
  270. data/lib/active_admin/inputs/filter_date_range_input.rb +34 -0
  271. data/lib/active_admin/inputs/filter_numeric_input.rb +10 -0
  272. data/lib/active_admin/inputs/filter_select_input.rb +45 -0
  273. data/lib/active_admin/inputs/filter_string_input.rb +24 -0
  274. data/lib/active_admin/menu.rb +107 -0
  275. data/lib/active_admin/menu_collection.rb +96 -0
  276. data/lib/active_admin/menu_item.rb +97 -0
  277. data/lib/active_admin/namespace.rb +221 -0
  278. data/lib/active_admin/page.rb +88 -0
  279. data/lib/active_admin/page_controller.rb +29 -0
  280. data/lib/active_admin/page_dsl.rb +28 -0
  281. data/lib/active_admin/page_presenter.rb +32 -0
  282. data/lib/active_admin/resource.rb +160 -0
  283. data/lib/active_admin/resource/action_items.rb +93 -0
  284. data/lib/active_admin/resource/belongs_to.rb +36 -0
  285. data/lib/active_admin/resource/controllers.rb +18 -0
  286. data/lib/active_admin/resource/menu.rb +64 -0
  287. data/lib/active_admin/resource/naming.rb +78 -0
  288. data/lib/active_admin/resource/page_presenters.rb +82 -0
  289. data/lib/active_admin/resource/pagination.rb +19 -0
  290. data/lib/active_admin/resource/routes.rb +99 -0
  291. data/lib/active_admin/resource/scope_to.rb +74 -0
  292. data/lib/active_admin/resource/scopes.rb +50 -0
  293. data/lib/active_admin/resource/sidebars.rb +27 -0
  294. data/lib/active_admin/resource_collection.rb +42 -0
  295. data/lib/active_admin/resource_controller.rb +51 -0
  296. data/lib/active_admin/resource_controller/action_builder.rb +21 -0
  297. data/lib/active_admin/resource_controller/actions.rb +81 -0
  298. data/lib/active_admin/resource_controller/data_access.rb +303 -0
  299. data/lib/active_admin/resource_controller/decorators.rb +20 -0
  300. data/lib/active_admin/resource_controller/resource_class_methods.rb +24 -0
  301. data/lib/active_admin/resource_controller/scoping.rb +31 -0
  302. data/lib/active_admin/resource_controller/sidebars.rb +18 -0
  303. data/lib/active_admin/resource_dsl.rb +134 -0
  304. data/lib/active_admin/router.rb +106 -0
  305. data/lib/active_admin/scope.rb +57 -0
  306. data/lib/active_admin/sidebar_section.rb +37 -0
  307. data/lib/active_admin/version.rb +3 -0
  308. data/lib/active_admin/view_factory.rb +28 -0
  309. data/lib/active_admin/view_helpers.rb +21 -0
  310. data/lib/active_admin/view_helpers/active_admin_application_helper.rb +12 -0
  311. data/lib/active_admin/view_helpers/assigns_with_indifferent_access_helper.rb +7 -0
  312. data/lib/active_admin/view_helpers/auto_link_helper.rb +34 -0
  313. data/lib/active_admin/view_helpers/breadcrumb_helper.rb +26 -0
  314. data/lib/active_admin/view_helpers/display_helper.rb +47 -0
  315. data/lib/active_admin/view_helpers/download_format_links_helper.rb +50 -0
  316. data/lib/active_admin/view_helpers/fields_for.rb +50 -0
  317. data/lib/active_admin/view_helpers/flash_helper.rb +13 -0
  318. data/lib/active_admin/view_helpers/form_helper.rb +24 -0
  319. data/lib/active_admin/view_helpers/icon_helper.rb +12 -0
  320. data/lib/active_admin/view_helpers/method_or_proc_helper.rb +93 -0
  321. data/lib/active_admin/view_helpers/sidebar_helper.rb +15 -0
  322. data/lib/active_admin/view_helpers/title_helper.rb +11 -0
  323. data/lib/active_admin/view_helpers/view_factory_helper.rb +11 -0
  324. data/lib/active_admin/views.rb +8 -0
  325. data/lib/active_admin/views/action_items.rb +17 -0
  326. data/lib/active_admin/views/components/action_list_popover.rb +29 -0
  327. data/lib/active_admin/views/components/attributes_table.rb +70 -0
  328. data/lib/active_admin/views/components/blank_slate.rb +17 -0
  329. data/lib/active_admin/views/components/columns.rb +150 -0
  330. data/lib/active_admin/views/components/dropdown_menu.rb +73 -0
  331. data/lib/active_admin/views/components/index_list.rb +68 -0
  332. data/lib/active_admin/views/components/paginated_collection.rb +123 -0
  333. data/lib/active_admin/views/components/panel.rb +34 -0
  334. data/lib/active_admin/views/components/popover.rb +27 -0
  335. data/lib/active_admin/views/components/scopes.rb +65 -0
  336. data/lib/active_admin/views/components/sidebar_section.rb +28 -0
  337. data/lib/active_admin/views/components/site_title.rb +55 -0
  338. data/lib/active_admin/views/components/status_tag.rb +56 -0
  339. data/lib/active_admin/views/components/table_for.rb +191 -0
  340. data/lib/active_admin/views/dashboard_section_renderer.rb +19 -0
  341. data/lib/active_admin/views/footer.rb +20 -0
  342. data/lib/active_admin/views/header.rb +32 -0
  343. data/lib/active_admin/views/index_as_block.rb +36 -0
  344. data/lib/active_admin/views/index_as_blog.rb +150 -0
  345. data/lib/active_admin/views/index_as_grid.rb +76 -0
  346. data/lib/active_admin/views/index_as_table.rb +238 -0
  347. data/lib/active_admin/views/pages/base.rb +139 -0
  348. data/lib/active_admin/views/pages/dashboard.rb +62 -0
  349. data/lib/active_admin/views/pages/form.rb +51 -0
  350. data/lib/active_admin/views/pages/index.rb +158 -0
  351. data/lib/active_admin/views/pages/layout.rb +26 -0
  352. data/lib/active_admin/views/pages/page.rb +30 -0
  353. data/lib/active_admin/views/pages/show.rb +59 -0
  354. data/lib/active_admin/views/tabbed_navigation.rb +62 -0
  355. data/lib/active_admin/views/title_bar.rb +53 -0
  356. data/lib/activeadmin.rb +1 -0
  357. data/lib/generators/active_admin/assets/assets_generator.rb +16 -0
  358. data/lib/generators/active_admin/assets/templates/active_admin.css.scss +17 -0
  359. data/lib/generators/active_admin/assets/templates/active_admin.js.coffee +1 -0
  360. data/lib/generators/active_admin/devise/devise_generator.rb +78 -0
  361. data/lib/generators/active_admin/install/install_generator.rb +46 -0
  362. data/lib/generators/active_admin/install/templates/active_admin.rb.erb +214 -0
  363. data/lib/generators/active_admin/install/templates/admin_user.rb.erb +27 -0
  364. data/lib/generators/active_admin/install/templates/dashboard.rb +33 -0
  365. data/lib/generators/active_admin/install/templates/migrations/create_active_admin_comments.rb +19 -0
  366. data/lib/generators/active_admin/resource/resource_generator.rb +16 -0
  367. data/lib/generators/active_admin/resource/templates/admin.rb +3 -0
  368. data/lib/ransack_ext.rb +12 -0
  369. data/script/local +44 -0
  370. data/script/use_rails +53 -0
  371. data/spec/integration/default_namespace_spec.rb +61 -0
  372. data/spec/integration/javascript_spec.rb +20 -0
  373. data/spec/integration/memory_spec.rb +29 -0
  374. data/spec/integration/stylesheets_spec.rb +41 -0
  375. data/spec/javascripts/coffeescripts/jquery.aa.checkbox-toggler-spec.js.coffee +50 -0
  376. data/spec/javascripts/coffeescripts/jquery.aa.popover-spec.js.coffee +82 -0
  377. data/spec/javascripts/coffeescripts/jquery.aa.table-checkbox-toggler-spec.js.coffee +34 -0
  378. data/spec/javascripts/compiled/jquery.aa.checkbox-toggler-spec.js +60 -0
  379. data/spec/javascripts/compiled/jquery.aa.popover-spec.js +106 -0
  380. data/spec/javascripts/compiled/jquery.aa.table-checkbox-toggler-spec.js +37 -0
  381. data/spec/javascripts/fixtures/checkboxes.html +9 -0
  382. data/spec/javascripts/fixtures/table_checkboxes.html +17 -0
  383. data/spec/javascripts/helpers/SpecHelper.js +3 -0
  384. data/spec/javascripts/helpers/vendor/jasmine-fixture-0.0.5.js +108 -0
  385. data/spec/javascripts/helpers/vendor/jasmine-jquery.js +288 -0
  386. data/spec/javascripts/helpers/vendor/sinon-1.2.0.js +2915 -0
  387. data/spec/javascripts/support/jasmine.yml +74 -0
  388. data/spec/javascripts/support/jasmine_config.rb +23 -0
  389. data/spec/javascripts/support/jasmine_runner.rb +32 -0
  390. data/spec/javascripts/support/jquery-ui-1.8.16.custom.min.js +34 -0
  391. data/spec/javascripts/support/jquery.min.js +4 -0
  392. data/spec/spec_helper.rb +175 -0
  393. data/spec/spec_helper_without_rails.rb +11 -0
  394. data/spec/support/deferred_garbage_collection.rb +19 -0
  395. data/spec/support/detect_rails_version.rb +42 -0
  396. data/spec/support/integration_example_group.rb +31 -0
  397. data/spec/support/jslint.yml +80 -0
  398. data/spec/support/rails_template.rb +104 -0
  399. data/spec/support/rails_template_with_data.rb +59 -0
  400. data/spec/support/templates/admin/stores.rb +11 -0
  401. data/spec/support/templates/cucumber.rb +24 -0
  402. data/spec/support/templates/cucumber_with_reloading.rb +5 -0
  403. data/spec/support/templates/en.yml +8 -0
  404. data/spec/support/templates/post_decorator.rb +53 -0
  405. data/spec/unit/abstract_view_factory_spec.rb +79 -0
  406. data/spec/unit/action_builder_spec.rb +126 -0
  407. data/spec/unit/active_admin_spec.rb +11 -0
  408. data/spec/unit/application_spec.rb +141 -0
  409. data/spec/unit/asset_registration_spec.rb +56 -0
  410. data/spec/unit/authorization/authorization_adapter_spec.rb +61 -0
  411. data/spec/unit/authorization/controller_authorization_spec.rb +39 -0
  412. data/spec/unit/auto_link_spec.rb +39 -0
  413. data/spec/unit/batch_actions/resource_spec.rb +91 -0
  414. data/spec/unit/batch_actions/settings_spec.rb +61 -0
  415. data/spec/unit/belongs_to_spec.rb +42 -0
  416. data/spec/unit/cancan_adapter_spec.rb +43 -0
  417. data/spec/unit/comments_spec.rb +106 -0
  418. data/spec/unit/component_spec.rb +18 -0
  419. data/spec/unit/config_shared_examples.rb +59 -0
  420. data/spec/unit/controller_filters_spec.rb +27 -0
  421. data/spec/unit/csv_builder_spec.rb +103 -0
  422. data/spec/unit/devise_spec.rb +116 -0
  423. data/spec/unit/dsl_spec.rb +61 -0
  424. data/spec/unit/event_spec.rb +47 -0
  425. data/spec/unit/filters/filter_form_builder_spec.rb +338 -0
  426. data/spec/unit/filters/resource_spec.rb +87 -0
  427. data/spec/unit/form_builder_spec.rb +478 -0
  428. data/spec/unit/generators/install_spec.rb +23 -0
  429. data/spec/unit/helpers/collection_spec.rb +65 -0
  430. data/spec/unit/helpers/scope_chain_spec.rb +36 -0
  431. data/spec/unit/helpers/settings_spec.rb +30 -0
  432. data/spec/unit/menu_collection_spec.rb +62 -0
  433. data/spec/unit/menu_item_spec.rb +143 -0
  434. data/spec/unit/menu_spec.rb +71 -0
  435. data/spec/unit/namespace/authorization_spec.rb +27 -0
  436. data/spec/unit/namespace/register_page_spec.rb +74 -0
  437. data/spec/unit/namespace/register_resource_spec.rb +163 -0
  438. data/spec/unit/namespace_spec.rb +103 -0
  439. data/spec/unit/page_controller_spec.rb +5 -0
  440. data/spec/unit/page_spec.rb +72 -0
  441. data/spec/unit/pretty_format_spec.rb +35 -0
  442. data/spec/unit/resource/action_items_spec.rb +62 -0
  443. data/spec/unit/resource/menu_spec.rb +18 -0
  444. data/spec/unit/resource/naming_spec.rb +108 -0
  445. data/spec/unit/resource/page_presenters_spec.rb +44 -0
  446. data/spec/unit/resource/pagination_spec.rb +38 -0
  447. data/spec/unit/resource/routes_spec.rb +73 -0
  448. data/spec/unit/resource/scopes_spec.rb +43 -0
  449. data/spec/unit/resource/sidebars_spec.rb +43 -0
  450. data/spec/unit/resource_collection_spec.rb +79 -0
  451. data/spec/unit/resource_controller/data_access_spec.rb +73 -0
  452. data/spec/unit/resource_controller/sidebars_spec.rb +46 -0
  453. data/spec/unit/resource_controller_spec.rb +265 -0
  454. data/spec/unit/resource_registration_spec.rb +56 -0
  455. data/spec/unit/resource_spec.rb +243 -0
  456. data/spec/unit/routing_spec.rb +172 -0
  457. data/spec/unit/scope_spec.rb +108 -0
  458. data/spec/unit/settings_spec.rb +88 -0
  459. data/spec/unit/view_factory_spec.rb +22 -0
  460. data/spec/unit/view_helpers/breadcrumbs_spec.rb +152 -0
  461. data/spec/unit/view_helpers/display_name_spec.rb +41 -0
  462. data/spec/unit/view_helpers/download_format_links_helper_spec.rb +39 -0
  463. data/spec/unit/view_helpers/fields_for_spec.rb +50 -0
  464. data/spec/unit/view_helpers/form_helper_spec.rb +56 -0
  465. data/spec/unit/view_helpers/method_or_proc_helper_spec.rb +97 -0
  466. data/spec/unit/views/components/action_list_popover_spec.rb +30 -0
  467. data/spec/unit/views/components/attributes_table_spec.rb +131 -0
  468. data/spec/unit/views/components/batch_action_popover_spec.rb +33 -0
  469. data/spec/unit/views/components/blank_slate_spec.rb +17 -0
  470. data/spec/unit/views/components/columns_spec.rb +142 -0
  471. data/spec/unit/views/components/index_list_spec.rb +32 -0
  472. data/spec/unit/views/components/paginated_collection_spec.rb +247 -0
  473. data/spec/unit/views/components/panel_spec.rb +51 -0
  474. data/spec/unit/views/components/popover_spec.rb +33 -0
  475. data/spec/unit/views/components/sidebar_section_spec.rb +37 -0
  476. data/spec/unit/views/components/site_title_spec.rb +78 -0
  477. data/spec/unit/views/components/status_tag_spec.rb +95 -0
  478. data/spec/unit/views/components/table_for_spec.rb +182 -0
  479. data/spec/unit/views/pages/layout_spec.rb +63 -0
  480. data/spec/unit/views/pages/show_spec.rb +20 -0
  481. data/spec/unit/views/tabbed_navigation_spec.rb +149 -0
  482. data/tasks/docs.rake +39 -0
  483. data/tasks/js.rake +32 -0
  484. data/tasks/parallel_tests.rake +60 -0
  485. data/tasks/test.rake +79 -0
  486. data/tasks/yard.rake +6 -0
  487. metadata +883 -0
@@ -0,0 +1,33 @@
1
+ require 'spec_helper'
2
+ require 'active_admin/batch_actions/views/batch_action_popover'
3
+
4
+ describe ActiveAdmin::BatchActions::BatchActionPopover do
5
+
6
+ let(:the_popover) do
7
+ render_arbre_component do
8
+ batch_action_popover do
9
+ action ActiveAdmin::BatchAction.new( :action_1, "Action 1" )
10
+ action ActiveAdmin::BatchAction.new( :action_2, "Action 2" )
11
+ action ActiveAdmin::BatchAction.new( :action_3, "Action 3" )
12
+ end
13
+ end
14
+ end
15
+
16
+ it "should have an id" do
17
+ the_popover.id.should == "batch_actions_popover"
18
+ end
19
+
20
+ describe "the action list" do
21
+ subject do
22
+ the_popover.find_by_class("popover_contents").first
23
+ end
24
+
25
+ its(:tag_name) { should eql("ul") }
26
+
27
+ its(:content){ should include("class=\"batch_action\" data-action=\"action_1\"") }
28
+ its(:content){ should include("class=\"batch_action\" data-action=\"action_2\"") }
29
+ its(:content){ should include("class=\"batch_action\" data-action=\"action_3\"") }
30
+
31
+ end
32
+
33
+ end
@@ -0,0 +1,17 @@
1
+ require 'spec_helper'
2
+
3
+ describe ActiveAdmin::Views::BlankSlate do
4
+
5
+ describe "#blank_slate" do
6
+ subject do
7
+ render_arbre_component do
8
+ blank_slate("There are no Posts yet. <a href=\"/posts/new\">Create one</a></span>")
9
+ end
10
+ end
11
+
12
+ its(:tag_name) { should eql 'div' }
13
+ its(:class_list) { should include('blank_slate_container') }
14
+
15
+ its(:content) { should include '<span class="blank_slate">There are no Posts yet. <a href="/posts/new">Create one</a></span>' }
16
+ end
17
+ end
@@ -0,0 +1,142 @@
1
+ require 'spec_helper'
2
+
3
+ describe ActiveAdmin::Views::Columns do
4
+
5
+ describe "Rendering one column" do
6
+ let(:cols) do
7
+ render_arbre_component do
8
+ columns do
9
+ column { span "Hello World" }
10
+ end
11
+ end
12
+ end
13
+
14
+ it "should have the class .columns" do
15
+ cols.class_list.should include("columns")
16
+ end
17
+
18
+ it "should have one column" do
19
+ cols.children.size.should == 1
20
+ cols.children.first.class_list.should include("column")
21
+ end
22
+
23
+ it "should have one column with the width 100.0%" do
24
+ cols.children.first.attr(:style).should include("width: 100.0%")
25
+ end
26
+ end
27
+
28
+ describe "Rendering two columns" do
29
+ let(:cols) do
30
+ render_arbre_component do
31
+ columns do
32
+ column { span "Hello World" }
33
+ column { span "Hello World" }
34
+ end
35
+ end
36
+ end
37
+
38
+ it "should have two columns" do
39
+ cols.children.size.should == 2
40
+ end
41
+
42
+ it "should have a first column with width 49% and margin 2%" do
43
+ cols.children.first.attr(:style).should == "width: 49.0%; margin-right: 2%;"
44
+ end
45
+
46
+ it "should have a second column with width 49% and no right margin" do
47
+ cols.children.last.attr(:style).should == "width: 49.0%;"
48
+ end
49
+ end
50
+
51
+ describe "Rendering four columns" do
52
+ let(:cols) do
53
+ render_arbre_component do
54
+ columns do
55
+ column { span "Hello World" }
56
+ column { span "Hello World" }
57
+ column { span "Hello World" }
58
+ column { span "Hello World" }
59
+ end
60
+ end
61
+ end
62
+
63
+ it "should have four columns" do
64
+ cols.children.size.should == 4
65
+ end
66
+
67
+
68
+ (0..2).to_a.each do |index|
69
+ it "should have column #{index + 1} with width 49% and margin 2%" do
70
+ cols.children[index].attr(:style).should == "width: 23.5%; margin-right: 2%;"
71
+ end
72
+ end
73
+
74
+ it "should have column 4 with width 49% and no margin" do
75
+ cols.children[3].attr(:style).should == "width: 23.5%;"
76
+ end
77
+ end
78
+
79
+
80
+ describe "Column Spans" do
81
+ let(:cols) do
82
+ render_arbre_component do
83
+ columns do
84
+ column(:span => 2){ "Hello World" }
85
+ column(){ "Hello World" }
86
+ column(){ "Hello World" }
87
+ end
88
+ end
89
+ end
90
+
91
+ it "should set the span when declared" do
92
+ cols.children.first.attr(:style).should == "width: 49.0%; margin-right: 2%;"
93
+ end
94
+
95
+ it "should default to 1 if not passed in" do
96
+ cols.children.last.attr(:style).should == "width: 23.5%;"
97
+ end
98
+ end
99
+
100
+ describe "Column max width" do
101
+
102
+ let(:cols) do
103
+ render_arbre_component do
104
+ columns do
105
+ column(:max_width => "100px"){ "Hello World" }
106
+ column(){ "Hello World" }
107
+ end
108
+ end
109
+ end
110
+
111
+ it "should set the max with if passed in" do
112
+ cols.children.first.attr(:style).should == "width: 49.0%; max-width: 100px; margin-right: 2%;"
113
+ end
114
+
115
+ it "should omit the value if not presetn" do
116
+ cols.children.last.attr(:style).should == "width: 49.0%;"
117
+ end
118
+
119
+ end
120
+
121
+ describe "Column min width" do
122
+
123
+ let(:cols) do
124
+ render_arbre_component do
125
+ columns do
126
+ column(:min_width => "100px"){ "Hello World" }
127
+ column(){ "Hello World" }
128
+ end
129
+ end
130
+ end
131
+
132
+ it "should set the min with if passed in" do
133
+ cols.children.first.attr(:style).should == "width: 49.0%; min-width: 100px; margin-right: 2%;"
134
+ end
135
+
136
+ it "should omit the value if not presetn" do
137
+ cols.children.last.attr(:style).should == "width: 49.0%;"
138
+ end
139
+
140
+ end
141
+
142
+ end
@@ -0,0 +1,32 @@
1
+ require 'spec_helper'
2
+
3
+ describe ActiveAdmin::Views::IndexList do
4
+
5
+ describe "#index_list_renderer" do
6
+
7
+
8
+ let(:index_classes) { [ActiveAdmin::Views::IndexAsTable, ActiveAdmin::Views::IndexAsBlock] }
9
+
10
+ let(:helpers) do
11
+ helpers = mock_action_view
12
+ helpers.stub! :url_for => "/"
13
+ helpers.stub!(:params).and_return({:as => "table"})
14
+ helpers
15
+ end
16
+
17
+ subject do
18
+ render_arbre_component({:index_classes => index_classes}, helpers) do
19
+ index_list_renderer(index_classes)
20
+ end
21
+ end
22
+
23
+ its(:tag_name) { should == 'ul' }
24
+
25
+ it "should contain the names of available indexes in links" do
26
+ a_tags = subject.find_by_tag("a")
27
+ a_tags.size.should == 2
28
+ a_tags.first.to_s.should include("Table")
29
+ a_tags.last.to_s.should include("List")
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,247 @@
1
+ require 'spec_helper'
2
+
3
+ describe ActiveAdmin::Views::PaginatedCollection do
4
+ describe "creating with the dsl" do
5
+
6
+ before :all do
7
+ load_defaults!
8
+ reload_routes!
9
+ end
10
+
11
+ let(:view) do
12
+ view = mock_action_view
13
+ view.request.stub!(:query_parameters).and_return({:controller => 'admin/posts', :action => 'index', :page => '1'})
14
+ view.controller.params = {:controller => 'admin/posts', :action => 'index'}
15
+ view
16
+ end
17
+
18
+ # Helper to render paginated collections within an arbre context
19
+ def paginated_collection(*args)
20
+ render_arbre_component({:paginated_collection_args => args}, view) do
21
+ paginated_collection(*paginated_collection_args)
22
+ end
23
+ end
24
+
25
+ let(:collection) do
26
+ posts = [Post.new(:title => "First Post"), Post.new(:title => "Second Post"), Post.new(:title => "Third Post")]
27
+ Kaminari.paginate_array(posts).page(1).per(5)
28
+ end
29
+
30
+ before do
31
+ collection.stub!(:reorder) { collection }
32
+ end
33
+
34
+ context "when specifying collection" do
35
+ let(:pagination) do
36
+ paginated_collection(collection)
37
+ end
38
+
39
+ it "should set :collection as the passed in collection" do
40
+ pagination.find_by_class('pagination_information').first.content.should == "Displaying <b>all 3</b> posts"
41
+ end
42
+
43
+ it "should raise error if collection has no pagination scope" do
44
+ expect {
45
+ paginated_collection([Post.new, Post.new])
46
+ }.to raise_error(StandardError, "Collection is not a paginated scope. Set collection.page(params[:page]).per(10) before calling :paginated_collection.")
47
+ end
48
+ end
49
+
50
+ context "when specifying :param_name option" do
51
+ let(:collection) do
52
+ posts = 10.times.inject([]) {|m, _| m << Post.new }
53
+ Kaminari.paginate_array(posts).page(1).per(5)
54
+ end
55
+
56
+ let(:pagination) { paginated_collection(collection, :param_name => :post_page) }
57
+
58
+ it "should customize the page number parameter in pagination links" do
59
+ pagination.children.last.content.should match(/\/admin\/posts\?post_page=2/)
60
+ end
61
+ end
62
+
63
+ context "when specifying :download_links => false option" do
64
+ let(:collection) do
65
+ posts = 10.times.inject([]) {|m, _| m << Post.new }
66
+ Kaminari.paginate_array(posts).page(1).per(5)
67
+ end
68
+
69
+ let(:pagination) { paginated_collection(collection, :download_links => false) }
70
+
71
+ it "should not render download links" do
72
+ pagination.find_by_tag('div').last.content.should_not match(/Download:/)
73
+ end
74
+ end
75
+
76
+ context "when specifying :entry_name option with a single item" do
77
+ let(:collection) do
78
+ posts = [Post.new]
79
+ Kaminari.paginate_array(posts).page(1).per(5)
80
+ end
81
+
82
+ let(:pagination) { paginated_collection(collection, :entry_name => "message") }
83
+
84
+ it "should use :entry_name as the collection name" do
85
+ pagination.find_by_class('pagination_information').first.content.should == "Displaying <b>1</b> message"
86
+ end
87
+ end
88
+
89
+ context "when specifying :entry_name option with multiple items" do
90
+ let(:pagination) { paginated_collection(collection, :entry_name => "message") }
91
+
92
+ it "should use :entry_name as the collection name" do
93
+ pagination.find_by_class('pagination_information').first.content.should == "Displaying <b>all 3</b> messages"
94
+ end
95
+ end
96
+
97
+ context "when specifying :entry_name and :entries_name option with a single item" do
98
+ let(:collection) do
99
+ posts = [Post.new]
100
+ Kaminari.paginate_array(posts).page(1).per(5)
101
+ end
102
+
103
+ let(:pagination) { paginated_collection(collection, :entry_name => "singular", :entries_name => "plural") }
104
+
105
+ it "should use :entry_name as the collection name" do
106
+ pagination.find_by_class('pagination_information').first.content.should == "Displaying <b>1</b> singular"
107
+ end
108
+ end
109
+
110
+ context "when specifying :entry_name and :entries_name option with a multiple items" do
111
+ let(:pagination) { paginated_collection(collection, :entry_name => "singular", :entries_name => "plural") }
112
+
113
+ it "should use :entries_name as the collection name" do
114
+ pagination.find_by_class('pagination_information').first.content.should == "Displaying <b>all 3</b> plural"
115
+ end
116
+ end
117
+
118
+ context "when omitting :entry_name with a single item" do
119
+ let(:collection) do
120
+ posts = [Post.new]
121
+ Kaminari.paginate_array(posts).page(1).per(5)
122
+ end
123
+
124
+ let(:pagination) { paginated_collection(collection) }
125
+
126
+ it "should use 'post' as the collection name when there is no I18n translation" do
127
+ pagination.find_by_class('pagination_information').first.content.should == "Displaying <b>1</b> post"
128
+ end
129
+
130
+ it "should use 'Singular' as the collection name when there is an I18n translation" do
131
+ I18n.stub(:translate) { "Singular" }
132
+ pagination.find_by_class('pagination_information').first.content.should == "Displaying <b>1</b> Singular"
133
+ end
134
+ end
135
+
136
+ context "when omitting :entry_name with multiple items" do
137
+ let(:pagination) { paginated_collection(collection) }
138
+
139
+ it "should use 'posts' as the collection name when there is no I18n translation" do
140
+ pagination.find_by_class('pagination_information').first.content.should == "Displaying <b>all 3</b> posts"
141
+ end
142
+
143
+ it "should use 'Plural' as the collection name when there is an I18n translation" do
144
+ I18n.stub(:translate) { "Plural" }
145
+ pagination.find_by_class('pagination_information').first.content.should == "Displaying <b>all 3</b> Plural"
146
+ end
147
+ end
148
+
149
+ context "when specifying an empty collection" do
150
+ let(:collection) do
151
+ posts = []
152
+ Kaminari.paginate_array(posts).page(1).per(5)
153
+ end
154
+
155
+ let(:pagination) { paginated_collection(collection) }
156
+
157
+ it "should display 'No entries found'" do
158
+ pagination.find_by_class('pagination_information').first.content.should == "No entries found"
159
+ end
160
+ end
161
+
162
+ context "when collection comes from find with GROUP BY" do
163
+ let(:collection) do
164
+ %w{Foo Foo Bar}.each {|title| Post.create(:title => title) }
165
+ Post.select(:title).group(:title).page(1).per(5)
166
+ end
167
+
168
+ let(:pagination) { paginated_collection(collection) }
169
+
170
+ it "should display proper message (including number and not hash)" do
171
+ pagination.find_by_class('pagination_information').first.content.should == "Displaying <b>all 2</b> posts"
172
+ end
173
+ end
174
+
175
+ context "when collection with many pages comes from find with GROUP BY" do
176
+ let(:collection) do
177
+ %w{Foo Foo Bar Baz}.each {|title| Post.create(:title => title) }
178
+ Post.select(:title).group(:title).page(1).per(2)
179
+ end
180
+
181
+ let(:pagination) { paginated_collection(collection) }
182
+
183
+ it "should display proper message (including number and not hash)" do
184
+ pagination.find_by_class('pagination_information').first.content.
185
+ gsub('&nbsp;',' ').should == "Displaying posts <b>1 - 2</b> of <b>3</b> in total"
186
+ end
187
+ end
188
+
189
+ context "when viewing the last page of a collection that has multiple pages" do
190
+ let(:collection) do
191
+ posts = [Post.new] * 81
192
+ Kaminari.paginate_array(posts).page(3).per(30)
193
+ end
194
+
195
+ let(:pagination) { paginated_collection(collection) }
196
+
197
+ it "should show the proper item counts" do
198
+ pagination.find_by_class('pagination_information').first.content.
199
+ gsub('&nbsp;',' ').should == "Displaying posts <b>61 - 81</b> of <b>81</b> in total"
200
+ end
201
+ end
202
+
203
+ context "when having the param :pagination_total set to true " do
204
+ let(:view) do
205
+ view = mock_action_view
206
+ view.request.stub!(:query_parameters).and_return({:controller => 'admin/stores', :action => 'index', :page => '1'})
207
+ view.controller.params = {:controller => 'admin/stores', :action => 'index'}
208
+ view
209
+ end
210
+
211
+ let(:collection) do
212
+ stores = [Store.new] * 1000
213
+ Kaminari.paginate_array(stores).page(1).per(30)
214
+ end
215
+
216
+ let(:pagination) { paginated_collection(collection, :pagination_total => true) }
217
+
218
+ it "should show the total item counts" do
219
+ info = pagination.find_by_class('pagination_information').first.content.gsub('&nbsp;',' ')
220
+ info.should eq "Displaying Bookstores <b>1 - 30</b> of <b>1000</b> in total"
221
+ end
222
+
223
+ end
224
+
225
+ context "when having the param :pagination_total set to false " do
226
+ let(:view) do
227
+ view = mock_action_view
228
+ view.request.stub!(:query_parameters).and_return({:controller => 'admin/stores', :action => 'index', :page => '1'})
229
+ view.controller.params = {:controller => 'admin/stores', :action => 'index'}
230
+ view
231
+ end
232
+
233
+ let(:collection) do
234
+ stores = [Store.new] * 1000
235
+ Kaminari.paginate_array(stores).page(1).per(30)
236
+ end
237
+
238
+ let(:pagination) { paginated_collection(collection, :pagination_total => false) }
239
+
240
+ it "should not show the total item counts" do
241
+ info = pagination.find_by_class('pagination_information').first.content.gsub('&nbsp;',' ')
242
+ info.should eq "Displaying Bookstores <b>1 - 30</b>"
243
+ end
244
+
245
+ end
246
+ end
247
+ end