* 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:
parent
2d06ddf8fe
commit
60cbc011c3
@ -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
|
||||
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}"
|
||||
end
|
||||
else
|
||||
# TODO: check this error handling
|
||||
@revision.errors.each {|e| flash[:error] = e[1]}
|
||||
end
|
||||
end
|
||||
redirect_to :action => "show", :id => @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
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user