Index: openacs-4/packages/acs-subsite/www/user/portrait/erase-2.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-subsite/www/user/portrait/Attic/erase-2.tcl,v diff -u -r1.4 -r1.5 --- openacs-4/packages/acs-subsite/www/user/portrait/erase-2.tcl 10 Jan 2007 21:22:11 -0000 1.4 +++ openacs-4/packages/acs-subsite/www/user/portrait/erase-2.tcl 29 May 2007 05:37:25 -0000 1.5 @@ -24,14 +24,24 @@ ad_require_permission $user_id "write" -db_dml portrait_delete "update cr_items -set live_revision = NULL -where item_id = ( - select object_id_two +set item_id [db_string item_id "select object_id_two from acs_rels where object_id_one = :user_id - and rel_type = 'user_portrait_rel')" + and rel_type = 'user_portrait_rel'"] +set resized_item_id [image::get_resized_item_id -item_id $item_id] + +# Delete the resized version +if {$resized_item_id ne ""} { + content::item::delete -item_id $resized_item_id +} + +# Delete the relationship +db_dml delete_rel "delete from acs_rels where object_id_two = :item_id and object_id_one = :user_id and rel_type = 'user_portrait_rel'" + +# Delete the item +content::item::delete -item_id $item_id + if {$return_url eq ""} { set return_url "/pvt/home" } Index: openacs-4/packages/acs-subsite/www/user/portrait/upload-2.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-subsite/www/user/portrait/Attic/upload-2.tcl,v diff -u -r1.14 -r1.15 --- openacs-4/packages/acs-subsite/www/user/portrait/upload-2.tcl 10 Jan 2007 21:22:11 -0000 1.14 +++ openacs-4/packages/acs-subsite/www/user/portrait/upload-2.tcl 29 May 2007 05:37:25 -0000 1.15 @@ -60,14 +60,15 @@ # couldn't find a match set client_filename $upload_file } - + if { ![empty_string_p [ad_parameter MaxPortraitBytes "user-info"]] && $n_bytes > [ad_parameter MaxPortraitBytes "user-info"] } { append exception_text "<li>Your file is too large. The publisher of [ad_system_name] has chosen to limit portraits to [util_commify_number [ad_parameter MaxPortraitBytes "user-info"]] bytes. You can use PhotoShop or the GIMP (free) to shrink your image.</li>\n" incr exception_count } } + if { $exception_count > 0 } { ad_return_complaint $exception_count $exception_text ad_script_abort @@ -76,11 +77,15 @@ # Wrap the whole creation along with the relationship in a big transaction # Just to make sure it really worked. + db_transaction { set item_id [content::item::get_id_by_name -name "portrait-of-user-$user_id" -parent_id $user_id] if { $item_id eq ""} { # The user doesn't have a portrait relation yet set item_id [content::item::new -name "portrait-of-user-$user_id" -parent_id $user_id -content_type image] + set resized_item_id "" + } else { + set resized_item_id [image::get_resized_item_id -item_id $item_id -size_name "thumbnail"] } # Load the file into the revision @@ -98,9 +103,18 @@ "portrait-of-user-$user_id"] content::item::set_live_revision -revision_id $revision_id + + if {$resized_item_id ne ""} { + # Delete the item + content::item::delete -item_id $resized_item_id + + # Resize the item + image::resize -item_id $item_id -size_name "thumbnail" + } + # Only create the new relationship if there does not exist one already - set user_portrait_rel_id [relation::get_id -object_id_one $user_id -object_id_two $item_id -rel_type "user_portrait_rel"] - if {$user_portrait_rel_id eq ""} { + set user_portrait_rel_id [relation::get_id -object_id_one $user_id -object_id_two $item_id -rel_type "user_portrait_rel"] + if {$user_portrait_rel_id eq ""} { db_exec_plsql create_rel {} } } Index: openacs-4/packages/acs-subsite/www/user/portrait/upload.adp =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-subsite/www/user/portrait/upload.adp,v diff -u -r1.6 -r1.7 --- openacs-4/packages/acs-subsite/www/user/portrait/upload.adp 14 May 2007 20:30:25 -0000 1.6 +++ openacs-4/packages/acs-subsite/www/user/portrait/upload.adp 29 May 2007 05:37:25 -0000 1.7 @@ -12,7 +12,16 @@ <form enctype="multipart/form-data" method=POST action="upload-2"> @export_vars;noquote@ <table> +<if @portrait_p@ eq 1> <tr> +<td colspan=2 align="center"> +<img src="/shared/portrait-bits.tcl?user_id=@current_user_id@"/> +<br> +(<a href="erase?return_url=@return_url;noquote@">Delete Portrait</a>) +</td> +</tr> +</if> +<tr> <td valign=top align=right>#acs-subsite.Filename#: </td> <td> <input type=file name=upload_file size=20><br> Index: openacs-4/packages/acs-subsite/www/user/portrait/upload.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-subsite/www/user/portrait/upload.tcl,v diff -u -r1.6 -r1.7 --- openacs-4/packages/acs-subsite/www/user/portrait/upload.tcl 10 Jan 2007 21:22:11 -0000 1.6 +++ openacs-4/packages/acs-subsite/www/user/portrait/upload.tcl 29 May 2007 05:37:25 -0000 1.7 @@ -15,6 +15,22 @@ set current_user_id [ad_conn user_id] +set portrait_p [db_0or1row "checkportrait" {SELECT live_revision as revision_id, item_id + FROM acs_rels a, cr_items c + WHERE a.object_id_two = c.item_id + AND a.rel_type = 'user_portrait_rel' + AND a.object_id_one = :current_user_id + AND c.live_revision is not NULL +} ] + + +if { $portrait_p } { + set story [db_string "getstory" "select description from cr_revisions where revision_id = :revision_id"] +} else { + set story "" + set revision_id "" +} + if {$user_id eq ""} { subsite::upload_allowed set user_id $current_user_id