diff options
Diffstat (limited to 'app/controllers')
| -rw-r--r-- | app/controllers/nodes_controller.rb | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/app/controllers/nodes_controller.rb b/app/controllers/nodes_controller.rb index f8b8058..a23354c 100644 --- a/app/controllers/nodes_controller.rb +++ b/app/controllers/nodes_controller.rb | |||
| @@ -28,15 +28,17 @@ class NodesController < ApplicationController | |||
| 28 | end | 28 | end |
| 29 | 29 | ||
| 30 | def create | 30 | def create |
| 31 | @node = Node.new( params[:node] ) | 31 | parent = case params[:kind] |
| 32 | 32 | when "top_level" then Node.root | |
| 33 | parent = Node.find(params[:parent_id]) | 33 | when "update" then Update.find_or_create_parent |
| 34 | when "generic" then Node.find(params[:parent_id]) | ||
| 35 | end | ||
| 34 | 36 | ||
| 35 | if parent and @node.save | 37 | if parent |
| 36 | @node.move_to_child_of parent | 38 | @node = parent.children.create(:slug => params[:title].parameterize.to_s) |
| 39 | @node.draft.update_attributes(:title => params[:title]) | ||
| 37 | redirect_to(edit_node_path(@node)) | 40 | redirect_to(edit_node_path(@node)) |
| 38 | else | 41 | else |
| 39 | @node.errors.add("Parent node") | ||
| 40 | render :action => :new | 42 | render :action => :new |
| 41 | end | 43 | end |
| 42 | end | 44 | end |
