activeadmin 0.4.4 → 0.5.0.pre

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of activeadmin might be problematic. Click here for more details.

Files changed (310) hide show
  1. data/.gitignore +3 -0
  2. data/.travis.yml +5 -0
  3. data/CHANGELOG.md +50 -0
  4. data/CONTRIBUTING.md +2 -4
  5. data/Gemfile +10 -4
  6. data/Guardfile +0 -1
  7. data/LICENSE +1 -1
  8. data/README.rdoc +19 -8
  9. data/Rakefile +10 -1
  10. data/activeadmin.gemspec +2 -1
  11. data/app/assets/javascripts/active_admin/application.js +3 -9
  12. data/app/assets/javascripts/active_admin/base.js +1 -0
  13. data/app/assets/javascripts/active_admin/components/jquery.aa.checkbox-toggler.js.coffee +64 -0
  14. data/app/assets/javascripts/active_admin/components/jquery.aa.dropdown-menu.js.coffee +107 -0
  15. data/app/assets/javascripts/active_admin/components/jquery.aa.popover.js.coffee +100 -0
  16. data/app/assets/javascripts/active_admin/components/jquery.aa.table-checkbox-toggler.js.coffee +27 -0
  17. data/app/assets/javascripts/active_admin/lib/namespace.js.coffee +3 -0
  18. data/app/assets/javascripts/active_admin/pages/application.js.coffee +13 -0
  19. data/app/assets/javascripts/active_admin/pages/batch_actions.js.coffee +26 -0
  20. data/app/assets/stylesheets/active_admin/_base.css.scss +32 -26
  21. data/app/assets/stylesheets/active_admin/_forms.css.scss +12 -5
  22. data/app/assets/stylesheets/active_admin/_header.css.scss +1 -2
  23. data/app/assets/stylesheets/active_admin/_typography.css.scss +1 -1
  24. data/app/assets/stylesheets/active_admin/components/_batch_actions.css.scss +11 -0
  25. data/app/assets/stylesheets/active_admin/components/_buttons.scss +1 -2
  26. data/app/assets/stylesheets/active_admin/components/_dropdown_menu.scss +151 -0
  27. data/app/assets/stylesheets/active_admin/components/_flash_messages.css.scss +3 -3
  28. data/app/assets/stylesheets/active_admin/components/_popovers.css.scss +123 -0
  29. data/app/assets/stylesheets/active_admin/components/_status_tags.scss +1 -1
  30. data/app/assets/stylesheets/active_admin/components/_table_tools.css.scss +20 -27
  31. data/app/assets/stylesheets/active_admin/components/_tables.css.scss +1 -0
  32. data/app/assets/stylesheets/active_admin/mixins/_buttons.css.scss +38 -36
  33. data/app/assets/stylesheets/active_admin/mixins/_gradients.css.scss +5 -5
  34. data/app/assets/stylesheets/active_admin/mixins/_icons.css.scss +7 -3
  35. data/app/assets/stylesheets/active_admin/mixins/_variables.css.scss +19 -17
  36. data/app/assets/stylesheets/active_admin/pages/_logged_out.scss +2 -2
  37. data/app/assets/stylesheets/active_admin/print.css.scss +290 -0
  38. data/app/views/active_admin/dashboard/index.html.arb +1 -1
  39. data/app/views/active_admin/devise/passwords/edit.html.erb +17 -14
  40. data/app/views/active_admin/devise/passwords/new.html.erb +4 -4
  41. data/app/views/active_admin/devise/sessions/new.html.erb +6 -6
  42. data/app/views/active_admin/devise/shared/_links.erb +6 -6
  43. data/app/views/active_admin/page/index.html.arb +1 -1
  44. data/app/views/active_admin/resource/edit.html.arb +1 -1
  45. data/app/views/active_admin/resource/index.csv.erb +1 -1
  46. data/app/views/active_admin/resource/index.html.arb +1 -1
  47. data/app/views/active_admin/resource/new.html.arb +1 -1
  48. data/app/views/active_admin/resource/show.html.arb +1 -1
  49. data/app/views/layouts/active_admin.html.arb +1 -1
  50. data/app/views/layouts/active_admin_logged_out.html.erb +2 -2
  51. data/cucumber.yml +1 -1
  52. data/docs/0-installation.md +10 -1
  53. data/docs/{9-custom-pages.md → 10-custom-pages.md} +0 -0
  54. data/docs/2-resource-customization.md +19 -1
  55. data/docs/3-index-pages.md +31 -0
  56. data/docs/4-csv-format.md +9 -0
  57. data/docs/6-show-screens.md +1 -1
  58. data/docs/9-batch-actions.md +161 -0
  59. data/features/dashboard.feature +31 -8
  60. data/features/development_reloading.feature +1 -1
  61. data/features/edit_page.feature +3 -3
  62. data/features/i18n.feature +35 -0
  63. data/features/index/batch_actions.feature +98 -0
  64. data/features/index/filters.feature +26 -0
  65. data/features/index/format_as_csv.feature +35 -0
  66. data/features/index/index_as_table.feature +30 -2
  67. data/features/index/index_blank_slate.feature +8 -3
  68. data/features/index/index_scopes.feature +130 -24
  69. data/features/index/page_title.feature +12 -0
  70. data/features/new_page.feature +3 -3
  71. data/features/registering_pages.feature +61 -0
  72. data/features/root_to.feature +17 -0
  73. data/features/show/default_content.feature +1 -1
  74. data/features/show/page_title.feature +14 -0
  75. data/features/sidebar_sections.feature +26 -0
  76. data/features/site_title.feature +1 -1
  77. data/features/specifying_actions.feature +7 -6
  78. data/features/step_definitions/action_link_steps.rb +1 -1
  79. data/features/step_definitions/additional_web_steps.rb +7 -1
  80. data/features/step_definitions/batch_action_steps.rb +94 -0
  81. data/features/step_definitions/configuration_steps.rb +30 -8
  82. data/features/step_definitions/factory_steps.rb +12 -0
  83. data/features/step_definitions/format_steps.rb +6 -2
  84. data/features/step_definitions/i18n_steps.rb +3 -0
  85. data/features/step_definitions/table_steps.rb +114 -0
  86. data/features/step_definitions/user_steps.rb +30 -4
  87. data/features/support/env.rb +54 -15
  88. data/features/support/paths.rb +2 -0
  89. data/features/users/logging_in.feature +1 -1
  90. data/features/users/logging_out.feature +2 -1
  91. data/features/users/resetting_password.feature +34 -0
  92. data/lib/active_admin.rb +46 -7
  93. data/lib/active_admin/application.rb +30 -15
  94. data/lib/active_admin/base_controller/menu.rb +3 -3
  95. data/lib/active_admin/batch_actions.rb +17 -0
  96. data/lib/active_admin/batch_actions/controller.rb +25 -0
  97. data/lib/active_admin/batch_actions/resource_extension.rb +126 -0
  98. data/lib/active_admin/batch_actions/views/batch_action_form.rb +35 -0
  99. data/lib/active_admin/batch_actions/views/batch_action_popover.rb +28 -0
  100. data/lib/active_admin/batch_actions/views/batch_action_selector.rb +63 -0
  101. data/lib/active_admin/batch_actions/views/selection_cells.rb +37 -0
  102. data/lib/active_admin/comments.rb +5 -2
  103. data/lib/active_admin/comments/comment.rb +4 -3
  104. data/lib/active_admin/comments/views/active_admin_comments.rb +5 -5
  105. data/lib/active_admin/component.rb +1 -18
  106. data/lib/active_admin/csv_builder.rb +8 -3
  107. data/lib/active_admin/dashboards.rb +21 -4
  108. data/lib/active_admin/dashboards/dashboard_controller.rb +1 -5
  109. data/lib/active_admin/dependency_checker.rb +1 -1
  110. data/lib/active_admin/dsl.rb +61 -4
  111. data/lib/active_admin/engine.rb +1 -1
  112. data/lib/active_admin/filters.rb +8 -0
  113. data/lib/active_admin/filters/dsl.rb +12 -0
  114. data/lib/active_admin/filters/forms.rb +93 -0
  115. data/lib/active_admin/filters/resource_extension.rb +92 -0
  116. data/lib/active_admin/form_builder.rb +88 -33
  117. data/lib/active_admin/helpers/collection.rb +23 -0
  118. data/lib/active_admin/helpers/optional_display.rb +1 -1
  119. data/lib/active_admin/inputs/filter_select_input.rb +1 -1
  120. data/lib/active_admin/locales/bg.yml +37 -1
  121. data/lib/active_admin/locales/ca.yml +36 -0
  122. data/lib/active_admin/locales/cs.yml +36 -0
  123. data/lib/active_admin/locales/da.yml +36 -0
  124. data/lib/active_admin/locales/de.yml +42 -0
  125. data/lib/active_admin/locales/en.yml +27 -2
  126. data/lib/active_admin/locales/es.yml +45 -4
  127. data/lib/active_admin/locales/fr.yml +22 -0
  128. data/lib/active_admin/locales/{he_il.yml → he.yml} +37 -2
  129. data/lib/active_admin/locales/hr.yml +49 -5
  130. data/lib/active_admin/locales/hu.yml +21 -0
  131. data/lib/active_admin/locales/it.yml +36 -1
  132. data/lib/active_admin/locales/ja.yml +36 -0
  133. data/lib/active_admin/locales/ko.yml +36 -1
  134. data/lib/active_admin/locales/lv.yml +28 -2
  135. data/lib/active_admin/locales/nl.yml +42 -1
  136. data/lib/active_admin/locales/no-NB.yml +15 -0
  137. data/lib/active_admin/locales/pl.yml +45 -1
  138. data/lib/active_admin/locales/pt-BR.yml +36 -1
  139. data/lib/active_admin/locales/ro.yml +67 -0
  140. data/lib/active_admin/locales/ru.yml +43 -3
  141. data/lib/active_admin/locales/sv-SE.yml +41 -1
  142. data/lib/active_admin/locales/tr.yml +80 -0
  143. data/lib/active_admin/locales/vi.yml +80 -0
  144. data/lib/active_admin/locales/{zh_cn.yml → zh-CN.yml} +42 -2
  145. data/lib/active_admin/locales/zh-TW.yml +36 -1
  146. data/lib/active_admin/menu.rb +55 -30
  147. data/lib/active_admin/menu_builder.rb +65 -0
  148. data/lib/active_admin/menu_item.rb +55 -14
  149. data/lib/active_admin/namespace.rb +25 -55
  150. data/lib/active_admin/page.rb +15 -10
  151. data/lib/active_admin/resource.rb +9 -0
  152. data/lib/active_admin/resource/action_items.rb +4 -4
  153. data/lib/active_admin/resource/controllers.rb +1 -1
  154. data/lib/active_admin/resource/menu.rb +19 -21
  155. data/lib/active_admin/resource/naming.rb +55 -45
  156. data/lib/active_admin/resource/sidebars.rb +0 -13
  157. data/lib/active_admin/resource_collection.rb +10 -10
  158. data/lib/active_admin/resource_controller.rb +5 -5
  159. data/lib/active_admin/resource_controller/actions.rb +2 -0
  160. data/lib/active_admin/resource_controller/collection.rb +13 -4
  161. data/lib/active_admin/resource_dsl.rb +12 -6
  162. data/lib/active_admin/router.rb +27 -8
  163. data/lib/active_admin/scope.rb +1 -0
  164. data/lib/active_admin/sidebar_section.rb +2 -6
  165. data/lib/active_admin/version.rb +1 -1
  166. data/lib/active_admin/view_factory.rb +18 -13
  167. data/lib/active_admin/view_helpers.rb +0 -2
  168. data/lib/active_admin/view_helpers/auto_link_helper.rb +2 -1
  169. data/lib/active_admin/view_helpers/breadcrumb_helper.rb +24 -25
  170. data/lib/active_admin/view_helpers/display_helper.rb +1 -1
  171. data/lib/active_admin/view_helpers/fields_for.rb +44 -0
  172. data/lib/active_admin/view_helpers/form_helper.rb +6 -0
  173. data/lib/active_admin/view_helpers/view_factory_helper.rb +1 -1
  174. data/lib/active_admin/views/components/action_list_popover.rb +29 -0
  175. data/lib/active_admin/views/components/attributes_table.rb +6 -2
  176. data/lib/active_admin/views/components/dropdown_menu.rb +73 -0
  177. data/lib/active_admin/views/components/paginated_collection.rb +13 -14
  178. data/lib/active_admin/views/components/popover.rb +27 -0
  179. data/lib/active_admin/views/components/scopes.rb +8 -13
  180. data/lib/active_admin/views/components/sidebar_section.rb +1 -1
  181. data/lib/active_admin/views/components/site_title.rb +55 -0
  182. data/lib/active_admin/views/components/status_tag.rb +4 -4
  183. data/lib/active_admin/views/components/table_for.rb +18 -18
  184. data/lib/active_admin/views/dashboard_section_renderer.rb +1 -1
  185. data/lib/active_admin/views/footer.rb +18 -0
  186. data/lib/active_admin/views/header.rb +31 -0
  187. data/lib/active_admin/views/index_as_block.rb +3 -0
  188. data/lib/active_admin/views/index_as_blog.rb +4 -0
  189. data/lib/active_admin/views/index_as_grid.rb +2 -0
  190. data/lib/active_admin/views/index_as_table.rb +19 -6
  191. data/lib/active_admin/views/pages/base.rb +14 -48
  192. data/lib/active_admin/views/pages/form.rb +3 -3
  193. data/lib/active_admin/views/pages/index.rb +56 -24
  194. data/lib/active_admin/views/pages/layout.rb +2 -2
  195. data/lib/active_admin/views/pages/page.rb +10 -4
  196. data/lib/active_admin/views/pages/show.rb +11 -8
  197. data/lib/active_admin/views/tabbed_navigation.rb +3 -3
  198. data/lib/active_admin/views/title_bar.rb +50 -0
  199. data/lib/active_admin/views/utility_nav.rb +41 -0
  200. data/lib/generators/active_admin/assets/assets_generator.rb +1 -1
  201. data/lib/generators/active_admin/assets/templates/3.0/active_admin.js +1 -0
  202. data/lib/generators/active_admin/assets/templates/3.1/active_admin.css.scss +26 -3
  203. data/lib/generators/active_admin/devise/devise_generator.rb +2 -2
  204. data/lib/generators/active_admin/install/install_generator.rb +10 -10
  205. data/lib/generators/active_admin/install/templates/active_admin.rb.erb +21 -1
  206. data/lib/generators/active_admin/install/templates/admin_user.rb.erb +20 -0
  207. data/lib/generators/active_admin/install/templates/dashboard.rb +33 -0
  208. data/lib/generators/active_admin/resource/templates/admin.rb +1 -1
  209. data/spec/integration/memory_spec.rb +1 -11
  210. data/spec/javascripts/coffeescripts/jquery.aa.checkbox-toggler-spec.js.coffee +50 -0
  211. data/spec/javascripts/coffeescripts/jquery.aa.popover-spec.js.coffee +82 -0
  212. data/spec/javascripts/coffeescripts/jquery.aa.table-checkbox-toggler-spec.js.coffee +34 -0
  213. data/spec/javascripts/compiled/jquery.aa.checkbox-toggler-spec.js +60 -0
  214. data/spec/javascripts/compiled/jquery.aa.popover-spec.js +106 -0
  215. data/spec/javascripts/compiled/jquery.aa.table-checkbox-toggler-spec.js +37 -0
  216. data/spec/javascripts/fixtures/checkboxes.html +9 -0
  217. data/spec/javascripts/fixtures/table_checkboxes.html +17 -0
  218. data/spec/javascripts/helpers/SpecHelper.js +3 -0
  219. data/spec/javascripts/helpers/vendor/jasmine-fixture-0.0.5.js +108 -0
  220. data/spec/javascripts/helpers/vendor/jasmine-jquery.js +288 -0
  221. data/spec/javascripts/helpers/vendor/sinon-1.2.0.js +2915 -0
  222. data/spec/javascripts/support/jasmine.yml +74 -0
  223. data/spec/javascripts/support/jasmine_config.rb +23 -0
  224. data/spec/javascripts/support/jasmine_runner.rb +32 -0
  225. data/spec/javascripts/support/jquery-ui-1.8.16.custom.min.js +34 -0
  226. data/spec/javascripts/support/jquery.min.js +4 -0
  227. data/spec/spec_helper.rb +13 -13
  228. data/spec/spec_helper_without_rails.rb +2 -3
  229. data/spec/support/detect_rails_version.rb +16 -10
  230. data/spec/support/rails_template.rb +13 -1
  231. data/spec/support/templates/admin/stores.rb +1 -0
  232. data/spec/support/templates/en.yml +6 -0
  233. data/spec/unit/action_builder_spec.rb +38 -0
  234. data/spec/unit/application_spec.rb +12 -16
  235. data/spec/unit/base_controller_shared_examples.rb +3 -6
  236. data/spec/unit/batch_actions/resource_spec.rb +91 -0
  237. data/spec/unit/batch_actions/settings_spec.rb +61 -0
  238. data/spec/unit/breadcrumbs_spec.rb +33 -0
  239. data/spec/unit/comments_spec.rb +6 -0
  240. data/spec/unit/config_shared_examples.rb +17 -64
  241. data/spec/unit/csv_builder_spec.rb +12 -2
  242. data/spec/unit/dashboard_controller_spec.rb +11 -5
  243. data/spec/unit/dsl_include_spec.rb +20 -0
  244. data/spec/unit/{filter_form_builder_spec.rb → filters/filter_form_builder_spec.rb} +10 -7
  245. data/spec/unit/filters/resource_spec.rb +60 -0
  246. data/spec/unit/form_builder_spec.rb +180 -28
  247. data/spec/unit/helpers/collection_spec.rb +65 -0
  248. data/spec/unit/menu_item_spec.rb +48 -53
  249. data/spec/unit/menu_spec.rb +46 -32
  250. data/spec/unit/namespace/register_page_spec.rb +0 -6
  251. data/spec/unit/namespace/register_resource_spec.rb +1 -8
  252. data/spec/unit/namespace_spec.rb +8 -2
  253. data/spec/unit/page_spec.rb +20 -8
  254. data/spec/unit/resource/naming_spec.rb +27 -26
  255. data/spec/unit/resource/sidebars_spec.rb +0 -7
  256. data/spec/unit/resource_collection_spec.rb +11 -11
  257. data/spec/unit/resource_controller/collection_spec.rb +23 -1
  258. data/spec/unit/resource_controller/sidebars_spec.rb +46 -0
  259. data/spec/unit/resource_controller_spec.rb +43 -0
  260. data/spec/unit/resource_registration_spec.rb +2 -13
  261. data/spec/unit/resource_spec.rb +0 -42
  262. data/spec/unit/routing_spec.rb +60 -14
  263. data/spec/unit/scope_spec.rb +7 -0
  264. data/spec/unit/view_factory_spec.rb +9 -6
  265. data/spec/unit/view_helpers/fields_for_spec.rb +41 -0
  266. data/spec/unit/view_helpers/form_helper_spec.rb +18 -0
  267. data/spec/unit/views/components/action_list_popover_spec.rb +30 -0
  268. data/spec/unit/views/components/attributes_table_spec.rb +32 -20
  269. data/spec/unit/views/components/batch_action_popover_spec.rb +33 -0
  270. data/spec/unit/views/components/blank_slate_spec.rb +5 -3
  271. data/spec/unit/views/components/columns_spec.rb +32 -22
  272. data/spec/unit/views/components/paginated_collection_spec.rb +54 -12
  273. data/spec/unit/views/components/panel_spec.rb +11 -6
  274. data/spec/unit/views/components/popover_spec.rb +33 -0
  275. data/spec/unit/views/components/sidebar_section_spec.rb +6 -6
  276. data/spec/unit/views/components/site_title_spec.rb +78 -0
  277. data/spec/unit/views/components/status_tag_spec.rb +17 -10
  278. data/spec/unit/views/components/table_for_spec.rb +37 -17
  279. data/spec/unit/views/pages/layout_spec.rb +51 -10
  280. data/spec/unit/views/tabbed_navigation_spec.rb +44 -23
  281. data/tasks/js.rake +32 -0
  282. data/tasks/test.rake +1 -1
  283. metadata +233 -200
  284. data/lib/active_admin/arbre.rb +0 -22
  285. data/lib/active_admin/arbre/builder.rb +0 -125
  286. data/lib/active_admin/arbre/context.rb +0 -45
  287. data/lib/active_admin/arbre/html/attributes.rb +0 -20
  288. data/lib/active_admin/arbre/html/class_list.rb +0 -24
  289. data/lib/active_admin/arbre/html/collection.rb +0 -27
  290. data/lib/active_admin/arbre/html/document.rb +0 -42
  291. data/lib/active_admin/arbre/html/element.rb +0 -161
  292. data/lib/active_admin/arbre/html/html5_elements.rb +0 -47
  293. data/lib/active_admin/arbre/html/tag.rb +0 -145
  294. data/lib/active_admin/arbre/html/text_node.rb +0 -35
  295. data/lib/active_admin/filter_form_builder.rb +0 -53
  296. data/lib/active_admin/renderer.rb +0 -87
  297. data/lib/active_admin/resource_controller/filters.rb +0 -58
  298. data/lib/active_admin/stylesheets/active_admin/mixins/_utilities.scss +0 -0
  299. data/lib/active_admin/view_helpers/filter_form_helper.rb +0 -36
  300. data/lib/active_admin/view_helpers/renderer_helper.rb +0 -29
  301. data/lib/active_admin/views/header_renderer.rb +0 -82
  302. data/lib/generators/active_admin/assets/templates/dashboards.rb +0 -36
  303. data/lib/generators/active_admin/install/templates/dashboards.rb +0 -44
  304. data/spec/unit/arbre/context_spec.rb +0 -35
  305. data/spec/unit/arbre/html/element_finder_methods_spec.rb +0 -110
  306. data/spec/unit/arbre/html/element_spec.rb +0 -236
  307. data/spec/unit/arbre/html/tag_attributes_spec.rb +0 -61
  308. data/spec/unit/arbre/html/tag_spec.rb +0 -63
  309. data/spec/unit/arbre/html_spec.rb +0 -228
  310. data/spec/unit/renderer_spec.rb +0 -126
