activeadmin 3.1.0 → 4.0.0.beta1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (340) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +2 -1
  3. data/CONTRIBUTING.md +25 -108
  4. data/README.md +17 -30
  5. data/app/assets/config/active_admin_manifest.js +2 -0
  6. data/app/controllers/active_admin/base_controller/menu.rb +39 -0
  7. data/{lib → app/controllers}/active_admin/base_controller.rb +46 -18
  8. data/{lib → app/controllers}/active_admin/page_controller.rb +0 -4
  9. data/{lib → app/controllers}/active_admin/resource_controller/action_builder.rb +1 -1
  10. data/{lib → app/controllers}/active_admin/resource_controller/data_access.rb +2 -2
  11. data/{lib → app/controllers}/active_admin/resource_controller/scoping.rb +1 -1
  12. data/{lib → app/controllers}/active_admin/resource_controller/streaming.rb +2 -2
  13. data/app/controllers/active_admin/resource_controller.rb +102 -0
  14. data/app/helpers/active_admin/auto_link_helper.rb +66 -0
  15. data/app/helpers/active_admin/breadcrumb_helper.rb +41 -0
  16. data/app/helpers/active_admin/display_helper.rb +117 -0
  17. data/app/helpers/active_admin/form_helper.rb +95 -0
  18. data/app/helpers/active_admin/index_helper.rb +40 -0
  19. data/app/helpers/active_admin/layout_helper.rb +63 -0
  20. data/app/javascript/active_admin/features/batch_actions.js +89 -0
  21. data/app/javascript/active_admin/features/dark_mode_toggle.js +37 -0
  22. data/app/javascript/active_admin/features/filters.js +34 -0
  23. data/app/javascript/active_admin/features/has_many.js +28 -0
  24. data/app/javascript/active_admin/features/main_menu.js +12 -0
  25. data/app/javascript/active_admin/features/per_page.js +9 -0
  26. data/app/javascript/active_admin/utils/dom.js +17 -0
  27. data/app/javascript/active_admin.js +10 -0
  28. data/app/views/active_admin/_flash_messages.html.erb +22 -0
  29. data/app/views/active_admin/_html_head.html.erb +13 -0
  30. data/app/views/active_admin/_main_navigation.html.erb +28 -0
  31. data/app/views/active_admin/_page_header.html.erb +27 -0
  32. data/app/views/active_admin/_sidebar.html.erb +5 -0
  33. data/app/views/active_admin/_site_footer.html.erb +7 -0
  34. data/app/views/active_admin/_site_header.html.erb +30 -0
  35. data/app/views/active_admin/devise/confirmations/new.html.erb +5 -3
  36. data/app/views/active_admin/devise/passwords/edit.html.erb +5 -3
  37. data/app/views/active_admin/devise/passwords/new.html.erb +5 -4
  38. data/app/views/active_admin/devise/registrations/new.html.erb +6 -4
  39. data/app/views/active_admin/devise/sessions/new.html.erb +6 -4
  40. data/app/views/active_admin/devise/shared/_links.erb +3 -1
  41. data/app/views/active_admin/devise/unlocks/new.html.erb +6 -4
  42. data/app/views/{kaminari/active_admin_countless → active_admin/kaminari}/_gap.html.erb +3 -1
  43. data/app/views/active_admin/kaminari/_next_page.html.erb +16 -0
  44. data/app/views/active_admin/kaminari/_page.html.erb +14 -0
  45. data/app/views/{kaminari/active_admin_countless → active_admin/kaminari}/_paginator.html.erb +1 -2
  46. data/app/views/active_admin/kaminari/_prev_page.html.erb +16 -0
  47. data/app/views/active_admin/page/index.html.arb +5 -1
  48. data/app/views/active_admin/resource/_active_filters.html.erb +32 -0
  49. data/app/views/active_admin/resource/_batch_actions_dropdown.html.erb +19 -0
  50. data/app/views/active_admin/resource/_form.html.arb +16 -0
  51. data/app/views/active_admin/resource/_form_default.html.arb +12 -0
  52. data/app/views/active_admin/resource/_index_as_table_default.html.arb +9 -0
  53. data/app/views/active_admin/resource/_index_blank_slate.html.erb +14 -0
  54. data/app/views/active_admin/resource/_index_empty_results.html.erb +5 -0
  55. data/app/views/active_admin/resource/_index_table_actions_default.html.erb +9 -0
  56. data/app/views/active_admin/resource/_show_default.html.arb +3 -0
  57. data/app/views/active_admin/resource/edit.html.arb +1 -1
  58. data/app/views/active_admin/resource/index.html.arb +94 -1
  59. data/app/views/active_admin/resource/new.html.arb +1 -1
  60. data/app/views/active_admin/resource/show.html.arb +12 -1
  61. data/app/views/active_admin/shared/_action_items.html.erb +3 -0
  62. data/app/views/active_admin/shared/_download_format_links.html.erb +7 -0
  63. data/app/views/active_admin/shared/_resource_comments.html.erb +51 -0
  64. data/app/views/active_admin/shared/_sidebar_section.html.arb +7 -0
  65. data/app/views/active_admin/shared/_sidebar_sections.html.erb +5 -0
  66. data/app/views/layouts/active_admin.html.erb +20 -0
  67. data/app/views/layouts/active_admin_logged_out.html.erb +8 -45
  68. data/config/locales/ar.yml +0 -16
  69. data/config/locales/az.yml +0 -16
  70. data/config/locales/bg.yml +0 -9
  71. data/config/locales/bs.yml +0 -7
  72. data/config/locales/ca.yml +0 -9
  73. data/config/locales/cs.yml +0 -9
  74. data/config/locales/da.yml +0 -16
  75. data/config/locales/de-CH.yml +0 -10
  76. data/config/locales/de.yml +0 -16
  77. data/config/locales/el.yml +0 -13
  78. data/config/locales/en-CA.yml +0 -16
  79. data/config/locales/en-GB.yml +0 -16
  80. data/config/locales/en.yml +18 -28
  81. data/config/locales/eo.yml +0 -17
  82. data/config/locales/es-MX.yml +0 -9
  83. data/config/locales/es.yml +0 -16
  84. data/config/locales/fa.yml +0 -9
  85. data/config/locales/fi.yml +0 -9
  86. data/config/locales/fr.yml +32 -26
  87. data/config/locales/he.yml +0 -16
  88. data/config/locales/hr.yml +0 -9
  89. data/config/locales/hu.yml +0 -6
  90. data/config/locales/id.yml +0 -16
  91. data/config/locales/it.yml +0 -16
  92. data/config/locales/ja.yml +0 -16
  93. data/config/locales/ko.yml +0 -9
  94. data/config/locales/lt.yml +0 -16
  95. data/config/locales/lv.yml +0 -6
  96. data/config/locales/mk.yml +0 -15
  97. data/config/locales/nb.yml +0 -12
  98. data/config/locales/nl.yml +21 -29
  99. data/config/locales/pl.yml +0 -16
  100. data/config/locales/pt-BR.yml +0 -16
  101. data/config/locales/pt-PT.yml +0 -6
  102. data/config/locales/ro.yml +0 -6
  103. data/config/locales/ru.yml +0 -16
  104. data/config/locales/sk.yml +0 -16
  105. data/config/locales/sv-SE.yml +0 -16
  106. data/config/locales/tr.yml +0 -16
  107. data/config/locales/uk.yml +0 -16
  108. data/config/locales/vi.yml +0 -16
  109. data/config/locales/zh-CN.yml +0 -16
  110. data/config/locales/zh-TW.yml +0 -16
  111. data/lib/active_admin/application.rb +1 -9
  112. data/lib/active_admin/batch_actions/controller.rb +1 -4
  113. data/lib/active_admin/batch_actions/resource_extension.rb +6 -13
  114. data/lib/active_admin/batch_actions/views/batch_action_form.rb +0 -6
  115. data/lib/active_admin/batch_actions/views/selection_cells.rb +2 -2
  116. data/lib/active_admin/batch_actions.rb +0 -5
  117. data/lib/active_admin/callbacks.rb +6 -4
  118. data/lib/active_admin/component.rb +0 -1
  119. data/lib/active_admin/csv_builder.rb +23 -2
  120. data/lib/active_admin/devise.rb +3 -3
  121. data/lib/active_admin/dsl.rb +2 -2
  122. data/lib/active_admin/dynamic_settings_node.rb +4 -4
  123. data/lib/active_admin/engine.rb +19 -6
  124. data/lib/active_admin/filters/active.rb +6 -4
  125. data/lib/active_admin/filters/active_filter.rb +1 -3
  126. data/lib/active_admin/filters/forms.rb +2 -43
  127. data/lib/active_admin/filters/formtastic_addons.rb +1 -1
  128. data/lib/active_admin/filters/resource_extension.rb +17 -9
  129. data/lib/active_admin/filters.rb +0 -2
  130. data/lib/active_admin/form_builder.rb +15 -14
  131. data/lib/active_admin/inputs/filters/base/search_method_select.rb +8 -10
  132. data/lib/active_admin/inputs/filters/base.rb +1 -1
  133. data/lib/active_admin/inputs/filters/check_boxes_input.rb +1 -6
  134. data/lib/active_admin/inputs/filters/date_range_input.rb +4 -2
  135. data/lib/active_admin/inputs/filters/select_input.rb +2 -0
  136. data/lib/active_admin/inputs.rb +0 -3
  137. data/lib/active_admin/menu.rb +11 -7
  138. data/lib/active_admin/menu_collection.rb +1 -1
  139. data/lib/active_admin/menu_item.rb +24 -3
  140. data/lib/active_admin/namespace.rb +2 -44
  141. data/lib/active_admin/namespace_settings.rb +2 -35
  142. data/lib/active_admin/order_clause.rb +4 -1
  143. data/lib/active_admin/orm/active_record/comments/views/active_admin_comments.rb +3 -75
  144. data/lib/active_admin/orm/active_record/comments.rb +10 -5
  145. data/lib/active_admin/resource/action_items.rb +15 -20
  146. data/lib/active_admin/resource/naming.rb +1 -2
  147. data/lib/active_admin/resource.rb +1 -0
  148. data/lib/active_admin/resource_dsl.rb +1 -1
  149. data/lib/active_admin/scope.rb +1 -1
  150. data/lib/active_admin/settings_node.rb +1 -1
  151. data/lib/active_admin/sidebar_section.rb +0 -5
  152. data/lib/active_admin/version.rb +1 -1
  153. data/lib/active_admin/view_helpers.rb +0 -12
  154. data/lib/active_admin/views/components/active_admin_form.rb +20 -16
  155. data/lib/active_admin/views/components/attributes_table.rb +4 -12
  156. data/lib/active_admin/views/components/index_list.rb +10 -23
  157. data/lib/active_admin/views/components/paginated_collection.rb +34 -39
  158. data/lib/active_admin/views/components/panel.rb +2 -10
  159. data/lib/active_admin/views/components/scopes.rb +12 -21
  160. data/lib/active_admin/views/components/status_tag.rb +22 -19
  161. data/lib/active_admin/views/components/table_for.rb +19 -24
  162. data/lib/active_admin/views/components/tabs.rb +10 -11
  163. data/lib/active_admin/views/index_as_table.rb +24 -97
  164. data/lib/active_admin.rb +7 -11
  165. data/lib/generators/active_admin/assets/assets_generator.rb +4 -4
  166. data/lib/generators/active_admin/assets/templates/active_admin.css +3 -0
  167. data/lib/generators/active_admin/assets/templates/tailwind.config.js +18 -0
  168. data/lib/generators/active_admin/install/install_generator.rb +2 -8
  169. data/lib/generators/active_admin/install/templates/active_admin.rb.erb +10 -87
  170. data/lib/generators/active_admin/install/templates/dashboard.rb +8 -25
  171. data/lib/generators/active_admin/page/page_generator.rb +0 -1
  172. data/lib/generators/active_admin/resource/resource_generator.rb +46 -7
  173. data/lib/generators/active_admin/resource/templates/resource.rb.erb +42 -0
  174. data/lib/generators/active_admin/views_generator.rb +18 -0
  175. metadata +66 -200
  176. data/app/assets/javascripts/active_admin/base.js +0 -521
  177. data/app/assets/stylesheets/active_admin/_base.scss +0 -57
  178. data/app/assets/stylesheets/active_admin/_forms.scss +0 -316
  179. data/app/assets/stylesheets/active_admin/_header.scss +0 -188
  180. data/app/assets/stylesheets/active_admin/_mixins.scss +0 -1
  181. data/app/assets/stylesheets/active_admin/_normalize.scss +0 -349
  182. data/app/assets/stylesheets/active_admin/_print.scss +0 -287
  183. data/app/assets/stylesheets/active_admin/_typography.scss +0 -100
  184. data/app/assets/stylesheets/active_admin/components/_batch_actions.scss +0 -6
  185. data/app/assets/stylesheets/active_admin/components/_blank_slates.scss +0 -30
  186. data/app/assets/stylesheets/active_admin/components/_breadcrumbs.scss +0 -20
  187. data/app/assets/stylesheets/active_admin/components/_buttons.scss +0 -6
  188. data/app/assets/stylesheets/active_admin/components/_columns.scss +0 -3
  189. data/app/assets/stylesheets/active_admin/components/_comments.scss +0 -41
  190. data/app/assets/stylesheets/active_admin/components/_date_picker.scss +0 -148
  191. data/app/assets/stylesheets/active_admin/components/_dropdown_menu.scss +0 -151
  192. data/app/assets/stylesheets/active_admin/components/_flash_messages.scss +0 -37
  193. data/app/assets/stylesheets/active_admin/components/_grid.scss +0 -9
  194. data/app/assets/stylesheets/active_admin/components/_index_list.scss +0 -12
  195. data/app/assets/stylesheets/active_admin/components/_links.scss +0 -5
  196. data/app/assets/stylesheets/active_admin/components/_modal_dialog.scss +0 -34
  197. data/app/assets/stylesheets/active_admin/components/_pagination.scss +0 -55
  198. data/app/assets/stylesheets/active_admin/components/_panels.scss +0 -6
  199. data/app/assets/stylesheets/active_admin/components/_scopes.scss +0 -13
  200. data/app/assets/stylesheets/active_admin/components/_status_tags.scss +0 -12
  201. data/app/assets/stylesheets/active_admin/components/_table_tools.scss +0 -67
  202. data/app/assets/stylesheets/active_admin/components/_tables.scss +0 -112
  203. data/app/assets/stylesheets/active_admin/components/_tabs.scss +0 -65
  204. data/app/assets/stylesheets/active_admin/components/_unsupported_browser.scss +0 -16
  205. data/app/assets/stylesheets/active_admin/mixins/_all.scss +0 -8
  206. data/app/assets/stylesheets/active_admin/mixins/_buttons.scss +0 -65
  207. data/app/assets/stylesheets/active_admin/mixins/_gradients.scss +0 -28
  208. data/app/assets/stylesheets/active_admin/mixins/_rounded.scss +0 -22
  209. data/app/assets/stylesheets/active_admin/mixins/_sections.scss +0 -41
  210. data/app/assets/stylesheets/active_admin/mixins/_shadows.scss +0 -15
  211. data/app/assets/stylesheets/active_admin/mixins/_typography.scss +0 -3
  212. data/app/assets/stylesheets/active_admin/mixins/_utilities.scss +0 -17
  213. data/app/assets/stylesheets/active_admin/mixins/_variables.scss +0 -51
  214. data/app/assets/stylesheets/active_admin/pages/_logged_out.scss +0 -44
  215. data/app/assets/stylesheets/active_admin/structure/_footer.scss +0 -19
  216. data/app/assets/stylesheets/active_admin/structure/_main_structure.scss +0 -29
  217. data/app/assets/stylesheets/active_admin/structure/_title_bar.scss +0 -40
  218. data/app/javascript/active_admin/base.js +0 -28
  219. data/app/javascript/active_admin/ext/jquery-ui.js +0 -7
  220. data/app/javascript/active_admin/ext/jquery.js +0 -9
  221. data/app/javascript/active_admin/initializers/batch-actions.js +0 -61
  222. data/app/javascript/active_admin/initializers/checkbox-toggler.js +0 -3
  223. data/app/javascript/active_admin/initializers/datepicker.js +0 -16
  224. data/app/javascript/active_admin/initializers/dropdown-menu.js +0 -9
  225. data/app/javascript/active_admin/initializers/filters.js +0 -10
  226. data/app/javascript/active_admin/initializers/has-many.js +0 -98
  227. data/app/javascript/active_admin/initializers/per-page.js +0 -13
  228. data/app/javascript/active_admin/initializers/table-checkbox-toggler.js +0 -3
  229. data/app/javascript/active_admin/initializers/tabs.js +0 -6
  230. data/app/javascript/active_admin/lib/checkbox-toggler.js +0 -49
  231. data/app/javascript/active_admin/lib/dropdown-menu.js +0 -116
  232. data/app/javascript/active_admin/lib/filters.js +0 -39
  233. data/app/javascript/active_admin/lib/modal-dialog.js +0 -63
  234. data/app/javascript/active_admin/lib/per-page.js +0 -38
  235. data/app/javascript/active_admin/lib/table-checkbox-toggler.js +0 -38
  236. data/app/javascript/active_admin/lib/utils.js +0 -40
  237. data/app/views/kaminari/active_admin/_first_page.html.erb +0 -11
  238. data/app/views/kaminari/active_admin/_gap.html.erb +0 -8
  239. data/app/views/kaminari/active_admin/_last_page.html.erb +0 -11
  240. data/app/views/kaminari/active_admin/_next_page.html.erb +0 -11
  241. data/app/views/kaminari/active_admin/_page.html.erb +0 -12
  242. data/app/views/kaminari/active_admin/_paginator.html.erb +0 -25
  243. data/app/views/kaminari/active_admin/_prev_page.html.erb +0 -11
  244. data/app/views/kaminari/active_admin_countless/_first_page.html.erb +0 -11
  245. data/app/views/kaminari/active_admin_countless/_next_page.html.erb +0 -11
  246. data/app/views/kaminari/active_admin_countless/_page.html.erb +0 -12
  247. data/app/views/kaminari/active_admin_countless/_prev_page.html.erb +0 -11
  248. data/app/views/layouts/active_admin.html.arb +0 -2
  249. data/lib/active_admin/abstract_view_factory.rb +0 -48
  250. data/lib/active_admin/asset_registration.rb +0 -30
  251. data/lib/active_admin/base_controller/menu.rb +0 -35
  252. data/lib/active_admin/batch_actions/views/batch_action_selector.rb +0 -59
  253. data/lib/active_admin/filters/active_sidebar.rb +0 -28
  254. data/lib/active_admin/generators/boilerplate.rb +0 -54
  255. data/lib/active_admin/helpers/collection.rb +0 -21
  256. data/lib/active_admin/helpers/i18n.rb +0 -8
  257. data/lib/active_admin/inputs/datepicker_input.rb +0 -28
  258. data/lib/active_admin/inputs/filters/date_picker_input.rb +0 -14
  259. data/lib/active_admin/orm/active_record/comments/show_page_helper.rb +0 -24
  260. data/lib/active_admin/orm/mongoid.rb +0 -2
  261. data/lib/active_admin/resource_controller/sidebars.rb +0 -19
  262. data/lib/active_admin/resource_controller.rb +0 -68
  263. data/lib/active_admin/view_factory.rb +0 -28
  264. data/lib/active_admin/view_helpers/active_admin_application_helper.rb +0 -13
  265. data/lib/active_admin/view_helpers/auto_link_helper.rb +0 -46
  266. data/lib/active_admin/view_helpers/breadcrumb_helper.rb +0 -34
  267. data/lib/active_admin/view_helpers/display_helper.rb +0 -119
  268. data/lib/active_admin/view_helpers/download_format_links_helper.rb +0 -60
  269. data/lib/active_admin/view_helpers/fields_for.rb +0 -51
  270. data/lib/active_admin/view_helpers/flash_helper.rb +0 -15
  271. data/lib/active_admin/view_helpers/form_helper.rb +0 -21
  272. data/lib/active_admin/view_helpers/scope_name_helper.rb +0 -17
  273. data/lib/active_admin/view_helpers/sidebar_helper.rb +0 -16
  274. data/lib/active_admin/view_helpers/title_helper.rb +0 -12
  275. data/lib/active_admin/view_helpers/view_factory_helper.rb +0 -12
  276. data/lib/active_admin/views/action_items.rb +0 -18
  277. data/lib/active_admin/views/components/active_filters_sidebar_content.rb +0 -59
  278. data/lib/active_admin/views/components/blank_slate.rb +0 -18
  279. data/lib/active_admin/views/components/columns.rb +0 -162
  280. data/lib/active_admin/views/components/dropdown_menu.rb +0 -69
  281. data/lib/active_admin/views/components/menu.rb +0 -33
  282. data/lib/active_admin/views/components/menu_item.rb +0 -59
  283. data/lib/active_admin/views/components/sidebar.rb +0 -14
  284. data/lib/active_admin/views/components/sidebar_section.rb +0 -35
  285. data/lib/active_admin/views/components/site_title.rb +0 -55
  286. data/lib/active_admin/views/components/unsupported_browser.rb +0 -12
  287. data/lib/active_admin/views/footer.rb +0 -32
  288. data/lib/active_admin/views/header.rb +0 -20
  289. data/lib/active_admin/views/index_as_block.rb +0 -37
  290. data/lib/active_admin/views/index_as_blog.rb +0 -156
  291. data/lib/active_admin/views/index_as_grid.rb +0 -81
  292. data/lib/active_admin/views/pages/base.rb +0 -134
  293. data/lib/active_admin/views/pages/form.rb +0 -65
  294. data/lib/active_admin/views/pages/index.rb +0 -166
  295. data/lib/active_admin/views/pages/layout.rb +0 -27
  296. data/lib/active_admin/views/pages/page.rb +0 -31
  297. data/lib/active_admin/views/pages/show.rb +0 -60
  298. data/lib/active_admin/views/tabbed_navigation.rb +0 -12
  299. data/lib/active_admin/views/title_bar.rb +0 -56
  300. data/lib/generators/active_admin/assets/templates/active_admin.js +0 -1
  301. data/lib/generators/active_admin/assets/templates/active_admin.scss +0 -17
  302. data/lib/generators/active_admin/resource/templates/admin.rb.erb +0 -46
  303. data/lib/generators/active_admin/webpacker/plugins/jquery.js +0 -7
  304. data/lib/generators/active_admin/webpacker/templates/active_admin.js +0 -5
  305. data/lib/generators/active_admin/webpacker/templates/active_admin.scss +0 -17
  306. data/lib/generators/active_admin/webpacker/templates/print.scss +0 -2
  307. data/lib/generators/active_admin/webpacker/webpacker_generator.rb +0 -27
  308. data/vendor/assets/javascripts/jquery-ui/data.js +0 -41
  309. data/vendor/assets/javascripts/jquery-ui/disable-selection.js +0 -48
  310. data/vendor/assets/javascripts/jquery-ui/escape-selector.js +0 -23
  311. data/vendor/assets/javascripts/jquery-ui/focusable.js +0 -86
  312. data/vendor/assets/javascripts/jquery-ui/form-reset-mixin.js +0 -80
  313. data/vendor/assets/javascripts/jquery-ui/form.js +0 -22
  314. data/vendor/assets/javascripts/jquery-ui/ie.js +0 -17
  315. data/vendor/assets/javascripts/jquery-ui/keycode.js +0 -47
  316. data/vendor/assets/javascripts/jquery-ui/labels.js +0 -65
  317. data/vendor/assets/javascripts/jquery-ui/plugin.js +0 -46
  318. data/vendor/assets/javascripts/jquery-ui/position.js +0 -500
  319. data/vendor/assets/javascripts/jquery-ui/safe-active-element.js +0 -42
  320. data/vendor/assets/javascripts/jquery-ui/safe-blur.js +0 -23
  321. data/vendor/assets/javascripts/jquery-ui/scroll-parent.js +0 -47
  322. data/vendor/assets/javascripts/jquery-ui/tabbable.js +0 -38
  323. data/vendor/assets/javascripts/jquery-ui/unique-id.js +0 -51
  324. data/vendor/assets/javascripts/jquery-ui/version.js +0 -17
  325. data/vendor/assets/javascripts/jquery-ui/widget.js +0 -735
  326. data/vendor/assets/javascripts/jquery-ui/widgets/button.js +0 -391
  327. data/vendor/assets/javascripts/jquery-ui/widgets/checkboxradio.js +0 -291
  328. data/vendor/assets/javascripts/jquery-ui/widgets/controlgroup.js +0 -300
  329. data/vendor/assets/javascripts/jquery-ui/widgets/datepicker.js +0 -2123
  330. data/vendor/assets/javascripts/jquery-ui/widgets/dialog.js +0 -954
  331. data/vendor/assets/javascripts/jquery-ui/widgets/draggable.js +0 -1259
  332. data/vendor/assets/javascripts/jquery-ui/widgets/mouse.js +0 -230
  333. data/vendor/assets/javascripts/jquery-ui/widgets/resizable.js +0 -1207
  334. data/vendor/assets/javascripts/jquery-ui/widgets/sortable.js +0 -1561
  335. data/vendor/assets/javascripts/jquery-ui/widgets/tabs.js +0 -931
  336. /data/{lib → app/controllers}/active_admin/base_controller/authorization.rb +0 -0
  337. /data/{lib → app/controllers}/active_admin/resource_controller/decorators.rb +0 -0
  338. /data/{lib → app/controllers}/active_admin/resource_controller/polymorphic_routes.rb +0 -0
  339. /data/{lib → app/controllers}/active_admin/resource_controller/resource_class_methods.rb +0 -0
  340. /data/lib/{active_admin/orm/mongoid/.gitkeep → generators/active_admin/assets/templates/builds/.keep} +0 -0
