activeadmin 2.4.0 → 2.8.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 (130) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +148 -30
  3. data/CONTRIBUTING.md +36 -56
  4. data/README.md +2 -2
  5. data/app/assets/javascripts/active_admin/base.js +517 -0
  6. data/app/assets/stylesheets/active_admin/_base.scss +29 -29
  7. data/app/assets/stylesheets/active_admin/_header.scss +40 -8
  8. data/app/assets/stylesheets/active_admin/_mixins.scss +1 -1
  9. data/{vendor → app}/assets/stylesheets/active_admin/_normalize.scss +0 -0
  10. data/app/assets/stylesheets/active_admin/components/_comments.scss +2 -2
  11. data/app/assets/stylesheets/active_admin/components/_tables.scss +1 -2
  12. data/app/assets/stylesheets/active_admin/mixins/_all.scss +8 -8
  13. data/app/assets/stylesheets/active_admin/mixins/_variables.scss +8 -0
  14. data/app/assets/stylesheets/active_admin/print.scss +2 -2
  15. data/app/assets/stylesheets/active_admin/structure/_main_structure.scss +1 -1
  16. data/app/javascript/active_admin/base.js +28 -0
  17. data/app/{assets/javascripts/active_admin/ext/jquery-ui.es6 → javascript/active_admin/ext/jquery-ui.js} +0 -0
  18. data/app/{assets/javascripts/active_admin/ext/jquery.es6 → javascript/active_admin/ext/jquery.js} +0 -0
  19. data/app/{assets/javascripts/active_admin/lib/batch_actions.es6 → javascript/active_admin/initializers/batch-actions.js} +4 -2
  20. data/app/javascript/active_admin/initializers/checkbox-toggler.js +3 -0
  21. data/app/{assets/javascripts/active_admin/initializers/datepicker.es6 → javascript/active_admin/initializers/datepicker.js} +0 -0
  22. data/app/javascript/active_admin/initializers/dropdown-menu.js +9 -0
  23. data/app/javascript/active_admin/initializers/filters.js +10 -0
  24. data/app/{assets/javascripts/active_admin/lib/has_many.es6 → javascript/active_admin/initializers/has-many.js} +0 -0
  25. data/app/javascript/active_admin/initializers/per-page.js +13 -0
  26. data/app/javascript/active_admin/initializers/table-checkbox-toggler.js +3 -0
  27. data/app/{assets/javascripts/active_admin/initializers/tabs.es6 → javascript/active_admin/initializers/tabs.js} +0 -0
  28. data/app/{assets/javascripts/active_admin/lib/checkbox-toggler.es6 → javascript/active_admin/lib/checkbox-toggler.js} +5 -5
  29. data/app/{assets/javascripts/active_admin/lib/dropdown-menu.es6 → javascript/active_admin/lib/dropdown-menu.js} +3 -10
  30. data/app/javascript/active_admin/lib/filters.js +39 -0
  31. data/app/{assets/javascripts/active_admin/lib/modal_dialog.es6 → javascript/active_admin/lib/modal-dialog.js} +10 -8
  32. data/app/javascript/active_admin/lib/per-page.js +38 -0
  33. data/app/{assets/javascripts/active_admin/lib/table-checkbox-toggler.es6 → javascript/active_admin/lib/table-checkbox-toggler.js} +5 -3
  34. data/app/javascript/active_admin/lib/utils.js +40 -0
  35. data/app/views/layouts/active_admin_logged_out.html.erb +15 -5
  36. data/config/locales/ar.yml +6 -6
  37. data/config/locales/az.yml +138 -0
  38. data/config/locales/en-CA.yml +3 -3
  39. data/config/locales/en-GB.yml +3 -3
  40. data/config/locales/en.yml +3 -3
  41. data/config/locales/es-MX.yml +2 -1
  42. data/config/locales/es.yml +5 -5
  43. data/config/locales/fr.yml +4 -4
  44. data/config/locales/it.yml +18 -0
  45. data/config/locales/ja.yml +3 -3
  46. data/config/locales/lv.yml +2 -2
  47. data/config/locales/vi.yml +6 -5
  48. data/docs/0-installation.md +26 -2
  49. data/docs/1-general-configuration.md +20 -0
  50. data/docs/11-decorators.md +16 -5
  51. data/docs/2-resource-customization.md +10 -1
  52. data/docs/3-index-pages.md +1 -1
  53. data/docs/9-batch-actions.md +2 -2
  54. data/docs/Gemfile.lock +119 -109
  55. data/docs/_includes/top-menu.html +1 -1
  56. data/docs/documentation.md +1 -1
  57. data/docs/index.html +6 -6
  58. data/lib/active_admin.rb +43 -44
  59. data/lib/active_admin/application.rb +7 -7
  60. data/lib/active_admin/authorization_adapter.rb +3 -3
  61. data/lib/active_admin/base_controller/authorization.rb +9 -9
  62. data/lib/active_admin/batch_actions/controller.rb +3 -3
  63. data/lib/active_admin/batch_actions/views/batch_action_form.rb +1 -1
  64. data/lib/active_admin/batch_actions/views/batch_action_selector.rb +5 -5
  65. data/lib/active_admin/collection_decorator.rb +31 -0
  66. data/lib/active_admin/csv_builder.rb +11 -7
  67. data/lib/active_admin/dependency.rb +7 -7
  68. data/lib/active_admin/filters.rb +1 -1
  69. data/lib/active_admin/filters/active_filter.rb +1 -1
  70. data/lib/active_admin/filters/forms.rb +3 -3
  71. data/lib/active_admin/filters/resource_extension.rb +1 -1
  72. data/lib/active_admin/form_builder.rb +5 -5
  73. data/lib/active_admin/helpers/optional_display.rb +2 -2
  74. data/lib/active_admin/inputs/filters/base/search_method_select.rb +2 -2
  75. data/lib/active_admin/inputs/filters/date_range_input.rb +15 -12
  76. data/lib/active_admin/localizers/resource_localizer.rb +1 -1
  77. data/lib/active_admin/menu.rb +5 -2
  78. data/lib/active_admin/menu_item.rb +7 -7
  79. data/lib/active_admin/namespace.rb +7 -7
  80. data/lib/active_admin/namespace_settings.rb +3 -0
  81. data/lib/active_admin/orm/active_record/comments.rb +11 -11
  82. data/lib/active_admin/orm/active_record/comments/comment.rb +3 -3
  83. data/lib/active_admin/orm/active_record/comments/views/active_admin_comments.rb +3 -3
  84. data/lib/active_admin/pundit_adapter.rb +4 -4
  85. data/lib/active_admin/resource.rb +1 -1
  86. data/lib/active_admin/resource/action_items.rb +1 -1
  87. data/lib/active_admin/resource/menu.rb +4 -4
  88. data/lib/active_admin/resource/naming.rb +4 -4
  89. data/lib/active_admin/resource/routes.rb +5 -5
  90. data/lib/active_admin/resource/scope_to.rb +7 -7
  91. data/lib/active_admin/resource_controller.rb +4 -3
  92. data/lib/active_admin/resource_controller/data_access.rb +1 -1
  93. data/lib/active_admin/resource_controller/decorators.rb +5 -25
  94. data/lib/active_admin/resource_controller/polymorphic_routes.rb +3 -2
  95. data/lib/active_admin/resource_dsl.rb +5 -5
  96. data/lib/active_admin/scope.rb +5 -5
  97. data/lib/active_admin/version.rb +1 -1
  98. data/lib/active_admin/view_factory.rb +16 -16
  99. data/lib/active_admin/view_helpers/breadcrumb_helper.rb +1 -1
  100. data/lib/active_admin/view_helpers/display_helper.rb +3 -3
  101. data/lib/active_admin/view_helpers/fields_for.rb +1 -1
  102. data/lib/active_admin/views/components/attributes_table.rb +2 -2
  103. data/lib/active_admin/views/components/dropdown_menu.rb +2 -2
  104. data/lib/active_admin/views/components/index_list.rb +1 -1
  105. data/lib/active_admin/views/components/menu_item.rb +1 -1
  106. data/lib/active_admin/views/components/paginated_collection.rb +15 -14
  107. data/lib/active_admin/views/components/scopes.rb +2 -0
  108. data/lib/active_admin/views/components/table_for.rb +12 -11
  109. data/lib/active_admin/views/components/tabs.rb +1 -1
  110. data/lib/active_admin/views/index_as_table.rb +6 -6
  111. data/lib/active_admin/views/pages/base.rb +9 -5
  112. data/lib/active_admin/views/pages/index.rb +9 -8
  113. data/lib/generators/active_admin/assets/templates/active_admin.scss +2 -2
  114. data/lib/generators/active_admin/devise/devise_generator.rb +4 -4
  115. data/lib/generators/active_admin/install/install_generator.rb +7 -1
  116. data/lib/generators/active_admin/install/templates/active_admin.rb.erb +9 -2
  117. data/lib/generators/active_admin/resource/resource_generator.rb +1 -1
  118. data/lib/generators/active_admin/webpacker/plugins/jquery.js +7 -0
  119. data/lib/generators/active_admin/webpacker/templates/active_admin.js +5 -0
  120. data/lib/generators/active_admin/webpacker/templates/active_admin.scss +17 -0
  121. data/lib/generators/active_admin/webpacker/templates/print.scss +2 -0
  122. data/lib/generators/active_admin/webpacker/webpacker_generator.rb +26 -0
  123. metadata +44 -48
  124. data/app/assets/images/active_admin/nested_menu_arrow.gif +0 -0
  125. data/app/assets/images/active_admin/nested_menu_arrow_dark.gif +0 -0
  126. data/app/assets/images/active_admin/orderable.png +0 -0
  127. data/app/assets/javascripts/active_admin/base.es6 +0 -23
  128. data/app/assets/javascripts/active_admin/initializers/filters.es6 +0 -45
  129. data/app/assets/javascripts/active_admin/lib/active_admin.es6 +0 -41
  130. data/app/assets/javascripts/active_admin/lib/per_page.es6 +0 -47