@@ -1 +1 @@
1
- render view_factory.dashboard_page
1
+ insert_tag view_factory.dashboard_page
@@ -1,16 +1,19 @@
1
- <h2>Change your password</h2>
1
+ <div id="login">
2
+ <%= content_tag :h2, t('active_admin.devise.change_password.title') %>
2
3
 
3
- <%= form_for(resource, :as => resource_name, :url => password_path(resource_name), :html => { :method => :put }) do |f| %>
4
- <%= devise_error_messages! %>
5
- <%= f.hidden_field :reset_password_token %>
4
+ <%= active_admin_form_for(resource, :as => resource_name, :url => password_path(resource_name), :html => { :method => :put }) do |f| %>
5
+ <%= devise_error_messages! %>
6
+ <%
7
+ f.inputs do
8
+ f.input :password
9
+ f.input :password_confirmation
10
+ end %>
11
+ <%=
12
+ f.actions do
13
+ f.action :submit, :label => t('active_admin.devise.change_password.submit'), :button_html => { :value => t('active_admin.devise.change_password.submit') }
14
+ f.input :reset_password_token, :as => :hidden, :input_html => { :value => resource.reset_password_token }
15
+ end %>
16
+ <% end %>
6
17
 
7
- <p><%= f.label :password %><br />
8
- <%= f.password_field :password %></p>
9
-
10
- <p><%= f.label :password_confirmation %><br />
11
- <%= f.password_field :password_confirmation %></p>
12
-
13
- <p><%= f.submit "Change my password" %></p>
14
- <% end %>
15
-
16
- <%= render :partial => "active_admin/devise/shared/links" %>
18
+ <%= render 'active_admin/devise/shared/links' %>
19
+ </div>
@@ -1,12 +1,12 @@
1
1
  <div id="login">
