From 51f355b861a915d1d5aeeb6c354d1eeaac9c70c1 Mon Sep 17 00:00:00 2001 From: Karel Picman Date: Mon, 8 Feb 2016 09:49:55 +0100 Subject: [PATCH] WebDAV folder listing optimization --- lib/redmine_dmsf/webdav/dmsf_resource.rb | 4 ++-- lib/redmine_dmsf/webdav/index_resource.rb | 3 ++- lib/redmine_dmsf/webdav/project_resource.rb | 4 ++-- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/lib/redmine_dmsf/webdav/dmsf_resource.rb b/lib/redmine_dmsf/webdav/dmsf_resource.rb index 66ff3f6f..1fb236b8 100644 --- a/lib/redmine_dmsf/webdav/dmsf_resource.rb +++ b/lib/redmine_dmsf/webdav/dmsf_resource.rb @@ -49,10 +49,10 @@ module RedmineDmsf unless @childern @children = [] if collection? - folder.subfolders.visible.map do |p| + folder.subfolders.select(:title).visible.map do |p| @children.push child(p.title) end - folder.files.visible.map do |p| + folder.files.select(:name).visible.map do |p| @children.push child(p.name) end end diff --git a/lib/redmine_dmsf/webdav/index_resource.rb b/lib/redmine_dmsf/webdav/index_resource.rb index bc622ef3..bc39e8b4 100644 --- a/lib/redmine_dmsf/webdav/index_resource.rb +++ b/lib/redmine_dmsf/webdav/index_resource.rb @@ -26,7 +26,8 @@ module RedmineDmsf def children unless @projects @projects = [] - Project.has_module(:dmsf).where(Project.allowed_to_condition( + Project.select(:identifier).has_module(:dmsf).where( + Project.allowed_to_condition( User.current, :view_dmsf_folders)).order('lft').all.each do |p| @projects << child(p.identifier) end diff --git a/lib/redmine_dmsf/webdav/project_resource.rb b/lib/redmine_dmsf/webdav/project_resource.rb index 73d19be4..459f0d96 100644 --- a/lib/redmine_dmsf/webdav/project_resource.rb +++ b/lib/redmine_dmsf/webdav/project_resource.rb @@ -27,10 +27,10 @@ module RedmineDmsf unless @children @children = [] if project - project.dmsf_folders.visible.map do |p| + project.dmsf_folders.select(:title).visible.map do |p| @children.push child(p.title) end - project.dmsf_files.visible.map do |p| + project.dmsf_files.select(:name).visible.map do |p| @children.push child(p.name) end end