Index: openacs-4/packages/file-storage/file-storage.info
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/file-storage/file-storage.info,v
diff -u -N -r1.8 -r1.9
--- openacs-4/packages/file-storage/file-storage.info 18 Dec 2001 20:55:50 -0000 1.8
+++ openacs-4/packages/file-storage/file-storage.info 22 Feb 2002 19:06:28 -0000 1.9
@@ -26,12 +26,10 @@
-
-
@@ -99,8 +97,6 @@
-
-
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 -N -r1.4 -r1.5
--- openacs-4/packages/file-storage/tcl/file-storage-procs-oracle.xql 21 Feb 2002 20:06:27 -0000 1.4
+++ openacs-4/packages/file-storage/tcl/file-storage-procs-oracle.xql 22 Feb 2002 19:06:28 -0000 1.5
@@ -39,6 +39,40 @@
+
+
+ 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
+
+
+
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 -N -r1.11 -r1.12
--- openacs-4/packages/file-storage/tcl/file-storage-procs-postgresql.xql 21 Feb 2002 20:06:27 -0000 1.11
+++ openacs-4/packages/file-storage/tcl/file-storage-procs-postgresql.xql 22 Feb 2002 19:06:28 -0000 1.12
@@ -31,6 +31,36 @@
+
+
+ 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
+
+
+
Index: openacs-4/packages/file-storage/tcl/file-storage-procs.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/file-storage/tcl/file-storage-procs.tcl,v
diff -u -N -r1.7 -r1.8
--- openacs-4/packages/file-storage/tcl/file-storage-procs.tcl 21 Feb 2002 20:06:27 -0000 1.7
+++ openacs-4/packages/file-storage/tcl/file-storage-procs.tcl 22 Feb 2002 19:06:28 -0000 1.8
@@ -209,14 +209,17 @@
#set pretty_mime_type ???
- if { [db_string mime_type_exists "
- select count(*) from cr_mime_types
- where mime_type = :mime_type"] == 0 } {
- db_dml new_mime_type "
- insert into cr_mime_types
- (mime_type, file_extension)
- values
- (:mime_type, :extension)"
+ if { [db_string mime_type_exists {
+ select count(*)
+ from cr_mime_types
+ where mime_type = :mime_type
+ }] == 0 } {
+ db_dml new_mime_type {
+ insert into cr_mime_types
+ (mime_type, file_extension)
+ values
+ (:mime_type, :extension)
+ }
}
return $mime_type
@@ -229,7 +232,7 @@
{-pretty_name ""}
{-description ""}
} {
- Create a root folder for a package instance
+ Create a root folder for a package instance.
@param package_id Package instance associated with this root folder
@@ -241,7 +244,7 @@
ad_proc -public get_root_folder {
{-package_id:required}
} {
- Get the root folder of a package instance
+ Get the root folder of a package instance.
@param package_id Package instance of the root folder to retrieve
@@ -257,7 +260,7 @@
{-creation_user ""}
{-creation_ip ""}
} {
- Create a new folder
+ Create a new folder.
@param name Internal name of the folder, must be unique under a given
parent_id
@@ -283,7 +286,7 @@
{-name:required}
{-parent_id:required}
} {
- Retrieve the folder_id of a folder given it's name and parent folder
+ Retrieve the folder_id of a folder given it's name and parent folder.
@param name Internal name of the folder, must be unique under a given
parent_id
@@ -295,4 +298,26 @@
return [db_string get_folder {} -default ""]
}
+ ad_proc -public get_folder_contents {
+ {-folder_id:required}
+ {-user_id ""}
+ } {
+ Retrieve the contents of the specified folder in the form of a list
+ of ns_sets, one for each row returned. The keys for each row are as
+ follows:
+
+ file_id, name, live_revision, type,
+ last_modified, content_size, sort_key
+
+ @param folder_id The folder for which to retrieve contents
+ @param user_id The viewer of the contents (to make sure they have
+ permission)
+ } {
+ if {[empty_string_p $user_id]} {
+ set user_id [acs_magic_object "the_public"]
+ }
+
+ return [db_list_of_ns_sets get_folder_contents {}]
+ }
+
}
Index: openacs-4/packages/file-storage/www/index-oracle.xql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/file-storage/www/Attic/index-oracle.xql,v
diff -u -N
--- openacs-4/packages/file-storage/www/index-oracle.xql 21 Feb 2002 20:06:27 -0000 1.5
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,40 +0,0 @@
-
-
-
- oracle8.1.6
-
-
-
- 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 ordering_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 ordering_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 ordering_key, name
-
-
-
-
Index: openacs-4/packages/file-storage/www/index-postgresql.xql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/file-storage/www/Attic/index-postgresql.xql,v
diff -u -N
--- openacs-4/packages/file-storage/www/index-postgresql.xql 18 Dec 2001 21:08:21 -0000 1.5
+++ /dev/null 1 Jan 1970 00:00:00 -0000
@@ -1,37 +0,0 @@
-
-
-
- postgresql7.1
-
-
-
- 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
-
-
-
-
-
Index: openacs-4/packages/file-storage/www/index.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/file-storage/www/index.tcl,v
diff -u -N -r1.7 -r1.8
--- openacs-4/packages/file-storage/www/index.tcl 21 Feb 2002 20:06:27 -0000 1.7
+++ openacs-4/packages/file-storage/www/index.tcl 22 Feb 2002 19:06:28 -0000 1.8
@@ -47,6 +47,8 @@
set package_id [ad_conn package_id]
-db_multirow file file_select {}
+template::util::list_of_ns_sets_to_multirow \
+ -rows [fs::get_folder_contents -folder_id $folder_id -user_id $user_id] \
+ -var_name "file"
ad_return_template