activeadmin 2.2.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 (372) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGELOG.md +546 -0
  3. data/CODE_OF_CONDUCT.md +74 -0
  4. data/CONTRIBUTING.md +217 -0
  5. data/LICENSE +20 -0
  6. data/README.md +110 -0
  7. data/app/assets/images/active_admin/nested_menu_arrow.gif +0 -0
  8. data/app/assets/images/active_admin/nested_menu_arrow_dark.gif +0 -0
  9. data/app/assets/images/active_admin/orderable.png +0 -0
  10. data/app/assets/javascripts/active_admin/base.es6 +23 -0
  11. data/app/assets/javascripts/active_admin/ext/jquery-ui.es6 +7 -0
  12. data/app/assets/javascripts/active_admin/ext/jquery.es6 +9 -0
  13. data/app/assets/javascripts/active_admin/initializers/datepicker.es6 +16 -0
  14. data/app/assets/javascripts/active_admin/initializers/filters.es6 +45 -0
  15. data/app/assets/javascripts/active_admin/initializers/tabs.es6 +6 -0
  16. data/app/assets/javascripts/active_admin/lib/active_admin.es6 +41 -0
  17. data/app/assets/javascripts/active_admin/lib/batch_actions.es6 +55 -0
  18. data/app/assets/javascripts/active_admin/lib/checkbox-toggler.es6 +49 -0
  19. data/app/assets/javascripts/active_admin/lib/dropdown-menu.es6 +123 -0
  20. data/app/assets/javascripts/active_admin/lib/has_many.es6 +95 -0
  21. data/app/assets/javascripts/active_admin/lib/modal_dialog.es6 +61 -0
  22. data/app/assets/javascripts/active_admin/lib/per_page.es6 +47 -0
  23. data/app/assets/javascripts/active_admin/lib/table-checkbox-toggler.es6 +36 -0
  24. data/app/assets/stylesheets/active_admin/_base.scss +41 -0
  25. data/app/assets/stylesheets/active_admin/_forms.scss +326 -0
  26. data/app/assets/stylesheets/active_admin/_header.scss +156 -0
  27. data/app/assets/stylesheets/active_admin/_mixins.scss +1 -0
  28. data/app/assets/stylesheets/active_admin/_typography.scss +100 -0
  29. data/app/assets/stylesheets/active_admin/components/_batch_actions.scss +6 -0
  30. data/app/assets/stylesheets/active_admin/components/_blank_slates.scss +30 -0
  31. data/app/assets/stylesheets/active_admin/components/_breadcrumbs.scss +20 -0
  32. data/app/assets/stylesheets/active_admin/components/_buttons.scss +6 -0
  33. data/app/assets/stylesheets/active_admin/components/_columns.scss +3 -0
  34. data/app/assets/stylesheets/active_admin/components/_comments.scss +41 -0
  35. data/app/assets/stylesheets/active_admin/components/_date_picker.scss +149 -0
  36. data/app/assets/stylesheets/active_admin/components/_dropdown_menu.scss +152 -0
  37. data/app/assets/stylesheets/active_admin/components/_flash_messages.scss +37 -0
  38. data/app/assets/stylesheets/active_admin/components/_grid.scss +9 -0
  39. data/app/assets/stylesheets/active_admin/components/_index_list.scss +12 -0
  40. data/app/assets/stylesheets/active_admin/components/_links.scss +5 -0
  41. data/app/assets/stylesheets/active_admin/components/_modal_dialog.scss +34 -0
  42. data/app/assets/stylesheets/active_admin/components/_pagination.scss +55 -0
  43. data/app/assets/stylesheets/active_admin/components/_panels.scss +6 -0
  44. data/app/assets/stylesheets/active_admin/components/_scopes.scss +13 -0
  45. data/app/assets/stylesheets/active_admin/components/_status_tags.scss +12 -0
  46. data/app/assets/stylesheets/active_admin/components/_table_tools.scss +67 -0
  47. data/app/assets/stylesheets/active_admin/components/_tables.scss +113 -0
  48. data/app/assets/stylesheets/active_admin/components/_tabs.scss +65 -0
  49. data/app/assets/stylesheets/active_admin/components/_unsupported_browser.scss +16 -0
  50. data/app/assets/stylesheets/active_admin/mixins/_all.scss +8 -0
  51. data/app/assets/stylesheets/active_admin/mixins/_buttons.scss +65 -0
  52. data/app/assets/stylesheets/active_admin/mixins/_gradients.scss +28 -0
  53. data/app/assets/stylesheets/active_admin/mixins/_rounded.scss +22 -0
  54. data/app/assets/stylesheets/active_admin/mixins/_sections.scss +41 -0
  55. data/app/assets/stylesheets/active_admin/mixins/_shadows.scss +15 -0
  56. data/app/assets/stylesheets/active_admin/mixins/_typography.scss +3 -0
  57. data/app/assets/stylesheets/active_admin/mixins/_utilities.scss +17 -0
  58. data/app/assets/stylesheets/active_admin/mixins/_variables.scss +34 -0
  59. data/app/assets/stylesheets/active_admin/pages/_logged_out.scss +44 -0
  60. data/app/assets/stylesheets/active_admin/print.scss +287 -0
  61. data/app/assets/stylesheets/active_admin/structure/_footer.scss +14 -0
  62. data/app/assets/stylesheets/active_admin/structure/_main_structure.scss +29 -0
  63. data/app/assets/stylesheets/active_admin/structure/_title_bar.scss +41 -0
  64. data/app/views/active_admin/devise/confirmations/new.html.erb +15 -0
  65. data/app/views/active_admin/devise/mailer/reset_password_instructions.html.erb +8 -0
  66. data/app/views/active_admin/devise/mailer/unlock_instructions.html.erb +7 -0
  67. data/app/views/active_admin/devise/passwords/edit.html.erb +18 -0
  68. data/app/views/active_admin/devise/passwords/new.html.erb +15 -0
  69. data/app/views/active_admin/devise/registrations/new.html.erb +21 -0
  70. data/app/views/active_admin/devise/sessions/new.html.erb +20 -0
  71. data/app/views/active_admin/devise/shared/_error_messages.html.erb +15 -0
  72. data/app/views/active_admin/devise/shared/_links.erb +33 -0
  73. data/app/views/active_admin/devise/unlocks/new.html.erb +15 -0
  74. data/app/views/active_admin/page/index.html.arb +1 -0
  75. data/app/views/active_admin/resource/edit.html.arb +1 -0
  76. data/app/views/active_admin/resource/index.html.arb +1 -0
  77. data/app/views/active_admin/resource/new.html.arb +1 -0
  78. data/app/views/active_admin/resource/show.html.arb +1 -0
  79. data/app/views/kaminari/active_admin/_first_page.html.erb +11 -0
  80. data/app/views/kaminari/active_admin/_gap.html.erb +8 -0
  81. data/app/views/kaminari/active_admin/_last_page.html.erb +11 -0
  82. data/app/views/kaminari/active_admin/_next_page.html.erb +11 -0
  83. data/app/views/kaminari/active_admin/_page.html.erb +12 -0
  84. data/app/views/kaminari/active_admin/_paginator.html.erb +25 -0
  85. data/app/views/kaminari/active_admin/_prev_page.html.erb +11 -0
  86. data/app/views/layouts/active_admin.html.arb +1 -0
  87. data/app/views/layouts/active_admin_logged_out.html.erb +39 -0
  88. data/config/locales/ar.yml +135 -0
  89. data/config/locales/bg.yml +119 -0
  90. data/config/locales/bs.yml +121 -0
  91. data/config/locales/ca.yml +106 -0
  92. data/config/locales/cs.yml +109 -0
  93. data/config/locales/da.yml +137 -0
  94. data/config/locales/de-CH.yml +101 -0
  95. data/config/locales/de.yml +144 -0
  96. data/config/locales/el.yml +126 -0
  97. data/config/locales/en-CA.yml +139 -0
  98. data/config/locales/en-GB.yml +139 -0
  99. data/config/locales/en.yml +162 -0
  100. data/config/locales/eo.yml +145 -0
  101. data/config/locales/es-MX.yml +96 -0
  102. data/config/locales/es.yml +162 -0
  103. data/config/locales/fa.yml +119 -0
  104. data/config/locales/fi.yml +112 -0
  105. data/config/locales/fr.yml +141 -0
  106. data/config/locales/he.yml +141 -0
  107. data/config/locales/hr.yml +123 -0
  108. data/config/locales/hu.yml +102 -0
  109. data/config/locales/id.yml +135 -0
  110. data/config/locales/it.yml +144 -0
  111. data/config/locales/ja.yml +141 -0
  112. data/config/locales/ko.yml +120 -0
  113. data/config/locales/lt.yml +142 -0
  114. data/config/locales/lv.yml +92 -0
  115. data/config/locales/mk.yml +134 -0
  116. data/config/locales/nb.yml +130 -0
  117. data/config/locales/nl.yml +144 -0
  118. data/config/locales/pl.yml +168 -0
  119. data/config/locales/pt-BR.yml +143 -0
  120. data/config/locales/pt-PT.yml +92 -0
  121. data/config/locales/ro.yml +96 -0
  122. data/config/locales/ru.yml +141 -0
  123. data/config/locales/sk.yml +109 -0
  124. data/config/locales/sv-SE.yml +135 -0
  125. data/config/locales/tr.yml +144 -0
  126. data/config/locales/uk.yml +138 -0
  127. data/config/locales/vi.yml +134 -0
  128. data/config/locales/zh-CN.yml +143 -0
  129. data/config/locales/zh-TW.yml +135 -0
  130. data/docs/.gitignore +1 -0
  131. data/docs/0-installation.md +118 -0
  132. data/docs/1-general-configuration.md +204 -0
  133. data/docs/10-custom-pages.md +150 -0
  134. data/docs/11-decorators.md +59 -0
  135. data/docs/12-arbre-components.md +214 -0
  136. data/docs/13-authorization-adapter.md +285 -0
  137. data/docs/14-gotchas.md +138 -0
  138. data/docs/2-resource-customization.md +466 -0
  139. data/docs/3-index-pages.md +328 -0
  140. data/docs/3-index-pages/custom-index.md +35 -0
  141. data/docs/3-index-pages/index-as-block.md +19 -0
  142. data/docs/3-index-pages/index-as-blog.md +69 -0
  143. data/docs/3-index-pages/index-as-grid.md +27 -0
  144. data/docs/3-index-pages/index-as-table.md +227 -0
  145. data/docs/4-csv-format.md +74 -0
  146. data/docs/5-forms.md +232 -0
  147. data/docs/6-show-pages.md +81 -0
  148. data/docs/7-sidebars.md +75 -0
  149. data/docs/8-custom-actions.md +177 -0
  150. data/docs/9-batch-actions.md +237 -0
  151. data/docs/CNAME +1 -0
  152. data/docs/Gemfile +4 -0
  153. data/docs/Gemfile.lock +249 -0
  154. data/docs/README.md +24 -0
  155. data/docs/_config.yml +2 -0
  156. data/docs/_includes/footer.html +8 -0
  157. data/docs/_includes/google-analytics.html +16 -0
  158. data/docs/_includes/head.html +7 -0
  159. data/docs/_includes/toc.html +98 -0
  160. data/docs/_includes/top-menu.html +17 -0
  161. data/docs/_layouts/default.html +21 -0
  162. data/docs/documentation.md +60 -0
  163. data/docs/images/activeadmin.png +0 -0
  164. data/docs/images/code-header.png +0 -0
  165. data/docs/images/divider.png +0 -0
  166. data/docs/images/features.png +0 -0
  167. data/docs/images/tidelift.svg +14 -0
  168. data/docs/index.html +125 -0
  169. data/docs/stylesheets/main.css +1176 -0
  170. data/lib/active_admin.rb +134 -0
  171. data/lib/active_admin/abstract_view_factory.rb +47 -0
  172. data/lib/active_admin/application.rb +234 -0
  173. data/lib/active_admin/application_settings.rb +42 -0
  174. data/lib/active_admin/asset_registration.rb +29 -0
  175. data/lib/active_admin/authorization_adapter.rb +129 -0
  176. data/lib/active_admin/base_controller.rb +81 -0
  177. data/lib/active_admin/base_controller/authorization.rb +127 -0
  178. data/lib/active_admin/base_controller/menu.rb +34 -0
  179. data/lib/active_admin/batch_actions.rb +16 -0
  180. data/lib/active_admin/batch_actions/controller.rb +40 -0
  181. data/lib/active_admin/batch_actions/resource_extension.rb +155 -0
  182. data/lib/active_admin/batch_actions/views/batch_action_form.rb +38 -0
  183. data/lib/active_admin/batch_actions/views/batch_action_selector.rb +58 -0
  184. data/lib/active_admin/batch_actions/views/selection_cells.rb +38 -0
  185. data/lib/active_admin/callbacks.rb +88 -0
  186. data/lib/active_admin/cancan_adapter.rb +36 -0
  187. data/lib/active_admin/component.rb +5 -0
  188. data/lib/active_admin/controller_action.rb +13 -0
  189. data/lib/active_admin/csv_builder.rb +133 -0
  190. data/lib/active_admin/dependency.rb +100 -0
  191. data/lib/active_admin/deprecation.rb +10 -0
  192. data/lib/active_admin/devise.rb +80 -0
  193. data/lib/active_admin/dsl.rb +160 -0
  194. data/lib/active_admin/dynamic_setting.rb +38 -0
  195. data/lib/active_admin/dynamic_settings_node.rb +28 -0
  196. data/lib/active_admin/engine.rb +21 -0
  197. data/lib/active_admin/error.rb +64 -0
  198. data/lib/active_admin/filters.rb +11 -0
  199. data/lib/active_admin/filters/active.rb +29 -0
  200. data/lib/active_admin/filters/active_filter.rb +124 -0
  201. data/lib/active_admin/filters/active_sidebar.rb +54 -0
  202. data/lib/active_admin/filters/dsl.rb +21 -0
  203. data/lib/active_admin/filters/forms.rb +85 -0
  204. data/lib/active_admin/filters/formtastic_addons.rb +79 -0
  205. data/lib/active_admin/filters/resource_extension.rb +155 -0
  206. data/lib/active_admin/form_builder.rb +182 -0
  207. data/lib/active_admin/generators/boilerplate.rb +45 -0
  208. data/lib/active_admin/helpers/collection.rb +19 -0
  209. data/lib/active_admin/helpers/i18n.rb +7 -0
  210. data/lib/active_admin/helpers/optional_display.rb +38 -0
  211. data/lib/active_admin/helpers/routes/url_helpers.rb +15 -0
  212. data/lib/active_admin/helpers/scope_chain.rb +24 -0
  213. data/lib/active_admin/inputs.rb +21 -0
  214. data/lib/active_admin/inputs/datepicker_input.rb +27 -0
  215. data/lib/active_admin/inputs/filters/base.rb +44 -0
  216. data/lib/active_admin/inputs/filters/base/search_method_select.rb +75 -0
  217. data/lib/active_admin/inputs/filters/boolean_input.rb +24 -0
  218. data/lib/active_admin/inputs/filters/check_boxes_input.rb +50 -0
  219. data/lib/active_admin/inputs/filters/date_picker_input.rb +13 -0
  220. data/lib/active_admin/inputs/filters/date_range_input.rb +49 -0
  221. data/lib/active_admin/inputs/filters/numeric_input.rb +12 -0
  222. data/lib/active_admin/inputs/filters/select_input.rb +58 -0
  223. data/lib/active_admin/inputs/filters/string_input.rb +26 -0
  224. data/lib/active_admin/inputs/filters/text_input.rb +25 -0
  225. data/lib/active_admin/localizers.rb +11 -0
  226. data/lib/active_admin/localizers/resource_localizer.rb +35 -0
  227. data/lib/active_admin/menu.rb +102 -0
  228. data/lib/active_admin/menu_collection.rb +91 -0
  229. data/lib/active_admin/menu_item.rb +69 -0
  230. data/lib/active_admin/namespace.rb +266 -0
  231. data/lib/active_admin/namespace_settings.rb +110 -0
  232. data/lib/active_admin/order_clause.rb +48 -0
  233. data/lib/active_admin/orm/active_record.rb +5 -0
  234. data/lib/active_admin/orm/active_record/comments.rb +101 -0
  235. data/lib/active_admin/orm/active_record/comments/comment.rb +31 -0
  236. data/lib/active_admin/orm/active_record/comments/namespace_helper.rb +14 -0
  237. data/lib/active_admin/orm/active_record/comments/resource_helper.rb +17 -0
  238. data/lib/active_admin/orm/active_record/comments/show_page_helper.rb +23 -0
  239. data/lib/active_admin/orm/active_record/comments/views.rb +2 -0
  240. data/lib/active_admin/orm/active_record/comments/views/active_admin_comments.rb +100 -0
  241. data/lib/active_admin/orm/mongoid.rb +1 -0
  242. data/lib/active_admin/orm/mongoid/.gitkeep +0 -0
  243. data/lib/active_admin/page.rb +111 -0
  244. data/lib/active_admin/page_controller.rb +29 -0
  245. data/lib/active_admin/page_dsl.rb +32 -0
  246. data/lib/active_admin/page_presenter.rb +33 -0
  247. data/lib/active_admin/pundit_adapter.rb +81 -0
  248. data/lib/active_admin/resource.rb +207 -0
  249. data/lib/active_admin/resource/action_items.rb +120 -0
  250. data/lib/active_admin/resource/attributes.rb +47 -0
  251. data/lib/active_admin/resource/belongs_to.rb +50 -0
  252. data/lib/active_admin/resource/controllers.rb +19 -0
  253. data/lib/active_admin/resource/includes.rb +12 -0
  254. data/lib/active_admin/resource/menu.rb +67 -0
  255. data/lib/active_admin/resource/naming.rb +62 -0
  256. data/lib/active_admin/resource/ordering.rb +11 -0
  257. data/lib/active_admin/resource/page_presenters.rb +82 -0
  258. data/lib/active_admin/resource/pagination.rb +23 -0
  259. data/lib/active_admin/resource/routes.rb +139 -0
  260. data/lib/active_admin/resource/scope_to.rb +74 -0
  261. data/lib/active_admin/resource/scopes.rb +52 -0
  262. data/lib/active_admin/resource/sidebars.rb +28 -0
  263. data/lib/active_admin/resource_collection.rb +72 -0
  264. data/lib/active_admin/resource_controller.rb +64 -0
  265. data/lib/active_admin/resource_controller/action_builder.rb +31 -0
  266. data/lib/active_admin/resource_controller/data_access.rb +322 -0
  267. data/lib/active_admin/resource_controller/decorators.rb +102 -0
  268. data/lib/active_admin/resource_controller/resource_class_methods.rb +26 -0
  269. data/lib/active_admin/resource_controller/scoping.rb +31 -0
  270. data/lib/active_admin/resource_controller/sidebars.rb +18 -0
  271. data/lib/active_admin/resource_controller/streaming.rb +43 -0
  272. data/lib/active_admin/resource_dsl.rb +224 -0
  273. data/lib/active_admin/router.rb +114 -0
  274. data/lib/active_admin/scope.rb +64 -0
  275. data/lib/active_admin/settings_node.rb +19 -0
  276. data/lib/active_admin/sidebar_section.rb +39 -0
  277. data/lib/active_admin/version.rb +3 -0
  278. data/lib/active_admin/view_factory.rb +27 -0
  279. data/lib/active_admin/view_helpers.rb +20 -0
  280. data/lib/active_admin/view_helpers/active_admin_application_helper.rb +12 -0
  281. data/lib/active_admin/view_helpers/auto_link_helper.rb +45 -0
  282. data/lib/active_admin/view_helpers/breadcrumb_helper.rb +33 -0
  283. data/lib/active_admin/view_helpers/display_helper.rb +104 -0
  284. data/lib/active_admin/view_helpers/download_format_links_helper.rb +59 -0
  285. data/lib/active_admin/view_helpers/fields_for.rb +50 -0
  286. data/lib/active_admin/view_helpers/flash_helper.rb +14 -0
  287. data/lib/active_admin/view_helpers/form_helper.rb +20 -0
  288. data/lib/active_admin/view_helpers/method_or_proc_helper.rb +100 -0
  289. data/lib/active_admin/view_helpers/scope_name_helper.rb +16 -0
  290. data/lib/active_admin/view_helpers/sidebar_helper.rb +15 -0
  291. data/lib/active_admin/view_helpers/title_helper.rb +11 -0
  292. data/lib/active_admin/view_helpers/view_factory_helper.rb +11 -0
  293. data/lib/active_admin/views.rb +8 -0
  294. data/lib/active_admin/views/action_items.rb +17 -0
  295. data/lib/active_admin/views/components/active_admin_form.rb +155 -0
  296. data/lib/active_admin/views/components/attributes_table.rb +94 -0
  297. data/lib/active_admin/views/components/blank_slate.rb +17 -0
  298. data/lib/active_admin/views/components/columns.rb +161 -0
  299. data/lib/active_admin/views/components/dropdown_menu.rb +71 -0
  300. data/lib/active_admin/views/components/index_list.rb +69 -0
  301. data/lib/active_admin/views/components/menu.rb +32 -0
  302. data/lib/active_admin/views/components/menu_item.rb +58 -0
  303. data/lib/active_admin/views/components/paginated_collection.rb +159 -0
  304. data/lib/active_admin/views/components/panel.rb +38 -0
  305. data/lib/active_admin/views/components/scopes.rb +72 -0
  306. data/lib/active_admin/views/components/sidebar.rb +13 -0
  307. data/lib/active_admin/views/components/sidebar_section.rb +34 -0
  308. data/lib/active_admin/views/components/site_title.rb +54 -0
  309. data/lib/active_admin/views/components/status_tag.rb +75 -0
  310. data/lib/active_admin/views/components/table_for.rb +209 -0
  311. data/lib/active_admin/views/components/tabs.rb +40 -0
  312. data/lib/active_admin/views/components/unsupported_browser.rb +11 -0
  313. data/lib/active_admin/views/footer.rb +30 -0
  314. data/lib/active_admin/views/header.rb +19 -0
  315. data/lib/active_admin/views/index_as_block.rb +36 -0
  316. data/lib/active_admin/views/index_as_blog.rb +155 -0
  317. data/lib/active_admin/views/index_as_grid.rb +80 -0
  318. data/lib/active_admin/views/index_as_table.rb +392 -0
  319. data/lib/active_admin/views/pages/base.rb +126 -0
  320. data/lib/active_admin/views/pages/form.rb +64 -0
  321. data/lib/active_admin/views/pages/index.rb +163 -0
  322. data/lib/active_admin/views/pages/layout.rb +26 -0
  323. data/lib/active_admin/views/pages/page.rb +30 -0
  324. data/lib/active_admin/views/pages/show.rb +65 -0
  325. data/lib/active_admin/views/tabbed_navigation.rb +11 -0
  326. data/lib/active_admin/views/title_bar.rb +55 -0
  327. data/lib/activeadmin.rb +1 -0
  328. data/lib/generators/active_admin/assets/assets_generator.rb +14 -0
  329. data/lib/generators/active_admin/assets/templates/active_admin.js +1 -0
  330. data/lib/generators/active_admin/assets/templates/active_admin.scss +17 -0
  331. data/lib/generators/active_admin/devise/devise_generator.rb +68 -0
  332. data/lib/generators/active_admin/install/install_generator.rb +49 -0
  333. data/lib/generators/active_admin/install/templates/active_admin.rb.erb +315 -0
  334. data/lib/generators/active_admin/install/templates/admin_users.rb.erb +28 -0
  335. data/lib/generators/active_admin/install/templates/dashboard.rb +32 -0
  336. data/lib/generators/active_admin/install/templates/migrations/create_active_admin_comments.rb.erb +16 -0
  337. data/lib/generators/active_admin/page/USAGE +8 -0
  338. data/lib/generators/active_admin/page/page_generator.rb +12 -0
  339. data/lib/generators/active_admin/page/templates/page.rb +5 -0
  340. data/lib/generators/active_admin/resource/resource_generator.rb +20 -0
  341. data/lib/generators/active_admin/resource/templates/admin.rb.erb +44 -0
  342. data/lib/ransack_ext.rb +20 -0
  343. data/vendor/assets/javascripts/jquery-ui/data.js +41 -0
  344. data/vendor/assets/javascripts/jquery-ui/disable-selection.js +48 -0
  345. data/vendor/assets/javascripts/jquery-ui/escape-selector.js +23 -0
  346. data/vendor/assets/javascripts/jquery-ui/focusable.js +86 -0
  347. data/vendor/assets/javascripts/jquery-ui/form-reset-mixin.js +80 -0
  348. data/vendor/assets/javascripts/jquery-ui/form.js +22 -0
  349. data/vendor/assets/javascripts/jquery-ui/ie.js +17 -0
  350. data/vendor/assets/javascripts/jquery-ui/keycode.js +47 -0
  351. data/vendor/assets/javascripts/jquery-ui/labels.js +65 -0
  352. data/vendor/assets/javascripts/jquery-ui/plugin.js +46 -0
  353. data/vendor/assets/javascripts/jquery-ui/position.js +500 -0
  354. data/vendor/assets/javascripts/jquery-ui/safe-active-element.js +42 -0
  355. data/vendor/assets/javascripts/jquery-ui/safe-blur.js +23 -0
  356. data/vendor/assets/javascripts/jquery-ui/scroll-parent.js +47 -0
  357. data/vendor/assets/javascripts/jquery-ui/tabbable.js +38 -0
  358. data/vendor/assets/javascripts/jquery-ui/unique-id.js +51 -0
  359. data/vendor/assets/javascripts/jquery-ui/version.js +17 -0
  360. data/vendor/assets/javascripts/jquery-ui/widget.js +735 -0
  361. data/vendor/assets/javascripts/jquery-ui/widgets/button.js +391 -0
  362. data/vendor/assets/javascripts/jquery-ui/widgets/checkboxradio.js +291 -0
  363. data/vendor/assets/javascripts/jquery-ui/widgets/controlgroup.js +300 -0
  364. data/vendor/assets/javascripts/jquery-ui/widgets/datepicker.js +2123 -0
  365. data/vendor/assets/javascripts/jquery-ui/widgets/dialog.js +954 -0
  366. data/vendor/assets/javascripts/jquery-ui/widgets/draggable.js +1259 -0
  367. data/vendor/assets/javascripts/jquery-ui/widgets/mouse.js +230 -0
  368. data/vendor/assets/javascripts/jquery-ui/widgets/resizable.js +1207 -0
  369. data/vendor/assets/javascripts/jquery-ui/widgets/sortable.js +1561 -0
  370. data/vendor/assets/javascripts/jquery-ui/widgets/tabs.js +931 -0
  371. data/vendor/assets/stylesheets/active_admin/_normalize.scss +447 -0
  372. metadata +616 -0