@@ -1,36 +1,36 @@
1
1
  /* Active Admin CSS */
2
2
  // Normalize
3
- @import "active_admin/normalize";
3
+ @import "./normalize";
4
4
 
5
5
  // Partials
6
- @import "active_admin/typography";
7
- @import "active_admin/header";
8
- @import "active_admin/forms";
9
- @import "active_admin/components/comments";
10
- @import "active_admin/components/flash_messages";
11
- @import "active_admin/components/date_picker";
12
- @import "active_admin/components/tables";
13
- @import "active_admin/components/batch_actions";
14
- @import "active_admin/components/modal_dialog";
15
- @import "active_admin/components/blank_slates";
16
- @import "active_admin/components/breadcrumbs";
17
- @import "active_admin/components/dropdown_menu";
18
- @import "active_admin/components/buttons";
19
- @import "active_admin/components/grid";
20
- @import "active_admin/components/links";
21
- @import "active_admin/components/pagination";
22
- @import "active_admin/components/panels";
23
- @import "active_admin/components/columns";
24
- @import "active_admin/components/scopes";
25
- @import "active_admin/components/status_tags";
26
- @import "active_admin/components/table_tools";
27
- @import "active_admin/components/index_list";
28
- @import "active_admin/components/unsupported_browser";
29
- @import "active_admin/components/tabs";
30
- @import "active_admin/pages/logged_out";
31
- @import "active_admin/structure/footer";
32
- @import "active_admin/structure/main_structure";
33
- @import "active_admin/structure/title_bar";
6
+ @import "./typography";
7
+ @import "./header";
8
+ @import "./forms";
9
+ @import "./components/comments";
10
+ @import "./components/flash_messages";
11
+ @import "./components/date_picker";
12
+ @import "./components/tables";
13
+ @import "./components/batch_actions";
14
+ @import "./components/modal_dialog";
15
+ @import "./components/blank_slates";
16
+ @import "./components/breadcrumbs";
17
+ @import "./components/dropdown_menu";
18
+ @import "./components/buttons";
19
+ @import "./components/grid";
20
+ @import "./components/links";
21
+ @import "./components/pagination";
22
+ @import "./components/panels";
23
+ @import "./components/columns";
24
+ @import "./components/scopes";
25
+ @import "./components/status_tags";
26
+ @import "./components/table_tools";
27
+ @import "./components/index_list";
28
+ @import "./components/unsupported_browser";
29
+ @import "./components/tabs";
30
+ @import "./pages/logged_out";
31
+ @import "./structure/footer";
32
+ @import "./structure/main_structure";
33
+ @import "./structure/title_bar";
34
34
 
