plutonium 0.13.1 → 0.13.2

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: 5613f3f21b909b90355d61dd75e5fe19554451e742bc65484dce87fcd99d3c55
4
- data.tar.gz: 37b0fe5f8d09973f410b386e9648de5d55b6a37b1291a8dc80d83221b3126504
3
+ metadata.gz: 866175a8ec5a15285d1fe65350957749b173840f32ed54bfd4eeb929d4ecc735
4
+ data.tar.gz: 759aff94626c9b5eb9851d0dba4f4fb3f9221284d00bafd960fe95eae87181b7
5
5
  SHA512:
6
- metadata.gz: 455e471891a69946523afa54b1ce81bf7032add875887094225bd25ddfd884cf71fe8c2cf198ce7ef88d842b2edf7277b3baec36f73b11d45c9a2c62d020fef3
7
- data.tar.gz: ba54e184b43db4094905938420a6573057a27b217ec376722fa5be97c403f7e3096828f0532e23da014f81e0e484c11bd3cd6807086291df89ce8c2c663d4c6b
6
+ metadata.gz: 7f51b28186a4f9618657426c4e63a99eac77483f814fdd471cd05193c2d90dececc208ebd73464565b70d923101889f40655a17303b9e248292695af646f8e92
7
+ data.tar.gz: d72197c60fa506326f3888c1f1afedc4c0bf09302399b5a55ababee52210b7220c732eeaeb167c94444d94d658b38ea30350c6ee609723f625814b3b3f4a3ace
@@ -28,6 +28,10 @@ module PlutoniumUi
28
28
  super(...)
29
29
  end
30
30
 
31
+ def return_to(url)
32
+ @template.tag(:input, type: "hidden", name: "return_to", value: url, hidden: true)
33
+ end
34
+
31
35
  def error_notification(options = {})
32
36
  # Overriding this because we want an unstyled error notification
