From 8182ec2fe3ba3afadfca0293d556d768be5fc936 Mon Sep 17 00:00:00 2001 From: andyl Date: Fri, 5 Apr 2013 10:59:27 -0700 Subject: [PATCH] wiki create and delete operations work --- app/controllers/wiki_controller.rb | 30 +++++++++++------ app/helpers/wiki_helper.rb | 50 +++++++++++++++++++++++++---- app/views/wiki/_foundation.html.erb | 2 +- app/views/wiki/edit.html.erb | 2 +- app/views/wiki/new.html.erb | 29 +++++------------ config/routes.rb | 4 +++ 6 files changed, 79 insertions(+), 38 deletions(-) diff --git a/app/controllers/wiki_controller.rb b/app/controllers/wiki_controller.rb index e01cb8f4..5f66a8bc 100644 --- a/app/controllers/wiki_controller.rb +++ b/app/controllers/wiki_controller.rb @@ -9,7 +9,9 @@ def index end def new - @dir = params[:dir] + setenv + @cancel = params['cancel'] + @path[0] = "new" end def show @@ -17,7 +19,10 @@ def show end def create - + setenv + #noinspection RubyArgCount + @wiki.write_page(params['newpage'], :markdown, params["text_area"], commit) + redirect_to "/wiki/#{params['newpage']}/show", :notice => "Successful Creation" end def edit @@ -30,27 +35,34 @@ def rename def update setenv - commit = {message: "HELLO THERE", - name: current_member.full_name, - email: current_member.emails.first.address } + #noinspection RubyArgCount @wiki.update_page(@page, @page.name, @page.format, params["text_area"], commit) redirect_to "/wiki/#{@page.url_path}/show", :notice => "Successful Update" end def reproc setenv - commit = {message: "HELLO THERE", - name: current_member.full_name, - email: current_member.emails.first.address } @wiki.rename_page(@page, params['newpage'], commit) redirect_to "/wiki/#{params['newpage']}/show", :notice => "Successful Update" end def destroy + setenv + @wiki.delete_page(@page, commit) + ext = @dir.nil? ? "" : "/#{@dir}" + redirect_to "/wiki#{ext}", :notice => "Page was deleted" end private + def commit + { + message: "HELLO THERE", + name: current_member.full_name, + email: current_member.emails.first.address + } + end + def setenv @wiki = Gollum::Wiki.new(Rails.root.join('wiki').to_s, :base_path => "../wiki") @dir = params['dir'] @@ -58,6 +70,7 @@ def setenv @path = get_path(@wiki, @dir, page) @dirs = get_dirs(@wiki, @dir) @pages = get_pages(@wiki, @dir) + #noinspection RubyArgCount @page = @pages.select {|x| x.url_path.split('/').last == page}.try(:first) end @@ -79,7 +92,6 @@ def get_dirs(wiki, dir) def get_pages(wiki, dir) if dir.blank? - "BLANK" wiki.pages.select {|x| ! x.url_path.include? '/'} else wiki.pages.select {|x| x.url_path.include? "#{dir}/"} diff --git a/app/helpers/wiki_helper.rb b/app/helpers/wiki_helper.rb index 96c146c4..2ba245cf 100644 --- a/app/helpers/wiki_helper.rb +++ b/app/helpers/wiki_helper.rb @@ -1,9 +1,19 @@ module WikiHelper - def wiki_path - return "wiki" if @path.length == 1 - return "wiki / #{@path[1]}" if @path.length == 2 - "wiki / #{@path[1]} / #{@path[2]}" + def wiki_nav_path + wiklink = "wiki" + if @path.first == "new" + case @path.length + when 1 then wiklink + else "#{wiklink} / #{@path[1]}" + end + else + case @path.length + when 1 then wiklink + when 2 then "wiki / #{@path[1]}" + else "#{wiklink} / #{@path[1]} / #{@path[2]}" + end + end end def wiki_dirs @@ -23,13 +33,18 @@ def wiki_pages end def wiki_index_nav - "New" + path = @dir.nil? ? "" : "#{@dir}/" + new = "New" + new end def wiki_show_nav + path = @dir.nil? ? "" : "#{@dir}/" + new = "New" edit = "Edit" rename = "Rename" - "New | #{edit} | #{rename} | Delete" + delete = "Delete" + "#{new} | #{edit} | #{rename} | #{delete}" end def wiki_edit_nav @@ -42,6 +57,13 @@ def wiki_edit_nav EOF end + def wiki_edit_content + <<-EOF + + + EOF + end + def wiki_rename_nav <<-EOF
@@ -59,5 +81,21 @@ def wiki_rename_content EOF end + def wiki_new_nav + <<-EOF + + + | Cancel + EOF + end + + def wiki_new_content + <<-EOF + New page name: + +
+ EOF + end + end diff --git a/app/views/wiki/_foundation.html.erb b/app/views/wiki/_foundation.html.erb index 000ab4d3..d8c70d34 100644 --- a/app/views/wiki/_foundation.html.erb +++ b/app/views/wiki/_foundation.html.erb @@ -15,7 +15,7 @@ - +
<%= raw wiki_path %><%= raw wiki_nav_path %> <%= raw nav %>
diff --git a/app/views/wiki/edit.html.erb b/app/views/wiki/edit.html.erb index 133474d8..4543654b 100644 --- a/app/views/wiki/edit.html.erb +++ b/app/views/wiki/edit.html.erb @@ -4,6 +4,6 @@ render :partial => 'foundation', :locals => { :nav => wiki_edit_nav, - :content => "" + :content => wiki_edit_content } %> \ No newline at end of file diff --git a/app/views/wiki/new.html.erb b/app/views/wiki/new.html.erb index 72516f70..7f040f00 100644 --- a/app/views/wiki/new.html.erb +++ b/app/views/wiki/new.html.erb @@ -1,23 +1,10 @@ -
-
-
- - - - - -
BAMRU Wiki - <%# raw wiki_nav %> - WIKI NAV -
-
+<%= csrf_meta_tag %> -
+<%= + render :partial => 'foundation', + :locals => { + :nav => wiki_new_nav, + :content => wiki_new_content + } +%> - WIKI NEW - -
- - -
-
diff --git a/config/routes.rb b/config/routes.rb index aded9d29..081024e3 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -2,6 +2,7 @@ get "wiki/new" => "wiki#new" get "wiki/:dir/new" => "wiki#new" + get "wiki/:dir/:page/new" => "wiki#new" get "wiki" => "wiki#index" get "wiki/:dir" => "wiki#index" get "wiki/:dir/:page/edit" => "wiki#edit" @@ -14,6 +15,9 @@ put "wiki/:page/rename" => "wiki#reproc" put "wiki/:dir/:page" => "wiki#update" put "wiki/:page" => "wiki#update" + get "wiki/:page/delete" => "wiki#destroy" + get "wiki/:dir/:page/delete" => "wiki#destroy" + post "wiki" => "wiki#create" get "home/admin" get "home/index"