madmin 2.1.0 → 2.1.1

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: de0ee3515b8f8689bbd5c7b6b99675c2724f0be4cf7774e97d71da99076f3b68
4
- data.tar.gz: 4224940c11670cfbc2a481cc0001ad64d846595929993f5971490c1f53e0343c
3
+ metadata.gz: a081ce47d7f266c588a04f1998b1156b859e15526677b5b6ba39e5315efbdf45
4
+ data.tar.gz: 8533a2223231ba545b8a4935ea6b29ca06e3043888f41248bc096162b93f8dd3
5
5
  SHA512:
6
- metadata.gz: eaf9f28c5e3dac557dceaff92f823b3372d9c927a2c429d296da83bee28c3f14cd78b31bf198bde7d43bfc8025aaa01d96e1586edc42ebef5c49e3f827929cfc
7
- data.tar.gz: e0b561bb2c7d0367238ba4c9af7794161480396ccf2bc625ffad2a3adfbeb1b6919490f59a8fc24c1eac89eec4f0162e202186dc47913f41351b893972c2fb13
6
+ metadata.gz: a369a69825063d843569625485adf3f46102b31697195abcdb68bc674e23bff86a0208957e502061742947809236da0ae9a2628324aee4f91c9c5a410618d32d
7
+ data.tar.gz: a7e3acacc31d419440774347c2d571a84e4ff182b1a6e885e73437ec01d76cbe92bb5b7ddf1c66393f4fde6d03c1cc7bfdf819aae7898bda3601e4d1e2de7689
@@ -39,6 +39,7 @@
39
39
  }
40
40
 
41
41
  main {
42
+ overflow: auto;
42
43
  padding-right: 1rem;
43
44
  padding-bottom: 1rem;
44
45
  padding-left: calc(1rem + var(--sidebar-width));
@@ -48,7 +49,8 @@ main {
48
49
  #sidebar {
49
50
  position: absolute;
50
51
  inset: 0;
51
- z-index: 10; /* Ensure sidebar is above main content */
52
+ /* Ensure sidebar is above main content */
53
+ z-index: 10;
52
54
 
53
55
  border-right: 1px solid var(--border-color);
54
56
  height: 100%;
@@ -2,12 +2,8 @@ module Madmin
2
2
  module Fields
3
3
  class BelongsTo < Field
4
4
  def options_for_select(record)
5
- records = if (record = record.send(attribute_name))
6
- [record]
7
- else
8
- associated_resource.model.first(25)
9
- end
10
-
5
+ current_value = record.send(attribute_name)
6
+ records = [current_value].compact + associated_resource.model.excluding(current_value).limit(25)
11
7
  records.map { [Madmin.resource_for(_1).display_name(_1), _1.id] }
12
8
  end
13
9
 
@@ -71,8 +71,10 @@ module Madmin
71
71
  )
72
72
  end
73
73
 
74
+ # Returns singular name
75
+ # For example: "Forum::Post" -> "Forum / Post"
74
76
  def friendly_name
75
- model_name.split("::").map { |part| part.underscore.humanize }.join(" / ").titlecase.pluralize
77
+ model_name.split("::").map { |part| part.underscore.humanize }.join(" / ").titlecase
76
78
  end
77
79
 
78
80
  # Support for isolated namespaces
@@ -1,3 +1,3 @@
1
1
  module Madmin
2
- VERSION = "2.1.0"
2
+ VERSION = "2.1.1"
3
3
  end
data/lib/madmin.rb CHANGED
@@ -45,30 +45,37 @@ module Madmin
45
45
  end
46
46
 
47
47
  class << self
48
+ # Returns a Madmin::Resource class for the given object
48
49
  def resource_for(object)
49
- if (resource_name = resource_name_for(object))
50
+ if (resource_name = resource_name_for(object)) && Object.const_defined?(resource_name)
50
51
  resource_name.constantize
51
- end
52
- rescue NameError
53
- raise MissingResource, <<~MESSAGE
54
- #{resource_name} is missing. Create it by running:
55
52
 
56
- bin/rails generate madmin:resource #{resource_name.split("Resource").first}
57
- MESSAGE
53
+ # STI models should look at the parent
54
+ elsif (resource_name = sti_resource_name_for(object)) && Object.const_defined?(resource_name)
55
+ resource_name.constantize
56
+
57
+ else
58
+ raise MissingResource, <<~MESSAGE
59
+ `#{object.class.name}Resource` is missing.
60
+
61
+ Create the Madmin resource by running:
62
+
63
+ bin/rails generate madmin:resource #{object.class.name}
64
+ MESSAGE
65
+ end
58
66
  end
59
67
 
60
68
  def resource_name_for(object)
61
69
  if object.is_a? ::ActiveStorage::Attached
62
70
  "ActiveStorage::AttachmentResource"
63
71
  else
64
- begin
65
- "#{object.class.name}Resource"
66
- rescue
67
- # For STI models, see if there's a superclass resource available
68
- if (column = object.class.inheritance_column) && object.class.column_names.include?(column)
69
- "#{object.class.superclass.base_class.name}Resource"
70
- end
71
- end
72
+ "#{object.class.name}Resource"
73
+ end
74
+ end
75
+
76
+ def sti_resource_name_for(object)
77
+ if (column = object.class.inheritance_column) && object.class.column_names.include?(column)
78
+ "#{object.class.superclass.base_class.name}Resource"
72
79
  end
73
80
  end
74
81
 
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: 2.1.0
4
+ version: 2.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Chris Oliver