delete returns to directory user was in

This commit is contained in:
Kyle Drake 2015-05-02 22:33:50 -07:00
parent 704011a1c0
commit e08a1362e1
2 changed files with 21 additions and 3 deletions

View file

@ -87,9 +87,12 @@ end
post '/site_files/delete' do post '/site_files/delete' do
require_login require_login
current_site.delete_file params[:filename] current_site.delete_file params[:filename]
flash[:success] = "Deleted #{params[:filename]}." flash[:success] = "Deleted #{params[:filename]}."
redirect '/dashboard'
dirname = Pathname(params[:filename]).dirname
dir_query = dirname.nil? || dirname.to_s == '.' ? '' : "?dir=#{Rack::Utils.escape dirname}"
redirect "/dashboard#{dir_query}"
end end
get '/site_files/:username.zip' do |username| get '/site_files/:username.zip' do |username|

View file

@ -32,7 +32,7 @@ describe 'site_files' do
SiteFile[site_id: @site.id, path: 'test.jpg'].must_be_nil SiteFile[site_id: @site.id, path: 'test.jpg'].must_be_nil
end end
it 'deletes all files in a directory' do it 'deletes a directory and all files in it' do
upload( upload(
'dir' => 'test', 'dir' => 'test',
'files[]' => Rack::Test::UploadedFile.new('./tests/files/test.jpg', 'image/jpeg') 'files[]' => Rack::Test::UploadedFile.new('./tests/files/test.jpg', 'image/jpeg')
@ -45,6 +45,21 @@ describe 'site_files' do
@site.site_files.select {|f| f.path =~ /^test\//}.length.must_equal 0 @site.site_files.select {|f| f.path =~ /^test\//}.length.must_equal 0
@site.site_files.select {|f| f.path =~ /^test/}.length.must_equal 1 @site.site_files.select {|f| f.path =~ /^test/}.length.must_equal 1
end end
it 'goes back to deleting directory' do
upload(
'dir' => 'test',
'files[]' => Rack::Test::UploadedFile.new('./tests/files/test.jpg', 'image/jpeg')
)
delete_file filename: 'test/test.jpg'
last_response.headers['Location'].must_equal "http://example.org/dashboard?dir=test"
upload(
'files[]' => Rack::Test::UploadedFile.new('./tests/files/test.jpg', 'image/jpeg')
)
delete_file filename: 'test.jpg'
last_response.headers['Location'].must_equal "http://example.org/dashboard"
end
end end
describe 'upload' do describe 'upload' do