activeadmin 1.0.0.pre4 → 2.4.0

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of activeadmin might be problematic. Click here for more details.

Files changed (542) hide show
  1. checksums.yaml +5 -5
  2. data/CHANGELOG.md +529 -52
  3. data/CODE_OF_CONDUCT.md +64 -12
  4. data/CONTRIBUTING.md +129 -58
  5. data/README.md +80 -79
  6. data/app/assets/javascripts/active_admin/base.es6 +23 -0
  7. data/app/assets/javascripts/active_admin/ext/jquery-ui.es6 +7 -0
  8. data/app/assets/javascripts/active_admin/ext/jquery.es6 +9 -0
  9. data/app/assets/javascripts/active_admin/initializers/datepicker.es6 +16 -0
  10. data/app/assets/javascripts/active_admin/initializers/filters.es6 +45 -0
  11. data/app/assets/javascripts/active_admin/initializers/tabs.es6 +6 -0
  12. data/app/assets/javascripts/active_admin/lib/active_admin.es6 +41 -0
  13. data/app/assets/javascripts/active_admin/lib/batch_actions.es6 +59 -0
  14. data/app/assets/javascripts/active_admin/lib/checkbox-toggler.es6 +49 -0
  15. data/app/assets/javascripts/active_admin/lib/dropdown-menu.es6 +123 -0
  16. data/app/assets/javascripts/active_admin/lib/has_many.es6 +95 -0
  17. data/app/assets/javascripts/active_admin/lib/modal_dialog.es6 +61 -0
  18. data/app/assets/javascripts/active_admin/lib/per_page.es6 +47 -0
  19. data/app/assets/javascripts/active_admin/lib/table-checkbox-toggler.es6 +36 -0
  20. data/app/assets/stylesheets/active_admin/_base.scss +2 -2
  21. data/app/assets/stylesheets/active_admin/_forms.scss +19 -26
  22. data/app/assets/stylesheets/active_admin/components/_batch_actions.scss +0 -5
  23. data/app/assets/stylesheets/active_admin/components/_pagination.scss +11 -0
  24. data/app/assets/stylesheets/active_admin/components/_scopes.scss +3 -0
  25. data/app/assets/stylesheets/active_admin/components/_status_tags.scss +0 -4
  26. data/app/assets/stylesheets/active_admin/components/_tables.scss +4 -1
  27. data/app/assets/stylesheets/active_admin/components/_tabs.scss +1 -1
  28. data/app/assets/stylesheets/active_admin/mixins/_all.scss +0 -2
  29. data/app/assets/stylesheets/active_admin/mixins/_gradients.scss +1 -1
  30. data/app/assets/stylesheets/active_admin/print.scss +2 -3
  31. data/app/views/active_admin/devise/confirmations/new.html.erb +2 -2
  32. data/app/views/active_admin/devise/passwords/edit.html.erb +2 -2
  33. data/app/views/active_admin/devise/passwords/new.html.erb +2 -2
  34. data/app/views/active_admin/devise/registrations/new.html.erb +3 -4
  35. data/app/views/active_admin/devise/sessions/new.html.erb +2 -2
  36. data/app/views/active_admin/devise/shared/_error_messages.html.erb +15 -0
  37. data/app/views/active_admin/devise/shared/_links.erb +12 -6
  38. data/app/views/active_admin/devise/unlocks/new.html.erb +2 -2
  39. data/app/views/kaminari/active_admin/_first_page.html.erb +11 -0
  40. data/app/views/kaminari/active_admin/_gap.html.erb +8 -0
  41. data/app/views/kaminari/active_admin/_last_page.html.erb +11 -0
  42. data/app/views/kaminari/active_admin/_next_page.html.erb +11 -0
  43. data/app/views/kaminari/active_admin/_page.html.erb +12 -0
  44. data/app/views/kaminari/active_admin/_paginator.html.erb +25 -0
  45. data/app/views/kaminari/active_admin/_prev_page.html.erb +11 -0
  46. data/app/views/kaminari/active_admin_countless/_first_page.html.erb +11 -0
  47. data/app/views/kaminari/active_admin_countless/_gap.html.erb +8 -0
  48. data/app/views/kaminari/active_admin_countless/_next_page.html.erb +11 -0
  49. data/app/views/kaminari/active_admin_countless/_page.html.erb +12 -0
  50. data/app/views/kaminari/active_admin_countless/_paginator.html.erb +24 -0
  51. data/app/views/kaminari/active_admin_countless/_prev_page.html.erb +11 -0
  52. data/app/views/layouts/active_admin_logged_out.html.erb +2 -2
  53. data/config/locales/ar.yml +4 -5
  54. data/config/locales/bg.yml +1 -3
  55. data/config/locales/bs.yml +1 -2
  56. data/config/locales/ca.yml +2 -4
  57. data/config/locales/cs.yml +1 -2
  58. data/config/locales/da.yml +45 -14
  59. data/config/locales/de-CH.yml +2 -3
  60. data/config/locales/de.yml +30 -3
  61. data/config/locales/el.yml +3 -4
  62. data/config/locales/en-CA.yml +139 -0
  63. data/config/locales/en-GB.yml +44 -3
  64. data/config/locales/en.yml +31 -5
  65. data/config/locales/eo.yml +145 -0
  66. data/config/locales/es-MX.yml +5 -3
  67. data/config/locales/es.yml +32 -6
  68. data/config/locales/fa.yml +1 -2
  69. data/config/locales/fi.yml +2 -3
  70. data/config/locales/fr.yml +27 -5
  71. data/config/locales/he.yml +53 -7
  72. data/config/locales/hr.yml +1 -2
  73. data/config/locales/hu.yml +5 -2
  74. data/config/locales/id.yml +2 -3
  75. data/config/locales/it.yml +15 -7
  76. data/config/locales/ja.yml +8 -3
  77. data/config/locales/ko.yml +1 -2
  78. data/config/locales/lt.yml +27 -6
  79. data/config/locales/lv.yml +1 -2
  80. data/config/locales/mk.yml +134 -0
  81. data/config/locales/nb.yml +16 -7
  82. data/config/locales/nl.yml +13 -3
  83. data/config/locales/pl.yml +75 -5
  84. data/config/locales/pt-BR.yml +10 -3
  85. data/config/locales/pt-PT.yml +1 -2
  86. data/config/locales/ro.yml +1 -2
  87. data/config/locales/ru.yml +5 -3
  88. data/config/locales/sk.yml +168 -0
  89. data/config/locales/sv-SE.yml +4 -3
  90. data/config/locales/tr.yml +10 -2
  91. data/config/locales/uk.yml +4 -3
  92. data/config/locales/vi.yml +48 -8
  93. data/config/locales/zh-CN.yml +38 -7
  94. data/config/locales/zh-TW.yml +2 -3
  95. data/docs/.gitignore +1 -0
  96. data/docs/0-installation.md +19 -13
  97. data/docs/1-general-configuration.md +37 -4
  98. data/docs/10-custom-pages.md +47 -3
  99. data/docs/11-decorators.md +4 -0
  100. data/docs/12-arbre-components.md +73 -9
  101. data/docs/13-authorization-adapter.md +72 -35
  102. data/docs/14-gotchas.md +57 -19
  103. data/docs/2-resource-customization.md +64 -20
  104. data/docs/3-index-pages/custom-index.md +5 -1
  105. data/docs/3-index-pages/index-as-block.md +3 -5
  106. data/docs/3-index-pages/index-as-blog.md +4 -6
  107. data/docs/3-index-pages/index-as-grid.md +3 -5
  108. data/docs/3-index-pages/index-as-table.md +33 -12
  109. data/docs/3-index-pages.md +65 -9
  110. data/docs/4-csv-format.md +16 -0
  111. data/docs/5-forms.md +78 -17
  112. data/docs/6-show-pages.md +5 -29
  113. data/docs/7-sidebars.md +5 -1
  114. data/docs/8-custom-actions.md +18 -1
  115. data/docs/9-batch-actions.md +8 -4
  116. data/docs/CNAME +1 -0
  117. data/docs/Gemfile +3 -0
  118. data/docs/Gemfile.lock +248 -0
  119. data/docs/_config.yml +4 -0
  120. data/docs/_includes/footer.html +8 -0
  121. data/docs/_includes/google-analytics.html +16 -0
  122. data/docs/_includes/head.html +7 -0
  123. data/docs/_includes/toc.html +98 -0
  124. data/docs/_includes/top-menu.html +17 -0
  125. data/docs/_layouts/default.html +21 -0
  126. data/docs/documentation.md +60 -0
  127. data/docs/images/activeadmin.png +0 -0
  128. data/docs/images/code-header.png +0 -0
  129. data/docs/images/divider.png +0 -0
  130. data/docs/images/features.png +0 -0
  131. data/docs/images/tidelift.svg +14 -0
  132. data/docs/index.html +226 -0
  133. data/docs/stylesheets/main.css +1205 -0
  134. data/lib/active_admin/abstract_view_factory.rb +13 -51
  135. data/lib/active_admin/application.rb +50 -140
  136. data/lib/active_admin/application_settings.rb +42 -0
  137. data/lib/active_admin/authorization_adapter.rb +0 -3
  138. data/lib/active_admin/base_controller/authorization.rb +4 -7
  139. data/lib/active_admin/base_controller/menu.rb +10 -14
  140. data/lib/active_admin/base_controller.rb +8 -14
  141. data/lib/active_admin/batch_actions/controller.rb +3 -3
  142. data/lib/active_admin/batch_actions/resource_extension.rb +9 -13
  143. data/lib/active_admin/batch_actions/views/batch_action_form.rb +1 -1
  144. data/lib/active_admin/batch_actions/views/batch_action_selector.rb +1 -1
  145. data/lib/active_admin/batch_actions/views/selection_cells.rb +6 -5
  146. data/lib/active_admin/callbacks.rb +1 -1
  147. data/lib/active_admin/controller_action.rb +2 -1
  148. data/lib/active_admin/csv_builder.rb +15 -12
  149. data/lib/active_admin/dependency.rb +8 -76
  150. data/lib/active_admin/deprecation.rb +0 -25
  151. data/lib/active_admin/devise.rb +3 -3
  152. data/lib/active_admin/dsl.rb +3 -16
  153. data/lib/active_admin/dynamic_setting.rb +38 -0
  154. data/lib/active_admin/dynamic_settings_node.rb +28 -0
  155. data/lib/active_admin/engine.rb +5 -0
  156. data/lib/active_admin/error.rb +5 -3
  157. data/lib/active_admin/filters/active.rb +13 -14
  158. data/lib/active_admin/filters/active_filter.rb +124 -0
  159. data/lib/active_admin/filters/active_sidebar.rb +54 -0
  160. data/lib/active_admin/filters/forms.rb +6 -4
  161. data/lib/active_admin/filters/formtastic_addons.rb +2 -2
  162. data/lib/active_admin/filters/resource_extension.rb +28 -43
  163. data/lib/active_admin/filters.rb +2 -0
  164. data/lib/active_admin/form_builder.rb +100 -59
  165. data/lib/active_admin/generators/boilerplate.rb +12 -4
  166. data/lib/active_admin/helpers/collection.rb +2 -0
  167. data/lib/active_admin/helpers/scope_chain.rb +1 -0
  168. data/lib/active_admin/inputs/datepicker_input.rb +12 -5
  169. data/lib/active_admin/inputs/filters/base/search_method_select.rb +2 -2
  170. data/lib/active_admin/inputs/filters/date_range_input.rb +21 -8
  171. data/lib/active_admin/inputs/filters/select_input.rb +6 -3
  172. data/lib/active_admin/inputs/filters/text_input.rb +25 -0
  173. data/lib/active_admin/inputs.rb +1 -0
  174. data/lib/active_admin/localizers/resource_localizer.rb +35 -0
  175. data/lib/active_admin/localizers.rb +11 -0
  176. data/lib/active_admin/menu.rb +6 -12
  177. data/lib/active_admin/menu_collection.rb +0 -2
  178. data/lib/active_admin/menu_item.rb +4 -32
  179. data/lib/active_admin/namespace.rb +36 -17
  180. data/lib/active_admin/namespace_settings.rb +123 -0
  181. data/lib/active_admin/order_clause.rb +30 -8
  182. data/lib/active_admin/orm/active_record/comments/comment.rb +3 -17
  183. data/lib/active_admin/orm/active_record/comments/views/active_admin_comments.rb +19 -7
  184. data/lib/active_admin/orm/active_record/comments.rb +17 -11
  185. data/lib/active_admin/page.rb +23 -4
  186. data/lib/active_admin/page_controller.rb +2 -6
  187. data/lib/active_admin/page_dsl.rb +5 -1
  188. data/lib/active_admin/page_presenter.rb +2 -1
  189. data/lib/active_admin/pundit_adapter.rb +18 -5
  190. data/lib/active_admin/resource/action_items.rb +17 -5
  191. data/lib/active_admin/resource/attributes.rb +47 -0
  192. data/lib/active_admin/resource/belongs_to.rb +10 -1
  193. data/lib/active_admin/resource/menu.rb +7 -4
  194. data/lib/active_admin/resource/model.rb +15 -0
  195. data/lib/active_admin/resource/naming.rb +3 -3
  196. data/lib/active_admin/resource/ordering.rb +11 -0
  197. data/lib/active_admin/resource/page_presenters.rb +1 -1
  198. data/lib/active_admin/resource/routes.rb +52 -20
  199. data/lib/active_admin/resource/scopes.rb +5 -3
  200. data/lib/active_admin/resource/sidebars.rb +1 -1
  201. data/lib/active_admin/resource.rb +59 -7
  202. data/lib/active_admin/resource_collection.rb +2 -2
  203. data/lib/active_admin/resource_controller/action_builder.rb +10 -0
  204. data/lib/active_admin/resource_controller/data_access.rb +32 -27
  205. data/lib/active_admin/resource_controller/decorators.rb +5 -5
  206. data/lib/active_admin/resource_controller/polymorphic_routes.rb +36 -0
  207. data/lib/active_admin/resource_controller/resource_class_methods.rb +2 -0
  208. data/lib/active_admin/resource_controller/scoping.rb +1 -1
  209. data/lib/active_admin/resource_controller.rb +15 -0
  210. data/lib/active_admin/resource_dsl.rb +58 -24
  211. data/lib/active_admin/router.rb +90 -82
  212. data/lib/active_admin/scope.rb +20 -12
  213. data/lib/active_admin/settings_node.rb +19 -0
  214. data/lib/active_admin/sidebar_section.rb +3 -1
  215. data/lib/active_admin/version.rb +1 -1
  216. data/lib/active_admin/view_helpers/auto_link_helper.rb +2 -2
  217. data/lib/active_admin/view_helpers/breadcrumb_helper.rb +2 -2
  218. data/lib/active_admin/view_helpers/display_helper.rb +28 -16
  219. data/lib/active_admin/view_helpers/download_format_links_helper.rb +13 -0
  220. data/lib/active_admin/view_helpers/fields_for.rb +1 -2
  221. data/lib/active_admin/view_helpers/form_helper.rb +2 -2
  222. data/lib/active_admin/view_helpers/method_or_proc_helper.rb +8 -1
  223. data/lib/active_admin/view_helpers/scope_name_helper.rb +16 -0
  224. data/lib/active_admin/view_helpers.rb +2 -1
  225. data/lib/active_admin/views/action_items.rb +1 -1
  226. data/lib/active_admin/views/components/active_admin_form.rb +43 -11
  227. data/lib/active_admin/views/components/attributes_table.rb +4 -4
  228. data/lib/active_admin/views/components/columns.rb +3 -3
  229. data/lib/active_admin/views/components/dropdown_menu.rb +4 -4
  230. data/lib/active_admin/views/components/index_list.rb +4 -3
  231. data/lib/active_admin/views/components/menu.rb +32 -0
  232. data/lib/active_admin/views/components/menu_item.rb +58 -0
  233. data/lib/active_admin/views/components/paginated_collection.rb +7 -11
  234. data/lib/active_admin/views/components/scopes.rb +14 -8
  235. data/lib/active_admin/views/components/sidebar.rb +13 -0
  236. data/lib/active_admin/views/components/site_title.rb +5 -6
  237. data/lib/active_admin/views/components/status_tag.rb +11 -16
  238. data/lib/active_admin/views/components/table_for.rb +7 -16
  239. data/lib/active_admin/views/components/tabs.rb +15 -3
  240. data/lib/active_admin/views/footer.rb +14 -4
  241. data/lib/active_admin/views/header.rb +3 -16
  242. data/lib/active_admin/views/index_as_blog.rb +2 -3
  243. data/lib/active_admin/views/index_as_grid.rb +25 -25
  244. data/lib/active_admin/views/index_as_table.rb +39 -13
  245. data/lib/active_admin/views/pages/base.rb +36 -57
  246. data/lib/active_admin/views/pages/form.rb +2 -3
  247. data/lib/active_admin/views/pages/layout.rb +1 -1
  248. data/lib/active_admin/views/pages/show.rb +8 -2
  249. data/lib/active_admin/views/tabbed_navigation.rb +4 -59
  250. data/lib/active_admin/views/title_bar.rb +4 -4
  251. data/lib/active_admin/views.rb +1 -1
  252. data/lib/active_admin.rb +11 -7
  253. data/lib/generators/active_admin/assets/assets_generator.rb +2 -2
  254. data/lib/generators/active_admin/assets/templates/active_admin.js +1 -0
  255. data/lib/generators/active_admin/devise/devise_generator.rb +8 -5
  256. data/lib/generators/active_admin/install/install_generator.rb +7 -3
  257. data/lib/generators/active_admin/install/templates/active_admin.rb.erb +60 -4
  258. data/lib/generators/active_admin/install/templates/{admin_user.rb.erb → admin_users.rb.erb} +1 -3
  259. data/lib/generators/active_admin/install/templates/dashboard.rb +2 -3
  260. data/lib/generators/active_admin/install/templates/migrations/{create_active_admin_comments.rb → create_active_admin_comments.rb.erb} +2 -5
  261. data/lib/generators/active_admin/page/page_generator.rb +1 -1
  262. data/lib/generators/active_admin/resource/resource_generator.rb +2 -2
  263. data/lib/generators/active_admin/resource/templates/admin.rb.erb +46 -0
  264. data/lib/ransack_ext.rb +5 -5
  265. data/vendor/assets/javascripts/jquery-ui/data.js +41 -0
  266. data/vendor/assets/javascripts/jquery-ui/disable-selection.js +48 -0
  267. data/vendor/assets/javascripts/jquery-ui/escape-selector.js +23 -0
  268. data/vendor/assets/javascripts/jquery-ui/focusable.js +86 -0
  269. data/vendor/assets/javascripts/jquery-ui/form-reset-mixin.js +80 -0
  270. data/vendor/assets/javascripts/jquery-ui/form.js +22 -0
  271. data/vendor/assets/javascripts/jquery-ui/ie.js +17 -0
  272. data/vendor/assets/javascripts/jquery-ui/keycode.js +47 -0
  273. data/vendor/assets/javascripts/jquery-ui/labels.js +65 -0
  274. data/vendor/assets/javascripts/jquery-ui/plugin.js +46 -0
  275. data/vendor/assets/javascripts/jquery-ui/position.js +500 -0
  276. data/vendor/assets/javascripts/jquery-ui/safe-active-element.js +42 -0
  277. data/vendor/assets/javascripts/jquery-ui/safe-blur.js +23 -0
  278. data/vendor/assets/javascripts/jquery-ui/scroll-parent.js +47 -0
  279. data/vendor/assets/javascripts/jquery-ui/tabbable.js +38 -0
  280. data/vendor/assets/javascripts/jquery-ui/unique-id.js +51 -0
  281. data/vendor/assets/javascripts/jquery-ui/version.js +17 -0
  282. data/vendor/assets/javascripts/jquery-ui/widget.js +735 -0
  283. data/vendor/assets/javascripts/jquery-ui/widgets/button.js +391 -0
  284. data/vendor/assets/javascripts/jquery-ui/widgets/checkboxradio.js +291 -0
  285. data/vendor/assets/javascripts/jquery-ui/widgets/controlgroup.js +300 -0
  286. data/vendor/assets/javascripts/jquery-ui/widgets/datepicker.js +2123 -0
  287. data/vendor/assets/javascripts/jquery-ui/widgets/dialog.js +954 -0
  288. data/vendor/assets/javascripts/jquery-ui/widgets/draggable.js +1259 -0
  289. data/vendor/assets/javascripts/jquery-ui/widgets/mouse.js +230 -0
  290. data/vendor/assets/javascripts/jquery-ui/widgets/resizable.js +1207 -0
  291. data/vendor/assets/javascripts/jquery-ui/widgets/sortable.js +1561 -0
  292. data/vendor/assets/javascripts/jquery-ui/widgets/tabs.js +931 -0
  293. data/vendor/assets/stylesheets/active_admin/_normalize.scss +447 -0
  294. metadata +190 -539
  295. data/.gitignore +0 -49
  296. data/.hound.yml +0 -14
  297. data/.travis.yml +0 -46
  298. data/.yardopts +0 -8
  299. data/Gemfile +0 -75
  300. data/Guardfile +0 -8
  301. data/Rakefile +0 -33
  302. data/activeadmin.gemspec +0 -31
  303. data/app/assets/images/active_admin/datepicker/datepicker-input-icon.png +0 -0
  304. data/app/assets/javascripts/active_admin/base.js.coffee +0 -9
  305. data/app/assets/javascripts/active_admin/ext/jquery-ui.js.coffee +0 -6
  306. data/app/assets/javascripts/active_admin/ext/jquery.js.coffee +0 -7
  307. data/app/assets/javascripts/active_admin/initializers/batch_actions.js.coffee +0 -7
  308. data/app/assets/javascripts/active_admin/initializers/datepicker.js.coffee +0 -10
  309. data/app/assets/javascripts/active_admin/initializers/filters.js.coffee +0 -15
  310. data/app/assets/javascripts/active_admin/initializers/tabs.js.coffee +0 -3
  311. data/app/assets/javascripts/active_admin/jquery_ui.js.erb +0 -11
  312. data/app/assets/javascripts/active_admin/lib/batch_actions.js.coffee +0 -39
  313. data/app/assets/javascripts/active_admin/lib/checkbox-toggler.js.coffee +0 -36
  314. data/app/assets/javascripts/active_admin/lib/dropdown-menu.js.coffee +0 -101
  315. data/app/assets/javascripts/active_admin/lib/flash.js.coffee +0 -19
  316. data/app/assets/javascripts/active_admin/lib/has_many.js.coffee +0 -79
  317. data/app/assets/javascripts/active_admin/lib/modal_dialog.js.coffee +0 -45
  318. data/app/assets/javascripts/active_admin/lib/per_page.js.coffee +0 -31
  319. data/app/assets/javascripts/active_admin/lib/table-checkbox-toggler.js.coffee +0 -24
  320. data/app/assets/stylesheets/active_admin/mixins/_reset.scss +0 -165
  321. data/cucumber.yml +0 -3
  322. data/features/action_item.feature +0 -73
  323. data/features/authorization.feature +0 -64
  324. data/features/authorization_cancan.feature +0 -52
  325. data/features/authorization_pundit.feature +0 -37
  326. data/features/belongs_to.feature +0 -66
  327. data/features/breadcrumb.feature +0 -75
  328. data/features/comments/commenting.feature +0 -171
  329. data/features/comments/viewing_index.feature +0 -19
  330. data/features/dashboard.feature +0 -16
  331. data/features/decorators.feature +0 -43
  332. data/features/development_reloading.feature +0 -30
  333. data/features/edit_page.feature +0 -117
  334. data/features/favicon.feature +0 -20
  335. data/features/first_boot.feature +0 -16
  336. data/features/global_navigation.feature +0 -29
  337. data/features/i18n.feature +0 -43
  338. data/features/index/batch_actions.feature +0 -196
  339. data/features/index/filters.feature +0 -161
  340. data/features/index/format_as_csv.feature +0 -203
  341. data/features/index/formats.feature +0 -66
  342. data/features/index/index_as_block.feature +0 -15
  343. data/features/index/index_as_blog.feature +0 -69
  344. data/features/index/index_as_grid.feature +0 -45
  345. data/features/index/index_as_table.feature +0 -291
  346. data/features/index/index_blank_slate.feature +0 -83
  347. data/features/index/index_parameters.feature +0 -75
  348. data/features/index/index_scope_to.feature +0 -56
  349. data/features/index/index_scopes.feature +0 -251
  350. data/features/index/page_title.feature +0 -42
  351. data/features/index/pagination.feature +0 -63
  352. data/features/index/switch_index_view.feature +0 -73
  353. data/features/menu.feature +0 -53
  354. data/features/meta_tags.feature +0 -21
  355. data/features/new_page.feature +0 -109
  356. data/features/registering_assets.feature +0 -34
  357. data/features/registering_pages.feature +0 -148
  358. data/features/registering_resources.feature +0 -33
  359. data/features/renamed_resource.feature +0 -32
  360. data/features/root_to.feature +0 -17
  361. data/features/show/columns.feature +0 -40
  362. data/features/show/default_content.feature +0 -44
  363. data/features/show/page_title.feature +0 -59
  364. data/features/show/tabs.feature +0 -27
  365. data/features/sidebar_sections.feature +0 -210
  366. data/features/site_title.feature +0 -47
  367. data/features/specifying_actions.feature +0 -93
  368. data/features/step_definitions/action_item_steps.rb +0 -7
  369. data/features/step_definitions/action_link_steps.rb +0 -20
  370. data/features/step_definitions/additional_web_steps.rb +0 -81
  371. data/features/step_definitions/asset_steps.rb +0 -15
  372. data/features/step_definitions/attribute_steps.rb +0 -18
  373. data/features/step_definitions/batch_action_steps.rb +0 -81
  374. data/features/step_definitions/blog_steps.rb +0 -3
  375. data/features/step_definitions/breadcrumb_steps.rb +0 -3
  376. data/features/step_definitions/column_steps.rb +0 -8
  377. data/features/step_definitions/comment_steps.rb +0 -12
  378. data/features/step_definitions/configuration_steps.rb +0 -100
  379. data/features/step_definitions/dashboard_steps.rb +0 -15
  380. data/features/step_definitions/factory_steps.rb +0 -35
  381. data/features/step_definitions/filter_steps.rb +0 -39
  382. data/features/step_definitions/flash_steps.rb +0 -11
  383. data/features/step_definitions/format_steps.rb +0 -52
  384. data/features/step_definitions/i18n_steps.rb +0 -3
  385. data/features/step_definitions/index_scope_steps.rb +0 -21
  386. data/features/step_definitions/index_views_steps.rb +0 -3
  387. data/features/step_definitions/layout_steps.rb +0 -3
  388. data/features/step_definitions/member_link_steps.rb +0 -7
  389. data/features/step_definitions/menu_steps.rb +0 -11
  390. data/features/step_definitions/meta_tag_steps.rb +0 -3
  391. data/features/step_definitions/pagination_steps.rb +0 -15
  392. data/features/step_definitions/sidebar_steps.rb +0 -13
  393. data/features/step_definitions/site_title_steps.rb +0 -17
  394. data/features/step_definitions/symbol_leak_steps.rb +0 -3
  395. data/features/step_definitions/tab_steps.rb +0 -8
  396. data/features/step_definitions/table_steps.rb +0 -120
  397. data/features/step_definitions/user_steps.rb +0 -45
  398. data/features/step_definitions/web_steps.rb +0 -85
  399. data/features/sti_resource.feature +0 -65
  400. data/features/strong_parameters.feature +0 -73
  401. data/features/support/env.rb +0 -162
  402. data/features/support/paths.rb +0 -71
  403. data/features/support/selectors.rb +0 -45
  404. data/features/symbol_leak.feature +0 -35
  405. data/features/users/logging_in.feature +0 -34
  406. data/features/users/logging_out.feature +0 -13
  407. data/features/users/resetting_password.feature +0 -34
  408. data/lib/active_admin/event.rb +0 -24
  409. data/lib/active_admin/filters/humanized.rb +0 -68
  410. data/lib/active_admin/helpers/settings.rb +0 -115
  411. data/lib/active_admin/reloader.rb +0 -25
  412. data/lib/generators/active_admin/assets/templates/active_admin.js.coffee +0 -1
  413. data/lib/generators/active_admin/resource/templates/admin.rb +0 -45
  414. data/script/local +0 -53
  415. data/script/travis_cache +0 -107
  416. data/script/use_rails +0 -53
  417. data/spec/javascripts/coffeescripts/jquery.aa.checkbox-toggler-spec.js.coffee +0 -50
  418. data/spec/javascripts/coffeescripts/jquery.aa.flash.js.coffee +0 -25
  419. data/spec/javascripts/coffeescripts/jquery.aa.table-checkbox-toggler-spec.js.coffee +0 -34
  420. data/spec/javascripts/fixtures/checkboxes.html +0 -9
  421. data/spec/javascripts/fixtures/flashes.html +0 -2
  422. data/spec/javascripts/fixtures/table_checkboxes.html +0 -17
  423. data/spec/javascripts/helpers/SpecHelper.js +0 -3
  424. data/spec/javascripts/support/jasmine.yml +0 -74
  425. data/spec/javascripts/support/jasmine_config.rb +0 -23
  426. data/spec/javascripts/support/jasmine_runner.rb +0 -32
  427. data/spec/rails_helper.rb +0 -169
  428. data/spec/requests/default_namespace_spec.rb +0 -61
  429. data/spec/requests/javascript_spec.rb +0 -22
  430. data/spec/requests/memory_spec.rb +0 -21
  431. data/spec/requests/stylesheets_spec.rb +0 -18
  432. data/spec/spec_helper.rb +0 -17
  433. data/spec/support/active_admin_request_helpers.rb +0 -27
  434. data/spec/support/deferred_garbage_collection.rb +0 -19
  435. data/spec/support/detect_rails_version.rb +0 -34
  436. data/spec/support/jslint.yml +0 -80
  437. data/spec/support/rails_template.rb +0 -158
  438. data/spec/support/rails_template_with_data.rb +0 -55
  439. data/spec/support/templates/admin/stores.rb +0 -9
  440. data/spec/support/templates/en.yml +0 -8
  441. data/spec/support/templates/policies/active_admin/comment_policy.rb +0 -9
  442. data/spec/support/templates/policies/active_admin/page_policy.rb +0 -18
  443. data/spec/support/templates/policies/admin_user_policy.rb +0 -11
  444. data/spec/support/templates/policies/application_policy.rb +0 -45
  445. data/spec/support/templates/policies/category_policy.rb +0 -7
  446. data/spec/support/templates/policies/post_policy.rb +0 -15
  447. data/spec/support/templates/policies/store_policy.rb +0 -11
  448. data/spec/support/templates/policies/user_policy.rb +0 -11
  449. data/spec/support/templates/post_decorator.rb +0 -11
  450. data/spec/unit/abstract_view_factory_spec.rb +0 -79
  451. data/spec/unit/action_builder_spec.rb +0 -134
  452. data/spec/unit/active_admin_spec.rb +0 -11
  453. data/spec/unit/application_spec.rb +0 -165
  454. data/spec/unit/asset_registration_spec.rb +0 -52
  455. data/spec/unit/authorization/authorization_adapter_spec.rb +0 -61
  456. data/spec/unit/authorization/controller_authorization_spec.rb +0 -39
  457. data/spec/unit/authorization/index_overriding_spec.rb +0 -23
  458. data/spec/unit/auto_link_spec.rb +0 -69
  459. data/spec/unit/batch_actions/resource_spec.rb +0 -97
  460. data/spec/unit/batch_actions/settings_spec.rb +0 -61
  461. data/spec/unit/belongs_to_spec.rb +0 -65
  462. data/spec/unit/cancan_adapter_spec.rb +0 -43
  463. data/spec/unit/comments_spec.rb +0 -188
  464. data/spec/unit/component_spec.rb +0 -18
  465. data/spec/unit/config_shared_examples.rb +0 -59
  466. data/spec/unit/controller_filters_spec.rb +0 -41
  467. data/spec/unit/csv_builder_spec.rb +0 -303
  468. data/spec/unit/dependency_spec.rb +0 -135
  469. data/spec/unit/devise_spec.rb +0 -96
  470. data/spec/unit/dsl_spec.rb +0 -122
  471. data/spec/unit/filters/filter_form_builder_spec.rb +0 -434
  472. data/spec/unit/filters/humanized_spec.rb +0 -56
  473. data/spec/unit/filters/resource_spec.rb +0 -128
  474. data/spec/unit/form_builder_spec.rb +0 -815
  475. data/spec/unit/generators/install_spec.rb +0 -24
  476. data/spec/unit/helpers/collection_spec.rb +0 -65
  477. data/spec/unit/helpers/scope_chain_spec.rb +0 -36
  478. data/spec/unit/helpers/settings_spec.rb +0 -30
  479. data/spec/unit/i18n_spec.rb +0 -12
  480. data/spec/unit/menu_collection_spec.rb +0 -62
  481. data/spec/unit/menu_item_spec.rb +0 -143
  482. data/spec/unit/menu_spec.rb +0 -71
  483. data/spec/unit/namespace/authorization_spec.rb +0 -27
  484. data/spec/unit/namespace/register_page_spec.rb +0 -73
  485. data/spec/unit/namespace/register_resource_spec.rb +0 -160
  486. data/spec/unit/namespace_spec.rb +0 -103
  487. data/spec/unit/order_clause_spec.rb +0 -81
  488. data/spec/unit/page_controller_spec.rb +0 -5
  489. data/spec/unit/page_spec.rb +0 -78
  490. data/spec/unit/pretty_format_spec.rb +0 -77
  491. data/spec/unit/pundit_adapter_spec.rb +0 -98
  492. data/spec/unit/resource/action_items_spec.rb +0 -65
  493. data/spec/unit/resource/includes_spec.rb +0 -21
  494. data/spec/unit/resource/menu_spec.rb +0 -18
  495. data/spec/unit/resource/naming_spec.rb +0 -122
  496. data/spec/unit/resource/page_presenters_spec.rb +0 -44
  497. data/spec/unit/resource/pagination_spec.rb +0 -38
  498. data/spec/unit/resource/routes_spec.rb +0 -77
  499. data/spec/unit/resource/scopes_spec.rb +0 -50
  500. data/spec/unit/resource/sidebars_spec.rb +0 -43
  501. data/spec/unit/resource_collection_spec.rb +0 -175
  502. data/spec/unit/resource_controller/data_access_spec.rb +0 -140
  503. data/spec/unit/resource_controller/decorators_spec.rb +0 -94
  504. data/spec/unit/resource_controller/sidebars_spec.rb +0 -38
  505. data/spec/unit/resource_controller_spec.rb +0 -269
  506. data/spec/unit/resource_registration_spec.rb +0 -56
  507. data/spec/unit/resource_spec.rb +0 -331
  508. data/spec/unit/routing_spec.rb +0 -185
  509. data/spec/unit/scope_spec.rb +0 -185
  510. data/spec/unit/settings_spec.rb +0 -118
  511. data/spec/unit/view_factory_spec.rb +0 -19
  512. data/spec/unit/view_helpers/breadcrumbs_spec.rb +0 -217
  513. data/spec/unit/view_helpers/display_helper_spec.rb +0 -165
  514. data/spec/unit/view_helpers/download_format_links_helper_spec.rb +0 -39
  515. data/spec/unit/view_helpers/fields_for_spec.rb +0 -50
  516. data/spec/unit/view_helpers/flash_helper_spec.rb +0 -25
  517. data/spec/unit/view_helpers/form_helper_spec.rb +0 -43
  518. data/spec/unit/view_helpers/method_or_proc_helper_spec.rb +0 -139
  519. data/spec/unit/views/components/attributes_table_spec.rb +0 -272
  520. data/spec/unit/views/components/batch_action_selector_spec.rb +0 -43
  521. data/spec/unit/views/components/blank_slate_spec.rb +0 -27
  522. data/spec/unit/views/components/columns_spec.rb +0 -189
  523. data/spec/unit/views/components/index_list_spec.rb +0 -35
  524. data/spec/unit/views/components/index_table_for_spec.rb +0 -127
  525. data/spec/unit/views/components/paginated_collection_spec.rb +0 -249
  526. data/spec/unit/views/components/panel_spec.rb +0 -58
  527. data/spec/unit/views/components/sidebar_section_spec.rb +0 -68
  528. data/spec/unit/views/components/site_title_spec.rb +0 -78
  529. data/spec/unit/views/components/status_tag_spec.rb +0 -249
  530. data/spec/unit/views/components/table_for_spec.rb +0 -434
  531. data/spec/unit/views/components/tabs_spec.rb +0 -39
  532. data/spec/unit/views/components/unsupported_browser_spec.rb +0 -41
  533. data/spec/unit/views/index_as_blog_spec.rb +0 -76
  534. data/spec/unit/views/pages/form_spec.rb +0 -51
  535. data/spec/unit/views/pages/index_spec.rb +0 -60
  536. data/spec/unit/views/pages/layout_spec.rb +0 -59
  537. data/spec/unit/views/pages/show_spec.rb +0 -33
  538. data/spec/unit/views/tabbed_navigation_spec.rb +0 -158
  539. data/tasks/docs.rake +0 -37
  540. data/tasks/parallel_tests.rake +0 -66
  541. data/tasks/test.rake +0 -91
  542. data/tasks/yard.rake +0 -9
