aa-rails4 0.6.0

Sign up to get free protection for your applications and to get access to all the features.
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,3 @@
1
+ default: --format 'progress' --require features/support/env.rb --require features/step_definitions features --tags ~@requires-reloading --tags ~@wip
2
+ wip: --format 'progress' --require features/support/env.rb --require features/step_definitions features --tags @wip:3 --wip features
3
+ class-reloading: RAILS_ENV=cucumber_with_reloading --format 'progress' --require features/support/env.rb --require features/step_definitions features --tags @requires-reloading
@@ -0,0 +1,56 @@
1
+ # Install
2
+
3
+ ## Gemfile
4
+
5
+ First add the gem to your Gemfile:
6
+
7
+ gem 'activeadmin'
8
+
9
+ ## Initialize Active Admin
10
+
11
+ Use the command below to initialize Active Admin. It would also create a user model
12
+ named AdminUser.
13
+
14
+ $> rails generate active_admin:install
15
+
16
+ To create a user model with a different name, pass it as the last parameter:
17
+
18
+ $> rails generate active_admin:install User
19
+
20
+ You could also skip the creation of this user model. But note that in this case, you
21
+ need to make additional changes in `config/intializers/active_admin.rb`.
22
+
23
+ $> rails generate active_admin:install --skip-users
24
+
25
+ After the generator finishes, you need to migrate the database:
26
+
27
+ $> rake db:migrate
28
+
29
+ ## Register your models with Active Admin
30
+
31
+ This creates a file in `app/admin/` to hold any resource-specific configuration.
32
+
33
+ $> rails generate active_admin:resource Post
34
+
35
+ # Upgrade
36
+
37
+ To upgrade Active Admin, simply update the version number in your Gemfile, then
38
+ run the assets generator:
39
+
40
+ $> rails generate active_admin:assets
41
+
42
+ This command makes sure you have all the latest assets and your installation is
43
+ up to date. Each time you upgrade Active Admin, you should run this command.
44
+
45
+
46
+ # Gem compatibility
47
+
48
+ ## will_paginate compatibility
49
+
50
+ If you use `will_paginate` in your app, you need to configure an initializer for
51
+ Kaminari to avoid conflicts. Put this in `config/initializers/kaminari.rb`
52
+
53
+
54
+ Kaminari.configure do |config|
55
+ config.page_method_name = :per_page_kaminari
56
+ end
@@ -0,0 +1,129 @@
1
+ # General Configuration
2
+
3
+ Active Admin generates an initializer for you with sane defaults. The
4
+ initializer can be found at `config/initializers/active_admin.rb`. For the most
5
+ part, it is well documented. Here are a few common configurations.
6
+
7
+ ## Authentication
8
+
9
+ Active Admin requires two settings to authenticate and use the current user
10
+ within your application. Both are set in `config/initializers/active_admin.rb`.
11
+ By default they are setup for use with Devise and a model named AdminUser. If
12
+ you chose a different model name, you will need to update these settings.
13
+
14
+ Set the method that controllers should call to authenticate the current user
15
+ with:
16
+
17
+ # config/initializers/active_admin.rb
18
+ config.authentication_method = :authenticate_admin_user!
19
+
20
+ Set the method to call within the view to access the current admin user
21
+
22
+ # config/initializers/active_admin.rb
23
+ config.current_user_method = :current_admin_user
24
+
25
+ Both of these settings can be set to false to turn off authentication.
26
+
27
+ # Turn off authentication all together
28
+ config.authentication_method = false
29
+ config.current_user_method = false
30
+
31
+ ## Site Title Options
32
+
33
+ You can update the title or use an optional image in the initializer also. In addition you can set the link. By default
34
+ there is no link and the title is set to the name of your Rails.application class name.
35
+
36
+ # config/initializers/active_admin.rb
37
+ config.site_title = "My Admin Site"
38
+ config.site_title_link = "/" ## Rails url helpers do not work here
39
+ config.site_title_image = "site_log_image.png"
40
+
41
+ ## Internationalization (I18n)
42
+
43
+ To internationalize Active Admin or to change default strings, you can copy
44
+ `lib/active_admin/locales/en.yml` to your application `config/locales` directory and
45
+ change its content. You can contribute to the project with your translations too!
46
+
47
+ ## Namespaces
48
+
49
+ When registering resources in Active Admin, they are loaded into a namespace.
50
+ The default namespace is "admin".
51
+
52
+ # app/admin/posts.rb
53
+ ActiveAdmin.register Post do
54
+ # ...
55
+ end
56
+
57
+ The Post resource will be loaded into the "admin" namespace and will be
58
+ available at `/admin/posts`. Each namespace holds on to its own configuration
59
+ settings which inherit from the application's general configurations.
60
+
61
+ For example, if you have two namespaces: `:admin` and `super_admin` and want to
62
+ have different site title's for each namespace. You can use the
63
+ `config.namespace(name)` block within the initializer file to configure them
64
+ individually.
65
+
66
+ ActiveAdmin.setup do |config|
67
+ config.site_title = "My Default Site Title"
68
+
69
+ config.namespace :admin do |admin|
70
+ admin.site_title = "Admin Site"
71
+ end
72
+
73
+ config.namespace :super_admin do |super_admin|
74
+ super_admin.site_title = "Super Admin Site"
75
+ end
76
+ end
77
+
78
+ Each setting available in the Active Admin setup block is configurable on a per
79
+ namespace basis.
80
+
81
+ ## Load paths
82
+
83
+ By default Active Admin files go under '/app/admin'. You can change this
84
+ directory in the initializer file:
85
+
86
+ ActiveAdmin.setup do |config|
87
+ config.load_paths = [File.join(Rails.root, "app", "ui")]
88
+ end
89
+
90
+ ## Comments
91
+
92
+ By default Active Admin includes comments on resources. Sometimes, this is
93
+ undesired. To disable comments for the entire application:
94
+
95
+ ActiveAdmin.setup do |config|
96
+
97
+ config.allow_comments = false
98
+
99
+ end
100
+
101
+ If you would like to enable / disable comments for just a namespace, do the
102
+ following:
103
+
104
+ ActiveAdmin.setup do |config|
105
+
106
+ config.namespace :admin do |admin|
107
+ admin.allow_comments = false
108
+ end
109
+
110
+ end
111
+
112
+ You can also disable comments for a specific resource:
113
+
114
+ ActiveAdmin.register Post do
115
+ config.comments = false
116
+ end
117
+
118
+ ## Utility Navigation
119
+
120
+ The "utility navigation" shown at the top right when logged in by default shows the current user email address and a link to "Log Out". However, the utility navigation is just like any other menu in the system, so you can provide your own menu to be rendered in place if you like.
121
+
122
+ ActiveAdmin.setup do |config|
123
+ config.namespace :admin do |admin|
124
+ admin.build_menu :utility_navigation do |menu|
125
+ menu.add label: "ActiveAdmin.info", url: "http://www.activeadmin.info", html_options: { target: :blank }
126
+ admin.add_logout_button_to_menu menu # can also pass priority & html_options for link_to to use
127
+ end
128
+ end
129
+ end
@@ -0,0 +1,96 @@
1
+ # Custom Pages
2
+
3
+ When you need a standalone page on your site, Custom Pages will be there with a familiar syntax to resource registration.
4
+
5
+ ## Available Features
6
+ * main page content
7
+ * menu item
8
+ * sidebars
9
+ * action_items
10
+ * page_actions
11
+
12
+ ## Create a new Page
13
+
14
+ Creating a page is a simple as calling the `register_page` method:
15
+
16
+ ActiveAdmin.register_page "My Page" do
17
+ content do
18
+ para "Hello World"
19
+ end
20
+ end
21
+
22
+ In the above example, a new page will be created at `/admin/my_page` with the
23
+ title "My Page" and the content of "Hello World". Anything rendered within
24
+ `content` will be the main content on the page.
25
+
26
+ ## Page Title & I18n
27
+
28
+ Coming soon...
29
+
30
+ ## Customize the Menu
31
+
32
+ The menu item is available to customize just like
33
+ [any other resource](2-resource-customization.md#customize-the-menu) in Active Admin.
34
+
35
+ ## Add a Sidebar Section
36
+
37
+ You can add sidebar sections to your pages using the same DSL as other resources
38
+ in Active Admin:
39
+
40
+ ActiveAdmin.register_page "My Page" do
41
+
42
+ sidebar :help do
43
+ ul do
44
+ li "First Line of Help"
45
+ end
46
+ end
47
+
48
+ content do
49
+ para "Hello World"
50
+ end
51
+ end
52
+
53
+ This creates a sidebar section named "Help" containing an unordered list.
54
+ To view the full customization options, visit [Sidebars](7-sidebars.md).
55
+
56
+ ## Add an Action Item
57
+
58
+ Just like other resources, you can add Action Item's to pages:
59
+
60
+ ActiveAdmin.register_page "My Page" do
61
+
62
+ action_item do
63
+ link_to "View Site", "/"
64
+ end
65
+
66
+ content do
67
+ para "Hello World"
68
+ end
69
+ end
70
+
71
+ This adds an action item that links to the root URL of the application.
72
+
73
+ ## Add a Page Action
74
+
75
+ `page_action` allows you to define controller actions specific to this page,
76
+ and is the functional equivalent of `collection_action`.
77
+
78
+ ActiveAdmin.register_page "My Page" do
79
+
80
+ page_action :ex, :method => :post do
81
+ # do stuff here
82
+ redirect_to admin_my_page_path, :notice => "You did stuff!"
83
+ end
84
+
85
+ action_item do
86
+ link_to "Do Stuff", admin_my_page_ex_path, :method => :post
87
+ end
88
+
89
+ content do
90
+ para "Hello World"
91
+ end
92
+ end
93
+
94
+ This defines the route `/admin/my_page/ex` which can handle HTTP POST requests.
95
+
96
+ Clicking on the `action_item` will reload page with the message "You did stuff!"
@@ -0,0 +1,66 @@
1
+ # Decorators
2
+
3
+ Active Admin supports the use of decorators for resources. Resources will be
4
+ be decorated for the index and show blocks. The
5
+ [draper](https://github.com/drapergem/draper) gem is recommended but not required
6
+ (more on requirements below). Note, that Active Admin works out of the box with
7
+ Draper `>= 1.0.0`.
8
+
9
+ ## Configuration
10
+
11
+ ActiveAdmin.register Post do
12
+ decorate_with PostDecorator
13
+ end
14
+
15
+ ## Example Usage
16
+
17
+ This example uses [draper](https://github.com/drapergem/draper).
18
+
19
+ # Gemfile
20
+ gem 'draper', '>= 1.0.0'
21
+
22
+ Assuming a post and a post decorator
23
+
24
+ class Post < ActiveRecord::Base; end
25
+
26
+ class PostDecorator < ApplicationDecorator
27
+ decorates :post
28
+
29
+ def image
30
+ h.image_tag model.image_url
31
+ end
32
+ end
33
+
34
+ Then the following is possible
35
+
36
+ ActiveAdmin.register Post do
37
+ decorate_with PostDecorator
38
+
39
+ index do
40
+ column(:title)
41
+ column(:image)
42
+ end
43
+
44
+ show do
45
+ attributes_table do
46
+ row(:title)
47
+ row(:image)
48
+ end
49
+ end
50
+ end
51
+
52
+ ## Forms
53
+
54
+ Note that the resource proveded to form_for also gets decorated.
55
+
56
+ In most cases this will work as expected. However, it is possible to disable
57
+ automatic decoration in the form with the `decorate` option:
58
+
59
+ ActiveAdmin.register Post do
60
+ decorate_with PostDecorator
61
+
62
+ form decorate: false do
63
+ # ...
64
+ end
65
+ end
66
+
@@ -0,0 +1,144 @@
1
+ # Arbre Components
2
+
3
+ Arbre allows the creation of shareable and extendable HTML components and is
4
+ used throughout Active Admin to create view components.
5
+
6
+ ## Text Node
7
+
8
+ Sometimes it makes sense to insert something into a registered resource like a
9
+ non-breaking space or some text. The text_node method can be used to insert
10
+ these elements into the page inside of other Arbre components or resource
11
+ controller functions.
12
+
13
+ ActiveAdmin.register Post do
14
+ show do
15
+ panel "Post Details" do
16
+ row("") { post.id }
17
+ row("Tags") do
18
+ text_node link_to "#{tag}",
19
+ admin_post_path( q: { tagged_with_contains: tag } )
20
+ text_node "&nbsp".html_safe
21
+ end
22
+ end
23
+ end
24
+ end
25
+
26
+
27
+ ## Panels
28
+
29
+ A panel is a component that takes up all available horizontal space and takes a
30
+ title and a hash of attributes as arguments. If a sidebar is present, a panel
31
+ will take up the remaining space.
32
+
33
+ The following code will create two stacked panels:
34
+
35
+ show do
36
+
37
+ panel "Post Details" do
38
+ render partial: "show_details", locals: {post: post}
39
+ end
40
+
41
+ panel "Post Tags" do
42
+ render partial: "show_enhancements", locals: {post: post}
43
+ end
44
+
45
+ end
46
+
47
+ ## Columns
48
+
49
+ The Columns component allows you draw content into scalable columns. All you
50
+ need to do is define the number of columns and the component will take care of
51
+ the rest.
52
+
53
+ #### Simple Columns
54
+
55
+ To create simple columnns, use the #columns method. Within the block, call
56
+ the #column method to create a new column.
57
+
58
+ columns do
59
+
60
+ column do
61
+ span "Column #1"
62
+ end
63
+
64
+ column do
65
+ span "Column #2"
66
+ end
67
+
68
+ end
69
+
70
+ ### Spannig Multiple Columns
71
+
72
+ To create columns that have multiple spans, pass the :span option to the column
73
+ method.
74
+
75
+ columns do
76
+ column :span => 2 do
77
+ span "Column # 1"
78
+ end
79
+ column do
80
+ span "Column # 2"
81
+ end
82
+ end
83
+
84
+ By default, each column spans 1 column. The above layout would have 2 columns,
85
+ the first being twice as large as the second.
86
+
87
+ ### Custom Column Widths
88
+
89
+ Active Admin uses a fluid width layout, causing column width to be defined
90
+ using percentages. Due to using this style of layout, columns can shrink or
91
+ expand past points that may not be desirable. To overcome this issue,
92
+ columns provide :max_width and :min_width options.
93
+
94
+ columns do
95
+ column :max_width => "200px", :min_width => "100px" do
96
+ span "Column # 1"
97
+ end
98
+ column do
99
+ span "Column # 2"
100
+ end
101
+ end
102
+
103
+ In the above example, the first column will not grow larger than 200px and will
104
+ not shrink less than 100px.
105
+
106
+ ## Table For
107
+
108
+ Table For provides the ability to create tables like those present
109
+ in #index_as_table. table_for takes a collection and a hash of options and then
110
+ uses #column to build the fields to show with the table.
111
+
112
+ table_for order.payments do
113
+ column "Payment Type" { |payment| payment.payment_type.titleize }
114
+ column "Received On", :created_at
115
+ column "Payment Details & Notes", :payment_details
116
+ column "Amount" { |payment| payment.amount_in_dollars }
117
+ end
118
+
119
+ the #column method can take a title as its first argument and data
120
+ (:your_method) as its second (or first if no title provided). Column also
121
+ takes a block.
122
+
123
+ ## Status tag
124
+
125
+ Status tags provide convenient syntactic sugar for styling items that have
126
+ status. A common example of where the status tag could be useful is for orders
127
+ that are complete or in progress. status_tag takes a status, like
128
+ "In Progress", a type, which defaults to nil, and a hash of options. The
129
+ status_tag will generate html markup that Active Admin css uses in styling.
130
+
131
+ status_tag('In Progress')
132
+ # => <span class='status_tag in_progress'>In Progress</span>
133
+
134
+ status_tag('active', :ok)
135
+ # => <span class='status_tag active ok'>Active</span>
136
+
137
+ status_tag (
138
+ 'active',
139
+ :ok,
140
+ :class => 'important',
141
+ :id => 'status_123',
142
+ :label => 'on'
143
+ )
144
+ # => <span class='status_tag active ok important' id='status_123'>on</span>