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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +148 -30
- data/CONTRIBUTING.md +36 -56
- data/README.md +2 -2
- data/app/assets/javascripts/active_admin/base.js +517 -0
- data/app/assets/stylesheets/active_admin/_base.scss +29 -29
- data/app/assets/stylesheets/active_admin/_header.scss +40 -8
- data/app/assets/stylesheets/active_admin/_mixins.scss +1 -1
- data/{vendor → app}/assets/stylesheets/active_admin/_normalize.scss +0 -0
- data/app/assets/stylesheets/active_admin/components/_comments.scss +2 -2
- data/app/assets/stylesheets/active_admin/components/_tables.scss +1 -2
- data/app/assets/stylesheets/active_admin/mixins/_all.scss +8 -8
- data/app/assets/stylesheets/active_admin/mixins/_variables.scss +8 -0
- data/app/assets/stylesheets/active_admin/print.scss +2 -2
- data/app/assets/stylesheets/active_admin/structure/_main_structure.scss +1 -1
- data/app/javascript/active_admin/base.js +28 -0
- data/app/{assets/javascripts/active_admin/ext/jquery-ui.es6 → javascript/active_admin/ext/jquery-ui.js} +0 -0
- data/app/{assets/javascripts/active_admin/ext/jquery.es6 → javascript/active_admin/ext/jquery.js} +0 -0
- data/app/{assets/javascripts/active_admin/lib/batch_actions.es6 → javascript/active_admin/initializers/batch-actions.js} +4 -2
- data/app/javascript/active_admin/initializers/checkbox-toggler.js +3 -0
- data/app/{assets/javascripts/active_admin/initializers/datepicker.es6 → javascript/active_admin/initializers/datepicker.js} +0 -0
- data/app/javascript/active_admin/initializers/dropdown-menu.js +9 -0
- data/app/javascript/active_admin/initializers/filters.js +10 -0
- data/app/{assets/javascripts/active_admin/lib/has_many.es6 → javascript/active_admin/initializers/has-many.js} +0 -0
- data/app/javascript/active_admin/initializers/per-page.js +13 -0
- data/app/javascript/active_admin/initializers/table-checkbox-toggler.js +3 -0
- data/app/{assets/javascripts/active_admin/initializers/tabs.es6 → javascript/active_admin/initializers/tabs.js} +0 -0
- data/app/{assets/javascripts/active_admin/lib/checkbox-toggler.es6 → javascript/active_admin/lib/checkbox-toggler.js} +5 -5
- data/app/{assets/javascripts/active_admin/lib/dropdown-menu.es6 → javascript/active_admin/lib/dropdown-menu.js} +3 -10
- data/app/javascript/active_admin/lib/filters.js +39 -0
- data/app/{assets/javascripts/active_admin/lib/modal_dialog.es6 → javascript/active_admin/lib/modal-dialog.js} +10 -8
- data/app/javascript/active_admin/lib/per-page.js +38 -0
- data/app/{assets/javascripts/active_admin/lib/table-checkbox-toggler.es6 → javascript/active_admin/lib/table-checkbox-toggler.js} +5 -3
- data/app/javascript/active_admin/lib/utils.js +40 -0
- data/app/views/layouts/active_admin_logged_out.html.erb +15 -5
- data/config/locales/ar.yml +6 -6
- data/config/locales/az.yml +138 -0
- data/config/locales/en-CA.yml +3 -3
- data/config/locales/en-GB.yml +3 -3
- data/config/locales/en.yml +3 -3
- data/config/locales/es-MX.yml +2 -1
- data/config/locales/es.yml +5 -5
- data/config/locales/fr.yml +4 -4
- data/config/locales/it.yml +18 -0
- data/config/locales/ja.yml +3 -3
- data/config/locales/lv.yml +2 -2
- data/config/locales/vi.yml +6 -5
- data/docs/0-installation.md +26 -2
- data/docs/1-general-configuration.md +20 -0
- data/docs/11-decorators.md +16 -5
- data/docs/2-resource-customization.md +10 -1
- data/docs/3-index-pages.md +1 -1
- data/docs/9-batch-actions.md +2 -2
- data/docs/Gemfile.lock +119 -109
- data/docs/_includes/top-menu.html +1 -1
- data/docs/documentation.md +1 -1
- data/docs/index.html +6 -6
- data/lib/active_admin.rb +43 -44
- data/lib/active_admin/application.rb +7 -7
- data/lib/active_admin/authorization_adapter.rb +3 -3
- data/lib/active_admin/base_controller/authorization.rb +9 -9
- data/lib/active_admin/batch_actions/controller.rb +3 -3
- data/lib/active_admin/batch_actions/views/batch_action_form.rb +1 -1
- data/lib/active_admin/batch_actions/views/batch_action_selector.rb +5 -5
- data/lib/active_admin/collection_decorator.rb +31 -0
- data/lib/active_admin/csv_builder.rb +11 -7
- data/lib/active_admin/dependency.rb +7 -7
- data/lib/active_admin/filters.rb +1 -1
- data/lib/active_admin/filters/active_filter.rb +1 -1
- data/lib/active_admin/filters/forms.rb +3 -3
- data/lib/active_admin/filters/resource_extension.rb +1 -1
- data/lib/active_admin/form_builder.rb +5 -5
- data/lib/active_admin/helpers/optional_display.rb +2 -2
- data/lib/active_admin/inputs/filters/base/search_method_select.rb +2 -2
- data/lib/active_admin/inputs/filters/date_range_input.rb +15 -12
- data/lib/active_admin/localizers/resource_localizer.rb +1 -1
- data/lib/active_admin/menu.rb +5 -2
- data/lib/active_admin/menu_item.rb +7 -7
- data/lib/active_admin/namespace.rb +7 -7
- data/lib/active_admin/namespace_settings.rb +3 -0
- data/lib/active_admin/orm/active_record/comments.rb +11 -11
- data/lib/active_admin/orm/active_record/comments/comment.rb +3 -3
- data/lib/active_admin/orm/active_record/comments/views/active_admin_comments.rb +3 -3
- data/lib/active_admin/pundit_adapter.rb +4 -4
- data/lib/active_admin/resource.rb +1 -1
- data/lib/active_admin/resource/action_items.rb +1 -1
- data/lib/active_admin/resource/menu.rb +4 -4
- data/lib/active_admin/resource/naming.rb +4 -4
- data/lib/active_admin/resource/routes.rb +5 -5
- data/lib/active_admin/resource/scope_to.rb +7 -7
- data/lib/active_admin/resource_controller.rb +4 -3
- data/lib/active_admin/resource_controller/data_access.rb +1 -1
- data/lib/active_admin/resource_controller/decorators.rb +5 -25
- data/lib/active_admin/resource_controller/polymorphic_routes.rb +3 -2
- data/lib/active_admin/resource_dsl.rb +5 -5
- data/lib/active_admin/scope.rb +5 -5
- data/lib/active_admin/version.rb +1 -1
- data/lib/active_admin/view_factory.rb +16 -16
- data/lib/active_admin/view_helpers/breadcrumb_helper.rb +1 -1
- data/lib/active_admin/view_helpers/display_helper.rb +3 -3
- data/lib/active_admin/view_helpers/fields_for.rb +1 -1
- data/lib/active_admin/views/components/attributes_table.rb +2 -2
- data/lib/active_admin/views/components/dropdown_menu.rb +2 -2
- data/lib/active_admin/views/components/index_list.rb +1 -1
- data/lib/active_admin/views/components/menu_item.rb +1 -1
- data/lib/active_admin/views/components/paginated_collection.rb +15 -14
- data/lib/active_admin/views/components/scopes.rb +2 -0
- data/lib/active_admin/views/components/table_for.rb +12 -11
- data/lib/active_admin/views/components/tabs.rb +1 -1
- data/lib/active_admin/views/index_as_table.rb +6 -6
- data/lib/active_admin/views/pages/base.rb +9 -5
- data/lib/active_admin/views/pages/index.rb +9 -8
- data/lib/generators/active_admin/assets/templates/active_admin.scss +2 -2
- data/lib/generators/active_admin/devise/devise_generator.rb +4 -4
- data/lib/generators/active_admin/install/install_generator.rb +7 -1
- data/lib/generators/active_admin/install/templates/active_admin.rb.erb +9 -2
- data/lib/generators/active_admin/resource/resource_generator.rb +1 -1
- data/lib/generators/active_admin/webpacker/plugins/jquery.js +7 -0
- data/lib/generators/active_admin/webpacker/templates/active_admin.js +5 -0
- data/lib/generators/active_admin/webpacker/templates/active_admin.scss +17 -0
- data/lib/generators/active_admin/webpacker/templates/print.scss +2 -0
- data/lib/generators/active_admin/webpacker/webpacker_generator.rb +26 -0
- metadata +44 -48
- data/app/assets/images/active_admin/nested_menu_arrow.gif +0 -0
- data/app/assets/images/active_admin/nested_menu_arrow_dark.gif +0 -0
- data/app/assets/images/active_admin/orderable.png +0 -0
- data/app/assets/javascripts/active_admin/base.es6 +0 -23
- data/app/assets/javascripts/active_admin/initializers/filters.es6 +0 -45
- data/app/assets/javascripts/active_admin/lib/active_admin.es6 +0 -41
- 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 "
|
3
|
+
@import "./normalize";
|
4
4
|
|
5
5
|
// Partials
|
6
|
-
@import "
|
7
|
-
@import "
|
8
|
-
@import "
|
9
|
-
@import "
|
10
|
-
@import "
|
11
|
-
@import "
|
12
|
-
@import "
|
13
|
-
@import "
|
14
|
-
@import "
|
15
|
-
@import "
|
16
|
-
@import "
|
17
|
-
@import "
|
18
|
-
@import "
|
19
|
-
@import "
|
20
|
-
@import "
|
21
|
-
@import "
|
22
|
-
@import "
|
23
|
-
@import "
|
24
|
-
@import "
|
25
|
-
@import "
|
26
|
-
@import "
|
27
|
-
@import "
|
28
|
-
@import "
|
29
|
-
@import "
|
30
|
-
@import "
|
31
|
-
@import "
|
32
|
-
@import "
|
33
|
-
@import "
|
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:
|
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
|
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
|
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 "
|
1
|
+
@import "./mixins/all";
|
File without changes
|
@@ -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:
|
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 "
|
2
|
-
@import "
|
3
|
-
@import "
|
4
|
-
@import "
|
5
|
-
@import "
|
6
|
-
@import "
|
7
|
-
@import "
|
8
|
-
@import "
|
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 "
|
8
|
+
@import "./normalize";
|
9
9
|
|
10
10
|
// Partials
|
11
|
-
@import "
|
11
|
+
@import "./typography";
|
12
12
|
|
13
13
|
body {
|
14
14
|
font-family: Helvetica, Arial, sans-serif;
|
@@ -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 };
|
File without changes
|
data/app/{assets/javascripts/active_admin/ext/jquery.es6 → javascript/active_admin/ext/jquery.js}
RENAMED
File without changes
|
@@ -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
|
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
|
-
|
17
|
+
ModalDialog(message, $(this).data('inputs'), inputs => {
|
16
18
|
$(this).trigger('confirm:complete', inputs);
|
17
19
|
});
|
18
20
|
} else {
|
File without changes
|
@@ -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);
|
File without changes
|
@@ -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);
|
File without changes
|
@@ -1,4 +1,4 @@
|
|
1
|
-
|
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(
|
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(
|
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
|
-
|
49
|
+
export default CheckboxToggler;
|
@@ -1,5 +1,4 @@
|
|
1
|
-
|
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
|
-
|
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;
|