summaryrefslogtreecommitdiff
path: root/app/models/node.rb
diff options
context:
space:
mode:
authorerdgeist <erdgeist@erdgeist.org>2026-07-08 22:49:49 +0200
committererdgeist <erdgeist@erdgeist.org>2026-07-08 22:49:49 +0200
commit0bc112baec8b3d19aba3c1757cb4cf81fda098c5 (patch)
tree4c5738174e6e7ba033fe0d4aeef8928c1d3d24b4 /app/models/node.rb
parente8746f51be856f9c65049b5fce3c504f1ce26470 (diff)
Fix blank-title validation and its lost form state on re-render
A blank title failed presence and length validation simultaneously, showing two redundant messages for one problem; length now skips whenever slug is already blank, matching presence's own skip condition. Separately, create's failure path never computed @selected_kind/@parent_id/@parent_name the way new does, so re-rendering after a validation error silently lost which kind and parent had been chosen -- for the auto-tagging/auto-templating kinds, that meant a corrected resubmission could silently produce a plain generic node instead. required on the title field closes the common case without a round trip; the server-side fix remains the actual guarantee, since required is trivially bypassed.
Diffstat (limited to 'app/models/node.rb')
-rw-r--r--app/models/node.rb2
1 files changed, 1 insertions, 1 deletions
diff --git a/app/models/node.rb b/app/models/node.rb
index f15c908..7675ab6 100644
--- a/app/models/node.rb
+++ b/app/models/node.rb
@@ -17,7 +17,7 @@ class Node < ApplicationRecord
17 after_save :update_unique_names_of_children 17 after_save :update_unique_names_of_children
18 18
19 # Validations 19 # Validations
20 validates_length_of :slug, :within => 1..255, :unless => -> { parent_id.nil? } 20 validates_length_of :slug, :within => 1..255, :unless => -> { parent_id.nil? || slug.blank? }
21 validates_presence_of :slug, :unless => -> { parent_id.nil? } 21 validates_presence_of :slug, :unless => -> { parent_id.nil? }
22 validates_uniqueness_of :slug, :scope => :parent_id, :unless => -> { parent_id.nil? } 22 validates_uniqueness_of :slug, :scope => :parent_id, :unless => -> { parent_id.nil? }
23 validates_presence_of :parent_id, :unless => -> { Node.root.nil? } 23 validates_presence_of :parent_id, :unless => -> { Node.root.nil? }