madmin 1.2.7 → 1.2.9
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/helpers/madmin/application_helper.rb +1 -1
- data/app/helpers/madmin/sort_helper.rb +2 -2
- data/app/views/madmin/application/_javascript.html.erb +1 -1
- data/app/views/madmin/application/_menu_resources.html.erb +7 -0
- data/app/views/madmin/application/_navigation.html.erb +8 -11
- data/app/views/madmin/application/show.html.erb +5 -4
- data/lib/generators/madmin/install/install_generator.rb +3 -3
- data/lib/madmin/fields/has_many.rb +1 -1
- data/lib/madmin/resource.rb +8 -3
- data/lib/madmin/search.rb +2 -2
- data/lib/madmin/version.rb +1 -1
- metadata +7 -12
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d4711c582952084164bfafbad483a4b5cb520ff505f96c0f9a87a7b61732068c
|
4
|
+
data.tar.gz: 3eed3f7cbd6969f14b499c3c51bc91cacf423b9554c590c612000d23ccafea8f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3464c6efd9b1561a49c437b8f994616e212d88ba0ec37eebbdac78cccaa0f700ef28bb5c90c20133eea98dfbc71cd7f008b8db38e055602bacc7a7bddcafb0e8
|
7
|
+
data.tar.gz: dff80cd6e7c84008618f61381ec0551519305f6ab8434d0742a85f37e50202740a5d146beb27989308426f8bd7ffd218fb86bf0903074bb4d89ec2238b55dbf2
|
@@ -2,13 +2,13 @@ module Madmin
|
|
2
2
|
module SortHelper
|
3
3
|
def sortable(column, title, options = {})
|
4
4
|
matching_column = (column.to_s == sort_column)
|
5
|
-
direction = sort_direction == "asc" ? "desc" : "asc"
|
5
|
+
direction = (sort_direction == "asc") ? "desc" : "asc"
|
6
6
|
|
7
7
|
link_to resource.index_path(sort: column, direction: direction), options do
|
8
8
|
concat title
|
9
9
|
if matching_column
|
10
10
|
concat " "
|
11
|
-
concat tag.i(sort_direction == "asc" ? "▲" : "▼")
|
11
|
+
concat tag.i((sort_direction == "asc") ? "▲" : "▼")
|
12
12
|
end
|
13
13
|
end
|
14
14
|
end
|
@@ -13,7 +13,7 @@
|
|
13
13
|
"@rails/activestorage": "https://unpkg.com/@rails/activestorage@<%= npm_rails_version %>/app/assets/javascripts/activestorage.esm.js",
|
14
14
|
"flatpickr": "https://unpkg.com/flatpickr/dist/esm/index.js",
|
15
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.
|
16
|
+
"tailwindcss-stimulus-components": "https://unpkg.com/tailwindcss-stimulus-components/dist/tailwindcss-stimulus-components.module.js",
|
17
17
|
"tom-select": "https://unpkg.com/tom-select/dist/esm/tom-select.complete.js",
|
18
18
|
"trix": "https://unpkg.com/trix"
|
19
19
|
}
|
@@ -0,0 +1,7 @@
|
|
1
|
+
<% Madmin.resources.each do |resource| %>
|
2
|
+
<%= nav_link_to resource.friendly_name.pluralize, resource.index_path, class: "block p-2 rounded hover:bg-gray-100", starts_with: resource.index_path, active_class: "font-bold text-black" %>
|
3
|
+
<% end %>
|
4
|
+
|
5
|
+
<div class="mt-auto">
|
6
|
+
<%= link_to "View Madmin on GitHub", "https://github.com/excid3/madmin", target: :_blank, class: "block p-2 rounded text-gray-500 hover:bg-gray-100" %>
|
7
|
+
</div>
|
@@ -1,4 +1,4 @@
|
|
1
|
-
<div class="flex flex-col h-full text-sm"
|
1
|
+
<div class="flex flex-col h-full text-sm">
|
2
2
|
<div class="flex md:block justify-between items-center">
|
3
3
|
<div class="flex md:block items-center">
|
4
4
|
<h1 class="mr-2 md:p-2 text-xl font-semibold">Madmin</h1>
|
@@ -9,7 +9,7 @@
|
|
9
9
|
<% end %>
|
10
10
|
</div>
|
11
11
|
|
12
|
-
<div class="-mr-2 flex items-center md:hidden">
|
12
|
+
<div class="-mr-2 flex items-center md:hidden relative" data-controller="dropdown">
|
13
13
|
<button data-action="click->dropdown#toggle touch->dropdown#toggle click@window->dropdown#hide touch@window#dropdown->hide" type="button" class="bg-white rounded-md p-2 inline-flex items-center justify-center text-gray-400 hover:bg-gray-200 focus:outline-none focus:ring-2 focus-ring-inset focus:ring-white" id="main-menu" aria-haspopup="true">
|
14
14
|
<span class="sr-only">Open main menu</span>
|
15
15
|
<!-- Heroicon name: outline/menu -->
|
@@ -17,16 +17,13 @@
|
|
17
17
|
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 6h16M4 12h16M4 18h16"></path>
|
18
18
|
</svg>
|
19
19
|
</button>
|
20
|
-
</div>
|
21
|
-
</div>
|
22
20
|
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
<%= link_to "View Madmin on GitHub", "https://github.com/excid3/madmin", target: :_blank, class: "block p-2 rounded text-gray-500 hover:bg-gray-100" %>
|
21
|
+
<div class="absolute top-12 right-0 bg-white rounded-lg min-w-64 shadow-lg hidden md:flex flex-col flex-grow justify-between" data-dropdown-target="menu">
|
22
|
+
<%= render "menu_resources" %>
|
23
|
+
</div>
|
24
|
+
</div>
|
25
|
+
<div class="hidden md:block">
|
26
|
+
<%= render "menu_resources" %>
|
30
27
|
</div>
|
31
28
|
</div>
|
32
29
|
</div>
|
@@ -5,10 +5,11 @@
|
|
5
5
|
<%= link_to resource.display_name(@record), resource.show_path(@record), class: "text-indigo-500 font-bold" %>
|
6
6
|
</h1>
|
7
7
|
|
8
|
-
<div class="flex items-center px-4">
|
9
|
-
|
10
|
-
<%=
|
11
|
-
|
8
|
+
<div class="flex gap-2 items-center px-4">
|
9
|
+
<% resource.member_actions.each do |action| %>
|
10
|
+
<%= instance_eval(&action) %>
|
11
|
+
<% end %>
|
12
|
+
<%= 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" %>
|
12
13
|
<%= 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
14
|
</div>
|
14
15
|
</div>
|
@@ -2,7 +2,7 @@ require "madmin/generator_helpers"
|
|
2
2
|
|
3
3
|
module Madmin
|
4
4
|
module Generators
|
5
|
-
class InstallGenerator < Rails::Generators::Base
|
5
|
+
class InstallGenerator < ::Rails::Generators::Base
|
6
6
|
include Madmin::GeneratorHelpers
|
7
7
|
|
8
8
|
source_root File.expand_path("../templates", __FILE__)
|
@@ -43,12 +43,12 @@ module Madmin
|
|
43
43
|
# Skip Abstract classes, ActiveRecord::Base, and auto-generated HABTM models
|
44
44
|
def generateable_models
|
45
45
|
active_record_models.reject do |model|
|
46
|
-
model.abstract_class? || model == ActiveRecord::Base || model.name.start_with?("HABTM_")
|
46
|
+
model.abstract_class? || model == ::ActiveRecord::Base || model.name.start_with?("HABTM_")
|
47
47
|
end
|
48
48
|
end
|
49
49
|
|
50
50
|
def active_record_models
|
51
|
-
ObjectSpace.each_object(ActiveRecord::Base.singleton_class)
|
51
|
+
ObjectSpace.each_object(::ActiveRecord::Base.singleton_class)
|
52
52
|
end
|
53
53
|
end
|
54
54
|
end
|
data/lib/madmin/resource.rb
CHANGED
@@ -1,11 +1,15 @@
|
|
1
|
+
require "ostruct"
|
2
|
+
|
1
3
|
module Madmin
|
2
4
|
class Resource
|
3
5
|
class_attribute :attributes, default: ActiveSupport::OrderedHash.new
|
6
|
+
class_attribute :member_actions, default: []
|
4
7
|
class_attribute :scopes, default: []
|
5
8
|
|
6
9
|
class << self
|
7
10
|
def inherited(base)
|
8
11
|
base.attributes = attributes.dup
|
12
|
+
base.member_actions = scopes.dup
|
9
13
|
base.scopes = scopes.dup
|
10
14
|
super
|
11
15
|
end
|
@@ -108,7 +112,9 @@ module Madmin
|
|
108
112
|
attributes.values.select { |a| a.field.searchable? }
|
109
113
|
end
|
110
114
|
|
111
|
-
|
115
|
+
def member_action(&block)
|
116
|
+
member_actions << block
|
117
|
+
end
|
112
118
|
|
113
119
|
def field_for_type(type)
|
114
120
|
{
|
@@ -178,7 +184,7 @@ module Madmin
|
|
178
184
|
|
179
185
|
if model.attribute_types.include?(name_string)
|
180
186
|
column_type = model.attribute_types[name_string]
|
181
|
-
if column_type.is_a? ActiveRecord::Enum::EnumType
|
187
|
+
if column_type.is_a? ::ActiveRecord::Enum::EnumType
|
182
188
|
:enum
|
183
189
|
else
|
184
190
|
column_type.type || :string
|
@@ -220,7 +226,6 @@ module Madmin
|
|
220
226
|
|
221
227
|
def model_store_accessors
|
222
228
|
store_accessors = model.stored_attributes.values
|
223
|
-
|
224
229
|
store_accessors.flatten
|
225
230
|
end
|
226
231
|
end
|
data/lib/madmin/search.rb
CHANGED
@@ -50,11 +50,11 @@ module Madmin
|
|
50
50
|
end
|
51
51
|
|
52
52
|
def query_table_name(attr)
|
53
|
-
ActiveRecord::Base.connection.quote_column_name(@scoped_resource.table_name)
|
53
|
+
::ActiveRecord::Base.connection.quote_column_name(@scoped_resource.table_name)
|
54
54
|
end
|
55
55
|
|
56
56
|
def column_to_query(attr)
|
57
|
-
ActiveRecord::Base.connection.quote_column_name(attr)
|
57
|
+
::ActiveRecord::Base.connection.quote_column_name(attr)
|
58
58
|
end
|
59
59
|
end
|
60
60
|
end
|
data/lib/madmin/version.rb
CHANGED
metadata
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: madmin
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.2.
|
4
|
+
version: 1.2.9
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Chris Oliver
|
8
8
|
- Andrea Fomera
|
9
|
-
autorequire:
|
9
|
+
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2024-04-28 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rails
|
@@ -32,9 +32,6 @@ dependencies:
|
|
32
32
|
- - ">="
|
33
33
|
- !ruby/object:Gem::Version
|
34
34
|
version: '3.5'
|
35
|
-
- - "<"
|
36
|
-
- !ruby/object:Gem::Version
|
37
|
-
version: '6.0'
|
38
35
|
type: :runtime
|
39
36
|
prerelease: false
|
40
37
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -42,9 +39,6 @@ dependencies:
|
|
42
39
|
- - ">="
|
43
40
|
- !ruby/object:Gem::Version
|
44
41
|
version: '3.5'
|
45
|
-
- - "<"
|
46
|
-
- !ruby/object:Gem::Version
|
47
|
-
version: '6.0'
|
48
42
|
description: It's an admin, obviously.
|
49
43
|
email:
|
50
44
|
- excid3@gmail.com
|
@@ -69,6 +63,7 @@ files:
|
|
69
63
|
- app/views/layouts/madmin/application.html.erb
|
70
64
|
- app/views/madmin/application/_form.html.erb
|
71
65
|
- app/views/madmin/application/_javascript.html.erb
|
66
|
+
- app/views/madmin/application/_menu_resources.html.erb
|
72
67
|
- app/views/madmin/application/_navigation.html.erb
|
73
68
|
- app/views/madmin/application/edit.html.erb
|
74
69
|
- app/views/madmin/application/index.html.erb
|
@@ -197,7 +192,7 @@ homepage: https://github.com/excid3/madmin
|
|
197
192
|
licenses:
|
198
193
|
- MIT
|
199
194
|
metadata: {}
|
200
|
-
post_install_message:
|
195
|
+
post_install_message:
|
201
196
|
rdoc_options: []
|
202
197
|
require_paths:
|
203
198
|
- lib
|
@@ -212,8 +207,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
212
207
|
- !ruby/object:Gem::Version
|
213
208
|
version: '0'
|
214
209
|
requirements: []
|
215
|
-
rubygems_version: 3.
|
216
|
-
signing_key:
|
210
|
+
rubygems_version: 3.5.9
|
211
|
+
signing_key:
|
217
212
|
specification_version: 4
|
218
213
|
summary: A modern admin for Ruby on Rails apps
|
219
214
|
test_files: []
|