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"