2
- <h2>Forgot your password?</h2>
2
+ <%= content_tag :h2, t('active_admin.devise.reset_password.title') %>
3
3
 
4
- <%= active_admin_form_for(resource, :as => resource_name, :url => password_path(resource_name), :html => { :method => :post }) do |f|
4
+ <%= active_admin_form_for(resource, :as => resource_name, :url => password_path(resource_name), :html => { :method => :post }) do |f|
5
5
  f.inputs do
6
6
  f.input :email
7
7
  end
8
- f.buttons do
9
- f.commit_button "Reset My Password"
8
+ f.actions do
9
+ f.action :submit, :label => t('active_admin.devise.reset_password.submit'), :button_html => { :value => t('active_admin.devise.reset_password.submit') }
10
10
  end
11
11
  end %>
12
12
 
@@ -1,15 +1,15 @@
1
1
  <div id="login">
2
- <h2><%= title "#{active_admin_application.site_title} Login" %></h2>
2
+ <h2><%= title "#{render_or_call_method_or_proc_on(self, active_admin_application.site_title)} #{t('active_admin.devise.login.title')}" %></h2>
3
3
 
4
4
  <% scope = Devise::Mapping.find_scope!(resource_name) %>
5
- <%= active_admin_form_for(resource, :as => resource_name, :url => send(:"#{scope}_session_path"), :html => { :id => "session_new" }) do |f|
5
+ <%= active_admin_form_for(resource, :as => resource_name, :url => send(:"#{scope}_session_path"), :html => { :id => "session_new" }) do |f|
6
6
  f.inputs do
