madmin 1.2.6 → 1.2.7

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 79be87e2c5e4bb8b7734ebfac9b623459491a836412bbd0faf077033e6a725ff
4
- data.tar.gz: a5f93e689c76e156ab396b7da05d47148e19b9ed7bd1f136c4a13b3530c1852a
3
+ metadata.gz: 8cd4e0b3d14780dd13db0a21a57a63e750a750298ea78cc93ec5eb327b1714e7
4
+ data.tar.gz: 92f273ea140b603a887660b36802de9e6c0021a56cbeeb49cef5318696ae7bf6
5
5
  SHA512:
6
- metadata.gz: 8bde02b65e86325f630bb2de481a3612e1ae5544891ac3e77bc5ffa78eb158eb6f5603967729040ac408a47f337b42375897848ba89e38a7723ff072dbb97703
7
- data.tar.gz: c709b74a65fef5383582e3577268dc61e85cb085ce233da6218b586fcf990da32ef5d60cb4991251b3a6b4485f660e018952135233ba23a3bdfeaadfcdbf459a
6
+ metadata.gz: 677c4da0f37a96e2515584a02e6d0c941d59fae91b43a15e19386a723d1bdeb6a4e47db8bdc987c59e59c1b75ae2f507d055603a8a996dc5c45b3731d95aac13
7
+ data.tar.gz: b06f7fa04b747a761f956fccaa81e9f4535757db2276427e0cbda7a63d901295c9e275faf22a9753459290d530808f6b118806813e7858aeada501b3cb220cbf
data/README.md CHANGED
@@ -73,6 +73,23 @@ rails g madmin:views:index
73
73
  # -> app/views/madmin/application/index.html.erb
74
74
  ```
75
75
 
76
+ You might want to make some of your model's attributes visible in some views but invisible in others.
77
+ The `attribute` method in model_resource.rb gives you that flexibility.
78
+
79
+ ```bash
80
+ # -> app/madmin/resources/book_resource.rb
81
+ ```
82
+ ```ruby
83
+ class UserResource < Madmin::Resource
84
+ attribute :id, form: false
85
+ attribute :tile
86
+ attribute :subtitle, index: false
87
+ attribute :author
88
+ attribute :genre
89
+ attribute :pages, show: false
90
+ end
91
+ ```
92
+
76
93
  You can also scope the copied view(s) to a specific Resource/Model:
77
94
  ```bash
78
95
  rails generate madmin:views:index Book
@@ -7,9 +7,7 @@
7
7
  <title>
8
8
  Madmin: <%= Rails.application.class %>
9
9
  </title>
10
- <link href="https://unpkg.com/@tailwindcss/forms/dist/forms.min.css" rel="stylesheet" />
11
- <link href="https://unpkg.com/tailwindcss@^2.0/dist/tailwind.min.css" rel="stylesheet" />
12
- <link href="https://unpkg.com/@tailwindcss/typography/dist/typography.min.css" rel="stylesheet" />
10
+
13
11
  <%= csrf_meta_tags %>
14
12
 
15
13
  <%= render "javascript" %>
@@ -1,28 +1,44 @@
1
+ <script src="https://cdn.tailwindcss.com?plugins=forms,typography,aspect-ratio,line-clamp"></script>
1
2
  <%= stylesheet_link_tag "https://unpkg.com/flatpickr/dist/flatpickr.min.css", "data-turbo-track": "reload" %>
2
3
  <%= stylesheet_link_tag "https://unpkg.com/trix/dist/trix.css", "data-turbo-track": "reload" %>
3
4
  <%= stylesheet_link_tag "https://unpkg.com/tom-select/dist/css/tom-select.min.css", "data-turbo-track": "reload" %>
4
5
 
