activeadmin 2.2.0

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

Potentially problematic release.


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

Files changed (372) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGELOG.md +546 -0
  3. data/CODE_OF_CONDUCT.md +74 -0
  4. data/CONTRIBUTING.md +217 -0
  5. data/LICENSE +20 -0
  6. data/README.md +110 -0
  7. data/app/assets/images/active_admin/nested_menu_arrow.gif +0 -0
  8. data/app/assets/images/active_admin/nested_menu_arrow_dark.gif +0 -0
  9. data/app/assets/images/active_admin/orderable.png +0 -0
  10. data/app/assets/javascripts/active_admin/base.es6 +23 -0
  11. data/app/assets/javascripts/active_admin/ext/jquery-ui.es6 +7 -0
  12. data/app/assets/javascripts/active_admin/ext/jquery.es6 +9 -0
  13. data/app/assets/javascripts/active_admin/initializers/datepicker.es6 +16 -0
  14. data/app/assets/javascripts/active_admin/initializers/filters.es6 +45 -0
  15. data/app/assets/javascripts/active_admin/initializers/tabs.es6 +6 -0
  16. data/app/assets/javascripts/active_admin/lib/active_admin.es6 +41 -0
  17. data/app/assets/javascripts/active_admin/lib/batch_actions.es6 +55 -0
  18. data/app/assets/javascripts/active_admin/lib/checkbox-toggler.es6 +49 -0
  19. data/app/assets/javascripts/active_admin/lib/dropdown-menu.es6 +123 -0
  20. data/app/assets/javascripts/active_admin/lib/has_many.es6 +95 -0
  21. data/app/assets/javascripts/active_admin/lib/modal_dialog.es6 +61 -0
  22. data/app/assets/javascripts/active_admin/lib/per_page.es6 +47 -0
  23. data/app/assets/javascripts/active_admin/lib/table-checkbox-toggler.es6 +36 -0
  24. data/app/assets/stylesheets/active_admin/_base.scss +41 -0
  25. data/app/assets/stylesheets/active_admin/_forms.scss +326 -0
  26. data/app/assets/stylesheets/active_admin/_header.scss +156 -0
  27. data/app/assets/stylesheets/active_admin/_mixins.scss +1 -0
  28. data/app/assets/stylesheets/active_admin/_typography.scss +100 -0
  29. data/app/assets/stylesheets/active_admin/components/_batch_actions.scss +6 -0
  30. data/app/assets/stylesheets/active_admin/components/_blank_slates.scss +30 -0
  31. data/app/assets/stylesheets/active_admin/components/_breadcrumbs.scss +20 -0
  32. data/app/assets/stylesheets/active_admin/components/_buttons.scss +6 -0
  33. data/app/assets/stylesheets/active_admin/components/_columns.scss +3 -0
  34. data/app/assets/stylesheets/active_admin/components/_comments.scss +41 -0
  35. data/app/assets/stylesheets/active_admin/components/_date_picker.scss +149 -0
  36. data/app/assets/stylesheets/active_admin/components/_dropdown_menu.scss +152 -0
  37. data/app/assets/stylesheets/active_admin/components/_flash_messages.scss +37 -0
  38. data/app/assets/stylesheets/active_admin/components/_grid.scss +9 -0
  39. data/app/assets/stylesheets/active_admin/components/_index_list.scss +12 -0
  40. data/app/assets/stylesheets/active_admin/components/_links.scss +5 -0
  41. data/app/assets/stylesheets/active_admin/components/_modal_dialog.scss +34 -0
  42. data/app/assets/stylesheets/active_admin/components/_pagination.scss +55 -0
  43. data/app/assets/stylesheets/active_admin/components/_panels.scss +6 -0
  44. data/app/assets/stylesheets/active_admin/components/_scopes.scss +13 -0
  45. data/app/assets/stylesheets/active_admin/components/_status_tags.scss +12 -0
  46. data/app/assets/stylesheets/active_admin/components/_table_tools.scss +67 -0
  47. data/app/assets/stylesheets/active_admin/components/_tables.scss +113 -0
  48. data/app/assets/stylesheets/active_admin/components/_tabs.scss +65 -0
  49. data/app/assets/stylesheets/active_admin/components/_unsupported_browser.scss +16 -0
  50. data/app/assets/stylesheets/active_admin/mixins/_all.scss +8 -0
  51. data/app/assets/stylesheets/active_admin/mixins/_buttons.scss +65 -0
  52. data/app/assets/stylesheets/active_admin/mixins/_gradients.scss +28 -0
  53. data/app/assets/stylesheets/active_admin/mixins/_rounded.scss +22 -0
  54. data/app/assets/stylesheets/active_admin/mixins/_sections.scss +41 -0
  55. data/app/assets/stylesheets/active_admin/mixins/_shadows.scss +15 -0
  56. data/app/assets/stylesheets/active_admin/mixins/_typography.scss +3 -0
  57. data/app/assets/stylesheets/active_admin/mixins/_utilities.scss +17 -0
  58. data/app/assets/stylesheets/active_admin/mixins/_variables.scss +34 -0
  59. data/app/assets/stylesheets/active_admin/pages/_logged_out.scss +44 -0
  60. data/app/assets/stylesheets/active_admin/print.scss +287 -0
  61. data/app/assets/stylesheets/active_admin/structure/_footer.scss +14 -0
  62. data/app/assets/stylesheets/active_admin/structure/_main_structure.scss +29 -0
  63. data/app/assets/stylesheets/active_admin/structure/_title_bar.scss +41 -0
  64. data/app/views/active_admin/devise/confirmations/new.html.erb +15 -0
  65. data/app/views/active_admin/devise/mailer/reset_password_instructions.html.erb +8 -0
  66. data/app/views/active_admin/devise/mailer/unlock_instructions.html.erb +7 -0
  67. data/app/views/active_admin/devise/passwords/edit.html.erb +18 -0
  68. data/app/views/active_admin/devise/passwords/new.html.erb +15 -0
  69. data/app/views/active_admin/devise/registrations/new.html.erb +21 -0
  70. data/app/views/active_admin/devise/sessions/new.html.erb +20 -0
  71. data/app/views/active_admin/devise/shared/_error_messages.html.erb +15 -0
  72. data/app/views/active_admin/devise/shared/_links.erb +33 -0
  73. data/app/views/active_admin/devise/unlocks/new.html.erb +15 -0
  74. data/app/views/active_admin/page/index.html.arb +1 -0
  75. data/app/views/active_admin/resource/edit.html.arb +1 -0
  76. data/app/views/active_admin/resource/index.html.arb +1 -0
  77. data/app/views/active_admin/resource/new.html.arb +1 -0
  78. data/app/views/active_admin/resource/show.html.arb +1 -0
  79. data/app/views/kaminari/active_admin/_first_page.html.erb +11 -0
  80. data/app/views/kaminari/active_admin/_gap.html.erb +8 -0
  81. data/app/views/kaminari/active_admin/_last_page.html.erb +11 -0
  82. data/app/views/kaminari/active_admin/_next_page.html.erb +11 -0
  83. data/app/views/kaminari/active_admin/_page.html.erb +12 -0
  84. data/app/views/kaminari/active_admin/_paginator.html.erb +25 -0
  85. data/app/views/kaminari/active_admin/_prev_page.html.erb +11 -0
  86. data/app/views/layouts/active_admin.html.arb +1 -0
  87. data/app/views/layouts/active_admin_logged_out.html.erb +39 -0
  88. data/config/locales/ar.yml +135 -0
  89. data/config/locales/bg.yml +119 -0
  90. data/config/locales/bs.yml +121 -0
  91. data/config/locales/ca.yml +106 -0
  92. data/config/locales/cs.yml +109 -0
  93. data/config/locales/da.yml +137 -0
  94. data/config/locales/de-CH.yml +101 -0
  95. data/config/locales/de.yml +144 -0
  96. data/config/locales/el.yml +126 -0
  97. data/config/locales/en-CA.yml +139 -0
  98. data/config/locales/en-GB.yml +139 -0
  99. data/config/locales/en.yml +162 -0
  100. data/config/locales/eo.yml +145 -0
  101. data/config/locales/es-MX.yml +96 -0
  102. data/config/locales/es.yml +162 -0
  103. data/config/locales/fa.yml +119 -0
  104. data/config/locales/fi.yml +112 -0
  105. data/config/locales/fr.yml +141 -0
  106. data/config/locales/he.yml +141 -0
  107. data/config/locales/hr.yml +123 -0
  108. data/config/locales/hu.yml +102 -0
  109. data/config/locales/id.yml +135 -0
  110. data/config/locales/it.yml +144 -0
  111. data/config/locales/ja.yml +141 -0
  112. data/config/locales/ko.yml +120 -0
  113. data/config/locales/lt.yml +142 -0
  114. data/config/locales/lv.yml +92 -0
  115. data/config/locales/mk.yml +134 -0
  116. data/config/locales/nb.yml +130 -0
  117. data/config/locales/nl.yml +144 -0
  118. data/config/locales/pl.yml +168 -0
  119. data/config/locales/pt-BR.yml +143 -0
  120. data/config/locales/pt-PT.yml +92 -0
  121. data/config/locales/ro.yml +96 -0
  122. data/config/locales/ru.yml +141 -0
  123. data/config/locales/sk.yml +109 -0
  124. data/config/locales/sv-SE.yml +135 -0
  125. data/config/locales/tr.yml +144 -0
  126. data/config/locales/uk.yml +138 -0
  127. data/config/locales/vi.yml +134 -0
  128. data/config/locales/zh-CN.yml +143 -0
  129. data/config/locales/zh-TW.yml +135 -0
  130. data/docs/.gitignore +1 -0
  131. data/docs/0-installation.md +118 -0
  132. data/docs/1-general-configuration.md +204 -0
  133. data/docs/10-custom-pages.md +150 -0
  134. data/docs/11-decorators.md +59 -0
  135. data/docs/12-arbre-components.md +214 -0
  136. data/docs/13-authorization-adapter.md +285 -0
  137. data/docs/14-gotchas.md +138 -0
  138. data/docs/2-resource-customization.md +466 -0
  139. data/docs/3-index-pages.md +328 -0
  140. data/docs/3-index-pages/custom-index.md +35 -0
  141. data/docs/3-index-pages/index-as-block.md +19 -0
  142. data/docs/3-index-pages/index-as-blog.md +69 -0
  143. data/docs/3-index-pages/index-as-grid.md +27 -0
  144. data/docs/3-index-pages/index-as-table.md +227 -0
  145. data/docs/4-csv-format.md +74 -0
  146. data/docs/5-forms.md +232 -0
  147. data/docs/6-show-pages.md +81 -0
  148. data/docs/7-sidebars.md +75 -0
  149. data/docs/8-custom-actions.md +177 -0
  150. data/docs/9-batch-actions.md +237 -0
  151. data/docs/CNAME +1 -0
  152. data/docs/Gemfile +4 -0
  153. data/docs/Gemfile.lock +249 -0
  154. data/docs/README.md +24 -0
  155. data/docs/_config.yml +2 -0
  156. data/docs/_includes/footer.html +8 -0
  157. data/docs/_includes/google-analytics.html +16 -0
  158. data/docs/_includes/head.html +7 -0
  159. data/docs/_includes/toc.html +98 -0
  160. data/docs/_includes/top-menu.html +17 -0
  161. data/docs/_layouts/default.html +21 -0
  162. data/docs/documentation.md +60 -0
  163. data/docs/images/activeadmin.png +0 -0
  164. data/docs/images/code-header.png +0 -0
  165. data/docs/images/divider.png +0 -0
  166. data/docs/images/features.png +0 -0
  167. data/docs/images/tidelift.svg +14 -0
  168. data/docs/index.html +125 -0
  169. data/docs/stylesheets/main.css +1176 -0
  170. data/lib/active_admin.rb +134 -0
  171. data/lib/active_admin/abstract_view_factory.rb +47 -0
  172. data/lib/active_admin/application.rb +234 -0
  173. data/lib/active_admin/application_settings.rb +42 -0
  174. data/lib/active_admin/asset_registration.rb +29 -0
  175. data/lib/active_admin/authorization_adapter.rb +129 -0
  176. data/lib/active_admin/base_controller.rb +81 -0
  177. data/lib/active_admin/base_controller/authorization.rb +127 -0
  178. data/lib/active_admin/base_controller/menu.rb +34 -0
  179. data/lib/active_admin/batch_actions.rb +16 -0
  180. data/lib/active_admin/batch_actions/controller.rb +40 -0
  181. data/lib/active_admin/batch_actions/resource_extension.rb +155 -0
  182. data/lib/active_admin/batch_actions/views/batch_action_form.rb +38 -0
  183. data/lib/active_admin/batch_actions/views/batch_action_selector.rb +58 -0
  184. data/lib/active_admin/batch_actions/views/selection_cells.rb +38 -0
  185. data/lib/active_admin/callbacks.rb +88 -0
  186. data/lib/active_admin/cancan_adapter.rb +36 -0
  187. data/lib/active_admin/component.rb +5 -0
  188. data/lib/active_admin/controller_action.rb +13 -0
  189. data/lib/active_admin/csv_builder.rb +133 -0
  190. data/lib/active_admin/dependency.rb +100 -0
  191. data/lib/active_admin/deprecation.rb +10 -0
  192. data/lib/active_admin/devise.rb +80 -0
  193. data/lib/active_admin/dsl.rb +160 -0
  194. data/lib/active_admin/dynamic_setting.rb +38 -0
  195. data/lib/active_admin/dynamic_settings_node.rb +28 -0
  196. data/lib/active_admin/engine.rb +21 -0
  197. data/lib/active_admin/error.rb +64 -0
  198. data/lib/active_admin/filters.rb +11 -0
  199. data/lib/active_admin/filters/active.rb +29 -0
  200. data/lib/active_admin/filters/active_filter.rb +124 -0
  201. data/lib/active_admin/filters/active_sidebar.rb +54 -0
  202. data/lib/active_admin/filters/dsl.rb +21 -0
  203. data/lib/active_admin/filters/forms.rb +85 -0
  204. data/lib/active_admin/filters/formtastic_addons.rb +79 -0
  205. data/lib/active_admin/filters/resource_extension.rb +155 -0
  206. data/lib/active_admin/form_builder.rb +182 -0
  207. data/lib/active_admin/generators/boilerplate.rb +45 -0
  208. data/lib/active_admin/helpers/collection.rb +19 -0
  209. data/lib/active_admin/helpers/i18n.rb +7 -0
  210. data/lib/active_admin/helpers/optional_display.rb +38 -0
  211. data/lib/active_admin/helpers/routes/url_helpers.rb +15 -0
  212. data/lib/active_admin/helpers/scope_chain.rb +24 -0
  213. data/lib/active_admin/inputs.rb +21 -0
  214. data/lib/active_admin/inputs/datepicker_input.rb +27 -0
  215. data/lib/active_admin/inputs/filters/base.rb +44 -0
  216. data/lib/active_admin/inputs/filters/base/search_method_select.rb +75 -0
  217. data/lib/active_admin/inputs/filters/boolean_input.rb +24 -0
  218. data/lib/active_admin/inputs/filters/check_boxes_input.rb +50 -0
  219. data/lib/active_admin/inputs/filters/date_picker_input.rb +13 -0
  220. data/lib/active_admin/inputs/filters/date_range_input.rb +49 -0
  221. data/lib/active_admin/inputs/filters/numeric_input.rb +12 -0
  222. data/lib/active_admin/inputs/filters/select_input.rb +58 -0
  223. data/lib/active_admin/inputs/filters/string_input.rb +26 -0
  224. data/lib/active_admin/inputs/filters/text_input.rb +25 -0
  225. data/lib/active_admin/localizers.rb +11 -0
  226. data/lib/active_admin/localizers/resource_localizer.rb +35 -0
  227. data/lib/active_admin/menu.rb +102 -0
  228. data/lib/active_admin/menu_collection.rb +91 -0
  229. data/lib/active_admin/menu_item.rb +69 -0
  230. data/lib/active_admin/namespace.rb +266 -0
  231. data/lib/active_admin/namespace_settings.rb +110 -0
  232. data/lib/active_admin/order_clause.rb +48 -0
  233. data/lib/active_admin/orm/active_record.rb +5 -0
  234. data/lib/active_admin/orm/active_record/comments.rb +101 -0
  235. data/lib/active_admin/orm/active_record/comments/comment.rb +31 -0
  236. data/lib/active_admin/orm/active_record/comments/namespace_helper.rb +14 -0
  237. data/lib/active_admin/orm/active_record/comments/resource_helper.rb +17 -0
  238. data/lib/active_admin/orm/active_record/comments/show_page_helper.rb +23 -0
  239. data/lib/active_admin/orm/active_record/comments/views.rb +2 -0
  240. data/lib/active_admin/orm/active_record/comments/views/active_admin_comments.rb +100 -0
  241. data/lib/active_admin/orm/mongoid.rb +1 -0
  242. data/lib/active_admin/orm/mongoid/.gitkeep +0 -0
  243. data/lib/active_admin/page.rb +111 -0
  244. data/lib/active_admin/page_controller.rb +29 -0
  245. data/lib/active_admin/page_dsl.rb +32 -0
  246. data/lib/active_admin/page_presenter.rb +33 -0
  247. data/lib/active_admin/pundit_adapter.rb +81 -0
  248. data/lib/active_admin/resource.rb +207 -0
  249. data/lib/active_admin/resource/action_items.rb +120 -0
  250. data/lib/active_admin/resource/attributes.rb +47 -0
  251. data/lib/active_admin/resource/belongs_to.rb +50 -0
  252. data/lib/active_admin/resource/controllers.rb +19 -0
  253. data/lib/active_admin/resource/includes.rb +12 -0
  254. data/lib/active_admin/resource/menu.rb +67 -0
  255. data/lib/active_admin/resource/naming.rb +62 -0
  256. data/lib/active_admin/resource/ordering.rb +11 -0
  257. data/lib/active_admin/resource/page_presenters.rb +82 -0
  258. data/lib/active_admin/resource/pagination.rb +23 -0
  259. data/lib/active_admin/resource/routes.rb +139 -0
  260. data/lib/active_admin/resource/scope_to.rb +74 -0
  261. data/lib/active_admin/resource/scopes.rb +52 -0
  262. data/lib/active_admin/resource/sidebars.rb +28 -0
  263. data/lib/active_admin/resource_collection.rb +72 -0
  264. data/lib/active_admin/resource_controller.rb +64 -0
  265. data/lib/active_admin/resource_controller/action_builder.rb +31 -0
  266. data/lib/active_admin/resource_controller/data_access.rb +322 -0
  267. data/lib/active_admin/resource_controller/decorators.rb +102 -0
  268. data/lib/active_admin/resource_controller/resource_class_methods.rb +26 -0
  269. data/lib/active_admin/resource_controller/scoping.rb +31 -0
  270. data/lib/active_admin/resource_controller/sidebars.rb +18 -0
  271. data/lib/active_admin/resource_controller/streaming.rb +43 -0
  272. data/lib/active_admin/resource_dsl.rb +224 -0
  273. data/lib/active_admin/router.rb +114 -0
  274. data/lib/active_admin/scope.rb +64 -0
  275. data/lib/active_admin/settings_node.rb +19 -0
  276. data/lib/active_admin/sidebar_section.rb +39 -0
  277. data/lib/active_admin/version.rb +3 -0
  278. data/lib/active_admin/view_factory.rb +27 -0
  279. data/lib/active_admin/view_helpers.rb +20 -0
  280. data/lib/active_admin/view_helpers/active_admin_application_helper.rb +12 -0
  281. data/lib/active_admin/view_helpers/auto_link_helper.rb +45 -0
  282. data/lib/active_admin/view_helpers/breadcrumb_helper.rb +33 -0
  283. data/lib/active_admin/view_helpers/display_helper.rb +104 -0
  284. data/lib/active_admin/view_helpers/download_format_links_helper.rb +59 -0
  285. data/lib/active_admin/view_helpers/fields_for.rb +50 -0
  286. data/lib/active_admin/view_helpers/flash_helper.rb +14 -0
  287. data/lib/active_admin/view_helpers/form_helper.rb +20 -0
  288. data/lib/active_admin/view_helpers/method_or_proc_helper.rb +100 -0
  289. data/lib/active_admin/view_helpers/scope_name_helper.rb +16 -0
  290. data/lib/active_admin/view_helpers/sidebar_helper.rb +15 -0
  291. data/lib/active_admin/view_helpers/title_helper.rb +11 -0
  292. data/lib/active_admin/view_helpers/view_factory_helper.rb +11 -0
  293. data/lib/active_admin/views.rb +8 -0
  294. data/lib/active_admin/views/action_items.rb +17 -0
  295. data/lib/active_admin/views/components/active_admin_form.rb +155 -0
  296. data/lib/active_admin/views/components/attributes_table.rb +94 -0
  297. data/lib/active_admin/views/components/blank_slate.rb +17 -0
  298. data/lib/active_admin/views/components/columns.rb +161 -0
  299. data/lib/active_admin/views/components/dropdown_menu.rb +71 -0
  300. data/lib/active_admin/views/components/index_list.rb +69 -0
  301. data/lib/active_admin/views/components/menu.rb +32 -0
  302. data/lib/active_admin/views/components/menu_item.rb +58 -0
  303. data/lib/active_admin/views/components/paginated_collection.rb +159 -0
  304. data/lib/active_admin/views/components/panel.rb +38 -0
  305. data/lib/active_admin/views/components/scopes.rb +72 -0
  306. data/lib/active_admin/views/components/sidebar.rb +13 -0
  307. data/lib/active_admin/views/components/sidebar_section.rb +34 -0
  308. data/lib/active_admin/views/components/site_title.rb +54 -0
  309. data/lib/active_admin/views/components/status_tag.rb +75 -0
  310. data/lib/active_admin/views/components/table_for.rb +209 -0
  311. data/lib/active_admin/views/components/tabs.rb +40 -0
  312. data/lib/active_admin/views/components/unsupported_browser.rb +11 -0
  313. data/lib/active_admin/views/footer.rb +30 -0
  314. data/lib/active_admin/views/header.rb +19 -0
  315. data/lib/active_admin/views/index_as_block.rb +36 -0
  316. data/lib/active_admin/views/index_as_blog.rb +155 -0
  317. data/lib/active_admin/views/index_as_grid.rb +80 -0
  318. data/lib/active_admin/views/index_as_table.rb +392 -0
  319. data/lib/active_admin/views/pages/base.rb +126 -0
  320. data/lib/active_admin/views/pages/form.rb +64 -0
  321. data/lib/active_admin/views/pages/index.rb +163 -0
  322. data/lib/active_admin/views/pages/layout.rb +26 -0
  323. data/lib/active_admin/views/pages/page.rb +30 -0
  324. data/lib/active_admin/views/pages/show.rb +65 -0
  325. data/lib/active_admin/views/tabbed_navigation.rb +11 -0
  326. data/lib/active_admin/views/title_bar.rb +55 -0
  327. data/lib/activeadmin.rb +1 -0
  328. data/lib/generators/active_admin/assets/assets_generator.rb +14 -0
  329. data/lib/generators/active_admin/assets/templates/active_admin.js +1 -0
  330. data/lib/generators/active_admin/assets/templates/active_admin.scss +17 -0
  331. data/lib/generators/active_admin/devise/devise_generator.rb +68 -0
  332. data/lib/generators/active_admin/install/install_generator.rb +49 -0
  333. data/lib/generators/active_admin/install/templates/active_admin.rb.erb +315 -0
  334. data/lib/generators/active_admin/install/templates/admin_users.rb.erb +28 -0
  335. data/lib/generators/active_admin/install/templates/dashboard.rb +32 -0
  336. data/lib/generators/active_admin/install/templates/migrations/create_active_admin_comments.rb.erb +16 -0
  337. data/lib/generators/active_admin/page/USAGE +8 -0
  338. data/lib/generators/active_admin/page/page_generator.rb +12 -0
  339. data/lib/generators/active_admin/page/templates/page.rb +5 -0
  340. data/lib/generators/active_admin/resource/resource_generator.rb +20 -0
  341. data/lib/generators/active_admin/resource/templates/admin.rb.erb +44 -0
  342. data/lib/ransack_ext.rb +20 -0
  343. data/vendor/assets/javascripts/jquery-ui/data.js +41 -0
  344. data/vendor/assets/javascripts/jquery-ui/disable-selection.js +48 -0
  345. data/vendor/assets/javascripts/jquery-ui/escape-selector.js +23 -0
  346. data/vendor/assets/javascripts/jquery-ui/focusable.js +86 -0
  347. data/vendor/assets/javascripts/jquery-ui/form-reset-mixin.js +80 -0
  348. data/vendor/assets/javascripts/jquery-ui/form.js +22 -0
  349. data/vendor/assets/javascripts/jquery-ui/ie.js +17 -0
  350. data/vendor/assets/javascripts/jquery-ui/keycode.js +47 -0
  351. data/vendor/assets/javascripts/jquery-ui/labels.js +65 -0
  352. data/vendor/assets/javascripts/jquery-ui/plugin.js +46 -0
  353. data/vendor/assets/javascripts/jquery-ui/position.js +500 -0
  354. data/vendor/assets/javascripts/jquery-ui/safe-active-element.js +42 -0
  355. data/vendor/assets/javascripts/jquery-ui/safe-blur.js +23 -0
  356. data/vendor/assets/javascripts/jquery-ui/scroll-parent.js +47 -0
  357. data/vendor/assets/javascripts/jquery-ui/tabbable.js +38 -0
  358. data/vendor/assets/javascripts/jquery-ui/unique-id.js +51 -0
  359. data/vendor/assets/javascripts/jquery-ui/version.js +17 -0
  360. data/vendor/assets/javascripts/jquery-ui/widget.js +735 -0
  361. data/vendor/assets/javascripts/jquery-ui/widgets/button.js +391 -0
  362. data/vendor/assets/javascripts/jquery-ui/widgets/checkboxradio.js +291 -0
  363. data/vendor/assets/javascripts/jquery-ui/widgets/controlgroup.js +300 -0
  364. data/vendor/assets/javascripts/jquery-ui/widgets/datepicker.js +2123 -0
  365. data/vendor/assets/javascripts/jquery-ui/widgets/dialog.js +954 -0
  366. data/vendor/assets/javascripts/jquery-ui/widgets/draggable.js +1259 -0
  367. data/vendor/assets/javascripts/jquery-ui/widgets/mouse.js +230 -0
  368. data/vendor/assets/javascripts/jquery-ui/widgets/resizable.js +1207 -0
  369. data/vendor/assets/javascripts/jquery-ui/widgets/sortable.js +1561 -0
  370. data/vendor/assets/javascripts/jquery-ui/widgets/tabs.js +931 -0
  371. data/vendor/assets/stylesheets/active_admin/_normalize.scss +447 -0
  372. metadata +616 -0
@@ -0,0 +1,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
+ } ) );