From d0d6cec34e7057812c6c584cfc1969ad32d12008 Mon Sep 17 00:00:00 2001 From: Kyle Drake Date: Wed, 25 Feb 2015 14:24:52 -0800 Subject: [PATCH 1/5] permit uploading of empty files #85 --- models/site.rb | 2 +- tests/site_file_tests.rb | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/models/site.rb b/models/site.rb index 9b26a8ab..fda6cace 100644 --- a/models/site.rb +++ b/models/site.rb @@ -493,7 +493,7 @@ class Site < Sequel::Model # extname = uploaded_file[:filename] #end - unless (Site::VALID_MIME_TYPES.include?(mime_type) || mime_type =~ /text/) && + unless (Site::VALID_MIME_TYPES.include?(mime_type) || mime_type =~ /text/ || mime_type =~ /inode\/x-empty/) && Site::VALID_EXTENSIONS.include?(extname.sub(/^./, '').downcase) return false end diff --git a/tests/site_file_tests.rb b/tests/site_file_tests.rb index d0e8d8da..33b9b945 100644 --- a/tests/site_file_tests.rb +++ b/tests/site_file_tests.rb @@ -48,6 +48,11 @@ describe 'site_files' do end describe 'upload' do + it 'works with empty files' do + upload 'files[]' => Rack::Test::UploadedFile.new('./tests/files/empty.js', 'text/javascript') + File.exists?(@site.files_path('empty.js')).must_equal true + end + it 'manages files with invalid UTF8' do upload 'files[]' => Rack::Test::UploadedFile.new('./tests/files/invalidutf8.html', 'text/html') File.exists?(@site.files_path('invalidutf8.html')).must_equal true From ca2a0c057b8df8f8dc14fdfa3fb7f41e9861f5aa Mon Sep 17 00:00:00 2001 From: Kyle Drake Date: Wed, 25 Feb 2015 14:28:15 -0800 Subject: [PATCH 2/5] missing file for empty js test #85 --- tests/files/empty.js | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 tests/files/empty.js diff --git a/tests/files/empty.js b/tests/files/empty.js new file mode 100644 index 00000000..e69de29b From fe9b051c8799ec09ca407ee9cc9d13ff73150e46 Mon Sep 17 00:00:00 2001 From: Kyle Drake Date: Wed, 25 Feb 2015 20:49:46 -0800 Subject: [PATCH 3/5] fix for derpie behavior of successmultiple firing for each upload --- views/dashboard.erb | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/views/dashboard.erb b/views/dashboard.erb index 2683b1fe..d55d2a01 100644 --- a/views/dashboard.erb +++ b/views/dashboard.erb @@ -227,6 +227,8 @@ $('#uploadingOverlay').css('display', 'none') } + allUploadsComplete = false + Dropzone.options.uploads = { paramName: 'files', maxFilesize: <%= current_site.remaining_space.to_mb %>, @@ -235,8 +237,9 @@ dictDefaultMessage: '', uploadMultiple: true, init: function() { - this.on("successmultiple", function(file) { - location.reload() + this.on("completemultiple", function(file) { + if(allUploadsComplete == true) + location.reload() }) this.on("error", function(file, errorMessage) { @@ -246,6 +249,9 @@ }) this.on("totaluploadprogress", function(progress, totalBytes, totalBytesSent) { + if(progress == 100) + allUploadsComplete = true + showUploadProgress() $('#progressBar').css('display', 'block') $('#uploadingProgress').css('width', progress+'%') From 781e85f908465a6fac2531afa3466e164a468720 Mon Sep 17 00:00:00 2001 From: Kyle Drake Date: Wed, 25 Feb 2015 21:10:46 -0800 Subject: [PATCH 4/5] set mode correctly for ace editor [#93:closed] --- app/site_files.rb | 13 ++++++++++++- views/site_files/text_editor.erb | 10 ++++++---- 2 files changed, 18 insertions(+), 5 deletions(-) diff --git a/app/site_files.rb b/app/site_files.rb index 3d5507a6..ef6a02fa 100644 --- a/app/site_files.rb +++ b/app/site_files.rb @@ -110,6 +110,17 @@ end get %r{\/site_files\/text_editor\/(.+)} do require_login @filename = params[:captures].first + extname = File.extname @filename + + @ace_mode = case extname + when /htm|html/ then 'html' + when /js/ then 'javascript' + when /md/ then 'markdown' + when /css/ then 'css' + else + nil + end + begin @file_data = current_site.get_file @filename rescue Errno::ENOENT @@ -148,4 +159,4 @@ end get '/site_files/mount_info' do erb :'site_files/mount_info' -end \ No newline at end of file +end diff --git a/views/site_files/text_editor.erb b/views/site_files/text_editor.erb index c3657647..15a57814 100644 --- a/views/site_files/text_editor.erb +++ b/views/site_files/text_editor.erb @@ -2,7 +2,7 @@ html { overflow-y: hidden; } - #editor { + #editor { position: absolute; top: 0; right: 0; @@ -133,14 +133,14 @@ $('#editorUpdates').fadeOut(); //.addClass('hidden'); }, 2000) } - + } else { $('#saveButton').tooltip('show') $('#editorUpdates span').text(response) } $('#editorUpdates').fadeIn() $('#editorUpdates').removeClass('hidden') - + } }) } @@ -150,7 +150,9 @@ $(document).ready(function() { editor = ace.edit("editor") setTheme() - editor.getSession().setMode("ace/mode/html") + <% if @ace_mode %> + editor.getSession().setMode("ace/mode/<%= @ace_mode %>") + <% end %> editor.getSession().setTabSize(2) editor.getSession().setUseWrapMode(true) editor.setFontSize(14) From c28a72df5c35fd503c1e1f2c0ef159986c1e33b9 Mon Sep 17 00:00:00 2001 From: Kyle Drake Date: Thu, 26 Feb 2015 05:12:00 +0000 Subject: [PATCH 5/5] updated gemfile.lock --- Gemfile.lock | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/Gemfile.lock b/Gemfile.lock index af2ce3f0..fd90fb5b 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -18,6 +18,9 @@ GEM bcrypt (3.1.7) blankslate (3.1.3) builder (3.2.2) + byebug (2.7.0) + columnize (~> 0.3) + debugger-linecache (~> 1.2) capybara (2.4.1) mime-types (>= 1.16) nokogiri (>= 1.3.3) @@ -35,6 +38,7 @@ GEM cocaine (0.5.4) climate_control (>= 0.0.3, < 1.0) coderay (1.1.0) + columnize (0.8.9) connection_pool (2.0.0) crack (0.4.2) safe_yaml (~> 1.0.0) @@ -43,6 +47,7 @@ GEM nokogiri (>= 1.4.2) rack (>= 1.1.0) uuidtools (~> 2.1.1) + debugger-linecache (1.2.0) docile (1.1.3) erubis (2.7.0) extlib (0.9.16) @@ -118,6 +123,9 @@ GEM coderay (~> 1.0) method_source (~> 0.8) slop (~> 3.4) + pry-byebug (1.3.2) + byebug (~> 2.7) + pry (~> 0.9.12) puma (2.8.1) rack (>= 1.1, < 2.0) rack (1.5.2)