5
- <script type="module">
6
- import { Application, Controller } from 'https://cdn.skypack.dev/@hotwired/stimulus'
7
- const application = Application.start()
6
+ <script type="importmap" data-turbo-track="reload">
7
+ {
8
+ "imports": {
9
+ "@hotwired/stimulus": "https://unpkg.com/@hotwired/stimulus/dist/stimulus.js",
10
+ "@hotwired/turbo": "https://unpkg.com/@hotwired/turbo",
11
+ "@hotwired/turbo-rails": "https://unpkg.com/@hotwired/turbo-rails",
12
+ "@rails/actiontext": "https://unpkg.com/@rails/actiontext@<%= npm_rails_version %>/app/assets/javascripts/actiontext.js",
13
+ "@rails/activestorage": "https://unpkg.com/@rails/activestorage@<%= npm_rails_version %>/app/assets/javascripts/activestorage.esm.js",
14
+ "flatpickr": "https://unpkg.com/flatpickr/dist/esm/index.js",
15
+ "stimulus-flatpickr": "https://unpkg.com/stimulus-flatpickr@3.0.0-0/dist/index.m.js",
16
+ "tailwindcss-stimulus-components": "https://unpkg.com/tailwindcss-stimulus-components/dist/tailwindcss-stimulus-components.modern.js",
17
+ "tom-select": "https://unpkg.com/tom-select/dist/esm/tom-select.complete.js",
18
+ "trix": "https://unpkg.com/trix"
19
+ }
20
+ }
21
+ </script>
22
+ <script async src="https://unpkg.com/es-module-shims/dist/es-module-shims.js"></script>
8
23
 
9
- import { Dropdown } from "https://cdn.skypack.dev/tailwindcss-stimulus-components"
10
- application.register("dropdown", Dropdown)
24
+ <script type="module">
25
+ import * as Turbo from "@hotwired/turbo-rails"
11
26
 
12
- import stimulusFlatpickr from 'https://cdn.skypack.dev/stimulus-flatpickr@3.0.0-0'
13
- application.register("flatpickr", stimulusFlatpickr)
27
+ import * as ActiveStorage from "@rails/activestorage"
28
+ ActiveStorage.start()
29
+ import "trix"
30
+ import "@rails/actiontext"
14
31
 
15
- import TomSelect from 'https://cdn.skypack.dev/tom-select'
32
+ import { Application, Controller } from '@hotwired/stimulus'
33
+ const application = Application.start()
16
34
 
17
- import Rails from 'https://cdn.skypack.dev/@rails/ujs@<%= npm_rails_version %>'
18
- import * as ActiveStorage from 'https://cdn.skypack.dev/@rails/activestorage@<%= npm_rails_version %>'
19
- import 'https://cdn.skypack.dev/trix'
20
- import 'https://cdn.skypack.dev/@rails/actiontext@<%= npm_rails_version %>'
35
+ import { Dropdown } from "tailwindcss-stimulus-components"
36
+ application.register("dropdown", Dropdown)
21
37
 
22
- if (!window._rails_loaded) { Rails.start() }
23
- ActiveStorage.start()
38
+ import StimulusFlatpickr from "stimulus-flatpickr"
39
+ application.register("flatpickr", StimulusFlatpickr)
24
40
 
25
- import * as Turbo from "https://cdn.skypack.dev/@hotwired/turbo"
41
+ import TomSelect from "tom-select"
26
42
 