7
- Devise.authentication_keys.each { |key| f.input key, :input_html => {:autofocus => true}}
7
+ resource.class.authentication_keys.each { |key| f.input key, :input_html => {:autofocus => true}}
8
8
  f.input :password
9
- f.input :remember_me, :as => :boolean, :if => false #devise_mapping.rememberable? }
9
+ f.input :remember_me, :label => t('active_admin.devise.login.remember_me'), :as => :boolean, :if => false #devise_mapping.rememberable? }
10
10
  end
11
- f.buttons do
12
- f.commit_button "Login"
11
+ f.actions do
12
+ f.action :submit, :label => t('active_admin.devise.login.submit'), :button_html => { :value => t('active_admin.devise.login.submit') }
13
13
  end
14
14
  end
15
15
  %>
@@ -1,20 +1,20 @@
1
1
  <%- if controller_name != 'sessions' %>
2
2
  <% scope = Devise::Mapping.find_scope!(resource_name) %>
3
- <%= link_to "Sign in", send(:"new_#{scope}_session_path") %><br />
3
+ <%= link_to t('active_admin.devise.links.sign_in'), send(:"new_#{scope}_session_path") %><br />
4
4
  <% end -%>
5
5
 
6
6
  <%- if devise_mapping.registerable? && controller_name != 'registrations' %>