@@ -0,0 +1,391 @@
1
+ //= require jquery-ui/widgets/controlgroup
2
+ //= require jquery-ui/widgets/checkboxradio
3
+ //= require jquery-ui/keycode
4
+ //= require jquery-ui/widget
5
+
6
+ /*!
7
+ * jQuery UI Button 1.12.1
8
+ * http://jqueryui.com
9
+ *
10
+ * Copyright jQuery Foundation and other contributors
11
+ * Released under the MIT license.
12
+ * http://jquery.org/license
13
+ */
14
+
15
+ //>>label: Button
16
+ //>>group: Widgets
17
+ //>>description: Enhances a form with themeable buttons.
18
+ //>>docs: http://api.jqueryui.com/button/
19
+ //>>demos: http://jqueryui.com/button/
20
+ //>>css.structure: ../../themes/base/core.css
21
+ //>>css.structure: ../../themes/base/button.css
22
+ //>>css.theme: ../../themes/base/theme.css
23
+
24
+ ( function( factory ) {
25
+ if ( typeof define === "function" && define.amd ) {
26
+
27
+ // AMD. Register as an anonymous module.
28
+ define( [
29
+ "jquery",
30
+
31
+ // These are only for backcompat
32
+ // TODO: Remove after 1.12
33
+ "./controlgroup",
34
+ "./checkboxradio",
35
+
36
+ "../keycode",
37
+ "../widget"
38
+ ], factory );
39
+ } else {
40
+
41
+ // Browser globals
42
+ factory( jQuery );
43
+ }
44
+ }( function( $ ) {
45
+
46
+ $.widget( "ui.button", {
47
+ version: "1.12.1",
48
+ defaultElement: "<button>",
49
+ options: {
50
+ classes: {
51
+ "ui-button": "ui-corner-all"
52
+ },
53
+ disabled: null,
54
+ icon: null,
55
+ iconPosition: "beginning",
56
+ label: null,
57
+ showLabel: true
58
+ },
59
+
60
+ _getCreateOptions: function() {
61
+ var disabled,
62
+
63
+ // This is to support cases like in jQuery Mobile where the base widget does have
64
+ // an implementation of _getCreateOptions
65
+ options = this._super() || {};
66
+
67
+ this.isInput = this.element.is( "input" );
68
+
69
+ disabled = this.element[ 0 ].disabled;
70
+ if ( disabled != null ) {
71
+ options.disabled = disabled;
72
+ }
73
+
74
+ this.originalLabel = this.isInput ? this.element.val() : this.element.html();
75
+ if ( this.originalLabel ) {
76
+ options.label = this.originalLabel;
77
+ }
78
+
79
+ return options;
80
+ },
81
+
82
+ _create: function() {
83
+ if ( !this.option.showLabel & !this.options.icon ) {
84
+ this.options.showLabel = true;
85
+ }
86
+
87
+ // We have to check the option again here even though we did in _getCreateOptions,
88
+ // because null may have been passed on init which would override what was set in
89
+ // _getCreateOptions
90
+ if ( this.options.disabled == null ) {
91
+ this.options.disabled = this.element[ 0 ].disabled || false;
92
+ }
93
+
94
+ this.hasTitle = !!this.element.attr( "title" );
95
+
96
+ // Check to see if the label needs to be set or if its already correct
97
+ if ( this.options.label && this.options.label !== this.originalLabel ) {
98
+ if ( this.isInput ) {
99
+ this.element.val( this.options.label );
100
+ } else {
101
+ this.element.html( this.options.label );
102
+ }
103
+ }
104
+ this._addClass( "ui-button", "ui-widget" );
105
+ this._setOption( "disabled", this.options.disabled );
106
+ this._enhance();
107
+
108
+ if ( this.element.is( "a" ) ) {
109
+ this._on( {
110
+ "keyup": function( event ) {
111
+ if ( event.keyCode === $.ui.keyCode.SPACE ) {
112
+ event.preventDefault();
113
+
114
+ // Support: PhantomJS <= 1.9, IE 8 Only
115
+ // If a native click is available use it so we actually cause navigation
116
+ // otherwise just trigger a click event
117
+ if ( this.element[ 0 ].click ) {
118
+ this.element[ 0 ].click();
119
+ } else {
120
+ this.element.trigger( "click" );
121
+ }
122
+ }
123
+ }
124
+ } );
125
+ }
126
+ },
127
+
128
+ _enhance: function() {
129
+ if ( !this.element.is( "button" ) ) {
130
+ this.element.attr( "role", "button" );
131
+ }
132
+
133
+ if ( this.options.icon ) {
134
+ this._updateIcon( "icon", this.options.icon );
135
+ this._updateTooltip();
136
+ }
137
+ },
138
+
139
+ _updateTooltip: function() {
140
+ this.title = this.element.attr( "title" );
141
+
142
+ if ( !this.options.showLabel && !this.title ) {
143
+ this.element.attr( "title", this.options.label );
144
+ }
145
+ },
146
+
147
+ _updateIcon: function( option, value ) {
148
+ var icon = option !== "iconPosition",
149
+ position = icon ? this.options.iconPosition : value,
150
+ displayBlock = position === "top" || position === "bottom";
151
+
152
+ // Create icon
153
+ if ( !this.icon ) {
154
+ this.icon = $( "<span>" );
155
+
156
+ this._addClass( this.icon, "ui-button-icon", "ui-icon" );
157
+
158
+ if ( !this.options.showLabel ) {
159
+ this._addClass( "ui-button-icon-only" );
160
+ }
161
+ } else if ( icon ) {
162
+
163
+ // If we are updating the icon remove the old icon class
164
+ this._removeClass( this.icon, null, this.options.icon );
165
+ }
166
+
167
+ // If we are updating the icon add the new icon class
168
+ if ( icon ) {
169
+ this._addClass( this.icon, null, value );
170
+ }
171
+
172
+ this._attachIcon( position );
173
+
174
+ // If the icon is on top or bottom we need to add the ui-widget-icon-block class and remove
175
+ // the iconSpace if there is one.
176
+ if ( displayBlock ) {
177
+ this._addClass( this.icon, null, "ui-widget-icon-block" );
178
+ if ( this.iconSpace ) {
179
+ this.iconSpace.remove();
180
+ }
181
+ } else {
182
+
183
+ // Position is beginning or end so remove the ui-widget-icon-block class and add the
184
+ // space if it does not exist
185
+ if ( !this.iconSpace ) {
186
+ this.iconSpace = $( "<span> </span>" );
187
+ this._addClass( this.iconSpace, "ui-button-icon-space" );
188
+ }
189
+ this._removeClass( this.icon, null, "ui-wiget-icon-block" );
190
+ this._attachIconSpace( position );
191
+ }
192
+ },
193
+
194
+ _destroy: function() {
195
+ this.element.removeAttr( "role" );
196
+
197
+ if ( this.icon ) {
198
+ this.icon.remove();
199
+ }
200
+ if ( this.iconSpace ) {
201
+ this.iconSpace.remove();
202
+ }
203
+ if ( !this.hasTitle ) {
204
+ this.element.removeAttr( "title" );
205
+ }
206
+ },
207
+
208
+ _attachIconSpace: function( iconPosition ) {
209
+ this.icon[ /^(?:end|bottom)/.test( iconPosition ) ? "before" : "after" ]( this.iconSpace );
210
+ },
211
+
212
+ _attachIcon: function( iconPosition ) {
213
+ this.element[ /^(?:end|bottom)/.test( iconPosition ) ? "append" : "prepend" ]( this.icon );
214
+ },
215
+
216
+ _setOptions: function( options ) {
217
+ var newShowLabel = options.showLabel === undefined ?
218
+ this.options.showLabel :
219
+ options.showLabel,
220
+ newIcon = options.icon === undefined ? this.options.icon : options.icon;
221
+
222
+ if ( !newShowLabel && !newIcon ) {
223
+ options.showLabel = true;
224
+ }
225
+ this._super( options );
226
+ },
227
+
228
+ _setOption: function( key, value ) {
229
+ if ( key === "icon" ) {
230
+ if ( value ) {
231
+ this._updateIcon( key, value );
232
+ } else if ( this.icon ) {
233
+ this.icon.remove();
234
+ if ( this.iconSpace ) {
235
+ this.iconSpace.remove();
236
+ }
237
+ }
238
+ }
239
+
240
+ if ( key === "iconPosition" ) {
241
+ this._updateIcon( key, value );
242
+ }
243
+
244
+ // Make sure we can't end up with a button that has neither text nor icon
245
+ if ( key === "showLabel" ) {
246
+ this._toggleClass( "ui-button-icon-only", null, !value );
247
+ this._updateTooltip();
248
+ }
249
+
250
+ if ( key === "label" ) {
251
+ if ( this.isInput ) {
252
+ this.element.val( value );
253
+ } else {
254
+
255
+ // If there is an icon, append it, else nothing then append the value
256
+ // this avoids removal of the icon when setting label text
257
+ this.element.html( value );
258
+ if ( this.icon ) {
259
+ this._attachIcon( this.options.iconPosition );
260
+ this._attachIconSpace( this.options.iconPosition );
261
+ }
262
+ }
263
+ }
264
+
265
+ this._super( key, value );
266
+
267
+ if ( key === "disabled" ) {
268
+ this._toggleClass( null, "ui-state-disabled", value );
269
+ this.element[ 0 ].disabled = value;
270
+ if ( value ) {
271
+ this.element.blur();
272
+ }
273
+ }
274
+ },
275
+
276
+ refresh: function() {
277
+
278
+ // Make sure to only check disabled if its an element that supports this otherwise
279
+ // check for the disabled class to determine state
280
+ var isDisabled = this.element.is( "input, button" ) ?
281
+ this.element[ 0 ].disabled : this.element.hasClass( "ui-button-disabled" );
282
+
283
+ if ( isDisabled !== this.options.disabled ) {
284
+ this._setOptions( { disabled: isDisabled } );
285
+ }
286
+
287
+ this._updateTooltip();
288
+ }
289
+ } );
290
+
291
+ // DEPRECATED
292
+ if ( $.uiBackCompat !== false ) {
293
+
294
+ // Text and Icons options
295
+ $.widget( "ui.button", $.ui.button, {
296
+ options: {
297
+ text: true,
298
+ icons: {
299
+ primary: null,
300
+ secondary: null
301
+ }
302
+ },
303
+
304
+ _create: function() {
305
+ if ( this.options.showLabel && !this.options.text ) {
306
+ this.options.showLabel = this.options.text;
307
+ }
308
+ if ( !this.options.showLabel && this.options.text ) {
309
+ this.options.text = this.options.showLabel;
310
+ }
311
+ if ( !this.options.icon && ( this.options.icons.primary ||
312
+ this.options.icons.secondary ) ) {
313
+ if ( this.options.icons.primary ) {
314
+ this.options.icon = this.options.icons.primary;
315
+ } else {
316
+ this.options.icon = this.options.icons.secondary;
317
+ this.options.iconPosition = "end";
318
+ }
319
+ } else if ( this.options.icon ) {
320
+ this.options.icons.primary = this.options.icon;
321
+ }
322
+ this._super();
323
+ },
324
+
325
+ _setOption: function( key, value ) {
326
+ if ( key === "text" ) {
327
+ this._super( "showLabel", value );
328
+ return;
329
+ }
330
+ if ( key === "showLabel" ) {
331
+ this.options.text = value;
332
+ }
333
+ if ( key === "icon" ) {
334
+ this.options.icons.primary = value;
335
+ }
336
+ if ( key === "icons" ) {
337
+ if ( value.primary ) {
338
+ this._super( "icon", value.primary );
339
+ this._super( "iconPosition", "beginning" );
340
+ } else if ( value.secondary ) {
341
+ this._super( "icon", value.secondary );
342
+ this._super( "iconPosition", "end" );
343
+ }
344
+ }
345
+ this._superApply( arguments );
346
+ }
347
+ } );
348
+
349
+ $.fn.button = ( function( orig ) {
350
+ return function() {
351
+ if ( !this.length || ( this.length && this[ 0 ].tagName !== "INPUT" ) ||
352
+ ( this.length && this[ 0 ].tagName === "INPUT" && (
353
+ this.attr( "type" ) !== "checkbox" && this.attr( "type" ) !== "radio"
354
+ ) ) ) {
355
+ return orig.apply( this, arguments );
356
+ }
357
+ if ( !$.ui.checkboxradio ) {
358
+ $.error( "Checkboxradio widget missing" );
359
+ }
360
+ if ( arguments.length === 0 ) {
361
+ return this.checkboxradio( {
362
+ "icon": false
363
+ } );
364
+ }
365
+ return this.checkboxradio.apply( this, arguments );
366
+ };
367
+ } )( $.fn.button );
368
+
369
+ $.fn.buttonset = function() {
370
+ if ( !$.ui.controlgroup ) {
371
+ $.error( "Controlgroup widget missing" );
372
+ }
373
+ if ( arguments[ 0 ] === "option" && arguments[ 1 ] === "items" && arguments[ 2 ] ) {
374
+ return this.controlgroup.apply( this,
375
+ [ arguments[ 0 ], "items.button", arguments[ 2 ] ] );
376
+ }
377
+ if ( arguments[ 0 ] === "option" && arguments[ 1 ] === "items" ) {
378
+ return this.controlgroup.apply( this, [ arguments[ 0 ], "items.button" ] );
379
+ }
380
+ if ( typeof arguments[ 0 ] === "object" && arguments[ 0 ].items ) {
381
+ arguments[ 0 ].items = {
382
+ button: arguments[ 0 ].items
383
+ };
384
+ }
385
+ return this.controlgroup.apply( this, arguments );
386
+ };
387
+ }
388
+
389
+ return $.ui.button;
390
+
391
+ } ) );
@@ -0,0 +1,291 @@
1
+ //= require jquery-ui/escape-selector
2
+ //= require jquery-ui/form-reset-mixin
3
+ //= require jquery-ui/labels
4
+ //= require jquery-ui/widget
5
+
6
+ /*!
7
+ * jQuery UI Checkboxradio 1.12.1
8
+ * http://jqueryui.com
9
+ *
10
+ * Copyright jQuery Foundation and other contributors
11
+ * Released under the MIT license.
12
+ * http://jquery.org/license
13
+ */
14
+
15
+ //>>label: Checkboxradio
16
+ //>>group: Widgets
17
+ //>>description: Enhances a form with multiple themeable checkboxes or radio buttons.
18
+ //>>docs: http://api.jqueryui.com/checkboxradio/
19
+ //>>demos: http://jqueryui.com/checkboxradio/
20
+ //>>css.structure: ../../themes/base/core.css
21
+ //>>css.structure: ../../themes/base/button.css
22
+ //>>css.structure: ../../themes/base/checkboxradio.css
23
+ //>>css.theme: ../../themes/base/theme.css
24
+
25
+ ( function( factory ) {
26
+ if ( typeof define === "function" && define.amd ) {
27
+
28
+ // AMD. Register as an anonymous module.
29
+ define( [
30
+ "jquery",
31
+ "../escape-selector",
32
+ "../form-reset-mixin",
33
+ "../labels",
34
+ "../widget"
35
+ ], factory );
36
+ } else {
37
+
38
+ // Browser globals
39
+ factory( jQuery );
40
+ }
41
+ }( function( $ ) {
42
+
43
+ $.widget( "ui.checkboxradio", [ $.ui.formResetMixin, {
44
+ version: "1.12.1",
45
+ options: {
46
+ disabled: null,
47
+ label: null,
48
+ icon: true,
49
+ classes: {
50
+ "ui-checkboxradio-label": "ui-corner-all",
51
+ "ui-checkboxradio-icon": "ui-corner-all"
52
+ }
53
+ },
54
+
55
+ _getCreateOptions: function() {
56
+ var disabled, labels;
57
+ var that = this;
58
+ var options = this._super() || {};
59
+
60
+ // We read the type here, because it makes more sense to throw a element type error first,
61
+ // rather then the error for lack of a label. Often if its the wrong type, it
62
+ // won't have a label (e.g. calling on a div, btn, etc)
63
+ this._readType();
64
+
65
+ labels = this.element.labels();
66
+
67
+ // If there are multiple labels, use the last one
68
+ this.label = $( labels[ labels.length - 1 ] );
69
+ if ( !this.label.length ) {
70
+ $.error( "No label found for checkboxradio widget" );
71
+ }
72
+
73
+ this.originalLabel = "";
74
+
75
+ // We need to get the label text but this may also need to make sure it does not contain the
76
+ // input itself.
77
+ this.label.contents().not( this.element[ 0 ] ).each( function() {
78
+
79
+ // The label contents could be text, html, or a mix. We concat each element to get a
80
+ // string representation of the label, without the input as part of it.
81
+ that.originalLabel += this.nodeType === 3 ? $( this ).text() : this.outerHTML;
82
+ } );
83
+
84
+ // Set the label option if we found label text
85
+ if ( this.originalLabel ) {
86
+ options.label = this.originalLabel;
87
+ }
88
+
89
+ disabled = this.element[ 0 ].disabled;
90
+ if ( disabled != null ) {
91
+ options.disabled = disabled;
92
+ }
93
+ return options;
94
+ },
95
+
96
+ _create: function() {
97
+ var checked = this.element[ 0 ].checked;
98
+
99
+ this._bindFormResetHandler();
100
+
101
+ if ( this.options.disabled == null ) {
102
+ this.options.disabled = this.element[ 0 ].disabled;
103
+ }
104
+
105
+ this._setOption( "disabled", this.options.disabled );
106
+ this._addClass( "ui-checkboxradio", "ui-helper-hidden-accessible" );
107
+ this._addClass( this.label, "ui-checkboxradio-label", "ui-button ui-widget" );
108
+
109
+ if ( this.type === "radio" ) {
110
+ this._addClass( this.label, "ui-checkboxradio-radio-label" );
111
+ }
112
+
113
+ if ( this.options.label && this.options.label !== this.originalLabel ) {
114
+ this._updateLabel();
115
+ } else if ( this.originalLabel ) {
116
+ this.options.label = this.originalLabel;
117
+ }
118
+
119
+ this._enhance();
120
+
121
+ if ( checked ) {
122
+ this._addClass( this.label, "ui-checkboxradio-checked", "ui-state-active" );
123
+ if ( this.icon ) {
124
+ this._addClass( this.icon, null, "ui-state-hover" );
125
+ }
126
+ }
127
+
128
+ this._on( {
129
+ change: "_toggleClasses",
130
+ focus: function() {
131
+ this._addClass( this.label, null, "ui-state-focus ui-visual-focus" );
132
+ },
133
+ blur: function() {
134
+ this._removeClass( this.label, null, "ui-state-focus ui-visual-focus" );
135
+ }
136
+ } );
137
+ },
138
+
139
+ _readType: function() {
140
+ var nodeName = this.element[ 0 ].nodeName.toLowerCase();
141
+ this.type = this.element[ 0 ].type;
142
+ if ( nodeName !== "input" || !/radio|checkbox/.test( this.type ) ) {
143
+ $.error( "Can't create checkboxradio on element.nodeName=" + nodeName +
144
+ " and element.type=" + this.type );
145
+ }
146
+ },
147
+
148
+ // Support jQuery Mobile enhanced option
149
+ _enhance: function() {
150
+ this._updateIcon( this.element[ 0 ].checked );
151
+ },
152
+
153
+ widget: function() {
154
+ return this.label;
155
+ },
156
+
157
+ _getRadioGroup: function() {
158
+ var group;
159
+ var name = this.element[ 0 ].name;
160
+ var nameSelector = "input[name='" + $.ui.escapeSelector( name ) + "']";
161
+
162
+ if ( !name ) {
163
+ return $( [] );
164
+ }
165
+
166
+ if ( this.form.length ) {
167
+ group = $( this.form[ 0 ].elements ).filter( nameSelector );
168
+ } else {
169
+
170
+ // Not inside a form, check all inputs that also are not inside a form
171
+ group = $( nameSelector ).filter( function() {
172
+ return $( this ).form().length === 0;
173
+ } );
174
+ }
175
+
176
+ return group.not( this.element );
177
+ },
178
+
179
+ _toggleClasses: function() {
180
+ var checked = this.element[ 0 ].checked;
181
+ this._toggleClass( this.label, "ui-checkboxradio-checked", "ui-state-active", checked );
182
+
183
+ if ( this.options.icon && this.type === "checkbox" ) {
184
+ this._toggleClass( this.icon, null, "ui-icon-check ui-state-checked", checked )
185
+ ._toggleClass( this.icon, null, "ui-icon-blank", !checked );
186
+ }
187
+
188
+ if ( this.type === "radio" ) {
189
+ this._getRadioGroup()
190
+ .each( function() {
191
+ var instance = $( this ).checkboxradio( "instance" );
192
+
193
+ if ( instance ) {
194
+ instance._removeClass( instance.label,
195
+ "ui-checkboxradio-checked", "ui-state-active" );
196
+ }
197
+ } );
198
+ }
199
+ },
200
+
201
+ _destroy: function() {
202
+ this._unbindFormResetHandler();
203
+
204
+ if ( this.icon ) {
205
+ this.icon.remove();
206
+ this.iconSpace.remove();
207
+ }
208
+ },
209
+
210
+ _setOption: function( key, value ) {
211
+
212
+ // We don't allow the value to be set to nothing
213
+ if ( key === "label" && !value ) {
214
+ return;
215
+ }
216
+
217
+ this._super( key, value );
218
+
219
+ if ( key === "disabled" ) {
220
+ this._toggleClass( this.label, null, "ui-state-disabled", value );
221
+ this.element[ 0 ].disabled = value;
222
+
223
+ // Don't refresh when setting disabled
224
+ return;
225
+ }
226
+ this.refresh();
227
+ },
228
+
229
+ _updateIcon: function( checked ) {
230
+ var toAdd = "ui-icon ui-icon-background ";
231
+
232
+ if ( this.options.icon ) {
233
+ if ( !this.icon ) {
234
+ this.icon = $( "<span>" );
235
+ this.iconSpace = $( "<span> </span>" );
236
+ this._addClass( this.iconSpace, "ui-checkboxradio-icon-space" );
237
+ }
238
+
239
+ if ( this.type === "checkbox" ) {
240
+ toAdd += checked ? "ui-icon-check ui-state-checked" : "ui-icon-blank";
241
+ this._removeClass( this.icon, null, checked ? "ui-icon-blank" : "ui-icon-check" );
242
+ } else {
243
+ toAdd += "ui-icon-blank";
244
+ }
245
+ this._addClass( this.icon, "ui-checkboxradio-icon", toAdd );
246
+ if ( !checked ) {
247
+ this._removeClass( this.icon, null, "ui-icon-check ui-state-checked" );
248
+ }
249
+ this.icon.prependTo( this.label ).after( this.iconSpace );
250
+ } else if ( this.icon !== undefined ) {
251
+ this.icon.remove();
252
+ this.iconSpace.remove();
253
+ delete this.icon;
254
+ }
255
+ },
256
+
257
+ _updateLabel: function() {
258
+
259
+ // Remove the contents of the label ( minus the icon, icon space, and input )
260
+ var contents = this.label.contents().not( this.element[ 0 ] );
261
+ if ( this.icon ) {
262
+ contents = contents.not( this.icon[ 0 ] );
263
+ }
264
+ if ( this.iconSpace ) {
265
+ contents = contents.not( this.iconSpace[ 0 ] );
266
+ }
267
+ contents.remove();
268
+
269
+ this.label.append( this.options.label );
270
+ },
271
+
272
+ refresh: function() {
273
+ var checked = this.element[ 0 ].checked,
274
+ isDisabled = this.element[ 0 ].disabled;
275
+
276
+ this._updateIcon( checked );
277
+ this._toggleClass( this.label, "ui-checkboxradio-checked", "ui-state-active", checked );
278
+ if ( this.options.label !== null ) {
279
+ this._updateLabel();
280
+ }
281
+
282
+ if ( isDisabled !== this.options.disabled ) {
283
+ this._setOptions( { "disabled": isDisabled } );
284
+ }
285
+ }
286
+
287
+ } ] );
288
+
289
+ return $.ui.checkboxradio;
290
+
291
+ } ) );