Updated files inline with changes in #12
This commit is contained in:
parent
a445de4cc8
commit
6c8d3c1128
@ -28,10 +28,10 @@ class DmsfController < ApplicationController
|
|||||||
|
|
||||||
def show
|
def show
|
||||||
if @folder.nil?
|
if @folder.nil?
|
||||||
@subfolders = @project.dmsf_folders #DmsfFolder.project_root_folders(@project)
|
@subfolders = @project.dmsf_folders.visible #DmsfFolder.project_root_folders(@project)
|
||||||
@files = @project.dmsf_files.visible #DmsfFile.project_root_files(@project)
|
@files = @project.dmsf_files.visible #DmsfFile.project_root_files(@project)
|
||||||
else
|
else
|
||||||
@subfolders = @folder.subfolders
|
@subfolders = @folder.subfolders.visible
|
||||||
@files = @folder.files.visible
|
@files = @folder.files.visible
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -284,7 +284,7 @@ class DmsfController < ApplicationController
|
|||||||
def zip_entries(zip, selected_folders, selected_files)
|
def zip_entries(zip, selected_folders, selected_files)
|
||||||
if selected_folders && selected_folders.is_a?(Array)
|
if selected_folders && selected_folders.is_a?(Array)
|
||||||
selected_folders.each do |selected_folder_id|
|
selected_folders.each do |selected_folder_id|
|
||||||
check_project(folder = DmsfFolder.find(selected_folder_id))
|
check_project(folder = DmsfFolder.visible.find(selected_folder_id))
|
||||||
zip.add_folder(folder, (@folder.dmsf_path_str unless @folder.nil?)) unless folder.nil?
|
zip.add_folder(folder, (@folder.dmsf_path_str unless @folder.nil?)) unless folder.nil?
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@ -309,7 +309,7 @@ class DmsfController < ApplicationController
|
|||||||
end
|
end
|
||||||
|
|
||||||
def find_folder
|
def find_folder
|
||||||
@folder = DmsfFolder.find(params[:folder_id]) if params.keys.include?("folder_id")
|
@folder = DmsfFolder.visible.find(params[:folder_id]) if params.keys.include?("folder_id")
|
||||||
check_project(@folder)
|
check_project(@folder)
|
||||||
rescue DmsfAccessError
|
rescue DmsfAccessError
|
||||||
render_403
|
render_403
|
||||||
|
|||||||
@ -223,13 +223,13 @@ class DmsfFilesController < ApplicationController
|
|||||||
end
|
end
|
||||||
|
|
||||||
def find_file
|
def find_file
|
||||||
@file = DmsfFile.find(params[:id])
|
@file = DmsfFile.visible.find(params[:id])
|
||||||
@project = @file.project
|
@project = @file.project
|
||||||
rescue
|
rescue
|
||||||
end
|
end
|
||||||
|
|
||||||
def find_revision
|
def find_revision
|
||||||
@revision = DmsfFileRevision.find(params[:id])
|
@revision = DmsfFileRevision.visible.find(params[:id])
|
||||||
@file = @revision.file
|
@file = @revision.file
|
||||||
@project = @file.project
|
@project = @file.project
|
||||||
end
|
end
|
||||||
|
|||||||
@ -37,7 +37,7 @@ class DmsfFilesCopyController < ApplicationController
|
|||||||
@target_project ||= DmsfFile.allowed_target_projects_on_copy[0]
|
@target_project ||= DmsfFile.allowed_target_projects_on_copy[0]
|
||||||
end
|
end
|
||||||
|
|
||||||
@target_folder = DmsfFolder.find(params[:target_folder_id]) unless params[:target_folder_id].blank?
|
@target_folder = DmsfFolder.visible.find(params[:target_folder_id]) unless params[:target_folder_id].blank?
|
||||||
@target_folder ||= @file.folder if @target_project == @project
|
@target_folder ||= @file.folder if @target_project == @project
|
||||||
|
|
||||||
render :layout => !request.xhr?
|
render :layout => !request.xhr?
|
||||||
@ -49,7 +49,7 @@ class DmsfFilesCopyController < ApplicationController
|
|||||||
render_403
|
render_403
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
@target_folder = DmsfFolder.find(params[:target_folder_id]) unless params[:target_folder_id].blank?
|
@target_folder = DmsfFolder.visible.find(params[:target_folder_id]) unless params[:target_folder_id].blank?
|
||||||
if !@target_folder.nil? && @target_folder.project != @target_project
|
if !@target_folder.nil? && @target_folder.project != @target_project
|
||||||
raise DmsfAccessError, l(:error_entry_project_does_not_match_current_project)
|
raise DmsfAccessError, l(:error_entry_project_does_not_match_current_project)
|
||||||
end
|
end
|
||||||
@ -86,7 +86,7 @@ class DmsfFilesCopyController < ApplicationController
|
|||||||
render_403
|
render_403
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
@target_folder = DmsfFolder.find(params[:target_folder_id]) unless params[:target_folder_id].blank?
|
@target_folder = DmsfFolder.visible.find(params[:target_folder_id]) unless params[:target_folder_id].blank?
|
||||||
if !@target_folder.nil? && @target_folder.project != @target_project
|
if !@target_folder.nil? && @target_folder.project != @target_project
|
||||||
raise DmsfAccessError, l(:error_entry_project_does_not_match_current_project)
|
raise DmsfAccessError, l(:error_entry_project_does_not_match_current_project)
|
||||||
end
|
end
|
||||||
@ -125,7 +125,7 @@ class DmsfFilesCopyController < ApplicationController
|
|||||||
end
|
end
|
||||||
|
|
||||||
def find_file
|
def find_file
|
||||||
@file = DmsfFile.find(params[:id])
|
@file = DmsfFile.visible.find(params[:id])
|
||||||
@project = @file.project
|
@project = @file.project
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@ -35,7 +35,7 @@ class DmsfFoldersCopyController < ApplicationController
|
|||||||
@target_project ||= DmsfFolder.allowed_target_projects_on_copy[0]
|
@target_project ||= DmsfFolder.allowed_target_projects_on_copy[0]
|
||||||
end
|
end
|
||||||
|
|
||||||
@target_folder = DmsfFolder.find(params[:target_folder_id]) unless params[:target_folder_id].blank?
|
@target_folder = DmsfFolder.visible.find(params[:target_folder_id]) unless params[:target_folder_id].blank?
|
||||||
@target_folder ||= @folder.folder if @target_project == @project
|
@target_folder ||= @folder.folder if @target_project == @project
|
||||||
|
|
||||||
render :layout => !request.xhr?
|
render :layout => !request.xhr?
|
||||||
@ -47,7 +47,7 @@ class DmsfFoldersCopyController < ApplicationController
|
|||||||
render_403
|
render_403
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
@target_folder = DmsfFolder.find(params[:target_folder_id]) unless params[:target_folder_id].blank?
|
@target_folder = DmsfFolder.visible.find(params[:target_folder_id]) unless params[:target_folder_id].blank?
|
||||||
if !@target_folder.nil? && @target_folder.project != @target_project
|
if !@target_folder.nil? && @target_folder.project != @target_project
|
||||||
raise DmsfAccessError, l(:error_entry_project_does_not_match_current_project)
|
raise DmsfAccessError, l(:error_entry_project_does_not_match_current_project)
|
||||||
end
|
end
|
||||||
@ -89,7 +89,7 @@ class DmsfFoldersCopyController < ApplicationController
|
|||||||
end
|
end
|
||||||
|
|
||||||
def find_folder
|
def find_folder
|
||||||
@folder = DmsfFolder.find(params[:id])
|
@folder = DmsfFolder.visible.find(params[:id])
|
||||||
@project = @folder.project
|
@project = @folder.project
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@ -195,7 +195,7 @@ class DmsfUploadController < ApplicationController
|
|||||||
end
|
end
|
||||||
|
|
||||||
def find_folder
|
def find_folder
|
||||||
@folder = DmsfFolder.find(params[:folder_id]) if params.keys.include?("folder_id")
|
@folder = DmsfFolder.visible.find(params[:folder_id]) if params.keys.include?("folder_id")
|
||||||
check_project(@folder)
|
check_project(@folder)
|
||||||
rescue DmsfAccessError
|
rescue DmsfAccessError
|
||||||
render_403
|
render_403
|
||||||
|
|||||||
@ -48,7 +48,7 @@ class DmsfFile < ActiveRecord::Base
|
|||||||
end
|
end
|
||||||
|
|
||||||
def validates_name_uniqueness
|
def validates_name_uniqueness
|
||||||
existing_file = DmsfFile.find_file_by_name(self.project, self.folder, self.name)
|
existing_file = DmsfFile.visible.find_file_by_name(self.project, self.folder, self.name)
|
||||||
errors.add(:name, l("activerecord.errors.messages.taken")) unless
|
errors.add(:name, l("activerecord.errors.messages.taken")) unless
|
||||||
existing_file.nil? || existing_file.id == self.id
|
existing_file.nil? || existing_file.id == self.id
|
||||||
end
|
end
|
||||||
@ -76,18 +76,18 @@ class DmsfFile < ActiveRecord::Base
|
|||||||
end
|
end
|
||||||
|
|
||||||
def self.project_root_files(project)
|
def self.project_root_files(project)
|
||||||
find(:all, :conditions =>
|
visible.find(:all, :conditions =>
|
||||||
["dmsf_folder_id is NULL and project_id = :project_id and deleted = :deleted",
|
["dmsf_folder_id is NULL and project_id = :project_id",
|
||||||
{:project_id => project.id, :deleted => false}], :order => "name ASC")
|
{:project_id => project.id}], :order => "name ASC")
|
||||||
end
|
end
|
||||||
|
|
||||||
def self.find_file_by_name(project, folder, name)
|
def self.find_file_by_name(project, folder, name)
|
||||||
if folder.nil?
|
if folder.nil?
|
||||||
find(:first, :conditions =>
|
visible.find(:first, :conditions =>
|
||||||
["dmsf_folder_id is NULL and project_id = :project_id and name = :name",
|
["dmsf_folder_id is NULL and project_id = :project_id and name = :name",
|
||||||
{:project_id => project.id, :name => name}])
|
{:project_id => project.id, :name => name}])
|
||||||
else
|
else
|
||||||
find(:first, :conditions =>
|
visible.find(:first, :conditions =>
|
||||||
["dmsf_folder_id = :folder_id and project_id = :project_id and name = :name",
|
["dmsf_folder_id = :folder_id and project_id = :project_id and name = :name",
|
||||||
{:project_id => project.id, :folder_id => folder.id, :name => name}])
|
{:project_id => project.id, :folder_id => folder.id, :name => name}])
|
||||||
end
|
end
|
||||||
|
|||||||
@ -30,6 +30,8 @@ class DmsfFolder < ActiveRecord::Base
|
|||||||
:dependent => :destroy
|
:dependent => :destroy
|
||||||
belongs_to :user
|
belongs_to :user
|
||||||
|
|
||||||
|
scope :visible, lambda {|*args| {:conditions => "" }} #For future use, however best to be referenced now
|
||||||
|
|
||||||
acts_as_customizable
|
acts_as_customizable
|
||||||
|
|
||||||
validates_presence_of :title
|
validates_presence_of :title
|
||||||
@ -66,18 +68,18 @@ class DmsfFolder < ActiveRecord::Base
|
|||||||
|
|
||||||
def self.find_by_title(project, folder, title)
|
def self.find_by_title(project, folder, title)
|
||||||
if folder.nil?
|
if folder.nil?
|
||||||
find(:first, :conditions =>
|
visible.find(:first, :conditions =>
|
||||||
["dmsf_folder_id is NULL and project_id = :project_id and title = :title",
|
["dmsf_folder_id is NULL and project_id = :project_id and title = :title",
|
||||||
{:project_id => project.id, :title => title}])
|
{:project_id => project.id, :title => title}])
|
||||||
else
|
else
|
||||||
find(:first, :conditions =>
|
visible.find(:first, :conditions =>
|
||||||
["dmsf_folder_id = :folder_id and title = :title",
|
["dmsf_folder_id = :folder_id and title = :title",
|
||||||
{:project_id => project.id, :folder_id => folder.id, :title => title}])
|
{:project_id => project.id, :folder_id => folder.id, :title => title}])
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def delete
|
def delete
|
||||||
return false if !self.subfolders.empty? || !self.files.visible.empty?
|
return false if !self.subfolders.visible.empty? || !self.files.visible.empty?
|
||||||
destroy
|
destroy
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -115,7 +117,7 @@ class DmsfFolder < ActiveRecord::Base
|
|||||||
|
|
||||||
def self.directory_tree(project, current_folder = nil)
|
def self.directory_tree(project, current_folder = nil)
|
||||||
tree = [[l(:link_documents), nil]]
|
tree = [[l(:link_documents), nil]]
|
||||||
DmsfFolder.project_root_folders(project).each do |folder|
|
DmsfFolder.visible.project_root_folders(project).each do |folder|
|
||||||
unless folder == current_folder
|
unless folder == current_folder
|
||||||
tree.push(["...#{folder.title}", folder.id])
|
tree.push(["...#{folder.title}", folder.id])
|
||||||
directory_subtree(tree, folder, 2, current_folder)
|
directory_subtree(tree, folder, 2, current_folder)
|
||||||
@ -126,20 +128,20 @@ class DmsfFolder < ActiveRecord::Base
|
|||||||
|
|
||||||
def deep_file_count
|
def deep_file_count
|
||||||
file_count = self.files.visible.length
|
file_count = self.files.visible.length
|
||||||
self.subfolders.each {|subfolder| file_count += subfolder.deep_file_count}
|
self.subfolders.visible.each {|subfolder| file_count += subfolder.deep_file_count}
|
||||||
file_count
|
file_count
|
||||||
end
|
end
|
||||||
|
|
||||||
def deep_folder_count
|
def deep_folder_count
|
||||||
folder_count = self.subfolders.length
|
folder_count = self.subfolders.length
|
||||||
self.subfolders.each {|subfolder| folder_count += subfolder.deep_folder_count}
|
self.subfolders.visible.each {|subfolder| folder_count += subfolder.deep_folder_count}
|
||||||
folder_count
|
folder_count
|
||||||
end
|
end
|
||||||
|
|
||||||
def deep_size
|
def deep_size
|
||||||
size = 0
|
size = 0
|
||||||
self.files.visible.each {|file| size += file.size}
|
self.files.visible.each {|file| size += file.size}
|
||||||
self.subfolders.each {|subfolder| size += subfolder.deep_size}
|
self.subfolders.visible.each {|subfolder| size += subfolder.deep_size}
|
||||||
size
|
size
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -244,7 +246,7 @@ class DmsfFolder < ActiveRecord::Base
|
|||||||
private
|
private
|
||||||
|
|
||||||
def self.directory_subtree(tree, folder, level, current_folder)
|
def self.directory_subtree(tree, folder, level, current_folder)
|
||||||
folder.subfolders.each do |subfolder|
|
folder.subfolders.visible.each do |subfolder|
|
||||||
unless subfolder == current_folder
|
unless subfolder == current_folder
|
||||||
tree.push(["#{"..." * level}#{subfolder.title}", subfolder.id])
|
tree.push(["#{"..." * level}#{subfolder.title}", subfolder.id])
|
||||||
directory_subtree(tree, subfolder, level + 1, current_folder)
|
directory_subtree(tree, subfolder, level + 1, current_folder)
|
||||||
|
|||||||
@ -54,7 +54,7 @@ class DmsfUpload
|
|||||||
def initialize(project, folder, uploaded)
|
def initialize(project, folder, uploaded)
|
||||||
@name = uploaded["original_filename"]
|
@name = uploaded["original_filename"]
|
||||||
|
|
||||||
dmsf_file = DmsfFile.find_file_by_name(project, folder, @name)
|
dmsf_file = DmsfFile.visible.find_file_by_name(project, folder, @name)
|
||||||
|
|
||||||
@disk_filename = uploaded["disk_filename"]
|
@disk_filename = uploaded["disk_filename"]
|
||||||
@mime_type = uploaded["content_type"]
|
@mime_type = uploaded["content_type"]
|
||||||
@ -78,4 +78,4 @@ class DmsfUpload
|
|||||||
@locked = !dmsf_file.nil? && dmsf_file.locked_for_user?
|
@locked = !dmsf_file.nil? && dmsf_file.locked_for_user?
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|||||||
@ -11,8 +11,6 @@ module RedmineDmsf
|
|||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@ -47,9 +47,9 @@ module RedmineDmsf
|
|||||||
end
|
end
|
||||||
|
|
||||||
def dmsf_count
|
def dmsf_count
|
||||||
file_count = DmsfFile.project_root_files(self).count
|
file_count = DmsfFile.visible.project_root_files(self).count
|
||||||
folder_count = DmsfFolder.project_root_folders(self).count
|
folder_count = DmsfFolder.visible.project_root_folders(self).count
|
||||||
DmsfFolder.project_root_folders(self).each {|rootfld| file_count += rootfld.deep_file_count; folder_count += rootfld.deep_folder_count }
|
DmsfFolder.visible.project_root_folders(self).each {|rootfld| file_count += rootfld.deep_file_count; folder_count += rootfld.deep_folder_count }
|
||||||
{:files => file_count, :folders => folder_count}
|
{:files => file_count, :folders => folder_count}
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -72,10 +72,10 @@ module RedmineDmsf
|
|||||||
|
|
||||||
# Simple yet effective approach to copying things
|
# Simple yet effective approach to copying things
|
||||||
def copy_dmsf(project)
|
def copy_dmsf(project)
|
||||||
DmsfFile.project_root_files(project).each {|f|
|
DmsfFile.visible.project_root_files(project).each {|f|
|
||||||
f.copy_to(self, nil)
|
f.copy_to(self, nil)
|
||||||
}
|
}
|
||||||
DmsfFolder.project_root_folders(project).each {|f|
|
DmsfFolder.visible.project_root_folders(project).each {|f|
|
||||||
f.copy_to(self, nil)
|
f.copy_to(self, nil)
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
|||||||
@ -69,7 +69,7 @@ module RedmineDmsf
|
|||||||
# if we were to look within parent, we'd have to go all the way up the chain as part of the
|
# if we were to look within parent, we'd have to go all the way up the chain as part of the
|
||||||
# existence check, and although I'm sure we'd love to access the heirarchy, I can't yet
|
# existence check, and although I'm sure we'd love to access the heirarchy, I can't yet
|
||||||
# see a practical need for it
|
# see a practical need for it
|
||||||
folders = DmsfFolder.find(:all, :conditions => ["project_id = :project_id AND title = :title", {:project_id => project.id, :title => basename}], :order => "title ASC")
|
folders = DmsfFolder.visible.find(:all, :conditions => ["project_id = :project_id AND title = :title", {:project_id => project.id, :title => basename}], :order => "title ASC")
|
||||||
return nil unless folders.length > 0
|
return nil unless folders.length > 0
|
||||||
if (folders.length > 1) then
|
if (folders.length > 1) then
|
||||||
folders.delete_if {|x| '/'+x.dmsf_path_str != projectless_path}
|
folders.delete_if {|x| '/'+x.dmsf_path_str != projectless_path}
|
||||||
|
|||||||
@ -29,7 +29,7 @@ module RedmineDmsf
|
|||||||
return @children unless @children.nil?
|
return @children unless @children.nil?
|
||||||
return [] if project.nil? || project.id.nil?
|
return [] if project.nil? || project.id.nil?
|
||||||
@children = []
|
@children = []
|
||||||
project.dmsf_folders.map do |p|
|
project.dmsf_folders.visible.map do |p|
|
||||||
@children.push child(p.title, p)
|
@children.push child(p.title, p)
|
||||||
end
|
end
|
||||||
project.dmsf_files.visible.map do |p|
|
project.dmsf_files.visible.map do |p|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user