Index: openacs-4/packages/contacts/www/files.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/contacts/www/files.adp,v diff -u -r1.1 -r1.2 --- openacs-4/packages/contacts/www/files.adp 27 May 2005 00:18:58 -0000 1.1 +++ openacs-4/packages/contacts/www/files.adp 14 Jun 2005 14:10:51 -0000 1.2 @@ -1,10 +1,13 @@ @party_id@ - - - - - - - + + + + + + + + + + Index: openacs-4/packages/contacts/www/files.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/contacts/www/files.tcl,v diff -u -r1.2 -r1.3 --- openacs-4/packages/contacts/www/files.tcl 7 Jun 2005 07:45:40 -0000 1.2 +++ openacs-4/packages/contacts/www/files.tcl 14 Jun 2005 14:10:21 -0000 1.3 @@ -1,5 +1,4 @@ ad_page_contract { - List and manage files for a contact. @author Matthew Geddert openacs@geddert.com @@ -11,147 +10,155 @@ {orderby "file,asc"} } -validate { contact_exists -requires {party_id} { - if { ![contact::exists_p -party_id $party_id] } { + if {![contact::exists_p \ + -party_id $party_id]} { ad_complain "[_ contacts.lt_The_contact_specified]" } } } -if { $upload_count != 10 } { +if {$upload_count != 10} { set upload_count 1 } -set contact_name [contact::name -party_id $party_id] -set form_elements [list {party_id:integer(hidden)}] -lappend form_elements [list {upload_count:integer(hidden)}] -lappend form_elements [list {orderby:text(hidden),optional}] -set upload_number 1 -while { $upload_number <= $upload_count } { - lappend form_elements [list "upload_file${upload_number}:file(file),optional" [list label ""] [list section "section$upload_number"]] - lappend form_elements [list "upload_title${upload_number}:text(text),optional" [list html "size 45 maxlength 100"] [list label ""]] - incr upload_number -} -if { $upload_count == 1 } { set upload_label "Upload" } else { set upload_label "[_ contacts.Done]" } -lappend form_elements [list "upload:text(submit),optional" [list "label" $upload_label]] -lappend form_elements [list "upload_more:text(submit),optional" [list "label" "[_ contacts.Upload_More]"]] +set folder_id [application_data_link::get_linked \ + -from_object_id $party_id \ + -to_object_type "content_folder"] -ad_form -name upload_files -html {enctype multipart/form-data} -form $form_elements -on_request { -} -on_submit { - set upload_number 1 - set message [list] - while { $upload_number <= $upload_count } { - set file [set "upload_file${upload_number}"] - set title [set "upload_title${upload_number}"] - set filename [template::util::file::get_property filename $file] - if { $filename != "" } { - set tmp_filename [template::util::file::get_property tmp_filename $file] - set mime_type [template::util::file::get_property mime_type $file] - set tmp_size [file size $tmp_filename] - set extension [contact::util::get_file_extension -filename $filename] - if { ![exists_and_not_null title] } { - regsub -all ".${extension}\$" $filename "" title - } - set filename [contact::util::generate_filename -title $title -extension $extension -party_id $party_id] - set revision_id [cr_import_content -storage_type "file" -title $title $party_id $tmp_filename $tmp_size $mime_type $filename] +if {[empty_string_p $folder_id]} { - content::item::set_live_revision -revision_id $revision_id - - # if the file is an image we need to create thumbnails - # - #/sw/bin/convert -gravity Center -crop 75x75+0+0 fred.jpg fred.jpg - #/sw/bin/convert -gravity Center -geometry 100x100+0+0 04055_7.jpg fred.jpg - - lappend message "$title" - } - incr upload_number + set contact_name [contact::name \ + -party_id $party_id] + set form_elements [list {party_id:integer(hidden)}] + lappend form_elements [list {upload_count:integer(hidden)}] + lappend form_elements [list {orderby:text(hidden),optional}] + set upload_number 1 + while {$upload_number <= $upload_count} { + lappend form_elements [list "upload_file${upload_number}:file(file),optional" [list label ""] [list section "section$upload_number"]] + lappend form_elements [list "upload_title${upload_number}:text(text),optional" [list html "size 45 maxlength 100"] [list label ""]] + incr upload_number } - if { [llength $message] == 1 } { - util_user_message -html -message "[_ contacts.lt_The_file_lindex_messa]" - } elseif { [llength $message] > 1 } { - util_user_message -html -message "[_ contacts.lt_The_files_join_messag]" - } + if {$upload_count == 1} {set upload_label "Upload" } else {set upload_label "[_ contacts.Done]" } + lappend form_elements [list "upload:text(submit),optional" [list "label" $upload_label]] + lappend form_elements [list "upload_more:text(submit),optional" [list "label" "[_ contacts.Upload_More]"]] -} -after_submit { - if { [exists_and_not_null upload_more] } { - ad_returnredirect [export_vars -base "files" -url {{upload_count 10}}] - } else { - ad_returnredirect "files" - } - ad_script_abort -} + ad_form -name upload_files -html {enctype multipart/form-data} -form $form_elements -on_request { + } -on_submit { + set upload_number 1 + set message [list] + while {$upload_number <= $upload_count} { + set file [set "upload_file${upload_number}"] + set title [set "upload_title${upload_number}"] + set filename [template::util::file::get_property filename $file] + if {$filename != "" } { + set tmp_filename [template::util::file::get_property tmp_filename $file] + set mime_type [template::util::file::get_property mime_type $file] + set tmp_size [file size $tmp_filename] + set extension [contact::util::get_file_extension \ + -filename $filename] + if {![exists_and_not_null title]} { + regsub -all ".${extension}\$" $filename "" title + } + set filename [contact::util::generate_filename \ + -title $title \ + -extension $extension \ + -party_id $party_id] + set revision_id [cr_import_content \ + -storage_type "file" -title $title $party_id $tmp_filename $tmp_size $mime_type $filename] + content::item::set_live_revision -revision_id $revision_id + # if the file is an image we need to create thumbnails + # #/sw/bin/convert -gravity Center -crop 75x75+0+0 fred.jpg fred.jpg + # #/sw/bin/convert -gravity Center -geometry 100x100+0+0 04055_7.jpg + # fred.jpg - -template::list::create \ - -html {width 100%} \ - -name "files" \ - -multirow "files" \ - -row_pretty_plural "[_ contacts.files]" \ - -checkbox_name checkbox \ - -bulk_action_export_vars [list party_id orderby] \ - -bulk_actions { - "[_ contacts.Delete]" "../files-delete" "[_ contacts.lt_Delete_the_selectted_]" - "[_ contacts.Update]" "../files-update" "[_ contacts.Update_filenames]" - } -selected_format "normal" \ - -key item_id \ - -elements { - file { - label {File} - display_col title - link_url_eval $file_url - } - rename { - label {Rename} - display_template { - + lappend message "$title" } + incr upload_number } - type { - label "[_ contacts.Type]" - display_col extension + if {[llength $message] == 1} { + util_user_message -html -message "[_ contacts.lt_The_file_lindex_messa]" + } elseif {[llength $message] > 1} { + util_user_message -html -message "[_ contacts.lt_The_files_join_messag]" } - creation_date { - label "[_ contacts.Updated_On]" - display_col creation_date_pretty + } -after_submit { + if {[exists_and_not_null upload_more]} { + ad_returnredirect [export_vars \ + -base "files" -url {{upload_count 10}}] + } else { + ad_returnredirect "files" } - creation_user { - label "[_ contacts.Updated_By]" - display_col creation_user_pretty - } - } -filters { - } -orderby { - file { - label "[_ contacts.File]" - orderby_asc "upper(cr.title) asc, ao.creation_date desc" - orderby_desc "upper(cr.title) desc, ao.creation_date desc" - default_direction asc - } - creation_date { - label "[_ contacts.Updated_On]" - orderby_asc "ao.creation_date asc" - orderby_desc "ao.creation_date desc" - default_direction desc - } - creation_user { - label "[_ contacts.Updated_By]" - orderby_asc "upper(contact__name(ao.creation_user)) asc, upper(cr.title) asc" - orderby_desc "upper(contact__name(ao.creation_user)) desc, upper(cr.title) asc" - default_direction desc - } - default_value file,asc - } -formats { - normal { - label "[_ contacts.Table]" - layout table - row { + ad_script_abort + } + + template::list::create \ + -html {width 100%} \ + -name "files" \ + -multirow "files" \ + -row_pretty_plural "[_ contacts.files]" \ + -checkbox_name checkbox \ + -bulk_action_export_vars [list party_id orderby] \ + -bulk_actions { + "[_ contacts.Delete]" "../files-delete" "[_ contacts.lt_Delete_the_selectted_]" + "[_ contacts.Update]" "../files-update" "[_ contacts.Update_filenames]" + } -selected_format "normal" \ + -key item_id \ + -elements { + file { + label {File} + display_col title + link_url_eval $file_url } + rename { + label {Rename} + display_template { + } + } + type { + label "[_ contacts.Type]" + display_col extension + } + creation_date { + label "[_ contacts.Updated_On]" + display_col creation_date_pretty + } + creation_user { + label "[_ contacts.Updated_By]" + display_col creation_user_pretty + } + } -filters { + } -orderby { + file { + label "[_ contacts.File]" + orderby_asc "upper(cr.title) asc, ao.creation_date desc" + orderby_desc "upper(cr.title) desc, ao.creation_date desc" + default_direction asc + } + creation_date { + label "[_ contacts.Updated_On]" + orderby_asc "ao.creation_date asc" + orderby_desc "ao.creation_date desc" + default_direction desc + } + creation_user { + label "[_ contacts.Updated_By]" + orderby_asc "upper(contact__name(ao.creation_user)) asc, upper(cr.title) asc" + orderby_desc "upper(contact__name(ao.creation_user)) desc, upper(cr.title) asc" + default_direction desc + } + default_value file,asc + } -formats { + normal { + label "[_ contacts.Table]" + layout table + row { + } + } } - } -set package_url [ad_conn package_url] -db_multirow -extend {file_url extension} -unclobber files select_files " -select ci.item_id, + set package_url [ad_conn package_url] + db_multirow -extend {file_url extension} -unclobber files select_files "select ci.item_id, ci.name, cr.title, to_char(ao.creation_date,'FMMon DD FMHH12:MIam') as creation_date_pretty, @@ -160,12 +167,15 @@ where ci.parent_id = :party_id and ci.live_revision = cr.revision_id and cr.revision_id = ao.object_id -[template::list::orderby_clause -orderby -name "files"] -" { +[template::list::orderby_clause \ + -orderby \ + -name "files"]" { set file_url "${package_url}${party_id}/files/${name}" set extension [lindex [split $name "."] end] - + } +} else { + set package_id [lindex [fs::get_folder_package_and_root $folder_id] 0] + set base_url [apm_package_url_from_id $package_id] } - ad_return_template