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 {
-
+
+
+
+
+
}
}
} $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 {
-
+
+
+
}
}
}]
}
-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/* - {} {