activeadmin 1.0.0 → 1.1.0

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 (276) hide show
  1. checksums.yaml +4 -4
  2. data/.github/ISSUE_TEMPLATE.md +20 -0
  3. data/.mdlrc +1 -0
  4. data/.rubocop.yml +52 -3
  5. data/.simplecov +13 -0
  6. data/.travis.yml +9 -24
  7. data/.yardopts +0 -1
  8. data/CHANGELOG.md +85 -4
  9. data/CONTRIBUTING.md +33 -57
  10. data/Gemfile +26 -17
  11. data/Rakefile +1 -12
  12. data/activeadmin.gemspec +9 -11
  13. data/app/assets/javascripts/active_admin/base.js.coffee +6 -2
  14. data/app/assets/javascripts/active_admin/initializers/batch_actions.js.coffee +5 -1
  15. data/app/assets/javascripts/active_admin/initializers/datepicker.js.coffee +5 -1
  16. data/app/assets/javascripts/active_admin/initializers/filters.js.coffee +5 -1
  17. data/app/assets/javascripts/active_admin/initializers/tabs.js.coffee +5 -1
  18. data/app/assets/javascripts/active_admin/lib/batch_actions.js.coffee +6 -3
  19. data/app/assets/javascripts/active_admin/lib/checkbox-toggler.js.coffee +9 -7
  20. data/app/assets/javascripts/active_admin/lib/dropdown-menu.js.coffee +5 -2
  21. data/app/assets/javascripts/active_admin/lib/per_page.js.coffee +6 -2
  22. data/app/assets/javascripts/active_admin/lib/table-checkbox-toggler.js.coffee +3 -5
  23. data/app/assets/stylesheets/active_admin/_base.scss +2 -2
  24. data/app/assets/stylesheets/active_admin/_forms.scss +6 -12
  25. data/app/assets/stylesheets/active_admin/components/_batch_actions.scss +0 -5
  26. data/app/assets/stylesheets/active_admin/components/_pagination.scss +11 -0
  27. data/app/assets/stylesheets/active_admin/components/_status_tags.scss +1 -0
  28. data/app/assets/stylesheets/active_admin/components/_tables.scss +4 -1
  29. data/app/assets/stylesheets/active_admin/mixins/_all.scss +0 -2
  30. data/app/assets/stylesheets/active_admin/print.scss +2 -3
  31. data/app/views/active_admin/devise/sessions/new.html.erb +1 -1
  32. data/app/views/active_admin/devise/shared/_links.erb +12 -6
  33. data/app/views/kaminari/active_admin/_first_page.html.erb +11 -0
  34. data/app/views/kaminari/active_admin/_gap.html.erb +8 -0
  35. data/app/views/kaminari/active_admin/_last_page.html.erb +11 -0
  36. data/app/views/kaminari/active_admin/_next_page.html.erb +11 -0
  37. data/app/views/kaminari/active_admin/_page.html.erb +12 -0
  38. data/app/views/kaminari/active_admin/_paginator.html.erb +25 -0
  39. data/app/views/kaminari/active_admin/_prev_page.html.erb +11 -0
  40. data/codecov.yml +14 -12
  41. data/config/i18n-tasks.yml +26 -0
  42. data/config/locales/ar.yml +1 -3
  43. data/config/locales/bg.yml +0 -2
  44. data/config/locales/bs.yml +0 -2
  45. data/config/locales/ca.yml +0 -2
  46. data/config/locales/cs.yml +0 -2
  47. data/config/locales/da.yml +1 -3
  48. data/config/locales/de-CH.yml +1 -3
  49. data/config/locales/de.yml +1 -3
  50. data/config/locales/el.yml +1 -3
  51. data/config/locales/en-CA.yml +138 -0
  52. data/config/locales/en-GB.yml +43 -3
  53. data/config/locales/en.yml +8 -4
  54. data/config/locales/es-MX.yml +3 -2
  55. data/config/locales/es.yml +10 -4
  56. data/config/locales/fa.yml +0 -2
  57. data/config/locales/fi.yml +0 -2
  58. data/config/locales/fr.yml +9 -2
  59. data/config/locales/he.yml +53 -7
  60. data/config/locales/hr.yml +0 -2
  61. data/config/locales/hu.yml +0 -2
  62. data/config/locales/id.yml +1 -3
  63. data/config/locales/it.yml +2 -4
  64. data/config/locales/ja.yml +1 -3
  65. data/config/locales/ko.yml +0 -2
  66. data/config/locales/lt.yml +24 -4
  67. data/config/locales/lv.yml +0 -2
  68. data/config/locales/nb.yml +0 -2
  69. data/config/locales/nl.yml +1 -3
  70. data/config/locales/pl.yml +3 -2
  71. data/config/locales/pt-BR.yml +1 -3
  72. data/config/locales/pt-PT.yml +0 -2
  73. data/config/locales/ro.yml +0 -2
  74. data/config/locales/ru.yml +1 -3
  75. data/config/locales/sk.yml +0 -2
  76. data/config/locales/sv-SE.yml +1 -3
  77. data/config/locales/tr.yml +0 -2
  78. data/config/locales/uk.yml +1 -3
  79. data/config/locales/vi.yml +0 -2
  80. data/config/locales/zh-CN.yml +0 -2
  81. data/config/locales/zh-TW.yml +1 -3
  82. data/config/mdl_style.rb +9 -0
  83. data/cucumber.yml +3 -3
  84. data/docs/0-installation.md +15 -12
  85. data/docs/1-general-configuration.md +10 -3
  86. data/docs/10-custom-pages.md +10 -5
  87. data/docs/11-decorators.md +1 -0
  88. data/docs/12-arbre-components.md +7 -9
  89. data/docs/13-authorization-adapter.md +39 -24
  90. data/docs/14-gotchas.md +41 -22
  91. data/docs/2-resource-customization.md +41 -18
  92. data/docs/3-index-pages.md +30 -12
  93. data/docs/3-index-pages/custom-index.md +1 -0
  94. data/docs/3-index-pages/index-as-block.md +0 -5
  95. data/docs/3-index-pages/index-as-blog.md +0 -5
  96. data/docs/3-index-pages/index-as-grid.md +0 -5
  97. data/docs/3-index-pages/index-as-table.md +1 -9
  98. data/docs/4-csv-format.md +2 -1
  99. data/docs/5-forms.md +45 -21
  100. data/docs/6-show-pages.md +2 -1
  101. data/docs/7-sidebars.md +2 -1
  102. data/docs/8-custom-actions.md +4 -1
  103. data/docs/9-batch-actions.md +4 -2
  104. data/docs/documentation.md +19 -21
  105. data/features/comments/commenting.feature +20 -0
  106. data/features/index/filters.feature +41 -1
  107. data/features/index/format_as_csv.feature +17 -0
  108. data/features/index/index_scopes.feature +15 -0
  109. data/features/registering_assets.feature +8 -4
  110. data/features/show/attributes_table_title.feature +54 -0
  111. data/features/show/tabs.feature +10 -4
  112. data/features/step_definitions/action_link_steps.rb +0 -1
  113. data/features/step_definitions/attributes_table_title_steps.rb +11 -0
  114. data/features/step_definitions/batch_action_steps.rb +2 -2
  115. data/features/step_definitions/comment_steps.rb +21 -1
  116. data/features/step_definitions/configuration_steps.rb +1 -1
  117. data/features/step_definitions/filter_steps.rb +9 -0
  118. data/features/step_definitions/format_steps.rb +1 -1
  119. data/features/step_definitions/index_scope_steps.rb +4 -0
  120. data/features/support/env.rb +5 -4
  121. data/features/support/regular_env.rb +7 -0
  122. data/features/support/reload_env.rb +7 -0
  123. data/gemfiles/rails_42.gemfile +2 -37
  124. data/gemfiles/rails_50.gemfile +5 -40
  125. data/gemfiles/rails_51.gemfile +5 -40
  126. data/lib/active_admin.rb +0 -3
  127. data/lib/active_admin/application.rb +6 -4
  128. data/lib/active_admin/asset_registration.rb +8 -0
  129. data/lib/active_admin/authorization_adapter.rb +0 -3
  130. data/lib/active_admin/base_controller.rb +1 -2
  131. data/lib/active_admin/base_controller/authorization.rb +0 -1
  132. data/lib/active_admin/base_controller/menu.rb +9 -9
  133. data/lib/active_admin/batch_actions/controller.rb +1 -1
  134. data/lib/active_admin/batch_actions/views/selection_cells.rb +6 -5
  135. data/lib/active_admin/csv_builder.rb +3 -3
  136. data/lib/active_admin/dependency.rb +1 -1
  137. data/lib/active_admin/devise.rb +2 -2
  138. data/lib/active_admin/dsl.rb +2 -2
  139. data/lib/active_admin/filters.rb +2 -0
  140. data/lib/active_admin/filters/active.rb +13 -14
  141. data/lib/active_admin/filters/active_filter.rb +87 -0
  142. data/lib/active_admin/filters/active_sidebar.rb +50 -0
  143. data/lib/active_admin/filters/forms.rb +1 -2
  144. data/lib/active_admin/filters/resource_extension.rb +2 -30
  145. data/lib/active_admin/helpers/settings.rb +0 -1
  146. data/lib/active_admin/inputs/datepicker_input.rb +5 -5
  147. data/lib/active_admin/inputs/filters/date_range_input.rb +12 -4
  148. data/lib/active_admin/inputs/filters/text_input.rb +0 -1
  149. data/lib/active_admin/menu.rb +4 -4
  150. data/lib/active_admin/menu_collection.rb +0 -2
  151. data/lib/active_admin/namespace.rb +1 -1
  152. data/lib/active_admin/orm/active_record/comments/comment.rb +1 -5
  153. data/lib/active_admin/orm/active_record/comments/views/active_admin_comments.rb +4 -2
  154. data/lib/active_admin/page_controller.rb +1 -1
  155. data/lib/active_admin/resource/action_items.rb +4 -0
  156. data/lib/active_admin/resource/attributes.rb +1 -1
  157. data/lib/active_admin/resource/page_presenters.rb +1 -1
  158. data/lib/active_admin/resource/routes.rb +0 -1
  159. data/lib/active_admin/resource/scopes.rb +2 -1
  160. data/lib/active_admin/resource_controller.rb +1 -1
  161. data/lib/active_admin/resource_controller/data_access.rb +8 -9
  162. data/lib/active_admin/resource_dsl.rb +10 -10
  163. data/lib/active_admin/router.rb +1 -1
  164. data/lib/active_admin/scope.rb +3 -3
  165. data/lib/active_admin/version.rb +1 -1
  166. data/lib/active_admin/view_helpers.rb +1 -0
  167. data/lib/active_admin/view_helpers/display_helper.rb +1 -1
  168. data/lib/active_admin/view_helpers/form_helper.rb +1 -1
  169. data/lib/active_admin/view_helpers/scope_name_helper.rb +16 -0
  170. data/lib/active_admin/views/action_items.rb +1 -1
  171. data/lib/active_admin/views/components/active_admin_form.rb +1 -1
  172. data/lib/active_admin/views/components/dropdown_menu.rb +2 -2
  173. data/lib/active_admin/views/components/index_list.rb +0 -2
  174. data/lib/active_admin/views/components/paginated_collection.rb +1 -1
  175. data/lib/active_admin/views/components/scopes.rb +2 -10
  176. data/lib/active_admin/views/components/status_tag.rb +19 -11
  177. data/lib/active_admin/views/components/tabs.rb +2 -2
  178. data/lib/active_admin/views/header.rb +0 -1
  179. data/lib/active_admin/views/index_as_blog.rb +1 -2
  180. data/lib/active_admin/views/index_as_grid.rb +2 -2
  181. data/lib/active_admin/views/index_as_table.rb +19 -1
  182. data/lib/active_admin/views/pages/base.rb +4 -4
  183. data/lib/active_admin/views/pages/show.rb +6 -1
  184. data/lib/active_admin/views/title_bar.rb +4 -4
  185. data/lib/bug_report_templates/{rails_5_master.rb → active_admin_master.rb} +35 -40
  186. data/lib/generators/active_admin/devise/devise_generator.rb +1 -1
  187. data/lib/generators/active_admin/install/templates/admin_user.rb.erb +1 -1
  188. data/spec/bug_report_templates_spec.rb +2 -3
  189. data/spec/rails_helper.rb +0 -3
  190. data/spec/spec_helper.rb +1 -12
  191. data/spec/support/active_admin_integration_spec_helper.rb +1 -1
  192. data/spec/support/rails_template.rb +5 -37
  193. data/spec/support/rails_template_with_data.rb +262 -3
  194. data/spec/support/templates/policies/active_admin/comment_policy.rb +1 -1
  195. data/spec/support/templates/policies/active_admin/page_policy.rb +1 -1
  196. data/spec/support/templates/policies/application_policy.rb +1 -2
  197. data/spec/support/templates/post_decorator.rb +0 -1
  198. data/spec/unit/abstract_view_factory_spec.rb +0 -1
  199. data/spec/unit/application_spec.rb +4 -0
  200. data/spec/unit/asset_registration_spec.rb +29 -0
  201. data/spec/unit/belongs_to_spec.rb +1 -2
  202. data/spec/unit/config_shared_examples.rb +1 -1
  203. data/spec/unit/csv_builder_spec.rb +2 -4
  204. data/spec/unit/dependency_spec.rb +7 -7
  205. data/spec/unit/dsl_spec.rb +0 -2
  206. data/spec/unit/filters/active_filter_spec.rb +135 -0
  207. data/spec/unit/filters/active_spec.rb +11 -1
  208. data/spec/unit/filters/filter_form_builder_spec.rb +9 -7
  209. data/spec/unit/form_builder_spec.rb +14 -14
  210. data/spec/unit/helpers/scope_chain_spec.rb +0 -1
  211. data/spec/unit/i18n_spec.rb +17 -0
  212. data/spec/unit/menu_item_spec.rb +1 -3
  213. data/spec/unit/namespace/register_page_spec.rb +1 -1
  214. data/spec/unit/namespace_spec.rb +0 -1
  215. data/spec/unit/page_spec.rb +0 -3
  216. data/spec/unit/resource/action_items_spec.rb +5 -1
  217. data/spec/unit/resource/attributes_spec.rb +1 -2
  218. data/spec/unit/resource/ordering_spec.rb +0 -3
  219. data/spec/unit/resource/scopes_spec.rb +1 -1
  220. data/spec/unit/resource_controller/data_access_spec.rb +2 -2
  221. data/spec/unit/resource_controller_spec.rb +1 -2
  222. data/spec/unit/resource_spec.rb +9 -2
  223. data/spec/unit/routing_spec.rb +0 -2
  224. data/spec/unit/scope_spec.rb +3 -3
  225. data/spec/unit/settings_spec.rb +0 -1
  226. data/spec/unit/view_factory_spec.rb +1 -1
  227. data/spec/unit/view_helpers/flash_helper_spec.rb +0 -1
  228. data/spec/unit/view_helpers/form_helper_spec.rb +3 -4
  229. data/spec/unit/view_helpers/method_or_proc_helper_spec.rb +0 -1
  230. data/spec/unit/views/components/attributes_table_spec.rb +0 -1
  231. data/spec/unit/views/components/columns_spec.rb +0 -2
  232. data/spec/unit/views/components/site_title_spec.rb +0 -2
  233. data/spec/unit/views/components/status_tag_spec.rb +23 -7
  234. data/spec/unit/views/components/tabs_spec.rb +29 -1
  235. data/spec/unit/views/pages/index_spec.rb +1 -1
  236. data/tasks/docs.rake +37 -10
  237. data/tasks/lint.rake +14 -1
  238. data/tasks/local.rake +2 -2
  239. data/tasks/test.rake +8 -25
  240. data/vendor/assets/javascripts/jquery-ui/data.js +41 -0
  241. data/vendor/assets/javascripts/jquery-ui/disable-selection.js +48 -0
  242. data/vendor/assets/javascripts/jquery-ui/escape-selector.js +23 -0
  243. data/vendor/assets/javascripts/jquery-ui/focusable.js +86 -0
  244. data/vendor/assets/javascripts/jquery-ui/ie.js +17 -0
  245. data/vendor/assets/javascripts/jquery-ui/keycode.js +47 -0
  246. data/vendor/assets/javascripts/jquery-ui/plugin.js +46 -0
  247. data/vendor/assets/javascripts/jquery-ui/position.js +500 -0
  248. data/vendor/assets/javascripts/jquery-ui/safe-active-element.js +42 -0
  249. data/vendor/assets/javascripts/jquery-ui/safe-blur.js +23 -0
  250. data/vendor/assets/javascripts/jquery-ui/scroll-parent.js +47 -0
  251. data/vendor/assets/javascripts/jquery-ui/tabbable.js +38 -0
  252. data/vendor/assets/javascripts/jquery-ui/unique-id.js +51 -0
  253. data/vendor/assets/javascripts/jquery-ui/version.js +17 -0
  254. data/vendor/assets/javascripts/jquery-ui/widget.js +735 -0
  255. data/vendor/assets/javascripts/jquery-ui/widgets/button.js +391 -0
  256. data/vendor/assets/javascripts/jquery-ui/widgets/checkboxradio.js +300 -0
  257. data/vendor/assets/javascripts/jquery-ui/widgets/controlgroup.js +300 -0
  258. data/vendor/assets/javascripts/jquery-ui/widgets/datepicker.js +2123 -0
  259. data/vendor/assets/javascripts/jquery-ui/widgets/dialog.js +954 -0
  260. data/vendor/assets/javascripts/jquery-ui/widgets/draggable.js +1259 -0
  261. data/vendor/assets/javascripts/jquery-ui/widgets/mouse.js +230 -0
  262. data/vendor/assets/javascripts/jquery-ui/widgets/resizable.js +1207 -0
  263. data/vendor/assets/javascripts/jquery-ui/widgets/sortable.js +1561 -0
  264. data/vendor/assets/javascripts/jquery-ui/widgets/tabs.js +931 -0
  265. data/vendor/assets/stylesheets/active_admin/_normalize.scss +447 -0
  266. metadata +62 -51
  267. data/.hound.yml +0 -14
  268. data/Appraisals +0 -41
  269. data/app/assets/images/active_admin/datepicker/datepicker-input-icon.png +0 -0
  270. data/app/assets/javascripts/active_admin/jquery_ui.js.erb +0 -18
  271. data/app/assets/stylesheets/active_admin/mixins/_reset.scss +0 -165
  272. data/lib/active_admin/filters/humanized.rb +0 -68
  273. data/spec/requests/javascript_spec.rb +0 -22
  274. data/spec/support/jslint.yml +0 -80
  275. data/spec/unit/filters/humanized_spec.rb +0 -64
  276. data/tasks/yard.rake +0 -9
