activeadmin 0.6.0 → 0.6.1

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 (322) hide show
  1. data/.gitignore +5 -1
  2. data/.travis.yml +1 -1
  3. data/.yardopts +2 -3
  4. data/CHANGELOG.md +180 -36
  5. data/CONTRIBUTING.md +12 -2
  6. data/Gemfile +9 -3
  7. data/README.rdoc +38 -65
  8. data/Rakefile +1 -3
  9. data/activeadmin.gemspec +10 -11
  10. data/app/assets/images/active_admin/index_list_icons/block_icon.svg +1 -1
  11. data/app/assets/images/active_admin/index_list_icons/blog_icon.svg +1 -1
  12. data/app/assets/images/active_admin/index_list_icons/grid_icon.svg +1 -1
  13. data/app/assets/images/active_admin/index_list_icons/table_icon.svg +1 -1
  14. data/app/assets/javascripts/active_admin/components/jquery.aa.checkbox-toggler.js.coffee +2 -2
  15. data/app/assets/javascripts/active_admin/components/jquery.aa.dropdown-menu.js.coffee +2 -2
  16. data/app/assets/javascripts/active_admin/components/jquery.aa.popover.js.coffee +2 -2
  17. data/app/assets/javascripts/active_admin/components/jquery.aa.table-checkbox-toggler.js.coffee +2 -2
  18. data/app/assets/javascripts/active_admin/lib/namespace.js.coffee +2 -1
  19. data/app/assets/javascripts/active_admin/pages/application.js.coffee +6 -1
  20. data/app/assets/stylesheets/active_admin/_base.css.scss +29 -34
  21. data/app/assets/stylesheets/active_admin/_forms.css.scss +65 -62
  22. data/app/assets/stylesheets/active_admin/_header.css.scss +57 -45
  23. data/app/assets/stylesheets/active_admin/_typography.css.scss +9 -9
  24. data/app/assets/stylesheets/active_admin/components/_batch_actions.css.scss +1 -1
  25. data/app/assets/stylesheets/active_admin/components/_blank_slates.scss +5 -5
  26. data/app/assets/stylesheets/active_admin/components/_breadcrumbs.scss +2 -2
  27. data/app/assets/stylesheets/active_admin/components/_comments.css.scss +1 -1
  28. data/app/assets/stylesheets/active_admin/components/_date_picker.css.scss +20 -20
  29. data/app/assets/stylesheets/active_admin/components/_dropdown_menu.scss +16 -16
  30. data/app/assets/stylesheets/active_admin/components/_flash_messages.css.scss +25 -23
  31. data/app/assets/stylesheets/active_admin/components/_grid.scss +2 -2
  32. data/app/assets/stylesheets/active_admin/components/_index_list.scss +1 -1
  33. data/app/assets/stylesheets/active_admin/components/_pagination.scss +10 -10
  34. data/app/assets/stylesheets/active_admin/components/_panels.scss +1 -1
  35. data/app/assets/stylesheets/active_admin/components/_popovers.css.scss +27 -27
  36. data/app/assets/stylesheets/active_admin/components/_scopes.scss +1 -1
  37. data/app/assets/stylesheets/active_admin/components/_table_tools.css.scss +10 -10
  38. data/app/assets/stylesheets/active_admin/components/_tables.css.scss +9 -9
  39. data/app/assets/stylesheets/active_admin/mixins/_buttons.css.scss +3 -3
  40. data/app/assets/stylesheets/active_admin/mixins/_gradients.css.scss +4 -4
  41. data/app/assets/stylesheets/active_admin/mixins/_icons.css.scss +4 -7
  42. data/app/assets/stylesheets/active_admin/mixins/_reset.css.scss +5 -5
  43. data/app/assets/stylesheets/active_admin/mixins/_rounded.css.scss +3 -3
  44. data/app/assets/stylesheets/active_admin/mixins/_sections.css.scss +6 -6
  45. data/app/assets/stylesheets/active_admin/mixins/_shadows.css.scss +8 -8
  46. data/app/assets/stylesheets/active_admin/mixins/_typography.scss +1 -1
  47. data/app/assets/stylesheets/active_admin/mixins/_utilities.scss +1 -1
  48. data/app/assets/stylesheets/active_admin/mixins/_variables.css.scss +9 -1
  49. data/app/assets/stylesheets/active_admin/pages/_logged_out.scss +1 -1
  50. data/app/assets/stylesheets/active_admin/print.css.scss +2 -8
  51. data/app/assets/stylesheets/active_admin/structure/_footer.scss +5 -5
  52. data/app/assets/stylesheets/active_admin/structure/_main_structure.scss +13 -13
  53. data/app/assets/stylesheets/active_admin/structure/_title_bar.scss +14 -14
  54. data/app/views/active_admin/devise/passwords/edit.html.erb +1 -1
  55. data/app/views/active_admin/devise/sessions/new.html.erb +1 -1
  56. data/app/views/active_admin/devise/shared/_links.erb +8 -1
  57. data/app/views/active_admin/resource/index.csv.erb +3 -3
  58. data/app/views/layouts/active_admin_logged_out.html.erb +5 -3
  59. data/config/locales/bg.yml +101 -0
  60. data/{lib/active_admin → config}/locales/ca.yml +24 -7
  61. data/{lib/active_admin → config}/locales/cs.yml +34 -12
  62. data/{lib/active_admin → config}/locales/da.yml +29 -7
  63. data/config/locales/de-CH.yml +117 -0
  64. data/{lib/active_admin → config}/locales/de.yml +19 -9
  65. data/config/locales/en-GB.yml +90 -0
  66. data/{lib/active_admin → config}/locales/en.yml +16 -6
  67. data/config/locales/es.yml +106 -0
  68. data/{lib/active_admin/locales/es.yml → config/locales/es_MX.yml} +14 -8
  69. data/{lib/active_admin → config}/locales/fr.yml +14 -6
  70. data/{lib/active_admin → config}/locales/he.yml +16 -6
  71. data/{lib/active_admin → config}/locales/hr.yml +14 -6
  72. data/{lib/active_admin → config}/locales/hu.yml +31 -6
  73. data/{lib/active_admin → config}/locales/it.yml +14 -6
  74. data/{lib/active_admin → config}/locales/ja.yml +32 -7
  75. data/{lib/active_admin → config}/locales/ko.yml +14 -6
  76. data/{lib/active_admin → config}/locales/lt.yml +15 -6
  77. data/{lib/active_admin → config}/locales/lv.yml +14 -6
  78. data/{lib/active_admin → config}/locales/nl.yml +14 -6
  79. data/{lib/active_admin → config}/locales/no-NB.yml +14 -6
  80. data/{lib/active_admin → config}/locales/pl.yml +14 -6
  81. data/{lib/active_admin → config}/locales/pt-BR.yml +14 -6
  82. data/{lib/active_admin → config}/locales/pt-PT.yml +14 -6
  83. data/{lib/active_admin → config}/locales/ro.yml +32 -7
  84. data/{lib/active_admin → config}/locales/ru.yml +30 -8
  85. data/{lib/active_admin → config}/locales/sv-SE.yml +14 -6
  86. data/{lib/active_admin → config}/locales/tr.yml +15 -6
  87. data/config/locales/uk.yml +100 -0
  88. data/{lib/active_admin → config}/locales/vi.yml +15 -6
  89. data/{lib/active_admin → config}/locales/zh-CN.yml +15 -6
  90. data/{lib/active_admin → config}/locales/zh-TW.yml +15 -6
  91. data/docs/0-installation.md +22 -18
  92. data/docs/1-general-configuration.md +1 -1
  93. data/docs/10-custom-pages.md +3 -3
  94. data/docs/11-decorators.md +18 -2
  95. data/docs/12-arbre-components.md +53 -54
  96. data/docs/13-authorization-adapter.md +31 -10
  97. data/docs/2-resource-customization.md +16 -1
  98. data/docs/3-index-pages.md +13 -1
  99. data/docs/3-index-pages/create-an-index.md +4 -4
  100. data/docs/3-index-pages/index-as-block.md +1 -1
  101. data/docs/3-index-pages/index-as-blog.md +1 -1
  102. data/docs/3-index-pages/index-as-grid.md +1 -1
  103. data/docs/4-csv-format.md +4 -4
  104. data/docs/5-forms.md +46 -3
  105. data/docs/{6-show-screens.md → 6-show-pages.md} +3 -3
  106. data/docs/8-custom-actions.md +3 -3
  107. data/docs/9-batch-actions.md +9 -1
  108. data/features/action_item.feature +6 -6
  109. data/features/authorization_cancan.feature +1 -1
  110. data/features/belongs_to.feature +3 -3
  111. data/features/breadcrumb.feature +2 -2
  112. data/features/comments/commenting.feature +7 -5
  113. data/features/dashboard.feature +0 -51
  114. data/features/favicon.feature +20 -0
  115. data/features/global_navigation.feature +0 -1
  116. data/features/index/batch_actions.feature +12 -11
  117. data/features/index/filters.feature +6 -6
  118. data/features/index/format_as_csv.feature +4 -5
  119. data/features/index/index_as_blog.feature +20 -1
  120. data/features/index/index_as_table.feature +1 -1
  121. data/features/index/index_blank_slate.feature +3 -3
  122. data/features/index/index_parameters.feature +4 -10
  123. data/features/index/index_scope_to.feature +24 -0
  124. data/features/index/index_scopes.feature +17 -5
  125. data/features/index/pagination.feature +15 -0
  126. data/features/registering_pages.feature +1 -1
  127. data/features/registering_resources.feature +2 -2
  128. data/features/show/default_content.feature +3 -3
  129. data/features/sidebar_sections.feature +3 -3
  130. data/features/specifying_actions.feature +1 -1
  131. data/features/step_definitions/additional_web_steps.rb +3 -16
  132. data/features/step_definitions/asset_steps.rb +5 -1
  133. data/features/step_definitions/attribute_steps.rb +4 -4
  134. data/features/step_definitions/batch_action_steps.rb +25 -74
  135. data/features/step_definitions/breadcrumb_steps.rb +1 -3
  136. data/features/step_definitions/comment_steps.rb +0 -1
  137. data/features/step_definitions/configuration_steps.rb +53 -69
  138. data/features/step_definitions/dashboard_steps.rb +2 -2
  139. data/features/step_definitions/factory_steps.rb +17 -33
  140. data/features/step_definitions/filter_steps.rb +2 -2
  141. data/features/step_definitions/format_steps.rb +10 -14
  142. data/features/step_definitions/index_scope_steps.rb +9 -25
  143. data/features/step_definitions/index_views_steps.rb +1 -1
  144. data/features/step_definitions/sidebar_steps.rb +2 -1
  145. data/features/step_definitions/site_title_steps.rb +1 -1
  146. data/features/step_definitions/table_steps.rb +6 -1
  147. data/features/step_definitions/user_steps.rb +23 -38
  148. data/features/step_definitions/web_steps.rb +18 -147
  149. data/features/support/env.rb +13 -34
  150. data/features/support/paths.rb +2 -0
  151. data/features/users/logging_in.feature +2 -2
  152. data/features/users/logging_out.feature +0 -12
  153. data/features/users/resetting_password.feature +1 -1
  154. data/lib/active_admin.rb +4 -17
  155. data/lib/active_admin/abstract_view_factory.rb +1 -1
  156. data/lib/active_admin/application.rb +19 -28
  157. data/lib/active_admin/asset_registration.rb +7 -25
  158. data/lib/active_admin/authorization_adapter.rb +9 -5
  159. data/lib/active_admin/base_controller.rb +2 -2
  160. data/lib/active_admin/base_controller/authorization.rb +25 -27
  161. data/lib/active_admin/batch_actions/resource_extension.rb +3 -3
  162. data/lib/active_admin/batch_actions/views/batch_action_selector.rb +1 -1
  163. data/lib/active_admin/batch_actions/views/selection_cells.rb +1 -1
  164. data/lib/active_admin/callbacks.rb +1 -1
  165. data/lib/active_admin/cancan_adapter.rb +2 -2
  166. data/lib/active_admin/comments.rb +32 -38
  167. data/lib/active_admin/comments/comment.rb +6 -8
  168. data/lib/active_admin/comments/views.rb +0 -1
  169. data/lib/active_admin/comments/views/active_admin_comments.rb +27 -38
  170. data/lib/active_admin/csv_builder.rb +4 -6
  171. data/lib/active_admin/dependency_checker.rb +4 -0
  172. data/lib/active_admin/deprecation.rb +3 -3
  173. data/lib/active_admin/dsl.rb +5 -5
  174. data/lib/active_admin/engine.rb +1 -1
  175. data/lib/active_admin/filters.rb +2 -1
  176. data/lib/active_admin/filters/forms.rb +36 -43
  177. data/lib/active_admin/filters/formtastic_addons.rb +45 -0
  178. data/lib/active_admin/filters/resource_extension.rb +9 -1
  179. data/lib/active_admin/form_builder.rb +30 -19
  180. data/lib/active_admin/helpers/optional_display.rb +11 -13
  181. data/lib/active_admin/helpers/settings.rb +50 -8
  182. data/lib/active_admin/inputs/filter_base.rb +5 -18
  183. data/lib/active_admin/inputs/filter_base/search_method_select.rb +73 -0
  184. data/lib/active_admin/inputs/filter_boolean_input.rb +6 -14
  185. data/lib/active_admin/inputs/filter_check_boxes_input.rb +1 -1
  186. data/lib/active_admin/inputs/filter_numeric_input.rb +2 -47
  187. data/lib/active_admin/inputs/filter_select_input.rb +32 -10
  188. data/lib/active_admin/inputs/filter_string_input.rb +12 -14
  189. data/lib/active_admin/namespace.rb +8 -40
  190. data/lib/active_admin/page.rb +2 -2
  191. data/lib/active_admin/page_dsl.rb +1 -1
  192. data/lib/active_admin/reloader.rb +3 -3
  193. data/lib/active_admin/resource.rb +16 -23
  194. data/lib/active_admin/resource/belongs_to.rb +8 -5
  195. data/lib/active_admin/resource/menu.rb +10 -23
  196. data/lib/active_admin/resource/naming.rb +3 -3
  197. data/lib/active_admin/resource/page_presenters.rb +2 -2
  198. data/lib/active_admin/resource/routes.rb +74 -21
  199. data/lib/active_admin/resource/scope_to.rb +74 -0
  200. data/lib/active_admin/resource/scopes.rb +8 -4
  201. data/lib/active_admin/resource_collection.rb +20 -66
  202. data/lib/active_admin/resource_controller.rb +12 -16
  203. data/lib/active_admin/resource_controller/data_access.rb +19 -22
  204. data/lib/active_admin/resource_controller/resource_class_methods.rb +2 -2
  205. data/lib/active_admin/resource_controller/scoping.rb +4 -9
  206. data/lib/active_admin/resource_dsl.rb +5 -32
  207. data/lib/active_admin/router.rb +34 -47
  208. data/lib/active_admin/scope.rb +5 -3
  209. data/lib/active_admin/sidebar_section.rb +1 -1
  210. data/lib/active_admin/version.rb +1 -1
  211. data/lib/active_admin/view_factory.rb +1 -1
  212. data/lib/active_admin/view_helpers/auto_link_helper.rb +1 -1
  213. data/lib/active_admin/view_helpers/breadcrumb_helper.rb +8 -8
  214. data/lib/active_admin/view_helpers/display_helper.rb +15 -6
  215. data/lib/active_admin/view_helpers/download_format_links_helper.rb +2 -2
  216. data/lib/active_admin/view_helpers/form_helper.rb +6 -1
  217. data/lib/active_admin/view_helpers/icon_helper.rb +1 -1
  218. data/lib/active_admin/view_helpers/method_or_proc_helper.rb +5 -5
  219. data/lib/active_admin/view_helpers/title_helper.rb +1 -1
  220. data/lib/active_admin/views/components/action_list_popover.rb +6 -6
  221. data/lib/active_admin/views/components/attributes_table.rb +9 -12
  222. data/lib/active_admin/views/components/blank_slate.rb +4 -4
  223. data/lib/active_admin/views/components/columns.rb +1 -1
  224. data/lib/active_admin/views/components/index_list.rb +1 -1
  225. data/lib/active_admin/views/components/paginated_collection.rb +20 -12
  226. data/lib/active_admin/views/components/panel.rb +1 -1
  227. data/lib/active_admin/views/components/scopes.rb +2 -1
  228. data/lib/active_admin/views/components/sidebar_section.rb +1 -1
  229. data/lib/active_admin/views/components/status_tag.rb +1 -1
  230. data/lib/active_admin/views/header.rb +2 -2
  231. data/lib/active_admin/views/index_as_blog.rb +16 -3
  232. data/lib/active_admin/views/index_as_table.rb +2 -2
  233. data/lib/active_admin/views/pages/base.rb +8 -3
  234. data/lib/active_admin/views/pages/form.rb +2 -2
  235. data/lib/active_admin/views/pages/index.rb +19 -17
  236. data/lib/generators/active_admin/assets/templates/3.0/active_admin.js +1 -1
  237. data/lib/generators/active_admin/assets/templates/3.1/active_admin.css.scss +1 -13
  238. data/lib/generators/active_admin/devise/devise_generator.rb +22 -1
  239. data/lib/generators/active_admin/install/install_generator.rb +1 -5
  240. data/lib/generators/active_admin/install/templates/active_admin.rb.erb +40 -19
  241. data/lib/generators/active_admin/install/templates/admin_user.rb.erb +18 -18
  242. data/lib/generators/active_admin/install/templates/migrations/create_active_admin_comments.rb +19 -0
  243. data/lib/generators/active_admin/resource/resource_generator.rb +1 -1
  244. data/lib/generators/active_admin/resource/templates/admin.rb +1 -1
  245. data/script/use_rails +1 -1
  246. data/spec/integration/memory_spec.rb +3 -2
  247. data/spec/javascripts/coffeescripts/jquery.aa.checkbox-toggler-spec.js.coffee +4 -4
  248. data/spec/javascripts/coffeescripts/jquery.aa.popover-spec.js.coffee +1 -1
  249. data/spec/javascripts/coffeescripts/jquery.aa.table-checkbox-toggler-spec.js.coffee +2 -2
  250. data/spec/javascripts/compiled/jquery.aa.checkbox-toggler-spec.js +4 -4
  251. data/spec/javascripts/compiled/jquery.aa.popover-spec.js +1 -1
  252. data/spec/javascripts/compiled/jquery.aa.table-checkbox-toggler-spec.js +2 -2
  253. data/spec/spec_helper.rb +16 -6
  254. data/spec/spec_helper_without_rails.rb +2 -0
  255. data/spec/support/deferred_garbage_collection.rb +19 -0
  256. data/spec/support/jslint.yml +1 -1
  257. data/spec/support/rails_template.rb +29 -27
  258. data/spec/support/templates/admin/stores.rb +5 -1
  259. data/spec/unit/abstract_view_factory_spec.rb +1 -1
  260. data/spec/unit/action_builder_spec.rb +7 -7
  261. data/spec/unit/active_admin_spec.rb +0 -14
  262. data/spec/unit/application_spec.rb +16 -17
  263. data/spec/unit/asset_registration_spec.rb +21 -8
  264. data/spec/unit/authorization/authorization_adapter_spec.rb +3 -3
  265. data/spec/unit/authorization/controller_authorization_spec.rb +16 -24
  266. data/spec/unit/batch_actions/resource_spec.rb +11 -11
  267. data/spec/unit/belongs_to_spec.rb +1 -1
  268. data/spec/unit/cancan_adapter_spec.rb +11 -3
  269. data/spec/unit/comments_spec.rb +10 -28
  270. data/spec/unit/controller_filters_spec.rb +22 -24
  271. data/spec/unit/csv_builder_spec.rb +3 -3
  272. data/spec/unit/devise_spec.rb +10 -10
  273. data/spec/unit/filters/filter_form_builder_spec.rb +140 -45
  274. data/spec/unit/filters/resource_spec.rb +20 -19
  275. data/spec/unit/form_builder_spec.rb +122 -70
  276. data/spec/unit/menu_item_spec.rb +3 -3
  277. data/spec/unit/namespace/authorization_spec.rb +4 -8
  278. data/spec/unit/namespace/register_page_spec.rb +1 -1
  279. data/spec/unit/namespace/register_resource_spec.rb +12 -7
  280. data/spec/unit/namespace_spec.rb +4 -10
  281. data/spec/unit/page_spec.rb +1 -1
  282. data/spec/unit/resource/menu_spec.rb +1 -1
  283. data/spec/unit/resource/naming_spec.rb +9 -0
  284. data/spec/unit/resource/pagination_spec.rb +2 -2
  285. data/spec/unit/resource/routes_spec.rb +73 -0
  286. data/spec/unit/resource/scopes_spec.rb +1 -1
  287. data/spec/unit/resource_collection_spec.rb +95 -43
  288. data/spec/unit/resource_registration_spec.rb +3 -12
  289. data/spec/unit/resource_spec.rb +41 -48
  290. data/spec/unit/routing_spec.rb +10 -64
  291. data/spec/unit/scope_spec.rb +19 -0
  292. data/spec/unit/settings_spec.rb +88 -0
  293. data/spec/unit/view_factory_spec.rb +1 -0
  294. data/spec/unit/{breadcrumbs_spec.rb → view_helpers/breadcrumbs_spec.rb} +16 -7
  295. data/spec/unit/view_helpers/display_name_spec.rb +41 -0
  296. data/spec/unit/view_helpers/form_helper_spec.rb +36 -2
  297. data/spec/unit/views/components/attributes_table_spec.rb +17 -9
  298. data/spec/unit/views/components/batch_action_popover_spec.rb +4 -4
  299. data/spec/unit/views/components/index_list_spec.rb +2 -2
  300. data/spec/unit/views/components/paginated_collection_spec.rb +42 -0
  301. data/spec/unit/views/components/panel_spec.rb +8 -0
  302. data/spec/unit/views/components/site_title_spec.rb +2 -2
  303. data/spec/unit/views/components/table_for_spec.rb +4 -4
  304. data/spec/unit/views/pages/form_spec.rb +35 -0
  305. data/spec/unit/views/pages/layout_spec.rb +1 -1
  306. data/spec/unit/views/tabbed_navigation_spec.rb +10 -10
  307. data/tasks/parallel_tests.rake +1 -1
  308. data/tasks/test.rake +4 -1
  309. metadata +117 -106
  310. data/app/assets/stylesheets/active_admin/pages/_dashboard.scss +0 -5
  311. data/lib/active_admin/comments/views/active_admin_comment.rb +0 -0
  312. data/lib/active_admin/dashboards.rb +0 -68
  313. data/lib/active_admin/dashboards/dashboard_controller.rb +0 -50
  314. data/lib/active_admin/dashboards/section.rb +0 -34
  315. data/lib/active_admin/locales/bg.yml +0 -77
  316. data/lib/generators/active_admin/install/templates/migrations/1_create_admin_notes.rb +0 -17
  317. data/lib/generators/active_admin/install/templates/migrations/2_move_admin_notes_to_comments.rb +0 -26
  318. data/spec/unit/base_controller_spec.rb +0 -6
  319. data/spec/unit/dashboard_controller_spec.rb +0 -76
  320. data/spec/unit/dashboard_section_spec.rb +0 -56
  321. data/spec/unit/dashboards_spec.rb +0 -59
  322. data/spec/unit/display_name_spec.rb +0 -29
