Index: openacs-4/packages/xowiki/www/xinha/file-selector.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/xowiki/www/xinha/file-selector.tcl,v
diff -u -r1.4 -r1.5
--- openacs-4/packages/xowiki/www/xinha/file-selector.tcl 1 Jul 2006 01:27:25 -0000 1.4
+++ openacs-4/packages/xowiki/www/xinha/file-selector.tcl 17 Aug 2006 01:44:27 -0000 1.5
@@ -3,7 +3,7 @@
@author Gustaf Neumann neumann@wu-wien.ac.at
@creation-date 13.10.2005
@cvs-id $Id$
-} {
+} {
{fs_package_id:integer,notnull,optional}
{folder_id:integer,optional}
{orderby:optional}
@@ -16,7 +16,7 @@
if {[info exists folder_id]} {
# get package_id from folder_id
foreach {fs_package_id root_folder_id} \
- [fs::get_folder_package_and_root $folder_id] break
+ [fs::get_folder_package_and_root $folder_id] break
} else {
# get package_id from package name
set key file-storage
@@ -74,78 +74,78 @@
set parent_folder_id [fs::get_parent -item_id $folder_id]
set up_name [fs::get_object_name -object_id $parent_folder_id]
set up_url [export_vars -base file-selector \
- {fs_package_id {folder_id $parent_folder_id}
- selector_type file_types}]
+ {fs_package_id {folder_id $parent_folder_id}
+ selector_type file_types}]
}
# if user has write permission, create image upload form,
if {[permission::permission_p -party_id $user_id -object_id $folder_id \
- -privilege "write"]} {
+ -privilege "write"]} {
set write_p 1
ad_form \
-name upload_form \
-mode edit \
-export {fs_package_id folder_id orderby selector_type file_types} \
-html { enctype multipart/form-data } \
-form {
- {upload_file:file(file) {html {size 30}} }
- {ok_btn:text(submit) {label "[_ acs-templating.HTMLArea_SelectUploadBtn]"}
- }
+ {upload_file:file(file) {html {size 30}} }
+ {ok_btn:text(submit) {label "[_ acs-templating.HTMLArea_SelectUploadBtn]"}
+ }
} \
-on_submit {
- # check file name
- if {$upload_file eq ""} {
- template::form::set_error upload_form upload_file \
- [_ acs-templating.HTMLArea_SpecifyUploadFilename]
- break
- }
+ # check file name
+ if {$upload_file eq ""} {
+ template::form::set_error upload_form upload_file \
+ [_ acs-templating.HTMLArea_SpecifyUploadFilename]
+ break
+ }
- # check quota
- set maximum_folder_size [ad_parameter "MaximumFolderSize"]
-
- if { $maximum_folder_size ne "" } {
- set max [ad_parameter "MaximumFolderSize"]
- if { $folder_size+[file size ${upload_file.tmpfile}] > $max } {
- template::form::set_error upload_form upload_file \
- [_ file-storage.out_of_space]
- break
- }
- }
-
- set file_name [template::util::file::get_property filename $upload_file]
- set upload_tmpfile [template::util::file::get_property tmp_filename $upload_file]
- set mime_type [template::util::file::get_property mime_type $upload_file]
-
- if {$selector_type eq "image" && ![string match "image/*" $mime_type]} {
- template::form::set_error upload_form upload_file \
- [_ acs-templating.HTMLArea_SelectImageUploadNoImage]
- break
- }
-
- set existing_file_id [fs::get_item_id -name $file_name -folder_id $folder_id]
-
- if {$existing_file_id ne ""} {
- # write new revision
- fs::add_file \
- -name $file_name \
- -item_id $existing_file_id \
- -parent_id $folder_id \
- -tmp_filename $upload_tmpfile \
- -creation_user $user_id \
- -creation_ip [ad_conn peeraddr] \
- -package_id $fs_package_id
- } else {
- # write file
- fs::add_file \
- -name $file_name \
- -parent_id $folder_id \
- -tmp_filename $upload_tmpfile \
- -creation_user $user_id \
- -creation_ip [ad_conn peeraddr] \
- -package_id $fs_package_id
- }
-
+ # check quota
+ set maximum_folder_size [ad_parameter "MaximumFolderSize"]
+
+ if { $maximum_folder_size ne "" } {
+ set max [ad_parameter "MaximumFolderSize"]
+ if { $folder_size+[file size ${upload_file.tmpfile}] > $max } {
+ template::form::set_error upload_form upload_file \
+ [_ file-storage.out_of_space]
+ break
+ }
+ }
+
+ set file_name [template::util::file::get_property filename $upload_file]
+ set upload_tmpfile [template::util::file::get_property tmp_filename $upload_file]
+ set mime_type [template::util::file::get_property mime_type $upload_file]
+
+ if {$selector_type eq "image" && ![string match "image/*" $mime_type]} {
+ template::form::set_error upload_form upload_file \
+ [_ acs-templating.HTMLArea_SelectImageUploadNoImage]
+ break
+ }
+
+ set existing_file_id [fs::get_item_id -name $file_name -folder_id $folder_id]
+
+ if {$existing_file_id ne ""} {
+ # write new revision
+ fs::add_file \
+ -name $file_name \
+ -item_id $existing_file_id \
+ -parent_id $folder_id \
+ -tmp_filename $upload_tmpfile \
+ -creation_user $user_id \
+ -creation_ip [ad_conn peeraddr] \
+ -package_id $fs_package_id
+ } else {
+ # write file
+ fs::add_file \
+ -name $file_name \
+ -parent_id $folder_id \
+ -tmp_filename $upload_tmpfile \
+ -creation_user $user_id \
+ -creation_ip [ad_conn peeraddr] \
+ -package_id $fs_package_id
+ }
+
}
} else {
set write_p 0
@@ -173,78 +173,78 @@
-filters {folder_id {} file_types {} selector_type {} fs_package_id {}} \
-elements {
name {
- label "[_ file-storage.Name]"
- display_template {
-
-
+
-
-
-
-
-
- onclick="selectImage('@contents.object_id@','@contents.file_url@','@contents.type@');return false;">@contents.name@
- }
- orderby_desc {name desc}
- orderby_asc {name asc}
- html {nowrap ""}
+
+
+ onclick="selectImage('@contents.object_id@','@contents.file_url@','@contents.type@');return false;">@contents.name@
+ }
+ orderby_desc {name desc}
+ orderby_asc {name asc}
+ html {nowrap ""}
}
content_size_pretty {
- label "[_ file-storage.Size]"
- orderby_desc {content_size desc}
- orderby_asc {content_size asc}
+ label "[_ file-storage.Size]"
+ orderby_desc {content_size desc}
+ orderby_asc {content_size asc}
}
type {
- label "[_ file-storage.Type]"
- orderby_desc {type desc}
- orderby_asc {type asc}
+ label "[_ file-storage.Type]"
+ orderby_desc {type desc}
+ orderby_asc {type asc}
}
last_modified_pretty {
- label "[_ file-storage.Last_Modified]"
- orderby_desc {last_modified_ansi desc}
- orderby_asc {last_modified_ansi asc}
- html {nowrap ""}
+ label "[_ file-storage.Last_Modified]"
+ orderby_desc {last_modified_ansi desc}
+ orderby_asc {last_modified_ansi asc}
+ html {nowrap ""}
}
}
set order_by_clause [expr {[exists_and_not_null orderby] ?
- [template::list::orderby_clause -orderby -name contents] :
- " order by fs_objects.sort_key, fs_objects.name asc"}]
+ [template::list::orderby_clause -orderby -name contents] :
+ " order by fs_objects.sort_key, fs_objects.name asc"}]
if {$selector_type eq "image"} {
set file_types "image/%"
}
set filter_clause [expr {$file_types eq "*" ? "" :
- "and (type like '$file_types' or type = 'folder')" }]
+ "and (type like '$file_types' or type = 'folder')" }]
set fs_sql "select object_id, name, live_revision, type, title,
- to_char(last_modified, 'YYYY-MM-DD HH24:MI:SS') as last_modified_ansi,
- content_size, url, sort_key, file_upload_name,
- case
- when :folder_path is null
- then fs_objects.name
- else :folder_path || '/' || name
- end as file_url,
- case
- when last_modified >= (now() - cast('99999' as interval))
- then 1
- else 0
- end as new_p
- from fs_objects
- where parent_id = :folder_id
- and exists (select 1
- from acs_object_party_privilege_map m
- where m.object_id = fs_objects.object_id
- and m.party_id = :user_id
- and m.privilege = 'read')
- $filter_clause
- $order_by_clause"
+ to_char(last_modified, 'YYYY-MM-DD HH24:MI:SS') as last_modified_ansi,
+ content_size, url, sort_key, file_upload_name,
+ case
+ when :folder_path is null
+ then fs_objects.name
+ else :folder_path || '/' || name
+ end as file_url,
+ case
+ when last_modified >= (now() - cast('99999' as interval))
+ then 1
+ else 0
+ end as new_p
+ from fs_objects
+ where parent_id = :folder_id
+ and exists (select 1
+ from acs_object_party_privilege_map m
+ where m.object_id = fs_objects.object_id
+ and m.party_id = :user_id
+ and m.privilege = 'read')
+ $filter_clause
+ $order_by_clause"
db_multirow -extend {
icon last_modified_pretty content_size_pretty
@@ -263,7 +263,7 @@
if {$title eq ""} {set title $name}
set file_upload_name [fs::remove_special_file_system_characters \
- -string $file_upload_name]
+ -string $file_upload_name]
if { $content_size ne "" } {
incr content_size_total $content_size
@@ -276,8 +276,8 @@
set folder_p 1
set icon /resources/file-storage/folder.gif
set file_url [export_vars -base file-selector \
- {fs_package_id {folder_id $object_id}
- selector_type file_types}]
+ {fs_package_id {folder_id $object_id}
+ selector_type file_types}]
}
url {
set folder_p 1