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,209 @@
1
+ module ActiveAdmin
2
+ module Views
3
+ class TableFor < Arbre::HTML::Table
4
+ builder_method :table_for
5
+
6
+ def tag_name
7
+ 'table'
8
+ end
9
+
10
+ def build(obj, *attrs)
11
+ options = attrs.extract_options!
12
+ @sortable = options.delete(:sortable)
13
+ @collection = obj.respond_to?(:each) && !obj.is_a?(Hash) ? obj : [obj]
14
+ @resource_class = options.delete(:i18n)
15
+ @resource_class ||= @collection.klass if @collection.respond_to? :klass
16
+ @columns = []
17
+ @row_class = options.delete(:row_class)
18
+
19
+ build_table
20
+ super(options)
21
+ columns(*attrs)
22
+ end
23
+
24
+ def columns(*attrs)
25
+ attrs.each { |attr| column(attr) }
26
+ end
27
+
28
+ def column(*args, &block)
29
+ options = default_options.merge(args.extract_options!)
30
+ title = args[0]
31
+ data = args[1] || args[0]
32
+
33
+ col = Column.new(title, data, @resource_class, options, &block)
34
+ @columns << col
35
+
36
+ # Build our header item
37
+ within @header_row do
38
+ build_table_header(col)
39
+ end
40
+
41
+ # Add a table cell for each item
42
+ @collection.each_with_index do |resource, index|
43
+ within @tbody.children[index] do
44
+ build_table_cell col, resource
45
+ end
46
+ end
47
+ end
48
+
49
+ def sortable?
50
+ !!@sortable
51
+ end
52
+
53
+ protected
54
+
55
+ def build_table
56
+ build_table_head
57
+ build_table_body
58
+ end
59
+
60
+ def build_table_head
61
+ @thead = thead do
62
+ @header_row = tr
63
+ end
64
+ end
65
+
66
+ def build_table_header(col)
67
+ classes = Arbre::HTML::ClassList.new
68
+ sort_key = sortable? && col.sortable? && col.sort_key
69
+ params = request.query_parameters.except :page, :order, :commit, :format
70
+
71
+ classes << 'sortable' if sort_key
72
+ classes << "sorted-#{current_sort[1]}" if sort_key && current_sort[0] == sort_key
73
+ classes << col.html_class
74
+
75
+ if sort_key
76
+ th class: classes do
77
+ link_to col.pretty_title, params: params, order: "#{sort_key}_#{order_for_sort_key(sort_key)}"
78
+ end
79
+ else
80
+ th col.pretty_title, class: classes
81
+ end
82
+ end
83
+
84
+ def build_table_body
85
+ @tbody = tbody do
86
+ # Build enough rows for our collection
87
+ @collection.each do |elem|
88
+ classes = [helpers.cycle('odd', 'even')]
89
+
90
+ if @row_class
91
+ classes << @row_class.call(elem)
92
+ end
93
+
94
+ tr(class: classes.flatten.join(' '), id: dom_id_for(elem))
95
+ end
96
+ end
97
+ end
98
+
99
+ def build_table_cell(col, resource)
100
+ td class: col.html_class do
101
+ html = helpers.format_attribute(resource, col.data)
102
+ # Don't add the same Arbre twice, while still allowing format_attribute to call status_tag
103
+ current_arbre_element << html unless current_arbre_element.children.include? html
104
+ end
105
+ end
106
+
107
+ # Returns an array for the current sort order
108
+ # current_sort[0] #=> sort_key
109
+ # current_sort[1] #=> asc | desc
110
+ def current_sort
111
+ @current_sort ||= begin
112
+ order_clause = active_admin_config.order_clause.new(active_admin_config, params[:order])
113
+
114
+ if order_clause.valid?
115
+ [order_clause.field, order_clause.order]
116
+ else
117
+ []
118
+ end
119
+ end
120
+ end
121
+
122
+ # Returns the order to use for a given sort key
123
+ #
124
+ # Default is to use 'desc'. If the current sort key is
125
+ # 'desc' it will return 'asc'
126
+ def order_for_sort_key(sort_key)
127
+ current_key, current_order = current_sort
128
+ return 'desc' unless current_key == sort_key
129
+ current_order == 'desc' ? 'asc' : 'desc'
130
+ end
131
+
132
+ def default_options
133
+ {
134
+ i18n: @resource_class
135
+ }
136
+ end
137
+
138
+ class Column
139
+
140
+ attr_accessor :title, :data , :html_class
141
+
142
+ def initialize(*args, &block)
143
+ @options = args.extract_options!
144
+
145
+ @title = args[0]
146
+ html_classes = [:col]
147
+ if @options.has_key?(:class)
148
+ html_classes << @options.delete(:class)
149
+ elsif @title.present?
150
+ html_classes << "col-#{@title.to_s.parameterize(separator: "_")}"
151
+ end
152
+ @html_class = html_classes.join(' ')
153
+ @data = args[1] || args[0]
154
+ @data = block if block
155
+ @resource_class = args[2]
156
+ end
157
+
158
+ def sortable?
159
+ if @options.has_key?(:sortable)
160
+ !!@options[:sortable]
161
+ elsif @resource_class
162
+ @resource_class.column_names.include?(sort_column_name)
163
+ else
164
+ @title.present?
165
+ end
166
+ end
167
+
168
+ #
169
+ # Returns the key to be used for sorting this column
170
+ #
171
+ # Defaults to the column's method if its a symbol
172
+ # column :username
173
+ # # => Sort key will be set to 'username'
174
+ #
175
+ # You can set the sort key by passing a string or symbol
176
+ # to the sortable option:
177
+ # column :username, sortable: 'other_column_to_sort_on'
178
+ #
179
+ def sort_key
180
+ # If boolean or nil, use the default sort key.
181
+ if @options[:sortable].nil? || @options[:sortable] == true || @options[:sortable] == false
182
+ sort_column_name
183
+ else
184
+ @options[:sortable].to_s
185
+ end
186
+ end
187
+
188
+ def pretty_title
189
+ if @title.is_a? Symbol
190
+ default = @title.to_s.titleize
191
+ if @options[:i18n].respond_to? :human_attribute_name
192
+ @title = @options[:i18n].human_attribute_name @title, default: default
193
+ else
194
+ default
195
+ end
196
+ else
197
+ @title
198
+ end
199
+ end
200
+
201
+ private
202
+
203
+ def sort_column_name
204
+ @data.is_a?(Symbol) ? @data.to_s : @title.to_s
205
+ end
206
+ end
207
+ end
208
+ end
209
+ end
@@ -0,0 +1,40 @@
1
+ module ActiveAdmin
2
+ module Views
3
+ class Tabs < ActiveAdmin::Component
4
+ builder_method :tabs
5
+
6
+ def tab(title, options = {}, &block)
7
+ title = title.to_s.titleize if title.is_a? Symbol
8
+ @menu << build_menu_item(title, options, &block)
9
+ @tabs_content << build_content_item(title, options, &block)
10
+ end
11
+
12
+ def build(&block)
13
+ @menu = ul(class: 'nav nav-tabs', role: "tablist")
14
+ @tabs_content = div(class: 'tab-content')
15
+ end
16
+
17
+ def build_menu_item(title, options, &block)
18
+ fragment = options.fetch(:id, fragmentize(title))
19
+
20
+ html_options = options.fetch(:html_options, {})
21
+ li html_options do
22
+ link_to title, "##{fragment}"
23
+ end
24
+ end
25
+
26
+ def build_content_item(title, options, &block)
27
+ options = options.reverse_merge(id: fragmentize(title))
28
+ div(options, &block)
29
+ end
30
+
31
+ private
32
+
33
+ def fragmentize(string)
34
+ result = string.parameterize
35
+ result = URI.encode(string) if result.blank?
36
+ result
37
+ end
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,11 @@
1
+ module ActiveAdmin
2
+ module Views
3
+ class UnsupportedBrowser < Component
4
+ def build
5
+ h1 I18n.t("active_admin.unsupported_browser.headline").html_safe
6
+ para I18n.t("active_admin.unsupported_browser.recommendation").html_safe
7
+ para I18n.t("active_admin.unsupported_browser.turn_off_compatibility_view").html_safe
8
+ end
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,30 @@
1
+ module ActiveAdmin
2
+ module Views
3
+ class Footer < Component
4
+
5
+ def build(namespace)
6
+ super id: "footer"
7
+ @namespace = namespace
8
+
9
+ if footer_text.present?
10
+ para footer_text
11
+ else
12
+ para powered_by_message
13
+ end
14
+ end
15
+
16
+ private
17
+
18
+ def footer_text
19
+ @footer_text ||= @namespace.footer(self)
20
+ end
21
+
22
+ def powered_by_message
23
+ I18n.t('active_admin.powered_by',
24
+ active_admin: link_to("Active Admin", "https://activeadmin.info"),
25
+ version: ActiveAdmin::VERSION).html_safe
26
+ end
27
+
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,19 @@
1
+ module ActiveAdmin
2
+ module Views
3
+ class Header < Component
4
+
5
+ def build(namespace, menu)
6
+ super(id: "header")
7
+
8
+ @namespace = namespace
9
+ @menu = menu
10
+ @utility_menu = @namespace.fetch_menu(:utility_navigation)
11
+
12
+ site_title @namespace
13
+ global_navigation @menu, class: 'header-item tabs'
14
+ utility_navigation @utility_menu, id: "utility_nav", class: 'header-item tabs'
15
+ end
16
+
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,36 @@
1
+ module ActiveAdmin
2
+ module Views
3
+
4
+ # # Index as a Block
5
+ #
6
+ # If you want to fully customize the display of your resources on the index
7
+ # screen, Index as a Block allows you to render a block of content for each
8
+ # resource.
9
+ #
10
+ # ```ruby
11
+ # index as: :block do |product|
12
+ # div for: product do
13
+ # resource_selection_cell product
14
+ # h2 auto_link product.title
15
+ # div simple_format product.description
16
+ # end
17
+ # end
18
+ # ```
19
+ #
20
+ class IndexAsBlock < ActiveAdmin::Component
21
+
22
+ def build(page_presenter, collection)
23
+ add_class "index"
24
+ resource_selection_toggle_panel if active_admin_config.batch_actions.any?
25
+ collection.each do |obj|
26
+ instance_exec(obj, &page_presenter.block)
27
+ end
28
+ end
29
+
30
+ def self.index_name
31
+ "block"
32
+ end
33
+
34
+ end
35
+ end
36
+ end
@@ -0,0 +1,155 @@
1
+ module ActiveAdmin
2
+ module Views
3
+
4
+ # # Index as Blog
5
+ #
6
+ # Render your index page as a set of posts. The post has two main options:
7
+ # title and body.
8
+ #
9
+ # ```ruby
10
+ # index as: :blog do
11
+ # title :my_title # Calls #my_title on each resource
12
+ # body :my_body # Calls #my_body on each resource
13
+ # end
14
+ # ```
15
+ #
16
+ # ## Post Title
17
+ #
18
+ # The title is the content that will be rendered within a link to the
19
+ # resource. There are two main ways to set the content for the title
20
+ #
21
+ # First, you can pass in a method to be called on your resource. For example:
22
+ #
23
+ # ```ruby
24
+ # index as: :blog do
25
+ # title :a_method_to_call
26
+ # end
27
+ # ```
28
+ #
29
+ # Second, you can pass a block to the tile option which will then be
30
+ # used as the contents of the title. The resource being rendered
31
+ # is passed in to the block. For Example:
32
+ #
33
+ # ```ruby
34
+ # index as: :blog do
35
+ # title do |post|
36
+ # span post.title, class: 'title'
37
+ # span post.created_at, class: 'created_at'
38
+ # end
39
+ # end
40
+ # ```
41
+ #
42
+ # ## Post Body
43
+ #
44
+ # The body is rendered underneath the title of each post. The same two
45
+ # style of options work as the Post Title above.
46
+ #
47
+ # Call a method on the resource as the body:
48
+ #
49
+ # ```ruby
50
+ # index as: :blog do
51
+ # title :my_title
52
+ # body :my_body
53
+ # end
54
+ # ```
55
+ #
56
+ # Or, render a block as the body:
57
+ #
58
+ # ```ruby
59
+ # index as: :blog do
60
+ # title :my_title
61
+ # body do |post|
62
+ # div truncate post.title
63
+ # div class: 'meta' do
64
+ # span "Post in #{post.categories.join(', ')}"
65
+ # end
66
+ # end
67
+ # end
68
+ # ```
69
+ #
70
+ class IndexAsBlog < ActiveAdmin::Component
71
+
72
+ def build(page_presenter, collection)
73
+ @page_presenter = page_presenter
74
+ @collection = collection
75
+
76
+ # Call the block passed in. This will set the
77
+ # title and body methods
78
+ instance_exec &page_presenter.block if page_presenter.block
79
+
80
+ add_class "index"
81
+ build_posts
82
+ end
83
+
84
+ # Setter method for the configuration of the title
85
+ def title(method = nil, &block)
86
+ if block_given? || method
87
+ @title = block_given? ? block : method
88
+ end
89
+ @title
90
+ end
91
+
92
+ # Setter method for the configuration of the body
93
+ #
94
+ def body(method = nil, &block)
95
+ if block_given? || method
96
+ @body = block_given? ? block : method
97
+ end
98
+ @body
99
+ end
100
+
101
+ def self.index_name
102
+ "blog"
103
+ end
104
+
105
+ private
106
+
107
+ def build_posts
108
+ resource_selection_toggle_panel if active_admin_config.batch_actions.any?
109
+ @collection.each do |post|
110
+ build_post(post)
111
+ end
112
+ end
113
+
114
+ def build_post(post)
115
+ div for: post do
116
+ resource_selection_cell(post) if active_admin_config.batch_actions.any?
117
+ build_title(post)
118
+ build_body(post)
119
+ end
120
+ end
121
+
122
+ def build_title(post)
123
+ if @title
124
+ h3 do
125
+ a(href: resource_path(post)) do
126
+ render_method_on_post_or_call_proc post, @title
127
+ end
128
+ end
129
+ else
130
+ h3 do
131
+ auto_link(post)
132
+ end
133
+ end
134
+ end
135
+
136
+ def build_body(post)
137
+ if @body
138
+ div class: 'content' do
139
+ render_method_on_post_or_call_proc post, @body
140
+ end
141
+ end
142
+ end
143
+
144
+ def render_method_on_post_or_call_proc(post, proc)
145
+ case proc
146
+ when String, Symbol
147
+ post.public_send proc
148
+ else
149
+ instance_exec post, &proc
150
+ end
151
+ end
152
+
153
+ end # Posts
154
+ end
155
+ end