Index: openacs-4/contrib/packages/simulation/lib/sim-objects.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/simulation/lib/Attic/sim-objects.tcl,v diff -u -r1.8 -r1.9 --- openacs-4/contrib/packages/simulation/lib/sim-objects.tcl 18 Nov 2003 15:59:11 -0000 1.8 +++ openacs-4/contrib/packages/simulation/lib/sim-objects.tcl 2 Dec 2003 13:46:53 -0000 1.9 @@ -10,19 +10,54 @@ default_value display } size { - allowed_values {short long yellow-pages} + allowed_values {short long} default_value long } } +###################################################################### +# Set general variables + set package_id [ad_conn package_id] +if { ![exists_and_not_null user_id] } { + set user_id [auth::get_user_id] +} + +set create_p [permission::permission_p -object_id $package_id -privilege sim_object_create] +set write_p [permission::permission_p -object_id $package_id -privilege sim_object_write] + + +###################################################################### +# +# objects list +# +###################################################################### + +#--------------------------------------------------------------------- +# Set up supporting variables for list + set add_url [export_vars -base "[ad_conn package_url]citybuild/object-edit" { parent_id }] +if { $create_p } { + set actions "{Add an object} $add_url" +} else { + set actions "" +} if { ![exists_and_not_null parent_id] } { set parent_id [bcms::folder::get_id_by_package_id -parent_id 0] } +if { $size == "yellow-pages"} { + set filter_sql "and content_type = 'sim_character' or content_type = 'sim_location' + and +" +} else { + set filter_sql "" +} + +#--------------------------------------------------------------------- +# Set basic elements list set elements { object_type_pretty { label "Type" @@ -35,19 +70,26 @@ } } +#--------------------------------------------------------------------- +# Edit column +# Put an edit link first if { [string equal $display_mode "edit"] } { - # Put an edit link first set elements [concat { edit { sub_class narrow - link_url_col edit_url display_template { - Edit + + + Edit + + } } } $elements] } +#--------------------------------------------------------------------- +# Description column if { [string equal $size "long"] } { set elements [concat $elements { description { @@ -57,33 +99,37 @@ }] } +#--------------------------------------------------------------------- +# Delete column +# Put a delete link last if { [string equal $display_mode "edit"] } { - # Put a delete link last set elements [concat $elements { delete { sub_class narrow link_url_col delete_url display_template { - Edit + + Edit + } } }] } -if { $size == "yellow-pages"} { - set filter_sql "and content_type = 'sim_character' or content_type = 'sim_location'" -} else { - set filter_sql "" -} - +###################################################################### template::list::create \ -name objects \ -multirow objects \ - -actions " {Add an object} $add_url " \ + -actions $actions \ -elements $elements +#--------------------------------------------------------------------- +# database query -db_multirow -extend { edit_url view_url delete_url } objects select_objects " + +db_multirow -extend { edit_url view_url delete_url edit_p } objects select_objects " select i.item_id, i.name, r.title, @@ -105,6 +151,7 @@ set description [string_truncate -len 200 $description] set edit_url [export_vars -base "[apm_package_url_from_id $package_id]citybuild/object-edit" { item_id }] set delete_url [export_vars -base "[apm_package_url_from_id $package_id]citybuild/object-delete" { item_id }] + set edit_p [expr $write_p || [permission::write_permission_p -object_id $item_id]] switch -glob $mime_type { text/* - {} {