7
- <%= link_to "Sign up", new_registration_path(resource_name) %><br />
7
+ <%= link_to t('active_admin.devise.links.sign_up'), new_registration_path(resource_name) %><br />
8
8
  <% end -%>
9
9
 
10
10
  <%- if devise_mapping.recoverable? && controller_name != 'passwords' %>
11
- <%= link_to "Forgot your password?", new_password_path(resource_name) %><br />
11
+ <%= link_to t('active_admin.devise.links.forgot_your_password'), new_password_path(resource_name) %><br />
12
12
  <% end -%>
13
13
 
14
14
  <%- if devise_mapping.confirmable? && controller_name != 'confirmations' %>
15
- <%= link_to "Didn't receive confirmation instructions?", new_confirmation_path(resource_name) %><br />
15
+ <%= link_to t('active_admin.devise.links.resend_confirmation_instructions'), new_confirmation_path(resource_name) %><br />
16
16
  <% end -%>
17
17
 
18
18
  <%- if devise_mapping.lockable? && resource_class.unlock_strategy_enabled?(:email) && controller_name != 'unlocks' %>
19
- <%= link_to "Didn't receive unlock instructions?", new_unlock_path(resource_name) %><br />
20
- <% end -%>
19
+ <%= link_to t('active_admin.devise.links.resend_unlock_instructions'), new_unlock_path(resource_name) %><br />
20
+ <% end -%>
@@ -1 +1 @@
1
- render active_admin_application.view_factory["page"]
1
+ insert_tag active_admin_application.view_factory["page"]
@@ -1 +1 @@
1
- render renderer_for(:edit)
1
+ insert_tag renderer_for(:edit)
@@ -7,7 +7,7 @@
7
7
  CSV