@@ -0,0 +1,29 @@
1
+ module ActiveAdmin
2
+ module AssetRegistration
3
+
4
+ def register_stylesheet(path, options = {})
5
+ stylesheets[path] = options
6
+ end
7
+
8
+ def stylesheets
9
+ @stylesheets ||= {}
10
+ end
11
+
12
+ def clear_stylesheets!
13
+ stylesheets.clear
14
+ end
15
+
16
+ def register_javascript(name)
17
+ javascripts.add name
18
+ end
19
+
20
+ def javascripts
21
+ @javascripts ||= Set.new
22
+ end
23
+
24
+ def clear_javascripts!
25
+ javascripts.clear
26
+ end
27
+
28
+ end
29
+ end
@@ -0,0 +1,129 @@
1
+ module ActiveAdmin
2
+
3
+ # Default Authorization permissions for Active Admin
4
+ module Authorization
5
+ READ = :read
6
+ CREATE = :create
7
+ UPDATE = :update
8
+ DESTROY = :destroy
9
+ end
10
+
11
+ Auth = Authorization
12
+
13
+ # Active Admin's default authorization adapter. This adapter returns true
14
+ # for all requests to `#authorized?`. It should be the starting point for
15
+ # implementing your own authorization adapter.
16
+ #
17
+ # To view an example subclass, check out `ActiveAdmin::CanCanAdapter`
18
+ class AuthorizationAdapter
19
+ attr_reader :resource, :user
20
+
21
+ # Initialize a new authorization adapter. This happens on each and
22
+ # every request to a controller.
23
+ #
24
+ # @param [ActiveAdmin::Resource, ActiveAdmin::Page] resource The resource
25
+ # that the user is currently on. Note, we may be authorizing access
26
+ # to a different subject, so don't rely on this other than to
27
+ # pull configuration information from.
28
+ #
29
+ # @param [any] user The current user. The user is set to whatever is returned
30
+ # from `#current_active_admin_user` in the controller.
31
+ #
32
+ def initialize(resource, user)
33
+ @resource = resource
34
+ @user = user
35
+ end
36
+
37
+ # Returns true of false depending on if the user is authorized to perform
38
+ # the action on the subject.
39
+ #
40
+ # @param [Symbol] action The name of the action to perform. Usually this will be
41
+ # one of the `ActiveAdmin::Auth::*` symbols.
42
+ #
43
+ # @param [any] subject The subject the action is being performed on usually this
44
+ # is a model object. Note, that this is NOT always in instance, it can be
45
+ # the class of the subject also. For example, Active Admin uses the class
46
+ # of the resource to decide if the resource should be displayed in the
47
+ # global navigation. To deal with this nicely in a case statement, take
48
+ # a look at `#normalized(klass)`
49
+ #
50
+ # @return [Boolean]
51
+ def authorized?(action, subject = nil)
52
+ true
53
+ end
54
+
55
+ # A hook method for authorization libraries to scope the collection. By
56
+ # default, we just return the same collection. The returned scope is used
57
+ # as the starting point for all queries to the db in the controller.
58
+ #
59
+ # @param [ActiveRecord::Relation] collection The collection the user is
60
+ # attempting to view.
61
+ #
62
+ # @param [Symbol] action The name of the action to perform. Usually this will be
63
+ # one of the `ActiveAdmin::Auth::*` symbols. Defaults to `Auth::READ` if
64
+ # no action passed in.
65
+ #
66
+ # @return [ActiveRecord::Relation] A new collection, scoped to the
67
+ # objects that the current user has access to.
68
+ def scope_collection(collection, action = Auth::READ)
69
+ collection
70
+ end
71
+
72
+ private
73
+
74
+ # The `#authorized?` method's subject can be set to both instances as well
75
+ # as classes of objects. This can make it much difficult to create simple
76
+ # case statements for authorization since you have to handle both the
77
+ # class level match and the instance level match.
78
+ #
79
+ # For example:
80
+ #
81
+ # class MyAuthAdapter < ActiveAdmin::AuthorizationAdapter
82
+ #
83
+ # def authorized?(action, subject = nil)
84
+ # case subject
85
+ # when Post
86
+ # true
87
+ # when Class
88
+ # if subject == Post
89
+ # true
90
+ # end
91
+ # end
92
+ # end
93
+ #
94
+ # end
95
+ #
96
+ # To handle this, the normalized method takes care of returning a object
97
+ # which implements `===` to be matched in a case statement.
98
+ #
99
+ # The above now becomes:
100
+ #
101
+ # class MyAuthAdapter < ActiveAdmin::AuthorizationAdapter
102
+ #
103
+ # def authorized?(action, subject = nil)
104
+ # case subject
105
+ # when normalized(Post)
106
+ # true
107
+ # end
108
+ # end
109
+ #
110
+ # end
111
+ def normalized(klass)
112
+ NormalizedMatcher.new(klass)
113
+ end
114
+
115
+ class NormalizedMatcher
116
+
117
+ def initialize(klass)
118
+ @klass = klass
119
+ end
120
+
121
+ def ===(other)
122
+ @klass == other || other.is_a?(@klass)
123
+ end
124
+
125
+ end
126
+
127
+ end
128
+
129
+ end
@@ -0,0 +1,81 @@
1
+ require 'active_admin/base_controller/authorization'
2
+ require 'active_admin/base_controller/menu'
3
+
4
+ module ActiveAdmin
5
+ # BaseController for ActiveAdmin.
6
+ # It implements ActiveAdmin controllers core features.
7
+ class BaseController < ::InheritedResources::Base
8
+ helper ::ActiveAdmin::ViewHelpers
9
+ helper_method :env
10
+
11
+ layout :determine_active_admin_layout
12
+
13
+ before_action :only_render_implemented_actions
14
+ before_action :authenticate_active_admin_user
15
+
16
+ class << self
17
+ # Ensure that this method is available for the DSL
18
+ public :actions
19
+
20
+ # Reference to the Resource object which initialized
21
+ # this controller
22
+ attr_accessor :active_admin_config
23
+ end
24
+
25
+ include Authorization
26
+ include Menu
27
+
28
+ private
29
+
30
+ # By default Rails will render un-implemented actions when the view exists. Because Active
31
+ # Admin allows you to not render any of the actions by using the #actions method, we need
32
+ # to check if they are implemented.
33
+ def only_render_implemented_actions
34
+ raise AbstractController::ActionNotFound unless action_methods.include?(params[:action])
35
+ end
36
+
37
+ # Calls the authentication method as defined in ActiveAdmin.authentication_method
38
+ def authenticate_active_admin_user
39
+ send(active_admin_namespace.authentication_method) if active_admin_namespace.authentication_method
40
+ end
41
+
42
+ def current_active_admin_user
43
+ send(active_admin_namespace.current_user_method) if active_admin_namespace.current_user_method
44
+ end
45
+ helper_method :current_active_admin_user
46
+
47
+ def current_active_admin_user?
48
+ !!current_active_admin_user
49
+ end
50
+ helper_method :current_active_admin_user?
51
+
52
+ def active_admin_config
53
+ self.class.active_admin_config
54
+ end
55
+ helper_method :active_admin_config
56
+
57
+ def active_admin_namespace
58
+ active_admin_config.namespace
59
+ end
60
+ helper_method :active_admin_namespace
61
+
62
+ ACTIVE_ADMIN_ACTIONS = [:index, :show, :new, :create, :edit, :update, :destroy]
63
+
64
+ # Determine which layout to use.
65
+ #
66
+ # 1. If we're rendering a standard Active Admin action, we want layout(false)
67
+ # because these actions are subclasses of the Base page (which implements
68
+ # all the required layout code)
69
+ # 2. If we're rendering a custom action, we'll use the active_admin layout so
70
+ # that users can render any template inside Active Admin.
71
+ def determine_active_admin_layout
72
+ ACTIVE_ADMIN_ACTIONS.include?(params[:action].to_sym) ? false : 'active_admin'
73
+ end
74
+
75
+ def active_admin_root
76
+ controller, action = active_admin_namespace.root_to.split '#'
77
+ { controller: controller, action: action }
78
+ end
79
+
80
+ end
81
+ end
@@ -0,0 +1,127 @@
1
+ module ActiveAdmin
2
+ class BaseController < ::InheritedResources::Base
3
+ module Authorization
4
+ extend ActiveSupport::Concern
5
+
6
+ ACTIONS_DICTIONARY = {
7
+ index: ActiveAdmin::Authorization::READ,
8
+ show: ActiveAdmin::Authorization::READ,
9
+ new: ActiveAdmin::Authorization::CREATE,
10
+ create: ActiveAdmin::Authorization::CREATE,
11
+ edit: ActiveAdmin::Authorization::UPDATE,
12
+ update: ActiveAdmin::Authorization::UPDATE,
13
+ destroy: ActiveAdmin::Authorization::DESTROY
14
+ }
15
+
16
+ included do
17
+ rescue_from ActiveAdmin::AccessDenied, with: :dispatch_active_admin_access_denied
18
+
19
+ helper_method :authorized?
20
+ helper_method :authorize!
21
+ helper_method :active_admin_authorization
22
+ end
23
+
24
+ protected
25
+
26
+ # Authorize the action and subject. Available in the controller
27
+ # as well as all the views.
28
+ #
29
+ # @param [Symbol] action The action to check if the user has permission
30
+ # to perform on the subject.
31
+ #
32
+ # @param [any] subject The subject that the user is trying to perform
33
+ # the action on.
34
+ #
35
+ # @return [Boolean]
36
+ #
37
+ def authorized?(action, subject = nil)
38
+ active_admin_authorization.authorized?(action, subject)
39
+ end
40
+
41
+ # Authorize the action and subject. Available in the controller
42
+ # as well as all the views. If the action is not allowd, it raises
43
+ # an ActiveAdmin::AccessDenied exception.
44
+ #
45
+ # @param [Symbol] action The action to check if the user has permission
46
+ # to perform on the subject.
47
+ #
48
+ # @param [any] subject The subject that the user is trying to perform
49
+ # the action on.
50
+ #
51
+ # @return [Boolean] True if authorized, otherwise raises
52
+ # an ActiveAdmin::AccessDenied.
53
+ def authorize!(action, subject = nil)
54
+ unless authorized? action, subject
55
+ raise ActiveAdmin::AccessDenied.new(current_active_admin_user,
56
+ action,
57
+ subject)
58
+ end
59
+ end
60
+
61
+ # Performs authorization on the resource using the current controller
62
+ # action as the permission action.
63
+ #
64
+ def authorize_resource!(resource)
65
+ permission = action_to_permission(params[:action])
66
+ authorize! permission, resource
67
+ end
68
+
69
+ # Retrieve or instantiate the authorization instance for this resource
70
+ #
71
+ # @return [ActiveAdmin::AuthorizationAdapter]
72
+ def active_admin_authorization
73
+ @active_admin_authorization ||=
74
+ active_admin_authorization_adapter.new active_admin_config, current_active_admin_user
75
+ end
76
+
77
+ # Returns the class to be used as the authorization adapter
78
+ #
79
+ # @return [Class]
80
+ def active_admin_authorization_adapter
81
+ adapter = active_admin_namespace.authorization_adapter
82
+ if adapter.is_a? String
83
+ ActiveSupport::Dependencies.constantize adapter
84
+ else
85
+ adapter
86
+ end
87
+ end
88
+
89
+ # Converts a controller action into one of the correct Active Admin
90
+ # authorization names. Uses the ACTIONS_DICTIONARY to convert the
91
+ # action name to permission.
92
+ #
93
+ # @param [String, Symbol] action The controller action name.
94
+ #
95
+ # @return [Symbol] The permission name to use.
96
+ def action_to_permission(action)
97
+ if action && action = action.to_sym
98
+ Authorization::ACTIONS_DICTIONARY[action] || action
99
+ end
100
+ end
101
+
102
+ def dispatch_active_admin_access_denied(exception)
103
+ instance_exec(self, exception, &active_admin_namespace.on_unauthorized_access.to_proc)
104
+ end
105
+
106
+ def rescue_active_admin_access_denied(exception)
107
+ error = exception.message
108
+
109
+ respond_to do |format|
110
+ format.html do
111
+ flash[:error] = error
112
+ redirect_backwards_or_to_root
113
+ end
114
+
115
+ format.csv { render body: error, status: :unauthorized }
116
+ format.json { render json: { error: error }, status: :unauthorized }
117
+ format.xml { render xml: "<error>#{error}</error>", status: :unauthorized }
118
+ end
119
+ end
120
+
121
+ def redirect_backwards_or_to_root
122
+ redirect_back fallback_location: active_admin_root
123
+ end
124
+
125
+ end
126
+ end
127
+ end
@@ -0,0 +1,34 @@
1
+ module ActiveAdmin
2
+ class BaseController < ::InheritedResources::Base
3
+ module Menu
4
+ extend ActiveSupport::Concern
5
+
6
+ included do
7
+ before_action :set_current_tab
8
+ helper_method :current_menu
9
+ end
10
+
11
+ protected
12
+
13
+ def current_menu
14
+ active_admin_config.navigation_menu
15
+ end
16
+
17
+ # Set's @current_tab to be name of the tab to mark as current
18
+ # Get's called through a before filter
19
+ def set_current_tab
20
+ @current_tab = if current_menu && active_admin_config.belongs_to? && parent?
21
+ parent_item = active_admin_config.belongs_to_config.target.menu_item
22
+ if current_menu.include? parent_item
23
+ parent_item
24
+ else
25
+ active_admin_config.menu_item
26
+ end
27
+ else
28
+ active_admin_config.menu_item
29
+ end
30
+ end
31
+
32
+ end
33
+ end
34
+ end
@@ -0,0 +1,16 @@
1
+ ActiveAdmin.before_load do |app|
2
+ require "active_admin/batch_actions/resource_extension"
3
+ require "active_admin/batch_actions/controller"
4
+
5
+ # Add our Extensions
6
+ ActiveAdmin::Resource.send :include, ActiveAdmin::BatchActions::ResourceExtension
7
+ ActiveAdmin::ResourceController.send :include, ActiveAdmin::BatchActions::Controller
8
+
9
+ # Require all the views
10
+ require "active_admin/batch_actions/views/batch_action_form"
11
+ require "active_admin/batch_actions/views/selection_cells"
12
+ require "active_admin/batch_actions/views/batch_action_selector"
13
+
14
+ # Register the views with the view factory
15
+ app.view_factory.register batch_action_selector: ActiveAdmin::BatchActions::BatchActionSelector
16
+ end
@@ -0,0 +1,40 @@
1
+ module ActiveAdmin
2
+ module BatchActions
3
+ module Controller
4
+
5
+ # Controller action that is called when submitting the batch action form
6
+ def batch_action
7
+ if action_present?
8
+ selection = params[:collection_selection] || []
9
+ inputs = JSON.parse params[:batch_action_inputs] || '{}'
10
+ valid_keys = MethodOrProcHelper.render_in_context(self, current_batch_action.inputs).try(:keys)
11
+ inputs = inputs.with_indifferent_access.slice *valid_keys
12
+ instance_exec selection, inputs, &current_batch_action.block
13
+ else
14
+ raise "Couldn't find batch action \"#{params[:batch_action]}\""
15
+ end
16
+ end
17
+
18
+ protected
19
+
20
+ def action_present?
21
+ params[:batch_action].present? && current_batch_action
22
+ end
23
+
24
+ def current_batch_action
25
+ active_admin_config.batch_actions.detect { |action| action.sym.to_s == params[:batch_action] }
26
+ end
27
+
28
+ COLLECTION_APPLIES = [
29
+ :authorization_scope,
30
+ :filtering,
31
+ :scoping,
32
+ :includes,
33
+ ].freeze
34
+
35
+ def batch_action_collection(only = COLLECTION_APPLIES)
36
+ find_collection(only: only)
37
+ end
38
+ end
39
+ end
40
+ end