@@ -1,735 +0,0 @@
1
- //= require jquery-ui/version
2
-
3
- /*!
4
- * jQuery UI Widget 1.12.1
5
- * http://jqueryui.com
6
- *
7
- * Copyright jQuery Foundation and other contributors
8
- * Released under the MIT license.
9
- * http://jquery.org/license
10
- */
11
-
12
- //>>label: Widget
13
- //>>group: Core
14
- //>>description: Provides a factory for creating stateful widgets with a common API.
15
- //>>docs: http://api.jqueryui.com/jQuery.widget/
16
- //>>demos: http://jqueryui.com/widget/
17
-
18
- ( function( factory ) {
19
- if ( typeof define === "function" && define.amd ) {
20
-
21
- // AMD. Register as an anonymous module.
22
- define( [ "jquery", "./version" ], factory );
23
- } else {
24
-
25
- // Browser globals
26
- factory( jQuery );
27
- }
28
- }( function( $ ) {
29
-
30
- var widgetUuid = 0;
31
- var widgetSlice = Array.prototype.slice;
32
-
33
- $.cleanData = ( function( orig ) {
34
- return function( elems ) {
35
- var events, elem, i;
36
- for ( i = 0; ( elem = elems[ i ] ) != null; i++ ) {
37
- try {
38
-
39
- // Only trigger remove when necessary to save time
40
- events = $._data( elem, "events" );
41
- if ( events && events.remove ) {
42
- $( elem ).triggerHandler( "remove" );
43
- }
44
-
45
- // Http://bugs.jquery.com/ticket/8235
46
- } catch ( e ) {}
47
- }
48
- orig( elems );
49
- };
50
- } )( $.cleanData );
51
-
52
- $.widget = function( name, base, prototype ) {
53
- var existingConstructor, constructor, basePrototype;
54
-
55
- // ProxiedPrototype allows the provided prototype to remain unmodified
56
- // so that it can be used as a mixin for multiple widgets (#8876)
57
- var proxiedPrototype = {};
58
-
59
- var namespace = name.split( "." )[ 0 ];
60
- name = name.split( "." )[ 1 ];
61
- var fullName = namespace + "-" + name;
62
-
63
- if ( !prototype ) {
64
- prototype = base;
65
- base = $.Widget;
66
- }
67
-
68
- if ( $.isArray( prototype ) ) {
69
- prototype = $.extend.apply( null, [ {} ].concat( prototype ) );
70
- }
71
-
72
- // Create selector for plugin
73
- $.expr[ ":" ][ fullName.toLowerCase() ] = function( elem ) {
74
- return !!$.data( elem, fullName );
75
- };
76
-
77
- $[ namespace ] = $[ namespace ] || {};
78
- existingConstructor = $[ namespace ][ name ];
79
- constructor = $[ namespace ][ name ] = function( options, element ) {
80
-
81
- // Allow instantiation without "new" keyword
82
- if ( !this._createWidget ) {
83
- return new constructor( options, element );
84
- }
85
-
86
- // Allow instantiation without initializing for simple inheritance
87
- // must use "new" keyword (the code above always passes args)
88
- if ( arguments.length ) {
89
- this._createWidget( options, element );
90
- }
91
- };
92
-
93
- // Extend with the existing constructor to carry over any static properties
94
- $.extend( constructor, existingConstructor, {
95
- version: prototype.version,
96
-
97
- // Copy the object used to create the prototype in case we need to
98
- // redefine the widget later
99
- _proto: $.extend( {}, prototype ),
100
-
101
- // Track widgets that inherit from this widget in case this widget is
102
- // redefined after a widget inherits from it
103
- _childConstructors: []
104
- } );
105
-
106
- basePrototype = new base();
107
-
108
- // We need to make the options hash a property directly on the new instance
109
- // otherwise we'll modify the options hash on the prototype that we're
110
- // inheriting from
111
- basePrototype.options = $.widget.extend( {}, basePrototype.options );
112
- $.each( prototype, function( prop, value ) {
113
- if ( !$.isFunction( value ) ) {
114
- proxiedPrototype[ prop ] = value;
115
- return;
116
- }
117
- proxiedPrototype[ prop ] = ( function() {
118
- function _super() {
119
- return base.prototype[ prop ].apply( this, arguments );
120
- }
121
-
122
- function _superApply( args ) {
123
- return base.prototype[ prop ].apply( this, args );
124
- }
125
-
126
- return function() {
127
- var __super = this._super;
128
- var __superApply = this._superApply;
129
- var returnValue;
130
-
131
- this._super = _super;
132
- this._superApply = _superApply;
133
-
134
- returnValue = value.apply( this, arguments );
135
-
136
- this._super = __super;
137
- this._superApply = __superApply;
138
-
139
- return returnValue;
140
- };
141
- } )();
142
- } );
143
- constructor.prototype = $.widget.extend( basePrototype, {
144
-
145
- // TODO: remove support for widgetEventPrefix
146
- // always use the name + a colon as the prefix, e.g., draggable:start
147
- // don't prefix for widgets that aren't DOM-based
148
- widgetEventPrefix: existingConstructor ? ( basePrototype.widgetEventPrefix || name ) : name
149
- }, proxiedPrototype, {
150
- constructor: constructor,
151
- namespace: namespace,
152
- widgetName: name,
153
- widgetFullName: fullName
154
- } );
155
-
156
- // If this widget is being redefined then we need to find all widgets that
157
- // are inheriting from it and redefine all of them so that they inherit from
158
- // the new version of this widget. We're essentially trying to replace one
159
- // level in the prototype chain.
160
- if ( existingConstructor ) {
161
- $.each( existingConstructor._childConstructors, function( i, child ) {
162
- var childPrototype = child.prototype;
163
-
164
- // Redefine the child widget using the same prototype that was
165
- // originally used, but inherit from the new version of the base
166
- $.widget( childPrototype.namespace + "." + childPrototype.widgetName, constructor,
167
- child._proto );
168
- } );
169
-
170
- // Remove the list of existing child constructors from the old constructor
171
- // so the old child constructors can be garbage collected
172
- delete existingConstructor._childConstructors;
173
- } else {
174
- base._childConstructors.push( constructor );
175
- }
176
-
177
- $.widget.bridge( name, constructor );
178
-
179
- return constructor;
180
- };
181
-
182
- $.widget.extend = function( target ) {
183
- var input = widgetSlice.call( arguments, 1 );
184
- var inputIndex = 0;
185
- var inputLength = input.length;
186
- var key;
187
- var value;
188
-
189
- for ( ; inputIndex < inputLength; inputIndex++ ) {
190
- for ( key in input[ inputIndex ] ) {
191
- value = input[ inputIndex ][ key ];
192
- if ( input[ inputIndex ].hasOwnProperty( key ) && value !== undefined ) {
193
-
194
- // Clone objects
195
- if ( $.isPlainObject( value ) ) {
196
- target[ key ] = $.isPlainObject( target[ key ] ) ?
197
- $.widget.extend( {}, target[ key ], value ) :
198
-
199
- // Don't extend strings, arrays, etc. with objects
200
- $.widget.extend( {}, value );
201
-
202
- // Copy everything else by reference
203
- } else {
204
- target[ key ] = value;
205
- }
206
- }
207
- }
208
- }
209
- return target;
210
- };
211
-
212
- $.widget.bridge = function( name, object ) {
213
- var fullName = object.prototype.widgetFullName || name;
214
- $.fn[ name ] = function( options ) {
215
- var isMethodCall = typeof options === "string";
216
- var args = widgetSlice.call( arguments, 1 );
217
- var returnValue = this;
218
-
219
- if ( isMethodCall ) {
220
-
221
- // If this is an empty collection, we need to have the instance method
222
- // return undefined instead of the jQuery instance
223
- if ( !this.length && options === "instance" ) {
224
- returnValue = undefined;
225
- } else {
226
- this.each( function() {
227
- var methodValue;
228
- var instance = $.data( this, fullName );
229
-
230
- if ( options === "instance" ) {
231
- returnValue = instance;
232
- return false;
233
- }
234
-
235
- if ( !instance ) {
236
- return $.error( "cannot call methods on " + name +
237
- " prior to initialization; " +
238
- "attempted to call method '" + options + "'" );
239
- }
240
-
241
- if ( !$.isFunction( instance[ options ] ) || options.charAt( 0 ) === "_" ) {
242
- return $.error( "no such method '" + options + "' for " + name +
243
- " widget instance" );
244
- }
245
-
246
- methodValue = instance[ options ].apply( instance, args );
247
-
248
- if ( methodValue !== instance && methodValue !== undefined ) {
249
- returnValue = methodValue && methodValue.jquery ?
250
- returnValue.pushStack( methodValue.get() ) :
251
- methodValue;
252
- return false;
253
- }
254
- } );
255
- }
256
- } else {
257
-
258
- // Allow multiple hashes to be passed on init
259
- if ( args.length ) {
260
- options = $.widget.extend.apply( null, [ options ].concat( args ) );
261
- }
262
-
263
- this.each( function() {
264
- var instance = $.data( this, fullName );
265
- if ( instance ) {
266
- instance.option( options || {} );
267
- if ( instance._init ) {
268
- instance._init();
269
- }
270
- } else {
271
- $.data( this, fullName, new object( options, this ) );
272
- }
273
- } );
274
- }
275
-
276
- return returnValue;
277
- };
278
- };
279
-
280
- $.Widget = function( /* options, element */ ) {};
281
- $.Widget._childConstructors = [];
282
-
283
- $.Widget.prototype = {
284
- widgetName: "widget",
285
- widgetEventPrefix: "",
286
- defaultElement: "<div>",
287
-
288
- options: {
289
- classes: {},
290
- disabled: false,
291
-
292
- // Callbacks
293
- create: null
294
- },
295
-
296
- _createWidget: function( options, element ) {
297
- element = $( element || this.defaultElement || this )[ 0 ];
298
- this.element = $( element );
299
- this.uuid = widgetUuid++;
300
- this.eventNamespace = "." + this.widgetName + this.uuid;
301
-
302
- this.bindings = $();
303
- this.hoverable = $();
304
- this.focusable = $();
305
- this.classesElementLookup = {};
306
-
307
- if ( element !== this ) {
308
- $.data( element, this.widgetFullName, this );
309
- this._on( true, this.element, {
310
- remove: function( event ) {
311
- if ( event.target === element ) {
312
- this.destroy();
313
- }
314
- }
315
- } );
316
- this.document = $( element.style ?
317
-
318
- // Element within the document
319
- element.ownerDocument :
320
-
321
- // Element is window or document
322
- element.document || element );
323
- this.window = $( this.document[ 0 ].defaultView || this.document[ 0 ].parentWindow );
324
- }
325
-
326
- this.options = $.widget.extend( {},
327
- this.options,
328
- this._getCreateOptions(),
329
- options );
330
-
331
- this._create();
332
-
333
- if ( this.options.disabled ) {
334
- this._setOptionDisabled( this.options.disabled );
335
- }
336
-
337
- this._trigger( "create", null, this._getCreateEventData() );
338
- this._init();
339
- },
340
-
341
- _getCreateOptions: function() {
342
- return {};
343
- },
344
-
345
- _getCreateEventData: $.noop,
346
-
347
- _create: $.noop,
348
-
349
- _init: $.noop,
350
-
351
- destroy: function() {
352
- var that = this;
353
-
354
- this._destroy();
355
- $.each( this.classesElementLookup, function( key, value ) {
356
- that._removeClass( value, key );
357
- } );
358
-
359
- // We can probably remove the unbind calls in 2.0
360
- // all event bindings should go through this._on()
361
- this.element
362
- .off( this.eventNamespace )
363
- .removeData( this.widgetFullName );
364
- this.widget()
365
- .off( this.eventNamespace )
366
- .removeAttr( "aria-disabled" );
367
-
368
- // Clean up events and states
369
- this.bindings.off( this.eventNamespace );
370
- },
371
-
372
- _destroy: $.noop,
373
-
374
- widget: function() {
375
- return this.element;
376
- },
377
-
378
- option: function( key, value ) {
379
- var options = key;
380
- var parts;
381
- var curOption;
382
- var i;
383
-
384
- if ( arguments.length === 0 ) {
385
-
386
- // Don't return a reference to the internal hash
387
- return $.widget.extend( {}, this.options );
388
- }
389
-
390
- if ( typeof key === "string" ) {
391
-
392
- // Handle nested keys, e.g., "foo.bar" => { foo: { bar: ___ } }
393
- options = {};
394
- parts = key.split( "." );
395
- key = parts.shift();
396
- if ( parts.length ) {
397
- curOption = options[ key ] = $.widget.extend( {}, this.options[ key ] );
398
- for ( i = 0; i < parts.length - 1; i++ ) {
399
- curOption[ parts[ i ] ] = curOption[ parts[ i ] ] || {};
400
- curOption = curOption[ parts[ i ] ];
401
- }
402
- key = parts.pop();
403
- if ( arguments.length === 1 ) {
404
- return curOption[ key ] === undefined ? null : curOption[ key ];
405
- }
406
- curOption[ key ] = value;
407
- } else {
408
- if ( arguments.length === 1 ) {
409
- return this.options[ key ] === undefined ? null : this.options[ key ];
410
- }
411
- options[ key ] = value;
412
- }
413
- }
414
-
415
- this._setOptions( options );
416
-
417
- return this;
418
- },
419
-
420
- _setOptions: function( options ) {
421
- var key;
422
-
423
- for ( key in options ) {
424
- this._setOption( key, options[ key ] );
425
- }
426
-
427
- return this;
428
- },
429
-
430
- _setOption: function( key, value ) {
431
- if ( key === "classes" ) {
432
- this._setOptionClasses( value );
433
- }
434
-
435
- this.options[ key ] = value;
436
-
437
- if ( key === "disabled" ) {
438
- this._setOptionDisabled( value );
439
- }
440
-
441
- return this;
442
- },
443
-
444
- _setOptionClasses: function( value ) {
445
- var classKey, elements, currentElements;
446
-
447
- for ( classKey in value ) {
448
- currentElements = this.classesElementLookup[ classKey ];
449
- if ( value[ classKey ] === this.options.classes[ classKey ] ||
450
- !currentElements ||
451
- !currentElements.length ) {
452
- continue;
453
- }
454
-
455
- // We are doing this to create a new jQuery object because the _removeClass() call
456
- // on the next line is going to destroy the reference to the current elements being
457
- // tracked. We need to save a copy of this collection so that we can add the new classes
458
- // below.
459
- elements = $( currentElements.get() );
460
- this._removeClass( currentElements, classKey );
461
-
462
- // We don't use _addClass() here, because that uses this.options.classes
463
- // for generating the string of classes. We want to use the value passed in from
464
- // _setOption(), this is the new value of the classes option which was passed to
465
- // _setOption(). We pass this value directly to _classes().
466
- elements.addClass( this._classes( {
467
- element: elements,
468
- keys: classKey,
469
- classes: value,
470
- add: true
471
- } ) );
472
- }
473
- },
474
-
475
- _setOptionDisabled: function( value ) {
476
- this._toggleClass( this.widget(), this.widgetFullName + "-disabled", null, !!value );
477
-
478
- // If the widget is becoming disabled, then nothing is interactive
479
- if ( value ) {
480
- this._removeClass( this.hoverable, null, "ui-state-hover" );
481
- this._removeClass( this.focusable, null, "ui-state-focus" );
482
- }
483
- },
484
-
485
- enable: function() {
486
- return this._setOptions( { disabled: false } );
487
- },
488
-
489
- disable: function() {
490
- return this._setOptions( { disabled: true } );
491
- },
492
-
493
- _classes: function( options ) {
494
- var full = [];
495
- var that = this;
496
-
497
- options = $.extend( {
498
- element: this.element,
499
- classes: this.options.classes || {}
500
- }, options );
501
-
502
- function processClassString( classes, checkOption ) {
503
- var current, i;
504
- for ( i = 0; i < classes.length; i++ ) {
505
- current = that.classesElementLookup[ classes[ i ] ] || $();
506
- if ( options.add ) {
507
- current = $( $.unique( current.get().concat( options.element.get() ) ) );
508
- } else {
509
- current = $( current.not( options.element ).get() );
510
- }
511
- that.classesElementLookup[ classes[ i ] ] = current;
512
- full.push( classes[ i ] );
513
- if ( checkOption && options.classes[ classes[ i ] ] ) {
514
- full.push( options.classes[ classes[ i ] ] );
515
- }
516
- }
517
- }
518
-
519
- this._on( options.element, {
520
- "remove": "_untrackClassesElement"
521
- } );
522
-
523
- if ( options.keys ) {
524
- processClassString( options.keys.match( /\S+/g ) || [], true );
525
- }
526
- if ( options.extra ) {
527
- processClassString( options.extra.match( /\S+/g ) || [] );
528
- }
529
-
530
- return full.join( " " );
531
- },
532
-
533
- _untrackClassesElement: function( event ) {
534
- var that = this;
535
- $.each( that.classesElementLookup, function( key, value ) {
536
- if ( $.inArray( event.target, value ) !== -1 ) {
537
- that.classesElementLookup[ key ] = $( value.not( event.target ).get() );
538
- }
539
- } );
540
- },
541
-
542
- _removeClass: function( element, keys, extra ) {
543
- return this._toggleClass( element, keys, extra, false );
544
- },
545
-
546
- _addClass: function( element, keys, extra ) {
547
- return this._toggleClass( element, keys, extra, true );
548
- },
549
-
550
- _toggleClass: function( element, keys, extra, add ) {
551
- add = ( typeof add === "boolean" ) ? add : extra;
552
- var shift = ( typeof element === "string" || element === null ),
553
- options = {
554
- extra: shift ? keys : extra,
555
- keys: shift ? element : keys,
556
- element: shift ? this.element : element,
557
- add: add
558
- };
559
- options.element.toggleClass( this._classes( options ), add );
560
- return this;
561
- },
562
-
563
- _on: function( suppressDisabledCheck, element, handlers ) {
564
- var delegateElement;
565
- var instance = this;
566
-
567
- // No suppressDisabledCheck flag, shuffle arguments
568
- if ( typeof suppressDisabledCheck !== "boolean" ) {
569
- handlers = element;
570
- element = suppressDisabledCheck;
571
- suppressDisabledCheck = false;
572
- }
573
-
574
- // No element argument, shuffle and use this.element
575
- if ( !handlers ) {
576
- handlers = element;
577
- element = this.element;
578
- delegateElement = this.widget();
579
- } else {
580
- element = delegateElement = $( element );
581
- this.bindings = this.bindings.add( element );
582
- }
583
-
584
- $.each( handlers, function( event, handler ) {
585
- function handlerProxy() {
586
-
587
- // Allow widgets to customize the disabled handling
588
- // - disabled as an array instead of boolean
589
- // - disabled class as method for disabling individual parts
590
- if ( !suppressDisabledCheck &&
591
- ( instance.options.disabled === true ||
592
- $( this ).hasClass( "ui-state-disabled" ) ) ) {
593
- return;
594
- }
595
- return ( typeof handler === "string" ? instance[ handler ] : handler )
596
- .apply( instance, arguments );
597
- }
598
-
599
- // Copy the guid so direct unbinding works
600
- if ( typeof handler !== "string" ) {
601
- handlerProxy.guid = handler.guid =
602
- handler.guid || handlerProxy.guid || $.guid++;
603
- }
604
-
605
- var match = event.match( /^([\w:-]*)\s*(.*)$/ );
606
- var eventName = match[ 1 ] + instance.eventNamespace;
607
- var selector = match[ 2 ];
608
-
609
- if ( selector ) {
610
- delegateElement.on( eventName, selector, handlerProxy );
611
- } else {
612
- element.on( eventName, handlerProxy );
613
- }
614
- } );
615
- },
616
-
617
- _off: function( element, eventName ) {
618
- eventName = ( eventName || "" ).split( " " ).join( this.eventNamespace + " " ) +
619
- this.eventNamespace;
620
- element.off( eventName ).off( eventName );
621
-
622
- // Clear the stack to avoid memory leaks (#10056)
623
- this.bindings = $( this.bindings.not( element ).get() );
624
- this.focusable = $( this.focusable.not( element ).get() );
625
- this.hoverable = $( this.hoverable.not( element ).get() );
626
- },
627
-
628
- _delay: function( handler, delay ) {
629
- function handlerProxy() {
630
- return ( typeof handler === "string" ? instance[ handler ] : handler )
631
- .apply( instance, arguments );
632
- }
633
- var instance = this;
634
- return setTimeout( handlerProxy, delay || 0 );
635
- },
636
-
637
- _hoverable: function( element ) {
638
- this.hoverable = this.hoverable.add( element );
639
- this._on( element, {
640
- mouseenter: function( event ) {
641
- this._addClass( $( event.currentTarget ), null, "ui-state-hover" );
642
- },
643
- mouseleave: function( event ) {
644
- this._removeClass( $( event.currentTarget ), null, "ui-state-hover" );
645
- }
646
- } );
647
- },
648
-
649
- _focusable: function( element ) {
650
- this.focusable = this.focusable.add( element );
651
- this._on( element, {
652
- focusin: function( event ) {
653
- this._addClass( $( event.currentTarget ), null, "ui-state-focus" );
654
- },
655
- focusout: function( event ) {
656
- this._removeClass( $( event.currentTarget ), null, "ui-state-focus" );
657
- }
658
- } );
659
- },
660
-
661
- _trigger: function( type, event, data ) {
662
- var prop, orig;
663
- var callback = this.options[ type ];
664
-
665
- data = data || {};
666
- event = $.Event( event );
667
- event.type = ( type === this.widgetEventPrefix ?
668
- type :
669
- this.widgetEventPrefix + type ).toLowerCase();
670
-
671
- // The original event may come from any element
672
- // so we need to reset the target on the new event
673
- event.target = this.element[ 0 ];
674
-
675
- // Copy original event properties over to the new event
676
- orig = event.originalEvent;
677
- if ( orig ) {
678
- for ( prop in orig ) {
679
- if ( !( prop in event ) ) {
680
- event[ prop ] = orig[ prop ];
681
- }
682
- }
683
- }
684
-
685
- this.element.trigger( event, data );
686
- return !( $.isFunction( callback ) &&
687
- callback.apply( this.element[ 0 ], [ event ].concat( data ) ) === false ||
688
- event.isDefaultPrevented() );
689
- }
690
- };
691
-
692
- $.each( { show: "fadeIn", hide: "fadeOut" }, function( method, defaultEffect ) {
693
- $.Widget.prototype[ "_" + method ] = function( element, options, callback ) {
694
- if ( typeof options === "string" ) {
695
- options = { effect: options };
696
- }
697
-
698
- var hasOptions;
699
- var effectName = !options ?
700
- method :
701
- options === true || typeof options === "number" ?
702
- defaultEffect :
703
- options.effect || defaultEffect;
704
-
705
- options = options || {};
706
- if ( typeof options === "number" ) {
707
- options = { duration: options };
708
- }
709
-
710
- hasOptions = !$.isEmptyObject( options );
711
- options.complete = callback;
712
-
713
- if ( options.delay ) {
714
- element.delay( options.delay );
715
- }
716
-
717
- if ( hasOptions && $.effects && $.effects.effect[ effectName ] ) {
718
- element[ method ]( options );
719
- } else if ( effectName !== method && element[ effectName ] ) {
720
- element[ effectName ]( options.duration, options.easing, callback );
721
- } else {
722
- element.queue( function( next ) {
723
- $( this )[ method ]();
724
- if ( callback ) {
725
- callback.call( element[ 0 ] );
726
- }
727
- next();
728
- } );
729
- }
730
- };
731
- } );
732
-
733
- return $.widget;
734
-
735
- } ) );