delete-2.tcl
Deletes the relationship type
- Location:
- /packages/acs-subsite/www/admin/rel-types/delete-2.tcl
- Author:
- mbryzek@arsdigita.com
- Created:
- Mon Dec 11 12:00:12 2000
- CVS ID:
$Id: delete-2.tcl,v 1.7.2.3 2020/01/03 11:29:17 antoniop Exp $
Related Files
- packages/acs-subsite/www/admin/rel-types/delete-2.xql
- packages/acs-subsite/www/admin/rel-types/delete-2.tcl
- packages/acs-subsite/www/admin/rel-types/delete-2-postgresql.xql
- packages/acs-subsite/www/admin/rel-types/delete-2-oracle.xql
[ hide source ] | [ make this the default ]
File Contents
ad_page_contract { Deletes the relationship type @author mbryzek@arsdigita.com @creation-date Mon Dec 11 12:00:12 2000 @cvs-id $Id: delete-2.tcl,v 1.7.2.3 2020/01/03 11:29:17 antoniop Exp $ } { rel_type:notnull,rel_type_dynamic_p { operation "" } { return_url:localurl "" } } if { $operation ne "Yes, I really want to delete this relationship type" } { # set the return_url to something useful if we are not deleting if { $return_url eq "" } { set return_url [export_vars -base one rel_type] } } else { db_1row select_type_info { select t.table_name from acs_object_types t where t.object_type = :rel_type } set user_id [ad_conn user_id] set rel_id_list [db_list select_rel_ids { select r.rel_id from acs_rels r where acs_permission.permission_p(r.rel_id, :user_id, 'delete') and r.rel_type = :rel_type }] set segment_id [db_string select_segment_id { select s.segment_id from rel_segments s where acs_permission.permission_p(s.segment_id, :user_id, 'delete') and s.rel_type = :rel_type } -default ""] # delete all relations, all segments, and drop the relationship # type. This will fail if a relation / segment for this type is created # after we select out the list of rels/segments to delete but before we # finish dropping the type. db_transaction { foreach rel_id $rel_id_list { relation_remove $rel_id } if { $segment_id ne "" } { rel_segment::delete $segment_id } db_exec_plsql drop_relationship_type {} } on_error { ad_return_error "Error deleting relationship type" "We got the following error trying to delete this relationship type:<pre>$errmsg</pre>" ad_script_abort } # If we successfully dropped the relationship type, drop the table. # Note that we do this outside the transaction as it commits all # transactions anyway if { [db_table_exists $table_name] } { db_dml drop_type_table "drop table $table_name" } } # Reset the attribute view for objects of this type package_object_view_reset $rel_type ad_returnredirect $return_url ad_script_abort # Local variables: # mode: tcl # tcl-indent-level: 4 # indent-tabs-mode: nil # End: