diff --git a/lib/gollum/app.rb b/lib/gollum/app.rb index 42191d67..cb4b37ff 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,18 @@ 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 + 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 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..173bf27d 100755 --- a/lib/gollum/public/gollum/javascript/gollum.js.erb +++ b/lib/gollum/public/gollum/javascript/gollum.js.erb @@ -44,15 +44,36 @@ function abspath(path, name){ // ua $(document).ready(function() { + // for deleting the current page $('#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(); } ); + // for deleting files and pages from the overview + $('.delete-file').click( function(e) { + var ok = confirm($(this).data('confirm')); + if ( ok ) { + var element = $(this); + $.post('<%=delete_path %>' + $(this).data('file-path'), + {}, + function (result) { + // file successfully deleted, stay on overview but remove element from DOM + element.closest("li").remove(); + }); + } + // Don't navigate on cancel. + e.preventDefault(); + } ); + var nodeSelector = { node1: null, 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..49745a1c 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(