activeadmin 1.0.0 → 2.11.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 (618) hide show
  1. checksums.yaml +5 -5
  2. data/CHANGELOG.md +778 -68
  3. data/CODE_OF_CONDUCT.md +64 -12
  4. data/CONTRIBUTING.md +80 -82
  5. data/README.md +73 -19
  6. data/app/assets/javascripts/active_admin/base.js +524 -0
  7. data/app/assets/stylesheets/active_admin/_base.scss +53 -37
  8. data/app/assets/stylesheets/active_admin/_forms.scss +7 -35
  9. data/app/assets/stylesheets/active_admin/_header.scss +40 -8
  10. data/app/assets/stylesheets/active_admin/_mixins.scss +1 -1
  11. data/app/assets/stylesheets/active_admin/_normalize.scss +349 -0
  12. data/app/assets/stylesheets/active_admin/{print.scss → _print.scss} +3 -4
  13. data/app/assets/stylesheets/active_admin/components/_batch_actions.scss +0 -5
  14. data/app/assets/stylesheets/active_admin/components/_comments.scss +2 -2
  15. data/app/assets/stylesheets/active_admin/components/_date_picker.scss +1 -2
  16. data/app/assets/stylesheets/active_admin/components/_dropdown_menu.scss +0 -1
  17. data/app/assets/stylesheets/active_admin/components/_pagination.scss +11 -0
  18. data/app/assets/stylesheets/active_admin/components/_scopes.scss +3 -0
  19. data/app/assets/stylesheets/active_admin/components/_status_tags.scss +0 -4
  20. data/app/assets/stylesheets/active_admin/components/_tables.scss +5 -3
  21. data/app/assets/stylesheets/active_admin/components/_tabs.scss +1 -1
  22. data/app/assets/stylesheets/active_admin/mixins/_all.scss +8 -10
  23. data/app/assets/stylesheets/active_admin/mixins/_gradients.scss +1 -1
  24. data/app/assets/stylesheets/active_admin/mixins/_variables.scss +17 -0
  25. data/app/assets/stylesheets/active_admin/structure/_main_structure.scss +1 -1
  26. data/app/assets/stylesheets/active_admin/structure/_title_bar.scss +0 -1
  27. data/app/javascript/active_admin/base.js +28 -0
  28. data/app/javascript/active_admin/ext/jquery-ui.js +7 -0
  29. data/app/javascript/active_admin/ext/jquery.js +9 -0
  30. data/app/javascript/active_admin/initializers/batch-actions.js +61 -0
  31. data/app/javascript/active_admin/initializers/checkbox-toggler.js +3 -0
  32. data/app/javascript/active_admin/initializers/datepicker.js +16 -0
  33. data/app/javascript/active_admin/initializers/dropdown-menu.js +9 -0
  34. data/app/javascript/active_admin/initializers/filters.js +10 -0
  35. data/app/javascript/active_admin/initializers/has-many.js +95 -0
  36. data/app/javascript/active_admin/initializers/per-page.js +13 -0
  37. data/app/javascript/active_admin/initializers/table-checkbox-toggler.js +3 -0
  38. data/app/javascript/active_admin/initializers/tabs.js +6 -0
  39. data/app/javascript/active_admin/lib/checkbox-toggler.js +49 -0
  40. data/app/javascript/active_admin/lib/dropdown-menu.js +116 -0
  41. data/app/javascript/active_admin/lib/filters.js +39 -0
  42. data/app/javascript/active_admin/lib/modal-dialog.js +63 -0
  43. data/app/javascript/active_admin/lib/per-page.js +38 -0
  44. data/app/javascript/active_admin/lib/table-checkbox-toggler.js +38 -0
  45. data/app/javascript/active_admin/lib/utils.js +40 -0
  46. data/app/views/active_admin/devise/confirmations/new.html.erb +2 -2
  47. data/app/views/active_admin/devise/mailer/reset_password_instructions.html.erb +1 -1
  48. data/app/views/active_admin/devise/mailer/unlock_instructions.html.erb +2 -2
  49. data/app/views/active_admin/devise/passwords/edit.html.erb +2 -2
  50. data/app/views/active_admin/devise/passwords/new.html.erb +2 -2
  51. data/app/views/active_admin/devise/registrations/new.html.erb +2 -3
  52. data/app/views/active_admin/devise/sessions/new.html.erb +2 -2
  53. data/app/views/active_admin/devise/shared/_error_messages.html.erb +15 -0
  54. data/app/views/active_admin/devise/shared/_links.erb +12 -6
  55. data/app/views/active_admin/devise/unlocks/new.html.erb +2 -2
  56. data/app/views/active_admin/page/index.html.arb +1 -0
  57. data/app/views/active_admin/resource/edit.html.arb +1 -0
  58. data/app/views/active_admin/resource/index.html.arb +1 -0
  59. data/app/views/active_admin/resource/new.html.arb +1 -0
  60. data/app/views/active_admin/resource/show.html.arb +1 -0
  61. data/app/views/kaminari/active_admin/_first_page.html.erb +11 -0
  62. data/app/views/kaminari/active_admin/_gap.html.erb +8 -0
  63. data/app/views/kaminari/active_admin/_last_page.html.erb +11 -0
  64. data/app/views/kaminari/active_admin/_next_page.html.erb +11 -0
  65. data/app/views/kaminari/active_admin/_page.html.erb +12 -0
  66. data/app/views/kaminari/active_admin/_paginator.html.erb +25 -0
  67. data/app/views/kaminari/active_admin/_prev_page.html.erb +11 -0
  68. data/app/views/kaminari/active_admin_countless/_first_page.html.erb +11 -0
  69. data/app/views/kaminari/active_admin_countless/_gap.html.erb +8 -0
  70. data/app/views/kaminari/active_admin_countless/_next_page.html.erb +11 -0
  71. data/app/views/kaminari/active_admin_countless/_page.html.erb +12 -0
  72. data/app/views/kaminari/active_admin_countless/_paginator.html.erb +24 -0
  73. data/app/views/kaminari/active_admin_countless/_prev_page.html.erb +11 -0
  74. data/app/views/layouts/active_admin.html.arb +1 -0
  75. data/app/views/layouts/active_admin_logged_out.html.erb +17 -7
  76. data/config/locales/ar.yml +10 -11
  77. data/config/locales/az.yml +138 -0
  78. data/config/locales/bg.yml +1 -3
  79. data/config/locales/bs.yml +1 -2
  80. data/config/locales/ca.yml +1 -3
  81. data/config/locales/cs.yml +1 -2
  82. data/config/locales/da.yml +2 -3
  83. data/config/locales/de-CH.yml +2 -3
  84. data/config/locales/de.yml +30 -3
  85. data/config/locales/el.yml +2 -3
  86. data/config/locales/en-CA.yml +139 -0
  87. data/config/locales/en-GB.yml +46 -5
  88. data/config/locales/en.yml +32 -8
  89. data/config/locales/eo.yml +145 -0
  90. data/config/locales/es-MX.yml +6 -3
  91. data/config/locales/es.yml +36 -10
  92. data/config/locales/fa.yml +1 -2
  93. data/config/locales/fi.yml +2 -3
  94. data/config/locales/fr.yml +15 -7
  95. data/config/locales/he.yml +53 -7
  96. data/config/locales/hr.yml +1 -2
  97. data/config/locales/hu.yml +5 -2
  98. data/config/locales/id.yml +2 -3
  99. data/config/locales/it.yml +33 -7
  100. data/config/locales/ja.yml +9 -5
  101. data/config/locales/ko.yml +2 -3
  102. data/config/locales/lt.yml +27 -6
  103. data/config/locales/lv.yml +3 -4
  104. data/config/locales/mk.yml +134 -0
  105. data/config/locales/nb.yml +16 -7
  106. data/config/locales/nl.yml +14 -4
  107. data/config/locales/pl.yml +75 -5
  108. data/config/locales/pt-BR.yml +10 -3
  109. data/config/locales/pt-PT.yml +1 -2
  110. data/config/locales/ro.yml +4 -4
  111. data/config/locales/ru.yml +4 -3
  112. data/config/locales/sk.yml +60 -2
  113. data/config/locales/sv-SE.yml +4 -3
  114. data/config/locales/tr.yml +10 -2
  115. data/config/locales/uk.yml +4 -3
  116. data/config/locales/vi.yml +53 -12
  117. data/config/locales/zh-CN.yml +34 -7
  118. data/config/locales/zh-TW.yml +2 -3
  119. data/docs/.gitignore +1 -0
  120. data/docs/0-installation.md +42 -15
  121. data/docs/1-general-configuration.md +46 -4
  122. data/docs/10-custom-pages.md +24 -5
  123. data/docs/11-decorators.md +17 -5
  124. data/docs/12-arbre-components.md +47 -9
  125. data/docs/13-authorization-adapter.md +69 -35
  126. data/docs/14-gotchas.md +41 -22
  127. data/docs/2-resource-customization.md +57 -20
  128. data/docs/3-index-pages/custom-index.md +2 -1
  129. data/docs/3-index-pages/index-as-block.md +0 -5
  130. data/docs/3-index-pages/index-as-blog.md +1 -6
  131. data/docs/3-index-pages/index-as-grid.md +0 -5
  132. data/docs/3-index-pages/index-as-table.md +13 -14
  133. data/docs/3-index-pages.md +47 -12
  134. data/docs/4-csv-format.md +2 -1
  135. data/docs/5-forms.md +65 -22
  136. data/docs/6-show-pages.md +14 -1
  137. data/docs/7-sidebars.md +2 -1
  138. data/docs/8-custom-actions.md +16 -2
  139. data/docs/9-batch-actions.md +5 -3
  140. data/docs/CNAME +1 -1
  141. data/docs/Gemfile +4 -2
  142. data/docs/Gemfile.lock +283 -0
  143. data/docs/_config.yml +3 -1
  144. data/docs/_includes/toc.html +1 -1
  145. data/docs/_includes/top-menu.html +9 -1
  146. data/docs/documentation.md +21 -23
  147. data/docs/images/tidelift.svg +14 -0
  148. data/docs/index.html +110 -9
  149. data/docs/stylesheets/main.css +55 -2
  150. data/lib/active_admin/abstract_view_factory.rb +14 -51
  151. data/lib/active_admin/application.rb +65 -170
  152. data/lib/active_admin/application_settings.rb +43 -0
  153. data/lib/active_admin/asset_registration.rb +1 -0
  154. data/lib/active_admin/authorization_adapter.rb +4 -6
  155. data/lib/active_admin/base_controller/authorization.rb +18 -19
  156. data/lib/active_admin/base_controller/menu.rb +10 -9
  157. data/lib/active_admin/base_controller.rb +12 -12
  158. data/lib/active_admin/batch_actions/controller.rb +6 -5
  159. data/lib/active_admin/batch_actions/resource_extension.rb +16 -10
  160. data/lib/active_admin/batch_actions/views/batch_action_form.rb +4 -3
  161. data/lib/active_admin/batch_actions/views/batch_action_selector.rb +7 -6
  162. data/lib/active_admin/batch_actions/views/selection_cells.rb +8 -6
  163. data/lib/active_admin/batch_actions.rb +1 -0
  164. data/lib/active_admin/callbacks.rb +2 -1
  165. data/lib/active_admin/cancan_adapter.rb +2 -1
  166. data/lib/active_admin/collection_decorator.rb +32 -0
  167. data/lib/active_admin/component.rb +1 -0
  168. data/lib/active_admin/controller_action.rb +3 -1
  169. data/lib/active_admin/csv_builder.rb +22 -14
  170. data/lib/active_admin/dependency.rb +15 -78
  171. data/lib/active_admin/deprecation.rb +1 -25
  172. data/lib/active_admin/devise.rb +18 -7
  173. data/lib/active_admin/dsl.rb +5 -11
  174. data/lib/active_admin/dynamic_setting.rb +39 -0
  175. data/lib/active_admin/dynamic_settings_node.rb +29 -0
  176. data/lib/active_admin/engine.rb +16 -7
  177. data/lib/active_admin/error.rb +5 -4
  178. data/lib/active_admin/filters/active.rb +14 -14
  179. data/lib/active_admin/filters/active_filter.rb +124 -0
  180. data/lib/active_admin/filters/active_sidebar.rb +28 -0
  181. data/lib/active_admin/filters/dsl.rb +1 -0
  182. data/lib/active_admin/filters/forms.rb +12 -9
  183. data/lib/active_admin/filters/formtastic_addons.rb +3 -7
  184. data/lib/active_admin/filters/resource_extension.rb +32 -35
  185. data/lib/active_admin/filters.rb +8 -5
  186. data/lib/active_admin/form_builder.rb +110 -70
  187. data/lib/active_admin/generators/boilerplate.rb +13 -4
  188. data/lib/active_admin/helpers/collection.rb +2 -0
  189. data/lib/active_admin/helpers/i18n.rb +1 -0
  190. data/lib/active_admin/helpers/optional_display.rb +3 -2
  191. data/lib/active_admin/helpers/routes/url_helpers.rb +1 -0
  192. data/lib/active_admin/helpers/scope_chain.rb +2 -0
  193. data/lib/active_admin/inputs/datepicker_input.rb +14 -6
  194. data/lib/active_admin/inputs/filters/base/search_method_select.rb +7 -6
  195. data/lib/active_admin/inputs/filters/base.rb +2 -1
  196. data/lib/active_admin/inputs/filters/boolean_input.rb +2 -1
  197. data/lib/active_admin/inputs/filters/check_boxes_input.rb +2 -1
  198. data/lib/active_admin/inputs/filters/date_picker_input.rb +1 -0
  199. data/lib/active_admin/inputs/filters/date_range_input.rb +24 -12
  200. data/lib/active_admin/inputs/filters/numeric_input.rb +1 -0
  201. data/lib/active_admin/inputs/filters/select_input.rb +8 -3
  202. data/lib/active_admin/inputs/filters/string_input.rb +1 -0
  203. data/lib/active_admin/inputs/filters/text_input.rb +1 -1
  204. data/lib/active_admin/inputs.rb +1 -0
  205. data/lib/active_admin/localizers/resource_localizer.rb +4 -3
  206. data/lib/active_admin/localizers.rb +2 -1
  207. data/lib/active_admin/menu.rb +13 -15
  208. data/lib/active_admin/menu_collection.rb +1 -2
  209. data/lib/active_admin/menu_item.rb +11 -38
  210. data/lib/active_admin/namespace.rb +33 -20
  211. data/lib/active_admin/namespace_settings.rb +127 -0
  212. data/lib/active_admin/order_clause.rb +4 -3
  213. data/lib/active_admin/orm/active_record/comments/comment.rb +6 -9
  214. data/lib/active_admin/orm/active_record/comments/namespace_helper.rb +1 -0
  215. data/lib/active_admin/orm/active_record/comments/resource_helper.rb +1 -0
  216. data/lib/active_admin/orm/active_record/comments/show_page_helper.rb +1 -0
  217. data/lib/active_admin/orm/active_record/comments/views/active_admin_comments.rb +37 -24
  218. data/lib/active_admin/orm/active_record/comments/views.rb +3 -2
  219. data/lib/active_admin/orm/active_record/comments.rb +35 -23
  220. data/lib/active_admin/orm/active_record.rb +2 -1
  221. data/lib/active_admin/orm/mongoid.rb +1 -0
  222. data/lib/active_admin/page.rb +2 -1
  223. data/lib/active_admin/page_controller.rb +2 -1
  224. data/lib/active_admin/page_dsl.rb +2 -1
  225. data/lib/active_admin/page_presenter.rb +3 -1
  226. data/lib/active_admin/pundit_adapter.rb +23 -9
  227. data/lib/active_admin/resource/action_items.rb +16 -6
  228. data/lib/active_admin/resource/attributes.rb +10 -6
  229. data/lib/active_admin/resource/belongs_to.rb +9 -3
  230. data/lib/active_admin/resource/controllers.rb +2 -1
  231. data/lib/active_admin/resource/includes.rb +1 -0
  232. data/lib/active_admin/resource/menu.rb +6 -5
  233. data/lib/active_admin/resource/model.rb +16 -0
  234. data/lib/active_admin/resource/naming.rb +6 -5
  235. data/lib/active_admin/resource/ordering.rb +1 -0
  236. data/lib/active_admin/resource/page_presenters.rb +2 -1
  237. data/lib/active_admin/resource/pagination.rb +1 -0
  238. data/lib/active_admin/resource/routes.rb +26 -15
  239. data/lib/active_admin/resource/scope_to.rb +8 -7
  240. data/lib/active_admin/resource/scopes.rb +5 -3
  241. data/lib/active_admin/resource/sidebars.rb +3 -2
  242. data/lib/active_admin/resource.rb +37 -22
  243. data/lib/active_admin/resource_collection.rb +3 -2
  244. data/lib/active_admin/resource_controller/action_builder.rb +11 -0
  245. data/lib/active_admin/resource_controller/data_access.rb +16 -12
  246. data/lib/active_admin/resource_controller/decorators.rb +10 -31
  247. data/lib/active_admin/resource_controller/polymorphic_routes.rb +38 -0
  248. data/lib/active_admin/resource_controller/resource_class_methods.rb +3 -0
  249. data/lib/active_admin/resource_controller/scoping.rb +2 -1
  250. data/lib/active_admin/resource_controller/sidebars.rb +1 -0
  251. data/lib/active_admin/resource_controller/streaming.rb +9 -7
  252. data/lib/active_admin/resource_controller.rb +15 -11
  253. data/lib/active_admin/resource_dsl.rb +18 -28
  254. data/lib/active_admin/router.rb +91 -84
  255. data/lib/active_admin/scope.rb +22 -13
  256. data/lib/active_admin/settings_node.rb +20 -0
  257. data/lib/active_admin/sidebar_section.rb +4 -1
  258. data/lib/active_admin/version.rb +2 -1
  259. data/lib/active_admin/view_factory.rb +18 -17
  260. data/lib/active_admin/view_helpers/active_admin_application_helper.rb +1 -0
  261. data/lib/active_admin/view_helpers/auto_link_helper.rb +1 -0
  262. data/lib/active_admin/view_helpers/breadcrumb_helper.rb +6 -5
  263. data/lib/active_admin/view_helpers/display_helper.rb +26 -9
  264. data/lib/active_admin/view_helpers/download_format_links_helper.rb +3 -1
  265. data/lib/active_admin/view_helpers/fields_for.rb +3 -2
  266. data/lib/active_admin/view_helpers/flash_helper.rb +1 -0
  267. data/lib/active_admin/view_helpers/form_helper.rb +2 -1
  268. data/lib/active_admin/view_helpers/method_or_proc_helper.rb +4 -0
  269. data/lib/active_admin/view_helpers/scope_name_helper.rb +17 -0
  270. data/lib/active_admin/view_helpers/sidebar_helper.rb +1 -0
  271. data/lib/active_admin/view_helpers/title_helper.rb +1 -0
  272. data/lib/active_admin/view_helpers/view_factory_helper.rb +1 -0
  273. data/lib/active_admin/view_helpers.rb +3 -1
  274. data/lib/active_admin/views/action_items.rb +2 -1
  275. data/lib/active_admin/views/components/active_admin_form.rb +15 -9
  276. data/lib/active_admin/views/components/active_filters_sidebar_content.rb +59 -0
  277. data/lib/active_admin/views/components/attributes_table.rb +9 -8
  278. data/lib/active_admin/views/components/blank_slate.rb +2 -1
  279. data/lib/active_admin/views/components/columns.rb +1 -0
  280. data/lib/active_admin/views/components/dropdown_menu.rb +9 -11
  281. data/lib/active_admin/views/components/index_list.rb +4 -5
  282. data/lib/active_admin/views/components/menu.rb +33 -0
  283. data/lib/active_admin/views/components/menu_item.rb +59 -0
  284. data/lib/active_admin/views/components/paginated_collection.rb +22 -20
  285. data/lib/active_admin/views/components/panel.rb +2 -1
  286. data/lib/active_admin/views/components/scopes.rb +19 -17
  287. data/lib/active_admin/views/components/sidebar.rb +14 -0
  288. data/lib/active_admin/views/components/sidebar_section.rb +1 -0
  289. data/lib/active_admin/views/components/site_title.rb +7 -7
  290. data/lib/active_admin/views/components/status_tag.rb +19 -23
  291. data/lib/active_admin/views/components/table_for.rb +22 -29
  292. data/lib/active_admin/views/components/tabs.rb +18 -5
  293. data/lib/active_admin/views/components/unsupported_browser.rb +1 -0
  294. data/lib/active_admin/views/footer.rb +6 -8
  295. data/lib/active_admin/views/header.rb +4 -16
  296. data/lib/active_admin/views/index_as_block.rb +1 -0
  297. data/lib/active_admin/views/index_as_blog.rb +4 -4
  298. data/lib/active_admin/views/index_as_grid.rb +27 -26
  299. data/lib/active_admin/views/index_as_table.rb +53 -26
  300. data/lib/active_admin/views/pages/base.rb +47 -63
  301. data/lib/active_admin/views/pages/form.rb +1 -0
  302. data/lib/active_admin/views/pages/index.rb +16 -13
  303. data/lib/active_admin/views/pages/layout.rb +1 -0
  304. data/lib/active_admin/views/pages/page.rb +1 -0
  305. data/lib/active_admin/views/pages/show.rb +7 -1
  306. data/lib/active_admin/views/tabbed_navigation.rb +5 -59
  307. data/lib/active_admin/views/title_bar.rb +6 -5
  308. data/lib/active_admin/views.rb +2 -1
  309. data/lib/active_admin.rb +70 -68
  310. data/lib/activeadmin.rb +2 -1
  311. data/lib/generators/active_admin/assets/assets_generator.rb +3 -2
  312. data/lib/generators/active_admin/assets/templates/active_admin.js +1 -0
  313. data/lib/generators/active_admin/assets/templates/active_admin.scss +2 -2
  314. data/lib/generators/active_admin/devise/devise_generator.rb +7 -6
  315. data/lib/generators/active_admin/install/install_generator.rb +19 -8
  316. data/lib/generators/active_admin/install/templates/active_admin.rb.erb +45 -3
  317. data/lib/generators/active_admin/install/templates/{admin_user.rb.erb → admin_users.rb.erb} +1 -1
  318. data/lib/generators/active_admin/install/templates/dashboard.rb +3 -3
  319. data/lib/generators/active_admin/install/templates/migrations/create_active_admin_comments.rb.erb +1 -15
  320. data/lib/generators/active_admin/page/page_generator.rb +2 -1
  321. data/lib/generators/active_admin/page/templates/page.rb +1 -0
  322. data/lib/generators/active_admin/resource/resource_generator.rb +5 -4
  323. data/lib/generators/active_admin/resource/templates/admin.rb.erb +40 -37
  324. data/lib/generators/active_admin/webpacker/plugins/jquery.js +7 -0
  325. data/lib/generators/active_admin/webpacker/templates/active_admin.js +5 -0
  326. data/lib/generators/active_admin/webpacker/templates/active_admin.scss +17 -0
  327. data/lib/generators/active_admin/webpacker/templates/print.scss +2 -0
  328. data/lib/generators/active_admin/webpacker/webpacker_generator.rb +27 -0
  329. data/lib/ransack_ext.rb +10 -9
  330. data/vendor/assets/javascripts/jquery-ui/data.js +41 -0
  331. data/vendor/assets/javascripts/jquery-ui/disable-selection.js +48 -0
  332. data/vendor/assets/javascripts/jquery-ui/escape-selector.js +23 -0
  333. data/vendor/assets/javascripts/jquery-ui/focusable.js +86 -0
  334. data/vendor/assets/javascripts/jquery-ui/form-reset-mixin.js +80 -0
  335. data/vendor/assets/javascripts/jquery-ui/form.js +22 -0
  336. data/vendor/assets/javascripts/jquery-ui/ie.js +17 -0
  337. data/vendor/assets/javascripts/jquery-ui/keycode.js +47 -0
  338. data/vendor/assets/javascripts/jquery-ui/labels.js +65 -0
  339. data/vendor/assets/javascripts/jquery-ui/plugin.js +46 -0
  340. data/vendor/assets/javascripts/jquery-ui/position.js +500 -0
  341. data/vendor/assets/javascripts/jquery-ui/safe-active-element.js +42 -0
  342. data/vendor/assets/javascripts/jquery-ui/safe-blur.js +23 -0
  343. data/vendor/assets/javascripts/jquery-ui/scroll-parent.js +47 -0
  344. data/vendor/assets/javascripts/jquery-ui/tabbable.js +38 -0
  345. data/vendor/assets/javascripts/jquery-ui/unique-id.js +51 -0
  346. data/vendor/assets/javascripts/jquery-ui/version.js +17 -0
  347. data/vendor/assets/javascripts/jquery-ui/widget.js +735 -0
  348. data/vendor/assets/javascripts/jquery-ui/widgets/button.js +391 -0
  349. data/vendor/assets/javascripts/jquery-ui/widgets/checkboxradio.js +291 -0
  350. data/vendor/assets/javascripts/jquery-ui/widgets/controlgroup.js +300 -0
  351. data/vendor/assets/javascripts/jquery-ui/widgets/datepicker.js +2123 -0
  352. data/vendor/assets/javascripts/jquery-ui/widgets/dialog.js +954 -0
  353. data/vendor/assets/javascripts/jquery-ui/widgets/draggable.js +1259 -0
  354. data/vendor/assets/javascripts/jquery-ui/widgets/mouse.js +230 -0
  355. data/vendor/assets/javascripts/jquery-ui/widgets/resizable.js +1207 -0
  356. data/vendor/assets/javascripts/jquery-ui/widgets/sortable.js +1561 -0
  357. data/vendor/assets/javascripts/jquery-ui/widgets/tabs.js +931 -0
  358. metadata +158 -580
  359. data/.gitignore +0 -49
  360. data/.hound.yml +0 -14
  361. data/.rubocop.yml +0 -27
  362. data/.travis.yml +0 -66
  363. data/.yardopts +0 -8
  364. data/Appraisals +0 -41
  365. data/Gemfile +0 -49
  366. data/Rakefile +0 -65
  367. data/activeadmin.gemspec +0 -34
  368. data/app/assets/images/active_admin/datepicker/datepicker-input-icon.png +0 -0
  369. data/app/assets/images/active_admin/nested_menu_arrow.gif +0 -0
  370. data/app/assets/images/active_admin/nested_menu_arrow_dark.gif +0 -0
  371. data/app/assets/images/active_admin/orderable.png +0 -0
  372. data/app/assets/javascripts/active_admin/base.js.coffee +0 -9
  373. data/app/assets/javascripts/active_admin/ext/jquery-ui.js.coffee +0 -6
  374. data/app/assets/javascripts/active_admin/ext/jquery.js.coffee +0 -7
  375. data/app/assets/javascripts/active_admin/initializers/batch_actions.js.coffee +0 -7
  376. data/app/assets/javascripts/active_admin/initializers/datepicker.js.coffee +0 -10
  377. data/app/assets/javascripts/active_admin/initializers/filters.js.coffee +0 -22
  378. data/app/assets/javascripts/active_admin/initializers/tabs.js.coffee +0 -3
  379. data/app/assets/javascripts/active_admin/jquery_ui.js.erb +0 -18
  380. data/app/assets/javascripts/active_admin/lib/batch_actions.js.coffee +0 -39
  381. data/app/assets/javascripts/active_admin/lib/checkbox-toggler.js.coffee +0 -44
  382. data/app/assets/javascripts/active_admin/lib/dropdown-menu.js.coffee +0 -101
  383. data/app/assets/javascripts/active_admin/lib/flash.js.coffee +0 -19
  384. data/app/assets/javascripts/active_admin/lib/has_many.js.coffee +0 -79
  385. data/app/assets/javascripts/active_admin/lib/modal_dialog.js.coffee +0 -45
  386. data/app/assets/javascripts/active_admin/lib/per_page.js.coffee +0 -42
  387. data/app/assets/javascripts/active_admin/lib/table-checkbox-toggler.js.coffee +0 -24
  388. data/app/assets/stylesheets/active_admin/mixins/_reset.scss +0 -165
  389. data/codecov.yml +0 -23
  390. data/cucumber.yml +0 -3
  391. data/features/action_item.feature +0 -73
  392. data/features/authorization.feature +0 -64
  393. data/features/authorization_cancan.feature +0 -52
  394. data/features/authorization_pundit.feature +0 -37
  395. data/features/belongs_to.feature +0 -124
  396. data/features/breadcrumb.feature +0 -75
  397. data/features/comments/commenting.feature +0 -158
  398. data/features/comments/viewing_index.feature +0 -19
  399. data/features/create_another.feature +0 -55
  400. data/features/dashboard.feature +0 -16
  401. data/features/decorators.feature +0 -43
  402. data/features/development_reloading.feature +0 -28
  403. data/features/edit_page.feature +0 -116
  404. data/features/favicon.feature +0 -20
  405. data/features/first_boot.feature +0 -16
  406. data/features/footer.feature +0 -28
  407. data/features/global_navigation.feature +0 -29
  408. data/features/i18n.feature +0 -55
  409. data/features/index/batch_actions.feature +0 -218
  410. data/features/index/filters.feature +0 -199
  411. data/features/index/format_as_csv.feature +0 -203
  412. data/features/index/formats.feature +0 -88
  413. data/features/index/index_as_block.feature +0 -15
  414. data/features/index/index_as_blog.feature +0 -69
  415. data/features/index/index_as_grid.feature +0 -45
  416. data/features/index/index_as_table.feature +0 -291
  417. data/features/index/index_blank_slate.feature +0 -83
  418. data/features/index/index_parameters.feature +0 -75
  419. data/features/index/index_scope_to.feature +0 -56
  420. data/features/index/index_scopes.feature +0 -270
  421. data/features/index/page_title.feature +0 -41
  422. data/features/index/pagination.feature +0 -63
  423. data/features/index/switch_index_view.feature +0 -73
  424. data/features/menu.feature +0 -72
  425. data/features/meta_tags.feature +0 -21
  426. data/features/new_page.feature +0 -107
  427. data/features/registering_assets.feature +0 -34
  428. data/features/registering_pages.feature +0 -237
  429. data/features/registering_resources.feature +0 -33
  430. data/features/renamed_resource.feature +0 -30
  431. data/features/root_to.feature +0 -17
  432. data/features/show/columns.feature +0 -40
  433. data/features/show/default_content.feature +0 -44
  434. data/features/show/page_title.feature +0 -58
  435. data/features/show/tabs.feature +0 -27
  436. data/features/sidebar_sections.feature +0 -210
  437. data/features/site_title.feature +0 -47
  438. data/features/specifying_actions.feature +0 -118
  439. data/features/step_definitions/action_item_steps.rb +0 -7
  440. data/features/step_definitions/action_link_steps.rb +0 -20
  441. data/features/step_definitions/additional_web_steps.rb +0 -81
  442. data/features/step_definitions/asset_steps.rb +0 -15
  443. data/features/step_definitions/attribute_steps.rb +0 -18
  444. data/features/step_definitions/batch_action_steps.rb +0 -81
  445. data/features/step_definitions/blog_steps.rb +0 -3
  446. data/features/step_definitions/breadcrumb_steps.rb +0 -3
  447. data/features/step_definitions/column_steps.rb +0 -8
  448. data/features/step_definitions/comment_steps.rb +0 -12
  449. data/features/step_definitions/configuration_steps.rb +0 -100
  450. data/features/step_definitions/dashboard_steps.rb +0 -15
  451. data/features/step_definitions/factory_steps.rb +0 -35
  452. data/features/step_definitions/filter_steps.rb +0 -39
  453. data/features/step_definitions/flash_steps.rb +0 -11
  454. data/features/step_definitions/footer_steps.rb +0 -11
  455. data/features/step_definitions/format_steps.rb +0 -56
  456. data/features/step_definitions/i18n_steps.rb +0 -11
  457. data/features/step_definitions/index_scope_steps.rb +0 -25
  458. data/features/step_definitions/index_views_steps.rb +0 -3
  459. data/features/step_definitions/layout_steps.rb +0 -3
  460. data/features/step_definitions/member_link_steps.rb +0 -7
  461. data/features/step_definitions/menu_steps.rb +0 -11
  462. data/features/step_definitions/meta_tag_steps.rb +0 -3
  463. data/features/step_definitions/pagination_steps.rb +0 -15
  464. data/features/step_definitions/sidebar_steps.rb +0 -11
  465. data/features/step_definitions/site_title_steps.rb +0 -17
  466. data/features/step_definitions/tab_steps.rb +0 -8
  467. data/features/step_definitions/table_steps.rb +0 -116
  468. data/features/step_definitions/user_steps.rb +0 -52
  469. data/features/step_definitions/web_steps.rb +0 -86
  470. data/features/sti_resource.feature +0 -65
  471. data/features/strong_parameters.feature +0 -69
  472. data/features/support/env.rb +0 -121
  473. data/features/support/paths.rb +0 -73
  474. data/features/support/selectors.rb +0 -45
  475. data/features/users/logging_in.feature +0 -36
  476. data/features/users/logging_out.feature +0 -13
  477. data/features/users/resetting_password.feature +0 -34
  478. data/gemfiles/rails_42.gemfile +0 -45
  479. data/gemfiles/rails_50.gemfile +0 -45
  480. data/gemfiles/rails_51.gemfile +0 -45
  481. data/lib/active_admin/event.rb +0 -24
  482. data/lib/active_admin/filters/humanized.rb +0 -68
  483. data/lib/active_admin/helpers/settings.rb +0 -115
  484. data/lib/active_admin/reloader.rb +0 -25
  485. data/lib/bug_report_templates/rails_5_master.rb +0 -118
  486. data/lib/generators/active_admin/assets/templates/active_admin.js.coffee +0 -1
  487. data/spec/bug_report_templates_spec.rb +0 -27
  488. data/spec/javascripts/coffeescripts/jquery.aa.checkbox-toggler-spec.js.coffee +0 -50
  489. data/spec/javascripts/coffeescripts/jquery.aa.flash.js.coffee +0 -25
  490. data/spec/javascripts/coffeescripts/jquery.aa.table-checkbox-toggler-spec.js.coffee +0 -34
  491. data/spec/javascripts/fixtures/checkboxes.html +0 -9
  492. data/spec/javascripts/fixtures/flashes.html +0 -2
  493. data/spec/javascripts/fixtures/table_checkboxes.html +0 -17
  494. data/spec/javascripts/helpers/SpecHelper.js +0 -3
  495. data/spec/javascripts/support/jasmine.yml +0 -74
  496. data/spec/javascripts/support/jasmine_runner.rb +0 -19
  497. data/spec/rails_helper.rb +0 -62
  498. data/spec/requests/default_namespace_spec.rb +0 -81
  499. data/spec/requests/javascript_spec.rb +0 -22
  500. data/spec/requests/memory_spec.rb +0 -25
  501. data/spec/requests/stylesheets_spec.rb +0 -18
  502. data/spec/spec_helper.rb +0 -12
  503. data/spec/support/active_admin_integration_spec_helper.rb +0 -73
  504. data/spec/support/active_admin_request_helpers.rb +0 -39
  505. data/spec/support/jslint.yml +0 -80
  506. data/spec/support/rails_template.rb +0 -182
  507. data/spec/support/rails_template_with_data.rb +0 -68
  508. data/spec/support/templates/admin/stores.rb +0 -7
  509. data/spec/support/templates/en.yml +0 -8
  510. data/spec/support/templates/manifest.js +0 -3
  511. data/spec/support/templates/policies/active_admin/comment_policy.rb +0 -9
  512. data/spec/support/templates/policies/active_admin/page_policy.rb +0 -18
  513. data/spec/support/templates/policies/admin_user_policy.rb +0 -11
  514. data/spec/support/templates/policies/application_policy.rb +0 -45
  515. data/spec/support/templates/policies/category_policy.rb +0 -7
  516. data/spec/support/templates/policies/post_policy.rb +0 -15
  517. data/spec/support/templates/policies/store_policy.rb +0 -11
  518. data/spec/support/templates/policies/user_policy.rb +0 -11
  519. data/spec/support/templates/post_decorator.rb +0 -11
  520. data/spec/unit/abstract_view_factory_spec.rb +0 -79
  521. data/spec/unit/action_builder_spec.rb +0 -125
  522. data/spec/unit/active_admin_spec.rb +0 -11
  523. data/spec/unit/application_spec.rb +0 -180
  524. data/spec/unit/asset_registration_spec.rb +0 -52
  525. data/spec/unit/authorization/authorization_adapter_spec.rb +0 -61
  526. data/spec/unit/authorization/controller_authorization_spec.rb +0 -43
  527. data/spec/unit/authorization/index_overriding_spec.rb +0 -23
  528. data/spec/unit/auto_link_spec.rb +0 -93
  529. data/spec/unit/batch_actions/resource_spec.rb +0 -84
  530. data/spec/unit/batch_actions/settings_spec.rb +0 -61
  531. data/spec/unit/belongs_to_spec.rb +0 -77
  532. data/spec/unit/cancan_adapter_spec.rb +0 -43
  533. data/spec/unit/comments_spec.rb +0 -176
  534. data/spec/unit/component_spec.rb +0 -18
  535. data/spec/unit/config_shared_examples.rb +0 -59
  536. data/spec/unit/controller_filters_spec.rb +0 -41
  537. data/spec/unit/csv_builder_spec.rb +0 -306
  538. data/spec/unit/dependency_spec.rb +0 -135
  539. data/spec/unit/devise_spec.rb +0 -110
  540. data/spec/unit/dsl_spec.rb +0 -122
  541. data/spec/unit/filters/active_spec.rb +0 -14
  542. data/spec/unit/filters/filter_form_builder_spec.rb +0 -500
  543. data/spec/unit/filters/humanized_spec.rb +0 -64
  544. data/spec/unit/filters/resource_spec.rb +0 -128
  545. data/spec/unit/form_builder_spec.rb +0 -990
  546. data/spec/unit/generators/install_spec.rb +0 -31
  547. data/spec/unit/helpers/collection_spec.rb +0 -68
  548. data/spec/unit/helpers/scope_chain_spec.rb +0 -36
  549. data/spec/unit/helpers/settings_spec.rb +0 -30
  550. data/spec/unit/i18n_spec.rb +0 -12
  551. data/spec/unit/localizers/resource_localizer_spec.rb +0 -36
  552. data/spec/unit/menu_collection_spec.rb +0 -62
  553. data/spec/unit/menu_item_spec.rb +0 -143
  554. data/spec/unit/menu_spec.rb +0 -71
  555. data/spec/unit/namespace/authorization_spec.rb +0 -27
  556. data/spec/unit/namespace/register_page_spec.rb +0 -99
  557. data/spec/unit/namespace/register_resource_spec.rb +0 -162
  558. data/spec/unit/namespace_spec.rb +0 -125
  559. data/spec/unit/order_clause_spec.rb +0 -81
  560. data/spec/unit/page_controller_spec.rb +0 -5
  561. data/spec/unit/page_spec.rb +0 -131
  562. data/spec/unit/pretty_format_spec.rb +0 -82
  563. data/spec/unit/pundit_adapter_spec.rb +0 -98
  564. data/spec/unit/resource/action_items_spec.rb +0 -65
  565. data/spec/unit/resource/attributes_spec.rb +0 -50
  566. data/spec/unit/resource/includes_spec.rb +0 -21
  567. data/spec/unit/resource/menu_spec.rb +0 -18
  568. data/spec/unit/resource/naming_spec.rb +0 -122
  569. data/spec/unit/resource/ordering_spec.rb +0 -38
  570. data/spec/unit/resource/page_presenters_spec.rb +0 -44
  571. data/spec/unit/resource/pagination_spec.rb +0 -38
  572. data/spec/unit/resource/routes_spec.rb +0 -125
  573. data/spec/unit/resource/scopes_spec.rb +0 -50
  574. data/spec/unit/resource/sidebars_spec.rb +0 -43
  575. data/spec/unit/resource_collection_spec.rb +0 -175
  576. data/spec/unit/resource_controller/data_access_spec.rb +0 -230
  577. data/spec/unit/resource_controller/decorators_spec.rb +0 -94
  578. data/spec/unit/resource_controller/sidebars_spec.rb +0 -37
  579. data/spec/unit/resource_controller_spec.rb +0 -274
  580. data/spec/unit/resource_registration_spec.rb +0 -61
  581. data/spec/unit/resource_spec.rb +0 -313
  582. data/spec/unit/routing_spec.rb +0 -213
  583. data/spec/unit/scope_spec.rb +0 -209
  584. data/spec/unit/settings_spec.rb +0 -118
  585. data/spec/unit/view_factory_spec.rb +0 -19
  586. data/spec/unit/view_helpers/breadcrumbs_spec.rb +0 -252
  587. data/spec/unit/view_helpers/display_helper_spec.rb +0 -195
  588. data/spec/unit/view_helpers/download_format_links_helper_spec.rb +0 -39
  589. data/spec/unit/view_helpers/fields_for_spec.rb +0 -50
  590. data/spec/unit/view_helpers/flash_helper_spec.rb +0 -25
  591. data/spec/unit/view_helpers/form_helper_spec.rb +0 -43
  592. data/spec/unit/view_helpers/method_or_proc_helper_spec.rb +0 -139
  593. data/spec/unit/views/components/attributes_table_spec.rb +0 -272
  594. data/spec/unit/views/components/batch_action_selector_spec.rb +0 -43
  595. data/spec/unit/views/components/blank_slate_spec.rb +0 -27
  596. data/spec/unit/views/components/columns_spec.rb +0 -189
  597. data/spec/unit/views/components/index_list_spec.rb +0 -49
  598. data/spec/unit/views/components/index_table_for_spec.rb +0 -127
  599. data/spec/unit/views/components/paginated_collection_spec.rb +0 -249
  600. data/spec/unit/views/components/panel_spec.rb +0 -58
  601. data/spec/unit/views/components/sidebar_section_spec.rb +0 -68
  602. data/spec/unit/views/components/site_title_spec.rb +0 -78
  603. data/spec/unit/views/components/status_tag_spec.rb +0 -249
  604. data/spec/unit/views/components/table_for_spec.rb +0 -436
  605. data/spec/unit/views/components/tabs_spec.rb +0 -39
  606. data/spec/unit/views/components/unsupported_browser_spec.rb +0 -41
  607. data/spec/unit/views/index_as_blog_spec.rb +0 -76
  608. data/spec/unit/views/pages/form_spec.rb +0 -54
  609. data/spec/unit/views/pages/index_spec.rb +0 -60
  610. data/spec/unit/views/pages/layout_spec.rb +0 -59
  611. data/spec/unit/views/pages/show_spec.rb +0 -32
  612. data/spec/unit/views/tabbed_navigation_spec.rb +0 -158
  613. data/tasks/docs.rake +0 -37
  614. data/tasks/lint.rake +0 -8
  615. data/tasks/local.rake +0 -25
  616. data/tasks/parallel_tests.rake +0 -66
  617. data/tasks/test.rake +0 -46
  618. data/tasks/yard.rake +0 -9
