From 0c8250220a2fcd72e90b0d19b1f4e3e1ccc13ce6 Mon Sep 17 00:00:00 2001 From: "vit.jonas@gmail.com" Date: Tue, 24 May 2011 09:27:48 +0000 Subject: [PATCH] * work on commit validation git-svn-id: http://redmine-dmsf.googlecode.com/svn/trunk/redmine_dmsf@75 5e329b0b-a2ee-ea63-e329-299493fc886d --- app/controllers/dmsf_detail_controller.rb | 43 +++++++++++-------- .../dmsf_detail/_file_new_revision.html.erb | 1 - app/views/dmsf_detail/file_detail.html.erb | 14 ++++-- 3 files changed, 34 insertions(+), 24 deletions(-) diff --git a/app/controllers/dmsf_detail_controller.rb b/app/controllers/dmsf_detail_controller.rb index 7c24f8f0..31d2595f 100644 --- a/app/controllers/dmsf_detail_controller.rb +++ b/app/controllers/dmsf_detail_controller.rb @@ -229,6 +229,7 @@ class DmsfDetailController < ApplicationController commited_files = params[:commited_files] if commited_files && commited_files.is_a?(Hash) files = [] + failed_uploads = [] commited_files.each_value do |commited_file| name = commited_file["name"]; @@ -276,27 +277,31 @@ class DmsfDetailController < ApplicationController next end - new_revision.save - - new_revision.copy_file_content(file_upload) - file_upload.close - File.delete(commited_disk_filepath) - - if file.locked? - DmsfFileLock.file_lock_state(file, false) - flash[:notice] = l(:notice_file_unlocked) + if new_revision.save + new_revision.copy_file_content(file_upload) + file_upload.close + File.delete(commited_disk_filepath) + + if file.locked? + DmsfFileLock.file_lock_state(file, false) + flash[:notice] = l(:notice_file_unlocked) + end + file.save + file.reload + + files.push(file) + else + failed_uploads.push(commited_file) end - file.save - file.reload - - files.push(file) end - Rails.logger.info "#{Time.now} from #{request.remote_ip}/#{request.env["HTTP_X_FORWARDED_FOR"]}: #{User.current.login} uploaded for project #{@project.identifier}:" - files.each {|file| Rails.logger.info "\t#{file.dmsf_path_str}:"} - begin - DmsfMailer.deliver_files_updated(User.current, files) unless files.empty? - rescue ActionView::MissingTemplate => e - Rails.logger.error "Could not send email notifications: " + e + unless files.empty? + Rails.logger.info "#{Time.now} from #{request.remote_ip}/#{request.env["HTTP_X_FORWARDED_FOR"]}: #{User.current.login} uploaded for project #{@project.identifier}:" + files.each {|file| Rails.logger.info "\t#{file.dmsf_path_str}:"} + begin + DmsfMailer.deliver_files_updated(User.current, files) + rescue ActionView::MissingTemplate => e + Rails.logger.error "Could not send email notifications: " + e + end end end redirect_to :controller => "dmsf", :action => "index", :id => @project, :folder_id => @folder diff --git a/app/views/dmsf_detail/_file_new_revision.html.erb b/app/views/dmsf_detail/_file_new_revision.html.erb index a4674136..bf21c935 100644 --- a/app/views/dmsf_detail/_file_new_revision.html.erb +++ b/app/views/dmsf_detail/_file_new_revision.html.erb @@ -21,7 +21,6 @@ end form_for(:dmsf_file_revision, @revision, :url => {:action => "save_file", :id => @project, :file_id => @file}, :html => {:method=>:post, :multipart => true}) do |f| %> - <%= error_messages_for("revision") %>

diff --git a/app/views/dmsf_detail/file_detail.html.erb b/app/views/dmsf_detail/file_detail.html.erb index 42e4f4c8..7ec9a1a0 100644 --- a/app/views/dmsf_detail/file_detail.html.erb +++ b/app/views/dmsf_detail/file_detail.html.erb @@ -47,6 +47,8 @@ <% end %> +<%= error_messages_for("revision") %> + <% if User.current.allowed_to?(:file_manipulation, @file.project) %> <%= render(:partial => 'file_new_revision') %> <% end %> @@ -151,10 +153,14 @@ jQuery("#newRevisionFormContentToggle").text("[+]"); jQuery("#newRevisionFormContent").hide(); }); - <% if @revision.valid? %> - jQuery("#newRevisionFormContentToggle").text("[+]"); - jQuery("#newRevisionFormContent").hide(); - <% end %> }); + <% if @revision.valid? %> + + <% end %> <% end %> \ No newline at end of file