activeadmin 3.5.0 → 4.0.0.beta1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (339) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +2 -131
  3. data/CONTRIBUTING.md +25 -108
  4. data/README.md +19 -32
  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/decorators.rb +1 -1
  12. data/{lib → app/controllers}/active_admin/resource_controller/scoping.rb +1 -1
  13. data/{lib → app/controllers}/active_admin/resource_controller/streaming.rb +2 -2
  14. data/app/controllers/active_admin/resource_controller.rb +102 -0
  15. data/app/helpers/active_admin/auto_link_helper.rb +66 -0
  16. data/app/helpers/active_admin/breadcrumb_helper.rb +41 -0
  17. data/app/helpers/active_admin/display_helper.rb +117 -0
  18. data/app/helpers/active_admin/form_helper.rb +95 -0
  19. data/app/helpers/active_admin/index_helper.rb +40 -0
  20. data/app/helpers/active_admin/layout_helper.rb +63 -0
  21. data/app/javascript/active_admin/features/batch_actions.js +89 -0
  22. data/app/javascript/active_admin/features/dark_mode_toggle.js +37 -0
  23. data/app/javascript/active_admin/features/filters.js +34 -0
  24. data/app/javascript/active_admin/features/has_many.js +28 -0
  25. data/app/javascript/active_admin/features/main_menu.js +12 -0
  26. data/app/javascript/active_admin/features/per_page.js +9 -0
  27. data/app/javascript/active_admin/utils/dom.js +17 -0
  28. data/app/javascript/active_admin.js +10 -0
  29. data/app/views/active_admin/_flash_messages.html.erb +22 -0
  30. data/app/views/active_admin/_html_head.html.erb +13 -0
  31. data/app/views/active_admin/_main_navigation.html.erb +28 -0
  32. data/app/views/active_admin/_page_header.html.erb +27 -0
  33. data/app/views/active_admin/_sidebar.html.erb +5 -0
  34. data/app/views/active_admin/_site_footer.html.erb +7 -0
  35. data/app/views/active_admin/_site_header.html.erb +30 -0
  36. data/app/views/active_admin/devise/confirmations/new.html.erb +5 -3
  37. data/app/views/active_admin/devise/passwords/edit.html.erb +5 -3
  38. data/app/views/active_admin/devise/passwords/new.html.erb +5 -4
  39. data/app/views/active_admin/devise/registrations/new.html.erb +6 -4
  40. data/app/views/active_admin/devise/sessions/new.html.erb +6 -4
  41. data/app/views/active_admin/devise/shared/_links.erb +3 -1
  42. data/app/views/active_admin/devise/unlocks/new.html.erb +6 -4
  43. data/app/views/{kaminari/active_admin_countless → active_admin/kaminari}/_gap.html.erb +3 -1
  44. data/app/views/active_admin/kaminari/_next_page.html.erb +16 -0
  45. data/app/views/active_admin/kaminari/_page.html.erb +14 -0
  46. data/app/views/{kaminari/active_admin_countless → active_admin/kaminari}/_paginator.html.erb +1 -2
  47. data/app/views/active_admin/kaminari/_prev_page.html.erb +16 -0
  48. data/app/views/active_admin/page/index.html.arb +5 -1
  49. data/app/views/active_admin/resource/_active_filters.html.erb +32 -0
  50. data/app/views/active_admin/resource/_batch_actions_dropdown.html.erb +19 -0
  51. data/app/views/active_admin/resource/_form.html.arb +16 -0
  52. data/app/views/active_admin/resource/_form_default.html.arb +12 -0
  53. data/app/views/active_admin/resource/_index_as_table_default.html.arb +9 -0
  54. data/app/views/active_admin/resource/_index_blank_slate.html.erb +14 -0
  55. data/app/views/active_admin/resource/_index_empty_results.html.erb +5 -0
  56. data/app/views/active_admin/resource/_index_table_actions_default.html.erb +9 -0
  57. data/app/views/active_admin/resource/_show_default.html.arb +3 -0
  58. data/app/views/active_admin/resource/edit.html.arb +1 -1
  59. data/app/views/active_admin/resource/index.html.arb +94 -1
  60. data/app/views/active_admin/resource/new.html.arb +1 -1
  61. data/app/views/active_admin/resource/show.html.arb +12 -1
  62. data/app/views/active_admin/shared/_action_items.html.erb +3 -0
  63. data/app/views/active_admin/shared/_download_format_links.html.erb +7 -0
  64. data/app/views/active_admin/shared/_resource_comments.html.erb +51 -0
  65. data/app/views/active_admin/shared/_sidebar_section.html.arb +7 -0
  66. data/app/views/active_admin/shared/_sidebar_sections.html.erb +5 -0
  67. data/app/views/layouts/active_admin.html.erb +20 -0
  68. data/app/views/layouts/active_admin_logged_out.html.erb +8 -45
  69. data/config/locales/ar.yml +0 -16
  70. data/config/locales/az.yml +0 -16
  71. data/config/locales/bg.yml +0 -9
  72. data/config/locales/bs.yml +0 -7
  73. data/config/locales/ca.yml +0 -9
  74. data/config/locales/cs.yml +0 -9
  75. data/config/locales/da.yml +0 -16
  76. data/config/locales/de-CH.yml +0 -10
  77. data/config/locales/de.yml +0 -16
  78. data/config/locales/el.yml +0 -13
  79. data/config/locales/en-CA.yml +0 -16
  80. data/config/locales/en-GB.yml +0 -16
  81. data/config/locales/en.yml +18 -28
  82. data/config/locales/eo.yml +0 -17
  83. data/config/locales/es-MX.yml +0 -9
  84. data/config/locales/es.yml +0 -16
  85. data/config/locales/fa.yml +0 -9
  86. data/config/locales/fi.yml +0 -9
  87. data/config/locales/fr.yml +32 -26
  88. data/config/locales/he.yml +0 -16
  89. data/config/locales/hr.yml +0 -9
  90. data/config/locales/hu.yml +0 -6
  91. data/config/locales/id.yml +0 -16
  92. data/config/locales/it.yml +0 -16
  93. data/config/locales/ja.yml +0 -16
  94. data/config/locales/ko.yml +0 -9
  95. data/config/locales/lt.yml +0 -16
  96. data/config/locales/lv.yml +0 -6
  97. data/config/locales/mk.yml +0 -15
  98. data/config/locales/nb.yml +0 -12
  99. data/config/locales/nl.yml +21 -29
  100. data/config/locales/pl.yml +0 -16
  101. data/config/locales/pt-BR.yml +0 -16
  102. data/config/locales/pt-PT.yml +0 -6
  103. data/config/locales/ro.yml +0 -6
  104. data/config/locales/ru.yml +0 -16
  105. data/config/locales/sk.yml +0 -16
  106. data/config/locales/sv-SE.yml +0 -16
  107. data/config/locales/tr.yml +0 -16
  108. data/config/locales/uk.yml +0 -16
  109. data/config/locales/vi.yml +0 -16
  110. data/config/locales/zh-CN.yml +0 -16
  111. data/config/locales/zh-TW.yml +0 -16
  112. data/lib/active_admin/application.rb +1 -9
  113. data/lib/active_admin/batch_actions/controller.rb +1 -4
  114. data/lib/active_admin/batch_actions/resource_extension.rb +6 -13
  115. data/lib/active_admin/batch_actions/views/batch_action_form.rb +0 -6
  116. data/lib/active_admin/batch_actions/views/selection_cells.rb +2 -2
  117. data/lib/active_admin/batch_actions.rb +0 -5
  118. data/lib/active_admin/callbacks.rb +6 -4
  119. data/lib/active_admin/component.rb +0 -1
  120. data/lib/active_admin/csv_builder.rb +1 -1
  121. data/lib/active_admin/dependency.rb +1 -1
  122. data/lib/active_admin/devise.rb +3 -3
  123. data/lib/active_admin/dsl.rb +2 -2
  124. data/lib/active_admin/dynamic_settings_node.rb +4 -4
  125. data/lib/active_admin/engine.rb +19 -6
  126. data/lib/active_admin/filters/active.rb +6 -4
  127. data/lib/active_admin/filters/active_filter.rb +1 -3
  128. data/lib/active_admin/filters/forms.rb +1 -42
  129. data/lib/active_admin/filters/resource_extension.rb +17 -9
  130. data/lib/active_admin/filters.rb +0 -2
  131. data/lib/active_admin/form_builder.rb +19 -17
  132. data/lib/active_admin/inputs/filters/base/search_method_select.rb +8 -10
  133. data/lib/active_admin/inputs/filters/base.rb +1 -1
  134. data/lib/active_admin/inputs/filters/check_boxes_input.rb +1 -6
  135. data/lib/active_admin/inputs/filters/date_range_input.rb +4 -2
  136. data/lib/active_admin/inputs/filters/select_input.rb +3 -1
  137. data/lib/active_admin/inputs.rb +0 -3
  138. data/lib/active_admin/menu.rb +10 -7
  139. data/lib/active_admin/menu_collection.rb +1 -1
  140. data/lib/active_admin/menu_item.rb +24 -3
  141. data/lib/active_admin/namespace.rb +2 -44
  142. data/lib/active_admin/namespace_settings.rb +2 -35
  143. data/lib/active_admin/order_clause.rb +4 -1
  144. data/lib/active_admin/orm/active_record/comments/views/active_admin_comments.rb +3 -75
  145. data/lib/active_admin/orm/active_record/comments.rb +10 -5
  146. data/lib/active_admin/pundit_adapter.rb +1 -1
  147. data/lib/active_admin/resource/action_items.rb +15 -20
  148. data/lib/active_admin/resource/attributes.rb +1 -8
  149. data/lib/active_admin/resource/belongs_to.rb +1 -0
  150. data/lib/active_admin/resource/naming.rb +1 -2
  151. data/lib/active_admin/resource.rb +3 -8
  152. data/lib/active_admin/resource_dsl.rb +1 -1
  153. data/lib/active_admin/router.rb +5 -5
  154. data/lib/active_admin/scope.rb +1 -1
  155. data/lib/active_admin/settings_node.rb +1 -1
  156. data/lib/active_admin/sidebar_section.rb +0 -5
  157. data/lib/active_admin/version.rb +1 -1
  158. data/lib/active_admin/view_helpers.rb +0 -12
  159. data/lib/active_admin/views/components/active_admin_form.rb +21 -29
  160. data/lib/active_admin/views/components/attributes_table.rb +4 -12
  161. data/lib/active_admin/views/components/index_list.rb +10 -23
  162. data/lib/active_admin/views/components/paginated_collection.rb +34 -42
  163. data/lib/active_admin/views/components/panel.rb +2 -10
  164. data/lib/active_admin/views/components/scopes.rb +12 -21
  165. data/lib/active_admin/views/components/status_tag.rb +22 -19
  166. data/lib/active_admin/views/components/table_for.rb +19 -24
  167. data/lib/active_admin/views/components/tabs.rb +10 -11
  168. data/lib/active_admin/views/index_as_table.rb +26 -104
  169. data/lib/active_admin.rb +7 -11
  170. data/lib/generators/active_admin/assets/assets_generator.rb +4 -4
  171. data/lib/generators/active_admin/assets/templates/active_admin.css +3 -0
  172. data/lib/generators/active_admin/assets/templates/tailwind.config.js +18 -0
  173. data/lib/generators/active_admin/install/install_generator.rb +2 -8
  174. data/lib/generators/active_admin/install/templates/active_admin.rb.erb +10 -87
  175. data/lib/generators/active_admin/install/templates/dashboard.rb +8 -25
  176. data/lib/generators/active_admin/page/page_generator.rb +0 -1
  177. data/lib/generators/active_admin/resource/resource_generator.rb +46 -7
  178. data/lib/generators/active_admin/resource/templates/resource.rb.erb +42 -0
  179. data/lib/generators/active_admin/views_generator.rb +18 -0
  180. metadata +70 -210
  181. data/app/assets/javascripts/active_admin/base.js +0 -518
  182. data/app/assets/stylesheets/active_admin/_base.scss +0 -57
  183. data/app/assets/stylesheets/active_admin/_forms.scss +0 -315
  184. data/app/assets/stylesheets/active_admin/_header.scss +0 -188
  185. data/app/assets/stylesheets/active_admin/_mixins.scss +0 -1
  186. data/app/assets/stylesheets/active_admin/_normalize.scss +0 -349
  187. data/app/assets/stylesheets/active_admin/_print.scss +0 -287
  188. data/app/assets/stylesheets/active_admin/_typography.scss +0 -100
  189. data/app/assets/stylesheets/active_admin/components/_batch_actions.scss +0 -6
  190. data/app/assets/stylesheets/active_admin/components/_blank_slates.scss +0 -30
  191. data/app/assets/stylesheets/active_admin/components/_breadcrumbs.scss +0 -20
  192. data/app/assets/stylesheets/active_admin/components/_buttons.scss +0 -6
  193. data/app/assets/stylesheets/active_admin/components/_columns.scss +0 -3
  194. data/app/assets/stylesheets/active_admin/components/_comments.scss +0 -41
  195. data/app/assets/stylesheets/active_admin/components/_date_picker.scss +0 -148
  196. data/app/assets/stylesheets/active_admin/components/_dropdown_menu.scss +0 -154
  197. data/app/assets/stylesheets/active_admin/components/_flash_messages.scss +0 -37
  198. data/app/assets/stylesheets/active_admin/components/_grid.scss +0 -9
  199. data/app/assets/stylesheets/active_admin/components/_index_list.scss +0 -12
  200. data/app/assets/stylesheets/active_admin/components/_links.scss +0 -5
  201. data/app/assets/stylesheets/active_admin/components/_modal_dialog.scss +0 -34
  202. data/app/assets/stylesheets/active_admin/components/_pagination.scss +0 -58
  203. data/app/assets/stylesheets/active_admin/components/_panels.scss +0 -6
  204. data/app/assets/stylesheets/active_admin/components/_scopes.scss +0 -13
  205. data/app/assets/stylesheets/active_admin/components/_status_tags.scss +0 -12
  206. data/app/assets/stylesheets/active_admin/components/_table_tools.scss +0 -70
  207. data/app/assets/stylesheets/active_admin/components/_tables.scss +0 -112
  208. data/app/assets/stylesheets/active_admin/components/_tabs.scss +0 -68
  209. data/app/assets/stylesheets/active_admin/components/_unsupported_browser.scss +0 -16
  210. data/app/assets/stylesheets/active_admin/mixins/_all.scss +0 -8
  211. data/app/assets/stylesheets/active_admin/mixins/_buttons.scss +0 -65
  212. data/app/assets/stylesheets/active_admin/mixins/_gradients.scss +0 -28
  213. data/app/assets/stylesheets/active_admin/mixins/_rounded.scss +0 -22
  214. data/app/assets/stylesheets/active_admin/mixins/_sections.scss +0 -41
  215. data/app/assets/stylesheets/active_admin/mixins/_shadows.scss +0 -15
  216. data/app/assets/stylesheets/active_admin/mixins/_typography.scss +0 -3
  217. data/app/assets/stylesheets/active_admin/mixins/_utilities.scss +0 -17
  218. data/app/assets/stylesheets/active_admin/mixins/_variables.scss +0 -51
  219. data/app/assets/stylesheets/active_admin/pages/_logged_out.scss +0 -44
  220. data/app/assets/stylesheets/active_admin/structure/_footer.scss +0 -19
  221. data/app/assets/stylesheets/active_admin/structure/_main_structure.scss +0 -29
  222. data/app/assets/stylesheets/active_admin/structure/_title_bar.scss +0 -43
  223. data/app/javascript/active_admin/base.js +0 -28
  224. data/app/javascript/active_admin/ext/jquery-ui.js +0 -7
  225. data/app/javascript/active_admin/ext/jquery.js +0 -9
  226. data/app/javascript/active_admin/initializers/batch-actions.js +0 -61
  227. data/app/javascript/active_admin/initializers/checkbox-toggler.js +0 -3
  228. data/app/javascript/active_admin/initializers/datepicker.js +0 -19
  229. data/app/javascript/active_admin/initializers/dropdown-menu.js +0 -9
  230. data/app/javascript/active_admin/initializers/filters.js +0 -10
  231. data/app/javascript/active_admin/initializers/has-many.js +0 -98
  232. data/app/javascript/active_admin/initializers/per-page.js +0 -13
  233. data/app/javascript/active_admin/initializers/table-checkbox-toggler.js +0 -3
  234. data/app/javascript/active_admin/initializers/tabs.js +0 -6
  235. data/app/javascript/active_admin/lib/checkbox-toggler.js +0 -49
  236. data/app/javascript/active_admin/lib/dropdown-menu.js +0 -116
  237. data/app/javascript/active_admin/lib/filters.js +0 -39
  238. data/app/javascript/active_admin/lib/modal-dialog.js +0 -63
  239. data/app/javascript/active_admin/lib/per-page.js +0 -38
  240. data/app/javascript/active_admin/lib/table-checkbox-toggler.js +0 -38
  241. data/app/javascript/active_admin/lib/utils.js +0 -40
  242. data/app/views/kaminari/active_admin/_first_page.html.erb +0 -11
  243. data/app/views/kaminari/active_admin/_gap.html.erb +0 -8
  244. data/app/views/kaminari/active_admin/_last_page.html.erb +0 -11
  245. data/app/views/kaminari/active_admin/_next_page.html.erb +0 -11
  246. data/app/views/kaminari/active_admin/_page.html.erb +0 -12
  247. data/app/views/kaminari/active_admin/_paginator.html.erb +0 -25
  248. data/app/views/kaminari/active_admin/_prev_page.html.erb +0 -11
  249. data/app/views/kaminari/active_admin_countless/_first_page.html.erb +0 -11
  250. data/app/views/kaminari/active_admin_countless/_next_page.html.erb +0 -11
  251. data/app/views/kaminari/active_admin_countless/_page.html.erb +0 -12
  252. data/app/views/kaminari/active_admin_countless/_prev_page.html.erb +0 -11
  253. data/app/views/layouts/active_admin.html.arb +0 -2
  254. data/lib/active_admin/abstract_view_factory.rb +0 -48
  255. data/lib/active_admin/asset_registration.rb +0 -30
  256. data/lib/active_admin/base_controller/menu.rb +0 -35
  257. data/lib/active_admin/batch_actions/views/batch_action_selector.rb +0 -59
  258. data/lib/active_admin/filters/active_sidebar.rb +0 -28
  259. data/lib/active_admin/generators/boilerplate.rb +0 -54
  260. data/lib/active_admin/helpers/collection.rb +0 -21
  261. data/lib/active_admin/helpers/i18n.rb +0 -8
  262. data/lib/active_admin/inputs/datepicker_input.rb +0 -28
  263. data/lib/active_admin/inputs/filters/date_picker_input.rb +0 -14
  264. data/lib/active_admin/orm/active_record/comments/show_page_helper.rb +0 -24
  265. data/lib/active_admin/orm/mongoid.rb +0 -2
  266. data/lib/active_admin/resource_controller/sidebars.rb +0 -19
  267. data/lib/active_admin/resource_controller.rb +0 -68
  268. data/lib/active_admin/view_factory.rb +0 -28
  269. data/lib/active_admin/view_helpers/active_admin_application_helper.rb +0 -13
  270. data/lib/active_admin/view_helpers/auto_link_helper.rb +0 -46
  271. data/lib/active_admin/view_helpers/breadcrumb_helper.rb +0 -34
  272. data/lib/active_admin/view_helpers/display_helper.rb +0 -119
  273. data/lib/active_admin/view_helpers/download_format_links_helper.rb +0 -60
  274. data/lib/active_admin/view_helpers/fields_for.rb +0 -51
  275. data/lib/active_admin/view_helpers/flash_helper.rb +0 -15
  276. data/lib/active_admin/view_helpers/form_helper.rb +0 -21
  277. data/lib/active_admin/view_helpers/scope_name_helper.rb +0 -17
  278. data/lib/active_admin/view_helpers/sidebar_helper.rb +0 -16
  279. data/lib/active_admin/view_helpers/title_helper.rb +0 -12
  280. data/lib/active_admin/view_helpers/view_factory_helper.rb +0 -12
  281. data/lib/active_admin/views/action_items.rb +0 -18
  282. data/lib/active_admin/views/components/active_filters_sidebar_content.rb +0 -59
  283. data/lib/active_admin/views/components/blank_slate.rb +0 -18
  284. data/lib/active_admin/views/components/columns.rb +0 -162
  285. data/lib/active_admin/views/components/dropdown_menu.rb +0 -69
  286. data/lib/active_admin/views/components/menu.rb +0 -33
  287. data/lib/active_admin/views/components/menu_item.rb +0 -59
  288. data/lib/active_admin/views/components/sidebar.rb +0 -14
  289. data/lib/active_admin/views/components/sidebar_section.rb +0 -35
  290. data/lib/active_admin/views/components/site_title.rb +0 -55
  291. data/lib/active_admin/views/components/unsupported_browser.rb +0 -12
  292. data/lib/active_admin/views/footer.rb +0 -32
  293. data/lib/active_admin/views/header.rb +0 -20
  294. data/lib/active_admin/views/index_as_block.rb +0 -37
  295. data/lib/active_admin/views/index_as_blog.rb +0 -156
  296. data/lib/active_admin/views/index_as_grid.rb +0 -81
  297. data/lib/active_admin/views/pages/base.rb +0 -134
  298. data/lib/active_admin/views/pages/form.rb +0 -65
  299. data/lib/active_admin/views/pages/index.rb +0 -166
  300. data/lib/active_admin/views/pages/layout.rb +0 -27
  301. data/lib/active_admin/views/pages/page.rb +0 -31
  302. data/lib/active_admin/views/pages/show.rb +0 -60
  303. data/lib/active_admin/views/tabbed_navigation.rb +0 -12
  304. data/lib/active_admin/views/title_bar.rb +0 -56
  305. data/lib/generators/active_admin/assets/templates/active_admin.js +0 -1
  306. data/lib/generators/active_admin/assets/templates/active_admin.scss +0 -17
  307. data/lib/generators/active_admin/resource/templates/admin.rb.erb +0 -46
  308. data/lib/generators/active_admin/webpacker/plugins/jquery.js +0 -7
  309. data/lib/generators/active_admin/webpacker/templates/active_admin.js +0 -5
  310. data/lib/generators/active_admin/webpacker/templates/active_admin.scss +0 -17
  311. data/lib/generators/active_admin/webpacker/templates/print.scss +0 -2
  312. data/lib/generators/active_admin/webpacker/webpacker_generator.rb +0 -27
  313. data/vendor/assets/javascripts/jquery-ui/data.js +0 -39
  314. data/vendor/assets/javascripts/jquery-ui/disable-selection.js +0 -51
  315. data/vendor/assets/javascripts/jquery-ui/focusable.js +0 -79
  316. data/vendor/assets/javascripts/jquery-ui/form-reset-mixin.js +0 -81
  317. data/vendor/assets/javascripts/jquery-ui/keycode.js +0 -51
  318. data/vendor/assets/javascripts/jquery-ui/labels.js +0 -70
  319. data/vendor/assets/javascripts/jquery-ui/plugin.js +0 -49
  320. data/vendor/assets/javascripts/jquery-ui/position.js +0 -513
  321. data/vendor/assets/javascripts/jquery-ui/scroll-parent.js +0 -50
  322. data/vendor/assets/javascripts/jquery-ui/tabbable.js +0 -41
  323. data/vendor/assets/javascripts/jquery-ui/unique-id.js +0 -54
  324. data/vendor/assets/javascripts/jquery-ui/version.js +0 -20
  325. data/vendor/assets/javascripts/jquery-ui/widget.js +0 -761
  326. data/vendor/assets/javascripts/jquery-ui/widgets/button.js +0 -454
  327. data/vendor/assets/javascripts/jquery-ui/widgets/checkboxradio.js +0 -294
  328. data/vendor/assets/javascripts/jquery-ui/widgets/controlgroup.js +0 -304
  329. data/vendor/assets/javascripts/jquery-ui/widgets/datepicker.js +0 -2240
  330. data/vendor/assets/javascripts/jquery-ui/widgets/dialog.js +0 -957
  331. data/vendor/assets/javascripts/jquery-ui/widgets/draggable.js +0 -1264
  332. data/vendor/assets/javascripts/jquery-ui/widgets/mouse.js +0 -226
  333. data/vendor/assets/javascripts/jquery-ui/widgets/resizable.js +0 -1281
  334. data/vendor/assets/javascripts/jquery-ui/widgets/sortable.js +0 -1614
  335. data/vendor/assets/javascripts/jquery-ui/widgets/tabs.js +0 -918
  336. /data/{lib → app/controllers}/active_admin/base_controller/authorization.rb +0 -0
  337. /data/{lib → app/controllers}/active_admin/resource_controller/polymorphic_routes.rb +0 -0
  338. /data/{lib → app/controllers}/active_admin/resource_controller/resource_class_methods.rb +0 -0
  339. /data/lib/{active_admin/orm/mongoid/.gitkeep → generators/active_admin/assets/templates/builds/.keep} +0 -0
