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 -r1.38 -r1.39
--- openacs-4/packages/file-storage/file-storage.info 10 Mar 2005 15:29:35 -0000 1.38
+++ openacs-4/packages/file-storage/file-storage.info 26 May 2005 08:28:44 -0000 1.39
@@ -7,14 +7,14 @@
f
f
-
+
OpenACS
Collaborative document storage
2004-07-21
OpenACS
Provides a versioned document store with storage in the filesystem or database (depending on configuration). Documents and folders can be permissioned and folders downloaded.
-
+
Index: openacs-4/packages/file-storage/sql/oracle/file-storage-package-create.sql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/file-storage/sql/oracle/file-storage-package-create.sql,v
diff -u -r1.14 -r1.15
--- openacs-4/packages/file-storage/sql/oracle/file-storage-package-create.sql 29 Jun 2004 10:18:23 -0000 1.14
+++ openacs-4/packages/file-storage/sql/oracle/file-storage-package-create.sql 26 May 2005 08:28:44 -0000 1.15
@@ -556,14 +556,18 @@
) return cr_folders.folder_id%TYPE
is
v_folder_id cr_folders.folder_id%TYPE;
+ v_package_id acs_objects.package_id%TYPE;
begin
+ v_package_id := file_storage.get_package_id(parent_id);
+
-- Create a new folder
v_folder_id := content_folder.new(
name => file_storage.new_folder.name,
label => file_storage.new_folder.folder_name,
parent_id => file_storage.new_folder.parent_id,
creation_user => file_storage.new_folder.creation_user,
- creation_ip => file_storage.new_folder.creation_ip
+ creation_ip => file_storage.new_folder.creation_ip,
+ package_id => v_package_id
);
-- register the standard content types
Index: openacs-4/packages/file-storage/sql/postgresql/file-storage-package-create.sql
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/file-storage/sql/postgresql/file-storage-package-create.sql,v
diff -u -r1.21 -r1.22
--- openacs-4/packages/file-storage/sql/postgresql/file-storage-package-create.sql 1 Jun 2004 22:54:18 -0000 1.21
+++ openacs-4/packages/file-storage/sql/postgresql/file-storage-package-create.sql 26 May 2005 08:28:45 -0000 1.22
@@ -582,7 +582,9 @@
new_folder__creation_user alias for $4;
new_folder__creation_ip alias for $5;
v_folder_id cr_folders.folder_id%TYPE;
+ v_package_id acs_objects.package_id%TYPE;
begin
+ v_package_id := file_storage__get_package_id(new_folder__parent_id);
-- Create a new folder
v_folder_id := content_folder__new (
@@ -594,7 +596,8 @@
null, -- folder_id (default)
now(), -- creation_date
new_folder__creation_user, -- creation_user
- new_folder__creation_ip -- creation_ip
+ new_folder__creation_ip, -- creation_ip
+ v_package_id -- package_id
);
-- register the standard content types
Index: openacs-4/packages/file-storage/tcl/file-storage-install-procs.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/file-storage/tcl/file-storage-install-procs.tcl,v
diff -u -r1.7 -r1.8
--- openacs-4/packages/file-storage/tcl/file-storage-install-procs.tcl 10 Mar 2005 15:29:36 -0000 1.7
+++ openacs-4/packages/file-storage/tcl/file-storage-install-procs.tcl 26 May 2005 08:28:45 -0000 1.8
@@ -162,3 +162,60 @@
fs::new_folder -name $name -pretty_name $pretty_name -parent_id $root -creation_user [ad_conn user_id] -creation_ip 127.0.0.1
}
+
+ad_proc -public -callback fs::folder_new {
+ {-package_id:required}
+ {-folder_id:required}
+} {
+}
+
+ad_proc -public -callback fs::folder_edit {
+ {-package_id:required}
+ {-folder_id:required}
+} {
+}
+
+ad_proc -public -callback fs::folder_delete {
+ {-package_id:required}
+ {-folder_id:required}
+} {
+}
+
+ad_proc -public -callback fs::file_new {
+ {-package_id:required}
+ {-file_id:required}
+} {
+}
+
+ad_proc -public -callback fs::file_edit {
+ {-package_id:required}
+ {-file_id:required}
+} {
+}
+
+ad_proc -public -callback fs::file_delete {
+ {-package_id:required}
+ {-file_id:required}
+} {
+}
+
+ad_proc -public -callback pm::project_new -impl file_storage {
+ {-package_id:required}
+ {-project_id:required}
+} {
+ create a new folder for each new project
+} {
+ set pm_name [pm::project::name -project_item_id $project_id]
+
+ foreach fs_package_id [application_link::get_linked -from_package_id $package_id -to_package_key "file-storage"] {
+ set root_folder_id [fs::get_root_folder -package_id $fs_package_id]
+
+ set folder_id [fs::new_folder \
+ -name $root_folder_id \
+ -pretty_name $pm_name \
+ -parent_id $root_folder_id \
+ -no_callback]
+
+ application_data_link::new -this_object_id $project_id -target_object_id $folder_id
+ }
+}
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 -r1.48 -r1.49
--- openacs-4/packages/file-storage/tcl/file-storage-procs.tcl 10 Mar 2005 15:29:36 -0000 1.48
+++ openacs-4/packages/file-storage/tcl/file-storage-procs.tcl 26 May 2005 08:28:45 -0000 1.49
@@ -272,6 +272,7 @@
{-creation_user ""}
{-creation_ip ""}
{-description ""}
+ -no_callback:boolean
} {
Create a new folder.
@@ -293,16 +294,24 @@
}
set folder_id [db_exec_plsql new_folder {}]
fs::set_folder_description -folder_id $folder_id -description $description
+
+ if {!$no_callback_p} {
+ callback fs::folder_new -package_id [ad_conn package_id] -folder_id $folder_id
+ }
return $folder_id
}
ad_proc -public fs::rename_folder {
{-folder_id:required}
{-name:required}
+ -no_callback:boolean
} {
rename the given folder
} {
db_exec_plsql rename_folder {}
+ if {!$no_callback_p} {
+ callback fs::folder_edit -package_id [ad_conn package_id] -folder_id $folder_id
+ }
}
ad_proc -public fs::set_folder_description {
@@ -655,6 +664,7 @@
{-creation_ip ""}
{-title ""}
{-description ""}
+ -no_callback:boolean
} {
Create a new file storage item or add a new revision if
an item with the same name and parent folder already exists
@@ -707,6 +717,10 @@
if {[string is true $do_notify_here_p]} {
fs::do_notifications -folder_id $parent_id -filename $title -item_id $revision_id -action "new_file" -package_id $package_id
}
+
+ if {!$no_callback_p} {
+ callback fs::file_new -package_id [ad_conn package_id] -file_id $item_id
+ }
}
return $revision_id
}
@@ -722,6 +736,7 @@
{-description ""}
{-suppress_notify_p "f"}
{-storage_type ""}
+ -no_callback:boolean
} {
Create a new version of a file storage item
@return revision_id
@@ -762,15 +777,24 @@
fs::rss::build_feeds $parent_id
}
+ if {!$no_callback_p} {
+ callback fs::file_edit -package_id [ad_conn package_id] -file_id $item_id
+ }
+
return $revision_id
}
ad_proc fs::delete_file {
-item_id
{-parent_id ""}
+ -no_callback:boolean
} {
Deletes a file and all its revisions
} {
+ if {!$no_callback_p} {
+ callback fs::file_delete -package_id [ad_conn package_id] -file_id $item_id
+ }
+
set version_name [get_object_name -object_id $item_id]
db_exec_plsql delete_file ""
@@ -785,9 +809,14 @@
-folder_id
{-cascade_p "t"}
{-parent_id ""}
+ -no_callback:boolean
} {
Deletes a folder and all contents
} {
+ if {!$no_callback_p} {
+ callback fs::folder_delete -package_id [ad_conn package_id] -folder_id $folder_id
+ }
+
set version_name [get_object_name -object_id $folder_id]
db_exec_plsql delete_folder ""
Index: openacs-4/packages/file-storage/www/folder-delete.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/file-storage/www/folder-delete.tcl,v
diff -u -r1.9 -r1.10
--- openacs-4/packages/file-storage/www/folder-delete.tcl 27 Apr 2005 08:25:29 -0000 1.9
+++ openacs-4/packages/file-storage/www/folder-delete.tcl 26 May 2005 08:28:46 -0000 1.10
@@ -61,6 +61,7 @@
if {[string equal $blocked_p "f"] } {
# they have confirmed that they want to delete the folder
+ callback fs::folder_delete -package_id [ad_conn package_id] -folder_id $folder_id
db_1row parent_id "select parent_id from cr_items where item_id = :folder_id"
db_exec_plsql folder_delete ""
Index: openacs-4/packages/file-storage/www/folder-edit-2.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/file-storage/www/Attic/folder-edit-2.tcl,v
diff -u -r1.2 -r1.3
--- openacs-4/packages/file-storage/www/folder-edit-2.tcl 5 Nov 2002 17:19:59 -0000 1.2
+++ openacs-4/packages/file-storage/www/folder-edit-2.tcl 26 May 2005 08:28:46 -0000 1.3
@@ -30,5 +30,6 @@
#regsub -all { +} [string tolower $folder_name] {_} name
db_exec_plsql folder_rename {}
+callback fs::folder_edit -package_id [ad_conn package_id] -folder_id $folder_id
ad_returnredirect "?folder_id=$folder_id"