mirror of
https://github.com/neocities/neocities.git
synced 2025-04-25 01:32:36 +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!"
|
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
|
end
|
||||||
|
|
||||||
params[:files].each do |file|
|
params[:files].each_with_index do |file,i|
|
||||||
file[:filename] = "#{params[:dir]}/#{file[:filename]}" if params[:dir]
|
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
|
if current_site.file_size_too_large? file[:tempfile].size
|
||||||
file_upload_response "#{file[:filename]} is too large, upload cancelled."
|
file_upload_response "#{file[:filename]} is too large, upload cancelled."
|
||||||
end
|
end
|
||||||
|
|
|
@ -246,8 +246,12 @@
|
||||||
|
|
||||||
this.on("error", function(file, errorMessage) {
|
this.on("error", function(file, errorMessage) {
|
||||||
hideUploadProgress()
|
hideUploadProgress()
|
||||||
location.href = '/dashboard<%= @dir ? "?dir=#{@dir}" : "" %>'
|
// Guess a directory upload error
|
||||||
// alert('Failed: '+errorMessage)
|
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) {
|
this.on("totaluploadprogress", function(progress, totalBytes, totalBytesSent) {
|
||||||
|
@ -258,6 +262,10 @@
|
||||||
$('#progressBar').css('display', 'block')
|
$('#progressBar').css('display', 'block')
|
||||||
$('#uploadingProgress').css('width', progress+'%')
|
$('#uploadingProgress').css('width', progress+'%')
|
||||||
})
|
})
|
||||||
|
|
||||||
|
this.on("sending", function(file) {
|
||||||
|
$('#uploads').append('<input type="hidden" name="file_paths[]" value="'+file.fullPath+'">')
|
||||||
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
Loading…
Add table
Reference in a new issue