Updated files inline with changes in #12

This commit is contained in:
Daniel Munn 2012-06-22 13:38:21 +01:00
parent a445de4cc8
commit 6c8d3c1128
12 changed files with 39 additions and 39 deletions

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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)

View File

@ -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

View File

@ -11,8 +11,6 @@ module RedmineDmsf
end
end
end
end

View File

@ -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

View File

@ -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}

View File

@ -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|