@@ -1,79 +0,0 @@
1
- require 'rails_helper'
2
-
3
- require 'active_admin/abstract_view_factory'
4
-
5
- RSpec.describe ActiveAdmin::AbstractViewFactory do
6
-
7
- let(:view_factory){ ActiveAdmin::AbstractViewFactory.new }
8
- let(:view){ Class.new }
9
-
10
- describe "registering a new view key" do
11
- before do
12
- view_factory.register my_new_view_class: view
13
- end
14
-
15
- it "should respond to :my_new_view_class" do
16
- expect(view_factory.respond_to? :my_new_view_class).to be true
17
- end
18
-
19
- it "should respond to :my_new_view_class=" do
20
- expect(view_factory.respond_to? :my_new_view_class=).to be true
21
- end
22
-
23
- it "should generate a getter method" do
24
- expect(view_factory.my_new_view_class).to eq view
25
- end
26
-
27
- it "should be settable view a setter method" do
28
- view_factory.my_new_view_class = "Some Obj"
29
- expect(view_factory.my_new_view_class).to eq "Some Obj"
30
- end
31
- end
32
-
33
- describe "array syntax access" do
34
- before do
35
- view_factory.register my_new_view_class: view
36
- end
37
-
38
- it "should be available through array syntax" do
39
- expect(view_factory[:my_new_view_class]).to eq view
40
- end
41
-
42
- it "should be settable through array syntax" do
43
- view_factory[:my_new_view_class] = "My New View Class"
44
- expect(view_factory[:my_new_view_class]).to eq "My New View Class"
45
- end
46
- end
47
-
48
- describe "registering default views" do
49
- before do
50
- ActiveAdmin::AbstractViewFactory.register my_default_view_class: view
51
- end
52
- it "should generate a getter method" do
53
- expect(view_factory.my_default_view_class).to eq view
54
- end
55
- it "should be settable view a setter method and not change default" do
56
- view_factory.my_default_view_class = "Some Obj"
57
- expect(view_factory.my_default_view_class).to eq "Some Obj"
58
- expect(view_factory.default_for(:my_default_view_class)).to eq view
59
- end
60
- end
61
-
62
- describe "subclassing the ViewFactory" do
63
- let(:subclass) do
64
- ActiveAdmin::AbstractViewFactory.register my_subclassed_view: "From Parent"
65
- Class.new(ActiveAdmin::AbstractViewFactory) do
66
- def my_subclassed_view
67
- "From Subclass"
68
- end
69
- end
70
- end
71
-
72
- it "should use the subclass implementation" do
73
- factory = subclass.new
74
- expect(factory.my_subclassed_view).to eq "From Subclass"
75
- end
76
- end
77
-
78
-
79
- end
@@ -1,125 +0,0 @@
1
- require 'rails_helper'
2
-
3
- RSpec.describe 'defining actions from registration blocks', type: :controller do
4
- let(:klass){ Admin::PostsController }
5
-
6
- before do
7
- load_resources { action! }
8
-
9
- @controller = klass.new
10
- end
11
-
12
- describe 'creates a member action' do
13
- after(:each) do
14
- klass.clear_member_actions!
15
- end
16
-
17
- context 'with a block' do
18
- let(:action!) do
19
- ActiveAdmin.register Post do
20
- member_action :comment do
21
- # Do nothing
22
- end
23
- end
24
- end
25
-
26
- it 'should create a new public instance method' do
27
- expect(klass.public_instance_methods.collect(&:to_s)).to include('comment')
28
- end
29
-
30
- it 'should add itself to the member actions config' do
31
- expect(klass.active_admin_config.member_actions.size).to eq 1
32
- end
33
-
34
- it 'should create a new named route' do
35
- expect(Rails.application.routes.url_helpers.methods.collect(&:to_s)).to include('comment_admin_post_path')
36
- end
37
- end
38
-
39
- context 'without a block' do
40
- let(:action!) do
41
- ActiveAdmin.register Post do
42
- member_action :comment
43
- end
44
- end
45
-
46
- it 'should still generate a new empty action' do
47
- expect(klass.public_instance_methods.collect(&:to_s)).to include('comment')
48
- end
49
- end
50
-
51
- context 'with :title' do
52
- let(:action!) do
53
- ActiveAdmin.register Post do
54
- member_action :comment, title: 'My Awesome Comment' do
55
- render json: {a: 2}
56
- end
57
- end
58
- end
59
-
60
- it 'sets the page title' do
61
- params = {id: 1}
62
- params = {params: params} if ActiveAdmin::Dependency.rails5?
63
- get :comment, params
64
-
65
- expect(controller.instance_variable_get(:@page_title)).to eq 'My Awesome Comment'
66
- end
67
- end
68
- end
69
-
70
- describe 'creates a collection action' do
71
- after(:each) do
72
- klass.clear_collection_actions!
73
- end
74
-
75
- context 'with a block' do
76
- let(:action!) do
77
- ActiveAdmin.register Post do
78
- collection_action :comments do
79
- # Do nothing
80
- end
81
- end
82
- end
83
-
84
- it 'should create a public instance method' do
85
- expect(klass.public_instance_methods.collect(&:to_s)).to include('comments')
86
- end
87
-
88
- it 'should add itself to the member actions config' do
89
- expect(klass.active_admin_config.collection_actions.size).to eq 1
90
- end
91
-
92
- it 'should create a named route' do
93
- expect(Rails.application.routes.url_helpers.methods.collect(&:to_s)).to include('comments_admin_posts_path')
94
- end
95
- end
96
-
97
- context 'without a block' do
98
- let(:action!) do
99
- ActiveAdmin.register Post do
100
- collection_action :comments
101
- end
102
- end
103
-
104
- it 'should still generate a new empty action' do
105
- expect(klass.public_instance_methods.collect(&:to_s)).to include('comments')
106
- end
107
- end
108
-
109
- context 'with :title' do
110
- let(:action!) do
111
- ActiveAdmin.register Post do
112
- collection_action :comments, title: 'My Awesome Comments' do
113
- render json: {a: 2}
114
- end
115
- end
116
- end
117
-
118
- it 'sets the page title' do
119
- get :comments
120
-
121
- expect(controller.instance_variable_get(:@page_title)).to eq 'My Awesome Comments'
122
- end
123
- end
124
- end
125
- end
@@ -1,11 +0,0 @@
1
- require 'rails_helper'
2
-
3
- RSpec.describe ActiveAdmin do
4
- %w(register register_page unload! load! routes).each do |method|
5
- it "delegates ##{method} to application" do
6
- expect(ActiveAdmin.application).to receive(method)
7
-
8
- ActiveAdmin.send(method)
9
- end
10
- end
11
- end
@@ -1,180 +0,0 @@
1
- require 'rails_helper'
2
- require 'fileutils'
3
-
4
- RSpec.describe ActiveAdmin::Application do
5
-
6
- let(:application) { ActiveAdmin::Application.new }
7
-
8
- around do |example|
9
- old_load_paths = application.load_paths
10
- # TODO: Figure out why load paths need to be overriden
11
- application.load_paths = [File.expand_path('app/admin', Rails.root)]
12
-
13
- example.call
14
-
15
- application.load_paths = old_load_paths
16
- end
17
-
18
- it "should have a default load path of ['app/admin']" do
19
- expect(application.load_paths).to eq [File.expand_path('app/admin', Rails.root)]
20
- end
21
-
22
- it "should remove app/admin from the autoload paths (Active Admin deals with loading)" do
23
- expect(ActiveSupport::Dependencies.autoload_paths).to_not include(File.join(Rails.root, "app/admin"))
24
- end
25
-
26
- it "should store the site's title" do
27
- expect(application.site_title).to eq ""
28
- end
29
-
30
- it "should set the site title" do
31
- application.site_title = "New Title"
32
- expect(application.site_title).to eq "New Title"
33
- end
34
-
35
- it "should store the site's title link" do
36
- expect(application.site_title_link).to eq ""
37
- end
38
-
39
- it "should set the site's title link" do
40
- application.site_title_link = "http://www.mygreatsite.com"
41
- expect(application.site_title_link).to eq "http://www.mygreatsite.com"
42
- end
43
-
44
- it "should store the site's title image" do
45
- expect(application.site_title_image).to eq ""
46
- end
47
-
48
- it "should set the site's title image" do
49
- application.site_title_image = "http://railscasts.com/assets/episodes/stills/284-active-admin.png?1316476106"
50
- expect(application.site_title_image).to eq "http://railscasts.com/assets/episodes/stills/284-active-admin.png?1316476106"
51
- end
52
-
53
- it "should store the site's favicon" do
54
- expect(application.favicon).to eq false
55
- end
56
-
57
- it "should return default localize format" do
58
- expect(application.localize_format).to eq :long
59
- end
60
-
61
- it "should set localize format" do
62
- application.localize_format = :default
63
- expect(application.localize_format).to eq :default
64
- end
65
-
66
- it "should set the site's favicon" do
67
- application.favicon = "/a/favicon.ico"
68
- expect(application.favicon).to eq "/a/favicon.ico"
69
- end
70
-
71
- it "should store meta tags" do
72
- expect(application.meta_tags).to eq({})
73
- end
74
-
75
- it "should set meta tags" do
76
- application.meta_tags = { author: "My Company" }
77
- expect(application.meta_tags).to eq(author: "My Company")
78
- end
79
-
80
- it "should contains robots meta tags by default" do
81
- result = application.meta_tags_for_logged_out_pages
82
- expect(result).to eq(robots: "noindex, nofollow")
83
- end
84
-
85
- it "should set meta tags for logged out pages" do
86
- value = { author: "My Company" }
87
- application.meta_tags_for_logged_out_pages = value
88
- expect(application.meta_tags_for_logged_out_pages).to eq value
89
- end
90
-
91
- it "should have a view factory" do
92
- expect(application.view_factory).to be_an_instance_of(ActiveAdmin::ViewFactory)
93
- end
94
-
95
- it "should allow comments by default" do
96
- expect(application.comments).to eq true
97
- end
98
-
99
- it "should have default order clause class" do
100
- expect(application.order_clause).to eq ActiveAdmin::OrderClause
101
- end
102
-
103
- describe "authentication settings" do
104
-
105
- it "should have no default current_user_method" do
106
- expect(application.current_user_method).to eq false
107
- end
108
-
109
- it "should have no default authentication method" do
110
- expect(application.authentication_method).to eq false
111
- end
112
-
113
- it "should have a logout link path (Devise's default)" do
114
- expect(application.logout_link_path).to eq :destroy_admin_user_session_path
115
- end
116
-
117
- it "should have a logout link method (Devise's default)" do
118
- expect(application.logout_link_method).to eq :get
119
- end
120
- end
121
-
122
- describe "files in load path" do
123
- it "should load files in the first level directory" do
124
- expect(application.files).to include(File.expand_path("app/admin/dashboard.rb", Rails.root))
125
- end
126
-
127
- it "should load files from subdirectories" do
128
- test_dir = File.expand_path("app/admin/public", Rails.root)
129
- test_file = File.expand_path("app/admin/public/posts.rb", Rails.root)
130
-
131
- begin
132
- FileUtils.mkdir_p(test_dir)
133
- FileUtils.touch(test_file)
134
- expect(application.files).to include(test_file)
135
- ensure
136
- FileUtils.remove_entry_secure(test_dir, force: true)
137
- end
138
- end
139
- end
140
-
141
- describe "#namespace" do
142
-
143
- it "should yield a new namespace" do
144
- application.namespace :new_namespace do |ns|
145
- expect(ns.name).to eq :new_namespace
146
- end
147
- end
148
-
149
- it "should return an instantiated namespace" do
150
- admin = application.namespace :admin
151
- expect(admin).to eq application.namespaces[:admin]
152
- end
153
-
154
- it "should yield an existing namespace" do
155
- expect {
156
- application.namespace :admin do |ns|
157
- expect(ns).to eq application.namespaces[:admin]
158
- raise "found"
159
- end
160
- }.to raise_error("found")
161
- end
162
-
163
- it "should not pollute the global app" do
164
- expect(application.namespaces).to be_empty
165
- application.namespace(:brand_new_ns)
166
- expect(application.namespaces.names).to eq [:brand_new_ns]
167
- expect(ActiveAdmin.application.namespaces.names).to eq [:admin]
168
- end
169
- end
170
-
171
- describe "#register_page" do
172
- it "finds or create the namespace and register the page to it" do
173
- namespace = double
174
- expect(application).to receive(:namespace).with("public").and_return namespace
175
- expect(namespace).to receive(:register_page).with("My Page", {namespace: "public"})
176
- application.register_page("My Page", namespace: "public")
177
- end
178
- end
179
-
180
- end
@@ -1,52 +0,0 @@
1
- require 'rails_helper'
2
-
3
- RSpec.describe ActiveAdmin::AssetRegistration do
4
- include ActiveAdmin::AssetRegistration
5
-
6
- before do
7
- clear_stylesheets!
8
- clear_javascripts!
9
- end
10
-
11
- it "should register a stylesheet file" do
12
- register_stylesheet "active_admin.css"
13
- expect(stylesheets.length).to eq 1
14
- expect(stylesheets.keys.first).to eq "active_admin.css"
15
- end
16
-
17
- it "should clear all existing stylesheets" do
18
- register_stylesheet "active_admin.css"
19
- expect(stylesheets.length).to eq 1
20
- clear_stylesheets!
21
- expect(stylesheets).to be_empty
22
- end
23
-
24
- it "should allow media option when registering stylesheet" do
25
- register_stylesheet "active_admin.css", media: :print
26
- expect(stylesheets.values.first[:media]).to eq :print
27
- end
28
-
29
- it "shouldn't register a stylesheet twice" do
30
- register_stylesheet "active_admin.css"
31
- register_stylesheet "active_admin.css"
32
- expect(stylesheets.length).to eq 1
33
- end
34
-
35
- it "should register a javascript file" do
36
- register_javascript "active_admin.js"
37
- expect(javascripts).to eq ["active_admin.js"].to_set
38
- end
39
-
40
- it "should clear all existing javascripts" do
41
- register_javascript "active_admin.js"
42
- expect(javascripts).to eq ["active_admin.js"].to_set
43
- clear_javascripts!
44
- expect(javascripts).to be_empty
45
- end
46
-
47
- it "shouldn't register a javascript twice" do
48
- register_javascript "active_admin.js"
49
- register_javascript "active_admin.js"
50
- expect(javascripts.length).to eq 1
51
- end
52
- end
@@ -1,61 +0,0 @@
1
- require 'rails_helper'
2
-
3
- RSpec.describe ActiveAdmin::AuthorizationAdapter do
4
-
5
- let(:adapter) { ActiveAdmin::AuthorizationAdapter.new(double, double) }
6
-
7
- describe "#authorized?" do
8
-
9
- it "should always return true" do
10
- expect(adapter.authorized?(:read, "Resource")).to eq true
11
- end
12
-
13
- end
14
-
15
- describe "#scope_collection" do
16
-
17
- it "should return the collection unscoped" do
18
- collection = double
19
- expect(adapter.scope_collection(collection, ActiveAdmin::Auth::READ)).to eq collection
20
- end
21
-
22
- end
23
-
24
- describe "using #normalized in a subclass" do
25
-
26
- let(:auth_class) do
27
- Class.new(ActiveAdmin::AuthorizationAdapter) do
28
-
29
- def authorized?(action, subject = nil)
30
- case subject
31
- when normalized(String)
32
- true
33
- else
34
- false
35
- end
36
- end
37
-
38
- end
39
- end
40
-
41
- let(:adapter) { auth_class.new(double, double) }
42
-
43
- it "should match against a class" do
44
- expect(adapter.authorized?(:read, String)).to eq true
45
- end
46
-
47
- it 'should match against an instance' do
48
- expect(adapter.authorized?(:read, "String")).to eq true
49
- end
50
-
51
- it 'should not match a different class' do
52
- expect(adapter.authorized?(:read, Hash)).to eq false
53
- end
54
-
55
- it 'should not match a different instance' do
56
- expect(adapter.authorized?(:read, {})).to eq false
57
- end
58
-
59
- end
60
-
61
- end
@@ -1,43 +0,0 @@
1
- require 'rails_helper'
2
-
3
- RSpec.describe "Controller Authorization", type: :controller do
4
-
5
- let(:authorization){ controller.send(:active_admin_authorization) }
6
-
7
- before do
8
- load_resources { ActiveAdmin.register Post }
9
- @controller = Admin::PostsController.new
10
- allow(authorization).to receive(:authorized?)
11
- end
12
-
13
- it "should authorize the index action" do
14
- expect(authorization).to receive(:authorized?).with(auth::READ, Post).and_return true
15
- get :index
16
- expect(response).to be_success
17
- end
18
-
19
- it "should authorize the new action" do
20
- expect(authorization).to receive(:authorized?).with(auth::CREATE, an_instance_of(Post)).and_return true
21
- get :new
22
- expect(response).to be_success
23
- end
24
-
25
- it "should authorize the create action with the new resource" do
26
- expect(authorization).to receive(:authorized?).with(auth::CREATE, an_instance_of(Post)).and_return true
27
- post :create
28
- expect(response).to redirect_to action: 'show', id: Post.last.id
29
- end
30
-
31
- it "should redirect when the user isn't authorized" do
32
- expect(authorization).to receive(:authorized?).with(auth::READ, Post).and_return false
33
- get :index
34
- expect(response.body).to eq '<html><body>You are being <a href="http://test.host/admin">redirected</a>.</body></html>'
35
- expect(response).to redirect_to '/admin'
36
- end
37
-
38
- private
39
-
40
- def auth
41
- ActiveAdmin::Authorization
42
- end
43
- end
@@ -1,23 +0,0 @@
1
- require 'rails_helper'
2
-
3
- RSpec.describe 'Index overriding', type: :controller do
4
- before do
5
- load_resources { ActiveAdmin.register Post }
6
- @controller = Admin::PostsController.new
7
-
8
- @controller.instance_eval do
9
- def index
10
- super do
11
- render ActiveAdmin::Dependency.rails.render_key => 'Rendered from passed block'
12
- return
13
- end
14
- end
15
- end
16
- end
17
-
18
- it 'should call block passed to overridden index' do
19
- get :index
20
- expect(response.body).to eq 'Rendered from passed block'
21
- end
22
-
23
- end
@@ -1,93 +0,0 @@
1
- require 'rails_helper'
2
- require 'active_admin/view_helpers/active_admin_application_helper'
3
- require 'active_admin/view_helpers/auto_link_helper'
4
- require 'active_admin/view_helpers/display_helper'
5
- require 'active_admin/view_helpers/method_or_proc_helper'
6
-
7
- RSpec.describe "auto linking resources", type: :view do
8
- include ActiveAdmin::ViewHelpers::ActiveAdminApplicationHelper
9
- include ActiveAdmin::ViewHelpers::AutoLinkHelper
10
- include ActiveAdmin::ViewHelpers::DisplayHelper
11
- include MethodOrProcHelper
12
-
13
- let(:active_admin_namespace){ ActiveAdmin.application.namespace(:admin) }
14
- let(:post){ Post.create! title: "Hello World" }
15
-
16
- before do
17
- allow(self).to receive(:authorized?).and_return(true)
18
- end
19
-
20
- context "when the resource is not registered" do
21
- before do
22
- load_resources {}
23
- end
24
-
25
- it "should return the display name of the object" do
26
- expect(auto_link(post)).to eq "Hello World"
27
- end
28
- end
29
-
30
- context "when the resource is registered" do
31
- before do
32
- load_resources do
33
- active_admin_namespace.register Post
34
- end
35
- end
36
-
37
- it "should return a link with the display name of the object" do
38
- expect(auto_link(post)).to \
39
- match(%r{<a href="/admin/posts/\d+">Hello World</a>})
40
- end
41
-
42
- it "should keep locale in the url if present" do
43
- expect(self).to receive(:url_options).and_return(locale: 'en')
44
-
45
- expect(auto_link(post)).to \
46
- match(%r{<a href="/admin/posts/\d+\?locale=en">Hello World</a>})
47
- end
48
-
49
- context "but the user doesn't have access" do
50
- before do
51
- allow(self).to receive(:authorized?).and_return(false)
52
- end
53
-
54
- it "should return the display name of the object" do
55
- expect(auto_link(post)).to eq "Hello World"
56
- end
57
- end
58
- end
59
-
60
- context "when the resource is registered with the show action disabled" do
61
- before do
62
- load_resources do
63
- active_admin_namespace.register(Post) { actions :all, except: :show }
64
- end
65
- end
66
-
67
- it "should fallback to edit" do
68
- expect(auto_link(post)).to \
69
- match(%r{<a href="/admin/posts/\d+/edit">Hello World</a>})
70
- end
71
-
72
- it "should keep locale in the url if present" do
73
- expect(self).to receive(:url_options).and_return(locale: 'en')
74
-
75
- expect(auto_link(post)).to \
76
- match(%r{<a href="/admin/posts/\d+/edit\?locale=en">Hello World</a>})
77
- end
78
- end
79
-
80
- context "when the resource is registered with the show & edit actions disabled" do
81
- before do
82
- load_resources do
83
- active_admin_namespace.register(Post) do
84
- actions :all, except: [:show, :edit]
85
- end
86
- end
87
-
88
- it "should return the display name of the object" do
89
- expect(auto_link(post)).to eq "Hello World"
90
- end
91
- end
92
- end
93
- end