@@ -1,5 +0,0 @@
1
- table.dashboard {
2
- width: 100%;
3
- td { border-bottom: none; }
4
- .dashboard_section { @include section; }
5
- }
@@ -1,68 +0,0 @@
1
- require 'active_admin/dashboards/dashboard_controller'
2
- require 'active_admin/dashboards/section'
3
-
4
- module ActiveAdmin
5
- module Dashboards
6
-
7
- @@sections = {}
8
- mattr_accessor :sections
9
-
10
- class << self
11
-
12
- # Eval an entire block in the context of this module to build
13
- # dashboards quicker.
14
- #
15
- # Example:
16
- #
17
- # ActiveAdmin::Dashboards.build do
18
- # section "Recent Post" do
19
- # # return a list of posts
20
- # end
21
- # end
22
- #
23
- def build(&block)
24
- warn "DEPRECATION WARNING: ActiveAdmin::Dashboard is deprecated and will be removed in the next version"
25
- @built = true
26
- module_eval(&block)
27
- end
28
-
29
- def built?
30
- !!@built
31
- end
32
-
33
- # Add a new dashboard section to a namespace. If no namespace is given
34
- # it will be added to the default namespace.
35
- #
36
- # Options include:
37
- # :namespace => only display for specified namespace.
38
- # :if => specify a method or block to determine whether the section is rendered at run time.
39
- def add_section(name, options = {}, &block)
40
- namespace = options.delete(:namespace) || ActiveAdmin.application.default_namespace || :root
41
- self.sections[namespace] ||= []
42
- self.sections[namespace] << Section.new(namespace, name, options, &block)
43
- self.sections[namespace].sort!
44
- end
45
- alias_method :section, :add_section
46
-
47
- def sections_for_namespace(namespace)
48
- @@sections[namespace] || []
49
- end
50
-
51
- def clear_all_sections!
52
- @@sections = {}
53
- end
54
-
55
- # Called from MenuBuilder to register dashboard to menu.
56
- def add_to_menu(namespace, menu)
57
- return unless ActiveAdmin::Dashboards.built?
58
-
59
- dashboard_path = namespace.root? ? :dashboard_path : "#{namespace.name}_dashboard_path".to_sym
60
-
61
- menu.add :id => "dashboard",
62
- :label => proc{ I18n.t("active_admin.dashboard") },
63
- :url => dashboard_path,
64
- :priority => 1
65
- end
66
- end
67
- end
68
- end
@@ -1,50 +0,0 @@
1
- module ActiveAdmin
2
- module Dashboards
3
- module DashboardController
4
- def index
5
- @dashboard_sections = find_sections
6
- render 'active_admin/dashboard/index'
7
- end
8
-
9
- private
10
-
11
- def set_current_tab
12
- @current_tab = I18n.t("active_admin.dashboard")
13
- end
14
-
15
- def find_sections
16
- sections = ActiveAdmin::Dashboards.sections_for_namespace(namespace)
17
- sections.select do |section|
18
- if section.options.has_key?(:if)
19
- symbol_or_proc = section.options[:if]
20
- case symbol_or_proc
21
- when Symbol, String then self.send(symbol_or_proc)
22
- when Proc then instance_exec(&symbol_or_proc)
23
- else symbol_or_proc
24
- end
25
- else
26
- true
27
- end
28
- end
29
- end
30
-
31
- def namespace
32
- class_name = self.class.name
33
- if class_name.include?('::')
34
- self.class.name.split('::').first.underscore.to_sym
35
- else
36
- :root
37
- end
38
- end
39
-
40
- # Return the current menu for the view. This is a helper method
41
- def current_menu
42
- active_admin_namespace.fetch_menu(:default)
43
- end
44
-
45
- def active_admin_namespace
46
- ActiveAdmin.application.namespace(namespace)
47
- end
48
- end
49
- end
50
- end
@@ -1,34 +0,0 @@
1
- module ActiveAdmin
2
- module Dashboards
3
- class Section
4
-
5
- DEFAULT_PRIORITY = 10
6
-
7
- attr_accessor :name, :block
8
- attr_reader :namespace, :options
9
-
10
- def initialize(namespace, name, options = {}, &block)
11
- @namespace = namespace
12
- @name = name
13
- @options = options
14
- @block = block
15
- end
16
-
17
- def priority
18
- @options[:priority] || DEFAULT_PRIORITY
19
- end
20
-
21
- def icon
22
- @options[:icon]
23
- end
24
-
25
- # Sort by priority then by name
26
- def <=>(other)
27
- result = priority <=> other.priority
28
- result = name.to_s <=> other.name.to_s if result == 0
29
- result
30
- end
31
-
32
- end
33
- end
34
- end
@@ -1,77 +0,0 @@
1
- bg:
2
- active_admin:
3
- dashboard: Табло
4
- dashboard_welcome:
5
- welcome: "Добре дошли в Active Admin. Това е таблото по подразбиране."
6
- call_to_action: "За да добавите секции, проверете 'app/admin/dashboard.rb'"
7
- view: "Преглед"
8
- edit: "Редакция"
9
- delete: "Изтриване"
10
- delete_confirmation: "Сигурни ли сте, че искате да изтриете това?"
11
- new_model: "Създай %{model}"
12
- edit_model: "Редактирай %{model}"
13
- delete_model: "Изтрий %{model}"
14
- details: "%{model} Детайли"
15
- cancel: "Отказ"
16
- empty: "Празни"
17
- previous: "Назад"
18
- next: "Напред"
19
- download: "Свали:"
20
- has_many_new: "Добави нов %{model}"
21
- has_many_delete: "Изтрий"
22
- filter: "Филтър"
23
- clear_filters: "Изчисти филтрите"
24
- search_field: "Търси %{field}"
25
- equal_to: "Съответства на"
26
- greater_than: "По-голямо от"
27
- less_than: "По-малко от"
28
- main_content: "Моля, приложи %{model}#main_content за визуализация на съдържанието."
29
- logout: "Изход"
30
- powered_by: "Powered by %{active_admin} %{version}"
31
- sidebars:
32
- filters: "Филтри"
33
- pagination:
34
- empty: "%{model} не е открит"
35
- one: "Показване на <b>1</b> %{model}"
36
- one_page: "Показване на <b>всички %{n}</b> %{model}"
37
- multiple: "Показване на %{model} <b>%{from}&nbsp;-&nbsp;%{to}</b> от <b>%{total}</b> общо"
38
- any: "Всеки"
39
- blank_slate:
40
- content: "Няма %{resource_name} все още."
41
- link: "Създай връзка"
42
- batch_actions:
43
- button_label: "партиди Действия"
44
- delete_confirmation: "Сигурни ли сте че искате да изтриете тези %{plural_model}? Вие няма да можете да отмените това."
45
- succesfully_destroyed:
46
- one: "Успешно унищожени 1 %{model}"
47
- other: "Успешно унищожени %{count} %{plural_model}"
48
- selection_toggle_explanation: "(Toggle Избор)"
49
- link: "Създаване на една"
50
- action_label: "%{title} Избрани"
51
- labels:
52
- destroy: "Изтриване"
53
- comments:
54
- body: "тяло"
55
- author: "автор"
56
- title: "коментар"
57
- add: "Добавяне на коментар"
58
- resource: "Resource"
59
- no_comments_yet: "Все още няма коментари."
60
- title_content: "Коментари (%{count})"
61
- errors:
62
- empty_text: "Коментар не е спасен, текст е празна."
63
- devise:
64
- login:
65
- title: "Влез"
66
- remember_me: "Запомни ме"
67
- submit: "Влез"
68
- reset_password:
69
- title: "Забравена парола?"
70
- submit: "Възстановите паролата си"
71
- change_password:
72
- title: "Промяна на паролата"
73
- submit: "Промяна на паролата си"
74
- links:
75
- sign_in: "Влезте в профила си"
76
- forgot_your_password: "Забравена парола?"
77
-
@@ -1,17 +0,0 @@
1
- class CreateAdminNotes < ActiveRecord::Migration
2
- def self.up
3
- create_table :admin_notes do |t|
4
- t.string :resource_id, :null => false
5
- t.string :resource_type, :null => false
6
- t.references :admin_user, :polymorphic => true
7
- t.text :body
8
- t.timestamps
9
- end
10
- add_index :admin_notes, [:resource_type, :resource_id]
11
- add_index :admin_notes, [:admin_user_type, :admin_user_id]
12
- end
13
-
14
- def self.down
15
- drop_table :admin_notes
16
- end
17
- end
@@ -1,26 +0,0 @@
1
- class MoveAdminNotesToComments < ActiveRecord::Migration
2
- def self.up
3
- remove_index :admin_notes, [:admin_user_type, :admin_user_id]
4
- rename_table :admin_notes, :active_admin_comments
5
- rename_column :active_admin_comments, :admin_user_type, :author_type
6
- rename_column :active_admin_comments, :admin_user_id, :author_id
7
- add_column :active_admin_comments, :namespace, :string
8
- add_index :active_admin_comments, [:namespace]
9
- add_index :active_admin_comments, [:author_type, :author_id]
10
-
11
- # Update all the existing comments to the default namespace
12
- say "Updating any existing comments to the #{ActiveAdmin.application.default_namespace} namespace."
13
- comments_table_name = ActiveRecord::Migrator.proper_table_name("active_admin_comments")
14
- execute "UPDATE #{comments_table_name} SET namespace='#{ActiveAdmin.application.default_namespace}'"
15
- end
16
-
17
- def self.down
18
- remove_index :active_admin_comments, :column => [:author_type, :author_id]
19
- remove_index :active_admin_comments, :column => [:namespace]
20
- remove_column :active_admin_comments, :namespace
21
- rename_column :active_admin_comments, :author_id, :admin_user_id
22
- rename_column :active_admin_comments, :author_type, :admin_user_type
23
- rename_table :active_admin_comments, :admin_notes
24
- add_index :admin_notes, [:admin_user_type, :admin_user_id]
25
- end
26
- end
@@ -1,6 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe ActiveAdmin::BaseController do
4
- let(:controller) { ActiveAdmin::BaseController.new }
5
-
6
- end
@@ -1,76 +0,0 @@
1
- require 'spec_helper'
2
-
3
- require 'active_admin/dashboards/dashboard_controller'
4
- require 'active_admin/dashboards/section'
5
-
6
- module Admin
7
- class TestDashboardController < ActiveAdmin::PageController
8
- include ActiveAdmin::Dashboards::DashboardController
9
- end
10
- end
11
-
12
- class TestDashboardController < ActiveAdmin::PageController
13
- include ActiveAdmin::Dashboards::DashboardController
14
- end
15
-
16
- describe ActiveAdmin::Dashboards::DashboardController do
17
-
18
- describe "getting the namespace name" do
19
- subject{ controller.send :namespace }
20
-
21
- context "when admin namespace" do
22
- let(:controller){ Admin::TestDashboardController.new }
23
- it { should == :admin }
24
- end
25
-
26
- context "when root namespace" do
27
- let(:controller){ TestDashboardController.new }
28
- it { should == :root }
29
- end
30
- end
31
-
32
- describe "conditionally displaying sections" do
33
- before { ActiveAdmin::Dashboards.clear_all_sections! }
34
- let(:controller){ Admin::TestDashboardController.new }
35
-
36
- context "when :if not specified" do
37
- before do
38
- @section = ActiveAdmin::Dashboards.add_section('Stats').last
39
- end
40
-
41
- it "should include section" do
42
- controller.send(:find_sections).should include(@section)
43
- end
44
- end
45
-
46
- context "when :if option specified as a method" do
47
- before do
48
- @section = ActiveAdmin::Dashboards.add_section('Secret Codes', :if => :i_am_awesome?).last
49
- end
50
-
51
- it "should call the method of the same name" do
52
- controller.should_receive(:i_am_awesome?).and_return(true)
53
- controller.send(:find_sections).should include(@section)
54
-
55
- controller.should_receive(:i_am_awesome?).and_return(false)
56
- controller.send(:find_sections).should_not include(@section)
57
- end
58
- end
59
-
60
- context "when :if option specified as block" do
61
- before do
62
- @proc = Proc.new { true }
63
- @section = ActiveAdmin::Dashboards.add_section('Secret Codes', :if => proc {}).last
64
- end
65
-
66
- it "should evaluate the block" do
67
- controller.should_receive(:instance_exec).with(&@proc).and_return(true)
68
- controller.send(:find_sections).should include(@section)
69
-
70
- controller.should_receive(:instance_exec).with(&@proc).and_return(false)
71
- controller.send(:find_sections).should_not include(@section)
72
- end
73
- end
74
- end
75
-
76
- end
@@ -1,56 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe ActiveAdmin::Dashboards::Section do
4
-
5
- def section(options = {})
6
- name = options.delete(:name) || "Recent Posts"
7
- ActiveAdmin::Dashboards::Section.new(:admin, name, options){ }
8
- end
9
-
10
- describe "accessors" do
11
- it "should have a namespace" do
12
- section.namespace.should == :admin
13
- end
14
-
15
- it "should have a block" do
16
- section.block.class.should == Proc
17
- end
18
-
19
- it "should have a name" do
20
- section.name.should == 'Recent Posts'
21
- end
22
- end
23
-
24
- describe "priority" do
25
- context "when not set" do
26
- subject{ section.priority }
27
- it { should == ActiveAdmin::Dashboards::Section::DEFAULT_PRIORITY }
28
- end
29
-
30
- context "when set" do
31
- subject{ section(:priority => 1).priority }
32
- it { should == 1 }
33
- end
34
- end
35
-
36
- describe "icon" do
37
- it "should set the icon" do
38
- s = section(:icon => :my_icon)
39
- s.icon.should == :my_icon
40
- end
41
- it "should be nil by default" do
42
- section.icon.should be_nil
43
- end
44
- end
45
-
46
- describe "sorting sections" do
47
- it "should sort by priority then alpha" do
48
- s1 = section :name => "Woot"
49
- s2 = section :name => :Alpha
50
- s3 = section :name => "Zulu", :priority => 1
51
- s4 = section :name => "Beta", :priority => 100
52
- [s1,s2,s3,s4].sort.should == [s3, s2, s1, s4]
53
- end
54
- end
55
-
56
- end
@@ -1,59 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe ActiveAdmin::Dashboards do
4
-
5
- after(:each) do
6
- ActiveAdmin::Dashboards.clear_all_sections!
7
- end
8
-
9
- describe "adding sections" do
10
- before do
11
- ActiveAdmin::Dashboards.clear_all_sections!
12
- ActiveAdmin::Dashboards.add_section('Recent Posts')
13
- end
14
- it "should add a new section namespaced" do
15
- ActiveAdmin::Dashboards.sections[:admin].first.should be_an_instance_of(ActiveAdmin::Dashboards::Section)
16
- end
17
- end
18
-
19
- describe "adding sections using the build syntax" do
20
- before do
21
- ActiveAdmin::Dashboards.clear_all_sections!
22
- ActiveAdmin::Dashboards.build do
23
- section "Recent Posts" do
24
- end
25
- end
26
- end
27
-
28
- it "should add a new section" do
29
- ActiveAdmin::Dashboards.sections[:admin].first.should be_an_instance_of(ActiveAdmin::Dashboards::Section)
30
- end
31
- end
32
-
33
- describe "clearing all sections" do
34
- before do
35
- ActiveAdmin::Dashboards.add_section('Recent Posts')
36
- end
37
- it "should clear all sections" do
38
- ActiveAdmin::Dashboards.clear_all_sections!
39
- ActiveAdmin::Dashboards.sections.keys.should be_empty
40
- end
41
- end
42
-
43
- describe "finding namespaced sections" do
44
- context "when the namespace exists" do
45
- before do
46
- ActiveAdmin::Dashboards.add_section('Recent Posts')
47
- end
48
- it "should return an array of sections" do
49
- ActiveAdmin::Dashboards.sections_for_namespace(:admin).should_not be_empty
50
- end
51
- end
52
-
53
- context "when the namespace does not exists" do
54
- it "should return an empty array" do
55
- ActiveAdmin::Dashboards.sections_for_namespace(:not_a_namespace).should be_empty
56
- end
57
- end
58
- end
59
- end