8
8
  end
9
9
 
10
- csv_output = csv_lib.generate do |csv|
10
+ csv_output = csv_lib.generate(:col_sep => active_admin_config.csv_builder.column_separator || active_admin_application.csv_column_separator) do |csv|
11
11
  columns = active_admin_config.csv_builder.columns
12
12
  csv << columns.map(&:name)
13
13
  collection.each do |resource|
@@ -1 +1 @@
1
- render renderer_for(:index)
1
+ insert_tag renderer_for(:index)
@@ -1 +1 @@
1
- render renderer_for(:new)
1
+ insert_tag renderer_for(:new)
@@ -1 +1 @@
1
- render renderer_for(:show)
1
+ insert_tag renderer_for(:show)
@@ -1 +1 @@
1
- render view_factory.layout
1
+ insert_tag view_factory.layout
@@ -3,7 +3,7 @@
3
3
  <head>
4
4
  <meta http-equiv="Content-type" content="text/html; charset=utf-8">
5
5
 
6
- <title><%= [@page_title, active_admin_application.site_title].compact.join(" | ") %></title>
6
+ <title><%= [@page_title, render_or_call_method_or_proc_on(self, ActiveAdmin.application.site_title)].compact.join(" | ") %></title>
7
7
 
8
8
  <% ActiveAdmin.application.stylesheets.each do |style| %>
9
9
  <%= stylesheet_link_tag style.path, style.options %>
@@ -14,7 +14,7 @@
14
14
 
15
15
  <%= csrf_meta_tag %>
16
16
  </head>
17
- <body class="logged_out <%= controller.action_name %>">
17
+ <body class="active_admin logged_out <%= controller.action_name %>">
18
18
  <div id="wrapper">
19
19
 
20
20
  <div id="content_wrapper">