35
35
  body {
36
36
  @include sans-family;
@@ -1,5 +1,3 @@
1
- //= depend_on_asset "active_admin/nested_menu_arrow.gif"
2
- //= depend_on_asset "active_admin/nested_menu_arrow_dark.gif"
3
1
  // ----------------------------------- Header
4
2
  #header {
5
3
  @include primary-gradient;
@@ -54,6 +52,11 @@
54
52
  margin: 0;
55
53
  padding: 0;
56
54
 
55
+ li {
56
+ /* Hover on li, display the ul */
57
+ &:hover > ul { display: block;}
58
+ }
59
+
57
60
  & > li {
58
61
  display: inline-block;
59
62
  margin-right: 4px;
@@ -75,12 +78,12 @@
75
78
  }
76
79
 
77
80
  &.has_nested > a {
78
- background: image-url('active_admin/nested_menu_arrow.gif') no-repeat calc(100% - 7px) 50%;
81
+ background: url($menu-arrow-light-icon-url) no-repeat calc(100% - 7px) 50%;
79
82
  padding-right: 20px;
80
83
  }
81
84
 
82
85
  &.has_nested.current > a {
83
- background: $current-menu-item-background image-url('active_admin/nested_menu_arrow_dark.gif') no-repeat calc(100% - 7px) 50%;
86
+ background: $current-menu-item-background url($menu-arrow-dark-icon-url) no-repeat calc(100% - 7px) 50%;
84
87
  padding-right: 20px;
85
88
  }
86
89
 
@@ -92,13 +95,11 @@
92
95
  &.has_nested:hover > a {
93
96
  @include rounded-top(10px);
94
97
  border-bottom: 5px solid $hover-menu-item-background;
95
- background: $hover-menu-item-background image-url('active_admin/nested_menu_arrow_dark.gif') no-repeat calc(100% - 7px) 50%;
98
+ background: $hover-menu-item-background url($menu-arrow-dark-icon-url) no-repeat calc(100% - 7px) 50%;
96
99
  z-index: 1020;
97
100
  }
98
101
 
99
102
 
100
- /* Hover on li, display the ul */
101
- &:hover ul { display: block;}
102
103
  /* Drop down menus */
103
104
  ul {
104
105
  background: $hover-menu-item-background;
@@ -116,6 +117,7 @@
116
117
  z-index: 1010;
117
118
 
118
119
  li {
120
+ position: relative;
119
121
  margin: 0px;
120
122
  a {
121
123
  background: none;
@@ -126,10 +128,40 @@
126
128
  &.current {
127
129
  a { @include rounded(0) }
128
130
  }
131
+
132
+ &.has_nested > a {
133
+ background: url($menu-arrow-right-light-icon-url) no-repeat calc(100% - 7px) 55%;
134
+ padding-right: 20px;
135
+ }
136
+
137
+ &.has_nested:hover > a {
138
+ background: url($menu-arrow-right-dark-icon-url) no-repeat calc(100% - 7px) 55%;
139
+ color: #fff;
140
+ }
141
+
142
+ ul {
143
+ @include rounded-all(10px,10px,10px,10px);
144
+ margin-top: 0;
145
+ top: -3px;
146
+ left: 100%;
147
+
148
+ /* Create an invisible backdrop that adds 8px margin around the dropdown menu or submenu
149
+ that maintains the hover. This makes it much easier to navigate to submenus in
150
+ particular without losing hover accientally, especially near rounded corners. */
151
+ &:after {
152
+ content: "";
153
+ display: block;
154
+ position: absolute;
155
+ top: -8px;
156
+ left: -8px;
157
+ height: calc(100% + 16px);
158
+ width: calc(100% + 16px);
159
+ z-index: -2;
160
+ }
161
+ }
129
162
  }
130
163
  }
131
164
  }
132
-
133
165
  }
