From e6d86fe2b907b6be57bab88396ab8b27fa95d580 Mon Sep 17 00:00:00 2001
From: realtradam
Date: Wed, 2 Dec 2020 23:55:40 -0500
Subject: known bugs fixed
---
app/assets/stylesheets/style.css | 12 ++++++++++++
app/controllers/nodes_controller.rb | 35 ++++++++++++++++++++++++++++++++---
app/helpers/nodes_helper.rb | 12 ++++++++++++
app/views/nodes/edit.html.erb | 21 +++++++++++++++++++++
app/views/nodes/index.html.erb | 27 +++++++++++++++++----------
app/views/nodes/show.html.erb | 3 +++
6 files changed, 97 insertions(+), 13 deletions(-)
create mode 100644 app/views/nodes/edit.html.erb
diff --git a/app/assets/stylesheets/style.css b/app/assets/stylesheets/style.css
index d779fce..965bbd1 100644
--- a/app/assets/stylesheets/style.css
+++ b/app/assets/stylesheets/style.css
@@ -2,3 +2,15 @@ body {
background-color: black;
color: white;
}
+
+.indent {
+ padding: 1px;
+ margin-left: 15px;
+}
+
+div.indent {
+ display : list-item;
+ list-style-type: disc;
+ list-style-position: inside;
+ padding-left: 0.2em;
+}
diff --git a/app/controllers/nodes_controller.rb b/app/controllers/nodes_controller.rb
index f603f52..826be55 100644
--- a/app/controllers/nodes_controller.rb
+++ b/app/controllers/nodes_controller.rb
@@ -12,8 +12,12 @@ class NodesController < ApplicationController
@node = Node.new
@nodes = Node.all
end
+ def edit
+ @node = Node.find(params[:id])
+ @nodes = Node.all
+ end
def create
- unless params[:node][:parent].to_i == 0
+ unless params[:node][:parent] == ""
@parent = Node.find(params[:node][:parent])
@node = @parent.children.build(title: params[:node][:title], content: params[:node][:content], parent: @parent)
else
@@ -21,13 +25,38 @@ class NodesController < ApplicationController
@node = Node.new(params.require(:node).permit(:parent,:title,:content))
end
-
@node.save
redirect_to @node
end
+ def update
+ @node = Node.find(params[:id])
+ unless params[:node][:parent] == "" #if user doesnt want to not have parent
+ unless params[:id] == params[:node][:parent] # if the user didnt select a child to be its own parent(error handling)
+ @parent = Node.find(params[:node][:parent])
+ if @node.update(title: params[:node][:title], content: params[:node][:content], parent: @parent)
+ @parent.children << @node # assign new parent
+ redirect_to @node
+ else
+ @nodes = Node.all #makes dropdown work in render
+ render 'edit'
+ end
+ else
+ @nodes = Node.all #makes dropdown work in render
+ render 'edit'
+ end
+ else # save node without parent
+ if @node.update(title: params[:node][:title], content: params[:node][:content], parent: nil)
+ redirect_to @node
+ else
+ @nodes = Node.all # makes dropdown work in render
+ render 'edit'
+ end
+ end
+ end
+
private
def node_params
-
+
end
end
diff --git a/app/helpers/nodes_helper.rb b/app/helpers/nodes_helper.rb
index 673b561..2141bfc 100644
--- a/app/helpers/nodes_helper.rb
+++ b/app/helpers/nodes_helper.rb
@@ -1,2 +1,14 @@
module NodesHelper
+ def showNestedChildren(node, level)
+ puts node.children.to_yaml
+ if node.children.any?
+ returnme = "#{node.title}
".html_safe
+ node.children.each do |nestednode|
+ returnme += (showNestedChildren(nestednode, level + 1)).html_safe
+ end
+ returnme += " ".html_safe
+ else
+ returnme = "#{node.title}
".html_safe
+ end
+ end
end
diff --git a/app/views/nodes/edit.html.erb b/app/views/nodes/edit.html.erb
new file mode 100644
index 0000000..0b64046
--- /dev/null
+++ b/app/views/nodes/edit.html.erb
@@ -0,0 +1,21 @@
+edit wiki page
+<%= form_with(model: @node, local: true) do |form| %>
+
+ <%= form.label :title %>
+ <%= form.text_field :title %>
+
+
+
+ <%= form.label :content %>
+ <%= form.text_area :content %>
+
+
+ <%= form.collection_select :parent, @nodes, :id, :title, include_blank: true, :selected => @node&.parent&.id %>
+
+
+
+ <%= form.submit %>
+
+<% end %>
+
+<% link_to 'Back', nodes_path %>
diff --git a/app/views/nodes/index.html.erb b/app/views/nodes/index.html.erb
index 2a14880..d787727 100644
--- a/app/views/nodes/index.html.erb
+++ b/app/views/nodes/index.html.erb
@@ -1,15 +1,22 @@
suh
+
<% @rootnodes.each do |rootnode| %>
-
- | PARENT: <%= rootnode.title %> |
-
-
- <% rootnode.children.each do |node| %>
-
- | CHILD: <%= node[:title] %> |
-
- <% end %>
-
+ <% if rootnode.children.any? %>
+
+ <%= rootnode.title %>
+ <% rootnode.children.each do |node| %>
+ <%= showNestedChildren(node, 1) %>
+ <% end %>
+
+ <% else %>
+ <%= rootnode.title %>
+ <% end %>
<% end %>
+
+
+
+ See More
+ This text will be hidden if your browser supports it.
+
diff --git a/app/views/nodes/show.html.erb b/app/views/nodes/show.html.erb
index c933d1e..ccca323 100644
--- a/app/views/nodes/show.html.erb
+++ b/app/views/nodes/show.html.erb
@@ -6,4 +6,7 @@
Content:
<%= @node.content %>
+<% @node.children.each do |child| %>
+ <%= child.id %>
+<% end %>
--
cgit v1.2.3