plutonium 0.19.8 → 0.19.10
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/plutonium/core/controller.rb +7 -2
- data/lib/plutonium/definition/base.rb +9 -0
- data/lib/plutonium/definition/inheritable_config_attr.rb +33 -0
- data/lib/plutonium/ui/form/interaction.rb +1 -1
- data/lib/plutonium/ui/form/theme.rb +4 -0
- data/lib/plutonium/ui/page/base.rb +10 -0
- data/lib/plutonium/ui/page/edit.rb +2 -0
- data/lib/plutonium/ui/page/index.rb +2 -0
- data/lib/plutonium/ui/page/interactive_action.rb +2 -0
- data/lib/plutonium/ui/page/new.rb +2 -0
- data/lib/plutonium/ui/page/show.rb +2 -0
- data/lib/plutonium/version.rb +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9222553f366beb29b993eb2d29e0bb3d9103b8c590e3033ff178f16c26a1d353
|
4
|
+
data.tar.gz: c37eb08a0e736a58152635ab3b89e2f8db178bf14528569c0c1d37a2d0910c45
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ec8c7ad3a232dca69ab7e23b02c896ce0046ee738a473f663c9125d9efa0a95b06aebd6b45d434f0b24d7b2c7157e0af23fb57d12b83d2aee5741391ed672b15
|
7
|
+
data.tar.gz: d1926fff47db986ad23eaec73a06533ad602ec283894a9483560e7b5adb2ef526aa1cafe21fd24940950a15191e55fb16ffbf47a07a3f3ceac3ffb530fd729c4
|
@@ -16,7 +16,8 @@ module Plutonium
|
|
16
16
|
end
|
17
17
|
|
18
18
|
helper Plutonium::Helpers
|
19
|
-
helper_method :make_page_title, :resource_url_for,
|
19
|
+
helper_method :make_page_title, :resource_url_for,
|
20
|
+
:resource_url_args_for, :root_path, :app_name
|
20
21
|
|
21
22
|
append_view_path File.expand_path("app/views", Plutonium.root)
|
22
23
|
layout -> { turbo_frame_request? ? false : "resource" }
|
@@ -30,7 +31,11 @@ module Plutonium
|
|
30
31
|
end
|
31
32
|
|
32
33
|
def make_page_title(title)
|
33
|
-
[title.presence,
|
34
|
+
[title.presence, app_name].compact.join(" | ")
|
35
|
+
end
|
36
|
+
|
37
|
+
def app_name
|
38
|
+
helpers.application_name
|
34
39
|
end
|
35
40
|
|
36
41
|
#
|
@@ -26,6 +26,7 @@ module Plutonium
|
|
26
26
|
class Base
|
27
27
|
include DefineableProps
|
28
28
|
include ConfigAttr
|
29
|
+
include InheritableConfigAttr
|
29
30
|
include Actions
|
30
31
|
include Sorting
|
31
32
|
include Search
|
@@ -64,6 +65,14 @@ module Plutonium
|
|
64
65
|
:new_page_title, :new_page_description,
|
65
66
|
:edit_page_title, :edit_page_description
|
66
67
|
|
68
|
+
# breadcrumbs
|
69
|
+
inheritable_config_attr :breadcrumbs,
|
70
|
+
:index_page_breadcrumbs, :new_page_breadcrumbs,
|
71
|
+
:edit_page_breadcrumbs, :show_page_breadcrumbs,
|
72
|
+
:interactive_action_page_breadcrumbs
|
73
|
+
# global default
|
74
|
+
breadcrumbs true
|
75
|
+
|
67
76
|
def initialize
|
68
77
|
super
|
69
78
|
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
module Plutonium
|
2
|
+
module Definition
|
3
|
+
module InheritableConfigAttr
|
4
|
+
extend ActiveSupport::Concern
|
5
|
+
|
6
|
+
class_methods do
|
7
|
+
def inheritable_config_attr(*names)
|
8
|
+
names.each do |name|
|
9
|
+
# Create the underlying class_attribute
|
10
|
+
attr_name = :"#{name}_config"
|
11
|
+
class_attribute attr_name, instance_reader: true, instance_accessor: false, default: nil
|
12
|
+
|
13
|
+
# Define class-level method that acts as both getter/setter
|
14
|
+
define_singleton_method(name) do |value = :__not_set__|
|
15
|
+
if value == :__not_set__
|
16
|
+
# Getter behavior
|
17
|
+
public_send(:"#{attr_name}")
|
18
|
+
else
|
19
|
+
# Setter behavior
|
20
|
+
public_send(:"#{attr_name}=", value)
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
# Instance-level method
|
25
|
+
define_method(name) do
|
26
|
+
self.class.send(name)
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
@@ -25,6 +25,10 @@ module Plutonium
|
|
25
25
|
invalid_input: "bg-red-50 border-red-500 dark:border-red-500 text-red-900 dark:text-red-500 placeholder-red-700 dark:placeholder-red-500 focus:ring-red-500 focus:border-red-500",
|
26
26
|
valid_input: "bg-green-50 border-green-500 dark:border-green-500 text-green-900 dark:text-green-400 placeholder-green-700 dark:placeholder-green-500 focus:ring-green-500 focus:border-green-500",
|
27
27
|
neutral_input: "border-gray-300 dark:border-gray-600 dark:placeholder-gray-400 dark:text-white focus:ring-primary-500 focus:border-primary-500",
|
28
|
+
# checkbox
|
29
|
+
checkbox: "p-2 border rounded-md shadow-sm font-medium text-sm dark:bg-gray-700",
|
30
|
+
# radio buttons
|
31
|
+
radio_button: "p-2 border shadow-sm font-medium text-sm dark:bg-gray-700",
|
28
32
|
# color
|
29
33
|
color: "pu-color-input appearance-none bg-transparent border-none cursor-pointer w-10 h-10",
|
30
34
|
invalid_color: nil,
|
@@ -43,9 +43,17 @@ module Plutonium
|
|
43
43
|
end
|
44
44
|
|
45
45
|
def render_breadcrumbs
|
46
|
+
return unless render_breadcrumbs?
|
47
|
+
|
46
48
|
Breadcrumbs()
|
47
49
|
end
|
48
50
|
|
51
|
+
def render_breadcrumbs?
|
52
|
+
# Check specific page setting first, fall back to global setting
|
53
|
+
page_specific_setting = current_definition.send(:"#{page_type}_breadcrumbs")
|
54
|
+
page_specific_setting.nil? ? current_definition.breadcrumbs : page_specific_setting
|
55
|
+
end
|
56
|
+
|
49
57
|
def render_page_header
|
50
58
|
return unless page_title
|
51
59
|
|
@@ -106,6 +114,8 @@ module Plutonium
|
|
106
114
|
|
107
115
|
def render_after_footer
|
108
116
|
end
|
117
|
+
|
118
|
+
def page_type = raise NotImplementedError, "#{self.class}#page_type"
|
109
119
|
end
|
110
120
|
end
|
111
121
|
end
|
data/lib/plutonium/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: plutonium
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.19.
|
4
|
+
version: 0.19.10
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Stefan Froelich
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2025-
|
11
|
+
date: 2025-02-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: zeitwerk
|
@@ -726,6 +726,7 @@ files:
|
|
726
726
|
- lib/plutonium/definition/base.rb
|
727
727
|
- lib/plutonium/definition/config_attr.rb
|
728
728
|
- lib/plutonium/definition/defineable_props.rb
|
729
|
+
- lib/plutonium/definition/inheritable_config_attr.rb
|
729
730
|
- lib/plutonium/definition/nested_inputs.rb
|
730
731
|
- lib/plutonium/definition/presentable.rb
|
731
732
|
- lib/plutonium/definition/search.rb
|