activeadmin 4.0.0.beta7 → 4.0.0.beta9
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +2 -2
- data/UPGRADING.md +1 -0
- data/app/javascript/active_admin/features/batch_actions.js +10 -4
- data/app/views/active_admin/_main_navigation.html.erb +2 -2
- data/app/views/active_admin/_site_header.html.erb +3 -3
- data/config/locales/ca.yml +85 -32
- data/config/locales/en.yml +4 -0
- data/config/locales/it.yml +4 -0
- data/lib/active_admin/pundit_adapter.rb +1 -1
- data/lib/active_admin/resource/attributes.rb +8 -1
- data/lib/active_admin/version.rb +1 -1
- data/plugin.js +0 -1
- metadata +5 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2f3c2998aa1c2b5375196a1f9ee0284c699e72a7637f9feab724c46ba0701cee
|
4
|
+
data.tar.gz: 670befa4df9c7d9634320c2735254a420adf7062789ec47ca4bdaa46c8915328
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bc6cab08a78331723344a4307ac5259f30e090e69d6438433697fbf96d43df7a11ca5f5e88d19a3e0c7cf83f833a99d663e74df4f37122b8c1d71375c8c08bea
|
7
|
+
data.tar.gz: 927876e56533e12df325ab50e86058dce84cb47133924fc92559ce7329b376ef6d7f574ee35517ac4115f43cd49469a5ddc308716c51621fe726ff219895950f
|
data/README.md
CHANGED
@@ -75,8 +75,8 @@ Thanks to [Tidelift][tidelift] and all our Tidelift subscribers.
|
|
75
75
|
Thanks to [Open Collective][opencollective contributors] and all our Open Collective contributors.
|
76
76
|
|
77
77
|
[Arbre]: https://github.com/activeadmin/arbre
|
78
|
-
[Devise]: https://github.com/
|
79
|
-
[Formtastic]: https://github.com/
|
78
|
+
[Devise]: https://github.com/heartcombo/devise
|
79
|
+
[Formtastic]: https://github.com/formtastic/formtastic
|
80
80
|
[Inherited Resources]: https://github.com/activeadmin/inherited_resources
|
81
81
|
[Kaminari]: https://github.com/kaminari/kaminari
|
82
82
|
[Ransack]: https://github.com/activerecord-hackery/ransack
|
data/UPGRADING.md
CHANGED
@@ -224,3 +224,4 @@ This release includes several locale changes. Please [reivew the en.yml locale](
|
|
224
224
|
- The `comments.title_content` text has been updated with an "All " prefix.
|
225
225
|
- The `comments.delete_confirmation` text has been fixed to use singular form.
|
226
226
|
- Inconsistent use of login/sign-in related terms so text now uses "Sign in", Sign out", and "Sign up" throughout.
|
227
|
+
- The `toggle_dark_mode`, `toggle_main_navigation_menu`, `toggle_section`, and `toggle_user_menu` keys have been added.
|
@@ -1,11 +1,20 @@
|
|
1
1
|
import Rails from '@rails/ujs';
|
2
2
|
|
3
|
+
const submitForm = function() {
|
4
|
+
let form = document.getElementById("collection_selection")
|
5
|
+
if (form) {
|
6
|
+
form.submit()
|
7
|
+
}
|
8
|
+
}
|
9
|
+
|
3
10
|
const batchActionClick = function(event) {
|
4
11
|
event.preventDefault()
|
5
12
|
let batchAction = document.getElementById("batch_action")
|
6
13
|
if (batchAction) {
|
7
14
|
batchAction.value = this.dataset.action
|
8
15
|
}
|
16
|
+
|
17
|
+
if (!event.target.dataset.confirm) { submitForm() }
|
9
18
|
}
|
10
19
|
|
11
20
|
const batchActionConfirmComplete = function(event) {
|
@@ -15,10 +24,7 @@ const batchActionConfirmComplete = function(event) {
|
|
15
24
|
if (batchAction) {
|
16
25
|
batchAction.value = this.dataset.action
|
17
26
|
}
|
18
|
-
|
19
|
-
if (form) {
|
20
|
-
form.submit()
|
21
|
-
}
|
27
|
+
submitForm()
|
22
28
|
}
|
23
29
|
}
|
24
30
|
|
@@ -1,10 +1,10 @@
|
|
1
|
-
<div id="main-menu" class="fixed top-0 xl:top-16 bottom-0 start-0 z-40 w-72 xl:w-60 p-4 overflow-y-auto transition-transform duration-200 -translate-x-full xl:translate-x-0 bg-white dark:bg-gray-950 xl:border-e xl:border-gray-200 xl:dark:border-white/10" tabindex="-1"
|
1
|
+
<div id="main-menu" class="fixed top-0 xl:top-16 bottom-0 start-0 z-40 w-72 xl:w-60 p-4 overflow-y-auto transition-transform duration-200 -translate-x-full xl:translate-x-0 bg-white dark:bg-gray-950 xl:border-e xl:border-gray-200 xl:dark:border-white/10" tabindex="-1">
|
2
2
|
<ul role="list" class="flex flex-1 flex-col space-y-1.5">
|
3
3
|
<% current_menu.items(self).each do |item| %>
|
4
4
|
<% children = item.items(self).presence %>
|
5
5
|
<li <%= current_menu_item?(item) && "data-open" %> class="group" data-item-id="<%= item.id %>">
|
6
6
|
<% if children %>
|
7
|
-
<button data-menu-button class="text-gray-600 hover:text-gray-900 dark:text-gray-400 dark:hover:text-white flex items-center w-full rounded-md p-2 gap-x-2 text-sm">
|
7
|
+
<button data-menu-button class="text-gray-600 hover:text-gray-900 dark:text-gray-400 dark:hover:text-white flex items-center w-full rounded-md p-2 gap-x-2 text-sm" aria-label="<%= t('active_admin.toggle_section') %>">
|
8
8
|
<%= item.label(self) %>
|
9
9
|
<svg class="group-data-[open]:rotate-90 group-data-[open]:rtl:-rotate-90 ms-auto h-5 w-5 shrink-0 rtl:-scale-x-100" viewBox="0 0 20 20" fill="currentColor" aria-hidden="true">
|
10
10
|
<path fill-rule="evenodd" d="M7.21 14.77a.75.75 0 01.02-1.06L11.168 10 7.23 6.29a.75.75 0 111.04-1.08l4.5 4.25a.75.75 0 010 1.08l-4.5 4.25a.75.75 0 01-1.06-.02z" clip-rule="evenodd" />
|
@@ -1,5 +1,5 @@
|
|
1
1
|
<div class="border-b border-gray-200 dark:border-white/10 dark:bg-gray-950/75 px-4 py-2 flex items-center sticky top-0 z-20 h-16 w-full backdrop-blur-md">
|
2
|
-
<button class="xl:hidden pe-3 inline-flex items-center w-8 h-8 justify-center text-sm text-gray-500 dark:text-gray-400 focus-visible:outline-none focus-visible:ring-ring focus-visible:bg-transparent focus-visible:ring-0 focus-visible:ring-offset-0" data-drawer-target="main-menu" data-drawer-show="main-menu" aria-controls="
|
2
|
+
<button class="xl:hidden pe-3 inline-flex items-center w-8 h-8 justify-center text-sm text-gray-500 dark:text-gray-400 focus-visible:outline-none focus-visible:ring-ring focus-visible:bg-transparent focus-visible:ring-0 focus-visible:ring-offset-0" data-drawer-target="main-menu" data-drawer-show="main-menu" aria-controls="main-menu" aria-label="<%= t('active_admin.toggle_main_navigation_menu') %>">
|
3
3
|
<svg class="w-5 h-5 text-gray-800 dark:text-white" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 17 14"><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M1 1h15M1 7h15M1 13h15"/></svg>
|
4
4
|
</button>
|
5
5
|
|
@@ -9,12 +9,12 @@
|
|
9
9
|
</h1>
|
10
10
|
</div>
|
11
11
|
|
12
|
-
<button type="button" class="dark-mode-toggle flex items-center w-9 h-9 justify-center me-1 text-gray-400 hover:text-gray-500 dark:text-gray-500 dark:hover:text-gray-400 focus:outline-none text-sm">
|
12
|
+
<button type="button" class="dark-mode-toggle flex items-center w-9 h-9 justify-center me-1 text-gray-400 hover:text-gray-500 dark:text-gray-500 dark:hover:text-gray-400 focus:outline-none text-sm" aria-label="<%= t('active_admin.toggle_dark_mode') %>">
|
13
13
|
<svg class="hidden dark:block w-5 h-5 rtl:-scale-x-100" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 18 20"><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M8.509 5.75c0-1.493.394-2.96 1.144-4.25h-.081a8.5 8.5 0 1 0 7.356 12.746A8.5 8.5 0 0 1 8.509 5.75Z"/></svg>
|
14
14
|
<svg class="dark:hidden w-5 h-5" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 20 20"><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M10 3V1m0 18v-2M5.05 5.05 3.636 3.636m12.728 12.728L14.95 14.95M3 10H1m18 0h-2M5.05 14.95l-1.414 1.414M16.364 3.636 14.95 5.05M14 10a4 4 0 1 1-8 0 4 4 0 0 1 8 0Z"/></svg>
|
15
15
|
</button>
|
16
16
|
|
17
|
-
<button id="user-menu-button" class="flex items-center w-9 h-9 justify-center text-sm text-gray-500 focus:outline-none dark:text-gray-200" data-dropdown-toggle="user-menu" data-dropdown-offset-distance="3" data-dropdown-placement="bottom-end">
|
17
|
+
<button id="user-menu-button" class="flex items-center w-9 h-9 justify-center text-sm text-gray-500 focus:outline-none dark:text-gray-200" data-dropdown-toggle="user-menu" data-dropdown-offset-distance="3" data-dropdown-placement="bottom-end" aria-label="<%= t('active_admin.toggle_user_menu') %>">
|
18
18
|
<svg class="w-7 h-7" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 20 20"><path d="M10 0a10 10 0 1 0 10 10A10.011 10.011 0 0 0 10 0Zm0 5a3 3 0 1 1 0 6 3 3 0 0 1 0-6Zm0 13a8.949 8.949 0 0 1-4.951-1.488A3.987 3.987 0 0 1 9 13h2a3.987 3.987 0 0 1 3.951 3.512A8.949 8.949 0 0 1 10 18Z"/></svg>
|
19
19
|
</button>
|
20
20
|
|
data/config/locales/ca.yml
CHANGED
@@ -1,10 +1,27 @@
|
|
1
1
|
ca:
|
2
|
+
activerecord:
|
3
|
+
models:
|
4
|
+
comment:
|
5
|
+
one: "Comentari"
|
6
|
+
other: "Comentaris"
|
7
|
+
active_admin/comment:
|
8
|
+
one: "Comentari"
|
9
|
+
other: "Comentaris"
|
10
|
+
attributes:
|
11
|
+
active_admin/comment:
|
12
|
+
author_type: "Tipus d'autor"
|
13
|
+
body: "Missatge"
|
14
|
+
created_at: "Creat el"
|
15
|
+
namespace: "Espai de noms"
|
16
|
+
resource_type: "Tipus de recurs"
|
17
|
+
updated_at: "Actualitzat el"
|
2
18
|
active_admin:
|
3
|
-
dashboard: Tauler
|
19
|
+
dashboard: "Tauler d'activitat"
|
4
20
|
view: "Mostra"
|
5
21
|
edit: "Edita"
|
6
22
|
delete: "Elimina"
|
7
|
-
delete_confirmation: "Segur que
|
23
|
+
delete_confirmation: "Segur que voleu eliminar-ho?"
|
24
|
+
create_another: "Crear un altre %{model}"
|
8
25
|
new_model: "Crear %{model}"
|
9
26
|
edit_model: "Editar %{model}"
|
10
27
|
delete_model: "Eliminar %{model}"
|
@@ -14,27 +31,41 @@ ca:
|
|
14
31
|
previous: "Anterior"
|
15
32
|
next: "Següent"
|
16
33
|
download: "Descarregar:"
|
17
|
-
has_many_new: "Afegir %{model}"
|
34
|
+
has_many_new: "Afegir un altre %{model}"
|
18
35
|
has_many_delete: "Eliminar"
|
19
36
|
has_many_remove: "Treure"
|
37
|
+
move: "Moure"
|
20
38
|
filters:
|
21
39
|
buttons:
|
22
|
-
filter: "
|
23
|
-
clear: "
|
40
|
+
filter: "Filtra"
|
41
|
+
clear: "Elimina els filtres"
|
42
|
+
predicates:
|
43
|
+
from: "Des de"
|
44
|
+
to: "Fins"
|
45
|
+
scopes:
|
46
|
+
all: "Tots"
|
47
|
+
search_status:
|
48
|
+
title: "Cerca activa"
|
49
|
+
title_with_scope: "Cerca activa per %{name}"
|
50
|
+
no_current_filters: "Sense filtres actius"
|
24
51
|
status_tag:
|
25
52
|
"yes": "Sí"
|
26
53
|
"no": "No"
|
27
|
-
"unset": "
|
28
|
-
logout: "
|
54
|
+
"unset": "Desconegut"
|
55
|
+
logout: "Tanca la sessió"
|
29
56
|
powered_by: "Powered by %{active_admin} %{version}"
|
30
57
|
sidebars:
|
31
58
|
filters: "Filtres"
|
59
|
+
search_status: "Estat de la cerca"
|
32
60
|
pagination:
|
33
|
-
empty: "No
|
34
|
-
one: "S'està mostrant <b>1</b>
|
35
|
-
one_page: "S'estan mostrant <b>tots %{n}</b>
|
36
|
-
multiple: "
|
37
|
-
multiple_without_total: "
|
61
|
+
empty: "No s'ha trobat cap %{model}"
|
62
|
+
one: "S'està mostrant <b>1</b> de <b>1</b>"
|
63
|
+
one_page: "S'estan mostrant <b>tots %{n}</b>"
|
64
|
+
multiple: "Se n'estan mostrant <b>%{from}-%{to}</b> d'un total de <b>%{total}</b>"
|
65
|
+
multiple_without_total: "Se n'estan mostrant <b>%{from}-%{to}</b>"
|
66
|
+
per_page: "Per pàgina"
|
67
|
+
previous: "Anterior"
|
68
|
+
next: "Següent"
|
38
69
|
entry:
|
39
70
|
one: "entrada"
|
40
71
|
other: "entrades"
|
@@ -43,36 +74,55 @@ ca:
|
|
43
74
|
content: "Encara no hi ha cap %{resource_name}."
|
44
75
|
link: "Crea'n un/a"
|
45
76
|
batch_actions:
|
46
|
-
button_label: "
|
47
|
-
default_confirmation: "
|
48
|
-
delete_confirmation: "
|
77
|
+
button_label: "Accions per lots"
|
78
|
+
default_confirmation: "Segur que voleu fer-ho?"
|
79
|
+
delete_confirmation: "Segurs que voleu eliminar aquests %{plural_model}?"
|
49
80
|
succesfully_destroyed:
|
50
|
-
one: "
|
51
|
-
other: "
|
52
|
-
selection_toggle_explanation: "(
|
81
|
+
one: "1 %{model} eliminat"
|
82
|
+
other: "%{count} %{plural_model} eliminats"
|
83
|
+
selection_toggle_explanation: "(Invertir la selecció)"
|
53
84
|
action_label: "%{title} seleccionat"
|
54
85
|
labels:
|
55
|
-
destroy: "
|
86
|
+
destroy: "Esborrar"
|
56
87
|
comments:
|
57
|
-
|
58
|
-
|
88
|
+
created_at: "Creat el"
|
89
|
+
resource_type: "Tipus de recurs"
|
90
|
+
author_type: "Tipus d'author"
|
91
|
+
body: "Missatge"
|
92
|
+
author: "Autor"
|
59
93
|
add: "Afegeix comentari"
|
94
|
+
delete: "Elimina comentari"
|
95
|
+
delete_confirmation: "Esteu segurs que voleu eliminar aquest comentari?"
|
60
96
|
resource: "Recurs"
|
61
|
-
no_comments_yet: "
|
62
|
-
|
97
|
+
no_comments_yet: "Sense comentaris"
|
98
|
+
author_missing: "Anònim"
|
99
|
+
title_content: "Tots els comentaris (%{count})"
|
63
100
|
errors:
|
64
|
-
empty_text: "El comentari no
|
101
|
+
empty_text: "El comentari no s'ha desat, no hi havia text."
|
65
102
|
devise:
|
103
|
+
username:
|
104
|
+
title: "Usuari"
|
105
|
+
email:
|
106
|
+
title: "Email"
|
107
|
+
subdomain:
|
108
|
+
title: "Subdomini"
|
109
|
+
password:
|
110
|
+
title: "Contrasenya"
|
111
|
+
password_confirmation:
|
112
|
+
title: "Confirmeu la contrasenya"
|
113
|
+
sign_up:
|
114
|
+
title: "Doneu-vos d'alta"
|
115
|
+
submit: "Doneu-vos d'alta"
|
66
116
|
login:
|
67
|
-
title: "
|
68
|
-
remember_me: "
|
69
|
-
submit: "
|
117
|
+
title: "Identifiqueu-vos"
|
118
|
+
remember_me: "Recorda'm"
|
119
|
+
submit: "Identifiqueu-vos"
|
70
120
|
reset_password:
|
71
|
-
title: "Heu
|
121
|
+
title: "Heu oblidat la contrasenya?"
|
72
122
|
submit: "Restablir la contrasenya"
|
73
123
|
change_password:
|
74
124
|
title: "Canvieu la contrasenya"
|
75
|
-
submit: "
|
125
|
+
submit: "Canvia'm la contrasenya"
|
76
126
|
unlock:
|
77
127
|
title: "Reenvia instruccions per a desbloquejar"
|
78
128
|
submit: "Reenvia instruccions per a desbloquejar"
|
@@ -80,10 +130,13 @@ ca:
|
|
80
130
|
title: "Reenviar instruccions de confirmació"
|
81
131
|
submit: "Reenviar instruccions de confirmació"
|
82
132
|
links:
|
83
|
-
|
133
|
+
sign_up: "Sign up"
|
134
|
+
sign_in: "Sign in"
|
84
135
|
forgot_your_password: "Heu perdut la contrasenya?"
|
85
|
-
sign_in_with_omniauth_provider: "
|
136
|
+
sign_in_with_omniauth_provider: "Identificació via %{provider}"
|
137
|
+
resend_unlock_instructions: "Reenviar les instruccions de desbloqueig"
|
138
|
+
resend_confirmation_instructions: "Reenviar les instruccions de confirmació"
|
86
139
|
access_denied:
|
87
|
-
message: "No
|
140
|
+
message: "No esteu autoritzats a realitzar aquesta acció"
|
88
141
|
index_list:
|
89
142
|
table: "Taula"
|
data/config/locales/en.yml
CHANGED
@@ -52,6 +52,10 @@ en:
|
|
52
52
|
"yes": "Yes"
|
53
53
|
"no": "No"
|
54
54
|
"unset": "Unknown"
|
55
|
+
toggle_dark_mode: Toggle dark mode
|
56
|
+
toggle_main_navigation_menu: Toggle main navigation menu
|
57
|
+
toggle_section: Toggle section
|
58
|
+
toggle_user_menu: Toggle user menu
|
55
59
|
logout: "Sign out"
|
56
60
|
powered_by: "Powered by %{active_admin} %{version}"
|
57
61
|
sidebars:
|
data/config/locales/it.yml
CHANGED
@@ -52,6 +52,10 @@ it:
|
|
52
52
|
"yes": "Sì"
|
53
53
|
"no": "No"
|
54
54
|
"unset": "Vuoto"
|
55
|
+
toggle_dark_mode: Attiva/Disattiva tema scuro
|
56
|
+
toggle_main_navigation_menu: Espandi/Riduci menu di navigazione principale
|
57
|
+
toggle_section: Espandi/Riduci sezione
|
58
|
+
toggle_user_menu: Espandi/Riduci menu utente
|
55
59
|
logout: "Esci"
|
56
60
|
powered_by: "Powered by %{active_admin} %{version}"
|
57
61
|
sidebars:
|
@@ -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/
|
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
|
-
|
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)
|
data/lib/active_admin/version.rb
CHANGED
data/plugin.js
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: activeadmin
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 4.0.0.
|
4
|
+
version: 4.0.0.beta9
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Charles Maresh
|
@@ -15,7 +15,7 @@ authors:
|
|
15
15
|
autorequire:
|
16
16
|
bindir: bin
|
17
17
|
cert_chain: []
|
18
|
-
date: 2024-
|
18
|
+
date: 2024-08-04 00:00:00.000000000 Z
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
21
21
|
name: arbre
|
@@ -401,11 +401,11 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
401
401
|
version: '3.0'
|
402
402
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
403
403
|
requirements:
|
404
|
-
- - "
|
404
|
+
- - ">="
|
405
405
|
- !ruby/object:Gem::Version
|
406
|
-
version:
|
406
|
+
version: '0'
|
407
407
|
requirements: []
|
408
|
-
rubygems_version: 3.
|
408
|
+
rubygems_version: 3.5.15
|
409
409
|
signing_key:
|
410
410
|
specification_version: 4
|
411
411
|
summary: Active Admin is a Ruby on Rails plugin for generating administration style
|