activeadmin 4.0.0.beta3 → 4.0.0.beta4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of activeadmin might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/CHANGELOG.md +17 -1
- data/CONTRIBUTING.md +7 -11
- data/UPGRADING.md +5 -4
- data/app/controllers/active_admin/resource_controller.rb +1 -1
- data/app/views/active_admin/kaminari/_next_page.html.erb +1 -1
- data/app/views/active_admin/kaminari/_prev_page.html.erb +1 -1
- data/config/importmap.rb +1 -1
- data/config/locales/en.yml +2 -4
- data/config/locales/fr.yml +2 -4
- data/config/locales/nl.yml +2 -4
- data/lib/active_admin/engine.rb +4 -1
- data/lib/active_admin/version.rb +1 -1
- data/lib/active_admin.rb +6 -1
- data/lib/generators/active_admin/resource/resource_generator.rb +6 -2
- data/plugin.js +2 -2
- data/vendor/javascript/rails_ujs_esm.js +1 -0
- metadata +3 -3
- data/config/i18n-tasks.yml +0 -37
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e198e3bd4e5f7b52e3f191631988c775aa5f9e20f0ecfd2077f0e877b21c371d
|
4
|
+
data.tar.gz: d84fdfbd6bb62bd3b0858c8e7eabb4ccd48fa7e925f93a84515df5304d946ae0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8824403283f1e085cee125f52536b43de4e863d1ec481b568af7e04c169d79c4a69ff54327e9569ef78c73b3ebca64ffadffbe49fa83eec0a0606833d5ea3d73
|
7
|
+
data.tar.gz: 4f1dd3d73411c0040931c7215c423a04084f3b242048d8b6734813a8f97709d748c283d0a57c867f3a3e430ee62edbd5415f3eda665f251655d8a0022e9ca129
|
data/CHANGELOG.md
CHANGED
@@ -1,6 +1,22 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
-
|
3
|
+
[Future changelogs have moved to GitHub Releases](https://github.com/activeadmin/activeadmin/releases)
|
4
|
+
|
5
|
+
## 3.2.0 [☰](https://github.com/activeadmin/activeadmin/compare/v3.1.0..v3.2.0)
|
6
|
+
|
7
|
+
### Security Fixes
|
8
|
+
|
9
|
+
* Backport protect against CSV Injection. [#8167] by [@mgrunberg]
|
10
|
+
|
11
|
+
### Enhancements
|
12
|
+
|
13
|
+
* Backport support citext column type in string filter. [#8165] by [@mgrunberg]
|
14
|
+
* Backport provide detail in DB statement timeout error for filters. [#8163] by [@mgrunberg]
|
15
|
+
|
16
|
+
### Bug Fixes
|
17
|
+
|
18
|
+
* Backport make sure menu creation does not modify menu options. [#8166] by [@mgrunberg]
|
19
|
+
* Backport ransack error with filters when ActiveStorage is used. [#8164] by [@mgrunberg]
|
4
20
|
|
5
21
|
## 3.1.0 [☰](https://github.com/activeadmin/activeadmin/compare/v3.0.0..v3.1.0)
|
6
22
|
|
data/CONTRIBUTING.md
CHANGED
@@ -92,15 +92,11 @@ A PR can only be merged into master by a maintainer if: CI is passing, approved
|
|
92
92
|
|
93
93
|
Maintainers need to do the following to push out a release:
|
94
94
|
|
95
|
-
*
|
96
|
-
*
|
97
|
-
|
98
|
-
|
99
|
-
*
|
100
|
-
*
|
101
|
-
|
102
|
-
* Review and merge the PR. The generated changelog in the PR should include all user visible changes you intend to ship.
|
103
|
-
* Run `bin/rake release` from the target branch once the PR is merged.
|
104
|
-
|
105
|
-
[chandler]: https://github.com/mattbrictson/chandler#2-configure-credentials
|
95
|
+
* Create a feature branch from master and make sure it's up to date.
|
96
|
+
* Run `bin/prep-release [version]` and commit the changes. Use Ruby version format. NPM is handled automatically.
|
97
|
+
* Optional: To confirm the release contents, run `gem build` (extract contents) and `npm publish --dry-run`.
|
98
|
+
* Review and merge the PR.
|
99
|
+
* Run `bin/rake release` from the default branch once the PR is merged.
|
100
|
+
* [Create a GitHub Release](https://github.com/activeadmin/activeadmin/releases/new) by selecting the tag and generating the release notes.
|
101
|
+
|
106
102
|
[new issue]: https://github.com/activeadmin/activeadmin/issues/new
|
data/UPGRADING.md
CHANGED
@@ -8,14 +8,14 @@ ActiveAdmin v4 uses TailwindCSS. It has **mobile web, dark mode and RTL support*
|
|
8
8
|
|
9
9
|
These instructions assume the `cssbundling-rails` and `importmap-rails` gems are already installed and you have run their install commands in your app. If you haven't done so, please do before continuing.
|
10
10
|
|
11
|
-
Update your `Gemfile` with `gem "activeadmin", "4.0.0.
|
11
|
+
Update your `Gemfile` with `gem "activeadmin", "4.0.0.beta3"` and then run `gem install activeadmin --pre`.
|
12
12
|
|
13
13
|
Now, run `rails generate active_admin:assets` to replace the old assets with the new files.
|
14
14
|
|
15
15
|
Then add the npm package and update the `build:css` script.
|
16
16
|
|
17
17
|
```
|
18
|
-
yarn add @activeadmin/activeadmin@4.0.0-
|
18
|
+
yarn add @activeadmin/activeadmin@4.0.0-beta3
|
19
19
|
npm pkg set scripts.build:css="tailwindcss -i ./app/assets/stylesheets/active_admin.css -o ./app/assets/builds/active_admin.css --minify -c tailwind-active_admin.config.js"
|
20
20
|
```
|
21
21
|
|
@@ -191,8 +191,7 @@ Note that `@post` can also be used here but make sure to call `authorize!` on it
|
|
191
191
|
This release includes several locale changes. Please [reivew the en.yml locale](https://github.com/activeadmin/activeadmin/blob/master/config/locales/en.yml) for the latest translations.
|
192
192
|
|
193
193
|
- The `dashboard_welcome`, `dropdown_actions`, `main_content` and `unsupported_browser` keys have been removed.
|
194
|
-
-
|
195
|
-
- The `active_admin.pagination` keys have been rewritten to be less verbose.
|
194
|
+
- The `active_admin.pagination` keys have been rewritten to be less verbose and include new entries: next and previous.
|
196
195
|
|
197
196
|
```diff
|
198
197
|
- one: "Displaying <b>1</b> %{model}"
|
@@ -205,6 +204,8 @@ This release includes several locale changes. Please [reivew the en.yml locale](
|
|
205
204
|
+ multiple_without_total: "Showing <b>%{from}-%{to}</b>"
|
206
205
|
- per_page: "Per page: "
|
207
206
|
+ per_page: "Per page "
|
207
|
+
+ previous: "Previous"
|
208
|
+
+ next: "Next"
|
208
209
|
```
|
209
210
|
|
210
211
|
- The `search_status` key contents has multiple, breaking changes:
|
@@ -40,7 +40,7 @@ module ActiveAdmin
|
|
40
40
|
case params[:action].to_sym
|
41
41
|
when :index
|
42
42
|
active_admin_config.get_page_presenter(params[:action], params[:as])
|
43
|
-
when :new, :edit
|
43
|
+
when :new, :edit, :create, :update
|
44
44
|
active_admin_config.get_page_presenter(:form)
|
45
45
|
end || super
|
46
46
|
end
|
@@ -8,7 +8,7 @@
|
|
8
8
|
-%>
|
9
9
|
<% unless current_page.last? %>
|
10
10
|
<%= link_to url, rel: 'next', remote: remote, class: "flex items-center justify-center px-2.5 py-3 h-8 leading-tight text-gray-500 dark:text-gray-400 hover:bg-gray-100 hover:text-gray-700 dark:hover:bg-gray-800 dark:hover:text-white rounded no-underline" do %>
|
11
|
-
<span class="sr-only"><%= t('
|
11
|
+
<span class="sr-only"><%= t('active_admin.pagination.next') %></span>
|
12
12
|
<svg class="w-2.5 h-2.5 rtl:rotate-180" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 6 10">
|
13
13
|
<path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="m1 9 4-4-4-4"/>
|
14
14
|
</svg>
|
@@ -8,7 +8,7 @@
|
|
8
8
|
-%>
|
9
9
|
<% unless current_page.first? %>
|
10
10
|
<%= link_to url, rel: 'prev', remote: remote, class: "flex items-center justify-center px-2.5 py-3 h-8 leading-tight text-gray-500 dark:text-gray-400 hover:bg-gray-100 hover:text-gray-700 dark:hover:bg-gray-800 dark:hover:text-white rounded no-underline" do %>
|
11
|
-
<span class="sr-only"><%= t('
|
11
|
+
<span class="sr-only"><%= t('active_admin.pagination.previous') %></span>
|
12
12
|
<svg class="w-2.5 h-2.5 rtl:rotate-180" aria-hidden="true" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 6 10">
|
13
13
|
<path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 1 1 5l4 4"/>
|
14
14
|
</svg>
|
data/config/importmap.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
pin "flowbite", preload: true # downloaded from https://cdnjs.cloudflare.com/ajax/libs/flowbite/2.2.1/flowbite.min.js
|
3
|
-
pin "@rails/ujs", to: "https://
|
3
|
+
pin "@rails/ujs", to: "rails_ujs_esm.js", preload: true # downloaded from https://cdn.jsdelivr.net/npm/@rails/ujs@7.1.2/+esm
|
4
4
|
pin "active_admin", to: "active_admin.js", preload: true
|
5
5
|
pin_all_from File.expand_path("../app/javascript/active_admin", __dir__), under: "active_admin", preload: true
|
data/config/locales/en.yml
CHANGED
@@ -1,8 +1,4 @@
|
|
1
1
|
en:
|
2
|
-
views:
|
3
|
-
pagination:
|
4
|
-
previous: "Previous"
|
5
|
-
next: "Next"
|
6
2
|
activerecord:
|
7
3
|
models:
|
8
4
|
comment:
|
@@ -68,6 +64,8 @@ en:
|
|
68
64
|
multiple: "Showing <b>%{from}-%{to}</b> of <b>%{total}</b>"
|
69
65
|
multiple_without_total: "Showing <b>%{from}-%{to}</b>"
|
70
66
|
per_page: "Per page "
|
67
|
+
previous: "Previous"
|
68
|
+
next: "Next"
|
71
69
|
entry:
|
72
70
|
one: "entry"
|
73
71
|
other: "entries"
|
data/config/locales/fr.yml
CHANGED
@@ -1,8 +1,4 @@
|
|
1
1
|
fr:
|
2
|
-
views:
|
3
|
-
pagination:
|
4
|
-
previous: "Précédent"
|
5
|
-
next: "Suivant"
|
6
2
|
activerecord:
|
7
3
|
models:
|
8
4
|
comment:
|
@@ -65,6 +61,8 @@ fr:
|
|
65
61
|
multiple: "Affichage de <b>%{from}-%{to}</b> sur <b>%{total}</b>"
|
66
62
|
multiple_without_total: "Affichage de <b>%{from}-%{to}</b>"
|
67
63
|
per_page: "Par page "
|
64
|
+
previous: "Précédent"
|
65
|
+
next: "Suivant"
|
68
66
|
entry:
|
69
67
|
one: "entrée"
|
70
68
|
other: "entrées"
|
data/config/locales/nl.yml
CHANGED
@@ -1,8 +1,4 @@
|
|
1
1
|
nl:
|
2
|
-
views:
|
3
|
-
pagination:
|
4
|
-
previous: "Vorige"
|
5
|
-
next: "Volgende"
|
6
2
|
active_admin:
|
7
3
|
dashboard: Dashboard
|
8
4
|
view: "Bekijk"
|
@@ -52,6 +48,8 @@ nl:
|
|
52
48
|
multiple: "Toont <b>%{from}-%{to}</b> van <b>%{total}</b>"
|
53
49
|
multiple_without_total: "Toont <b>%{from}-%{to}</b>"
|
54
50
|
per_page: "Per pagina: "
|
51
|
+
previous: "Vorige"
|
52
|
+
next: "Volgende"
|
55
53
|
entry:
|
56
54
|
one: "entry"
|
57
55
|
other: "entries"
|
data/lib/active_admin/engine.rb
CHANGED
@@ -15,7 +15,10 @@ module ActiveAdmin
|
|
15
15
|
end
|
16
16
|
end
|
17
17
|
|
18
|
-
initializer "active_admin.importmap",
|
18
|
+
initializer "active_admin.importmap", after: "importmap" do |app|
|
19
|
+
# Skip if importmap-rails is not installed
|
20
|
+
next unless app.config.respond_to?(:importmap)
|
21
|
+
|
19
22
|
ActiveAdmin.importmap.draw(Engine.root.join("config", "importmap.rb"))
|
20
23
|
package_path = Engine.root.join("app/javascript")
|
21
24
|
if app.config.respond_to?(:assets)
|
data/lib/active_admin/version.rb
CHANGED
data/lib/active_admin.rb
CHANGED
@@ -9,6 +9,12 @@ require "formtastic_i18n"
|
|
9
9
|
require "inherited_resources"
|
10
10
|
require "arbre"
|
11
11
|
|
12
|
+
begin
|
13
|
+
require "importmap-rails"
|
14
|
+
rescue LoadError
|
15
|
+
# importmap-rails is optional
|
16
|
+
end
|
17
|
+
|
12
18
|
module ActiveAdmin
|
13
19
|
|
14
20
|
autoload :VERSION, "active_admin/version"
|
@@ -57,7 +63,6 @@ module ActiveAdmin
|
|
57
63
|
end
|
58
64
|
|
59
65
|
def importmap
|
60
|
-
require "importmap-rails"
|
61
66
|
@importmap ||= Importmap::Map.new
|
62
67
|
end
|
63
68
|
|
@@ -16,8 +16,12 @@ module ActiveAdmin
|
|
16
16
|
@attributes ||= class_name.constantize.new.attributes.keys
|
17
17
|
end
|
18
18
|
|
19
|
+
def primary_key
|
20
|
+
@primary_key ||= [class_name.constantize.primary_key].flatten
|
21
|
+
end
|
22
|
+
|
19
23
|
def assignable_attributes
|
20
|
-
@assignable_attributes ||= attributes - %w(
|
24
|
+
@assignable_attributes ||= attributes - primary_key - %w(created_at updated_at)
|
21
25
|
end
|
22
26
|
|
23
27
|
def permit_params
|
@@ -33,7 +37,7 @@ module ActiveAdmin
|
|
33
37
|
end
|
34
38
|
|
35
39
|
def columns
|
36
|
-
attributes.map { |a| column(a) }.join("\n ")
|
40
|
+
(attributes - primary_key).map { |a| column(a) }.join("\n ")
|
37
41
|
end
|
38
42
|
|
39
43
|
def column(name)
|
data/plugin.js
CHANGED
@@ -513,10 +513,10 @@ module.exports = plugin(
|
|
513
513
|
'@apply text-gray-500 mt-2': {}
|
514
514
|
},
|
515
515
|
'.formtastic :where(.errors)': {
|
516
|
-
'@apply p-4 mb-
|
516
|
+
'@apply p-4 mb-6 rounded-md space-y-2 bg-red-50 text-red-800 dark:bg-red-800 dark:text-red-300': {}
|
517
517
|
},
|
518
518
|
'.formtastic :where(.errors > li)': {
|
519
|
-
'@apply list-disc ms-4
|
519
|
+
'@apply list-disc ms-4': {}
|
520
520
|
},
|
521
521
|
'.formtastic :where(.inline-errors)': {
|
522
522
|
'@apply font-bold mt-2 text-red-600 dark:text-red-300': {}
|
@@ -0,0 +1 @@
|
|
1
|
+
const t="a[data-confirm], a[data-method], a[data-remote]:not([disabled]), a[data-disable-with], a[data-disable]",e={selector:"button[data-remote]:not([form]), button[data-confirm]:not([form])",exclude:"form button"},n="select[data-remote], input[data-remote], textarea[data-remote]",a="form:not([data-turbo=true])",o="form:not([data-turbo=true]) input[type=submit], form:not([data-turbo=true]) input[type=image], form:not([data-turbo=true]) button[type=submit], form:not([data-turbo=true]) button:not([type]), input[type=submit][form], input[type=image][form], button[type=submit][form], button[form]:not([type])",r="input[data-disable-with]:enabled, button[data-disable-with]:enabled, textarea[data-disable-with]:enabled, input[data-disable]:enabled, button[data-disable]:enabled, textarea[data-disable]:enabled",i="input[data-disable-with]:disabled, button[data-disable-with]:disabled, textarea[data-disable-with]:disabled, input[data-disable]:disabled, button[data-disable]:disabled, textarea[data-disable]:disabled",u="a[data-disable-with], a[data-disable]",c="button[data-remote][data-disable-with], button[data-remote][data-disable]";let s=null;const l=()=>{const t=document.querySelector("meta[name=csp-nonce]");return s=t&&t.content},d=()=>s||l(),m=Element.prototype.matches||Element.prototype.matchesSelector||Element.prototype.mozMatchesSelector||Element.prototype.msMatchesSelector||Element.prototype.oMatchesSelector||Element.prototype.webkitMatchesSelector,p=function(t,e){return e.exclude?m.call(t,e.selector)&&!m.call(t,e.exclude):m.call(t,e)},f="_ujsData",b=(t,e)=>t[f]?t[f][e]:void 0,h=function(t,e,n){return t[f]||(t[f]={}),t[f][e]=n},y=t=>Array.prototype.slice.call(document.querySelectorAll(t)),j=function(t){var e=!1;do{if(t.isContentEditable){e=!0;break}t=t.parentElement}while(t);return e},v=()=>{const t=document.querySelector("meta[name=csrf-token]");return t&&t.content},E=()=>{const t=document.querySelector("meta[name=csrf-param]");return t&&t.content},g=t=>{const e=v();if(e)return t.setRequestHeader("X-CSRF-Token",e)},w=()=>{const t=v(),e=E();if(t&&e)return y('form input[name="'+e+'"]').forEach((e=>e.value=t))},x={"*":"*/*",text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript",script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},S=t=>{t=k(t);var e=C(t,(function(){const n=T(null!=e.response?e.response:e.responseText,e.getResponseHeader("Content-Type"));return 2===Math.floor(e.status/100)?"function"==typeof t.success&&t.success(n,e.statusText,e):"function"==typeof t.error&&t.error(n,e.statusText,e),"function"==typeof t.complete?t.complete(e,e.statusText):void 0}));return!(t.beforeSend&&!t.beforeSend(e,t))&&(e.readyState===XMLHttpRequest.OPENED?e.send(t.data):void 0)};var k=function(t){return t.url=t.url||location.href,t.type=t.type.toUpperCase(),"GET"===t.type&&t.data&&(t.url.indexOf("?")<0?t.url+="?"+t.data:t.url+="&"+t.data),t.dataType in x||(t.dataType="*"),t.accept=x[t.dataType],"*"!==t.dataType&&(t.accept+=", */*; q=0.01"),t},C=function(t,e){const n=new XMLHttpRequest;return n.open(t.type,t.url,!0),n.setRequestHeader("Accept",t.accept),"string"==typeof t.data&&n.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=UTF-8"),t.crossDomain||(n.setRequestHeader("X-Requested-With","XMLHttpRequest"),g(n)),n.withCredentials=!!t.withCredentials,n.onreadystatechange=function(){if(n.readyState===XMLHttpRequest.DONE)return e(n)},n},T=function(t,e){if("string"==typeof t&&"string"==typeof e)if(e.match(/\bjson\b/))try{t=JSON.parse(t)}catch(t){}else if(e.match(/\b(?:java|ecma)script\b/)){const e=document.createElement("script");e.setAttribute("nonce",d()),e.text=t,document.head.appendChild(e).parentNode.removeChild(e)}else if(e.match(/\b(xml|html|svg)\b/)){const n=new DOMParser;e=e.replace(/;.+/,"");try{t=n.parseFromString(t,e)}catch(t){}}return t};const A=function(t){const e=document.createElement("a");e.href=location.href;const n=document.createElement("a");try{return n.href=t,!((!n.protocol||":"===n.protocol)&&!n.host||e.protocol+"//"+e.host==n.protocol+"//"+n.host)}catch(t){return!0}};let D,{CustomEvent:M}=window;"function"!=typeof M&&(M=function(t,e){const n=document.createEvent("CustomEvent");return n.initCustomEvent(t,e.bubbles,e.cancelable,e.detail),n},M.prototype=window.Event.prototype,({preventDefault:D}=M.prototype),M.prototype.preventDefault=function(){const t=D.call(this);return this.cancelable&&!this.defaultPrevented&&Object.defineProperty(this,"defaultPrevented",{get:()=>!0}),t});const L=(t,e,n)=>{const a=new M(e,{bubbles:!0,cancelable:!0,detail:n});return t.dispatchEvent(a),!a.defaultPrevented},R=t=>{L(t.target,"ujs:everythingStopped"),t.preventDefault(),t.stopPropagation(),t.stopImmediatePropagation()},q=(t,e,n,a)=>t.addEventListener(n,(function(t){let{target:n}=t;for(;n instanceof Element&&!p(n,e);)n=n.parentNode;n instanceof Element&&!1===a.call(n,t)&&(t.preventDefault(),t.stopPropagation())})),H=t=>Array.prototype.slice.call(t),P=(t,e)=>{let n=[t];p(t,"form")&&(n=H(t.elements));const a=[];return n.forEach((function(t){t.name&&!t.disabled&&(p(t,"fieldset[disabled] *")||(p(t,"select")?H(t.options).forEach((function(e){e.selected&&a.push({name:t.name,value:e.value})})):(t.checked||-1===["radio","checkbox","submit"].indexOf(t.type))&&a.push({name:t.name,value:t.value})))})),e&&a.push(e),a.map((function(t){return t.name?`${encodeURIComponent(t.name)}=${encodeURIComponent(t.value)}`:t})).join("&")},O=(t,e)=>p(t,"form")?H(t.elements).filter((t=>p(t,e))):H(t.querySelectorAll(e));var I=function(t,e){let n;const a=t.getAttribute("data-confirm");if(!a)return!0;let o=!1;if(L(t,"confirm")){try{o=e.confirm(a,t)}catch(t){}n=L(t,"confirm:complete",[o])}return o&&n};const N=function(t){this.disabled&&R(t)},X=t=>{let e;if(t instanceof Event){if(K(t))return;e=t.target}else e=t;if(!j(e))return p(e,u)?F(e):p(e,c)||p(e,i)?z(e):p(e,a)?G(e):void 0},$=t=>{const e=t instanceof Event?t.target:t;if(!j(e))return p(e,u)?_(e):p(e,c)||p(e,r)?U(e):p(e,a)?Q(e):void 0};var _=function(t){if(b(t,"ujs:disabled"))return;const e=t.getAttribute("data-disable-with");return null!=e&&(h(t,"ujs:enable-with",t.innerHTML),t.innerHTML=e),t.addEventListener("click",R),h(t,"ujs:disabled",!0)},F=function(t){const e=b(t,"ujs:enable-with");return null!=e&&(t.innerHTML=e,h(t,"ujs:enable-with",null)),t.removeEventListener("click",R),h(t,"ujs:disabled",null)},Q=t=>O(t,r).forEach(U),U=function(t){if(b(t,"ujs:disabled"))return;const e=t.getAttribute("data-disable-with");return null!=e&&(p(t,"button")?(h(t,"ujs:enable-with",t.innerHTML),t.innerHTML=e):(h(t,"ujs:enable-with",t.value),t.value=e)),t.disabled=!0,h(t,"ujs:disabled",!0)},G=t=>O(t,i).forEach((t=>z(t))),z=function(t){const e=b(t,"ujs:enable-with");return null!=e&&(p(t,"button")?t.innerHTML=e:t.value=e,h(t,"ujs:enable-with",null)),t.disabled=!1,h(t,"ujs:disabled",null)},K=function(t){const e=t.detail?t.detail[0]:void 0;return e&&e.getResponseHeader("X-Xhr-Redirect")};const B=function(t){const e=this,{form:n}=e;if(n)return e.name&&h(n,"ujs:submit-button",{name:e.name,value:e.value}),h(n,"ujs:formnovalidate-button",e.formNoValidate),h(n,"ujs:submit-button-formaction",e.getAttribute("formaction")),h(n,"ujs:submit-button-formmethod",e.getAttribute("formmethod"))},J=function(t){const e=(this.getAttribute("data-method")||"GET").toUpperCase(),n=this.getAttribute("data-params"),a=(t.metaKey||t.ctrlKey)&&"GET"===e&&!n;(null!=t.button&&0!==t.button||a)&&t.stopImmediatePropagation()},V={$:y,ajax:S,buttonClickSelector:e,buttonDisableSelector:c,confirm:(t,e)=>window.confirm(t),cspNonce:d,csrfToken:v,csrfParam:E,CSRFProtection:g,delegate:q,disableElement:$,enableElement:X,fileInputSelector:"input[name][type=file]:not([disabled])",fire:L,formElements:O,formEnableSelector:i,formDisableSelector:r,formInputClickSelector:o,formSubmitButtonClick:B,formSubmitSelector:a,getData:b,handleDisabledElement:N,href:t=>t.href,inputChangeSelector:n,isCrossDomain:A,linkClickSelector:t,linkDisableSelector:u,loadCSPNonce:l,matches:p,preventInsignificantClick:J,refreshCSRFTokens:w,serializeElement:P,setData:h,stopEverything:R},W=(Y=V,function(t){I(this,Y)||R(t)});var Y;V.handleConfirm=W;const Z=(t=>function(e){const n=this,a=n.getAttribute("data-method");if(!a)return;if(j(this))return;const o=t.href(n),r=v(),i=E(),u=document.createElement("form");let c=`<input name='_method' value='${a}' type='hidden' />`;i&&r&&!A(o)&&(c+=`<input name='${i}' value='${r}' type='hidden' />`),c+='<input type="submit" />',u.method="post",u.action=o,u.target=n.target,u.innerHTML=c,u.style.display="none",document.body.appendChild(u),u.querySelector('[type="submit"]').click(),R(e)})(V);V.handleMethod=Z;const tt=(t=>function(o){let r,i,u;const c=this;if(!function(t){const e=t.getAttribute("data-remote");return null!=e&&"false"!==e}(c))return!0;if(!L(c,"ajax:before"))return L(c,"ajax:stopped"),!1;if(j(c))return L(c,"ajax:stopped"),!1;const s=c.getAttribute("data-with-credentials"),l=c.getAttribute("data-type")||"script";if(p(c,a)){const t=b(c,"ujs:submit-button");i=b(c,"ujs:submit-button-formmethod")||c.getAttribute("method")||"get",u=b(c,"ujs:submit-button-formaction")||c.getAttribute("action")||location.href,"GET"===i.toUpperCase()&&(u=u.replace(/\?.*$/,"")),"multipart/form-data"===c.enctype?(r=new FormData(c),null!=t&&r.append(t.name,t.value)):r=P(c,t),h(c,"ujs:submit-button",null),h(c,"ujs:submit-button-formmethod",null),h(c,"ujs:submit-button-formaction",null)}else p(c,e)||p(c,n)?(i=c.getAttribute("data-method"),u=c.getAttribute("data-url"),r=P(c,c.getAttribute("data-params"))):(i=c.getAttribute("data-method"),u=t.href(c),r=c.getAttribute("data-params"));S({type:i||"GET",url:u,data:r,dataType:l,beforeSend:(t,e)=>L(c,"ajax:beforeSend",[t,e])?L(c,"ajax:send",[t]):(L(c,"ajax:stopped"),!1),success:(...t)=>L(c,"ajax:success",t),error:(...t)=>L(c,"ajax:error",t),complete:(...t)=>L(c,"ajax:complete",t),crossDomain:A(u),withCredentials:null!=s&&"false"!==s}),R(o)})(V);V.handleRemote=tt;if(V.start=function(){if(window._rails_loaded)throw new Error("rails-ujs has already been loaded!");return window.addEventListener("pageshow",(function(){y(i).forEach((function(t){b(t,"ujs:disabled")&&X(t)})),y(u).forEach((function(t){b(t,"ujs:disabled")&&X(t)}))})),q(document,u,"ajax:complete",X),q(document,u,"ajax:stopped",X),q(document,c,"ajax:complete",X),q(document,c,"ajax:stopped",X),q(document,t,"click",J),q(document,t,"click",N),q(document,t,"click",W),q(document,t,"click",$),q(document,t,"click",tt),q(document,t,"click",Z),q(document,e,"click",J),q(document,e,"click",N),q(document,e,"click",W),q(document,e,"click",$),q(document,e,"click",tt),q(document,n,"change",N),q(document,n,"change",W),q(document,n,"change",tt),q(document,a,"submit",N),q(document,a,"submit",W),q(document,a,"submit",tt),q(document,a,"submit",(t=>setTimeout((()=>$(t)),13))),q(document,a,"ajax:send",$),q(document,a,"ajax:complete",X),q(document,o,"click",J),q(document,o,"click",N),q(document,o,"click",W),q(document,o,"click",B),document.addEventListener("DOMContentLoaded",w),document.addEventListener("DOMContentLoaded",l),window._rails_loaded=!0},"undefined"!=typeof jQuery&&jQuery&&jQuery.ajax){if(jQuery.rails)throw new Error("If you load both jquery_ujs and rails-ujs, use rails-ujs only.");jQuery.rails=V,jQuery.ajaxPrefilter((function(t,e,n){if(!t.crossDomain)return g(n)}))}export{V as default};
|
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.beta4
|
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-01-
|
18
|
+
date: 2024-01-17 00:00:00.000000000 Z
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
21
21
|
name: arbre
|
@@ -203,7 +203,6 @@ files:
|
|
203
203
|
- app/views/active_admin/shared/_sidebar_sections.html.erb
|
204
204
|
- app/views/layouts/active_admin.html.erb
|
205
205
|
- app/views/layouts/active_admin_logged_out.html.erb
|
206
|
-
- config/i18n-tasks.yml
|
207
206
|
- config/importmap.rb
|
208
207
|
- config/locales/ar.yml
|
209
208
|
- config/locales/az.yml
|
@@ -365,6 +364,7 @@ files:
|
|
365
364
|
- lib/generators/active_admin/views_generator.rb
|
366
365
|
- plugin.js
|
367
366
|
- vendor/javascript/flowbite.js
|
367
|
+
- vendor/javascript/rails_ujs_esm.js
|
368
368
|
homepage: https://activeadmin.info
|
369
369
|
licenses:
|
370
370
|
- MIT
|
data/config/i18n-tasks.yml
DELETED
@@ -1,37 +0,0 @@
|
|
1
|
-
# The "main" locale
|
2
|
-
base_locale: en
|
3
|
-
|
4
|
-
# Read and write translations
|
5
|
-
data:
|
6
|
-
yaml:
|
7
|
-
write:
|
8
|
-
# Do not wrap lines at 80 characters
|
9
|
-
line_width: -1
|
10
|
-
|
11
|
-
# Find translate calls
|
12
|
-
search:
|
13
|
-
# Paths or `File.find` patterns to search in
|
14
|
-
paths:
|
15
|
-
- app
|
16
|
-
- lib
|
17
|
-
|
18
|
-
# Files or `File.fnmatch` patterns to exclude from search
|
19
|
-
exclude:
|
20
|
-
- app/assets/images
|
21
|
-
- tasks/tmp
|
22
|
-
|
23
|
-
# Guess usages such as t("categories.#{category}.title")
|
24
|
-
strict: false
|
25
|
-
|
26
|
-
ignore_inconsistent_interpolations:
|
27
|
-
- active_admin.new_model
|
28
|
-
- active_admin.edit_model
|
29
|
-
- active_admin.delete_model
|
30
|
-
- active_admin.details
|
31
|
-
- active_admin.has_many_new
|
32
|
-
- active_admin.pagination.empty
|
33
|
-
- active_admin.pagination.one
|
34
|
-
- active_admin.pagination.one_page
|
35
|
-
- active_admin.pagination.multiple
|
36
|
-
- active_admin.pagination.multiple_without_total
|
37
|
-
- active_admin.blank_slate.content
|