@@ -1,957 +0,0 @@
1
- //= require jquery-ui/widgets/button
2
- //= require jquery-ui/widgets/draggable
3
- //= require jquery-ui/widgets/mouse
4
- //= require jquery-ui/widgets/resizable
5
- //= require jquery-ui/focusable
6
- //= require jquery-ui/keycode
7
- //= require jquery-ui/position
8
- //= require jquery-ui/tabbable
9
- //= require jquery-ui/unique-id
10
- //= require jquery-ui/version
11
- //= require jquery-ui/widget
12
-
13
- /*!
14
- * jQuery UI Dialog 1.14.2
15
- * https://jqueryui.com
16
- *
17
- * Copyright OpenJS Foundation and other contributors
18
- * Released under the MIT license.
19
- * https://jquery.org/license
20
- */
21
-
22
- //>>label: Dialog
23
- //>>group: Widgets
24
- //>>description: Displays customizable dialog windows.
25
- //>>docs: https://api.jqueryui.com/dialog/
26
- //>>demos: https://jqueryui.com/dialog/
27
- //>>css.structure: ../../themes/base/core.css
28
- //>>css.structure: ../../themes/base/dialog.css
29
- //>>css.theme: ../../themes/base/theme.css
30
-
31
- ( function( factory ) {
32
- "use strict";
33
-
34
- if ( typeof define === "function" && define.amd ) {
35
-
36
- // AMD. Register as an anonymous module.
37
- define( [
38
- "jquery",
39
- "./button",
40
- "./draggable",
41
- "./mouse",
42
- "./resizable",
43
- "../focusable",
44
- "../keycode",
45
- "../position",
46
- "../tabbable",
47
- "../unique-id",
48
- "../version",
49
- "../widget"
50
- ], factory );
51
- } else {
52
-
53
- // Browser globals
54
- factory( jQuery );
55
- }
56
- } )( function( $ ) {
57
- "use strict";
58
-
59
- $.widget( "ui.dialog", {
60
- version: "1.14.2",
61
- options: {
62
- appendTo: "body",
63
- autoOpen: true,
64
- buttons: [],
65
- classes: {
66
- "ui-dialog": "ui-corner-all",
67
- "ui-dialog-titlebar": "ui-corner-all"
68
- },
69
- closeOnEscape: true,
70
- closeText: "Close",
71
- draggable: true,
72
- hide: null,
73
- height: "auto",
74
- maxHeight: null,
75
- maxWidth: null,
76
- minHeight: 150,
77
- minWidth: 150,
78
- modal: false,
79
- position: {
80
- my: "center",
81
- at: "center",
82
- of: window,
83
- collision: "fit",
84
-
85
- // Ensure the titlebar is always visible
86
- using: function( pos ) {
87
- var topOffset = $( this ).css( pos ).offset().top;
88
- if ( topOffset < 0 ) {
89
- $( this ).css( "top", pos.top - topOffset );
90
- }
91
- }
92
- },
93
- resizable: true,
94
- show: null,
95
- title: null,
96
- uiDialogTitleHeadingLevel: 0,
97
- width: 300,
98
-
99
- // Callbacks
100
- beforeClose: null,
101
- close: null,
102
- drag: null,
103
- dragStart: null,
104
- dragStop: null,
105
- focus: null,
106
- open: null,
107
- resize: null,
108
- resizeStart: null,
109
- resizeStop: null
110
- },
111
-
112
- sizeRelatedOptions: {
113
- buttons: true,
114
- height: true,
115
- maxHeight: true,
116
- maxWidth: true,
117
- minHeight: true,
118
- minWidth: true,
119
- width: true
120
- },
121
-
122
- resizableRelatedOptions: {
123
- maxHeight: true,
124
- maxWidth: true,
125
- minHeight: true,
126
- minWidth: true
127
- },
128
-
129
- _create: function() {
130
- this.originalCss = {
131
- display: this.element[ 0 ].style.display,
132
- width: this.element[ 0 ].style.width,
133
- minHeight: this.element[ 0 ].style.minHeight,
134
- maxHeight: this.element[ 0 ].style.maxHeight,
135
- height: this.element[ 0 ].style.height
136
- };
137
- this.originalPosition = {
138
- parent: this.element.parent(),
139
- index: this.element.parent().children().index( this.element )
140
- };
141
- this.originalTitle = this.element.attr( "title" );
142
- if ( this.options.title == null && this.originalTitle != null ) {
143
- this.options.title = this.originalTitle;
144
- }
145
-
146
- // Dialogs can't be disabled
147
- if ( this.options.disabled ) {
148
- this.options.disabled = false;
149
- }
150
-
151
- this._createWrapper();
152
-
153
- this.element
154
- .show()
155
- .removeAttr( "title" )
156
- .appendTo( this.uiDialog );
157
-
158
- this._addClass( "ui-dialog-content", "ui-widget-content" );
159
-
160
- this._createTitlebar();
161
- this._createButtonPane();
162
-
163
- if ( this.options.draggable && $.fn.draggable ) {
164
- this._makeDraggable();
165
- }
166
- if ( this.options.resizable && $.fn.resizable ) {
167
- this._makeResizable();
168
- }
169
-
170
- this._isOpen = false;
171
-
172
- this._trackFocus();
173
- },
174
-
175
- _init: function() {
176
- if ( this.options.autoOpen ) {
177
- this.open();
178
- }
179
- },
180
-
181
- _appendTo: function() {
182
- var element = this.options.appendTo;
183
- if ( element && ( element.jquery || element.nodeType ) ) {
184
- return $( element );
185
- }
186
- return this.document.find( element || "body" ).eq( 0 );
187
- },
188
-
189
- _destroy: function() {
190
- var next,
191
- originalPosition = this.originalPosition;
192
-
193
- this._untrackInstance();
194
- this._destroyOverlay();
195
-
196
- this.element
197
- .removeUniqueId()
198
- .css( this.originalCss )
199
-
200
- // Without detaching first, the following becomes really slow
201
- .detach();
202
-
203
- this.uiDialog.remove();
204
-
205
- if ( this.originalTitle ) {
206
- this.element.attr( "title", this.originalTitle );
207
- }
208
-
209
- next = originalPosition.parent.children().eq( originalPosition.index );
210
-
211
- // Don't try to place the dialog next to itself (#8613)
212
- if ( next.length && next[ 0 ] !== this.element[ 0 ] ) {
213
- next.before( this.element );
214
- } else {
215
- originalPosition.parent.append( this.element );
216
- }
217
- },
218
-
219
- widget: function() {
220
- return this.uiDialog;
221
- },
222
-
223
- disable: $.noop,
224
- enable: $.noop,
225
-
226
- close: function( event ) {
227
- var that = this;
228
-
229
- if ( !this._isOpen || this._trigger( "beforeClose", event ) === false ) {
230
- return;
231
- }
232
-
233
- this._isOpen = false;
234
- this._focusedElement = null;
235
- this._destroyOverlay();
236
- this._untrackInstance();
237
-
238
- if ( !this.opener.filter( ":focusable" ).trigger( "focus" ).length ) {
239
-
240
- // Hiding a focused element doesn't trigger blur in WebKit
241
- // so in case we have nothing to focus on, explicitly blur the active element
242
- // https://bugs.webkit.org/show_bug.cgi?id=47182
243
- $( this.document[ 0 ].activeElement ).trigger( "blur" );
244
- }
245
-
246
- this._hide( this.uiDialog, this.options.hide, function() {
247
- that._trigger( "close", event );
248
- } );
249
- },
250
-
251
- isOpen: function() {
252
- return this._isOpen;
253
- },
254
-
255
- moveToTop: function() {
256
- this._moveToTop();
257
- },
258
-
259
- _moveToTop: function( event, silent ) {
260
- var moved = false,
261
- zIndices = this.uiDialog.siblings( ".ui-front:visible" ).map( function() {
262
- return +$( this ).css( "z-index" );
263
- } ).get(),
264
- zIndexMax = Math.max.apply( null, zIndices );
265
-
266
- if ( zIndexMax >= +this.uiDialog.css( "z-index" ) ) {
267
- this.uiDialog.css( "z-index", zIndexMax + 1 );
268
- moved = true;
269
- }
270
-
271
- if ( moved && !silent ) {
272
- this._trigger( "focus", event );
273
- }
274
- return moved;
275
- },
276
-
277
- open: function() {
278
- var that = this;
279
- if ( this._isOpen ) {
280
- if ( this._moveToTop() ) {
281
- this._focusTabbable();
282
- }
283
- return;
284
- }
285
-
286
- this._isOpen = true;
287
- this.opener = $( this.document[ 0 ].activeElement );
288
-
289
- this._size();
290
- this._position();
291
- this._createOverlay();
292
- this._moveToTop( null, true );
293
-
294
- // Ensure the overlay is moved to the top with the dialog, but only when
295
- // opening. The overlay shouldn't move after the dialog is open so that
296
- // modeless dialogs opened after the modal dialog stack properly.
297
- if ( this.overlay ) {
298
- this.overlay.css( "z-index", this.uiDialog.css( "z-index" ) - 1 );
299
- }
300
-
301
- this._show( this.uiDialog, this.options.show, function() {
302
- that._focusTabbable();
303
- that._trigger( "focus" );
304
- } );
305
-
306
- // Track the dialog immediately upon opening in case a focus event
307
- // somehow occurs outside of the dialog before an element inside the
308
- // dialog is focused (#10152)
309
- this._makeFocusTarget();
310
-
311
- this._trigger( "open" );
312
- },
313
-
314
- _focusTabbable: function() {
315
-
316
- // Set focus to the first match:
317
- // 1. An element that was focused previously
318
- // 2. First element inside the dialog matching [autofocus]
319
- // 3. Tabbable element inside the content element
320
- // 4. Tabbable element inside the buttonpane
321
- // 5. The close button
322
- // 6. The dialog itself
323
- var hasFocus = this._focusedElement;
324
- if ( !hasFocus ) {
325
- hasFocus = this.element.find( "[autofocus]" );
326
- }
327
- if ( !hasFocus.length ) {
328
- hasFocus = this.element.find( ":tabbable" );
329
- }
330
- if ( !hasFocus.length ) {
331
- hasFocus = this.uiDialogButtonPane.find( ":tabbable" );
332
- }
333
- if ( !hasFocus.length ) {
334
- hasFocus = this.uiDialogTitlebarClose.filter( ":tabbable" );
335
- }
336
- if ( !hasFocus.length ) {
337
- hasFocus = this.uiDialog;
338
- }
339
- hasFocus.eq( 0 ).trigger( "focus" );
340
- },
341
-
342
- _restoreTabbableFocus: function() {
343
- var activeElement = this.document[ 0 ].activeElement,
344
- isActive = this.uiDialog[ 0 ] === activeElement ||
345
- $.contains( this.uiDialog[ 0 ], activeElement );
346
- if ( !isActive ) {
347
- this._focusTabbable();
348
- }
349
- },
350
-
351
- _keepFocus: function( event ) {
352
- event.preventDefault();
353
- this._restoreTabbableFocus();
354
- },
355
-
356
- _createWrapper: function() {
357
- this.uiDialog = $( "<div>" )
358
- .hide()
359
- .attr( {
360
-
361
- // Setting tabIndex makes the div focusable
362
- tabIndex: -1,
363
- role: "dialog",
364
- "aria-modal": this.options.modal ? "true" : null
365
- } )
366
- .appendTo( this._appendTo() );
367
-
368
- this._addClass( this.uiDialog, "ui-dialog", "ui-widget ui-widget-content ui-front" );
369
- this._on( this.uiDialog, {
370
- keydown: function( event ) {
371
- if ( this.options.closeOnEscape && !event.isDefaultPrevented() && event.keyCode &&
372
- event.keyCode === $.ui.keyCode.ESCAPE ) {
373
- event.preventDefault();
374
- this.close( event );
375
- return;
376
- }
377
-
378
- // Prevent tabbing out of dialogs
379
- if ( event.keyCode !== $.ui.keyCode.TAB || event.isDefaultPrevented() ) {
380
- return;
381
- }
382
- var tabbables = this.uiDialog.find( ":tabbable" ),
383
- first = tabbables.first(),
384
- last = tabbables.last();
385
-
386
- if ( ( event.target === last[ 0 ] || event.target === this.uiDialog[ 0 ] ) &&
387
- !event.shiftKey ) {
388
- this._delay( function() {
389
- first.trigger( "focus" );
390
- } );
391
- event.preventDefault();
392
- } else if ( ( event.target === first[ 0 ] ||
393
- event.target === this.uiDialog[ 0 ] ) && event.shiftKey ) {
394
- this._delay( function() {
395
- last.trigger( "focus" );
396
- } );
397
- event.preventDefault();
398
- }
399
- },
400
- mousedown: function( event ) {
401
- if ( this._moveToTop( event ) ) {
402
- this._focusTabbable();
403
- }
404
- }
405
- } );
406
-
407
- // We assume that any existing aria-describedby attribute means
408
- // that the dialog content is marked up properly
409
- // otherwise we brute force the content as the description
410
- if ( !this.element.find( "[aria-describedby]" ).length ) {
411
- this.uiDialog.attr( {
412
- "aria-describedby": this.element.uniqueId().attr( "id" )
413
- } );
414
- }
415
- },
416
-
417
- _createTitlebar: function() {
418
- var uiDialogTitle;
419
-
420
- this.uiDialogTitlebar = $( "<div>" );
421
- this._addClass( this.uiDialogTitlebar,
422
- "ui-dialog-titlebar", "ui-widget-header ui-helper-clearfix" );
423
- this._on( this.uiDialogTitlebar, {
424
- mousedown: function( event ) {
425
-
426
- // Don't prevent click on close button (#8838)
427
- // Focusing a dialog that is partially scrolled out of view
428
- // causes the browser to scroll it into view, preventing the click event
429
- if ( !$( event.target ).closest( ".ui-dialog-titlebar-close" ) ) {
430
-
431
- // Dialog isn't getting focus when dragging (#8063)
432
- this.uiDialog.trigger( "focus" );
433
- }
434
- }
435
- } );
436
-
437
- this.uiDialogTitlebarClose = $( "<button type='button'></button>" )
438
- .button( {
439
- label: $( "<a>" ).text( this.options.closeText ).html(),
440
- icon: "ui-icon-closethick",
441
- showLabel: false
442
- } )
443
- .appendTo( this.uiDialogTitlebar );
444
-
445
- this._addClass( this.uiDialogTitlebarClose, "ui-dialog-titlebar-close" );
446
- this._on( this.uiDialogTitlebarClose, {
447
- click: function( event ) {
448
- event.preventDefault();
449
- this.close( event );
450
- }
451
- } );
452
-
453
- var uiDialogHeadingLevel = Number.isInteger( this.options.uiDialogTitleHeadingLevel ) &&
454
- this.options.uiDialogTitleHeadingLevel > 0 &&
455
- this.options.uiDialogTitleHeadingLevel <= 6 ?
456
- "h" + this.options.uiDialogTitleHeadingLevel : "span";
457
-
458
- uiDialogTitle = $( "<" + uiDialogHeadingLevel + ">" )
459
- .uniqueId().prependTo( this.uiDialogTitlebar );
460
- this._addClass( uiDialogTitle, "ui-dialog-title" );
461
- this._title( uiDialogTitle );
462
-
463
- this.uiDialogTitlebar.prependTo( this.uiDialog );
464
-
465
- this.uiDialog.attr( {
466
- "aria-labelledby": uiDialogTitle.attr( "id" )
467
- } );
468
- },
469
-
470
- _title: function( title ) {
471
- if ( this.options.title ) {
472
- title.text( this.options.title );
473
- } else {
474
- title.html( "&#160;" );
475
- }
476
- },
477
-
478
- _createButtonPane: function() {
479
- this.uiDialogButtonPane = $( "<div>" );
480
- this._addClass( this.uiDialogButtonPane, "ui-dialog-buttonpane",
481
- "ui-widget-content ui-helper-clearfix" );
482
-
483
- this.uiButtonSet = $( "<div>" )
484
- .appendTo( this.uiDialogButtonPane );
485
- this._addClass( this.uiButtonSet, "ui-dialog-buttonset" );
486
-
487
- this._createButtons();
488
- },
489
-
490
- _createButtons: function() {
491
- var that = this,
492
- buttons = this.options.buttons;
493
-
494
- // If we already have a button pane, remove it
495
- this.uiDialogButtonPane.remove();
496
- this.uiButtonSet.empty();
497
-
498
- if ( $.isEmptyObject( buttons ) || ( Array.isArray( buttons ) && !buttons.length ) ) {
499
- this._removeClass( this.uiDialog, "ui-dialog-buttons" );
500
- return;
501
- }
502
-
503
- $.each( buttons, function( name, props ) {
504
- var click, buttonOptions;
505
- props = typeof props === "function" ?
506
- { click: props, text: name } :
507
- props;
508
-
509
- // Default to a non-submitting button
510
- props = $.extend( { type: "button" }, props );
511
-
512
- // Change the context for the click callback to be the main element
513
- click = props.click;
514
- buttonOptions = {
515
- icon: props.icon,
516
- iconPosition: props.iconPosition,
517
- showLabel: props.showLabel,
518
-
519
- // Deprecated options
520
- icons: props.icons,
521
- text: props.text
522
- };
523
-
524
- delete props.click;
525
- delete props.icon;
526
- delete props.iconPosition;
527
- delete props.showLabel;
528
-
529
- // Deprecated options
530
- delete props.icons;
531
- if ( typeof props.text === "boolean" ) {
532
- delete props.text;
533
- }
534
-
535
- $( "<button></button>", props )
536
- .button( buttonOptions )
537
- .appendTo( that.uiButtonSet )
538
- .on( "click", function() {
539
- click.apply( that.element[ 0 ], arguments );
540
- } );
541
- } );
542
- this._addClass( this.uiDialog, "ui-dialog-buttons" );
543
- this.uiDialogButtonPane.appendTo( this.uiDialog );
544
- },
545
-
546
- _makeDraggable: function() {
547
- var that = this,
548
- options = this.options;
549
-
550
- function filteredUi( ui ) {
551
- return {
552
- position: ui.position,
553
- offset: ui.offset
554
- };
555
- }
556
-
557
- this.uiDialog.draggable( {
558
- cancel: ".ui-dialog-content, .ui-dialog-titlebar-close",
559
- handle: ".ui-dialog-titlebar",
560
- containment: "document",
561
- start: function( event, ui ) {
562
- that._addClass( $( this ), "ui-dialog-dragging" );
563
- that._blockFrames();
564
- that._trigger( "dragStart", event, filteredUi( ui ) );
565
- },
566
- drag: function( event, ui ) {
567
- that._trigger( "drag", event, filteredUi( ui ) );
568
- },
569
- stop: function( event, ui ) {
570
- var left = ui.offset.left - that.document.scrollLeft(),
571
- top = ui.offset.top - that.document.scrollTop();
572
-
573
- options.position = {
574
- my: "left top",
575
- at: "left" + ( left >= 0 ? "+" : "" ) + left + " " +
576
- "top" + ( top >= 0 ? "+" : "" ) + top,
577
- of: that.window
578
- };
579
- that._removeClass( $( this ), "ui-dialog-dragging" );
580
- that._unblockFrames();
581
- that._trigger( "dragStop", event, filteredUi( ui ) );
582
- }
583
- } );
584
- },
585
-
586
- _makeResizable: function() {
587
- var that = this,
588
- options = this.options,
589
- handles = options.resizable,
590
-
591
- // .ui-resizable has position: relative defined in the stylesheet
592
- // but dialogs have to use absolute or fixed positioning
593
- position = this.uiDialog.css( "position" ),
594
- resizeHandles = typeof handles === "string" ?
595
- handles :
596
- "n,e,s,w,se,sw,ne,nw";
597
-
598
- function filteredUi( ui ) {
599
- return {
600
- originalPosition: ui.originalPosition,
601
- originalSize: ui.originalSize,
602
- position: ui.position,
603
- size: ui.size
604
- };
605
- }
606
-
607
- this.uiDialog.resizable( {
608
- cancel: ".ui-dialog-content",
609
- containment: "document",
610
- alsoResize: this.element,
611
- maxWidth: options.maxWidth,
612
- maxHeight: options.maxHeight,
613
- minWidth: options.minWidth,
614
- minHeight: this._minHeight(),
615
- handles: resizeHandles,
616
- start: function( event, ui ) {
617
- that._addClass( $( this ), "ui-dialog-resizing" );
618
- that._blockFrames();
619
- that._trigger( "resizeStart", event, filteredUi( ui ) );
620
- },
621
- resize: function( event, ui ) {
622
- that._trigger( "resize", event, filteredUi( ui ) );
623
- },
624
- stop: function( event, ui ) {
625
- var offset = that.uiDialog.offset(),
626
- left = offset.left - that.document.scrollLeft(),
627
- top = offset.top - that.document.scrollTop();
628
-
629
- options.height = that.uiDialog.height();
630
- options.width = that.uiDialog.width();
631
- options.position = {
632
- my: "left top",
633
- at: "left" + ( left >= 0 ? "+" : "" ) + left + " " +
634
- "top" + ( top >= 0 ? "+" : "" ) + top,
635
- of: that.window
636
- };
637
- that._removeClass( $( this ), "ui-dialog-resizing" );
638
- that._unblockFrames();
639
- that._trigger( "resizeStop", event, filteredUi( ui ) );
640
- }
641
- } )
642
- .css( "position", position );
643
- },
644
-
645
- _trackFocus: function() {
646
- this._on( this.widget(), {
647
- focusin: function( event ) {
648
- this._makeFocusTarget();
649
- this._focusedElement = $( event.target );
650
- }
651
- } );
652
- },
653
-
654
- _makeFocusTarget: function() {
655
- this._untrackInstance();
656
- this._trackingInstances().unshift( this );
657
- },
658
-
659
- _untrackInstance: function() {
660
- var instances = this._trackingInstances(),
661
- exists = $.inArray( this, instances );
662
- if ( exists !== -1 ) {
663
- instances.splice( exists, 1 );
664
- }
665
- },
666
-
667
- _trackingInstances: function() {
668
- var instances = this.document.data( "ui-dialog-instances" );
669
- if ( !instances ) {
670
- instances = [];
671
- this.document.data( "ui-dialog-instances", instances );
672
- }
673
- return instances;
674
- },
675
-
676
- _minHeight: function() {
677
- var options = this.options;
678
-
679
- return options.height === "auto" ?
680
- options.minHeight :
681
- Math.min( options.minHeight, options.height );
682
- },
683
-
684
- _position: function() {
685
-
686
- // Need to show the dialog to get the actual offset in the position plugin
687
- var isVisible = this.uiDialog.is( ":visible" );
688
- if ( !isVisible ) {
689
- this.uiDialog.show();
690
- }
691
- this.uiDialog.position( this.options.position );
692
- if ( !isVisible ) {
693
- this.uiDialog.hide();
694
- }
695
- },
696
-
697
- _setOptions: function( options ) {
698
- var that = this,
699
- resize = false,
700
- resizableOptions = {};
701
-
702
- $.each( options, function( key, value ) {
703
- that._setOption( key, value );
704
-
705
- if ( key in that.sizeRelatedOptions ) {
706
- resize = true;
707
- }
708
- if ( key in that.resizableRelatedOptions ) {
709
- resizableOptions[ key ] = value;
710
- }
711
- } );
712
-
713
- if ( resize ) {
714
- this._size();
715
- this._position();
716
- }
717
- if ( this.uiDialog.is( ":data(ui-resizable)" ) ) {
718
- this.uiDialog.resizable( "option", resizableOptions );
719
- }
720
- },
721
-
722
- _setOption: function( key, value ) {
723
- var isDraggable, isResizable,
724
- uiDialog = this.uiDialog;
725
-
726
- if ( key === "disabled" ) {
727
- return;
728
- }
729
-
730
- this._super( key, value );
731
-
732
- if ( key === "appendTo" ) {
733
- this.uiDialog.appendTo( this._appendTo() );
734
- }
735
-
736
- if ( key === "buttons" ) {
737
- this._createButtons();
738
- }
739
-
740
- if ( key === "closeText" ) {
741
- this.uiDialogTitlebarClose.button( {
742
-
743
- // Ensure that we always pass a string
744
- label: $( "<a>" ).text( "" + this.options.closeText ).html()
745
- } );
746
- }
747
-
748
- if ( key === "draggable" ) {
749
- isDraggable = uiDialog.is( ":data(ui-draggable)" );
750
- if ( isDraggable && !value ) {
751
- uiDialog.draggable( "destroy" );
752
- }
753
-
754
- if ( !isDraggable && value ) {
755
- this._makeDraggable();
756
- }
757
- }
758
-
759
- if ( key === "position" ) {
760
- this._position();
761
- }
762
-
763
- if ( key === "resizable" ) {
764
-
765
- // currently resizable, becoming non-resizable
766
- isResizable = uiDialog.is( ":data(ui-resizable)" );
767
- if ( isResizable && !value ) {
768
- uiDialog.resizable( "destroy" );
769
- }
770
-
771
- // Currently resizable, changing handles
772
- if ( isResizable && typeof value === "string" ) {
773
- uiDialog.resizable( "option", "handles", value );
774
- }
775
-
776
- // Currently non-resizable, becoming resizable
777
- if ( !isResizable && value !== false ) {
778
- this._makeResizable();
779
- }
780
- }
781
-
782
- if ( key === "title" ) {
783
- this._title( this.uiDialogTitlebar.find( ".ui-dialog-title" ) );
784
- }
785
-
786
- if ( key === "modal" ) {
787
- uiDialog.attr( "aria-modal", value ? "true" : null );
788
- }
789
- },
790
-
791
- _size: function() {
792
-
793
- // If the user has resized the dialog, the .ui-dialog and .ui-dialog-content
794
- // divs will both have width and height set, so we need to reset them
795
- var nonContentHeight, minContentHeight, maxContentHeight,
796
- options = this.options;
797
-
798
- // Reset content sizing
799
- this.element.show().css( {
800
- width: "auto",
801
- minHeight: 0,
802
- maxHeight: "none",
803
- height: 0
804
- } );
805
-
806
- if ( options.minWidth > options.width ) {
807
- options.width = options.minWidth;
808
- }
809
-
810
- // Reset wrapper sizing
811
- // determine the height of all the non-content elements
812
- nonContentHeight = this.uiDialog.css( {
813
- height: "auto",
814
- width: options.width
815
- } )
816
- .outerHeight();
817
- minContentHeight = Math.max( 0, options.minHeight - nonContentHeight );
818
- maxContentHeight = typeof options.maxHeight === "number" ?
819
- Math.max( 0, options.maxHeight - nonContentHeight ) :
820
- "none";
821
-
822
- if ( options.height === "auto" ) {
823
- this.element.css( {
824
- minHeight: minContentHeight,
825
- maxHeight: maxContentHeight,
826
- height: "auto"
827
- } );
828
- } else {
829
- this.element.height( Math.max( 0, options.height - nonContentHeight ) );
830
- }
831
-
832
- if ( this.uiDialog.is( ":data(ui-resizable)" ) ) {
833
- this.uiDialog.resizable( "option", "minHeight", this._minHeight() );
834
- }
835
- },
836
-
837
- _blockFrames: function() {
838
- this.iframeBlocks = this.document.find( "iframe" ).map( function() {
839
- var iframe = $( this );
840
-
841
- return $( "<div>" )
842
- .css( {
843
- position: "absolute",
844
- width: iframe.outerWidth(),
845
- height: iframe.outerHeight()
846
- } )
847
- .appendTo( iframe.parent() )
848
- .offset( iframe.offset() )[ 0 ];
849
- } );
850
- },
851
-
852
- _unblockFrames: function() {
853
- if ( this.iframeBlocks ) {
854
- this.iframeBlocks.remove();
855
- delete this.iframeBlocks;
856
- }
857
- },
858
-
859
- _allowInteraction: function( event ) {
860
- if ( $( event.target ).closest( ".ui-dialog" ).length ) {
861
- return true;
862
- }
863
-
864
- // TODO: Remove hack when datepicker implements
865
- // the .ui-front logic (#8989)
866
- return !!$( event.target ).closest( ".ui-datepicker" ).length;
867
- },
868
-
869
- _createOverlay: function() {
870
- if ( !this.options.modal ) {
871
- return;
872
- }
873
-
874
- // We use a delay in case the overlay is created from an
875
- // event that we're going to be cancelling (#2804)
876
- var isOpening = true;
877
- this._delay( function() {
878
- isOpening = false;
879
- } );
880
-
881
- if ( !this.document.data( "ui-dialog-overlays" ) ) {
882
-
883
- // Prevent use of anchors and inputs
884
- // This doesn't use `_on()` because it is a shared event handler
885
- // across all open modal dialogs.
886
- this.document.on( "focusin.ui-dialog", function( event ) {
887
- if ( isOpening ) {
888
- return;
889
- }
890
-
891
- var instance = this._trackingInstances()[ 0 ];
892
- if ( !instance._allowInteraction( event ) ) {
893
- event.preventDefault();
894
- instance._focusTabbable();
895
- }
896
- }.bind( this ) );
897
- }
898
-
899
- this.overlay = $( "<div>" )
900
- .appendTo( this._appendTo() );
901
-
902
- this._addClass( this.overlay, null, "ui-widget-overlay ui-front" );
903
- this._on( this.overlay, {
904
- mousedown: "_keepFocus"
905
- } );
906
- this.document.data( "ui-dialog-overlays",
907
- ( this.document.data( "ui-dialog-overlays" ) || 0 ) + 1 );
908
- },
909
-
910
- _destroyOverlay: function() {
911
- if ( !this.options.modal ) {
912
- return;
913
- }
914
-
915
- if ( this.overlay ) {
916
- var overlays = this.document.data( "ui-dialog-overlays" ) - 1;
917
-
918
- if ( !overlays ) {
919
- this.document.off( "focusin.ui-dialog" );
920
- this.document.removeData( "ui-dialog-overlays" );
921
- } else {
922
- this.document.data( "ui-dialog-overlays", overlays );
923
- }
924
-
925
- this.overlay.remove();
926
- this.overlay = null;
927
- }
928
- }
929
- } );
930
-
931
- // DEPRECATED
932
- // TODO: switch return back to widget declaration at top of file when this is removed
933
- if ( $.uiBackCompat === true ) {
934
-
935
- // Backcompat for dialogClass option
936
- $.widget( "ui.dialog", $.ui.dialog, {
937
- options: {
938
- dialogClass: ""
939
- },
940
- _createWrapper: function() {
941
- this._super();
942
- this.uiDialog.addClass( this.options.dialogClass );
943
- },
944
- _setOption: function( key, value ) {
945
- if ( key === "dialogClass" ) {
946
- this.uiDialog
947
- .removeClass( this.options.dialogClass )
948
- .addClass( value );
949
- }
950
- this._superApply( arguments );
951
- }
952
- } );
953
- }
954
-
955
- return $.ui.dialog;
956
-
957
- } );