* implemented file renaming (validation checks not yet)
* implemented file movement to different folders git-svn-id: http://redmine-dmsf.googlecode.com/svn/trunk/redmine_dmsf@60 5e329b0b-a2ee-ea63-e329-299493fc886d
This commit is contained in:
parent
920d94e822
commit
ea9603077e
@ -84,15 +84,19 @@ class DmsfDetailController < ApplicationController
|
||||
@revision = @file.last_revision.clone
|
||||
end
|
||||
|
||||
#TODO: separate control for approval
|
||||
#TODO: don't create revision if nothing change
|
||||
def save_file
|
||||
if @file.locked_for_user?
|
||||
flash[:error] = l(:error_file_is_locked)
|
||||
redirect_to :action => "file_detail", :id => @project, :file_id => @file
|
||||
else
|
||||
new_revision = params[:dmsf_file_revision]
|
||||
DmsfFileRevision.from_saved_file(@file, new_revision)
|
||||
new_revision = DmsfFileRevision.from_saved_file(@file, params[:dmsf_file_revision])
|
||||
new_revision.save
|
||||
|
||||
@file.name = new_revision.name
|
||||
@file.folder = new_revision.folder
|
||||
@file.save
|
||||
|
||||
if @file.locked?
|
||||
@file.unlock
|
||||
flash[:notice] = l(:notice_file_unlocked) + ", "
|
||||
|
||||
@ -51,4 +51,22 @@ module DmsfHelper
|
||||
end
|
||||
end
|
||||
|
||||
def self.directory_tree(project)
|
||||
tree = [["Documents", nil]]
|
||||
DmsfFolder.project_root_folders(project).each do |folder|
|
||||
tree.push(["...#{folder.name}", folder.id])
|
||||
directory_subtree(tree, folder, 2)
|
||||
end
|
||||
return tree
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def self.directory_subtree(tree, folder, level)
|
||||
folder.subfolders.each do |subfolder|
|
||||
tree.push(["#{"..." * level}#{subfolder.name}", subfolder.id])
|
||||
directory_subtree(tree, subfolder, level + 1)
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
@ -79,8 +79,6 @@ class DmsfFileRevision < ActiveRecord::Base
|
||||
end
|
||||
|
||||
revision.from_form_post(dmsf_file, saved_file)
|
||||
|
||||
revision.save!
|
||||
end
|
||||
|
||||
def version
|
||||
@ -108,8 +106,14 @@ class DmsfFileRevision < ActiveRecord::Base
|
||||
|
||||
self.file = file
|
||||
self.source_revision = source_revision
|
||||
self.name = self.file.name
|
||||
self.folder = self.file.folder
|
||||
|
||||
self.name = posted.has_key?("name") ? posted["name"] : self.file.name
|
||||
|
||||
if posted.has_key?("folder")
|
||||
self.folder = posted["folder"].blank? ? nil : DmsfFolder.find(posted["folder"])
|
||||
else
|
||||
self.folder = self.file.folder
|
||||
end
|
||||
|
||||
if source_revision.nil?
|
||||
from_form_post_create(posted)
|
||||
@ -122,6 +126,10 @@ class DmsfFileRevision < ActiveRecord::Base
|
||||
self.description = posted["description"]
|
||||
self.comment = posted["comment"]
|
||||
|
||||
unless posted["file"].nil?
|
||||
copy_file_content(posted)
|
||||
end
|
||||
|
||||
self
|
||||
end
|
||||
|
||||
@ -179,12 +187,12 @@ class DmsfFileRevision < ActiveRecord::Base
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
|
||||
#FIXME: put file uploaded check to standard validation
|
||||
def from_form_post_create(posted)
|
||||
if posted["file"].nil?
|
||||
raise DmsfContentError, "First revision require uploaded file"
|
||||
else
|
||||
copy_file_content(posted)
|
||||
self.major_version = case posted["version"]
|
||||
when "major" then 1
|
||||
else 0
|
||||
@ -211,7 +219,6 @@ class DmsfFileRevision < ActiveRecord::Base
|
||||
self.mime_type = source_revision.mime_type
|
||||
self.size = source_revision.size
|
||||
else
|
||||
copy_file_content(posted)
|
||||
self.minor_version = case posted["version"]
|
||||
when "major" then 0
|
||||
else self.minor_version + 1
|
||||
|
||||
@ -31,7 +31,10 @@ form_for(:dmsf_file_revision, @revision, :url => {:action => "save_file", :id =>
|
||||
<div class="splitcontentright">
|
||||
<p>
|
||||
<%= label_tag("", l(:label_filename) + ":") %>
|
||||
<%= h(@revision.name) %>
|
||||
<%= f.select(:folder,
|
||||
options_for_select(DmsfHelper.directory_tree(@project),
|
||||
:selected => (@revision.folder.id unless @revision.folder.nil?))) %> /
|
||||
<%= f.text_field(:name, :size => "24") %>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user