application-delete.tcl
Delete an application.
- Location:
- /packages/acs-subsite/www/admin/applications/application-delete.tcl
- Authors:
- Lars Pind <lars@collaboraid.biz>
- Gustaf Neumann
- Created:
- 2003-05-28
- CVS ID:
$Id: application-delete.tcl,v 1.8.2.2 2023/10/06 12:36:15 gustafn Exp $
Related Files
- packages/acs-subsite/www/admin/applications/application-delete.tcl
- packages/acs-subsite/www/admin/applications/application-delete.adp
[ hide source ] | [ make this the default ]
File Contents
ad_page_contract { Delete an application. @author Lars Pind (lars@collaboraid.biz) @author Gustaf Neumann @creation-date 2003-05-28 @cvs-id $Id: application-delete.tcl,v 1.8.2.2 2023/10/06 12:36:15 gustafn Exp $ } { {node_id:naturalnum,multiple ""} {package_id:naturalnum,multiple ""} {return_url:localurl .} {confirm_p:boolean,notnull 0} } foreach id $package_id { set id [site_node::get_node_id_from_object_id -object_id $id] if {$id ne ""} { lappend node_id $id set p [lsearch $package_id $id] set package_id [lreplace $package_id $p $p] } } ns_log notice "package_id <$package_id> node_id <$node_id>" set num [expr {[llength $node_id] + [llength $package_id]}] set page_title "Delete [expr {$num == 1 ? "Application" : "Applications"}]" set context [list [list "." "Applications"] $page_title] set yes_url [export_vars -base [ad_conn url] { node_id:multiple package_id:multiple return_url { confirm_p 1 } }] set no_url $return_url set listing "" if { !$confirm_p } { if { $num == 0 } { ad_returnredirect . ad_script_abort } append listing <ul>\n foreach id $node_id { set dict [site_node::get_from_node_id -node_id $id] append listing "<li>" \ [dict get $dict instance_name] " " \ [dict get $dict url] " " \ "(instance of [dict get $dict package_key], package_id [dict get $dict package_id])" \ </li> "\n" } foreach id $package_id { set instance_name [apm_instance_name_from_id $id] set package_key [apm_package_key_from_id $id] append listing "<li>" \ $instance_name " " \ "(instance of $package_key, unmounted, package_id $id)" \ </li> "\n" } append listing </ul>\n return } # First unmount and delete the site-nodes, then delete the package, in separate transactions, # so even if the package deletion fails, it'll be gone from this subsite. set package_ids $package_id db_transaction { foreach id $node_id { lappend package_ids [site_node::get_object_id -node_id $id] # Unmount the application site_node::unmount -node_id $id # Delete the node site_node::delete -node_id $id } } db_transaction { foreach id $package_ids { # Delete the instance apm_package_instance_delete $id } } on_error { set error_p 1 ns_log Error "Error deleting package with package_id $id: $errmsg\n$::errorInfo" # Hm. Not sure what to do. For now, let's rethrow the error. error $errmsg $::errorInfo } ad_returnredirect $return_url ad_script_abort # # Local variables: # mode: tcl # tcl-indent-level: 4 # indent-tabs-mode: nil # End: