Index: openacs-4/packages/workflow/tcl/workflow-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/workflow/tcl/workflow-procs.tcl,v diff -u -r1.6 -r1.7 --- openacs-4/packages/workflow/tcl/workflow-procs.tcl 12 Feb 2003 14:23:15 -0000 1.6 +++ openacs-4/packages/workflow/tcl/workflow-procs.tcl 5 Mar 2003 17:18:10 -0000 1.7 @@ -67,10 +67,11 @@ } # Insert the workflow - set workflow_id [db_string do_insert {}] + set workflow_id [db_exec_plsql do_insert {}] # Callbacks foreach callback_name $callbacks { + ns_log Notice "callback_name = $callback_name" workflow::callback_insert \ -workflow_id $workflow_id \ -name $callback_name @@ -90,6 +91,15 @@ return $workflow_id } +ad_proc -public workflow::exists_p { + {-workflow_id:required} +} { + Return 1 if the workflow with given id exists and 0 otherwise. + This proc is currently not cached. +} { + return [db_string do_select {} +} + ad_proc -public workflow::delete { {-workflow_id:required} } { @@ -101,32 +111,31 @@ } { workflow::flush_cache -workflow_id $workflow_id - return [db_string do_delete {}] + return [db_exec_plsql do_delete {}] } ad_proc -public workflow::get_id { {-package_key {}} {-object_id {}} {-short_name:required} } { - Get workflow_id by short_name and object_id. + Get workflow_id by short_name and object_id. Provide either package_key + or object_id. @param object_id The ID of the object the workflow's for (typically a package instance) + @param package_key The key of the package workflow belongs to. @param short_name the short name of the workflow you want + @return The id of the workflow or the empty string if no workflow was found. + @author Lars Pind (lars@collaboraid.biz) } { - set workflow_id [util_memoize [list workflow::get_id_not_cached \ -package_key $package_key \ -object_id $object_id \ -short_name $short_name] [workflow::cache_timeout]] - if { ![empty_string_p $workflow_id] } { - return $workflow_id - } else { - error "No workflow found with object_id $object_id and short_name $short_name" - } + return $workflow_id } ad_proc -public workflow::get { @@ -369,7 +378,18 @@ } } +ad_proc -public workflow::get_notification_links { + {-workflow_id:required} + {-case_id} + {-return_url} +} { + Return a links to sign up for notifications. + @return A multirow with columns url, label, title +} { + +} + ##### # # workflow::fsm namespace @@ -467,6 +487,13 @@ set spec [list] + # Get rid of empty strings + foreach name [array names row] { + if { [empty_string_p $row($name)] } { + array unset row $name + } + } + foreach name [lsort [array names row]] { lappend spec $name $row($name) } @@ -606,6 +633,10 @@ return "[workflow::package_key].ActivityLog_FormatTitle" } +ad_proc -public workflow::service_contract::notification_info {} { + return "[workflow::package_key].NotificationInfo" +} + ad_proc -public workflow::service_contract::get_impl_id { {-name:required} } {