27
43
  (() => {
28
44
  application.register('select', class extends Controller {
@@ -59,4 +59,4 @@
59
59
  </tbody>
60
60
  </table>
61
61
  </div>
62
- <%== pagy_nav(@pagy) if @pagy.pages > 1 %>
62
+ <%== render(partial: 'madmin/pagy/nav', locals: { pagy: @pagy }) if @pagy.pages > 1 %>
@@ -9,7 +9,7 @@
9
9
  <div class="mr-2">
10
10
  <%= link_to "Edit", resource.edit_path(@record), class: "block bg-white hover:bg-gray-100 text-gray-800 font-semibold py-2 px-4 border border-gray-400 rounded shadow" %>
11
11
  </div>
12
- <%= button_to "Delete", resource.show_path(@record), method: :delete, data: { confirm: "Are you sure?" }, class: "bg-white hover:bg-gray-100 text-red-500 font-semibold py-2 px-4 border border-red-500 rounded shadow pointer-cursor" %>
12
+ <%= button_to "Delete", resource.show_path(@record), method: :delete, data: { turbo_confirm: "Are you sure?" }, class: "bg-white hover:bg-gray-100 text-red-500 font-semibold py-2 px-4 border border-red-500 rounded shadow pointer-cursor" %>
13
13
  </div>
14
14
  </div>
15
15
 
@@ -0,0 +1,20 @@
1
+ <%#
2
+ This template is i18n-ready: if you don't use i18n, then you can replace the pagy_t
3
+ calls with the actual strings ("&lsaquo; Prev", "Next &rsaquo;", "&hellip;").
4
+ The link variable is set to a proc that returns the link tag.
5
+ Usage: link.call( page_number [, text [, extra_attributes_string ]])
6
+ -%>
7
+ <% link = pagy_link_proc(pagy) -%>
8
+ <%# -%><nav aria-label="pager" class="space-x-1 px-2 py-1" role="navigation">
9
+ <% if pagy.prev -%> <span><%== link.call(pagy.prev, pagy_t('pagy.nav.prev'), 'aria-label="previous" class="text-white bg-indigo-500 rounded-2xl px-3 py-1.5"') %></span>
10
+ <% else -%> <span class="text-gray-400 bg-gray-100 rounded-2xl px-3 py-1.5 cursor-not-allowed"><%== pagy_t('pagy.nav.prev') %></span>
11
+ <% end -%>
12
+ <% pagy.series.each do |item| # series example: [1, :gap, 7, 8, "9", 10, 11, :gap, 36] -%>
13
+ <% if item.is_a?(Integer) -%> <span><%== link.call(item, item, 'class="text-gray-400 rounded-full px-2.5 py-1.5 hover:bg-indigo-200 hover:text-indigo-500"') %></span>
14
+ <% elsif item.is_a?(String) -%> <span class="text-indigo-500 font-semibold px-2.5 py-1.5"><%= item %></span>
15
+ <% elsif item == :gap -%> <span class="text-gray-400 text-xl px-1.5 py-1.5"><%== pagy_t('pagy.nav.gap') %></span>
16
+ <% end -%>
17
+ <% end -%>
18
+ <% if pagy.next -%> <span><%== link.call(pagy.next, pagy_t('pagy.nav.next'), 'aria-label="next" class="text-white bg-indigo-500 rounded-2xl px-3 py-1.5"') %></span>
19
+ <% else -%> <span class="text-gray-400 bg-gray-100 rounded-2xl px-3 py-1.5 cursor-not-allowed"><%== pagy_t('pagy.nav.next') %></span>
20
+ <% end -%>
@@ -3,7 +3,7 @@ module Madmin
3
3
  class NestedHasMany < Field
4
4
  DEFAULT_ATTRIBUTES = %w[_destroy id].freeze
5
5
  def nested_attributes
6
- resource.attributes.reject { |name, attribute| skipped_fields.include?(name) }
6
+ resource.attributes.except(*skipped_fields)
7
7
  end
8
8
 
9
9
  def resource
@@ -129,6 +129,7 @@ module Madmin
129
129
  text: Fields::Text,
130
130
  time: Fields::Time,
131
131
  timestamp: Fields::Time,
132
+ timestamptz: Fields::Time,
132
133
  password: Fields::Password,
133
134
  file: Fields::File,
134
135
 
@@ -1,3 +1,3 @@
1
1
  module Madmin
2
- VERSION = "1.2.6"
2
+ VERSION = "1.2.7"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: madmin
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.6
4
+ version: 1.2.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Chris Oliver
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2021-12-16 00:00:00.000000000 Z
12
+ date: 2022-09-30 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rails
@@ -139,6 +139,7 @@ files:
139
139
  - app/views/madmin/fields/time/_form.html.erb
140
140
  - app/views/madmin/fields/time/_index.html.erb
141
141
  - app/views/madmin/fields/time/_show.html.erb
142
+ - app/views/madmin/pagy/_nav.html.erb
142
143
  - app/views/madmin/shared/_label.html.erb
143
144
  - lib/generators/madmin/field/field_generator.rb
144
145
  - lib/generators/madmin/field/templates/_form.html.erb
@@ -211,7 +212,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
211
212
  - !ruby/object:Gem::Version
212
213
  version: '0'
213
214
  requirements: []
214
- rubygems_version: 3.2.32
215
+ rubygems_version: 3.3.7
215
216
  signing_key:
216
217
  specification_version: 4
217
218
  summary: A modern admin for Ruby on Rails apps