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