mirror of
https://github.com/neocities/neocities.git
synced 2025-04-24 17:22:35 +02:00
recursive directory drag-n-drop for chrome
This commit is contained in:
parent
258ef281e0
commit
f00e5d0757
2 changed files with 26 additions and 4 deletions
|
@ -59,8 +59,22 @@ post '/site_files/upload' do
|
|||
file_upload_response "Uploaded files were not seen by the server, cancelled. We don't know what's causing this yet. Please contact us so we can help fix it. Thanks!"
|
||||
end
|
||||
|
||||
params[:files].each do |file|
|
||||
file[:filename] = "#{params[:dir]}/#{file[:filename]}" if params[:dir]
|
||||
params[:files].each_with_index do |file,i|
|
||||
dir_name = ''
|
||||
dir_name = params[:dir] if params[:dir]
|
||||
|
||||
unless params[:file_paths].nil? || params[:file_paths].empty? || params[:file_paths].length == 0
|
||||
|
||||
file_path = params[:file_paths].select {|file_path|
|
||||
file[:filename] == Pathname(file_path).basename.to_s
|
||||
}.first
|
||||
|
||||
unless file_path.nil?
|
||||
dir_name += '/' + Pathname(file_path).dirname.to_s
|
||||
end
|
||||
end
|
||||
|
||||
file[:filename] = "#{dir_name}/#{file[:filename]}"
|
||||
if current_site.file_size_too_large? file[:tempfile].size
|
||||
file_upload_response "#{file[:filename]} is too large, upload cancelled."
|
||||
end
|
||||
|
|
|
@ -246,8 +246,12 @@
|
|||
|
||||
this.on("error", function(file, errorMessage) {
|
||||
hideUploadProgress()
|
||||
location.href = '/dashboard<%= @dir ? "?dir=#{@dir}" : "" %>'
|
||||
// alert('Failed: '+errorMessage)
|
||||
// Guess a directory upload error
|
||||
if(file.status == 'error' && file.name.match(/.+\..+/) == null && errorMessage == 'Server responded with 0 code.') {
|
||||
alert('Recursive directory upload is only supported by the Chrome web browser.')
|
||||
} else {
|
||||
location.href = '/dashboard<%= @dir ? "?dir=#{@dir}" : "" %>'
|
||||
}
|
||||
})
|
||||
|
||||
this.on("totaluploadprogress", function(progress, totalBytes, totalBytesSent) {
|
||||
|
@ -258,6 +262,10 @@
|
|||
$('#progressBar').css('display', 'block')
|
||||
$('#uploadingProgress').css('width', progress+'%')
|
||||
})
|
||||
|
||||
this.on("sending", function(file) {
|
||||
$('#uploads').append('<input type="hidden" name="file_paths[]" value="'+file.fullPath+'">')
|
||||
})
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
|
Loading…
Add table
Reference in a new issue