@@ -1,3 +1,3 @@
1
- default: --format 'progress' --require features/support/env.rb --require features/step_definitions features --tags ~@requires-reloading
1
+ default: --format 'progress' --require features/support/env.rb --require features/step_definitions features --tags ~@requires-reloading --tags ~@wip
2
2
  wip: --format 'progress' --require features/support/env.rb --require features/step_definitions features --tags @wip:3 --wip features
3
3
  class-reloading: RAILS_ENV=cucumber_with_reloading --format 'progress' --require features/support/env.rb --require features/step_definitions features --tags @requires-reloading
@@ -12,7 +12,6 @@ MetaSearch and sass-rails:
12
12
  # Gemfile in Rails >= 3.1
13
13
  gem 'activeadmin'
14
14
  gem 'sass-rails'
15
- gem "meta_search", '>= 1.1.0.pre'
16
15
 
17
16
  ## Running the Generator
18
17
 
@@ -48,3 +47,13 @@ run the assets generator:
48
47
 
49
48
  This command makes sure you have all the latest assets and your installation is
50
49
  up to date. Each time you upgrade Active Admin, you should run this command.
50
+
51
+ ## will_paginate compatibility
52
+
53
+ If you use `will_paginate` in your app, you need to configure an initializer for
54
+ Kaminari to avoid conflicts. Put this in `config/initializers/kaminari.rb`
55
+
56
+
57
+ Kaminari.configure do |config|
58
+ config.page_method_name = :per_page_kaminari
59
+ end
@@ -35,7 +35,8 @@ the resource from being displayed in the global navigation, pass `false` to the
35
35
 
36
36
  The menu method accepts a hash with the following options:
37
37
 
38
- * `:label` - The string label to display in the menu
38
+ * `:label` - The string or proc label to display in the menu. If it's a proc, it
39
+ will be called each time the menu is rendered.
39
40
  * `:parent` - The string label of the parent to set for this menu
40
41
  * `:if` - A block or a symbol of a method to call to decide if the menu item
41
42
  should be displayed
@@ -51,6 +52,13 @@ To change the name of the label in the menu:
51
52
 
52
53
  By default the menu uses a pluralized version of your resource name.
53
54
 
55
+ If you wish to translate your label at runtime, store the label as a proc
56
+ instead of a string. The proc will be called each time the menu is rendered.
57
+
58
+ ActiveAdmin.register Post do
59
+ menu :label => proc{ I18n.t("mypost") }
60
+ end
61
+
54
62
  ### Drop Down Menus
55
63
 
56
64
  In many cases, a single level navigation will not be enough for the
@@ -125,3 +133,13 @@ The only requirement is that your method returns an instance of ActiveRecord::Re
125
133
  scope_to :current_user, :association_method => :managed_ads
126
134
  end
127
135
 
136
+ In case you just need to customize the query independently of the current user, you can
137
+ override the `scoped_collection` method on the controller:
138
+
139
+ ActiveAdmin.register Post do
140
+ controller do
141
+ def scoped_collection
142
+ Post.includes(:author)
143
+ end
144
+ end
145
+ end
@@ -54,6 +54,29 @@ You can change the filter label by passing a label option:
54
54
 
55
55
  By default, Active Admin will try to use ActiveModel I18n to determine the label.
56
56
 
57
+ Filters can also be disabled for a resource, a namespace or the entire
58
+ application.
59
+
60
+ To disable for a specific resource:
61
+
62
+ ActiveAdmin.register Post do
63
+ config.filters = false
64
+ end
65
+
66
+ To disable for a namespace, in the initializer:
67
+
68
+ ActiveAdmin.setup do |config|
69
+ config.namespace :my_namespace do |my_namespace|
70
+ my_namespace.filters = false
71
+ end
72
+ end
73
+
74
+ Or to disable for the entire application:
75
+
76
+ ActiveAdmin.setup do |config|
77
+ config.filters = false
78
+ end
79
+
57
80
  ## Index default sort order
58
81
 
59
82
  You can define the default sort order for index pages:
@@ -76,3 +99,11 @@ You can also disable pagination:
76
99
  ActiveAdmin.register Post do
77
100
  config.paginate = false
78
101
  end
102
+
103
+ ## Disable CSV, XML and JSON export
104
+
105
+ You can remove links to download CSV, XML and JSON exports:
106
+
107
+ index :download_links => false do
108
+ end
109
+
@@ -12,3 +12,12 @@ Customizing the CSV format is as simple as customizing the index page.
12
12
  column("Author") { |post| post.author.full_name }
13
13
  end
14
14
  end
15
+
16
+ You can choose custom separator
17
+
18
+ ActiveAdmin.register Post do
19
+ csv :separator => ';' do
20
+ column :title
21
+ column("Author") { |post| post.author.full_name }
22
+ end
23
+ end
@@ -35,7 +35,7 @@ If you'd like to keep the default active_admin look, you can also use "attribute
35
35
  end
36
36
  end
37
37
 
38
- You can customize the title of the object in the show screen. The default is the resouce name and the ID. You can customize as follows:
38
+ You can customize the title of the object in the show screen. The default is the resource name and the ID. You can customize as follows:
39
39
 
40
40
  show :title => :name do
41
41
  end
