Index: openacs-4/contrib/packages/simulation/www/simplay/message.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/simulation/www/simplay/Attic/message.tcl,v
diff -u -r1.17 -r1.18
--- openacs-4/contrib/packages/simulation/www/simplay/message.tcl 12 Jan 2004 13:43:14 -0000 1.17
+++ openacs-4/contrib/packages/simulation/www/simplay/message.tcl 12 Jan 2004 15:14:36 -0000 1.18
@@ -4,7 +4,6 @@
item_id:integer,optional
case_id:integer
role_id:integer
- sender_role_id:integer,optional
recipient_role_id:integer,optional,multiple
subject:optional
body_text:optional
@@ -19,30 +18,21 @@
set workflow_id [workflow::case::get_element -case_id $case_id -element workflow_id]
-set from_role_options [list]
-foreach one_role_id [workflow::case::get_user_roles -case_id $case_id] {
- lappend from_role_options [list [workflow::role::get_element -role_id $one_role_id -element pretty_name] $one_role_id]
-}
-
-# First sender role selected by default
-if { ![exists_and_not_null sender_role_id] } {
- set sender_role_id [lindex [lindex $from_role_options 0] 1]
-}
-
set all_role_options [list]
foreach one_role_id [workflow::role::get_ids -workflow_id $workflow_id] {
- lappend all_role_options [list [workflow::role::get_element -role_id $one_role_id -element pretty_name] $one_role_id]
+ set pretty_name [workflow::role::get_element -role_id $one_role_id -element pretty_name]
+ lappend all_role_options [list $pretty_name $one_role_id]
}
set to_role_options [list]
foreach one_role_id [workflow::role::get_ids -workflow_id $workflow_id] {
# A role cannot send message to himself
- if { ![exists_and_equal sender_role_id $one_role_id] } {
+ if { ![exists_and_equal role_id $one_role_id] } {
lappend to_role_options [list [workflow::role::get_element -role_id $one_role_id -element pretty_name] $one_role_id]
}
}
-set attachment_options [simulation::case::attachment_options -case_id $case_id -role_id $sender_role_id]
+set attachment_options [simulation::case::attachment_options -case_id $case_id -role_id $role_id]
set action [form::get_action message]
@@ -54,7 +44,6 @@
-array content
set recipient_role_id $content(from_role_id)
- set sender_role_id $content(to_role_id)
set subject "Re: $content(title)"
set body_text "
@@ -68,38 +57,63 @@
[ad_html_text_convert -from $content(mime_type) -to "text/plain" $content(text)]"
set body_mime_type "text/plain"
- ad_returnredirect [export_vars -base [ad_conn url] { case_id sender_role_id recipient_role_id subject body_text body_mime_type }]
+ ad_returnredirect [export_vars -base [ad_conn url] { case_id role_id recipient_role_id subject body_text body_mime_type }]
}
set form_mode [ad_decode [ad_form_new_p -key item_id] 1 "edit" "display"]
+set focus "message.recipient_role_id"
+
+set sender_role_id $role_id
+
ad_form \
-name message \
-edit_buttons { { Send ok } } \
-actions { { Reply reply } } \
- -export { case_id } \
+ -export { case_id role_id } \
-mode $form_mode \
-form {
+ {item_id:key}
{sender_role_id:text(select)
{label "From"}
- {html {onChange "javascript:acs_FormRefresh('message');"}}
+ {mode display}
{options $all_role_options}
}
}
-if { [llength $from_role_options] > 1 } {
- set focus "message.sender_role_id"
+if { [ad_form_new_p -key item_id] } {
+ if { [llength $to_role_options] == 1 } {
+ set recipient_role_id [lindex [lindex $to_role_options 0] 1]
+
+ ad_form -extend -name message -form {
+ {recipient_role_id_inform:text(inform)
+ {label "To"}
+ {value {[lindex [lindex $to_role_options 0] 0]}}
+ }
+ {recipient_role_id:integer(hidden)
+ {value {[lindex [lindex $to_role_options 0] 1]}}
+ }
+ }
+ } else {
+ ad_form -extend -name message -form {
+ {recipient_role_id:integer(checkbox),multiple
+ {label "To"}
+ {options $to_role_options}
+ }
+ }
+ }
} else {
- set sender_role_id [lindex [lindex $from_role_options 0] 1]
- set focus "message.recipient_role_id"
+ ad_form -extend -name message -form {
+ {recipient_role_id:integer(checkbox),multiple
+ {label "To"}
+ {options $to_role_options}
+ }
+ }
}
+
+
ad_form -extend -name message -form {
- {item_id:key}
- {recipient_role_id:integer(checkbox),multiple
- {label "To"}
- {options $to_role_options}
- }
{subject:text
{label "Subject"}
{html {size 80}}
@@ -142,13 +156,6 @@
set body [template::util::richtext::create $body_text $body_mime_type]
set focus "message.body"
}
-
- if { [llength $from_role_options] == 1 } {
- set sender_role_id [lindex [lindex $from_role_options 0] 1]
- element set_properties message sender_role_id -mode display
- } else {
- element set_properties message sender_role_id -options $from_role_options
- }
} -edit_request {
item::get_content \
@@ -182,7 +189,10 @@
set object_url [simulation::object::url -name [ns_set get $attachment_set name]]
set object_title [ns_set get $attachment_set title]
append attachments "$object_title
"
- }
+ }
+ if { [llength $attachments_set_list] == 0 } {
+ element set_properties message attachments -widget hidden
+ }
}
} -on_submit {
@@ -209,3 +219,8 @@
ad_returnredirect [export_vars -base case { case_id role_id }]
ad_script_abort
}
+
+if { ![ad_form_new_p -key item_id] } {
+ element set_properties message recipient_role_id -options $all_role_options
+}
+