134
166
 
135
167
  #tabs {
@@ -1 +1 @@
1
- @import "active_admin/mixins/all";
1
+ @import "./mixins/all";
@@ -2,9 +2,9 @@
2
2
  .comments {
3
3
 
4
4
  .active_admin_comment {
5
- clear: both;
5
+ @include clearfix;
6
6
  margin-top: 10px;
7
- margin-bottom: 40px;
7
+ margin-bottom: 20px;
8
8
  max-width: 700px;
9
9
 
10
10
  .active_admin_comment_meta {
@@ -1,4 +1,3 @@
1
- //= depend_on_asset "active_admin/orderable.png"
2
1
  // ----------------------------------- Tables
3
2
 
4
3
  table tr {
@@ -33,7 +32,7 @@ table.index_table {
33
32
  }
34
33
 
35
34
  &.sortable a {
36
- background: image-url('active_admin/orderable.png') no-repeat 0 4px; padding-left: 13px;
35
+ background: url($orderable-icon-url) no-repeat 0 4px; padding-left: 13px;
37
36
  }
38
37
 
39
38
  &.sorted-asc a { background-position: 0 -27px; }
@@ -1,8 +1,8 @@
1
- @import "active_admin/mixins/variables";
2
- @import "active_admin/mixins/gradients";
3
- @import "active_admin/mixins/shadows";
4
- @import "active_admin/mixins/rounded";
5
- @import "active_admin/mixins/buttons";
6
- @import "active_admin/mixins/sections";
7
- @import "active_admin/mixins/utilities";
8
- @import "active_admin/mixins/typography";
1
+ @import "./variables";
2
+ @import "./gradients";
3
+ @import "./shadows";
4
+ @import "./rounded";
5
+ @import "./buttons";
6
+ @import "./sections";
7
+ @import "./utilities";
8
+ @import "./typography";
@@ -2,6 +2,14 @@
2
2
  // They can be overridden by prepending your own
3
3
  // to 'app/assets/stylesheets/active_admin.scss'.
4
4
 
5
+ // Images
6
+ $menu-arrow-light-icon-url: 'data:image/png;base64,R0lGODlhBwAEAKIAAL6+vry8vIiIiJWVlf///3t7ewAAAAAAACH5BAEAAAUALAAAAAAHAAQAAAMLWLol80MoF5mQKgEAOw==' !default;
7
+ $menu-arrow-dark-icon-url: 'data:image/png;base64,R0lGODlhBwAEAKIAAG1tbWxsbElJSVBQUP///0JCQgAAAAAAACH5BAEAAAUALAAAAAAHAAQAAAMLWLol80MoF5mQKgEAOw==' !default;
8
+ $menu-arrow-right-light-icon-url: 'data:image/gif;base64,R0lGODlhBAAHAKECAKqqqszMzPkVFfkVFSH+EUNyZWF0ZWQgd2l0aCBHSU1QACH5BAEKAAIALAAAAAAEAAcAAAIJlA0XKbH9nmAFADs=' !default;
9
+ $menu-arrow-right-dark-icon-url: 'data:image/gif;base64,R0lGODlhBAAHAMIEAG1tbWxsbElJSVBQUPkVFfkVFfkVFfkVFSH+EUNyZWF0ZWQgd2l0aCBHSU1QACH5BAEKAAEALAAAAAAEAAcAAAMKGKqy02G8OGeACQA7' !default;
10
+
11
+ $orderable-icon-url: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAABGCAYAAAAAVo4aAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAH5JREFUeNpi3LhlOwMU1AExGxDXwARYoHQLEFdD2cxAXAliMKFJgEAFEHfBJEHGMKLhMpgkTsAEdch/NNwCk2xCdiEQtML4LEgCf6EubUX3Cgh0oNvJ+P//f7wOGpUclRwYSZb41CyidNbB8giNM+9oXhmVHHm5bJjUSAABBgDKKiwMMUxPwgAAAABJRU5ErkJggg==' !default;
12
+
5
13
  // Colors
6
14
  $body-background-color: #FFF !default;
7
15
  $primary-color: #5E6469 !default;
@@ -5,10 +5,10 @@ $primary-color: black;
5
5
  $text-color: black;
6
6
 
7
7
  // Normalize
8
- @import "active_admin/normalize";
8
+ @import "./normalize";
9
9
 
10
10
  // Partials
11
- @import "active_admin/typography";
11
+ @import "./typography";
12
12
 
13
13
  body {
14
14
  font-family: Helvetica, Arial, sans-serif;
@@ -15,7 +15,7 @@
15
15
  width: 100%;
16
16
 
17
17
  #main_content{
18
- margin-right: 300px;
18
+ margin-right: $sidebar-width + ($section-padding * 2);
19
19
  }
20
20
  }
21
21
 
@@ -0,0 +1,28 @@
1
+ import "jquery"
2
+ import "jquery-ui/ui/widgets/datepicker"
3
+ import "jquery-ui/ui/widgets/dialog"
4
+ import "jquery-ui/ui/widgets/sortable"
5
+ import "jquery-ui/ui/widgets/tabs"
6
+ import "jquery-ui/ui/widget"
7
+ import "jquery-ujs"
8
+
9
+ import "./ext/jquery"
10
+ import "./ext/jquery-ui"
11
+ import "./initializers/batch-actions"
12
+ import "./initializers/checkbox-toggler"
13
+ import "./initializers/datepicker"
14
+ import "./initializers/dropdown-menu"
15
+ import "./initializers/filters"
16
+ import "./initializers/has-many"
17
+ import "./initializers/per-page"
18
+ import "./initializers/table-checkbox-toggler"
19
+ import "./initializers/tabs"
20
+
21
+ import ModalDialog from "./lib/modal-dialog";
22
+
23
+ function modal_dialog(message, inputs, callback) {
24
+ console.warn("ActiveAdmin.modal_dialog is deprecated in favor of ActiveAdmin.ModalDialog, please update usage.");
25
+ return ModalDialog(message, inputs, callback);
26
+ }
27
+
28
+ export { ModalDialog, modal_dialog };
@@ -1,10 +1,12 @@
1
+ import ModalDialog from "../lib/modal-dialog";
2
+
1
3
  const onDOMReady = function() {
2
4
  // Detach any previously attached handlers before re-attaching them.
3
5
  // This avoids double-registered handlers when Turbolinks is enabled
4
6
  $('.batch_actions_selector li a').off('click confirm:complete');
5
7
 
6
8
  //
7
- // Use ActiveAdmin.modal_dialog to prompt user if
9
+ // Use ModalDialog to prompt user if
8
10
  // confirmation is required for current Batch Action
9
11
  //
10
12
  $('.batch_actions_selector li a').on('click', function(event){
@@ -12,7 +14,7 @@ const onDOMReady = function() {
12
14
  event.stopPropagation(); // prevent Rails UJS click event
13
15
  event.preventDefault();
14
16
  if ((message = $(this).data('confirm'))) {
15
- ActiveAdmin.modal_dialog(message, $(this).data('inputs'), inputs => {
17
+ ModalDialog(message, $(this).data('inputs'), inputs => {
16
18
  $(this).trigger('confirm:complete', inputs);
17
19
  });
18
20
  } else {
@@ -0,0 +1,3 @@
1
+ import CheckboxToggler from "../lib/checkbox-toggler";
2
+
3
+ $.widget.bridge('checkboxToggler', CheckboxToggler);
@@ -0,0 +1,9 @@
1
+ import DropdownMenu from "../lib/dropdown-menu";
2
+
3
+ $.widget.bridge('aaDropdownMenu', DropdownMenu);
4
+
5
+ const onDOMReady = () => $('.dropdown_menu').aaDropdownMenu();
6
+
7
+ $(document).
8
+ ready(onDOMReady).
9
+ on('page:load turbolinks:load', onDOMReady);
@@ -0,0 +1,10 @@
1
+ import Filters from '../lib/filters';
2
+
3
+ (($) => {
4
+
5
+ $(document).
6
+ on('click', '.clear_filters_btn', Filters._clearForm).
7
+ on('submit', '.filter_form', Filters._disableEmptyInputFields).
8
+ on('change', '.filter_form_field.select_and_search select', Filters._setSearchType);
9
+
10
+ })(jQuery);
@@ -0,0 +1,13 @@
1
+ import PerPage from "../lib/per-page";
2
+
3
+ (($) => {
4
+
5
+ $(document).
6
+ on('change', '.pagination_per_page > select', function(_event) {
7
+ PerPage._jQueryInterface.call($(this), 'update')
8
+ });
9
+
10
+ $.fn['perPage'] = PerPage._jQueryInterface
11
+ $.fn['perPage'].Constructor = PerPage
12
+
13
+ })(jQuery);
@@ -0,0 +1,3 @@
1
+ import TableCheckboxToggler from "../lib/table-checkbox-toggler";
2
+
3
+ $.widget.bridge('tableCheckboxToggler', TableCheckboxToggler);
@@ -1,4 +1,4 @@
1
- ActiveAdmin.CheckboxToggler = class CheckboxToggler {
1
+ class CheckboxToggler {
2
2
  constructor(options, container){
3
3
  this.options = options;
4
4
  this.container = container;
@@ -6,7 +6,7 @@ ActiveAdmin.CheckboxToggler = class CheckboxToggler {
6
6
  this._bind();
7
7
  }
8
8
 
9
- option(key, value) {
9
+ option(_key, _value) {
10
10
  }
11
11
 
12
12
  _init() {
@@ -30,7 +30,7 @@ ActiveAdmin.CheckboxToggler = class CheckboxToggler {
30
30
  this.toggle_all_checkbox.change(() => this._didChangeToggleAllCheckbox());
31
31
  }
32
32
 
33
- _didChangeCheckbox(checkbox){
33
+ _didChangeCheckbox(_checkbox){
34
34
  const numChecked = this.checkboxes.filter(':checked').length;
35
35
 
36
36
  const allChecked = numChecked === this.checkboxes.length;
@@ -44,6 +44,6 @@ ActiveAdmin.CheckboxToggler = class CheckboxToggler {
44
44
  this.checkboxes.prop({ checked: setting });
45
45
  return setting;
46
46
  }
47
- };
47
+ }
48
48
 
49
- $.widget.bridge('checkboxToggler', ActiveAdmin.CheckboxToggler);
49
+ export default CheckboxToggler;
@@ -1,5 +1,4 @@
1
- ActiveAdmin.DropdownMenu = class DropdownMenu {
2
-
1
+ class DropdownMenu {
3
2
  constructor(options, element) {
4
3
  this.options = options;
5
4
  this.element = element;
@@ -112,12 +111,6 @@ ActiveAdmin.DropdownMenu = class DropdownMenu {
112
111
  this.$nipple.css('left', menu_center - nipple_center);
113
112
  }
114
113
  }
115
- };
116
-
117
- $.widget.bridge('aaDropdownMenu', ActiveAdmin.DropdownMenu);
118
-
119
- const onDOMReady = () => $('.dropdown_menu').aaDropdownMenu();
114
+ }
120
115
 
121
- $(document).
122
- ready(onDOMReady).
123
- on('page:load turbolinks:load', onDOMReady);
116
+ export default DropdownMenu;
@@ -0,0 +1,39 @@
1
+ import { queryStringToParams, hasTurbolinks, turbolinksVisit, toQueryString } from '../lib/utils';
2
+
3
+ class Filters {
4
+
5
+ static _clearForm(event) {
6
+ const regex = /^(q\[|q%5B|q%5b|page|utf8|commit)/;
7
+ const params = queryStringToParams()
8
+ .filter(({name}) => !name.match(regex));
9
+
10
+ event.preventDefault();
11
+
12
+ if (hasTurbolinks()) {
13
+ turbolinksVisit(params);
14
+ } else {
15
+ window.location.search = toQueryString(params);
16
+ }
17
+ }
18
+
19
+ static _disableEmptyInputFields(event) {
20
+ const params = $(this)
21
+ .find(':input')
22
+ .filter((i, input) => input.value === '')
23
+ .prop({ disabled: true })
24
+ .end()
25
+ .serializeArray();
26
+
27
+ if (hasTurbolinks()) {
28
+ event.preventDefault();
29
+ turbolinksVisit(params);
30
+ }
31
+ }
32
+
33
+ static _setSearchType() {
34
+ $(this).siblings('input').prop({name: `q[${this.value}]`});
35
+ }
36
+
37
+ }
38
+
39
+ export default Filters;