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,162 +0,0 @@
1
- require 'rails_helper'
2
-
3
- # TODO: refactor this file so it doesn't depend on the Admin namespace in such a broken way.
4
- # Specifically, the dashboard is already defined.
5
-
6
- RSpec.describe ActiveAdmin::Namespace, "registering a resource" do
7
- let(:application){ ActiveAdmin::Application.new }
8
- let(:namespace){ ActiveAdmin::Namespace.new(application, :admin) }
9
- let(:menu){ namespace.fetch_menu(:default) }
10
-
11
- after { namespace.unload! }
12
-
13
- context "with no configuration" do
14
- before do
15
- namespace.register Category
16
- end
17
-
18
- it "should store the namespaced registered configuration" do
19
- expect(namespace.resources.keys).to include('Category')
20
- end
21
-
22
- it "should create a new controller in the default namespace" do
23
- expect(defined?(Admin::CategoriesController)).to eq 'constant'
24
- end
25
-
26
- skip "should not create the dashboard controller" do
27
- defined?(Admin::DashboardController).to_not eq 'constant'
28
- end
29
-
30
- it "should create a menu item" do
31
- expect(menu["Categories"]).to be_a ActiveAdmin::MenuItem
32
- expect(menu["Categories"].instance_variable_get(:@url)).to be_a Proc
33
- end
34
- end
35
-
36
- context "with a block configuration" do
37
- it "should be evaluated in the dsl" do
38
- expect{ |block|
39
- namespace.register Category, &block
40
- }.to yield_control
41
- end
42
- end
43
-
44
- context "with a resource that's namespaced" do
45
- before do
46
- module ::Mock; class Resource; def self.has_many(arg1, arg2); end; end; end
47
- namespace.register Mock::Resource
48
- end
49
-
50
- it "should store the namespaced registered configuration" do
51
- expect(namespace.resources.keys).to include('Mock::Resource')
52
- end
53
- it "should create a new controller in the default namespace" do
54
- expect(defined?(Admin::MockResourcesController)).to eq 'constant'
55
- end
56
- it "should create a menu item" do
57
- expect(menu["Mock Resources"]).to be_an_instance_of(ActiveAdmin::MenuItem)
58
- end
59
-
60
- it "should use the resource as the model in the controller" do
61
- expect(Admin::MockResourcesController.resource_class).to eq Mock::Resource
62
- end
63
- end # context "with a resource that's namespaced"
64
-
65
- describe "finding resource instances" do
66
- it "should return the resource when its been registered" do
67
- post = namespace.register Post
68
- expect(namespace.resource_for(Post)).to eq post
69
- end
70
-
71
- it 'should return nil when the resource has not been registered' do
72
- expect(namespace.resource_for(Post)).to eq nil
73
- end
74
-
75
- it "should return the parent when the parent class has been registered and the child has not" do
76
- user = namespace.register User
77
- expect(namespace.resource_for(Publisher)).to eq user
78
- end
79
-
80
- it "should return the resource if it and it's parent were registered" do
81
- user = namespace.register User
82
- publisher = namespace.register Publisher
83
- expect(namespace.resource_for(Publisher)).to eq publisher
84
- end
85
- end # describe "finding resource instances"
86
-
87
- describe "adding to the menu" do
88
- describe "adding as a top level item" do
89
- before do
90
- namespace.register Category
91
- end
92
- it "should add a new menu item" do
93
- expect(menu['Categories']).to_not eq nil
94
- end
95
- end # describe "adding as a top level item"
96
-
97
- describe "adding as a child" do
98
- before do
99
- namespace.register Category do
100
- menu parent: 'Blog'
101
- end
102
- end
103
- it "should generate the parent menu item" do
104
- expect(menu['Blog']).to_not eq nil
105
- end
106
- it "should generate its own child item" do
107
- expect(menu['Blog']['Categories']).to_not eq nil
108
- end
109
- end # describe "adding as a child"
110
-
111
- describe "disabling the menu" do
112
- before do
113
- namespace.register Category do
114
- menu false
115
- end
116
- end
117
- it "should not create a menu item" do
118
- expect(menu["Categories"]).to eq nil
119
- end
120
- end # describe "disabling the menu"
121
-
122
- describe "adding as a belongs to" do
123
- context "when not optional" do
124
- before do
125
- namespace.register Post do
126
- belongs_to :author
127
- end
128
- end
129
- it "should not show up in the menu" do
130
- expect(menu["Posts"]).to eq nil
131
- end
132
- end
133
- context "when optional" do
134
- before do
135
- namespace.register Post do
136
- belongs_to :author, optional: true
137
- end
138
- end
139
- it "should show up in the menu" do
140
- expect(menu["Posts"]).to_not eq nil
141
- end
142
- end
143
- end
144
- end # describe "adding to the menu"
145
-
146
- describe "dashboard controller name" do
147
- context "when namespaced" do
148
- it "should be namespaced" do
149
- namespace = ActiveAdmin::Namespace.new(application, :one)
150
- namespace.register Category
151
- expect(defined?(One::CategoriesController)).to eq 'constant'
152
- end
153
- end
154
- context "when not namespaced" do
155
- it "should not be namespaced" do
156
- namespace = ActiveAdmin::Namespace.new(application, :two)
157
- namespace.register Category
158
- expect(defined?(Two::CategoriesController)).to eq 'constant'
159
- end
160
- end
161
- end # describe "dashboard controller name"
162
- end # describe "registering a resource"
@@ -1,125 +0,0 @@
1
- require 'rails_helper'
2
-
3
- RSpec.describe ActiveAdmin::Namespace do
4
-
5
- let(:application){ ActiveAdmin::Application.new }
6
-
7
- context "when new" do
8
- let(:namespace){ ActiveAdmin::Namespace.new(application, :admin) }
9
-
10
- it "should have an application instance" do
11
- expect(namespace.application).to eq application
12
- end
13
-
14
- it "should have a name" do
15
- expect(namespace.name).to eq :admin
16
- end
17
-
18
- it "should have no resources" do
19
- expect(namespace.resources).to be_empty
20
- end
21
-
22
- it "should not have any menu item" do
23
- expect(namespace.fetch_menu(:default).children).to be_empty
24
- end
25
- end # context "when new"
26
-
27
- describe "#unload!" do
28
- context "when controller is only defined without a namespace" do
29
- before do
30
- # To ensure Admin::PostsController is defined
31
- ActiveAdmin.register Post
32
-
33
- # To ensure ::PostsController is defined
34
- ActiveAdmin.register Post, namespace: false
35
-
36
- # To prevent unload! from unregistering ::PostsController
37
- ActiveAdmin.application.namespaces.instance_variable_get(:@namespaces).delete(:root)
38
-
39
- # To force Admin::PostsController to not be there
40
- Admin.send(:remove_const, 'PostsController')
41
- end
42
-
43
- it "should not crash" do
44
- expect { ActiveAdmin.unload! }.not_to raise_error
45
- end
46
- end
47
- end
48
-
49
- describe "settings" do
50
- let(:namespace){ ActiveAdmin::Namespace.new(application, :admin) }
51
-
52
- it "should inherit the site title from the application" do
53
- ActiveAdmin::Namespace.setting :site_title, "Not the Same"
54
- expect(namespace.site_title).to eq application.site_title
55
- end
56
-
57
- it "should be able to override the site title" do
58
- expect(namespace.site_title).to eq application.site_title
59
- namespace.site_title = "My Site Title"
60
- expect(namespace.site_title).to_not eq application.site_title
61
- end
62
- end
63
-
64
-
65
- describe "#fetch_menu" do
66
- let(:namespace){ ActiveAdmin::Namespace.new(application, :admin) }
67
-
68
- it "returns the menu" do
69
- expect(namespace.fetch_menu(:default)).to be_an_instance_of(ActiveAdmin::Menu)
70
- end
71
-
72
- it "should have utility nav menu" do
73
- expect(namespace.fetch_menu(:utility_navigation)).to be_an_instance_of(ActiveAdmin::Menu)
74
- end
75
-
76
- it "should raise an exception if the menu doesn't exist" do
77
- expect {
78
- namespace.fetch_menu(:not_a_menu_that_exists)
79
- }.to raise_error(KeyError)
80
- end
81
- end
82
-
83
- describe "#build_menu" do
84
- let(:namespace){ ActiveAdmin::Namespace.new(application, :admin) }
85
-
86
- it "should set the block as a menu build callback" do
87
- namespace.build_menu do |menu|
88
- menu.add label: "menu item"
89
- end
90
-
91
- expect(namespace.fetch_menu(:default)["menu item"]).to_not eq nil
92
- end
93
-
94
- it "should set a block on a custom menu" do
95
- namespace.build_menu :test do |menu|
96
- menu.add label: "menu item"
97
- end
98
-
99
- expect(namespace.fetch_menu(:test)["menu item"]).to_not eq nil
100
- end
101
- end
102
-
103
- describe "utility navigation" do
104
- let(:namespace){ ActiveAdmin::Namespace.new(application, :admin) }
105
- let(:menu) do
106
- namespace.build_menu :utility_navigation do |menu|
107
- menu.add label: "ActiveAdmin.info", url: "http://www.activeadmin.info", html_options: { target: :blank }
108
- namespace.add_logout_button_to_menu menu, 1, class: "matt"
109
- end
110
- namespace.fetch_menu(:utility_navigation)
111
- end
112
-
113
- it "should have a logout button to the far left" do
114
- expect(menu["Logout"]).to_not eq nil
115
- expect(menu["Logout"].priority).to eq 1
116
- end
117
-
118
- it "should have a static link with a target of :blank" do
119
- expect(menu["ActiveAdmin.info"]).to_not eq nil
120
- expect(menu["ActiveAdmin.info"].html_options).to include(target: :blank)
121
- end
122
-
123
- end
124
-
125
- end
@@ -1,81 +0,0 @@
1
- require 'rails_helper'
2
-
3
- RSpec.describe ActiveAdmin::OrderClause do
4
- subject { described_class.new(config, clause) }
5
-
6
- let(:application) { ActiveAdmin::Application.new }
7
- let(:namespace) { ActiveAdmin::Namespace.new application, :admin }
8
- let(:config) { ActiveAdmin::Resource.new namespace, Post }
9
-
10
- describe 'id_asc (existing column)' do
11
- let(:clause) { 'id_asc' }
12
-
13
- it { is_expected.to be_valid }
14
-
15
- describe '#field' do
16
- subject { super().field }
17
- it { is_expected.to eq('id') }
18
- end
19
-
20
- describe '#order' do
21
- subject { super().order }
22
- it { is_expected.to eq('asc') }
23
- end
24
-
25
- specify '#to_sql prepends table name' do
26
- expect(subject.to_sql).to eq '"posts"."id" asc'
27
- end
28
- end
29
-
30
- describe 'virtual_column_asc' do
31
- let(:clause) { 'virtual_column_asc' }
32
-
33
- it { is_expected.to be_valid }
34
-
35
- describe '#field' do
36
- subject { super().field }
37
- it { is_expected.to eq('virtual_column') }
38
- end
39
-
40
- describe '#order' do
41
- subject { super().order }
42
- it { is_expected.to eq('asc') }
43
- end
44
-
45
- specify '#to_sql' do
46
- expect(subject.to_sql).to eq '"virtual_column" asc'
47
- end
48
- end
49
-
50
- describe "hstore_col->'field'_desc" do
51
- let(:clause) { "hstore_col->'field'_desc" }
52
-
53
- it { is_expected.to be_valid }
54
-
55
- describe '#field' do
56
- subject { super().field }
57
- it { is_expected.to eq("hstore_col->'field'") }
58
- end
59
-
60
- describe '#order' do
61
- subject { super().order }
62
- it { is_expected.to eq('desc') }
63
- end
64
-
65
- it 'converts to sql' do
66
- expect(subject.to_sql).to eq %Q("hstore_col"->'field' desc)
67
- end
68
- end
69
-
70
- describe '_asc' do
71
- let(:clause) { '_asc' }
72
-
73
- it { is_expected.not_to be_valid }
74
- end
75
-
76
- describe 'nil' do
77
- let(:clause) { nil }
78
-
79
- it { is_expected.not_to be_valid }
80
- end
81
- end
@@ -1,5 +0,0 @@
1
- require 'rails_helper'
2
-
3
- RSpec.describe ActiveAdmin::PageController do
4
- let(:controller) { ActiveAdmin::PageController.new }
5
- end
@@ -1,131 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'rails_helper'
4
- require File.expand_path('config_shared_examples', File.dirname(__FILE__))
5
-
6
- module ActiveAdmin
7
- RSpec.describe Page do
8
-
9
- it_should_behave_like "ActiveAdmin::Resource"
10
- before { load_defaults! }
11
-
12
- let(:application){ ActiveAdmin::Application.new }
13
- let(:namespace){ Namespace.new(application, :admin) }
14
- let(:page_name) { "Chocolate I lØve You!" }
15
-
16
- def config(options = {})
17
- @config ||= namespace.register_page("Chocolate I lØve You!", options)
18
- end
19
-
20
- describe "controller name" do
21
- it "should return a namespaced controller name" do
22
- expect(config.controller_name).to eq "Admin::ChocolateILoveYouController"
23
- end
24
- context "when non namespaced controller" do
25
- let(:namespace){ ActiveAdmin::Namespace.new(application, :root) }
26
- it "should return a non namespaced controller name" do
27
- expect(config.controller_name).to eq "ChocolateILoveYouController"
28
- end
29
- end
30
- end
31
-
32
- describe "#resource_name" do
33
- it "returns the name" do
34
- expect(config.resource_name).to eq "Chocolate I lØve You!"
35
- end
36
-
37
- it "returns the singular, lowercase name" do
38
- if RUBY_VERSION >= '2.4.0'
39
- expect(config.resource_name.singular).to eq "chocolate i løve you!"
40
- else
41
- expect(config.resource_name.singular).to eq "chocolate i lØve you!"
42
- end
43
- end
44
- end
45
-
46
- describe "#plural_resource_label" do
47
- it "returns the singular name" do
48
- expect(config.plural_resource_label).to eq "Chocolate I lØve You!"
49
- end
50
- end
51
-
52
- describe "#underscored_resource_name" do
53
- it "returns the resource name underscored" do
54
- expect(config.underscored_resource_name).to eq "chocolate_i_love_you"
55
- end
56
- end
57
-
58
- describe "#camelized_resource_name" do
59
- it "returns the resource name camel case" do
60
- expect(config.camelized_resource_name).to eq "ChocolateILoveYou"
61
- end
62
- end
63
-
64
- describe "#namespace_name" do
65
- it "returns the name of the namespace" do
66
- expect(config.namespace_name).to eq "admin"
67
- end
68
- end
69
-
70
- it "should not belong_to anything" do
71
- expect(config.belongs_to?).to eq false
72
- end
73
-
74
-
75
- it "should not have any action_items" do
76
- expect(config.action_items?).to eq false
77
- end
78
-
79
- it "should not have any sidebar_sections" do
80
- expect(config.sidebar_sections?).to eq false
81
- end
82
-
83
- context "with belongs to config" do
84
- let!(:post_config) { namespace.register Post }
85
- let!(:page_config) {
86
- namespace.register_page page_name do
87
- belongs_to :post
88
- end
89
- }
90
-
91
- it "configures page with belongs_to" do
92
- expect(page_config.belongs_to?).to be true
93
- end
94
-
95
- it "sets navigation menu to parent" do
96
- expect(page_config.navigation_menu_name).to eq :post
97
- end
98
-
99
- it "builds a belongs_to relationship" do
100
- belongs_to = page_config.belongs_to_config
101
-
102
- expect(belongs_to.target).to eq(post_config)
103
- expect(belongs_to.owner).to eq(page_config)
104
- expect(belongs_to.optional?).to be_falsy
105
- end
106
-
107
- it "forwards belongs_to call to controller" do
108
- options = { optional: true }
109
- expect(page_config.controller).to receive(:belongs_to).with(:post, options)
110
- page_config.belongs_to :post, options
111
- end
112
- end # context "with belongs to config" do
113
-
114
- context "with optional belongs to config" do
115
- let!(:post_config) { namespace.register Post }
116
- let!(:page_config) {
117
- namespace.register_page page_name do
118
- belongs_to :post, optional: true
119
- end
120
- }
121
-
122
- it "does not override default navigation menu" do
123
- expect(page_config.navigation_menu_name).to eq(:default)
124
- end
125
- end # context "with optional belongs to config" do
126
-
127
- it "has no belongs_to by default" do
128
- expect(config.belongs_to?).to be_falsy
129
- end
130
- end
131
- end
@@ -1,82 +0,0 @@
1
- require 'rails_helper'
2
- require 'active_admin/view_helpers/display_helper'
3
-
4
- RSpec.describe "#pretty_format" do
5
- include ActiveAdmin::ViewHelpers::DisplayHelper
6
-
7
- def method_missing(*args, &block)
8
- mock_action_view.send *args, &block
9
- end
10
-
11
- ['hello', 23, 5.67, 10**30, :foo, Arbre::Element.new.br(:foo)].each do |obj|
12
- it "should call `to_s` on #{obj.class}s" do
13
- expect(pretty_format(obj)).to eq obj.to_s
14
- end
15
- end
16
-
17
- shared_examples_for 'a time-ish object' do |t|
18
- it "formats it with the default long format" do
19
- expect(pretty_format(t)).to eq "February 28, 1985 20:15"
20
- end
21
-
22
- it "formats it with a customized long format" do
23
- with_translation time: { formats: { long: "%B %d, %Y, %l:%M%P" } } do
24
- expect(pretty_format(t)).to eq "February 28, 1985, 8:15pm"
25
- end
26
- end
27
-
28
- context "with a custom localize format" do
29
- around do |example|
30
- previous_localize_format = ActiveAdmin.application.localize_format
31
- ActiveAdmin.application.localize_format = :short
32
- example.call
33
- ActiveAdmin.application.localize_format = previous_localize_format
34
- end
35
-
36
- it "formats it with the default custom format" do
37
- expect(pretty_format(t)).to eq "28 Feb 20:15"
38
- end
39
-
40
- it "formats it with i18n custom format" do
41
- with_translation time: { formats: { short: "%-m %d %Y" } } do
42
- expect(pretty_format(t)).to eq "2 28 1985"
43
- end
44
- end
45
- end
46
-
47
- context "with non-English locale" do
48
- around do |example|
49
- I18n.with_locale(:es) { example.call }
50
- end
51
-
52
- it "formats it with the default long format" do
53
- expect(pretty_format(t)).to eq "28 de febrero de 1985 20:15"
54
- end
55
-
56
- it "formats it with a customized long format" do
57
- with_translation time: { formats: { long: "El %d de %B de %Y a las %H horas y %M minutos" } } do
58
- expect(pretty_format(t)).to eq "El 28 de febrero de 1985 a las 20 horas y 15 minutos"
59
- end
60
- end
61
- end
62
- end
63
-
64
- it_behaves_like 'a time-ish object', Time.utc(1985, "feb", 28, 20, 15, 1)
65
- it_behaves_like 'a time-ish object', DateTime.new(1985, 2, 28, 20, 15, 1)
66
-
67
- context "given an ActiveRecord object" do
68
- it "should delegate to auto_link" do
69
- post = Post.new
70
- expect(self).to receive(:auto_link).with(post) { "model name" }
71
- expect(pretty_format(post)).to eq "model name"
72
- end
73
- end
74
-
75
- context "given an arbitrary object" do
76
- it "should delegate to `display_name`" do
77
- something = Class.new.new
78
- expect(self).to receive(:display_name).with(something) { "I'm not famous" }
79
- expect(pretty_format(something)).to eq "I'm not famous"
80
- end
81
- end
82
- end
@@ -1,98 +0,0 @@
1
- require 'rails_helper'
2
-
3
- class DefaultPolicy < ApplicationPolicy
4
- def respond_to_missing?(method, include_private = false)
5
- method.to_s[0...3] == "foo" || super
6
- end
7
-
8
- def method_missing(method, *args, &block)
9
- if method.to_s[0...3] == "foo"
10
- method.to_s[4...7] == "yes"
11
- else
12
- super
13
- end
14
- end
15
-
16
- class Scope
17
-
18
- attr_reader :user, :scope
19
-
20
- def initialize(user, scope)
21
- @user = user
22
- @scope = scope
23
- end
24
-
25
- def resolve
26
- scope
27
- end
28
- end
29
- end
30
-
31
- RSpec.describe ActiveAdmin::PunditAdapter do
32
-
33
- describe "full integration" do
34
-
35
- let(:application) { ActiveAdmin::Application.new }
36
- let(:namespace) { ActiveAdmin::Namespace.new(application, "Admin") }
37
- let(:resource) { namespace.register(Post) }
38
- let(:auth) { namespace.authorization_adapter.new(resource, double) }
39
- let(:default_policy_klass) { DefaultPolicy }
40
- let(:default_policy_klass_name) { "DefaultPolicy" }
41
-
42
- before do
43
- namespace.authorization_adapter = ActiveAdmin::PunditAdapter
44
- end
45
-
46
- it "should initialize the ability stored in the namespace configuration" do
47
- expect(auth.authorized?(:read, Post)).to eq true
48
- expect(auth.authorized?(:update, Post)).to eq false
49
- end
50
-
51
- it "should scope the collection" do
52
- class RSpec::Mocks::DoublePolicy < ApplicationPolicy
53
- class Scope < Struct.new(:user, :scope)
54
- def resolve
55
- scope
56
- end
57
- end
58
- end
59
-
60
- collection = double
61
- auth.scope_collection(collection, :read)
62
- expect(collection).to eq collection
63
- end
64
-
65
- it "works well with method_missing" do
66
- allow(auth).to receive(:retrieve_policy).and_return(DefaultPolicy.new(double, double))
67
- expect(auth.authorized?(:foo_no)).to eq false
68
- expect(auth.authorized?(:foo_yes)).to eq true
69
- expect(auth.authorized?(:bar_yes)).to eq false
70
- end
71
-
72
- context 'when Pundit is unable to find policy scope' do
73
- let(:collection) { double("collection", to_sym: :collection) }
74
- subject(:scope) { auth.scope_collection(collection, :read) }
75
-
76
- before do
77
- allow(ActiveAdmin.application).to receive(:pundit_default_policy).and_return default_policy_klass_name
78
- allow(Pundit).to receive(:policy_scope!) { raise Pundit::NotDefinedError.new }
79
- end
80
-
81
- it("should return default policy's scope if defined") { is_expected.to eq(collection) }
82
- end
83
-
84
- context "when Pundit is unable to find policy" do
85
- let(:record) { double }
86
-
87
- subject(:policy) { auth.retrieve_policy(record) }
88
-
89
- before do
90
- allow(ActiveAdmin.application).to receive(:pundit_default_policy).and_return default_policy_klass_name
91
- allow(Pundit).to receive(:policy!) { raise Pundit::NotDefinedError.new }
92
- end
93
-
94
- it("should return default policy instance") { is_expected.to be_instance_of(default_policy_klass) }
95
- end
96
- end
97
-
98
- end