activeadmin 2.2.0 → 2.12.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 +382 -32
- data/CONTRIBUTING.md +45 -67
- data/README.md +11 -4
- data/app/assets/javascripts/active_admin/base.js +524 -0
- data/app/assets/stylesheets/active_admin/_base.scss +53 -37
- data/app/assets/stylesheets/active_admin/_forms.scss +0 -10
- 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 +25 -123
- data/app/assets/stylesheets/active_admin/{print.scss → _print.scss} +2 -2
- data/app/assets/stylesheets/active_admin/components/_comments.scss +2 -2
- data/app/assets/stylesheets/active_admin/components/_date_picker.scss +1 -2
- data/app/assets/stylesheets/active_admin/components/_dropdown_menu.scss +0 -1
- 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 +17 -0
- data/app/assets/stylesheets/active_admin/structure/_main_structure.scss +1 -1
- data/app/assets/stylesheets/active_admin/structure/_title_bar.scss +0 -1
- data/app/javascript/active_admin/base.js +28 -0
- data/app/{assets/javascripts/active_admin/lib/batch_actions.es6 → javascript/active_admin/initializers/batch-actions.js} +9 -3
- data/app/javascript/active_admin/initializers/checkbox-toggler.js +3 -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} +4 -1
- 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/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/active_admin/devise/mailer/reset_password_instructions.html.erb +1 -1
- data/app/views/active_admin/devise/mailer/unlock_instructions.html.erb +2 -2
- data/app/views/active_admin/devise/shared/_links.erb +1 -1
- data/app/views/active_admin/page/index.html.arb +1 -0
- data/app/views/active_admin/resource/edit.html.arb +1 -0
- data/app/views/active_admin/resource/index.html.arb +1 -0
- data/app/views/active_admin/resource/new.html.arb +1 -0
- data/app/views/active_admin/resource/show.html.arb +1 -0
- data/app/views/kaminari/active_admin_countless/_first_page.html.erb +11 -0
- data/app/views/kaminari/active_admin_countless/_gap.html.erb +8 -0
- data/app/views/kaminari/active_admin_countless/_next_page.html.erb +11 -0
- data/app/views/kaminari/active_admin_countless/_page.html.erb +12 -0
- data/app/views/kaminari/active_admin_countless/_paginator.html.erb +24 -0
- data/app/views/kaminari/active_admin_countless/_prev_page.html.erb +11 -0
- data/app/views/layouts/active_admin.html.arb +1 -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/ca.yml +0 -1
- data/config/locales/de.yml +18 -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/ko.yml +1 -1
- data/config/locales/lv.yml +2 -2
- data/config/locales/nl.yml +1 -1
- data/config/locales/ro.yml +3 -2
- data/config/locales/sk.yml +59 -0
- data/config/locales/vi.yml +6 -5
- data/docs/0-installation.md +27 -3
- data/docs/1-general-configuration.md +20 -0
- data/docs/11-decorators.md +16 -5
- data/docs/2-resource-customization.md +11 -2
- data/docs/3-index-pages/index-as-table.md +7 -0
- data/docs/3-index-pages.md +1 -1
- data/docs/5-forms.md +7 -2
- data/docs/6-show-pages.md +12 -0
- data/docs/8-custom-actions.md +1 -1
- data/docs/9-batch-actions.md +2 -2
- data/docs/Gemfile +3 -3
- data/docs/Gemfile.lock +192 -158
- data/docs/_config.yml +2 -0
- data/docs/_includes/top-menu.html +2 -2
- data/docs/documentation.md +1 -1
- data/docs/index.html +109 -8
- data/docs/stylesheets/main.css +29 -0
- data/lib/active_admin/abstract_view_factory.rb +1 -0
- data/lib/active_admin/application.rb +20 -20
- data/lib/active_admin/application_settings.rb +4 -3
- data/lib/active_admin/asset_registration.rb +1 -0
- data/lib/active_admin/authorization_adapter.rb +4 -3
- data/lib/active_admin/base_controller/authorization.rb +15 -13
- data/lib/active_admin/base_controller/menu.rb +1 -0
- data/lib/active_admin/base_controller.rb +6 -5
- data/lib/active_admin/batch_actions/controller.rb +4 -3
- data/lib/active_admin/batch_actions/resource_extension.rb +10 -8
- data/lib/active_admin/batch_actions/views/batch_action_form.rb +4 -3
- data/lib/active_admin/batch_actions/views/batch_action_selector.rb +7 -6
- data/lib/active_admin/batch_actions/views/selection_cells.rb +4 -3
- data/lib/active_admin/batch_actions.rb +1 -0
- data/lib/active_admin/callbacks.rb +1 -0
- data/lib/active_admin/cancan_adapter.rb +2 -1
- data/lib/active_admin/collection_decorator.rb +32 -0
- data/lib/active_admin/component.rb +1 -0
- data/lib/active_admin/controller_action.rb +1 -0
- data/lib/active_admin/csv_builder.rb +13 -23
- data/lib/active_admin/dependency.rb +13 -12
- data/lib/active_admin/deprecation.rb +1 -0
- data/lib/active_admin/devise.rb +16 -5
- data/lib/active_admin/dsl.rb +2 -1
- data/lib/active_admin/dynamic_setting.rb +1 -0
- data/lib/active_admin/dynamic_settings_node.rb +3 -2
- data/lib/active_admin/engine.rb +13 -9
- data/lib/active_admin/error.rb +1 -2
- data/lib/active_admin/filters/active.rb +2 -1
- data/lib/active_admin/filters/active_filter.rb +7 -7
- data/lib/active_admin/filters/active_sidebar.rb +4 -30
- data/lib/active_admin/filters/dsl.rb +1 -0
- data/lib/active_admin/filters/forms.rb +7 -6
- data/lib/active_admin/filters/formtastic_addons.rb +2 -6
- data/lib/active_admin/filters/resource_extension.rb +26 -1
- data/lib/active_admin/filters.rb +8 -7
- data/lib/active_admin/form_builder.rb +25 -20
- data/lib/active_admin/generators/boilerplate.rb +13 -4
- data/lib/active_admin/helpers/collection.rb +2 -0
- data/lib/active_admin/helpers/i18n.rb +1 -0
- data/lib/active_admin/helpers/optional_display.rb +3 -2
- data/lib/active_admin/helpers/routes/url_helpers.rb +1 -0
- data/lib/active_admin/helpers/scope_chain.rb +1 -0
- data/lib/active_admin/inputs/datepicker_input.rb +2 -1
- data/lib/active_admin/inputs/filters/base/search_method_select.rb +5 -4
- data/lib/active_admin/inputs/filters/base.rb +2 -1
- data/lib/active_admin/inputs/filters/boolean_input.rb +2 -1
- data/lib/active_admin/inputs/filters/check_boxes_input.rb +2 -1
- data/lib/active_admin/inputs/filters/date_picker_input.rb +1 -0
- data/lib/active_admin/inputs/filters/date_range_input.rb +16 -12
- data/lib/active_admin/inputs/filters/numeric_input.rb +1 -0
- data/lib/active_admin/inputs/filters/select_input.rb +3 -2
- data/lib/active_admin/inputs/filters/string_input.rb +1 -0
- data/lib/active_admin/inputs/filters/text_input.rb +1 -0
- data/lib/active_admin/inputs.rb +1 -0
- data/lib/active_admin/localizers/resource_localizer.rb +4 -3
- data/lib/active_admin/localizers.rb +2 -1
- data/lib/active_admin/menu.rb +7 -3
- data/lib/active_admin/menu_collection.rb +1 -0
- data/lib/active_admin/menu_item.rb +8 -7
- data/lib/active_admin/namespace.rb +14 -13
- data/lib/active_admin/namespace_settings.rb +21 -4
- data/lib/active_admin/order_clause.rb +3 -2
- data/lib/active_admin/orm/active_record/comments/comment.rb +4 -3
- data/lib/active_admin/orm/active_record/comments/namespace_helper.rb +1 -0
- data/lib/active_admin/orm/active_record/comments/resource_helper.rb +1 -0
- data/lib/active_admin/orm/active_record/comments/show_page_helper.rb +1 -0
- data/lib/active_admin/orm/active_record/comments/views/active_admin_comments.rb +20 -19
- data/lib/active_admin/orm/active_record/comments/views.rb +3 -2
- data/lib/active_admin/orm/active_record/comments.rb +20 -19
- data/lib/active_admin/orm/active_record.rb +2 -1
- data/lib/active_admin/orm/mongoid.rb +1 -0
- data/lib/active_admin/page.rb +2 -1
- data/lib/active_admin/page_controller.rb +1 -0
- data/lib/active_admin/page_dsl.rb +1 -0
- data/lib/active_admin/page_presenter.rb +1 -0
- data/lib/active_admin/pundit_adapter.rb +47 -11
- data/lib/active_admin/resource/action_items.rb +6 -5
- data/lib/active_admin/resource/attributes.rb +2 -1
- data/lib/active_admin/resource/belongs_to.rb +6 -2
- data/lib/active_admin/resource/controllers.rb +2 -1
- data/lib/active_admin/resource/includes.rb +1 -0
- data/lib/active_admin/resource/menu.rb +5 -4
- data/lib/active_admin/resource/model.rb +16 -0
- data/lib/active_admin/resource/naming.rb +6 -5
- data/lib/active_admin/resource/ordering.rb +1 -0
- data/lib/active_admin/resource/page_presenters.rb +1 -0
- data/lib/active_admin/resource/pagination.rb +1 -0
- data/lib/active_admin/resource/routes.rb +17 -10
- data/lib/active_admin/resource/scope_to.rb +8 -7
- data/lib/active_admin/resource/scopes.rb +1 -0
- data/lib/active_admin/resource/sidebars.rb +2 -1
- data/lib/active_admin/resource.rb +33 -19
- data/lib/active_admin/resource_collection.rb +1 -0
- data/lib/active_admin/resource_controller/action_builder.rb +1 -0
- data/lib/active_admin/resource_controller/data_access.rb +31 -5
- data/lib/active_admin/resource_controller/decorators.rb +8 -29
- data/lib/active_admin/resource_controller/polymorphic_routes.rb +38 -0
- data/lib/active_admin/resource_controller/resource_class_methods.rb +1 -0
- data/lib/active_admin/resource_controller/scoping.rb +1 -0
- data/lib/active_admin/resource_controller/sidebars.rb +1 -0
- data/lib/active_admin/resource_controller/streaming.rb +9 -7
- data/lib/active_admin/resource_controller.rb +14 -10
- data/lib/active_admin/resource_dsl.rb +11 -25
- data/lib/active_admin/router.rb +1 -0
- data/lib/active_admin/scope.rb +7 -6
- data/lib/active_admin/settings_node.rb +1 -0
- data/lib/active_admin/sidebar_section.rb +1 -0
- data/lib/active_admin/version.rb +2 -1
- data/lib/active_admin/view_factory.rb +18 -17
- data/lib/active_admin/view_helpers/active_admin_application_helper.rb +1 -0
- data/lib/active_admin/view_helpers/auto_link_helper.rb +1 -0
- data/lib/active_admin/view_helpers/breadcrumb_helper.rb +4 -3
- data/lib/active_admin/view_helpers/display_helper.rb +15 -7
- data/lib/active_admin/view_helpers/download_format_links_helper.rb +2 -1
- data/lib/active_admin/view_helpers/fields_for.rb +3 -2
- data/lib/active_admin/view_helpers/flash_helper.rb +1 -0
- data/lib/active_admin/view_helpers/form_helper.rb +1 -0
- data/lib/active_admin/view_helpers/method_or_proc_helper.rb +1 -0
- data/lib/active_admin/view_helpers/scope_name_helper.rb +1 -0
- data/lib/active_admin/view_helpers/sidebar_helper.rb +1 -0
- data/lib/active_admin/view_helpers/title_helper.rb +1 -0
- data/lib/active_admin/view_helpers/view_factory_helper.rb +1 -0
- data/lib/active_admin/view_helpers.rb +2 -1
- data/lib/active_admin/views/action_items.rb +1 -0
- data/lib/active_admin/views/components/active_admin_form.rb +7 -6
- data/lib/active_admin/views/components/active_filters_sidebar_content.rb +59 -0
- data/lib/active_admin/views/components/attributes_table.rb +6 -5
- data/lib/active_admin/views/components/blank_slate.rb +2 -1
- data/lib/active_admin/views/components/columns.rb +1 -0
- data/lib/active_admin/views/components/dropdown_menu.rb +7 -9
- data/lib/active_admin/views/components/index_list.rb +4 -3
- data/lib/active_admin/views/components/menu.rb +2 -1
- data/lib/active_admin/views/components/menu_item.rb +5 -4
- data/lib/active_admin/views/components/paginated_collection.rb +21 -19
- data/lib/active_admin/views/components/panel.rb +2 -1
- data/lib/active_admin/views/components/scopes.rb +8 -5
- data/lib/active_admin/views/components/sidebar.rb +1 -0
- data/lib/active_admin/views/components/sidebar_section.rb +1 -0
- data/lib/active_admin/views/components/site_title.rb +2 -1
- data/lib/active_admin/views/components/status_tag.rb +12 -11
- data/lib/active_admin/views/components/table_for.rb +19 -17
- data/lib/active_admin/views/components/tabs.rb +4 -3
- data/lib/active_admin/views/components/unsupported_browser.rb +1 -0
- data/lib/active_admin/views/footer.rb +3 -1
- data/lib/active_admin/views/header.rb +3 -2
- data/lib/active_admin/views/index_as_block.rb +1 -0
- data/lib/active_admin/views/index_as_blog.rb +2 -1
- data/lib/active_admin/views/index_as_grid.rb +2 -1
- data/lib/active_admin/views/index_as_table.rb +24 -16
- data/lib/active_admin/views/pages/base.rb +19 -12
- data/lib/active_admin/views/pages/form.rb +1 -0
- data/lib/active_admin/views/pages/index.rb +16 -13
- data/lib/active_admin/views/pages/layout.rb +1 -0
- data/lib/active_admin/views/pages/page.rb +1 -0
- data/lib/active_admin/views/pages/show.rb +1 -0
- data/lib/active_admin/views/tabbed_navigation.rb +3 -2
- data/lib/active_admin/views/title_bar.rb +2 -1
- data/lib/active_admin/views.rb +2 -1
- data/lib/active_admin.rb +63 -64
- data/lib/activeadmin.rb +2 -1
- data/lib/generators/active_admin/assets/assets_generator.rb +3 -2
- data/lib/generators/active_admin/assets/templates/active_admin.scss +2 -2
- data/lib/generators/active_admin/devise/devise_generator.rb +6 -5
- data/lib/generators/active_admin/install/install_generator.rb +15 -8
- data/lib/generators/active_admin/install/templates/active_admin.rb.erb +21 -1
- data/lib/generators/active_admin/install/templates/dashboard.rb +1 -0
- data/lib/generators/active_admin/page/page_generator.rb +2 -1
- data/lib/generators/active_admin/page/templates/page.rb +1 -0
- data/lib/generators/active_admin/resource/resource_generator.rb +4 -3
- data/lib/generators/active_admin/resource/templates/admin.rb.erb +4 -2
- 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 +27 -0
- data/lib/ransack_ext.rb +9 -8
- metadata +62 -91
- 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
- /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/initializers/datepicker.es6 → javascript/active_admin/initializers/datepicker.js} +0 -0
- /data/app/{assets/javascripts/active_admin/initializers/tabs.es6 → javascript/active_admin/initializers/tabs.js} +0 -0
@@ -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;
|
@@ -1,14 +1,14 @@
|
|
1
|
-
|
1
|
+
function ModalDialog(message, inputs, callback){
|
2
2
|
let html = `<form id="dialog_confirm" title="${message}"><ul>`;
|
3
3
|
for (let name in inputs) {
|
4
|
-
var
|
4
|
+
var opts, wrapper;
|
5
5
|
let type = inputs[name];
|
6
6
|
if (/^(datepicker|checkbox|text|number)$/.test(type)) {
|
7
7
|
wrapper = 'input';
|
8
8
|
} else if (type === 'textarea') {
|
9
9
|
wrapper = 'textarea';
|
10
10
|
} else if ($.isArray(type)) {
|
11
|
-
[wrapper,
|
11
|
+
[wrapper, opts, type] = ['select', type, ''];
|
12
12
|
} else {
|
13
13
|
throw new Error(`Unsupported input type: {${name}: ${type}}`);
|
14
14
|
}
|
@@ -21,20 +21,20 @@ ActiveAdmin.modal_dialog = function(message, inputs, callback){
|
|
21
21
|
const result = [];
|
22
22
|
|
23
23
|
opts.forEach(v => {
|
24
|
-
const $elem = $(
|
24
|
+
const $elem = $('<option></option>');
|
25
25
|
if ($.isArray(v)) {
|
26
26
|
$elem.text(v[0]).val(v[1]);
|
27
27
|
} else {
|
28
28
|
$elem.text(v);
|
29
29
|
}
|
30
|
-
result.push($elem.wrap('<div>').parent().html());
|
30
|
+
result.push($elem.wrap('<div></div>').parent().html());
|
31
31
|
});
|
32
32
|
|
33
33
|
return result;
|
34
34
|
})()).join('') : '') +
|
35
35
|
`</${wrapper}>` +
|
36
36
|
"</li>";
|
37
|
-
[wrapper,
|
37
|
+
[wrapper, opts, type, klass] = []; // unset any temporary variables
|
38
38
|
}
|
39
39
|
|
40
40
|
html += "</ul></form>";
|
@@ -44,7 +44,7 @@ ActiveAdmin.modal_dialog = function(message, inputs, callback){
|
|
44
44
|
|
45
45
|
form.dialog({
|
46
46
|
modal: true,
|
47
|
-
open(
|
47
|
+
open(_event, _ui) {
|
48
48
|
$('body').trigger('modal_dialog:after_open', [form]);
|
49
49
|
},
|
50
50
|
dialogClass: 'active_admin_dialog',
|
@@ -58,4 +58,6 @@ ActiveAdmin.modal_dialog = function(message, inputs, callback){
|
|
58
58
|
}
|
59
59
|
}
|
60
60
|
});
|
61
|
-
}
|
61
|
+
}
|
62
|
+
|
63
|
+
export default ModalDialog;
|
@@ -0,0 +1,38 @@
|
|
1
|
+
import { queryStringToParams, hasTurbolinks, turbolinksVisit, toQueryString } from './utils';
|
2
|
+
|
3
|
+
class PerPage {
|
4
|
+
constructor(element) {
|
5
|
+
this.element = element;
|
6
|
+
}
|
7
|
+
|
8
|
+
update() {
|
9
|
+
const params = queryStringToParams()
|
10
|
+
.filter(({name}) => name != 'per_page' || name != 'page')
|
11
|
+
|
12
|
+
params.push({ name: 'per_page', value: this.element.value });
|
13
|
+
|
14
|
+
if (hasTurbolinks()) {
|
15
|
+
turbolinksVisit(params);
|
16
|
+
} else {
|
17
|
+
window.location.search = toQueryString(params);
|
18
|
+
}
|
19
|
+
}
|
20
|
+
|
21
|
+
static _jQueryInterface(config) {
|
22
|
+
return this.each(function () {
|
23
|
+
const $this = $(this)
|
24
|
+
let data = $this.data('perPage')
|
25
|
+
|
26
|
+
if (!data) {
|
27
|
+
data = new PerPage(this)
|
28
|
+
$this.data('perPage', data)
|
29
|
+
}
|
30
|
+
|
31
|
+
if (config === 'update') {
|
32
|
+
data[config]()
|
33
|
+
}
|
34
|
+
})
|
35
|
+
}
|
36
|
+
}
|
37
|
+
|
38
|
+
export default PerPage;
|
@@ -1,4 +1,6 @@
|
|
1
|
-
|
1
|
+
import CheckboxToggler from "./checkbox-toggler";
|
2
|
+
|
3
|
+
class TableCheckboxToggler extends CheckboxToggler {
|
2
4
|
_bind() {
|
3
5
|
super._bind(...arguments);
|
4
6
|
|
@@ -31,6 +33,6 @@ ActiveAdmin.TableCheckboxToggler = class TableCheckboxToggler extends ActiveAdmi
|
|
31
33
|
.find(':checkbox')
|
32
34
|
.click();
|
33
35
|
}
|
34
|
-
}
|
36
|
+
}
|
35
37
|
|
36
|
-
|
38
|
+
export default TableCheckboxToggler;
|
@@ -0,0 +1,40 @@
|
|
1
|
+
function hasTurbolinks() {
|
2
|
+
return (typeof Turbolinks !== 'undefined' && Turbolinks.supported);
|
3
|
+
}
|
4
|
+
|
5
|
+
function turbolinksVisit(params) {
|
6
|
+
const path = [window.location.pathname, '?', toQueryString(params)].join('')
|
7
|
+
Turbolinks.visit(path);
|
8
|
+
}
|
9
|
+
|
10
|
+
function queryString() {
|
11
|
+
return (window.location.search || '').replace(/^\?/, '');
|
12
|
+
}
|
13
|
+
|
14
|
+
function queryStringToParams() {
|
15
|
+
const decode = (value) => decodeURIComponent((value || '').replace(/\+/g, '%20'));
|
16
|
+
|
17
|
+
return queryString()
|
18
|
+
.split("&")
|
19
|
+
.map(pair => pair.split("="))
|
20
|
+
.map(([key, value]) => {
|
21
|
+
return { name: decode(key), value: decode(value) }
|
22
|
+
});
|
23
|
+
}
|
24
|
+
|
25
|
+
function toQueryString(params) {
|
26
|
+
const encode = (value) => encodeURIComponent(value || '');
|
27
|
+
|
28
|
+
return params
|
29
|
+
.map(({name, value}) => [ encode(name), encode(value) ])
|
30
|
+
.map(pair => pair.join('='))
|
31
|
+
.join('&')
|
32
|
+
}
|
33
|
+
|
34
|
+
export {
|
35
|
+
hasTurbolinks,
|
36
|
+
turbolinksVisit,
|
37
|
+
queryString,
|
38
|
+
queryStringToParams,
|
39
|
+
toQueryString
|
40
|
+
};
|
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
<p>Someone has requested a link to change your password, and you can do this through the link below.</p>
|
4
4
|
|
5
|
-
<p><%= link_to 'Change my password', edit_password_url(@resource, reset_password_token: @
|
5
|
+
<p><%= link_to 'Change my password', edit_password_url(@resource, reset_password_token: @token) %></p>
|
6
6
|
|
7
7
|
<p>If you didn't request this, please ignore this email.</p>
|
8
8
|
<p>Your password won't change until you access the link above and create a new one.</p>
|
@@ -1,7 +1,7 @@
|
|
1
1
|
<p>Hello <%= @resource.email %>!</p>
|
2
2
|
|
3
|
-
<p>Your account has been locked due to an excessive
|
3
|
+
<p>Your account has been locked due to an excessive number of unsuccessful sign in attempts.</p>
|
4
4
|
|
5
5
|
<p>Click the link below to unlock your account:</p>
|
6
6
|
|
7
|
-
<p><%= link_to 'Unlock my account', unlock_url(@resource, unlock_token: @
|
7
|
+
<p><%= link_to 'Unlock my account', unlock_url(@resource, unlock_token: @token) %></p>
|
@@ -27,7 +27,7 @@
|
|
27
27
|
<%- if devise_mapping.omniauthable? %>
|
28
28
|
<%- resource_class.omniauth_providers.each do |provider| %>
|
29
29
|
<%= link_to t('active_admin.devise.links.sign_in_with_omniauth_provider', provider: provider.to_s.titleize),
|
30
|
-
omniauth_authorize_path(resource_name, provider) %>
|
30
|
+
omniauth_authorize_path(resource_name, provider), method: :post %>
|
31
31
|
<br>
|
32
32
|
<% end -%>
|
33
33
|
<% end -%>
|
@@ -0,0 +1,11 @@
|
|
1
|
+
<%# Link to the "First" page
|
2
|
+
- available local variables
|
3
|
+
url: url to the first page
|
4
|
+
current_page: a page object for the currently displayed page
|
5
|
+
total_pages: total number of pages
|
6
|
+
per_page: number of items to fetch per page
|
7
|
+
remote: data-remote
|
8
|
+
-%>
|
9
|
+
<span class="first">
|
10
|
+
<%= link_to_unless current_page.first?, t('views.pagination.first').html_safe, url, remote: remote %>
|
11
|
+
</span>
|
@@ -0,0 +1,8 @@
|
|
1
|
+
<%# Non-link tag that stands for skipped pages...
|
2
|
+
- available local variables
|
3
|
+
current_page: a page object for the currently displayed page
|
4
|
+
total_pages: total number of pages
|
5
|
+
per_page: number of items to fetch per page
|
6
|
+
remote: data-remote
|
7
|
+
-%>
|
8
|
+
<span class="page gap"><%= t('views.pagination.truncate').html_safe %></span>
|
@@ -0,0 +1,11 @@
|
|
1
|
+
<%# Link to the "Next" page
|
2
|
+
- available local variables
|
3
|
+
url: url to the next page
|
4
|
+
current_page: a page object for the currently displayed page
|
5
|
+
total_pages: total number of pages
|
6
|
+
per_page: number of items to fetch per page
|
7
|
+
remote: data-remote
|
8
|
+
-%>
|
9
|
+
<span class="next">
|
10
|
+
<%= link_to_unless current_page.last?, t('views.pagination.next').html_safe, url, rel: 'next', remote: remote %>
|
11
|
+
</span>
|
@@ -0,0 +1,12 @@
|
|
1
|
+
<%# Link showing page number
|
2
|
+
- available local variables
|
3
|
+
page: a page object for "this" page
|
4
|
+
url: url to this page
|
5
|
+
current_page: a page object for the currently displayed page
|
6
|
+
total_pages: total number of pages
|
7
|
+
per_page: number of items to fetch per page
|
8
|
+
remote: data-remote
|
9
|
+
-%>
|
10
|
+
<span class="page<%= ' current' if page.current? %>">
|
11
|
+
<%= link_to_unless page.current?, page, url, {remote: remote, rel: page.rel} %>
|
12
|
+
</span>
|
@@ -0,0 +1,24 @@
|
|
1
|
+
<%# The container tag
|
2
|
+
- available local variables
|
3
|
+
current_page: a page object for the currently displayed page
|
4
|
+
total_pages: total number of pages
|
5
|
+
per_page: number of items to fetch per page
|
6
|
+
remote: data-remote
|
7
|
+
paginator: the paginator that renders the pagination tags inside
|
8
|
+
-%>
|
9
|
+
<%= paginator.render do -%>
|
10
|
+
<nav class="pagination">
|
11
|
+
<%= first_page_tag unless current_page.first? %>
|
12
|
+
<%= prev_page_tag unless current_page.first? %>
|
13
|
+
<% each_page do |page| -%>
|
14
|
+
<% if page.display_tag? -%>
|
15
|
+
<%= page_tag page %>
|
16
|
+
<% elsif !page.was_truncated? -%>
|
17
|
+
<%= gap_tag %>
|
18
|
+
<% end -%>
|
19
|
+
<% end -%>
|
20
|
+
<% unless current_page.out_of_range? %>
|
21
|
+
<%= next_page_tag unless current_page.last? %>
|
22
|
+
<% end %>
|
23
|
+
</nav>
|
24
|
+
<% end -%>
|
@@ -0,0 +1,11 @@
|
|
1
|
+
<%# Link to the "Previous" page
|
2
|
+
- available local variables
|
3
|
+
url: url to the previous page
|
4
|
+
current_page: a page object for the currently displayed page
|
5
|
+
total_pages: total number of pages
|
6
|
+
per_page: number of items to fetch per page
|
7
|
+
remote: data-remote
|
8
|
+
-%>
|
9
|
+
<span class="prev">
|
10
|
+
<%= link_to_unless current_page.first?, t('views.pagination.previous').html_safe, url, rel: 'prev', remote: remote %>
|
11
|
+
</span>
|
@@ -6,10 +6,18 @@
|
|
6
6
|
<title><%= [@page_title, ActiveAdmin.application.site_title(self)].compact.join(" | ") %></title>
|
7
7
|
|
8
8
|
<% ActiveAdmin.application.stylesheets.each do |style, options| %>
|
9
|
-
|
9
|
+
<% if ActiveAdmin.application.use_webpacker %>
|
10
|
+
<%= stylesheet_pack_tag style, **options %>
|
11
|
+
<% else %>
|
12
|
+
<%= stylesheet_link_tag style, **options %>
|
13
|
+
<% end %>
|
10
14
|
<% end %>
|
11
15
|
<% ActiveAdmin.application.javascripts.each do |path| %>
|
12
|
-
|
16
|
+
<% if ActiveAdmin.application.use_webpacker %>
|
17
|
+
<%= javascript_pack_tag path %>
|
18
|
+
<% else %>
|
19
|
+
<%= javascript_include_tag path %>
|
20
|
+
<% end %>
|
13
21
|
<% end %>
|
14
22
|
|
15
23
|
<%= favicon_link_tag ActiveAdmin.application.favicon if ActiveAdmin.application.favicon %>
|
@@ -24,9 +32,11 @@
|
|
24
32
|
<div id="wrapper">
|
25
33
|
|
26
34
|
<div id="content_wrapper">
|
27
|
-
|
28
|
-
|
29
|
-
|
35
|
+
<div class="flashes">
|
36
|
+
<% flash_messages.each do |type, message| %>
|
37
|
+
<%= content_tag :div, message, class: "flash flash_#{type}" %>
|
38
|
+
<% end %>
|
39
|
+
</div>
|
30
40
|
<div id="active_admin_content">
|
31
41
|
<%= yield %>
|
32
42
|
</div>
|
data/config/locales/ar.yml
CHANGED
@@ -8,7 +8,7 @@ ar:
|
|
8
8
|
edit: "تعديل"
|
9
9
|
delete: "حذف"
|
10
10
|
delete_confirmation: "هل تريد تأكيد الحذف؟"
|
11
|
-
new_model: "
|
11
|
+
new_model: "%{model} جديد"
|
12
12
|
edit_model: "تعديل %{model}"
|
13
13
|
delete_model: "حذف %{model}"
|
14
14
|
details: "تفاصيل %{model}"
|
@@ -97,12 +97,12 @@ ar:
|
|
97
97
|
password:
|
98
98
|
title: "كلمة المرور"
|
99
99
|
sign_up:
|
100
|
-
title: "تسجيل
|
101
|
-
submit: "تسجيل
|
100
|
+
title: "تسجيل"
|
101
|
+
submit: "تسجيل"
|
102
102
|
login:
|
103
|
-
title: "
|
103
|
+
title: "تسجيل الدخول"
|
104
104
|
remember_me: "تذكرني"
|
105
|
-
submit: "
|
105
|
+
submit: "تسجيل الدخول"
|
106
106
|
reset_password:
|
107
107
|
title: "هل نسيت كلمة المرور؟"
|
108
108
|
submit: "استرجاع كلمة المرور"
|
@@ -117,7 +117,7 @@ ar:
|
|
117
117
|
submit: "إعادة ارسال تعليمات التأكيد"
|
118
118
|
links:
|
119
119
|
sign_up: "التسجيل"
|
120
|
-
sign_in: "
|
120
|
+
sign_in: "تسجيل الدخول"
|
121
121
|
forgot_your_password: "هل نسيت كلمة المرور؟"
|
122
122
|
sign_in_with_omniauth_provider: "تسجيل الدخول بـ %{provider}"
|
123
123
|
resend_unlock_instructions: "إعادة إرسال تعليمات تنشيط الحساب"
|
@@ -0,0 +1,138 @@
|
|
1
|
+
az:
|
2
|
+
active_admin:
|
3
|
+
dashboard: "İdarəetmə paneli"
|
4
|
+
dashboard_welcome:
|
5
|
+
welcome: "Active Admin-ə xoş gəlmişsiniz. Bu saytla idarəetmənin standart səhifəsidir."
|
6
|
+
call_to_action: "Buraya nə isə əlavə etmək üçün 'app/admin/dashboard.rb' sənədini dəyişin"
|
7
|
+
view: "Aç"
|
8
|
+
edit: "Dəyiş"
|
9
|
+
delete: "Sil"
|
10
|
+
delete_confirmation: "Siz bunu silmək istədiyinizdən əminsiniz?"
|
11
|
+
new_model: "%{model} yarat"
|
12
|
+
edit_model: "%{model} dəyiş"
|
13
|
+
delete_model: "%{model} sil"
|
14
|
+
details: "%{model} haqqında"
|
15
|
+
cancel: "İmtina"
|
16
|
+
empty: "Boş"
|
17
|
+
previous: "Geri"
|
18
|
+
next: "İrəli"
|
19
|
+
download: "Yüklənmə:"
|
20
|
+
has_many_new: "%{model} əlavə et"
|
21
|
+
has_many_delete: "Sil"
|
22
|
+
has_many_remove: "Yığışdır"
|
23
|
+
filters:
|
24
|
+
buttons:
|
25
|
+
filter: "Filtrlə"
|
26
|
+
clear: "Təmizlə"
|
27
|
+
predicates:
|
28
|
+
contains: "Yerləşir"
|
29
|
+
equals: "Bərabərdir"
|
30
|
+
starts_with: "Başlayır"
|
31
|
+
ends_with: "Bitir"
|
32
|
+
greater_than: "böyük"
|
33
|
+
less_than: "kiçik"
|
34
|
+
search_status:
|
35
|
+
headline: "Axtarışın statusu:"
|
36
|
+
current_scope: "Sahə:"
|
37
|
+
current_filters: "Cari filter:"
|
38
|
+
no_current_filters: "Heç biri"
|
39
|
+
status_tag:
|
40
|
+
"yes": "Bəli"
|
41
|
+
"no": "Xeyr"
|
42
|
+
main_content: "Создайте %{model}#main_content для отображения содержимого."
|
43
|
+
logout: "Çıxış"
|
44
|
+
powered_by: "Работает на %{active_admin} %{version}"
|
45
|
+
sidebars:
|
46
|
+
filters: "Filterlə"
|
47
|
+
search_status: "Axtarışın statusu"
|
48
|
+
pagination:
|
49
|
+
empty: "%{model} tapılmadı"
|
50
|
+
one: "Nəticə: <b>1</b> %{model}"
|
51
|
+
one_page: "Nəticə: <b>%{n}</b> %{model}"
|
52
|
+
multiple: "Nəticə: %{model} <b>%{from} - %{to}</b> <b>%{total}</b>"
|
53
|
+
multiple_without_total: "Nəticə: %{model} <b>%{from} - %{to}</b>"
|
54
|
+
entry:
|
55
|
+
one: "yazı"
|
56
|
+
few: "yazı"
|
57
|
+
many: "yazı"
|
58
|
+
other: "yazı"
|
59
|
+
any: "İstənilən"
|
60
|
+
blank_slate:
|
61
|
+
content: "%{resource_name} hələ yoxdur."
|
62
|
+
link: "Yarat"
|
63
|
+
dropdown_actions:
|
64
|
+
button_label: "Əməliyyatlar"
|
65
|
+
batch_actions:
|
66
|
+
button_label: "Qrup əməliyyatları"
|
67
|
+
default_confirmation: "Siz bunu etməyinizə əminsiniz?"
|
68
|
+
delete_confirmation: "Siz %{plural_model} silməyə əminsiniz?"
|
69
|
+
succesfully_destroyed:
|
70
|
+
one: "Uğurla silindi: 1 %{model}"
|
71
|
+
few: "Uğurla silindi: %{count} %{plural_model}"
|
72
|
+
many: "Uğurla silindi: %{count} %{plural_model}"
|
73
|
+
other: "Uğurla silindi: %{count} %{plural_model}"
|
74
|
+
selection_toggle_explanation: "(Hamısını seç / Seçilmişləri sıfırla)"
|
75
|
+
action_label: "%{title} seçilmiş"
|
76
|
+
labels:
|
77
|
+
destroy: "Sil"
|
78
|
+
comments:
|
79
|
+
created_at: "Yaranma tarixi"
|
80
|
+
resource_type: "Resursun tipi"
|
81
|
+
author_type: "Müəllifin tipi"
|
82
|
+
body: "Mətn"
|
83
|
+
author: "Müəllif"
|
84
|
+
add: "Şərh əlavə et"
|
85
|
+
delete: "Şərhi sil"
|
86
|
+
delete_confirmation: "Siz bu şərhi silmək istədiyinizdən əminsiniz?"
|
87
|
+
resource: "Resurs"
|
88
|
+
no_comments_yet: "Hələ şərhlər yoxdur."
|
89
|
+
author_missing: "Naməlum"
|
90
|
+
title_content: "Şərhlər (%{count})"
|
91
|
+
errors:
|
92
|
+
empty_text: "Şərh yadda saxlanılmadı, mətn boş ola bilməz."
|
93
|
+
devise:
|
94
|
+
username:
|
95
|
+
title: "İstifadəçi adı"
|
96
|
+
email:
|
97
|
+
title: "E-poçt"
|
98
|
+
subdomain:
|
99
|
+
title: "Subdomen"
|
100
|
+
password:
|
101
|
+
title: "Şifrə"
|
102
|
+
sign_up:
|
103
|
+
title: "Qeydiyyat"
|
104
|
+
submit: "Qeydiyyatdan keç"
|
105
|
+
login:
|
106
|
+
title: "Giriş"
|
107
|
+
remember_me: "Məni yadda saxla"
|
108
|
+
submit: "Daxil ol"
|
109
|
+
reset_password:
|
110
|
+
title: "Şifrəni unutmusunuz?"
|
111
|
+
submit: "Şifrəni sıfırla"
|
112
|
+
change_password:
|
113
|
+
title: "Şifrənin dəyişdirilməsi"
|
114
|
+
submit: "Şifrəni dəyiş"
|
115
|
+
unlock:
|
116
|
+
title: "Blokdan çıxarma üzrə təlimatı yenidən göndərmək"
|
117
|
+
submit: "Blokdan çıxarma üzrə təlimatı yenidən göndərmək"
|
118
|
+
resend_confirmation_instructions:
|
119
|
+
title: "Aktivləşdirmə ismarışını yenidən göndərmək"
|
120
|
+
submit: "Aktivləşdirmə ismarışını yenidən göndərmək"
|
121
|
+
links:
|
122
|
+
sign_up: "Qeydiyyat"
|
123
|
+
sign_in: "Giriş"
|
124
|
+
forgot_your_password: "Şifrəni unutmusunuz?"
|
125
|
+
sign_in_with_omniauth_provider: "%{provider} vasitəsilə daxil ol"
|
126
|
+
resend_unlock_instructions: "Blokdan çıxarma üzrə təlimatı yenidən göndərilməsi"
|
127
|
+
resend_confirmation_instructions: "Aktivləşdirmə ismarışını yenidən göndərilməsi"
|
128
|
+
unsupported_browser:
|
129
|
+
headline: "Zəhmət olmasa, bilin ki, Active Admin artıq Internet Explorer-in köhnə versiyalarını daha dəstəkləmir və yalnız IE 8 versiyasından başlayaraq dəstəkləyir"
|
130
|
+
recommendation: "Biz sizin brauzerinizin versiyasını yeniləməyi məsləhət görürük (<a href=\"http://windows.microsoft.com/ie\">Internet Explorer</a>, <a href=\"https://chrome.google.com/\">Google Chrome</a>, və ya <a href=\"https://mozilla.org/firefox/\">Firefox</a>)."
|
131
|
+
turn_off_compatibility_view: "Əgər siz IE 9 və ya daha yeni versiya istifadə edirsinizsə, əmin olun ki, <a href=\"https://support.microsoft.com/ru-ru/help/17471\">\"Uyğunluğun rejimində baxış\"</a> seçimini söndürmüsünüz."
|
132
|
+
access_denied:
|
133
|
+
message: "Bunu etmək üçün daxil olmalısınız."
|
134
|
+
index_list:
|
135
|
+
table: "Cədvəl"
|
136
|
+
block: "Siyahı"
|
137
|
+
grid: "Tor"
|
138
|
+
blog: "Bloq"
|
data/config/locales/ca.yml
CHANGED
data/config/locales/de.yml
CHANGED
@@ -1,4 +1,20 @@
|
|
1
1
|
de:
|
2
|
+
activerecord:
|
3
|
+
models:
|
4
|
+
comment:
|
5
|
+
one: "Kommentar"
|
6
|
+
other: "Kommentare"
|
7
|
+
active_admin/comment:
|
8
|
+
one: "Kommentar"
|
9
|
+
other: "Kommentare"
|
10
|
+
attributes:
|
11
|
+
active_admin/comment:
|
12
|
+
author_type: "Autortyp"
|
13
|
+
body: "Inhalt"
|
14
|
+
created_at: "Erstellt"
|
15
|
+
namespace: "Namensraum"
|
16
|
+
resource_type: "Ressourcentyp"
|
17
|
+
updated_at: "Aktualisiert"
|
2
18
|
active_admin:
|
3
19
|
dashboard: Übersicht
|
4
20
|
dashboard_welcome:
|
@@ -37,6 +53,8 @@ de:
|
|
37
53
|
lteq_datetime: "Kleiner gleich"
|
38
54
|
from: "Von"
|
39
55
|
to: "Bis"
|
56
|
+
scopes:
|
57
|
+
all: "Alle"
|
40
58
|
search_status:
|
41
59
|
headline: "Filter"
|
42
60
|
current_scope: "Anwendungsbereich:"
|
data/config/locales/en-CA.yml
CHANGED
@@ -68,8 +68,8 @@
|
|
68
68
|
default_confirmation: "Are you sure you want to do this?"
|
69
69
|
delete_confirmation: "Are you sure you want to delete these %{plural_model}?"
|
70
70
|
succesfully_destroyed:
|
71
|
-
one: "Successfully
|
72
|
-
other: "Successfully
|
71
|
+
one: "Successfully deleted 1 %{model}"
|
72
|
+
other: "Successfully deleted %{count} %{plural_model}"
|
73
73
|
selection_toggle_explanation: "(Toggle Selection)"
|
74
74
|
action_label: "%{title} Selected"
|
75
75
|
labels:
|
@@ -82,7 +82,7 @@
|
|
82
82
|
author: "Author"
|
83
83
|
add: "Add Comment"
|
84
84
|
delete: "Delete Comment"
|
85
|
-
delete_confirmation: "Are you sure you want to delete these
|
85
|
+
delete_confirmation: "Are you sure you want to delete these comments?"
|
86
86
|
resource: "Resource"
|
87
87
|
no_comments_yet: "No comments yet."
|
88
88
|
author_missing: "Anonymous"
|
data/config/locales/en-GB.yml
CHANGED
@@ -68,8 +68,8 @@
|
|
68
68
|
default_confirmation: "Are you sure you want to do this?"
|
69
69
|
delete_confirmation: "Are you sure you want to delete these %{plural_model}?"
|
70
70
|
succesfully_destroyed:
|
71
|
-
one: "Successfully
|
72
|
-
other: "Successfully
|
71
|
+
one: "Successfully deleted 1 %{model}"
|
72
|
+
other: "Successfully deleted %{count} %{plural_model}"
|
73
73
|
selection_toggle_explanation: "(Toggle Selection)"
|
74
74
|
action_label: "%{title} Selected"
|
75
75
|
labels:
|
@@ -82,7 +82,7 @@
|
|
82
82
|
author: "Author"
|
83
83
|
add: "Add Comment"
|
84
84
|
delete: "Delete Comment"
|
85
|
-
delete_confirmation: "Are you sure you want to delete these
|
85
|
+
delete_confirmation: "Are you sure you want to delete these comments?"
|
86
86
|
resource: "Resource"
|
87
87
|
no_comments_yet: "No comments yet."
|
88
88
|
author_missing: "Anonymous"
|