activeadmin 3.2.1 → 3.2.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +26 -0
  3. data/README.md +2 -2
  4. data/app/assets/stylesheets/active_admin/_forms.scss +1 -2
  5. data/app/assets/stylesheets/active_admin/components/_comments.scss +1 -1
  6. data/app/assets/stylesheets/active_admin/components/_dropdown_menu.scss +7 -4
  7. data/app/assets/stylesheets/active_admin/components/_pagination.scss +5 -2
  8. data/app/assets/stylesheets/active_admin/components/_table_tools.scss +9 -6
  9. data/app/assets/stylesheets/active_admin/components/_tabs.scss +10 -7
  10. data/app/assets/stylesheets/active_admin/mixins/_buttons.scss +2 -2
  11. data/app/assets/stylesheets/active_admin/pages/_logged_out.scss +1 -1
  12. data/app/assets/stylesheets/active_admin/structure/_footer.scss +1 -1
  13. data/app/assets/stylesheets/active_admin/structure/_title_bar.scss +6 -3
  14. data/lib/active_admin/pundit_adapter.rb +1 -1
  15. data/lib/active_admin/resource/attributes.rb +8 -1
  16. data/lib/active_admin/version.rb +1 -1
  17. data/lib/active_admin/views/components/active_admin_form.rb +1 -1
  18. data/vendor/assets/javascripts/jquery-ui/data.js +12 -8
  19. data/vendor/assets/javascripts/jquery-ui/disable-selection.js +10 -7
  20. data/vendor/assets/javascripts/jquery-ui/focusable.js +12 -9
  21. data/vendor/assets/javascripts/jquery-ui/form-reset-mixin.js +60 -57
  22. data/vendor/assets/javascripts/jquery-ui/form.js +15 -12
  23. data/vendor/assets/javascripts/jquery-ui/ie.js +5 -2
  24. data/vendor/assets/javascripts/jquery-ui/keycode.js +11 -7
  25. data/vendor/assets/javascripts/jquery-ui/labels.js +46 -40
  26. data/vendor/assets/javascripts/jquery-ui/plugin.js +5 -2
  27. data/vendor/assets/javascripts/jquery-ui/position.js +30 -17
  28. data/vendor/assets/javascripts/jquery-ui/safe-active-element.js +6 -2
  29. data/vendor/assets/javascripts/jquery-ui/safe-blur.js +6 -2
  30. data/vendor/assets/javascripts/jquery-ui/scroll-parent.js +10 -7
  31. data/vendor/assets/javascripts/jquery-ui/tabbable.js +11 -8
  32. data/vendor/assets/javascripts/jquery-ui/unique-id.js +10 -7
  33. data/vendor/assets/javascripts/jquery-ui/version.js +6 -3
  34. data/vendor/assets/javascripts/jquery-ui/widget.js +53 -30
  35. data/vendor/assets/javascripts/jquery-ui/widgets/button.js +87 -24
  36. data/vendor/assets/javascripts/jquery-ui/widgets/checkboxradio.js +276 -273
  37. data/vendor/assets/javascripts/jquery-ui/widgets/controlgroup.js +15 -11
  38. data/vendor/assets/javascripts/jquery-ui/widgets/datepicker.js +182 -62
  39. data/vendor/assets/javascripts/jquery-ui/widgets/dialog.js +53 -36
  40. data/vendor/assets/javascripts/jquery-ui/widgets/draggable.js +28 -19
  41. data/vendor/assets/javascripts/jquery-ui/widgets/mouse.js +22 -11
  42. data/vendor/assets/javascripts/jquery-ui/widgets/resizable.js +47 -26
  43. data/vendor/assets/javascripts/jquery-ui/widgets/sortable.js +186 -125
  44. data/vendor/assets/javascripts/jquery-ui/widgets/tabs.js +20 -20
  45. metadata +3 -4
  46. data/vendor/assets/javascripts/jquery-ui/escape-selector.js +0 -23
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ff095f14bad831f14bf12c3da9123bae3311d3c94815a73ef3b8ab67d1ca985a
4
- data.tar.gz: 1adb7fa85d65339b74b8a0c1ef45c6ba9be9031a743e144d0edf452064e31083
3
+ metadata.gz: cd51d7cc81eac3cbb01358076ca98368ccd5879f96dd9dfaed3f4e6b5c511648
4
+ data.tar.gz: 95913536dfd3ccf746a0848545b81685ead621cd2536776ede879a9b02196058
5
5
  SHA512:
6
- metadata.gz: 54c3193a35539aeb1c6e094cdd7e03b335168116db76a8ab07eb5991de70cba0931d400840815014ee96bad801723fa628962924d3314e3aa855adebaa3d256d
7
- data.tar.gz: 2f51a5be0b992925a0b8a77f62e68812ae19ea3d5666f2df514bbbf4b9a6ccb1c09639853878a8e02e4b9b59077f18ad3041642b6abc5ad8e39f0eec359d0db3
6
+ metadata.gz: 0b296e6597a76172815063ca7b63ba359308b9a13c26874b6ea6b746dbd25bb8d6929c4da2f1b8682dfbd998cc7a752c73d2eca70b356fdfad8362294273aac9
7
+ data.tar.gz: ac965d5a5b2308a064e0e47816c1739f8482570ce926feb72fcf1031b12ac1e738719571faae48d03128c1d8af790e74e47c04e7f62484e791cd654749373417
data/CHANGELOG.md CHANGED
@@ -2,6 +2,27 @@
2
2
 
3
3
  ## Unreleased
4
4
 
5
+ ## 3.2.3 [☰](https://github.com/activeadmin/activeadmin/compare/v3.2.2..v3.2.3)
6
+
7
+ ### Enhancements
8
+
9
+ * Backport better implementation of counter-cache-column check [#8412] by [@plashchynski]
10
+
11
+ ### Bug Fixes
12
+
13
+ * Remove deprecation warnings when building with dart sass >= 1.77.7 [#8405] by [@mgrunberg]
14
+
15
+ ## 3.2.2 [☰](https://github.com/activeadmin/activeadmin/compare/v3.2.1..v3.2.2)
16
+
17
+ ### Security Fixes
18
+
19
+ * Backport Fix potential XSS issue when rendering form legends [#8349] by
20
+ [@deivid-rodriguez]
21
+
22
+ ### Enhancements
23
+
24
+ * Update vendored jQuery UI to 1.13.3 [#8329] by [@tagliala]
25
+
5
26
  ## 3.2.1 [☰](https://github.com/activeadmin/activeadmin/compare/v3.2.0..v3.2.1)
6
27
 
7
28
  ### Enhancements
@@ -907,6 +928,10 @@ Please check [0-6-stable] for previous changes.
907
928
  [#8167]: https://github.com/activeadmin/activeadmin/pull/8167
908
929
  [#8310]: https://github.com/activeadmin/activeadmin/pull/8310
909
930
  [#8311]: https://github.com/activeadmin/activeadmin/pull/8311
931
+ [#8329]: https://github.com/activeadmin/activeadmin/pull/8329
932
+ [#8349]: https://github.com/activeadmin/activeadmin/pull/8349
933
+ [#8405]: https://github.com/activeadmin/activeadmin/pull/8405
934
+ [#8412]: https://github.com/activeadmin/activeadmin/pull/8412
910
935
 
911
936
  [@1000ship]: https://github.com/1000ship
912
937
  [@5t111111]: https://github.com/5t111111
@@ -1001,6 +1026,7 @@ Please check [0-6-stable] for previous changes.
1001
1026
  [@orkhan]: https://github.com/orkhan
1002
1027
  [@panasyuk]: https://github.com/panasyuk
1003
1028
  [@PChambino]: https://github.com/PChambino
1029
+ [@plashchynski]: https://github.com/plashchynski
1004
1030
  [@potatosalad]: https://github.com/potatosalad
1005
1031
  [@pranas]: https://github.com/pranas
1006
1032
  [@ray-curran]: https://github.com/ray-curran
data/README.md CHANGED
@@ -85,8 +85,8 @@ Thanks to [Tidelift][tidelift] and all our Tidelift subscribers.
85
85
  Thanks to [Open Collective][opencollective contributors] and all our Open Collective contributors.
86
86
 
87
87
  [Arbre]: https://github.com/activeadmin/arbre
88
- [Devise]: https://github.com/plataformatec/devise
89
- [Formtastic]: https://github.com/justinfrench/formtastic
88
+ [Devise]: https://github.com/heartcombo/devise
89
+ [Formtastic]: https://github.com/formtastic/formtastic
90
90
  [Inherited Resources]: https://github.com/activeadmin/inherited_resources
91
91
  [Kaminari]: https://github.com/kaminari/kaminari
92
92
  [Ransack]: https://github.com/activerecord-hackery/ransack
@@ -220,9 +220,8 @@ form {
220
220
  /* Buttons */
221
221
 
222
222
  input[type=submit], input[type=button], button {
223
- @include dark-button;
224
223
  cursor: pointer;
225
-
224
+ @include dark-button;
226
225
  }
227
226
 
228
227
  .buttons, .actions {
@@ -2,10 +2,10 @@
2
2
  .comments {
3
3
 
4
4
  .active_admin_comment {
5
- @include clearfix;
6
5
  margin-top: 10px;
7
6
  margin-bottom: 20px;
8
7
  max-width: 700px;
8
+ @include clearfix;
9
9
 
10
10
  .active_admin_comment_meta {
11
11
  width: 130px;
@@ -3,9 +3,12 @@
3
3
 
4
4
  .dropdown_menu_button {
5
5
  @include light-button;
6
- position: relative;
7
- padding-right: 22px !important;
8
- cursor: pointer;
6
+
7
+ & {
8
+ position: relative;
9
+ padding-right: 22px !important;
10
+ cursor: pointer;
11
+ }
9
12
 
10
13
  &:before {
11
14
  content: ' ';
@@ -139,11 +142,11 @@
139
142
  }
140
143
 
141
144
  &:last-child {
145
+ border: none;
142
146
  a {
143
147
  border-bottom-left-radius: 2px;
144
148
  border-bottom-right-radius: 2px;
145
149
  }
146
- border: none;
147
150
  }
148
151
  }
149
152
  }
@@ -38,8 +38,11 @@
38
38
  margin-left: 4px;
39
39
  select {
40
40
  @include light-button;
41
- @include rounded(0px);
42
- padding: 1px 5px;
41
+
42
+ & {
43
+ @include rounded(0px);
44
+ padding: 1px 5px;
45
+ }
43
46
  }
44
47
  }
45
48
 
@@ -1,6 +1,6 @@
1
1
  .table_tools {
2
- @include clearfix;
3
2
  margin-bottom: 16px;
3
+ @include clearfix;
4
4
  }
5
5
 
6
6
  .table_tools .dropdown_menu {
@@ -9,11 +9,14 @@
9
9
 
10
10
  a.table_tools_button, .table_tools .dropdown_menu_button {
11
11
  @include light-button;
12
- @include gradient(#FFFFFF, #F0F0F0);
13
- @include border-colors(#d9d9d9, #d0d0d0, #c5c5c5);
14
- font-size: 0.9em;
15
- padding: 4px 14px 4px;
16
- margin: 0;
12
+
13
+ & {
14
+ @include gradient(#FFFFFF, #F0F0F0);
15
+ @include border-colors(#d9d9d9, #d0d0d0, #c5c5c5);
16
+ font-size: 0.9em;
17
+ padding: 4px 14px 4px;
18
+ margin: 0;
19
+ }
17
20
 
18
21
  &:not(.disabled) {
19
22
  &:hover {
@@ -28,13 +28,16 @@
28
28
 
29
29
  a {
30
30
  @include light-button;
31
- @include gradient(#FFFFFF, #F0F0F0);
32
- @include border-colors(#d9d9d9, #d0d0d0, #c5c5c5);
33
- text-decoration: none;
34
- border-radius: 0;
35
- border-width: 1px .5px 1px .5px;
36
- margin-right: 0;
37
- padding: 4px 14px 4px;
31
+
32
+ & {
33
+ @include gradient(#FFFFFF, #F0F0F0);
34
+ @include border-colors(#d9d9d9, #d0d0d0, #c5c5c5);
35
+ text-decoration: none;
36
+ border-radius: 0;
37
+ border-width: 1px .5px 1px .5px;
38
+ margin-right: 0;
39
+ padding: 4px 14px 4px;
40
+ }
38
41
 
39
42
  &:not(.disabled) {
40
43
  &:hover {
@@ -17,13 +17,13 @@
17
17
  }
18
18
 
19
19
  @mixin default-button {
20
- @include basic-button;
21
20
  @include gradient(lighten($primary-color, 15%), darken($primary-color, 12%));
22
21
  @include text-shadow(#000);
23
22
  box-shadow: 0 1px 1px rgba(0,0,0,0.10), 0 1px 0 0px rgba(255,255,255, 0.2) inset;
24
23
  border: solid 1px #484e53;
25
24
  @include border-colors(#616a71, #484e53, #363b3f);
26
25
  color: #efefef;
26
+ @include basic-button;
27
27
 
28
28
  &:not(.disabled) {
29
29
  &:hover{
@@ -38,13 +38,13 @@
38
38
  }
39
39
 
40
40
  @mixin light-button {
41
- @include basic-button;
42
41
  @include gradient(#FFFFFF, #E7E7E7);
43
42
  box-shadow: 0 1px 1px rgba(0,0,0,0.10), 0 1px 0 0 rgba(255,255,255, 0.8) inset;
44
43
  border: solid 1px #c7c7c7;
45
44
  @include border-colors(#d3d3d3, #c7c7c7, #c2c2c2);
46
45
  @include text-shadow;
47
46
  color: $primary-color;
47
+ @include basic-button;
48
48
 
49
49
  &:not(.disabled) {
50
50
  &:hover {
@@ -28,13 +28,13 @@ body.logged_out {
28
28
  @include no-shadow;
29
29
  background: none;
30
30
  padding: 0;
31
+ margin-bottom: 0;
31
32
  li { padding: 10px 0; }
32
33
 
33
34
  input[type=text], input[type=email], input[type=password] {
34
35
  width: 70%;
35
36
  }
36
37
  &.buttons { margin-left: 20%; }
37
- margin-bottom: 0;
38
38
  }
39
39
  }
40
40
 
@@ -10,10 +10,10 @@
10
10
 
11
11
  // -------------------------------------- Index Footer (Under Table)
12
12
  #index_footer {
13
- @include clearfix;
14
13
  padding-top: 5px;
15
14
  text-align: right;
16
15
  font-size: 0.85em;
16
+ @include clearfix;
17
17
  }
18
18
 
19
19
  .index_content { clear: both; }
@@ -1,6 +1,5 @@
1
1
  #title_bar {
2
2
  @include section-header;
3
- @include clearfix;
4
3
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.37);
5
4
  display: table;
6
5
  border-bottom-color: #EEE;
@@ -9,6 +8,7 @@
9
8
  margin: 0;
10
9
  padding: 10px $horizontal-page-margin;
11
10
  z-index: 800;
11
+ @include clearfix;
12
12
 
13
13
  #titlebar_left, #titlebar_right {
14
14
  height: 50px;
@@ -32,8 +32,11 @@
32
32
  span.action_item {
33
33
  & > a, & > .dropdown_menu > a {
34
34
  @include light-button;
35
- padding: 12px 17px 10px;
36
- margin: 0px;
35
+
36
+ & {
37
+ padding: 12px 17px 10px;
38
+ margin: 0px;
39
+ }
37
40
  }
38
41
  }
39
42
  }
@@ -42,7 +42,7 @@ module ActiveAdmin
42
42
  end
43
43
 
44
44
  def format_action(action, subject)
45
- # https://github.com/varvet/pundit/blob/master/lib/generators/pundit/install/templates/application_policy.rb
45
+ # https://github.com/varvet/pundit/blob/main/lib/generators/pundit/install/templates/application_policy.rb
46
46
  case action
47
47
  when Auth::READ then subject.is_a?(Class) ? :index? : :show?
48
48
  when Auth::DESTROY then subject.is_a?(Class) ? :destroy_all? : :destroy?
@@ -37,7 +37,14 @@ module ActiveAdmin
37
37
  end
38
38
 
39
39
  def counter_cache_col?(c)
40
- c.name.end_with?("_count")
40
+ # This helper is called inside a loop. Let's memoize the result.
41
+ @counter_cache_columns ||= begin
42
+ resource_class.reflect_on_all_associations(:has_many)
43
+ .select(&:has_cached_counter?)
44
+ .map(&:counter_cache_column)
45
+ end
46
+
47
+ @counter_cache_columns.include?(c.name)
41
48
  end
42
49
 
43
50
  def filtered_col?(c)
@@ -1,4 +1,4 @@
1
1
  # frozen_string_literal: true
2
2
  module ActiveAdmin
3
- VERSION = "3.2.1"
3
+ VERSION = "3.2.3"
4
4
  end
@@ -127,7 +127,7 @@ module ActiveAdmin
127
127
  html_options[:class] ||= "inputs"
128
128
  legend = args.shift if args.first.is_a?(::String)
129
129
  legend = html_options.delete(:name) if html_options.key?(:name)
130
- legend_tag = legend ? "<legend><span>#{legend}</span></legend>" : ""
130
+ legend_tag = legend ? "<legend><span>#{ERB::Util.html_escape(legend)}</span></legend>" : ""
131
131
  fieldset_attrs = html_options.map { |k, v| %Q{#{k}="#{v}"} }.join(" ")
132
132
  @opening_tag = "<fieldset #{fieldset_attrs}>#{legend_tag}<ol>"
133
133
  @closing_tag = "</ol></fieldset>"
@@ -1,20 +1,22 @@
1
1
  //= require jquery-ui/version
2
2
 
3
3
  /*!
4
- * jQuery UI :data 1.12.1
5
- * http://jqueryui.com
4
+ * jQuery UI :data 1.13.3
5
+ * https://jqueryui.com
6
6
  *
7
- * Copyright jQuery Foundation and other contributors
7
+ * Copyright OpenJS Foundation and other contributors
8
8
  * Released under the MIT license.
9
- * http://jquery.org/license
9
+ * https://jquery.org/license
10
10
  */
11
11
 
12
12
  //>>label: :data Selector
13
13
  //>>group: Core
14
14
  //>>description: Selects elements which have data stored under the specified key.
15
- //>>docs: http://api.jqueryui.com/data-selector/
15
+ //>>docs: https://api.jqueryui.com/data-selector/
16
16
 
17
17
  ( function( factory ) {
18
+ "use strict";
19
+
18
20
  if ( typeof define === "function" && define.amd ) {
19
21
 
20
22
  // AMD. Register as an anonymous module.
@@ -24,8 +26,10 @@
24
26
  // Browser globals
25
27
  factory( jQuery );
26
28
  }
27
- } ( function( $ ) {
28
- return $.extend( $.expr[ ":" ], {
29
+ } )( function( $ ) {
30
+ "use strict";
31
+
32
+ return $.extend( $.expr.pseudos, {
29
33
  data: $.expr.createPseudo ?
30
34
  $.expr.createPseudo( function( dataName ) {
31
35
  return function( elem ) {
@@ -38,4 +42,4 @@ return $.extend( $.expr[ ":" ], {
38
42
  return !!$.data( elem, match[ 3 ] );
39
43
  }
40
44
  } );
41
- } ) );
45
+ } );
@@ -1,21 +1,23 @@
1
1
  //= require jquery-ui/version
2
2
 
3
3
  /*!
4
- * jQuery UI Disable Selection 1.12.1
5
- * http://jqueryui.com
4
+ * jQuery UI Disable Selection 1.13.3
5
+ * https://jqueryui.com
6
6
  *
7
- * Copyright jQuery Foundation and other contributors
7
+ * Copyright OpenJS Foundation and other contributors
8
8
  * Released under the MIT license.
9
- * http://jquery.org/license
9
+ * https://jquery.org/license
10
10
  */
11
11
 
12
12
  //>>label: disableSelection
13
13
  //>>group: Core
14
14
  //>>description: Disable selection of text content within the set of matched elements.
15
- //>>docs: http://api.jqueryui.com/disableSelection/
15
+ //>>docs: https://api.jqueryui.com/disableSelection/
16
16
 
17
17
  // This file is deprecated
18
18
  ( function( factory ) {
19
+ "use strict";
20
+
19
21
  if ( typeof define === "function" && define.amd ) {
20
22
 
21
23
  // AMD. Register as an anonymous module.
@@ -25,7 +27,8 @@
25
27
  // Browser globals
26
28
  factory( jQuery );
27
29
  }
28
- } ( function( $ ) {
30
+ } )( function( $ ) {
31
+ "use strict";
29
32
 
30
33
  return $.fn.extend( {
31
34
  disableSelection: ( function() {
@@ -45,4 +48,4 @@ return $.fn.extend( {
45
48
  }
46
49
  } );
47
50
 
48
- } ) );
51
+ } );
@@ -1,20 +1,22 @@
1
1
  //= require jquery-ui/version
2
2
 
3
3
  /*!
4
- * jQuery UI Focusable 1.12.1
5
- * http://jqueryui.com
4
+ * jQuery UI Focusable 1.13.3
5
+ * https://jqueryui.com
6
6
  *
7
- * Copyright jQuery Foundation and other contributors
7
+ * Copyright OpenJS Foundation and other contributors
8
8
  * Released under the MIT license.
9
- * http://jquery.org/license
9
+ * https://jquery.org/license
10
10
  */
11
11
 
12
12
  //>>label: :focusable Selector
13
13
  //>>group: Core
14
14
  //>>description: Selects elements which can be focused.
15
- //>>docs: http://api.jqueryui.com/focusable-selector/
15
+ //>>docs: https://api.jqueryui.com/focusable-selector/
16
16
 
17
17
  ( function( factory ) {
18
+ "use strict";
19
+
18
20
  if ( typeof define === "function" && define.amd ) {
19
21
 
20
22
  // AMD. Register as an anonymous module.
@@ -24,7 +26,8 @@
24
26
  // Browser globals
25
27
  factory( jQuery );
26
28
  }
27
- } ( function( $ ) {
29
+ } )( function( $ ) {
30
+ "use strict";
28
31
 
29
32
  // Selectors
30
33
  $.ui.focusable = function( element, hasTabindex ) {
@@ -72,10 +75,10 @@ function visible( element ) {
72
75
  element = element.parent();
73
76
  visibility = element.css( "visibility" );
74
77
  }
75
- return visibility !== "hidden";
78
+ return visibility === "visible";
76
79
  }
77
80
 
78
- $.extend( $.expr[ ":" ], {
81
+ $.extend( $.expr.pseudos, {
79
82
  focusable: function( element ) {
80
83
  return $.ui.focusable( element, $.attr( element, "tabindex" ) != null );
81
84
  }
@@ -83,4 +86,4 @@ $.extend( $.expr[ ":" ], {
83
86
 
84
87
  return $.ui.focusable;
85
88
 
86
- } ) );
89
+ } );
@@ -2,79 +2,82 @@
2
2
  //= require jquery-ui/version
3
3
 
4
4
  /*!
5
- * jQuery UI Form Reset Mixin 1.12.1
6
- * http://jqueryui.com
5
+ * jQuery UI Form Reset Mixin 1.13.3
6
+ * https://jqueryui.com
7
7
  *
8
- * Copyright jQuery Foundation and other contributors
8
+ * Copyright OpenJS Foundation and other contributors
9
9
  * Released under the MIT license.
10
- * http://jquery.org/license
10
+ * https://jquery.org/license
11
11
  */
12
12
 
13
13
  //>>label: Form Reset Mixin
14
14
  //>>group: Core
15
15
  //>>description: Refresh input widgets when their form is reset
16
- //>>docs: http://api.jqueryui.com/form-reset-mixin/
16
+ //>>docs: https://api.jqueryui.com/form-reset-mixin/
17
17
 
18
18
  ( function( factory ) {
19
- if ( typeof define === "function" && define.amd ) {
19
+ "use strict";
20
20
 
21
- // AMD. Register as an anonymous module.
22
- define( [
23
- "jquery",
24
- "./form",
25
- "./version"
26
- ], factory );
27
- } else {
21
+ if ( typeof define === "function" && define.amd ) {
28
22
 
29
- // Browser globals
30
- factory( jQuery );
31
- }
32
- }( function( $ ) {
23
+ // AMD. Register as an anonymous module.
24
+ define( [
25
+ "jquery",
26
+ "./form",
27
+ "./version"
28
+ ], factory );
29
+ } else {
33
30
 
34
- return $.ui.formResetMixin = {
35
- _formResetHandler: function() {
36
- var form = $( this );
31
+ // Browser globals
32
+ factory( jQuery );
33
+ }
34
+ } )( function( $ ) {
35
+ "use strict";
37
36
 
38
- // Wait for the form reset to actually happen before refreshing
39
- setTimeout( function() {
40
- var instances = form.data( "ui-form-reset-instances" );
41
- $.each( instances, function() {
42
- this.refresh();
43
- } );
44
- } );
45
- },
37
+ return $.ui.formResetMixin = {
38
+ _formResetHandler: function() {
39
+ var form = $( this );
46
40
 
47
- _bindFormResetHandler: function() {
48
- this.form = this.element.form();
49
- if ( !this.form.length ) {
50
- return;
51
- }
41
+ // Wait for the form reset to actually happen before refreshing
42
+ setTimeout( function() {
43
+ var instances = form.data( "ui-form-reset-instances" );
44
+ $.each( instances, function() {
45
+ this.refresh();
46
+ } );
47
+ } );
48
+ },
52
49
 
53
- var instances = this.form.data( "ui-form-reset-instances" ) || [];
54
- if ( !instances.length ) {
50
+ _bindFormResetHandler: function() {
51
+ this.form = this.element._form();
52
+ if ( !this.form.length ) {
53
+ return;
54
+ }
55
55
 
56
- // We don't use _on() here because we use a single event handler per form
57
- this.form.on( "reset.ui-form-reset", this._formResetHandler );
58
- }
59
- instances.push( this );
60
- this.form.data( "ui-form-reset-instances", instances );
61
- },
56
+ var instances = this.form.data( "ui-form-reset-instances" ) || [];
57
+ if ( !instances.length ) {
62
58
 
63
- _unbindFormResetHandler: function() {
64
- if ( !this.form.length ) {
65
- return;
66
- }
59
+ // We don't use _on() here because we use a single event handler per form
60
+ this.form.on( "reset.ui-form-reset", this._formResetHandler );
61
+ }
62
+ instances.push( this );
63
+ this.form.data( "ui-form-reset-instances", instances );
64
+ },
67
65
 
68
- var instances = this.form.data( "ui-form-reset-instances" );
69
- instances.splice( $.inArray( this, instances ), 1 );
70
- if ( instances.length ) {
71
- this.form.data( "ui-form-reset-instances", instances );
72
- } else {
73
- this.form
74
- .removeData( "ui-form-reset-instances" )
75
- .off( "reset.ui-form-reset" );
76
- }
77
- }
78
- };
66
+ _unbindFormResetHandler: function() {
67
+ if ( !this.form.length ) {
68
+ return;
69
+ }
79
70
 
80
- } ) );
71
+ var instances = this.form.data( "ui-form-reset-instances" );
72
+ instances.splice( $.inArray( this, instances ), 1 );
73
+ if ( instances.length ) {
74
+ this.form.data( "ui-form-reset-instances", instances );
75
+ } else {
76
+ this.form
77
+ .removeData( "ui-form-reset-instances" )
78
+ .off( "reset.ui-form-reset" );
79
+ }
80
+ }
81
+ };
82
+
83
+ } );
@@ -1,22 +1,25 @@
1
1
  //= require jquery-ui/version
2
2
 
3
3
  ( function( factory ) {
4
- if ( typeof define === "function" && define.amd ) {
4
+ "use strict";
5
5
 
6
- // AMD. Register as an anonymous module.
7
- define( [ "jquery", "./version" ], factory );
8
- } else {
6
+ if ( typeof define === "function" && define.amd ) {
9
7
 
10
- // Browser globals
11
- factory( jQuery );
12
- }
13
- } ( function( $ ) {
8
+ // AMD. Register as an anonymous module.
9
+ define( [ "jquery", "./version" ], factory );
10
+ } else {
11
+
12
+ // Browser globals
13
+ factory( jQuery );
14
+ }
15
+ } )( function( $ ) {
16
+ "use strict";
14
17
 
15
18
  // Support: IE8 Only
16
19
  // IE8 does not support the form attribute and when it is supplied. It overwrites the form prop
17
20
  // with a string, so we need to find the proper form.
18
- return $.fn.form = function() {
19
- return typeof this[ 0 ].form === "string" ? this.closest( "form" ) : $( this[ 0 ].form );
20
- };
21
+ return $.fn._form = function() {
22
+ return typeof this[ 0 ].form === "string" ? this.closest( "form" ) : $( this[ 0 ].form );
23
+ };
21
24
 
22
- } ) );
25
+ } );