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,19 @@
1
+ module ActiveAdmin
2
+ module Views
3
+ class DashboardSection < ActiveAdmin::Views::Panel
4
+
5
+ def build(section)
6
+ @section = section
7
+ super(title, :icon => @section.icon)
8
+ instance_eval &@section.block
9
+ end
10
+
11
+ protected
12
+
13
+ def title
14
+ I18n.t("active_admin.sections.#{@section.name.to_s}", :default => @section.name.to_s.titleize)
15
+ end
16
+
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,20 @@
1
+ module ActiveAdmin
2
+ module Views
3
+ class Footer < Component
4
+
5
+ def build
6
+ super :id => "footer"
7
+ powered_by_message
8
+ end
9
+
10
+ private
11
+
12
+ def powered_by_message
13
+ para I18n.t('active_admin.powered_by',
14
+ :active_admin => link_to("Active Admin", "http://www.activeadmin.info"),
15
+ :version => ActiveAdmin::VERSION).html_safe
16
+ end
17
+
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,32 @@
1
+ module ActiveAdmin
2
+ module Views
3
+ class Header < Component
4
+
5
+ def build(namespace, menu)
6
+ super(:id => "header")
7
+
8
+ @namespace = namespace
9
+ @menu = menu
10
+ @utility_menu = @namespace.fetch_menu(:utility_navigation)
11
+
12
+ build_site_title
13
+ build_global_navigation
14
+ build_utility_navigation
15
+ end
16
+
17
+
18
+ def build_site_title
19
+ insert_tag view_factory.site_title, @namespace
20
+ end
21
+
22
+ def build_global_navigation
23
+ insert_tag view_factory.global_navigation, @menu, :class => 'header-item tabs'
24
+ end
25
+
26
+ def build_utility_navigation
27
+ insert_tag view_factory.utility_navigation, @utility_menu, :id => "utility_nav", :class => 'header-item tabs'
28
+ end
29
+
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,36 @@
1
+ module ActiveAdmin
2
+ module Views
3
+
4
+ # = Index as a Block
5
+ #
6
+ # If you want to fully customize the display of your resources on the index
7
+ # screen, Index as a Block allows you to render a block of content for each
8
+ # resource.
9
+ #
10
+ # index :as => :block do |product|
11
+ # div :for => product do
12
+ # resource_selection_cell product
13
+ # h2 auto_link(product.title)
14
+ # div do
15
+ # simple_format product.description
16
+ # end
17
+ # end
18
+ # end
19
+ #
20
+ class IndexAsBlock < ActiveAdmin::Component
21
+
22
+ def build(page_presenter, collection)
23
+ add_class "index"
24
+ resource_selection_toggle_panel if active_admin_config.batch_actions.any?
25
+ collection.each do |obj|
26
+ instance_exec(obj, &page_presenter.block)
27
+ end
28
+ end
29
+
30
+ def self.index_name
31
+ "block"
32
+ end
33
+
34
+ end
35
+ end
36
+ end
@@ -0,0 +1,150 @@
1
+ module ActiveAdmin
2
+ module Views
3
+
4
+ # = Index as Blog
5
+ #
6
+ # Render your index page as a set of posts. The post has two main options:
7
+ # title and body.
8
+ #
9
+ # index :as => :blog do
10
+ # title :my_title # Calls #my_title on each resource
11
+ # body :my_body # Calls #my_body on each resource
12
+ # end
13
+ #
14
+ # == Post Title
15
+ #
16
+ # The title is the content that will be rendered within a link to the
17
+ # resource. There are two main ways to set the content for the title
18
+ #
19
+ # First, you can pass in a method to be called on your
20
+ # resource. For example:
21
+ #
22
+ # index :as => :blog do
23
+ # title :a_method_to_call
24
+ # end
25
+ #
26
+ # This will result in the title of the post being the return value of
27
+ # Resource#a_method_to_call
28
+ #
29
+ # Second, you can pass a block to the tile option which will then be
30
+ # used as the contents fo the title. The resource being rendered
31
+ # is passed in to the block. For Example:
32
+ #
33
+ # index :as => :blog do
34
+ # title do |post|
35
+ # span post.title, :class => 'title'
36
+ # span post.created_at, :class => 'created_at'
37
+ # end
38
+ # end
39
+ #
40
+ # == Post Body
41
+ #
42
+ # The body is rendered underneath the title of each post. The same two
43
+ # style of options work as the Post Title above.
44
+ #
45
+ # Call a method on the resource as the body:
46
+ #
47
+ # index :as => :blog do
48
+ # title :my_title
49
+ # body :my_body # Return value of #my_body will be the body
50
+ # end
51
+ #
52
+ # Or, render a block as the body:
53
+ #
54
+ # index :as => :blog do
55
+ # title :my_title
56
+ # body do |post|
57
+ # div truncate(post.title)
58
+ # div :class => 'meta' do
59
+ # span "Post in #{post.categories.join(', ')}"
60
+ # end
61
+ # end
62
+ # end
63
+ #
64
+ class IndexAsBlog < ActiveAdmin::Component
65
+
66
+ def build(page_presenter, collection)
67
+ @page_presenter = page_presenter
68
+ @collection = collection
69
+
70
+ # Call the block passed in. This will set the
71
+ # title and body methods
72
+ instance_eval &page_presenter.block if page_presenter.block
73
+
74
+ add_class "index"
75
+ build_posts
76
+ end
77
+
78
+ # Setter method for the configuration of the title
79
+ def title(method = nil, &block)
80
+ if block_given? || method
81
+ @title = block_given? ? block : method
82
+ end
83
+ @title
84
+ end
85
+
86
+
87
+ # Setter method for the configuration of the body
88
+ #
89
+ def body(method = nil, &block)
90
+ if block_given? || method
91
+ @body = block_given? ? block : method
92
+ end
93
+ @body
94
+ end
95
+
96
+ def self.index_name
97
+ "blog"
98
+ end
99
+
100
+ private
101
+
102
+ def build_posts
103
+ resource_selection_toggle_panel if active_admin_config.batch_actions.any?
104
+ @collection.each do |post|
105
+ build_post(post)
106
+ end
107
+ end
108
+
109
+ def build_post(post)
110
+ div :for => post do
111
+ resource_selection_cell(post) if active_admin_config.batch_actions.any?
112
+ build_title(post)
113
+ build_body(post)
114
+ end
115
+ end
116
+
117
+ def build_title(post)
118
+ if @title
119
+ h3 do
120
+ a(:href => resource_path(post)) do
121
+ render_method_on_post_or_call_proc post, @title
122
+ end
123
+ end
124
+ else
125
+ h3 do
126
+ auto_link(post)
127
+ end
128
+ end
129
+ end
130
+
131
+ def build_body(post)
132
+ if @body
133
+ div :class => 'content' do
134
+ render_method_on_post_or_call_proc post, @body
135
+ end
136
+ end
137
+ end
138
+
139
+ def render_method_on_post_or_call_proc(post, proc)
140
+ case proc
141
+ when String,Symbol
142
+ post.send proc
143
+ else
144
+ instance_exec post, &proc
145
+ end
146
+ end
147
+
148
+ end # Posts
149
+ end
150
+ end
@@ -0,0 +1,76 @@
1
+ module ActiveAdmin
2
+ module Views
3
+
4
+ # = Index as a Grid
5
+ #
6
+ # Sometimes you want to display the index screen for a set of resources as a grid
7
+ # (possibly a grid of thumbnail images). To do so, use the :grid option for the
8
+ # index block.
9
+ #
10
+ # index :as => :grid do |product|
11
+ # link_to(image_tag(product.image_path), admin_products_path(product))
12
+ # end
13
+ #
14
+ # The block is rendered within a cell in the grid once for each resource in the
15
+ # collection. The resource is passed into the block for you to use in the view.
16
+ #
17
+ # You can customize the number of colums that are rendered using the columns
18
+ # option:
19
+ #
20
+ # index :as => :grid, :columns => 5 do |product|
21
+ # link_to(image_tag(product.image_path), admin_products_path(product))
22
+ # end
23
+ #
24
+ class IndexAsGrid < ActiveAdmin::Component
25
+
26
+ def build(page_presenter, collection)
27
+ @page_presenter = page_presenter
28
+ @collection = collection
29
+ add_class "index"
30
+ build_table
31
+ end
32
+
33
+ def number_of_columns
34
+ @page_presenter[:columns] || default_number_of_columns
35
+ end
36
+
37
+ def self.index_name
38
+ "grid"
39
+ end
40
+
41
+ protected
42
+
43
+ def build_table
44
+ resource_selection_toggle_panel if active_admin_config.batch_actions.any?
45
+ table :class => "index_grid" do
46
+ collection.in_groups_of(number_of_columns).each do |group|
47
+ build_row(group)
48
+ end
49
+ end
50
+ end
51
+
52
+ def build_row(group)
53
+ tr do
54
+ group.each do |item|
55
+ item ? build_item(item) : build_empty_cell
56
+ end
57
+ end
58
+ end
59
+
60
+ def build_item(item)
61
+ td :for => item do
62
+ instance_exec(item, &@page_presenter.block)
63
+ end
64
+ end
65
+
66
+ def build_empty_cell
67
+ td '&nbsp;'.html_safe
68
+ end
69
+
70
+ def default_number_of_columns
71
+ 3
72
+ end
73
+
74
+ end
75
+ end
76
+ end
@@ -0,0 +1,238 @@
1
+ module ActiveAdmin
2
+ module Views
3
+
4
+ # = Index as a Table
5
+ #
6
+ # By default, the index page is a table with each of the models content columns and links to
7
+ # show, edit and delete the object. There are many ways to customize what gets
8
+ # displayed.
9
+ #
10
+ # == Defining Columns
11
+ #
12
+ # To display an attribute or a method on a resource, simply pass a symbol into the
13
+ # column method:
14
+ #
15
+ # index do
16
+ # selectable_column
17
+ # column :title
18
+ # end
19
+ #
20
+ # If the default title does not work for you, pass it as the first argument:
21
+ #
22
+ # index do
23
+ # selectable_column
24
+ # column "My Custom Title", :title
25
+ # end
26
+ #
27
+ # Sometimes calling methods just isn't enough and you need to write some view
28
+ # specific code. For example, say we wanted a colum called Title which holds a
29
+ # link to the posts admin screen.
30
+ #
31
+ # The column method accepts a block as an argument which will then be rendered
32
+ # within the context of the view for each of the objects in the collection.
33
+ #
34
+ # index do
35
+ # selectable_column
36
+ # column "Title" do |post|
37
+ # link_to post.title, admin_post_path(post)
38
+ # end
39
+ # end
40
+ #
41
+ # The block gets called once for each resource in the collection. The resource gets passed into
42
+ # the block as an argument.
43
+ #
44
+ # To setup links to View, Edit and Delete a resource, use the default_actions method:
45
+ #
46
+ # index do
47
+ # selectable_column
48
+ # column :title
49
+ # default_actions
50
+ # end
51
+ #
52
+ # Alternatively, you can create a column with custom links:
53
+ #
54
+ # index do
55
+ # selectable_column
56
+ # column :title
57
+ # column "Actions" do |post|
58
+ # link_to "View", admin_post_path(post)
59
+ # end
60
+ # end
61
+ #
62
+ #
63
+ # == Sorting
64
+ #
65
+ # When a column is generated from an Active Record attribute, the table is
66
+ # sortable by default. If you are creating a custom column, you may need to give
67
+ # Active Admin a hint for how to sort the table.
68
+ #
69
+ # If a column is defined using a block, you must pass the key to turn on sorting. The key
70
+ # is the attribute which gets used to sort objects using Active Record.
71
+ #
72
+ # By default, this is the column on the resource's table that the attribute corresponds to.
73
+ # Otherwise, any attribute that the resource collection responds to can be used.
74
+ #
75
+ # index do
76
+ # column "Title", :sortable => :title do |post|
77
+ # link_to post.title, admin_post_path(post)
78
+ # end
79
+ # end
80
+ #
81
+ # You can also sort using an attribute on another table by passing the table name
82
+ # and the attribute separated by a dot:
83
+ #
84
+ # index do
85
+ # column :title, :sortable => 'categories.name'
86
+ # end
87
+ #
88
+ # You can turn off sorting on any column by passing false:
89
+ #
90
+ # index do
91
+ # column :title, :sortable => false
92
+ # end
93
+ #
94
+ # == Showing and Hiding Columns
95
+ #
96
+ # The entire index block is rendered within the context of the view, so you can
97
+ # easily do things that show or hide columns based on the current context.
98
+ #
99
+ # For example, if you were using CanCan:
100
+ #
101
+ # index do
102
+ # column :title, :sortable => false
103
+ # if can? :manage, Post
104
+ # column :some_secret_data
105
+ # end
106
+ # end
107
+ #
108
+ class IndexAsTable < ActiveAdmin::Component
109
+
110
+ def build(page_presenter, collection)
111
+ table_options = {
112
+ :id => "index_table_#{active_admin_config.resource_name.plural}",
113
+ :sortable => true,
114
+ :class => "index_table index",
115
+ :i18n => active_admin_config.resource_class,
116
+ :paginator => page_presenter[:paginator] != false
117
+ }
118
+
119
+ table_for collection, table_options do |t|
120
+ table_config_block = page_presenter.block || default_table
121
+ instance_exec(t, &table_config_block)
122
+ end
123
+ end
124
+
125
+ def table_for(*args, &block)
126
+ insert_tag IndexTableFor, *args, &block
127
+ end
128
+
129
+ def default_table
130
+ proc do
131
+ id_column
132
+ resource_class.content_columns.each do |col|
133
+ column col.name.to_sym
134
+ end
135
+ default_actions
136
+ end
137
+ end
138
+
139
+ def self.index_name
140
+ "table"
141
+ end
142
+
143
+ #
144
+ # Extend the default ActiveAdmin::Views::TableFor with some
145
+ # methods for quickly displaying items on the index page
146
+ #
147
+ class IndexTableFor < ::ActiveAdmin::Views::TableFor
148
+
149
+ # Display a column for checkbox
150
+ def selectable_column
151
+ return unless active_admin_config.batch_actions.any?
152
+ column( resource_selection_toggle_cell, { :class => "selectable" } ) { |resource| resource_selection_cell( resource ) }
153
+ end
154
+
155
+ # Display a column for the id
156
+ def id_column
157
+ column(resource_class.human_attribute_name(resource_class.primary_key), :sortable => resource_class.primary_key) do |resource|
158
+ link_to resource.id, resource_path(resource), :class => "resource_id_link"
159
+ end
160
+ end
161
+
162
+ # Add links to perform actions.
163
+ #
164
+ # # Add default links.
165
+ # actions
166
+ #
167
+ # # Append some actions onto the end of the default actions.
168
+ # actions do |admin_user|
169
+ # link_to 'Grant Admin', grant_admin_admin_user_path(admin_user)
170
+ # end
171
+ #
172
+ # # Custom actions without the defaults.
173
+ # actions :defaults => false do |admin_user|
174
+ # link_to 'Grant Admin', grant_admin_admin_user_path(admin_user)
175
+ # end
176
+ def actions(options = {}, &block)
177
+ options = {
178
+ :name => "",
179
+ :defaults => true
180
+ }.merge(options)
181
+ column options[:name] do |resource|
182
+ text_node default_actions(resource) if options[:defaults]
183
+ text_node instance_exec(resource, &block) if block_given?
184
+ end
185
+ end
186
+
187
+ def default_actions(*args)
188
+ links = proc do |resource|
189
+ links = ''.html_safe
190
+ if controller.action_methods.include?('show') && authorized?(ActiveAdmin::Auth::READ, resource)
191
+ links << link_to(I18n.t('active_admin.view'), resource_path(resource), :class => "member_link view_link")
192
+ end
193
+ if controller.action_methods.include?('edit') && authorized?(ActiveAdmin::Auth::UPDATE, resource)
194
+ links << link_to(I18n.t('active_admin.edit'), edit_resource_path(resource), :class => "member_link edit_link")
195
+ end
196
+ if controller.action_methods.include?('destroy') && authorized?(ActiveAdmin::Auth::DESTROY, resource)
197
+ links << link_to(I18n.t('active_admin.delete'), resource_path(resource), :method => :delete, :data => {:confirm => I18n.t('active_admin.delete_confirmation')}, :class => "member_link delete_link")
198
+ end
199
+ links
200
+ end
201
+
202
+ options = args.extract_options!
203
+ if options.present? || args.empty?
204
+ actions options
205
+ else
206
+ links.call(args.first)
207
+ end
208
+ end
209
+
210
+ # Display A Status Tag Column
211
+ #
212
+ # index do |i|
213
+ # i.status_tag :state
214
+ # end
215
+ #
216
+ # index do |i|
217
+ # i.status_tag "State", :status_name
218
+ # end
219
+ #
220
+ # index do |i|
221
+ # i.status_tag do |post|
222
+ # post.published? ? 'published' : 'draft'
223
+ # end
224
+ # end
225
+ #
226
+ def status_tag(*args, &block)
227
+ col = Column.new(*args, &block)
228
+ data = col.data
229
+ col.data = proc do |resource|
230
+ status_tag call_method_or_proc_on(resource, data)
231
+ end
232
+ add_column col
233
+ end
234
+ end # TableBuilder
235
+
236
+ end # Table
237
+ end
238
+ end