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,252 +0,0 @@
1
- require 'rails_helper'
2
-
3
- RSpec.describe "Breadcrumbs" do
4
-
5
- include ActiveAdmin::ViewHelpers
6
-
7
- describe "generating a trail from paths" do
8
-
9
- def params; {}; end
10
- def link_to(name, url); {name: name, path: url}; end
11
-
12
- actions = ActiveAdmin::BaseController::ACTIVE_ADMIN_ACTIONS
13
-
14
- let(:user) { double display_name: 'Jane Doe' }
15
- let(:user_config) { double find_resource: user, resource_name: double(route_key: 'users'),
16
- defined_actions: actions }
17
- let(:post) { double display_name: 'Hello World' }
18
- let(:post_config) { double find_resource: post, resource_name: double(route_key: 'posts'),
19
- defined_actions: actions, belongs_to_config: double(target: user_config) }
20
-
21
- let :active_admin_config do
22
- post_config
23
- end
24
-
25
- let(:trail) { breadcrumb_links(path) }
26
-
27
- context "when request '/admin'" do
28
- let(:path) { "/admin" }
29
-
30
- it "should not have any items" do
31
- expect(trail.size).to eq 0
32
- end
33
- end
34
-
35
- context "when path 'admin/users'" do
36
- let(:path) { 'admin/users' }
37
-
38
- it 'should have one item' do
39
- expect(trail.size).to eq 1
40
- end
41
- it 'should have a link to /admin' do
42
- expect(trail[0][:name]).to eq 'Admin'
43
- expect(trail[0][:path]).to eq '/admin'
44
- end
45
- end
46
-
47
- context "when path '/admin/users'" do
48
- let(:path) { "/admin/users" }
49
-
50
- it "should have one item" do
51
- expect(trail.size).to eq 1
52
- end
53
- it "should have a link to /admin" do
54
- expect(trail[0][:name]).to eq "Admin"
55
- expect(trail[0][:path]).to eq "/admin"
56
- end
57
- end
58
-
59
- context "when path '/admin/users/1'" do
60
- let(:path) { "/admin/users/1" }
61
-
62
- it "should have 2 items" do
63
- expect(trail.size).to eq 2
64
- end
65
- it "should have a link to /admin" do
66
- expect(trail[0][:name]).to eq "Admin"
67
- expect(trail[0][:path]).to eq "/admin"
68
- end
69
- it "should have a link to /admin/users" do
70
- expect(trail[1][:name]).to eq "Users"
71
- expect(trail[1][:path]).to eq "/admin/users"
72
- end
73
- end
74
-
75
- context "when path '/admin/users/1/posts'" do
76
- let(:path) { "/admin/users/1/posts" }
77
-
78
- it "should have 3 items" do
79
- expect(trail.size).to eq 3
80
- end
81
- it "should have a link to /admin" do
82
- expect(trail[0][:name]).to eq "Admin"
83
- expect(trail[0][:path]).to eq "/admin"
84
- end
85
- it "should have a link to /admin/users" do
86
- expect(trail[1][:name]).to eq "Users"
87
- expect(trail[1][:path]).to eq "/admin/users"
88
- end
89
-
90
- context "when User.find(1) doesn't exist" do
91
- before { allow(user_config).to receive(:find_resource) }
92
- it "should have a link to /admin/users/1" do
93
- expect(trail[2][:name]).to eq "1"
94
- expect(trail[2][:path]).to eq "/admin/users/1"
95
- end
96
- end
97
-
98
- context "when User.find(1) does exist" do
99
- it "should have a link to /admin/users/1 using display name" do
100
- expect(trail[2][:name]).to eq "Jane Doe"
101
- expect(trail[2][:path]).to eq "/admin/users/1"
102
- end
103
- end
104
- end
105
-
106
- context "when path '/admin/users/4e24d6249ccf967313000000/posts'" do
107
- let(:path) { "/admin/users/4e24d6249ccf967313000000/posts" }
108
-
109
- it "should have 3 items" do
110
- expect(trail.size).to eq 3
111
- end
112
- it "should have a link to /admin" do
113
- expect(trail[0][:name]).to eq "Admin"
114
- expect(trail[0][:path]).to eq "/admin"
115
- end
116
- it "should have a link to /admin/users" do
117
- expect(trail[1][:name]).to eq "Users"
118
- expect(trail[1][:path]).to eq "/admin/users"
119
- end
120
-
121
- context "when User.find(4e24d6249ccf967313000000) doesn't exist" do
122
- before { allow(user_config).to receive(:find_resource) }
123
- it "should have a link to /admin/users/4e24d6249ccf967313000000" do
124
- expect(trail[2][:name]).to eq "4e24d6249ccf967313000000"
125
- expect(trail[2][:path]).to eq "/admin/users/4e24d6249ccf967313000000"
126
- end
127
- end
128
-
129
- context "when User.find(4e24d6249ccf967313000000) does exist" do
130
- before do
131
- display_name = double(display_name: 'Hello :)')
132
- allow(user_config).to receive(:find_resource).and_return(display_name)
133
- end
134
- it "should have a link to /admin/users/4e24d6249ccf967313000000 using display name" do
135
- expect(trail[2][:name]).to eq "Hello :)"
136
- expect(trail[2][:path]).to eq "/admin/users/4e24d6249ccf967313000000"
137
- end
138
- end
139
- end
140
-
141
- context "when path '/admin/users/2b2f0fc2-9a0d-41b8-b39d-aa21963aaee4/posts'" do
142
- let(:path) { "/admin/users/2b2f0fc2-9a0d-41b8-b39d-aa21963aaee4/posts" }
143
-
144
- it "should have 3 items" do
145
- expect(trail.size).to eq 3
146
- end
147
- it "should have a link to /admin" do
148
- expect(trail[0][:name]).to eq "Admin"
149
- expect(trail[0][:path]).to eq "/admin"
150
- end
151
- it "should have a link to /admin/users" do
152
- expect(trail[1][:name]).to eq "Users"
153
- expect(trail[1][:path]).to eq "/admin/users"
154
- end
155
-
156
- context "when User.find(2b2f0fc2-9a0d-41b8-b39d-aa21963aaee4) doesn't exist" do
157
- before { allow(user_config).to receive(:find_resource) }
158
- it "should have a link to /admin/users/2b2f0fc2-9a0d-41b8-b39d-aa21963aaee4" do
159
- expect(trail[2][:name]).to eq "2b2f0fc2-9a0d-41b8-b39d-aa21963aaee4".titlecase
160
- expect(trail[2][:path]).to eq "/admin/users/2b2f0fc2-9a0d-41b8-b39d-aa21963aaee4"
161
- end
162
- end
163
-
164
- context "when User.find(2b2f0fc2-9a0d-41b8-b39d-aa21963aaee4) does exist" do
165
- before do
166
- display_name = double(display_name: 'Hello :)')
167
- allow(user_config).to receive(:find_resource).and_return(display_name)
168
- end
169
- it "should have a link to /admin/users/2b2f0fc2-9a0d-41b8-b39d-aa21963aaee4 using display name" do
170
- expect(trail[2][:name]).to eq "Hello :)"
171
- expect(trail[2][:path]).to eq "/admin/users/2b2f0fc2-9a0d-41b8-b39d-aa21963aaee4"
172
- end
173
- end
174
- end
175
-
176
- context "when path '/admin/users/1/coments/1'" do
177
- let(:path) { "/admin/users/1/posts/1" }
178
-
179
- it "should have 4 items" do
180
- expect(trail.size).to eq 4
181
- end
182
- it "should have a link to /admin" do
183
- expect(trail[0][:name]).to eq "Admin"
184
- expect(trail[0][:path]).to eq "/admin"
185
- end
186
- it "should have a link to /admin/users" do
187
- expect(trail[1][:name]).to eq "Users"
188
- expect(trail[1][:path]).to eq "/admin/users"
189
- end
190
- it "should have a link to /admin/users/1" do
191
- expect(trail[2][:name]).to eq "Jane Doe"
192
- expect(trail[2][:path]).to eq "/admin/users/1"
193
- end
194
- it "should have a link to /admin/users/1/posts" do
195
- expect(trail[3][:name]).to eq "Posts"
196
- expect(trail[3][:path]).to eq "/admin/users/1/posts"
197
- end
198
- end
199
-
200
- context "when path '/admin/users/1/coments/1/edit'" do
201
- let(:path) { "/admin/users/1/posts/1/edit" }
202
-
203
- it "should have 5 items" do
204
- expect(trail.size).to eq 5
205
- end
206
- it "should have a link to /admin" do
207
- expect(trail[0][:name]).to eq "Admin"
208
- expect(trail[0][:path]).to eq "/admin"
209
- end
210
- it "should have a link to /admin/users" do
211
- expect(trail[1][:name]).to eq "Users"
212
- expect(trail[1][:path]).to eq "/admin/users"
213
- end
214
- it "should have a link to /admin/users/1" do
215
- expect(trail[2][:name]).to eq "Jane Doe"
216
- expect(trail[2][:path]).to eq "/admin/users/1"
217
- end
218
- it "should have a link to /admin/users/1/posts" do
219
- expect(trail[3][:name]).to eq "Posts"
220
- expect(trail[3][:path]).to eq "/admin/users/1/posts"
221
- end
222
- it "should have a link to /admin/users/1/posts/1" do
223
- expect(trail[4][:name]).to eq "Hello World"
224
- expect(trail[4][:path]).to eq "/admin/users/1/posts/1"
225
- end
226
- end
227
-
228
- context "when the 'show' action is disabled" do
229
- let(:post_config) { double find_resource: post, resource_name: double(route_key: 'posts'),
230
- defined_actions: actions - [:show], # this is the change
231
- belongs_to_config: double(target: user_config) }
232
-
233
- let(:path) { "/admin/posts/1/edit" }
234
-
235
- it "should have 3 items" do
236
- expect(trail.size).to eq 3
237
- end
238
- it "should have a link to /admin" do
239
- expect(trail[0][:name]).to eq "Admin"
240
- expect(trail[0][:path]).to eq "/admin"
241
- end
242
- it "should have a link to /admin/posts" do
243
- expect(trail[1][:name]).to eq "Posts"
244
- expect(trail[1][:path]).to eq "/admin/posts"
245
- end
246
- it "should not link to the show view for the post" do
247
- expect(trail[2]).to eq "Hello World"
248
- end
249
- end
250
-
251
- end
252
- end
@@ -1,195 +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 ActiveAdmin::ViewHelpers::DisplayHelper do
8
- include ActiveAdmin::ViewHelpers::ActiveAdminApplicationHelper
9
- include ActiveAdmin::ViewHelpers::AutoLinkHelper
10
- include ActiveAdmin::ViewHelpers::DisplayHelper
11
- include MethodOrProcHelper
12
- include ActionView::Helpers::UrlHelper
13
- include ActionView::Helpers::TranslationHelper
14
-
15
- def active_admin_namespace
16
- active_admin_application.namespaces[:admin]
17
- end
18
-
19
- def authorized?(*)
20
- true
21
- end
22
-
23
- def url_options
24
- { locale: nil }
25
- end
26
-
27
- before do
28
- load_resources do
29
- ActiveAdmin.register(User)
30
- ActiveAdmin.register(Post){ belongs_to :user, optional: true }
31
- end
32
- end
33
-
34
- describe '#display_name' do
35
- ActiveAdmin::Application.new.display_name_methods.map(&:to_s).each do |m|
36
- it "should return #{m} when defined" do
37
- klass = Class.new do
38
- define_method(m) { m }
39
- end
40
- expect(display_name klass.new).to eq m
41
- end
42
- end
43
-
44
- it "should memoize the result for the class" do
45
- subject = Class.new.new
46
- expect(subject).to receive(:name).twice.and_return "My Name"
47
-
48
- expect(display_name subject).to eq "My Name"
49
-
50
- expect(ActiveAdmin.application).to_not receive(:display_name_methods)
51
- expect(display_name subject).to eq "My Name"
52
- end
53
-
54
- it "should not call a method if it's an association" do
55
- klass = Class.new
56
- subject = klass.new
57
- allow(klass).to receive(:reflect_on_all_associations).and_return [ double(name: :login) ]
58
- allow(subject).to receive :login
59
- expect(subject).to_not receive :login
60
- allow(subject).to receive(:email).and_return 'foo@bar.baz'
61
-
62
- expect(display_name subject).to eq 'foo@bar.baz'
63
- end
64
-
65
- it "should return `nil` when the passed object is `nil`" do
66
- expect(display_name nil).to eq nil
67
- end
68
-
69
- it "should return 'false' when the passed object is `false`" do
70
- expect(display_name false).to eq "false"
71
- end
72
-
73
- it "should default to `to_s`" do
74
- subject = Class.new.new
75
- expect(display_name subject).to eq subject.to_s
76
- end
77
-
78
- context "when no display name method is defined" do
79
- context "on a Rails model" do
80
- it "should show the model name" do
81
- class ThisModel
82
- extend ActiveModel::Naming
83
- end
84
- subject = ThisModel.new
85
- expect(display_name subject).to eq "This model"
86
- end
87
-
88
- it "should show the model name, plus the ID if in use" do
89
- subject = Tagging.create!
90
- expect(display_name subject).to eq "Tagging #1"
91
- end
92
-
93
- it "should translate the model name" do
94
- with_translation activerecord: {models: {tagging: {one: "Different"}}} do
95
- subject = Tagging.create!
96
- expect(display_name subject).to eq "Different #1"
97
- end
98
- end
99
- end
100
- end
101
- end
102
-
103
- describe '#format_attribute' do
104
- it 'calls the provided block to format the value' do
105
- value = format_attribute double(foo: 2), ->r { r.foo + 1 }
106
-
107
- expect(value).to eq '3'
108
- end
109
-
110
- it 'finds values as methods' do
111
- value = format_attribute double(name: 'Joe'), :name
112
-
113
- expect(value).to eq 'Joe'
114
- end
115
-
116
- it 'finds values from hashes' do
117
- value = format_attribute({id: 100}, :id)
118
-
119
- expect(value).to eq '100'
120
- end
121
-
122
- [1, 1.2, :a_symbol].each do |val|
123
- it "calls to_s to format the value of type #{val.class}" do
124
- value = format_attribute double(foo: val), :foo
125
-
126
- expect(value).to eq val.to_s
127
- end
128
- end
129
-
130
- it 'localizes dates' do
131
- date = Date.parse '2016/02/28'
132
-
133
- value = format_attribute double(date: date), :date
134
-
135
- expect(value).to eq 'February 28, 2016'
136
- end
137
-
138
- it 'localizes times' do
139
- time = Time.parse '2016/02/28 9:34 PM'
140
-
141
- value = format_attribute double(time: time), :time
142
-
143
- expect(value).to eq 'February 28, 2016 21:34'
144
- end
145
-
146
- it 'uses a display_name method for arbitrary objects' do
147
- object = double to_s: :wrong, display_name: :right
148
-
149
- value = format_attribute double(object: object), :object
150
-
151
- expect(value).to eq :right
152
- end
153
-
154
- it 'auto-links ActiveRecord records by association' do
155
- post = Post.create! author: User.new
156
-
157
- value = format_attribute post, :author
158
-
159
- expect(value).to match /<a href="\/admin\/users\/\d+"> <\/a>/
160
- end
161
-
162
- it 'auto-links ActiveRecord records & uses a display_name method' do
163
- post = Post.create! author: User.new(first_name: 'A', last_name: 'B')
164
-
165
- value = format_attribute post, :author
166
-
167
- expect(value).to match /<a href="\/admin\/users\/\d+">A B<\/a>/
168
- end
169
-
170
- pending 'auto-links Mongoid records'
171
-
172
- it 'calls status_tag for boolean values' do
173
- post = Post.new starred: true
174
-
175
- value = format_attribute post, :starred
176
-
177
- expect(value.to_s).to eq "<span class=\"status_tag yes\">Yes</span>\n"
178
- end
179
-
180
- it 'calls status_tag for boolean non-database values' do
181
- post = Post.new
182
- post.define_singleton_method(:true_method) do
183
- true
184
- end
185
- post.define_singleton_method(:false_method) do
186
- false
187
- end
188
- true_value = format_attribute post, :true_method
189
- expect(true_value.to_s).to eq "<span class=\"status_tag yes\">Yes</span>\n"
190
- false_value = format_attribute post, :false_method
191
- expect(false_value.to_s).to eq "<span class=\"status_tag no\">No</span>\n"
192
- end
193
-
194
- end
195
- end
@@ -1,39 +0,0 @@
1
- require 'rails_helper'
2
-
3
- RSpec.describe ActiveAdmin::ViewHelpers::DownloadFormatLinksHelper do
4
- describe "class methods" do
5
- before :all do
6
- begin
7
- # The mime type to be used in respond_to |format| style web-services in rails
8
- Mime::Type.register "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", :xlsx
9
- rescue NameError
10
- puts "Mime module not defined. Skipping registration of xlsx"
11
- end
12
- end
13
-
14
- subject do
15
- Class.new do
16
- include ActiveAdmin::ViewHelpers::DownloadFormatLinksHelper
17
- end
18
- end
19
-
20
- it "extends the class to add a formats class method that returns the default formats." do
21
- expect(subject.formats).to eq [:csv, :xml, :json]
22
- end
23
-
24
- it "does not let you alter the formats array directly" do
25
- subject.formats << :xlsx
26
- expect(subject.formats).to eq [:csv, :xml, :json]
27
- end
28
-
29
- it "allows us to add new formats" do
30
- subject.add_format :xlsx
31
- expect(subject.formats).to eq [:csv, :xml, :json, :xlsx]
32
- end
33
-
34
- it "raises an exception if you provide an unregisterd mime type extension" do
35
- expect{ subject.add_format :hoge }.to raise_error 'Please register the hoge mime type with `Mime::Type.register`'
36
- end
37
-
38
- end
39
- end
@@ -1,50 +0,0 @@
1
- require 'rails_helper'
2
-
3
- RSpec.describe ActiveAdmin::ViewHelpers::FormHelper, ".fields_for" do
4
- include ActiveAdmin::ViewHelpers::FormHelper
5
-
6
- it "should skip :action, :controller and :commit" do
7
- expect(fields_for_params(
8
- scope: "All", action: "index", controller: "PostController", commit: "Filter", utf8: "Yes!")).
9
- to eq [ { scope: "All" } ]
10
- end
11
-
12
- it "should skip the except" do
13
- expect(fields_for_params({scope: "All", name: "Greg"}, except: :name)).
14
- to eq [ { scope: "All" } ]
15
- end
16
-
17
- it "should allow an array for the except" do
18
- expect(fields_for_params({scope: "All", name: "Greg", age: "12"}, except: [:name, :age])).
19
- to eq [ { scope: "All" } ]
20
- end
21
-
22
- it "should work with hashes" do
23
- params = fields_for_params(filters: { name: "John", age: "12" })
24
-
25
- expect(params.size).to eq 2
26
- expect(params).to include({"filters[name]" => "John" })
27
- expect(params).to include({ "filters[age]" => "12" })
28
- end
29
-
30
- it "should work with nested hashes" do
31
- expect(fields_for_params(filters: { user: { name: "John" }})).
32
- to eq [ { "filters[user][name]" => "John" } ]
33
- end
34
-
35
- it "should work with arrays" do
36
- expect(fields_for_params(people: ["greg", "emily", "philippe"])).
37
- to eq [ { "people[]" => "greg" },
38
- { "people[]" => "emily" },
39
- { "people[]" => "philippe" } ]
40
- end
41
-
42
- it "should work with symbols" do
43
- expect(fields_for_params(filter: :id)).
44
- to eq [ { filter: "id" } ]
45
- end
46
-
47
- it "should work with booleans" do
48
- expect(fields_for_params(booleantest: false)).to eq [ { booleantest: false } ]
49
- end
50
- end
@@ -1,25 +0,0 @@
1
- require 'rails_helper'
2
-
3
- RSpec.describe ActiveAdmin::ViewHelpers::FlashHelper do
4
-
5
- describe '.flash_messages' do
6
- let(:view) { action_view }
7
-
8
- it "should not include 'timedout' flash messages by default" do
9
- view.request.flash[:alert] = "Alert"
10
- view.request.flash[:timedout] = true
11
- expect(view.flash_messages).to include 'alert'
12
- expect(view.flash_messages).to_not include 'timedout'
13
- end
14
-
15
- it "should not return flash messages included in flash_keys_to_except" do
16
- expect(view.active_admin_application).to receive(:flash_keys_to_except).and_return ["hideme"]
17
- view.request.flash[:alert] = "Alert"
18
- view.request.flash[:hideme] = "Do not show"
19
- expect(view.flash_messages).to include 'alert'
20
- expect(view.flash_messages).to_not include 'hideme'
21
- end
22
-
23
- end
24
- end
25
-
@@ -1,43 +0,0 @@
1
- require 'rails_helper'
2
-
3
- RSpec.describe ActiveAdmin::ViewHelpers::FormHelper do
4
-
5
- describe '.active_admin_form_for' do
6
- let(:view) { action_view }
7
- let(:resource) { double 'resource' }
8
- let(:default_options) { { builder: ActiveAdmin::FormBuilder } }
9
-
10
- it 'calls semantic_form_for with the ActiveAdmin form builder' do
11
- expect(view).to receive(:semantic_form_for).with(resource, builder: ActiveAdmin::FormBuilder)
12
- view.active_admin_form_for(resource)
13
- end
14
-
15
- it 'allows the form builder to be customized' do
16
- # We can't use a stub here because options gets marshalled, and a new
17
- # instance built. Any constant will work.
18
- custom_builder = Object
19
- expect(view).to receive(:semantic_form_for).with(resource, builder: custom_builder)
20
- view.active_admin_form_for(resource, builder: custom_builder)
21
- end
22
- end
23
-
24
- describe ".hidden_field_tags_for" do
25
- let(:view) { action_view }
26
-
27
- it "should render hidden field tags for params" do
28
- html = Capybara.string view.hidden_field_tags_for(ActionController::Parameters.new(scope: "All", filter: "None"))
29
- expect(html).to have_selector("input#hidden_active_admin_scope[name=scope][type=hidden][value=All]")
30
- expect(html).to have_selector("input#hidden_active_admin_filter[name=filter][type=hidden][value=None]")
31
- end
32
-
33
- it "should generate not default id for hidden input" do
34
- expect(view.hidden_field_tags_for(ActionController::Parameters.new(scope: "All"))[/id="([^"]+)"/, 1]).to_not eq "scope"
35
- end
36
-
37
- it "should filter out the field passed via the option :except" do
38
- html = Capybara.string view.hidden_field_tags_for(ActionController::Parameters.new(scope: "All", filter: "None"), except: :filter)
39
- expect(html).to have_selector("input#hidden_active_admin_scope[name=scope][type=hidden][value=All]")
40
- end
41
- end
42
- end
43
-