@@ -0,0 +1,161 @@
1
+ # Index Batch Actions
2
+
3
+ By default, the index view includes a way to quickly delete records from the listing,
4
+ as well as an API for you to easily create your own "Batch Action" for handling a request to operate
5
+ on multiple records at once.
6
+
7
+ ## Provided Batch Action
8
+
9
+ The `batch_action` API provides one default batch action for use in your application immediately, for deleting
10
+ multiple records at once. You are able to disable this action if you desire (see below).
11
+
12
+ ## Creating Your Own Batch Actions
13
+
14
+ To create your own batch action, use the `batch_action` method. You are provided an array of record IDs
15
+ to operate on. The array should contain at least one ID.
16
+
17
+ ActiveAdmin.register Post do
18
+ batch_action :flag do |selection|
19
+ Post.find(selection).each do |post|
20
+ post.flag! :hot
21
+ end
22
+ end
23
+ end
24
+
25
+ ### Disabling Batch Actions
26
+
27
+ You can disable batch actions at the application or namespace level in
28
+ `config/initializers/active_admin.rb`:
29
+
30
+ ActiveAdmin.setup do |config|
31
+
32
+ # Disable all batch actions
33
+ config.batch_actions = false
34
+
35
+
36
+ # Or disable for a given namespace
37
+ config.namespace :admin do |admin|
38
+ admin.batch_actions = false
39
+ end
40
+ end
41
+
42
+ You can disable batch actions on any given resource using:
43
+
44
+ ActiveAdmin.register Post do
45
+ config.batch_actions = false
46
+ end
47
+
48
+
49
+ ### Modifying a Previously Registered Batch Action
50
+
51
+ If you wanted to modify the behavior of the provided "Delete" batch action, you can override by:
52
+
53
+ ActiveAdmin.register Post do
54
+ batch_action :destroy, :if => proc { can?( :destroy, Post ) } do |selection|
55
+ redirect_to collection_path, :alert => "Didn't really delete these!"
56
+ end
57
+ end
58
+
59
+ ### Removing a Batch Action
60
+
61
+ You can also remove batch actions by simply passing false as the second parameter:
62
+
63
+ ActiveAdmin.register Post do
64
+ batch_action :destroy, false
65
+ end
66
+
67
+ ### Conditional Display of Batch Action
68
+
69
+ You can control whether or not the batch action is available via the `:if` option. Provide a boolean or a proc, which is executed in context of the view.
70
+
71
+ ActiveAdmin.register Post do
72
+ batch_action :flag, :if => proc { false } do |selection|
73
+ # This action won't ever be displayed
74
+ end
75
+ end
76
+
77
+ ### Batch Action Priority in Menu
78
+
79
+ You can also change the order of batch actions, by providing a value for the :priority param:
80
+
81
+ ActiveAdmin.register Post do
82
+ batch_action :destroy, :priority => 1 do |selection|
83
+ # Do some deleting in here...
84
+ end
85
+ end
86
+
87
+ ### Batch Action I18n of Labels
88
+
89
+ By default, the name of the batch action will be used to lookup a label for the
90
+ menu. It will lookup in `active_admin.batch_actions.labels.#{your_batch_action_name}`. For
91
+ example:
92
+
93
+ ActiveAdmin.register Post do
94
+ batch_action :publish do |selection|
95
+ # do some publishing...
96
+ end
97
+ end
98
+
99
+ Can be translated with:
100
+
101
+ # config/locales/en.yml
102
+ en:
103
+ active_admin:
104
+ batch_actions:
105
+ labels:
106
+ publish: "Publish"
107
+
108
+ ### Batch Action Confirmation
109
+
110
+ You can also request that the user confirm the action, before the action is performed:
111
+
112
+ ActiveAdmin.register Post do
113
+ batch_action :destroy, :confirm => "Are you sure you want to delete all of these?" do |selection|
114
+ # Do some deleting...
115
+ end
116
+ end
117
+
118
+ ### Customizing Table Columns
119
+
120
+ To include the column with checkboxes in after overriding the list of columns for the `index` block in the *Table* listing, use the following helper as seen below:
121
+
122
+ ActiveAdmin.register Post do
123
+
124
+ batch_action :flag do |selection|
125
+ Post.find(selection).each { |p| p.flag! }
126
+ redirect_to collection_path, :notice => "Posts flagged!"
127
+ end
128
+
129
+ index do
130
+ selectable_column
131
+ column :title
132
+ default_actions
133
+ end
134
+
135
+ end
136
+
137
+
138
+ ### Support for Other Index Types
139
+
140
+ You can easily use `batch_action` in the other index views, *Grid*, *Block*, and *Blog*; however, these views will require more custom styling to fit your application needs.
141
+
142
+ ActiveAdmin.register Post do
143
+
144
+ # By default, the "Delete" batch action is provided
145
+
146
+ # Index as Grid
147
+ index as: :grid do |post|
148
+ resource_selection_cell post
149
+ h2 auto_link( post )
150
+ end
151
+
152
+ # Index as Blog requires nothing special
153
+
154
+ # Index as Block
155
+ index as: :block do |post|
156
+ div for: post do
157
+ resource_selection_cell post
158
+ end
159
+ end
160
+
161
+ end