Index: openacs-4/packages/file-storage/sql/oracle/file-storage-create.sql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/file-storage/sql/oracle/file-storage-create.sql,v
diff -u -r1.9 -r1.10
--- openacs-4/packages/file-storage/sql/oracle/file-storage-create.sql 25 Feb 2002 22:51:24 -0000 1.9
+++ openacs-4/packages/file-storage/sql/oracle/file-storage-create.sql 4 Mar 2002 18:26:03 -0000 1.10
@@ -43,7 +43,6 @@
unique
);
---
-- To enable site-wide search to distinguish CR items as File Storage items
-- we create an item subtype of content_item in the ACS Object Model
begin
@@ -697,3 +696,62 @@
end;
/
show errors;
+
+create or replace view fs_folders
+as
+ select cr_folders.folder_id,
+ cr_folders.label as name,
+ (select count(*)
+ from cr_items ci
+ where ci.parent_id = cr_folders.folder_id) as content_size,
+ (select site_node.url(site_nodes.node_id)
+ from site_nodes
+ where site_nodes.object_id = file_storage.get_package_id(cr_items.item_id)) as url,
+ cr_items.parent_id
+ from cr_folders,
+ cr_items
+ where cr_folders.folder_id = cr_items.item_id;
+
+create or replace view fs_files
+as
+ select cr_revisions.item_id as file_id,
+ cr_revisions.revision_id as live_revision,
+ cr_revisions.mime_type as type,
+ cr_revisions.content_length as content_size,
+ cr_items.name,
+ acs_objects.last_modified,
+ (select site_node.url(site_nodes.node_id)
+ from site_nodes
+ where site_nodes.object_id = file_storage.get_package_id(cr_items.item_id)) as url,
+ cr_items.parent_id
+ from cr_revisions,
+ cr_items,
+ acs_objects
+ where cr_revisions.revision_id = cr_items.live_revision
+ and cr_revisions.item_id = cr_items.item_id
+ and cr_items.content_type = 'file_storage_object'
+ and cr_revisions.revision_id = acs_objects.object_id;
+
+create or replace view fs_folders_and_files
+as
+ select fs_folders.folder_id as file_id,
+ 0 as live_revision,
+ 'Folder' as type,
+ fs_folders.content_size,
+ fs_folders.name,
+ to_date(null, 'YYYY-MM-DD HH24:MI') as last_modified,
+ fs_folders.url,
+ fs_folders.parent_id,
+ 0 as sort_key
+ from fs_folders
+ union
+ select fs_files.file_id,
+ fs_files.live_revision,
+ fs_files.type,
+ fs_files.content_size,
+ fs_files.name,
+ fs_files.last_modified,
+ fs_files.url,
+ fs_files.parent_id,
+ 1 as sort_key
+ from fs_files;
Index: openacs-4/packages/file-storage/sql/postgresql/file-storage-create.sql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/file-storage/sql/postgresql/file-storage-create.sql,v
diff -u -r1.10 -r1.11
--- openacs-4/packages/file-storage/sql/postgresql/file-storage-create.sql 21 Feb 2002 20:06:27 -0000 1.10
+++ openacs-4/packages/file-storage/sql/postgresql/file-storage-create.sql 4 Mar 2002 18:26:03 -0000 1.11
@@ -88,7 +88,30 @@
end;' language 'plpgsql' with (iscachable);
+create function file_storage__get_package_id (
+ integer -- cr_items.item_id%TYPE
+) returns integer as ' -- fs_root_folders.package_id%TYPE
+declare
+ get_package_id__item_id alias for $1;
+ v_package_id fs_root_folders.package_id%TYPE;
+begin
+ select fs_root_folders.package_id
+ into v_package_id
+ from fs_root_folders,
+ (select c1.item_id
+ from cr_items c1,
+ cr_items c2
+ where c2.item_id = get_package_id__item_id
+ and c1.tree_sortkey between c2.tree_sortkey and tree_right(c2.tree_sortkey)
+ and c1.item_id <> get_package_id__item_id
+ order by c1.tree_sortkey desc) this
+ where fs_root_folders.folder_id = this.item_id;
+ if NOT FOUND then
+ return null;
+ end if;
+end;' language 'plpgsql' with (iscachable);
+
create function file_storage__new_root_folder (
--
-- Creates a new root folder
@@ -691,3 +714,62 @@
-- Comment out to disable site-wide search interface
\i file-storage-sc-create.sql
+
+create view fs_folders
+as
+ select cr_folders.folder_id,
+ cr_folders.label as name,
+ (select count(*)
+ from cr_items ci
+ where ci.parent_id = cr_folders__folder_id) as content_size,
+ (select site_node__url(site_nodes.node_id)
+ from site_nodes
+ where site_nodes.object_id = file_storage__get_package_id(cr_items.item_id)) as url,
+ cr_items.parent_id
+ from cr_folders,
+ cr_items
+ where cr_folders.folder_id = cr_items.item_id;
+
+create view fs_files
+as
+ select cr_revisions.item_id as file_id,
+ cr_revisions.revision_id as live_revision,
+ cr_revisions.mime_type as type,
+ cr_revisions.content_length as content_size,
+ cr_items.name,
+ acs_objects.last_modified,
+ (select site_node__url(site_nodes.node_id)
+ from site_nodes
+ where site_nodes.object_id = file_storage__get_package_id(cr_items.item_id)) as url,
+ cr_items.parent_id
+ from cr_revisions,
+ cr_items,
+ acs_objects
+ where cr_revisions.revision_id = cr_items.live_revision
+ and cr_revisions.item_id = cr_items.item_id
+ and cr_items.content_type = 'file_storage_object'
+ and cr_revisions.revision_id = acs_objects.object_id;
+
+create view fs_folders_and_files
+as
+ select fs_folders.folder_id as file_id,
+ 0 as live_revision,
+ 'Folder' as type,
+ fs_folders.content_size,
+ fs_folders.name,
+ to_date(null, 'YYYY-MM-DD HH24:MI') as last_modified,
+ fs_folders.url,
+ fs_folders.parent_id,
+ 0 as sort_key
+ from fs_folders
+ union
+ select fs_files.file_id,
+ fs_files.live_revision,
+ fs_files.type,
+ fs_files.content_size,
+ fs_files.name,
+ fs_files.last_modified,
+ fs_files.url,
+ fs_files.parent_id,
+ 1 as sort_key
+ from fs_files;
Index: openacs-4/packages/file-storage/tcl/file-storage-procs-oracle.xql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/file-storage/tcl/file-storage-procs-oracle.xql,v
diff -u -r1.7 -r1.8
--- openacs-4/packages/file-storage/tcl/file-storage-procs-oracle.xql 22 Feb 2002 22:12:10 -0000 1.7
+++ openacs-4/packages/file-storage/tcl/file-storage-procs-oracle.xql 4 Mar 2002 18:26:03 -0000 1.8
@@ -41,35 +41,17 @@
- select cr_items.item_id as file_id,
- cr_items.name as name,
- cr_items.live_revision,
- cr_revisions.mime_type as type,
- to_char(acs_objects.last_modified,'YYYY-MM-DD HH24:MI') as last_modified,
- cr_revisions.content_length as content_size,
- 1 as sort_key
- from cr_items,
- cr_revisions,
- acs_objects
- where cr_items.parent_id = :folder_id
- and cr_items.content_type = 'file_storage_object'
- and 't' = acs_permission.permission_p(cr_items.item_id, :user_id, 'read')
- and cr_items.item_id = acs_objects.object_id
- and cr_items.live_revision = cr_revisions.revision_id(+)
- union
- select cr_items.item_id as file_id,
- cr_folders.label as name,
- 0 as live_revision,
- 'Folder' as type,
- NULL as last_modified,
- 0 as content_size,
- 0 as sort_key
- from cr_items,
- cr_folders
- where cr_items.parent_id = :folder_id
- and cr_items.item_id = cr_folders.folder_id
- and 't' = acs_permission.permission_p(cr_folders.folder_id, :user_id, 'read')
- order by sort_key, name
+ select fs_folders_and_files.file_id,
+ fs_folders_and_files.name,
+ fs_folders_and_files.live_revision,
+ fs_folders_and_files.type,
+ to_char(fs_folders_and_files.last_modified, 'YYYY-MM-DD HH24:MI') as last_modified,
+ fs_folders_and_files.content_size
+ from fs_folders_and_files
+ where fs_folders_and_files.parent_id = :folder_id
+ and 't' = acs_permission.permission_p(fs_folders_and_files.file_id, :user_id, 'read')
+ order by fs_folders_and_files.sort_key,
+ fs_folders_and_files.name
Index: openacs-4/packages/file-storage/tcl/file-storage-procs-postgresql.xql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/file-storage/tcl/file-storage-procs-postgresql.xql,v
diff -u -r1.14 -r1.15
--- openacs-4/packages/file-storage/tcl/file-storage-procs-postgresql.xql 22 Feb 2002 22:12:10 -0000 1.14
+++ openacs-4/packages/file-storage/tcl/file-storage-procs-postgresql.xql 4 Mar 2002 18:26:03 -0000 1.15
@@ -33,31 +33,17 @@
- select i.item_id as file_id,
- i.name as name,
- i.live_revision,
- r.mime_type as type,
- to_char(o.last_modified,'YYYY-MM-DD HH24:MI') as last_modified,
- r.content_length as content_size,
- 1 as ordering_key
- from cr_items i left join cr_revisions r on (i.live_revision = r.revision_id), acs_objects o
- where i.item_id = o.object_id
- and i.parent_id = :folder_id
- and acs_permission__permission_p(i.item_id, :user_id, 'read') = 't'
- and i.content_type = 'file_storage_object'
- UNION
- select i.item_id as file_id,
- f.label as name,
- 0,
- 'Folder',
- NULL,
- 0,
- 0
- from cr_items i, cr_folders f
- where i.item_id = f.folder_id
- and i.parent_id = :folder_id
- and acs_permission__permission_p(f.folder_id, :user_id, 'read') = 't'
- order by ordering_key,name
+ select fs_folders_and_files.file_id,
+ fs_folders_and_files.name,
+ fs_folders_and_files.live_revision,
+ fs_folders_and_files.type,
+ to_char(fs_folders_and_files.last_modified, 'YYYY-MM-DD HH24:MI') as last_modified,
+ fs_folders_and_files.content_size
+ from fs_folders_and_files
+ where fs_folders_and_files.parent_id = :folder_id
+ and 't' = acs_permission__permission_p(fs_folders_and_files.file_id, :user_id, 'read')
+ order by fs_folders_and_files.sort_key,
+ fs_folders_and_files.name
Index: openacs-4/packages/file-storage/tcl/file-storage-search-procs.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/file-storage/tcl/file-storage-search-procs.tcl,v
diff -u -r1.1 -r1.2
--- openacs-4/packages/file-storage/tcl/file-storage-search-procs.tcl 18 Dec 2001 20:56:35 -0000 1.1
+++ openacs-4/packages/file-storage/tcl/file-storage-search-procs.tcl 4 Mar 2002 18:26:03 -0000 1.2
@@ -50,4 +50,4 @@
"
return "${url_stub}download/index?version_id=$revision_id"
-}
\ No newline at end of file
+}