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