33
37
  translate_error_notification = lambda {
@@ -34,11 +34,11 @@ module PlutoniumGenerators
34
34
  end
35
35
 
36
36
  def available_apps
37
- @available_apps ||= ["main_app"] + available_packages.select { |pkg| pkg.ends_with? "_app" }
37
+ @available_apps ||= ["main_app"] + available_packages.select { |pkg| pkg.ends_with? "_app" }.sort
38
38
  end
39
39
 
40
40
  def available_features
41
- @available_features ||= ["main_app"] + available_packages.select { |pkg| !pkg.ends_with?("_app") }
41
+ @available_features ||= ["main_app"] + available_packages.select { |pkg| !pkg.ends_with?("_app") }.sort
42
42
  end
43
43
 
44
44
  def select_package(selected_package = nil, msg: "Select package", pkgs: nil)
@@ -18,7 +18,7 @@ module Pu
18
18
  source_module = (source_feature == "main_app") ? "ResourceRecord" : "#{source_feature.classify}::ResourceRecord"
19
19
 
20
20
  Plutonium.eager_load_rails!
21
- available_resources = source_module.constantize.descendants.map(&:to_s)
21
+ available_resources = source_module.constantize.descendants.map(&:to_s).sort
22
22
  selected_resources = prompt.multi_select("Select resources", available_resources)
23
23
 
24
24
  @app_namespace = select_app.classify
@@ -9,8 +9,6 @@ module Plutonium
9
9
  included do
10
10
  add_flash_types :success, :warning, :error
11
11
 
12
- before_action :set_page_title
13
-
14
12
  before_action do
15
13
  next unless defined?(ActiveStorage)
16
14
 
@@ -26,8 +24,8 @@ module Plutonium
26
24
 
27
25
  private
28
26
 
29
- def set_page_title
30
- @page_title = nil
27
+ def set_page_title(page_title)
28
+ @page_title = page_title
31
29
  end
32
30
 
33
31
  def make_page_title(title)
@@ -11,6 +11,7 @@ module Plutonium
11
11
  # GET /resources(.{format})
12
12
  def index
13
13
  authorize resource_class
14
+ set_page_title resource_class.model_name.human.pluralize.titleize
14
15
 
15
16
  @search_object = current_query_object
16
17
  base_query = policy_scope(resource_class)
@@ -25,6 +26,7 @@ module Plutonium
25
26
  # GET /resources/1(.{format})
26
27
  def show
27
28
  authorize resource_record
29
+ set_page_title resource_record.to_label.titleize
28
30
 
29
31
  @detail = build_detail
30
32
 
@@ -34,6 +36,7 @@ module Plutonium
34
36
  # GET /resources/new
35
37
  def new
36
38
  authorize resource_class
39
+ set_page_title "Create #{resource_class.model_name.human.titleize}"
37
40
 
38
41
  @resource_record = resource_class.new
39
42
  maybe_apply_submitted_resource_params!
@@ -45,6 +48,7 @@ module Plutonium
45
48
  # POST /resources(.{format})
46
49
  def create
47
50
  authorize resource_class
51
+ set_page_title "Create #{resource_class.model_name.human.titleize}"
48
52
 
49
53
  @resource_record = resource_class.new resource_params
50
54
 
@@ -71,6 +75,7 @@ module Plutonium
71
75
  # GET /resources/1/edit
72
76
  def edit
73
77
  authorize resource_record
78
+ set_page_title "Update #{resource_record.to_label.titleize}"
74
79
 
75
80
  maybe_apply_submitted_resource_params!
76
81
  @form = build_form
@@ -81,6 +86,7 @@ module Plutonium
81
86
  # PATCH/PUT /resources/1(.{format})
82
87
  def update
83
88
  authorize resource_record
89
+ set_page_title "Update #{resource_record.to_label.titleize}"
84
90
 
85
91
  respond_to do |format|
86
92
  if resource_record.update(resource_params)
@@ -131,6 +137,10 @@ module Plutonium
131
137
  private
132
138
 
133
139
  def redirect_url_after_submit
140
+ if (return_to = url_from(params[:return_to]))
141
+ return return_to
142
+ end
143
+
134
144
  url = case preferred_action_after_submit
135
145
  when "show"
136
146
  resource_url_for(resource_record) if current_policy.show?
@@ -32,13 +32,13 @@ module Plutonium
32
32
  next unless model.table_exists?
33
33
  model.reflect_on_all_associations(:has_many).each do |association|
34
34
  if association.options[:as] == reflection.name
35
- associated_classes << model.name
35
+ associated_classes << model
36
36
  end
37
37
  end
38
38
  end
39
39
 
40
40
  associated_classes.map { |klass|
41
- [klass.name, klass.all]
41
+ [klass.model_name.human.pluralize, klass.all]
42
42
  }.to_h
43
43
  end
44
44
  end
@@ -181,7 +181,7 @@ module Plutonium
181
181
  # @return [ActiveRecord::Reflection::AssociationReflection, nil]
182
182
  def find_association_to_record(record)
183
183
  reflect_on_all_associations.find do |assoc|
184
- assoc.klass.name == record.class.name
184
+ assoc.klass.name == record.class.name unless assoc.polymorphic?
185
185
  rescue
186
186
  assoc.check_validity!
187
187
  raise
@@ -267,7 +267,7 @@ module Plutonium
267
267
  def belongs_to_association_parameters
268
268
  reflect_on_all_associations(:belongs_to).map do |reflection|
269
269
  input_param = reflection.options[:foreign_key] || :"#{reflection.name}_id"
270
- [reflection.name, {input_param => nil}]
270
+ [reflection.name, {input_param => nil, :"#{reflection.name}_sgid" => nil}]
271
271
  end.to_h
272
272
  end
273
273
 
@@ -1,3 +1,3 @@
1
1
  module Plutonium
2
- VERSION = "0.13.1"
2
+ VERSION = "0.13.2"
3
3
  end
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.13.1
4
+ version: 0.13.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Stefan Froelich
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-06-28 00:00:00.000000000 Z
11
+ date: 2024-07-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: zeitwerk