* work on Issue 54: Choose if deleted Documents remains in storage

git-svn-id: http://redmine-dmsf.googlecode.com/svn/trunk/redmine_dmsf@148 5e329b0b-a2ee-ea63-e329-299493fc886d
This commit is contained in:
vit.jonas@gmail.com 2011-06-12 21:42:16 +00:00
parent 2d06ddf8fe
commit 60cbc011c3
2 changed files with 26 additions and 13 deletions

View File

@ -140,19 +140,13 @@ class DmsfFilesController < ApplicationController
end
def delete_revision
if @revision.file.locked_for_user?
flash[:error] = l(:error_file_is_locked)
else
if !@revision.nil? && !@revision.deleted
if @revision.file.revisions.size <= 1
flash[:error] = l(:error_at_least_one_revision_must_be_present)
else
@revision.deleted = true
@revision.deleted_by_user = User.current
@revision.save
flash[:notice] = l(:notice_revision_deleted)
Rails.logger.info "#{Time.now} from #{request.remote_ip}/#{request.env["HTTP_X_FORWARDED_FOR"]}: #{User.current.login} deleted revision #{@project.identifier}://#{@revision.file.dmsf_path_str}/#{@revision.id}"
end
if !@revision.nil? && !@revision.deleted
if @revision.delete
flash[:notice] = l(:notice_revision_deleted)
Rails.logger.info "#{Time.now} from #{request.remote_ip}/#{request.env["HTTP_X_FORWARDED_FOR"]}: #{User.current.login} deleted revision #{@project.identifier}://#{@revision.file.dmsf_path_str}/#{@revision.id}"
else
# TODO: check this error handling
@revision.errors.each {|e| flash[:error] = e[1]}
end
end
redirect_to :action => "show", :id => @file

View File

@ -55,6 +55,25 @@ class DmsfFileRevision < ActiveRecord::Base
remove_extension(filename).gsub(/_+/, " ");
end
def delete
if self.file.locked_for_user?
errors.add_to_base(l(:error_file_is_locked))
return false
end
if self.file.revisions.size <= 1
errors.add_to_base(l(:error_at_least_one_revision_must_be_present))
return false
end
if Setting.plugin_redmine_dmsf["dmsf_really_delete_files"]
File.delete(self.disk_file)
self.destroy
else
self.deleted = true
self.deleted_by_user = User.current
save
end
end
def version
"#{self.major_version}.#{self.minor_version}"
end