Index: openacs-4/contrib/packages/project-manager/tcl/task-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/project-manager/tcl/Attic/task-procs.tcl,v diff -u -r1.4.2.25 -r1.4.2.26 --- openacs-4/contrib/packages/project-manager/tcl/task-procs.tcl 26 Oct 2004 01:22:27 -0000 1.4.2.25 +++ openacs-4/contrib/packages/project-manager/tcl/task-procs.tcl 4 Nov 2004 01:04:17 -0000 1.4.2.26 @@ -1795,6 +1795,7 @@ {-end_date_month_array:required} {-end_date_year_array:required} {-project_item_id_array:required} + {-set_client_properties_p "f"} } { Stuff information about tasks into several arrays @@ -1854,6 +1855,77 @@ set estimated_hours_work_max_arr($tid) 0 } + if {[string is true $set_client_properties_p]} { + + ad_set_client_property -persistent f -- \ + project-manager \ + old_one_line($tid) \ + $one_line + + ad_set_client_property -persistent f -- \ + project-manager \ + old_description($tid) \ + $description + + ad_set_client_property -persistent f -- \ + project-manager \ + old_description_mime_type($tid) \ + $description_mime_type + + ad_set_client_property -persistent f -- \ + project-manager \ + old_estimated_hours_work($tid) \ + $estimated_hours_work + + ad_set_client_property -persistent f -- \ + project-manager \ + old_estimated_hours_work_min($tid) \ + $estimated_hours_work_min + + ad_set_client_property -persistent f -- \ + project-manager \ + old_estimated_hours_work_max($tid) \ + $estimated_hours_work_max + + ad_set_client_property -persistent f -- \ + project-manager \ + old_dependency($tid) \ + $parent_task_id + + ad_set_client_property -persistent f -- \ + project-manager \ + old_percent_complete($tid) \ + $percent_complete + + ad_set_client_property -persistent f -- \ + project-manager \ + old_end_date_day($tid) \ + $end_date_day + + ad_set_client_property -persistent f -- \ + project-manager \ + old_end_date_month($tid) \ + $end_date_month + + ad_set_client_property -persistent f -- \ + project-manager \ + old_end_date_year($tid) \ + $end_date_year + + ad_set_client_property -persistent f -- \ + project-manager \ + old_project_item_id($tid) \ + $project + + ad_set_client_property -persistent f -- \ + project-manager \ + old_assignees($tid) \ + [pm::task::get_assignee_names \ + -task_item_id $tid] + + } + + } } @@ -1974,22 +2046,10 @@ {-comments_mime_type_array:required} {-task_item_id_array:required} {-number:required} - {-old_one_line_array:required} - {-old_description_array:required} - {-old_description_mime_type_array:required} - {-old_estimated_hours_work_array:required} - {-old_estimated_hours_work_min_array:required} - {-old_estimated_hours_work_max_array:required} - {-old_dependency_array:required} - {-old_percent_complete_array:required} - {-old_end_date_day_array:required} - {-old_end_date_month_array:required} - {-old_end_date_year_array:required} - {-old_project_item_id_array:required} - {-old_assignees_array:required} } { Compares how a task was and how it currently is, and - adds to the comments array a list of changes. + adds to the comments array a list of changes. Uses properties + last set in the task::get proc. @author Jade Rubick (jader@bread.com) @creation-date 2004-10-20 @@ -2003,24 +2063,6 @@ @param number the keys to the task_item_id array, a list of integers - @param old_one_line_array - - @param old_description_array - - @param old_description_mime_type_array - - @param old_estimated_hours_work_array - - @param old_estimated_hours_work_min_array - - @param old_estimated_hours_work_max_array - - @param old_dependency_array - - @param old_percent_complete_array - - @param old_assignees_array - @return @error @@ -2030,22 +2072,8 @@ # text/html format upvar 1 $comments_array comments_arr upvar 1 $comments_mime_type_array comments_mime_type_arr + upvar 1 $task_item_id_array task_item_id - upvar 1 $task_item_id_array task_item_id - upvar 1 $old_one_line_array old_one_line_arr - upvar 1 $old_description_array old_description_arr - upvar 1 $old_description_mime_type_array old_description_mime_type_arr - upvar 1 $old_estimated_hours_work_array old_estimated_hours_work_arr - upvar 1 $old_estimated_hours_work_min_array old_estimated_hours_work_min_arr - upvar 1 $old_estimated_hours_work_max_array old_estimated_hours_work_max_arr - upvar 1 $old_percent_complete_array old_percent_complete_arr - upvar 1 $old_end_date_day_array old_end_date_day_arr - upvar 1 $old_end_date_month_array old_end_date_month_arr - upvar 1 $old_end_date_year_array old_end_date_year_arr - upvar 1 $old_project_item_id_array old_project_item_id_arr - upvar 1 $old_assignees_array old_assignees_arr - upvar 1 $old_dependency_array old_dependency_arr - set use_uncertain_completion_times_p [parameter::get -parameter "UseUncertainCompletionTimesP" -default "1"] # get the new task values @@ -2076,7 +2104,8 @@ set tid $task_item_id($num) - set old $old_percent_complete_arr($tid) + set old [ad_get_client_property -- project-manager old_percent_complete($tid)] + set new $percent_complete_array($tid) if {![string equal $old $new]} { @@ -2094,15 +2123,19 @@ } } + + set old_end_date_day [ad_get_client_property -- project-manager old_end_date_day($tid)] + set old_end_date_month [ad_get_client_property -- project-manager old_end_date_month($tid)] + set old_end_date_year [ad_get_client_property -- project-manager old_end_date_year($tid)] # end date if { \ - ![string equal $old_end_date_day_arr($tid) $end_date_day_array($tid)] || \ - ![string equal $old_end_date_month_arr($tid) $end_date_month_array($tid)] || \ - ![string equal $old_end_date_year_arr($tid) $end_date_year_array($tid)]} { + ![string equal $old_end_date_day $end_date_day_array($tid)] || \ + ![string equal $old_end_date_month $end_date_month_array($tid)] || \ + ![string equal $old_end_date_year $end_date_year_array($tid)]} { # internationalize the dates - set iso_date_old "$old_end_date_year_arr($tid)-$old_end_date_month_arr($tid)-$old_end_date_day_arr($tid) 00:00:00" + set iso_date_old "$old_end_date_year-$old_end_date_month-$old_end_date_day 00:00:00" set iso_date_new "$end_date_year_array($tid)-$end_date_month_array($tid)-$end_date_day_array($tid) 00:00:00" if {[string equal $iso_date_old "-- 00:00:00"]} { @@ -2120,78 +2153,95 @@ lappend changes "Hard deadline changed from $date_old to $date_new" } + set old_one_line [ad_get_client_property -- project-manager old_one_line($tid)] + # one_line - if {![string equal $old_one_line_arr($tid) $one_line_array($tid)]} { - lappend changes "Subject changed from $old_one_line_arr($tid) to $one_line_array($tid)" + if {![string equal $old_one_line $one_line_array($tid)]} { + lappend changes "Subject changed from $old_one_line to $one_line_array($tid)" } + set old_description [ad_get_client_property -- project-manager old_description($tid)] + set old_description_mime_type [ad_get_client_property -- project-manager old_description_mime_type($tid)] + # description if { \ - ![string equal $old_description_arr($tid) $description_array($tid)] || \ - ![string equal $old_description_mime_type_arr($tid) $description_mime_type_array($tid)]} { + ![string equal $old_description $description_array($tid)] || \ + ![string equal $old_description_mime_type $description_mime_type_array($tid)]} { - set richtext_list [list $old_description_arr($tid) $old_description_mime_type_arr($tid)] + set richtext_list [list $old_description $old_description_mime_type] set old_description_html [template::util::richtext::get_property html_value $richtext_list] set richtext_list [list $description_array($tid) $description_mime_type_array($tid)] set new_description_html [template::util::richtext::get_property html_value $richtext_list] lappend changes "Description changed from
$old_description_html (see below for new description)" } + set old_estimated_hours_work [ad_get_client_property -- project-manager old_estimated_hours_work($tid)] + set old_estimated_hours_work_min [ad_get_client_property -- project-manager old_estimated_hours_work_min($tid)] + set old_estimated_hours_work_max [ad_get_client_property -- project-manager old_estimated_hours_work_max($tid)] + # estimated_hours_work if {[string is true $use_uncertain_completion_times_p]} { - if {![string equal $old_estimated_hours_work_min_arr($tid) $estimated_hours_work_min_array($tid)]} { - lappend changes "Work estimate (min) changed from $old_estimated_hours_work_min_arr($tid) to $estimated_hours_work_min_array($tid) hrs" + if {![string equal $old_estimated_hours_work_min $estimated_hours_work_min_array($tid)]} { + lappend changes "Work estimate (min) changed from $old_estimated_hours_work_min to $estimated_hours_work_min_array($tid) hrs" } - if {![string equal $old_estimated_hours_work_max_arr($tid) $estimated_hours_work_max_array($tid)]} { - lappend changes "Work estimate (max) changed from $old_estimated_hours_work_max_arr($tid) to $estimated_hours_work_max_array($tid) hrs" + if {![string equal $old_estimated_hours_work_max $estimated_hours_work_max_array($tid)]} { + lappend changes "Work estimate (max) changed from $old_estimated_hours_work_max to $estimated_hours_work_max_array($tid) hrs" } } else { - if {![string equal $old_estimated_hours_work_arr($tid) $estimated_hours_work_array($tid)]} { - lappend changes "Work estimate (min) changed from $old_estimated_hours_work_arr($tid) to $estimated_hours_work_array($tid) hrs" + if {![string equal $old_estimated_hours_work $estimated_hours_work_array($tid)]} { + lappend changes "Work estimate (min) changed from $old_estimated_hours_work to $estimated_hours_work_array($tid) hrs" } } + set old_assignees [ad_get_client_property -- \ + project-manager \ + old_assignees($tid)] + set new_assignees [pm::task::get_assignee_names \ -task_item_id $task_item_id($num)] # check for assignees that have been added foreach new $new_assignees { - if { [lsearch $old_assignees_arr($tid) $new] == -1} { + if { [lsearch $old_assignees $new] == -1} { lappend changes "Added: $new" } } # check for assignees that have been removed - foreach old $old_assignees_arr($tid) { + foreach old $old_assignees { if { [lsearch $new_assignees $old] == -1} { lappend changes "Removed: $old" } } + set old_project_item_id [ad_get_client_property -- project-manager old_project_item_id($tid)] + # project - if {![string equal $old_project_item_id_arr($tid) $project_item_id_array($tid)]} { + if {![string equal $old_project_item_id $project_item_id_array($tid)]} { - set old [pm::project::name -project_item_id $old_project_item_id_arr($tid)] + set old [pm::project::name -project_item_id $old_project_item_id] lappend changes "Project changed from $old" } + set old_dependency [ad_get_client_property -- project-manager old_dependency($tid)] + # dependency - if {![string equal $old_dependency_arr($tid) $dependency_array($tid)]} { + if {![string equal $old_dependency $dependency_array($tid)]} { - if {[empty_string_p $old_dependency_arr($tid)]} { + if {[empty_string_p $old_dependency]} { set old "Nothing" } else { set old [pm::task::name \ - -task_item_id $old_dependency_arr($tid)] + -task_item_id $old_dependency] } if {[empty_string_p $dependency_array($tid)]} { @@ -2201,7 +2251,7 @@ -task_item_id $dependency_array($tid)] } - lappend changes "Dependency changed from $old ($old_dependency_arr($tid)) to $new ($dependency_array($tid))" + lappend changes "Dependency changed from $old ($old_dependency) to $new ($dependency_array($tid))" } @@ -2223,3 +2273,91 @@ } + + +ad_proc -public pm::task::clear_client_properties { + {-task_item_id:required} +} { + Clears all the client properties for a given task_item_id + + @author (ibr@test) + @creation-date 2004-11-03 + + @param task_item_id + + @return + + @error +} { + + ad_set_client_property -persistent f -- \ + project-manager \ + old_one_line($task_item_id) \ + "" + + ad_set_client_property -persistent f -- \ + project-manager \ + old_description($task_item_id) \ + "" + + ad_set_client_property -persistent f -- \ + project-manager \ + old_description_mime_type($task_item_id) \ + "" + + ad_set_client_property -persistent f -- \ + project-manager \ + old_estimated_hours_work($task_item_id) \ + "" + + ad_set_client_property -persistent f -- \ + project-manager \ + old_estimated_hours_work_min($task_item_id) \ + "" + + ad_set_client_property -persistent f -- \ + project-manager \ + old_estimated_hours_work_max($task_item_id) \ + "" + + ad_set_client_property -persistent f -- \ + project-manager \ + old_dependency($task_item_id) \ + "" + + ad_set_client_property -persistent f -- \ + project-manager \ + old_percent_complete($task_item_id) \ + "" + + ad_set_client_property -persistent f -- \ + project-manager \ + old_end_date_day($task_item_id) \ + "" + + ad_set_client_property -persistent f -- \ + project-manager \ + old_end_date_month($task_item_id) \ + "" + + ad_set_client_property -persistent f -- \ + project-manager \ + old_end_date_year($task_item_id) \ + "" + + ad_set_client_property -persistent f -- \ + project-manager \ + old_project_item_id($task_item_id) \ + "" + + ad_set_client_property -persistent f -- \ + project-manager \ + old_assignees($task_item_id) \ + "" + + ad_set_client_property -persistent f -- \ + project-manager \ + old_assignees($task_item_id) \ + "" + +} Index: openacs-4/contrib/packages/project-manager/www/task-add-edit-2.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/project-manager/www/Attic/task-add-edit-2.tcl,v diff -u -r1.1.2.1 -r1.1.2.2 --- openacs-4/contrib/packages/project-manager/www/task-add-edit-2.tcl 26 Oct 2004 01:21:11 -0000 1.1.2.1 +++ openacs-4/contrib/packages/project-manager/www/task-add-edit-2.tcl 4 Nov 2004 01:04:17 -0000 1.1.2.2 @@ -84,6 +84,11 @@ lappend tasks_item_id $task_item_id($num) } + foreach task $tasks_item_id { + pm::task::clear_client_properties \ + -task_item_id $task + } + pm::task::get \ -tasks_item_id $tasks_item_id \ -one_line_array old_one_line \ @@ -97,7 +102,8 @@ -end_date_day_array old_end_date_day \ -end_date_month_array old_end_date_month \ -end_date_year_array old_end_date_year \ - -project_item_id_array old_project_item_id + -project_item_id_array old_project_item_id \ + -set_client_properties_p t foreach num $number { @@ -116,10 +122,6 @@ set estimated_hours_work_max($num) $estimated_hours_work($num) } - set old_assignees($task_item_id($num)) \ - [pm::task::get_assignee_names \ - -task_item_id $task_item_id($num)] - # ------------------------------------- # Log hours and other variables to task # ------------------------------------- @@ -302,33 +304,36 @@ } +# -------------------------------------------------------------------- +# Internet Explorer sucks. It really really does. Due to length limits +# on URLs for IE, we have to pass these variables through +# ad_set_client_property. +# -------------------------------------------------------------------- + +foreach num $number { + ad_set_client_property -persistent f -- \ + project-manager \ + project_item_id($num) \ + $project_item_id($num) + + ad_set_client_property -persistent f -- \ + project-manager \ + task_item_id($num) \ + $task_item_id($num) + +} + # We're done! ad_returnredirect -message "Saved tasks" \ [export_vars -base task-add-edit-3 \ { \ - project_item_id:array \ number:multiple \ using_process_p \ process_instance_id \ - task_item_id:array \ edit_p \ - task_title:array \ comments:array \ comments_mime_type:array \ - old_one_line:array \ - old_description:array \ - old_description_mime_type:array \ - old_estimated_hours_work:array \ - old_estimated_hours_work_min:array \ - old_estimated_hours_work_max:array \ - old_dependency:array \ - old_percent_complete:array \ - old_assignees:array \ - old_end_date_day:array \ - old_end_date_month:array \ - old_end_date_year:array \ - old_project_item_id:array \ send_email_p \ return_url}] Index: openacs-4/contrib/packages/project-manager/www/task-add-edit-3.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/contrib/packages/project-manager/www/Attic/task-add-edit-3.tcl,v diff -u -r1.1.2.1 -r1.1.2.2 --- openacs-4/contrib/packages/project-manager/www/task-add-edit-3.tcl 26 Oct 2004 01:21:11 -0000 1.1.2.1 +++ openacs-4/contrib/packages/project-manager/www/task-add-edit-3.tcl 4 Nov 2004 01:04:17 -0000 1.1.2.2 @@ -9,41 +9,47 @@ @arch-tag: f6cf8b76-a1e0-42a0-9489-000cad7ad7b5 @cvs-id $Id$ } { - project_item_id:array number:multiple - task_title:array {return_url ""} {edit_p "f"} {using_process_p "f"} {process_instance_id:integer ""} - task_item_id:array {comments:html,array ""} {comments_mime_type:array ""} - {old_one_line:array ""} - {old_description:html,array ""} - {old_description_mime_type:array ""} - {old_estimated_hours_work:array ""} - {old_estimated_hours_work_min:array ""} - {old_estimated_hours_work_max:array ""} - {old_dependency:array ""} - {old_percent_complete:array ""} - {old_end_date_day:array ""} - {old_end_date_month:array ""} - {old_end_date_year:array ""} - {old_assignees:array ""} - {old_project_item_id:array ""} {send_email_p "t"} - } -properties { } -validate { } -errors { } +# -------------------------------------------------------------------- +# Internet Explorer sucks. It really really does. Due to length limits +# on URLs for IE, we have to pass these variables through +# ad_set_client_property. +# -------------------------------------------------------------------- + +foreach num $number { + set project_item_id($num) [ad_get_client_property -- \ + project-manager \ + project_item_id($num)] + + set task_item_id($num) [ad_get_client_property -- \ + project-manager \ + task_item_id($num)] + +} + + +# --------------------------------------------- +# set up the return_url if it's not already set +# --------------------------------------------- + if {[empty_string_p $return_url]} { set return_url [export_vars -base one \ {{project_item_id "$project_item_id([lindex $number 0])"}} ] } + # --------------------------------------------------------------- # Set up # --------------------------------------------------------------- @@ -105,30 +111,16 @@ # append to comments what has changed in each task pm::task::what_changed \ -task_item_id_array task_item_id \ - -number $number \ + -number $number \ -comments_array comments \ - -comments_mime_type_array comments_mime_type \ - -old_one_line_array old_one_line \ - -old_description_array old_description \ - -old_description_mime_type_array old_description_mime_type \ - -old_estimated_hours_work_array old_estimated_hours_work \ - -old_estimated_hours_work_min_array old_estimated_hours_work_min \ - -old_estimated_hours_work_max_array old_estimated_hours_work_max \ - -old_dependency_array old_dependency \ - -old_percent_complete_array old_percent_complete \ - -old_end_date_day_array old_end_date_day \ - -old_end_date_month_array old_end_date_month \ - -old_end_date_year_array old_end_date_year \ - -old_project_item_id_array old_project_item_id \ - -old_assignees_array old_assignees + -comments_mime_type_array comments_mime_type - foreach num $number { # add comment to task pm::util::general_comment_add \ -object_id $task_item_id($num) \ - -title $task_title($num) \ + -title [pm::task::name -task_item_id $task_item_id($num)] \ -comment $comments($num) \ -mime_type $comments_mime_type($num) \ -user_id $user_id \