Index: openacs-4/packages/file-storage/www/folder-chunk-postgresql.xql =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/file-storage/www/folder-chunk-postgresql.xql,v diff -u -r1.3 -r1.4 --- openacs-4/packages/file-storage/www/folder-chunk-postgresql.xql 21 Dec 2002 22:28:31 -0000 1.3 +++ openacs-4/packages/file-storage/www/folder-chunk-postgresql.xql 18 Feb 2003 20:56:09 -0000 1.4 @@ -4,20 +4,81 @@ postgresql7.1 - select fs_objects.object_id, - fs_objects.name, - fs_objects.live_revision, - fs_objects.type, - to_char(fs_objects.last_modified, 'YYYY-MM-DD HH24:MI:SS') as last_modified, - fs_objects.content_size, - fs_objects.url, - fs_objects.key, - fs_objects.sort_key, - fs_objects.file_upload_name, - case when fs_objects.last_modified >= (now() - interval '$n_past_days days') then 1 else 0 end as new_p - from fs_objects - where fs_objects.parent_id = :folder_id - order by sort_key, name + + select fs_objects.object_id, + fs_objects.name, + fs_objects.live_revision, + fs_objects.type, + to_char(fs_objects.last_modified, 'YYYY-MM-DD HH24:MI:SS') as last_modified, + fs_objects.content_size, + fs_objects.url, + fs_objects.sort_key, + fs_objects.file_upload_name, + case when fs_objects.last_modified >= (now() - interval '$n_past_days days') then 1 else 0 end as new_p, + delete_p, + write_p + from + (select fs_folders.folder_id as object_id, + 0 as live_revision, + 'folder' as type, + fs_folders.content_size, + fs_folders.name, + '' as file_upload_name, + fs_folders.last_modified, + '' as url, + fs_folders.parent_id, + cast('f' as bool) as write_p, + cast('f' as bool) as delete_p, + 0 as sort_key + from fs_folders + where fs_folders.parent_id = :folder_id + and exists (select 1 + from acs_object_party_privilege_map m + where m.object_id = fs_folders.folder_id + and m.party_id = :viewing_user_id + and m.privilege = 'read') + union all + select fs_files.file_id as object_id, + fs_files.live_revision, + fs_files.type, + fs_files.content_size, + fs_files.name, + fs_files.file_upload_name, + fs_files.last_modified, + '' as url, + fs_files.parent_id, + cast('f' as bool) as write_p, + cast('f' as bool) as delete_p, + 1 as sort_key + from fs_files + where fs_files.parent_id = :folder_id + and exists (select 1 + from acs_object_party_privilege_map m + where m.object_id = fs_files.file_id + and m.party_id = :viewing_user_id + and m.privilege = 'read') + union all + select fs_urls_full.url_id as object_id, + 0 as live_revision, + 'url' as type, + 0 as content_size, + fs_urls_full.name, + fs_urls_full.name as file_upload_name, + fs_urls_full.last_modified, + fs_urls_full.url, + fs_urls_full.folder_id as parent_id, + acs_permission__permission_p(fs_urls.url_id, :viewing_user_id, 'write') as write_p, + acs_permission__permission_p(fs_urls.url_id, :viewing_user_id, 'delete') as delete_p, + 1 as sort_key + from fs_urls_full + where fs_urls_full.folder_id = :folder_id + and exists (select 1 + from acs_object_party_privilege_map m + where m.object_id = fs_urls_full.url_id + and m.party_id = :viewing_user_id + and m.privilege = 'read')) as fs_objects + order by fs_objects.sort_key, fs_objects.name +