diff --git a/lib/gollum/app.rb b/lib/gollum/app.rb index 42191d67..59fc3da3 100644 --- a/lib/gollum/app.rb +++ b/lib/gollum/app.rb @@ -153,7 +153,7 @@ module Precious forbid('Changing this resource is not allowed.') end - post %r{/(deleteFile|rename|edit|create)/custom\.(js|css)} do + post %r{/(delete|rename|edit|create)/custom\.(js|css)} do forbid('Changing this resource is not allowed.') end @@ -229,18 +229,6 @@ module Precious end end - post '/deleteFile/*' do - forbid unless @allow_editing - wiki = wiki_new - filepath = params[:splat].first - unless filepath.nil? - commit = commit_message - commit[:message] = "Deleted #{filepath}" - wiki.delete_file(filepath, commit) - end - - redirect_to('/pages') - end post '/rename/*' do wikip = wiki_page(params[:splat].first) @@ -296,20 +284,23 @@ module Precious redirect to("/#{page.escaped_url_path}") unless page.nil? end - get '/delete/*' do - forbid unless @allow_editing - wikip = wiki_page(params[:splat].first) - name = join_page_name(wikip.name, wikip.ext) - wiki = wikip.wiki - page = wikip.page - unless page.nil? - commit = commit_message - commit[:message] = "Destroyed #{name} (#{page.format})" - wiki.delete_page(page, commit) - end - redirect to('/') + post '/delete/*' do + $stderr.puts "[DELETE] DELETE WAS CALLED" + forbid unless @allow_editing + wiki = wiki_new + filepath = params[:splat].first + $stderr.puts "[DELETE] for file #{filepath}" + unless filepath.nil? + commit = commit_message + commit[:message] = "Deleted #{filepath}" + $stderr.puts "[DELETE] About to call wiki.delete_file" + wiki.delete_file(filepath, commit) + end + $stderr.puts "[DELETE] dunzo" + redirect_to('/pages') end + get '/create/*' do forbid unless @allow_editing diff --git a/lib/gollum/public/gollum/javascript/gollum.js.erb b/lib/gollum/public/gollum/javascript/gollum.js.erb index b3dd8161..678b6400 100755 --- a/lib/gollum/public/gollum/javascript/gollum.js.erb +++ b/lib/gollum/public/gollum/javascript/gollum.js.erb @@ -47,8 +47,12 @@ $(document).ready(function() { $('#delete-link').click( function(e) { var ok = confirm($(this).data('confirm')); if ( ok ) { - var loc = '<%= delete_path %>/' + pageFullPath; - window.location = loc; + $.post('<%=delete_path %>/' + pageFullPath, + {}, + function (result) { + // page successfully deleted, return to landing page + window.location = '/'; + }); } // Don't navigate on cancel. e.preventDefault(); diff --git a/lib/gollum/views/helpers.rb b/lib/gollum/views/helpers.rb index 20bf1a18..fecd46a1 100644 --- a/lib/gollum/views/helpers.rb +++ b/lib/gollum/views/helpers.rb @@ -10,7 +10,6 @@ module Precious upload_file: 'uploadFile', create: 'create', delete: 'delete', - delete_file: 'deleteFile', edit: 'edit', pages: 'pages', history: 'history', diff --git a/lib/gollum/views/pages.rb b/lib/gollum/views/pages.rb index c7076957..6759bc60 100644 --- a/lib/gollum/views/pages.rb +++ b/lib/gollum/views/pages.rb @@ -31,7 +31,7 @@ module Precious def delete_file(url) - %Q(
) + %Q(
) end def files_folders diff --git a/test/test_app.rb b/test/test_app.rb index 16637976..207c1e7e 100644 --- a/test/test_app.rb +++ b/test/test_app.rb @@ -298,7 +298,7 @@ context "Frontend" do @wiki.clear_cache get "/gollum/create/TT" assert last_response.ok? - get '/gollum/delete/_Template' + post '/gollum/delete/_Template' Precious::App.set(:wiki_options, { :template_page => false }) end @@ -379,7 +379,7 @@ context "Frontend" do page = @wiki.page(name) assert_equal 'abc', page.raw_data - get '/gollum/delete/' + name + post "/gollum/delete/#{page.filename}" @wiki.clear_cache page = @wiki.page(name) @@ -515,7 +515,7 @@ context "Frontend" do end end - ['deleteFile', 'rename', 'edit', 'create'].each do |route| + ['delete', 'rename', 'edit', 'create'].each do |route| ['.css', '.js'].each do |ext| post "/gollum/#{route}/custom#{ext}" assert_equal 403, last_response.status, "post /gollum/#{route}/custom#{ext} -- #{last_response.inspect}"