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,69 @@
1
+ module ActiveAdmin
2
+ class MenuItem
3
+ include Menu::MenuNode
4
+
5
+ attr_reader :html_options, :parent, :priority
6
+
7
+ # Builds a new menu item
8
+ #
9
+ # @param [Hash] options The options for the menu
10
+ #
11
+ # @option options [String, Symbol, Proc] :label
12
+ # The label to display for this menu item.
13
+ # Default: Titleized Resource Name
14
+ #
15
+ # @option options [String] :id
16
+ # A custom id to reference this menu item with.
17
+ # Default: underscored_resource_name
18
+ #
19
+ # @option options [String, Symbol, Proc] :url
20
+ # The URL this item will link to.
21
+ #
22
+ # @option options [Integer] :priority
23
+ # The lower the priority, the earlier in the menu the item will be displayed.
24
+ # Default: 10
25
+ #
26
+ # @option options [Symbol, Proc] :if
27
+ # This decides whether the menu item will be displayed. Evaluated on each request.
28
+ #
29
+ # @option options [Hash] :html_options
30
+ # A hash of options to pass to `link_to` when rendering the item
31
+ #
32
+ # @option [ActiveAdmin::MenuItem] :parent
33
+ # This menu item's parent. It will be displayed nested below its parent.
34
+ #
35
+ # NOTE: for :label, :url, and :if
36
+ # These options are evaluated in the view context at render time. Symbols are called
37
+ # as methods on `self`, and Procs are exec'd within `self`.
38
+ # Here are some examples of what you can do:
39
+ #
40
+ # menu if: :admin?
41
+ # menu url: :new_book_path
42
+ # menu url: :awesome_helper_you_defined
43
+ # menu label: ->{ User.some_method }
44
+ # menu label: ->{ I18n.t 'menus.user' }
45
+ #
46
+ def initialize(options = {})
47
+ super() # MenuNode
48
+ @label = options[:label]
49
+ @dirty_id = options[:id] || options[:label]
50
+ @url = options[:url] || '#'
51
+ @priority = options[:priority] || 10
52
+ @html_options = options[:html_options] || {}
53
+ @should_display = options[:if] || proc { true }
54
+ @parent = options[:parent]
55
+
56
+ yield(self) if block_given? # Builder style syntax
57
+ end
58
+
59
+ def id
60
+ @id ||= normalize_id @dirty_id
61
+ end
62
+
63
+ attr_reader :label
64
+ attr_reader :url
65
+
66
+ # Don't display if the :if option passed says so
67
+ attr_reader :should_display
68
+ end
69
+ end
@@ -0,0 +1,266 @@
1
+ require 'active_admin/resource_collection'
2
+
3
+ module ActiveAdmin
4
+
5
+ # Namespaces are the basic organizing principle for resources within Active Admin
6
+ #
7
+ # Each resource is registered into a namespace which defines:
8
+ # * the namespaceing for routing
9
+ # * the module to namespace controllers
10
+ # * the menu which gets displayed (other resources in the same namespace)
11
+ #
12
+ # For example:
13
+ #
14
+ # ActiveAdmin.register Post, namespace: :admin
15
+ #
16
+ # Will register the Post model into the "admin" namespace. This will namespace the
17
+ # urls for the resource to "/admin/posts" and will set the controller to
18
+ # Admin::PostsController
19
+ #
20
+ # You can also register to the "root" namespace, which is to say no namespace at all.
21
+ #
22
+ # ActiveAdmin.register Post, namespace: false
23
+ #
24
+ # This will register the resource to an instantiated namespace called :root. The
25
+ # resource will be accessible from "/posts" and the controller will be PostsController.
26
+ #
27
+ class Namespace
28
+ class << self
29
+ def setting(name, default)
30
+ Deprecation.warn "This method does not do anything and will be removed."
31
+ end
32
+ end
33
+
34
+ RegisterEvent = 'active_admin.namespace.register'.freeze
35
+
36
+ attr_reader :application, :resources, :menus
37
+
38
+ def initialize(application, name)
39
+ @application = application
40
+ @name = name.to_s.underscore
41
+ @resources = ResourceCollection.new
42
+ register_module unless root?
43
+ build_menu_collection
44
+ end
45
+
46
+ def name
47
+ @name.to_sym
48
+ end
49
+
50
+ def settings
51
+ @settings ||= SettingsNode.build(application.namespace_settings)
52
+ end
53
+
54
+ def respond_to_missing?(method, include_private = false)
55
+ settings.respond_to?(method) || super
56
+ end
57
+
58
+ def method_missing(method, *args)
59
+ settings.respond_to?(method) ? settings.send(method, *args) : super
60
+ end
61
+
62
+ # Register a resource into this namespace. The preffered method to access this is to
63
+ # use the global registration ActiveAdmin.register which delegates to the proper
64
+ # namespace instance.
65
+ def register(resource_class, options = {}, &block)
66
+ config = find_or_build_resource(resource_class, options)
67
+
68
+ # Register the resource
69
+ register_resource_controller(config)
70
+ parse_registration_block(config, &block) if block_given?
71
+ reset_menu!
72
+
73
+ # Dispatch a registration event
74
+ ActiveSupport::Notifications.publish ActiveAdmin::Resource::RegisterEvent, config
75
+
76
+ # Return the config
77
+ config
78
+ end
79
+
80
+ def register_page(name, options = {}, &block)
81
+ config = build_page(name, options)
82
+
83
+ # Register the resource
84
+ register_page_controller(config)
85
+ parse_page_registration_block(config, &block) if block_given?
86
+ reset_menu!
87
+
88
+ config
89
+ end
90
+
91
+ def root?
92
+ name == :root
93
+ end
94
+
95
+ # Returns the name of the module if required. Will be nil if none
96
+ # is required.
97
+ #
98
+ # eg:
99
+ # Namespace.new(:admin).module_name # => 'Admin'
100
+ # Namespace.new(:root).module_name # => nil
101
+ #
102
+ def module_name
103
+ root? ? nil : @name.camelize
104
+ end
105
+
106
+ def route_prefix
107
+ root? ? nil : @name
108
+ end
109
+
110
+ # Unload all the registered resources for this namespace
111
+ def unload!
112
+ unload_resources!
113
+ reset_menu!
114
+ end
115
+
116
+ # Returns the first registered ActiveAdmin::Resource instance for a given class
117
+ def resource_for(klass)
118
+ resources[klass]
119
+ end
120
+
121
+ def fetch_menu(name)
122
+ @menus.fetch(name)
123
+ end
124
+
125
+ def reset_menu!
126
+ @menus.clear!
127
+ end
128
+
129
+ # Add a callback to be ran when we build the menu
130
+ #
131
+ # @param [Symbol] name The name of the menu. Default: :default
132
+ # @yield [ActiveAdmin::Menu] The block to be ran when the menu is built
133
+ #
134
+ # @return [void]
135
+ def build_menu(name = DEFAULT_MENU)
136
+ @menus.before_build do |menus|
137
+ menus.menu name do |menu|
138
+ yield menu
139
+ end
140
+ end
141
+ end
142
+
143
+ # The default logout menu item
144
+ #
145
+ # @param [ActiveAdmin::MenuItem] menu The menu to add the logout link to
146
+ # @param [Fixnum] priority The numeric priority for the order in which it appears
147
+ # @param [Hash] html_options An options hash to pass along to link_to
148
+ #
149
+ def add_logout_button_to_menu(menu, priority = 20, html_options = {})
150
+ if logout_link_path
151
+ html_options = html_options.reverse_merge(method: logout_link_method || :get)
152
+ menu.add id: 'logout', priority: priority, html_options: html_options,
153
+ label: -> { I18n.t 'active_admin.logout' },
154
+ url: -> { render_or_call_method_or_proc_on self, active_admin_namespace.logout_link_path },
155
+ if: :current_active_admin_user?
156
+ end
157
+ end
158
+
159
+ # The default user session menu item
160
+ #
161
+ # @param [ActiveAdmin::MenuItem] menu The menu to add the logout link to
162
+ # @param [Fixnum] priority The numeric priority for the order in which it appears
163
+ # @param [Hash] html_options An options hash to pass along to link_to
164
+ #
165
+ def add_current_user_to_menu(menu, priority = 10, html_options = {})
166
+ if current_user_method
167
+ menu.add id: 'current_user', priority: priority, html_options: html_options,
168
+ label: -> { display_name current_active_admin_user },
169
+ url: -> { auto_url_for(current_active_admin_user) },
170
+ if: :current_active_admin_user?
171
+ end
172
+ end
173
+
174
+ protected
175
+
176
+ def build_menu_collection
177
+ @menus = MenuCollection.new
178
+
179
+ @menus.on_build do
180
+ build_default_utility_nav
181
+
182
+ resources.each do |resource|
183
+ resource.add_to_menu(@menus)
184
+ end
185
+ end
186
+ end
187
+
188
+ # Builds the default utility navigation in top right header with current user & logout button
189
+ def build_default_utility_nav
190
+ return if @menus.exists? :utility_navigation
191
+ @menus.menu :utility_navigation do |menu|
192
+ add_current_user_to_menu menu
193
+ add_logout_button_to_menu menu
194
+ end
195
+ end
196
+
197
+ # Either returns an existing Resource instance or builds a new one.
198
+ def find_or_build_resource(resource_class, options)
199
+ resources.add Resource.new(self, resource_class, options)
200
+ end
201
+
202
+ def build_page(name, options)
203
+ resources.add Page.new(self, name, options)
204
+ end
205
+
206
+ # TODO: replace `eval` with `Class.new`
207
+ def register_page_controller(config)
208
+ eval "class ::#{config.controller_name} < ActiveAdmin::PageController; end"
209
+ config.controller.active_admin_config = config
210
+ end
211
+
212
+ def unload_resources!
213
+ resources.each do |resource|
214
+ parent = (module_name || 'Object').constantize
215
+ name = resource.controller_name.split('::').last
216
+ parent.send(:remove_const, name) if parent.const_defined?(name, false)
217
+
218
+ # Remove circular references
219
+ resource.controller.active_admin_config = nil
220
+ if resource.is_a?(Resource) && resource.dsl
221
+ resource.dsl.run_registration_block { @config = nil }
222
+ end
223
+ end
224
+ @resources = ResourceCollection.new
225
+ end
226
+
227
+ # Creates a ruby module to namespace all the classes in if required
228
+ def register_module
229
+ unless Object.const_defined? module_name
230
+ Object.const_set module_name, Module.new
231
+ end
232
+ end
233
+
234
+ # TODO: replace `eval` with `Class.new`
235
+ def register_resource_controller(config)
236
+ eval "class ::#{config.controller_name} < ActiveAdmin::ResourceController; end"
237
+ config.controller.active_admin_config = config
238
+ end
239
+
240
+ def parse_registration_block(config, &block)
241
+ config.dsl = ResourceDSL.new(config)
242
+ config.dsl.run_registration_block(&block)
243
+ end
244
+
245
+ def parse_page_registration_block(config, &block)
246
+ PageDSL.new(config).run_registration_block(&block)
247
+ end
248
+
249
+ class Store
250
+ include Enumerable
251
+ delegate :[], :[]=, :empty?, to: :@namespaces
252
+
253
+ def initialize
254
+ @namespaces = {}
255
+ end
256
+
257
+ def each(&block)
258
+ @namespaces.values.each(&block)
259
+ end
260
+
261
+ def names
262
+ @namespaces.keys
263
+ end
264
+ end
265
+ end
266
+ end
@@ -0,0 +1,110 @@
1
+ require 'active_admin/dynamic_settings_node'
2
+
3
+ module ActiveAdmin
4
+ class NamespaceSettings < DynamicSettingsNode
5
+ # The default number of resources to display on index pages
6
+ register :default_per_page, 30
7
+
8
+ # The max number of resources to display on index pages and batch exports
9
+ register :max_per_page, 10_000
10
+
11
+ # The title which gets displayed in the main layout
12
+ register :site_title, "", :string_symbol_or_proc
13
+
14
+ # Set the site title link href (defaults to AA dashboard)
15
+ register :site_title_link, ""
16
+
17
+ # Set the site title image displayed in the main layout (has precendence over :site_title)
18
+ register :site_title_image, "", :string_symbol_or_proc
19
+
20
+ # Add to the site head
21
+ register :head, "", :string_symbol_or_proc
22
+
23
+ # Set the site footer text (defaults to Powered by ActiveAdmin text with version)
24
+ register :footer, "", :string_symbol_or_proc
25
+
26
+ # Set a favicon
27
+ register :favicon, false
28
+
29
+ # Additional meta tags to place in head of logged in pages
30
+ register :meta_tags, {}
31
+
32
+ # Additional meta tags to place in head of logged out pages
33
+ register :meta_tags_for_logged_out_pages, { robots: "noindex, nofollow" }
34
+
35
+ # The view factory to use to generate all the view classes. Take
36
+ # a look at ActiveAdmin::ViewFactory
37
+ register :view_factory, ActiveAdmin::ViewFactory.new
38
+
39
+ # The method to call in controllers to get the current user
40
+ register :current_user_method, false
41
+
42
+ # The method to call in the controllers to ensure that there
43
+ # is a currently authenticated admin user
44
+ register :authentication_method, false
45
+
46
+ # The path to log user's out with. If set to a symbol, we assume
47
+ # that it's a method to call which returns the path
48
+ register :logout_link_path, :destroy_admin_user_session_path
49
+
50
+ # The method to use when generating the link for user logout
51
+ register :logout_link_method, :get
52
+
53
+ # Whether the batch actions are enabled or not
54
+ register :batch_actions, false
55
+
56
+ # Whether filters are enabled
57
+ register :filters, true
58
+
59
+ # The namespace root
60
+ register :root_to, 'dashboard#index'
61
+
62
+ # Options that are passed to root_to
63
+ register :root_to_options, {}
64
+
65
+ # Options passed to the routes, i.e. { path: '/custom' }
66
+ register :route_options, {}
67
+
68
+ # Display breadcrumbs
69
+ register :breadcrumb, true
70
+
71
+ # Display create another checkbox on a new page
72
+ # @return [Boolean] (true)
73
+ register :create_another, false
74
+
75
+ # Default CSV options
76
+ register :csv_options, { col_sep: ',', byte_order_mark: "\xEF\xBB\xBF" }
77
+
78
+ # Default Download Links options
79
+ register :download_links, true
80
+
81
+ # The authorization adapter to use
82
+ register :authorization_adapter, ActiveAdmin::AuthorizationAdapter
83
+
84
+ # A proc to be used when a user is not authorized to view the current resource
85
+ register :on_unauthorized_access, :rescue_active_admin_access_denied
86
+
87
+ # A regex to detect unsupported browser, set to false to disable
88
+ register :unsupported_browser_matcher, /MSIE [1-8]\.0/
89
+
90
+ # Whether to display 'Current Filters' on search screen
91
+ register :current_filters, true
92
+
93
+ # class to handle ordering
94
+ register :order_clause, ActiveAdmin::OrderClause
95
+
96
+ # default show_count for scopes
97
+ register :scopes_show_count, true
98
+
99
+ # Request parameters that are permitted by default
100
+ register :permitted_params, [
101
+ :utf8, :_method, :authenticity_token, :commit, :id
102
+ ]
103
+
104
+ # Set flash message keys that shouldn't show in ActiveAdmin
105
+ register :flash_keys_to_except, ['timedout']
106
+
107
+ # Include association filters by default
108
+ register :include_default_association_filters, true
109
+ end
110
+ end
@@ -0,0 +1,48 @@
1
+ module ActiveAdmin
2
+ class OrderClause
3
+ attr_reader :field, :order, :active_admin_config
4
+
5
+ def initialize(active_admin_config, clause)
6
+ clause =~ /^([\w\_\.]+)(->'\w+')?_(desc|asc)$/
7
+ @column = $1
8
+ @op = $2
9
+ @order = $3
10
+ @active_admin_config = active_admin_config
11
+ @field = [@column, @op].compact.join
12
+ end
13
+
14
+ def valid?
15
+ @field.present? && @order.present?
16
+ end
17
+
18
+ def apply(chain)
19
+ chain.reorder(Arel.sql sql)
20
+ end
21
+
22
+ def to_sql
23
+ [table_column, @op, ' ', @order].compact.join
24
+ end
25
+
26
+ def table
27
+ active_admin_config.resource_column_names.include?(@column) ? active_admin_config.resource_table_name : nil
28
+ end
29
+
30
+ def table_column
31
+ (@column =~ /\./) ? @column :
32
+ [table, active_admin_config.resource_quoted_column_name(@column)].compact.join(".")
33
+ end
34
+
35
+ def sql
36
+ custom_sql || to_sql
37
+ end
38
+
39
+ protected
40
+
41
+ def custom_sql
42
+ if active_admin_config.ordering[@column].present?
43
+ active_admin_config.ordering[@column].call(self)
44
+ end
45
+ end
46
+
47
+ end
48
+ end