@@ -3,7 +3,8 @@ redirect_from: /docs/6-show-pages.html
3
3
  ---
4
4
  # Customize the Show Page
5
5
 
6
- The show block is rendered within the context of the view and uses [Arbre](https://github.com/activeadmin/arbre) syntax.
6
+ The show block is rendered within the context of the view and uses
7
+ [Arbre](https://github.com/activeadmin/arbre) syntax.
7
8
 
8
9
  With the `show` block, you can render anything you want.
9
10
 
@@ -68,7 +68,8 @@ By default sidebars are positioned in the same order as they defined, but it's a
68
68
  possible to specify their position manually:
69
69
 
70
70
  ```ruby
71
- sidebar :help, priority: 0 # will push Help section to the top (above default Filters section)
71
+ # will push Help section to the top (above default Filters section)
72
+ sidebar :help, priority: 0
72
73
  ```
73
74
 
74
75
  Default sidebar priority is `10`.
@@ -1,6 +1,7 @@
1
1
  ---
2
2
  redirect_from: /docs/8-custom-actions.html
3
3
  ---
4
+
4
5
  # Custom Controller Actions
5
6
 
6
7
  Active Admin allows you to override and modify the underlying controller which
@@ -138,7 +139,9 @@ end
138
139
  Actions items also accept the `:if` option to conditionally display them:
139
140
 
140
141
  ```ruby
141
- action_item :super_action, only: :show, if: proc{ current_admin_user.super_admin? } do
142
+ action_item :super_action,
143
+ only: :show,
144
+ if: proc{ current_admin_user.super_admin? } do
142
145
  "Only display this to super admins on the show screen"
143
146
  end
144
147
  ```
@@ -1,6 +1,7 @@
1
1
  ---
2
2
  redirect_from: /docs/9-batch-actions.html
3
3
  ---
4
+
4
5
  # Batch Actions
5
6
 
6
7
  By default, the index page provides you a "Batch Action" to quickly delete records,
@@ -51,7 +52,7 @@ end
51
52
 
52
53
  # app/admin/post.rb
53
54
  ActiveAdmin.register Post do
54
-
55
+
55
56
  # Resource level:
56
57
  config.batch_actions = false
57
58
  end
@@ -153,7 +154,8 @@ batch_action :doit, form: -> { {user: User.pluck(:name, :id)} } do |ids, inputs|
153
154
  end
154
155
  ```
155
156
 
156
- Under the covers this is powered by the JS `ActiveAdmin.modal_dialog` which you can use yourself:
157
+ Under the covers this is powered by the JS `ActiveAdmin.modal_dialog` which you
158
+ can use yourself:
157
159
 
158
160
  ```coffee
159
161
  if $('body.admin_users').length
@@ -1,20 +1,15 @@
1
1
  ---
2
2
  redirect_from: /docs/documentation.html
3
3
  ---
4
- <h2 class="in-docs">
5
- <span class="breadcrumb">
6
- <a href="documentation.html">Documentation</a> :
7
- </span>
8
- Active Admin Documentation
9
- </h2>
10
4
 
11
- Active Admin is a framework for creating administration style interfaces. It abstracts common business application patterns to make it simple for developers to implement beautiful and elegant interfaces with very
12
- little effort.
5
+ Active Admin is a framework for creating administration style interfaces. It
6
+ abstracts common business application patterns to make it simple for developers
7
+ to implement beautiful and elegant interfaces with very little effort.
13
8
 
14
- ### Getting Started
9
+ # Getting Started
15
10
 
16
- Active Admin is released as a Ruby Gem. The gem is to be installed within a Ruby on Rails 4 application. To
17
- install, simply add the following to your Gemfile:
11
+ Active Admin is released as a Ruby Gem. The gem is to be installed within a Ruby
12
+ on Rails application. To install, simply add the following to your Gemfile:
18
13
 
19
14
  ```ruby
20
15
  # Gemfile
@@ -27,7 +22,9 @@ After updating your bundle, run the installer
27
22
  rails generate active_admin:install
28
23
  ```
29
24
 
30
- The installer creates an initializer used for configuring defaults used by Active Admin as well as a new folder at <tt>app/admin</tt> to put all your admin configurations.
25
+ The installer creates an initializer used for configuring defaults used by
26
+ Active Admin as well as a new folder at `app/admin` to put all your admin
27
+ configurations.
31
28
 
32
29
  Migrate your db and start the server:
33
30
 
@@ -36,10 +33,10 @@ $> rake db:migrate
36
33
  $> rails server
37
34
  ```
38
35
 
39
- Visit http://localhost:3000/admin and log in using:
36
+ Visit `http://localhost:3000/admin` and log in using:
40
37
 
41
- * <em>User</em>: admin@example.com
42
- * <em>Password</em>: password
38
+ * __User__: admin@example.com
39
+ * __Password__: password
43
40
 
44
41
  Voila! You&#8217;re on your brand new Active Admin dashboard.
45
42
 
@@ -50,13 +47,14 @@ $> rails generate active_admin:resource
50
47
  [MyModelName]
51
48
  ```
52
49
 
53
- This creates a file at <tt>app/admin/my_model_names.rb</tt> for configuring the resource. Refresh your web browser to see the interface.
50
+ This creates a file at `app/admin/my_model_names.rb` for configuring the
51
+ resource. Refresh your web browser to see the interface.
54
52
 
55
- ### Next Steps
53
+ # Next Steps
56
54
 
57
55
  Now that you have a working Active Admin installation, learn how to customize it:
58
56
 
59
- * <a href='{{ site.baseurl }}/3-index-pages.html'>Customize the Index Page</a>
60
- * <a href='{{ site.baseurl }}/5-forms.html'>Customize the New and Edit Form</a>
61
- * <a href='{{ site.baseurl }}/6-show-pages.html'>Customize the Show Page</a>
62
- * <a href='{{ site.baseurl }}/2-resource-customization.html'>Customize the Resource in General</a>
57
+ * [Customize the Index Page](3-index-pages.md)
58
+ * [Customize the New and Edit Form](5-forms.md)
59
+ * [Customize the Show Page](6-show-pages.md)
60
+ * [Customize the Resource in General](2-resource-customization.md)
@@ -156,3 +156,23 @@ Feature: Commenting
156
156
  And I follow "View"
157
157
  When I add a comment "Bar"
158
158
  Then I should be in the resource section for foos
159
+
160
+ Scenario: View comments
161
+ Given 70 comments added by admin with an email "admin@example.com"
162
+ And a show configuration of:
163
+ """
164
+ ActiveAdmin.register Post
165
+ """
166
+ Then I should see "Comments (70)"
167
+ And I should see "Displaying comments 1 - 25 of 70 in total"
168
+ And I should see 25 comments
169
+ And I should see pagination with 3 pages
170
+ And I should see the pagination "Next" link
171
+ Then I follow "2"
172
+ And I should see "Displaying comments 26 - 50 of 70 in total"
173
+ And I should see 25 comments
174
+ And I should see the pagination "Next" link
175
+ Then I follow "Next"
176
+ And I should see 20 comments
177
+ And I should see "Displaying comments 51 - 70 of 70 in total"
178
+ And I should not see the pagination "Next" link
@@ -21,6 +21,7 @@ Feature: Index Filtering
21
21
  And I press "Filter"
22
22
  And I should see 1 posts in the table
23
23
  And I should see "Hello World 2" within ".index_table"
24
+ And I should see current filter "title_contains" equal to "Hello World 2" with label "Title contains"
24
25
 
25
26
  Scenario: Filtering posts with no results
26
27
  Given 3 posts exist
@@ -100,6 +101,7 @@ Feature: Index Filtering
100
101
  Then I should see 1 posts in the table
101
102
  And I should see "Hello World" within ".index_table"
102
103
  And the "Jane Doe" checkbox should be checked
104
+ And I should see current filter "author_id_in" equal to "Jane Doe"
103
105
 
104
106
  Scenario: Disabling filters
105
107
  Given an index configuration of:
@@ -122,6 +124,7 @@ Feature: Index Filtering
122
124
  Then I should see 1 categories in the table
123
125
  And I should see "Non-Fiction" within ".index_table"
124
126
  And I should not see "Mystery" within ".index_table"
127
+ And I should see current filter "posts_author_id_eq" equal to "Jane Doe"
125
128
 
126
129
  @javascript
127
130
  Scenario: Clearing filter preserves custom parameters
@@ -160,6 +163,7 @@ Feature: Index Filtering
160
163
  And I should see "Mystery" within ".index_table"
161
164
  And I should see "Non-Fiction" within ".index_table"
162
165
  And the "Jane Doe" checkbox should not be checked
166
+ And should not see a sidebar titled "Search Status:"
163
167
 
164
168
  Scenario: Checkboxes - Filtering categories via posts written by Jane Doe
165
169
  Given a category named "Mystery" exists
@@ -169,6 +173,7 @@ Feature: Index Filtering
169
173
  ActiveAdmin.register Category do
170
174
  filter :authors, as: :check_boxes
171
175
  end
176
+
172
177
  """
173
178
  When I check "Jane Doe"
174
179
  And I press "Filter"
@@ -176,6 +181,41 @@ Feature: Index Filtering
176
181
  And I should see "Non-Fiction" within ".index_table"
177
182
  And the "Jane Doe" checkbox should be checked
178
183
 
184
+ Scenario: Filtering posts without default scope
185
+
186
+ Given a post with the title "Hello World" written by "Jane Doe" exists
187
+ Given an index configuration of:
188
+ """
189
+ ActiveAdmin.register Post do
190
+ scope :all
191
+ scope :published do |posts|
192
+ posts.where("published_date IS NOT NULL")
193
+ end
194
+
195
+ filter :title
196
+ end
197
+ """
198
+ When I fill in "Title" with "Hello"
199
+ And I press "Filter"
200
+ Then I should see current filter "title_contains" equal to "Hello" with label "Title contains"
201
+
202
+ Scenario: Filtering posts by category
203
+ Given a category named "Mystery" exists
204
+ And a post with the title "Hello World" written by "Jane Doe" in category "Non-Fiction" exists
205
+ Given an index configuration of:
206
+ """
207
+ ActiveAdmin.register Category
208
+ ActiveAdmin.register Post do
209
+ filter :category
210
+ end
211
+ """
212
+ And I am on the index page for posts
213
+
214
+ When I select "Non-Fiction" from "Category"
215
+ And I press "Filter"
216
+ Then I should see a sidebar titled "Search Status:"
217
+ And I should see link "Non-Fiction" in current filters
218
+
179
219
  Scenario: Enabling filters status sidebar
180
220
  Given an index configuration of:
181
221
  """
@@ -196,4 +236,4 @@ Feature: Index Filtering
196
236
  end
197
237
  """
198
238
  And I press "Filter"
199
- Then I should not see a sidebar titled "Search Status:"
239
+ Then I should not see a sidebar titled "Search Status:"
@@ -61,6 +61,23 @@ Feature: Format as CSV
61
61
  | Title | Body |
62
62
  | Hello, World | (.*) |
63
63
 
64
+ Scenario: With humanize_name option
65
+ Given a configuration of:
66
+ """
67
+ ActiveAdmin.register Post do
68
+ csv humanize_name: false do
69
+ column :title
70
+ column :body
71
+ end
72
+ end
73
+ """
74
+ And a post with the title "Hello, World" exists
75
+ When I am on the index page for posts
76
+ And I follow "CSV"
77
+ And I should download a CSV file with "," separator for "posts" containing:
78
+ | title | body |
79
+ | Hello, World | (.*) |
80
+
64
81
  Scenario: With CSV option customization
65
82
  Given a configuration of:
66
83
  """
@@ -32,6 +32,9 @@ Feature: Index Scoping
32
32
  """
33
33
  Then I should see the scope with label "Neat scope"
34
34
  And I should see 3 posts in the table
35
+ When I follow "Neat scope"
36
+ And I should see 3 posts in the table
37
+ And I should see the current scope with label "Neat scope"
35
38
 
36
39
  Scenario: Viewing resources with one scope as the default
37
40
  Given 3 posts exist
@@ -70,6 +73,7 @@ Feature: Index Scoping
70
73
  And I press "Filter"
71
74
  Then I should see the scope "All" selected
72
75
 
76
+
73
77
  Scenario: Viewing resources with a scope but scope_count turned off
74
78
  Given 3 posts exist
75
79
  And an index configuration of:
@@ -113,6 +117,7 @@ Feature: Index Scoping
113
117
  And I should see the scope "Published" with the count 3
114
118
  When I follow "Published"
115
119
  Then I should see the scope "Published" selected
120
+ Then I should see the current scope with label "Published"
116
121
  And I should see 3 posts in the table
117
122
 
118
123
  Scenario: Viewing resources when scoping and filtering
@@ -137,6 +142,7 @@ Feature: Index Scoping
137
142
 
138
143
  When I follow "Published"
139
144
  Then I should see the scope "Published" selected
145
+ And I should see the current scope with label "Published"
140
146
  And I should see the scope "All" with the count 6
141
147
  And I should see the scope "Published" with the count 3
142
148
  And I should see 3 posts in the table
@@ -196,6 +202,7 @@ Feature: Index Scoping
196
202
  Then I should see the scope "Tomorrow" selected
197
203
  And I should see the scope "Today" not selected
198
204
  And I should see a link to "Today"
205
+ And I should see the current scope with label "Tomorrow"
199
206
 
200
207
  Scenario: Viewing resources with scopes when scoping to user
201
208
  Given 2 posts written by "Daft Punk" exist
@@ -236,6 +243,9 @@ Feature: Index Scoping
236
243
  scope :published do |posts|
237
244
  posts.where("published_date IS NOT NULL")
238
245
  end
246
+ scope :single do |posts|
247
+ posts.page(1).per(1)
248
+ end
239
249
 
240
250
  index do
241
251
  column :author_id
@@ -253,8 +263,12 @@ Feature: Index Scoping
253
263
  """
254
264
  Then I should see the scope "All" with the count 2
255
265
  And I should see the scope "Published" with the count 1
266
+ And I should see the scope "Single" with the count 1
256
267
  And I should see 2 posts in the table
257
268
 
269
+ When I follow "Single"
270
+ Then I should see 1 posts in the table
271
+
258
272
  When I follow "Published"
259
273
  Then I should see the scope "Published" selected
260
274
  And I should see the scope "All" with the count 2
@@ -268,3 +282,4 @@ Feature: Index Scoping
268
282
  And I should see the scope "All" with the count 1
269
283
  And I should see the scope "Published" with the count 1
270
284
  And I should see 1 posts in the table
285
+ And I should see the current scope with label "Published"
@@ -18,8 +18,10 @@ Feature: Registering Assets
18
18
  Scenario: Registering a CSS file
19
19
  Given a configuration of:
20
20
  """
21
- ActiveAdmin.application.register_stylesheet "some-random-css.css", media: :print
22
- ActiveAdmin.register Post
21
+ ActiveSupport::Deprecation.silence do
22
+ ActiveAdmin.application.register_stylesheet "some-random-css.css", media: :print
23
+ ActiveAdmin.register Post
24
+ end
23
25
  """
24
26
  When I am on the index page for posts
25
27
  Then I should see the css file "some-random-css" of media "print"
@@ -27,8 +29,10 @@ Feature: Registering Assets
27
29
  Scenario: Registering a JS file
28
30
  Given a configuration of:
29
31
  """
30
- ActiveAdmin.application.register_javascript "some-random-js.js"
31
- ActiveAdmin.register Post
32
+ ActiveSupport::Deprecation.silence do
33
+ ActiveAdmin.application.register_javascript "some-random-js.js"
34
+ ActiveAdmin.register Post
35
+ end
32
36
  """
33
37
  When I am on the index page for posts
34
38
  Then I should see the js file "some-random-js"
@@ -0,0 +1,54 @@
1
+ Feature: Show - Attributes Table Title
2
+
3
+ Modifying the title of the panel wrapping the attributes table
4
+
5
+ Background:
6
+ Given a post with the title "Hello World" written by "Jane Doe" exists
7
+
8
+ Scenario: Set a string as the title
9
+ Given a show configuration of:
10
+ """
11
+ ActiveAdmin.register Post do
12
+ show do
13
+ attributes_table title: "Title From String"
14
+ end
15
+ end
16
+ """
17
+ Then I should see the panel title "Title From String"
18
+ And I should see the attributes table
19
+
20
+ Scenario: Set a method to be called on the resource as the title
21
+ Given a show configuration of:
22
+ """
23
+ ActiveAdmin.register Post do
24
+ show do
25
+ attributes_table title: :title
26
+ end
27
+ end
28
+ """
29
+ Then I should see the panel title "Hello World"
30
+ And I should see the attributes table
31
+
32
+ Scenario: Set a proc as the title
33
+ Given a show configuration of:
34
+ """
35
+ ActiveAdmin.register Post do
36
+ show do
37
+ attributes_table title: proc{ |post| "Title: #{post.title}" }
38
+ end
39
+ end
40
+ """
41
+ Then I should see the panel title "Title: Hello World"
42
+ And I should see the attributes table
43
+
44
+ Scenario: Should not accept other keys
45
+ Given a show configuration of:
46
+ """
47
+ ActiveAdmin.register Post do
48
+ show do
49
+ attributes_table foo: "Title From String"
50
+ end
51
+ end
52
+ """
53
+ Then I should not see the panel title "Title From String"
54
+ And I should see the attributes table
@@ -5,6 +5,7 @@ Feature: Show - Tabs
5
5
  Background:
6
6
  Given a post with the title "Hello World" written by "Jane Doe" exists
7
7
 
8
+ @javascript
8
9
  Scenario: Set a method to be called on the resource as the title
9
10
  Given a show configuration of:
10
11
  """
@@ -15,13 +16,18 @@ Feature: Show - Tabs
15
16
  span "tab 1"
16
17
  end
17
18
 
18
- tab :details do
19
+ tab 'テスト', id: :test_non_ascii do
19
20
  span "tab 2"
20
21
  end
21
22
  end
22
23
  end
23
24
  end
24
25
  """
25
- Then I should see two tabs "Overview" and "Details"
26
- And I should see "tab 1"
27
- And I should see "tab 2"
26
+
27
+ Then show me the page
28
+ Then I should see two tabs "Overview" and "テスト"
29
+ And I should see the element "#overview span"
30
+ And I should not see the element "#test_non_ascii span"
31
+ Then I follow "テスト"
32
+ And I should see the element "#test_non_ascii span"
33
+ And I should not see the element "#overview span"