Index: openacs-4/packages/xowf/tcl/xowf-form-field-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/xowf/tcl/xowf-form-field-procs.tcl,v diff -u -N -r1.4 -r1.5 --- openacs-4/packages/xowf/tcl/xowf-form-field-procs.tcl 17 Aug 2017 12:04:42 -0000 1.4 +++ openacs-4/packages/xowf/tcl/xowf-form-field-procs.tcl 17 Aug 2017 12:38:14 -0000 1.5 @@ -21,15 +21,16 @@ } -extend_slot_default validator workflow workflow_definition instproc as_graph {} { - set ctx [::xowf::Context new -destroy_on_cleanup -object [my object] \ + set ctx [::xowf::Context new -destroy_on_cleanup -object ${:object} \ -all_roles true -in_role none \ -workflow_definition [my value] ] return [$ctx as_graph -dpi [my dpi] -style "max-width: 35%;"] } workflow_definition instproc check=workflow {value} { # Do we have a syntax error in the workflow definition? - if {![catch {set ctx [::xowf::Context new -destroy_on_cleanup -object ${:object} \ + if {![catch {set ctx [::xowf::Context new \ + -destroy_on_cleanup -object ${:object} \ -all_roles true \ -workflow_definition [my value]]} errorMsg]} { $ctx initialize_context ${:object} @@ -38,7 +39,7 @@ array set "" [$ctx check] if {$(rc) == 1} {set errorMsg $(errorMsg)} } - + if {[info exists errorMsg]} { #my msg errorMsg=$errorMsg my uplevel [list set errorMsg $errorMsg] @@ -47,12 +48,12 @@ return 1 } workflow_definition instproc pretty_value {v} { - [my object] do_substitutions 0 + ${:object} do_substitutions 0 set text [string map [list & "&" < "<" > ">" \" """ ' "'" @ "@"] [my value]] return "
$text
[my as_graph]
- [[my object] include my-refers] + [${:object} include my-refers] " } @@ -67,12 +68,12 @@ } current_state instproc render_input {} { next - if {[my as_graph]} { - set ctx [::xowf::Context new -destroy_on_cleanup -object [my object] \ + if {[:as_graph]} { + set ctx [::xowf::Context new -destroy_on_cleanup -object ${:object} \ -all_roles true -in_role none \ - -workflow_definition [[my object] wf_property workflow_definition] ] - #set ctx [::xowf::Context require [my object]] - set graph [$ctx as_graph -current_state [my value] -visited [[my object] visited_states] -style "max-height: 250px;"] + -workflow_definition [${:object} wf_property workflow_definition] ] + #set ctx [::xowf::Context require ${:object}] + set graph [$ctx as_graph -current_state [my value] -visited [${:object} visited_states] -style "max-height: 250px;"] ::html::div -style "width: 35%; float: right;" { ::html::t -disableOutputEscaping $graph } @@ -81,9 +82,9 @@ current_state instproc pretty_value {v} { set g "" - if {[my as_graph]} { - set ctx [::xowf::Context require [my object]] - set graph [$ctx as_graph -current_state $v -visited [[my object] visited_states]] + if {[:as_graph]} { + set ctx [::xowf::Context require ${:object}] + set graph [$ctx as_graph -current_state $v -visited [${:object} visited_states]] set g "
$graph
" } return "[next]$g" @@ -92,9 +93,9 @@ } -# -# These definitions are only here for the time being # +# These definitions are only here for the time being +# namespace eval ::xo::role { Class create Role Role instproc get_members args { @@ -109,12 +110,12 @@ return 1 } - Role create swa + Role create swa swa proc is_member {-user_id:required -package_id} { return [::xo::cc cache [list acs_user::site_wide_admin_p -user_id $user_id]] } - - Role create registered_user + + Role create registered_user registered_user proc is_member {-user_id:required -package_id} { return [expr {$user_id != 0}] } @@ -129,8 +130,8 @@ unregistered_user proc is_member {-user_id:required -package_id} { return [expr {$user_id == 0}] } - - Role create admin + + Role create admin admin proc is_member {-user_id:required -package_id:required} { return [::xo::cc permission -object_id $package_id -privilege admin -party_id $user_id] } @@ -141,7 +142,7 @@ #my msg members=$members return $members } - + Role create creator creator proc is_member {-user_id:required -package_id -object:required} { $object instvar creation_user @@ -155,7 +156,7 @@ return [list [list [::xo::get_user_name $creator_id] $creator_id]] } - Role create app_group_member + Role create app_group_member app_group_member proc is_member {-user_id:required -package_id} { return [::xo::cc cache [list application_group::contains_party_p \ -party_id $user_id \ @@ -189,7 +190,7 @@ ########################################################### Class create role_member -superclass candidate_box_select -parameter { - role + role {online_state off} } role_member instproc initialize {} { @@ -198,9 +199,9 @@ } role_member instproc render_input {} { my instvar role - #my msg role=$role,obj=[my object] + #my msg role=$role,obj=${:object} if {[info commands ::xo::role::$role] ne ""} { - set object_id [::xo::role::$role get_object_id [my object]] + set object_id [::xo::role::$role get_object_id ${:object}] my set options [::xo::role::$role get_members -object_id $object_id] } elseif {[set gid [group::get_id -group_name $role]] ne ""} { my set options [list] @@ -260,15 +261,15 @@ } mc_exercise instproc pretty_value {v} { - return [[my object] property form ""] + return [${:object} property form ""] } mc_exercise instproc convert_to_internal {} { # # Build a from from the components of the exercise on the fly. # Actually, this methods computes the properties "form" and # "form_constraints" based on the components of this form field. - # + # set form "
\n\n" set fc "@categories:off @cr_fields:hidden\n" set intro_text [my get_named_sub_component_value text] @@ -292,8 +293,8 @@ #my msg "$input_field_name .correct = $value(correct)" } append form "
\n" - [my object] set_property -new 1 form $form - [my object] set_property -new 1 form_constraints $fc + ${:object} set_property -new 1 form $form + ${:object} set_property -new 1 form_constraints $fc } ########################################################### @@ -312,11 +313,11 @@ if {[my set __state] ne "after_specs"} return if {0} { - set javascript [::xowiki::formfield::FormField fc_encode { - xinha_config.toolbar = [ - ['popupeditor', 'bold','italic','createlink','insertimage','separator'], - ['killword','removeformat','htmlmode'] - ]; + set javascript [::xowiki::formfield::FormField fc_encode { + xinha_config.toolbar = [ + ['popupeditor', 'bold','italic','createlink','insertimage','separator'], + ['killword','removeformat','htmlmode'] + ]; }] set text_config [subst {editor=xinha,height=100px,label=Text,plugins=OacsFs,inplace=[my inplace],javascript=$javascript}] } else { @@ -340,7 +341,7 @@ } -::xo::library source_dependent +::xo::library source_dependent # # Local variables: Index: openacs-4/packages/xowf/tcl/xowf-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/xowf/tcl/xowf-procs.tcl,v diff -u -N -r1.7 -r1.8 --- openacs-4/packages/xowf/tcl/xowf-procs.tcl 17 Aug 2017 12:04:42 -0000 1.7 +++ openacs-4/packages/xowf/tcl/xowf-procs.tcl 17 Aug 2017 12:38:14 -0000 1.8 @@ -6,12 +6,12 @@ } # Todo: -# - after import, references are not updated +# - after import, references are not updated # (same for plain references); after_import methods? # # - Roles # - assignment -# - workflow-assignment includelet (over multiple workflows and +# - workflow-assignment includelet (over multiple workflows and # package instances) ::xo::db::require package xowiki @@ -22,11 +22,11 @@ # Should we use a shared or a per-context workflow definition. # set ::xowf::sharedWorkflowDefinition 0 - + ::xo::PackageMgr create ::xowf::Package \ -package_key "xowf" -pretty_name "XoWiki Workflow" \ -superclass ::xowiki::Package - + Package ad_instproc initialize {} { mixin ::xowf::WorkflowPage to every FormPage } { @@ -82,7 +82,7 @@ # can write in their workflow definitions) and WorkflowContainer. # ::xotcl::Class create WorkflowObject - + WorkflowObject instproc wf_context {} { # # Try to determine the workflow context via call-stack. @@ -108,7 +108,7 @@ if {$::xowf::sharedWorkflowDefinition > 0} { - + # # Workflow Container # @@ -120,7 +120,7 @@ {shared_definition 1} {object-specific ""} } - + WorkflowContainer instproc object {} { # # Method for emulating "object". Object specific code cannot @@ -130,7 +130,7 @@ # "object-specific" method below. # # Here we fall back to the unshared case - # + # set ctx [:wf_context] set object [$ctx object] set template [$object page_template] @@ -148,15 +148,15 @@ # Workflow Context # Class create Context -parameter { - {current_state "[self]::initial"} + {current_state "[self]::initial"} workflow_definition object {all_roles false} {default_definition ""} in_role wf_container } - + # forward property management to the workflow object Context instforward property {%set :object} %proc Context instforward get_property {%set :object} %proc @@ -169,7 +169,7 @@ Context instforward form {%set :current_state} form Context instforward form_loader {%set :current_state} form_loader - + # # The following methods autoname, auto_form_constraints, # auto_form_template, and debug contain legacy access methods for @@ -230,7 +230,7 @@ Context instproc set_current_state {value} { set :current_state ${:wf_container}::$value } - + Context instproc get_current_state {} { namespace tail ${:current_state} } @@ -289,7 +289,7 @@ } else { set template "@[join $vars @,@]@
@_text@" } - + #:log "USE auto-form template=$template, vars=$vars \ # IA=[$object set instance_attributes], \ # V=[$object info vars] auto [:autoname]" @@ -317,7 +317,7 @@ if {[info exists form_id]} {return [set :form_id]} set package_id [$object package_id] - # + # # We have to load the form, maybe via a form loader. If the # form_loader is set non-empty and the method exists, then use the # form loader instead of the plain lookup. In case the form_loader @@ -358,7 +358,7 @@ } set form_object ::$form_id } - + if {[$form_object istype "::xowiki::Form"]} { # # The item returned from the form loader was a form, @@ -400,7 +400,7 @@ set :form_id $form_object } - + #Context instproc destroy {} { # :log "DESTROY vars <[:info vars]>" # next @@ -459,11 +459,11 @@ # shall be really shared by setting in the definition the # variable "shared_definition". # - set use_shared_definition [${:wf_container} shared_definition] + set use_shared_definition [${:wf_container} shared_definition] } else { set use_shared_definition 0 } - + if {$use_shared_definition == 0} { set :wf_container [self] :create_workflow_definition $workflow_definition @@ -479,11 +479,11 @@ ${:object} eval $os_code } } - + #:log [:serialize] #:log END-CREATES } - + Context instproc init {} { array set :handled_roles {} :require_workflow_definition ${:workflow_definition} @@ -495,10 +495,10 @@ # set ctx $obj-wfctx #:log "... ctx <$ctx> exists [:isobject $ctx]" - + if {[info commands $ctx] eq ""} { set wfContextClass [$obj wf_property workflow_context_class [self]] - + regsub -all \r\n [$obj wf_property workflow_definition] \n workflow_definition $wfContextClass create $ctx \ -object $obj \ @@ -527,7 +527,7 @@ #:log "===== resetting state of $obj to $state" } :set_current_state $state - + if {[info commands ${:current_state}] eq ""} { # The state was probably deleted from the workflow definition, # but the workflow instance does still need it. We complain an @@ -536,18 +536,18 @@ $obj msg "Workflow instance [$obj name] is in an undefined state '$state', reset to initial" :set_current_state initial } - - # Set the embedded_context to the workflow context, + + # Set the embedded_context to the workflow context, # used e.g. by "behavior" of form-fields [[$obj package_id] context] set embedded_context [self] - + set stateObj ${:current_state} catch {$stateObj eval [$stateObj eval_when_active]} - + if {[$obj istype ::xowiki::FormPage] && [$obj is_wf_instance]} { # # The workflow context may have the following variables: - # - "debug" + # - "debug" # - "policy" # - "autoname" # - "auto_form_constraints" @@ -557,7 +557,7 @@ if {[${:wf_container} exists debug] && [${:wf_container} set debug] > 0} { :show_debug_info $obj } - + if {[${:wf_container} exists policy]} { set policy [${:wf_container} set policy] if {![:isobject $policy]} { @@ -619,15 +619,15 @@ append result [:draw_arc [$from name] $c [$action name]-1 $role[$action label] ""] foreach {cond value} $cond_values { if {$cond ne ""} {set prefix "$cond"} {set prefix "else"} - append result [:draw_arc $c $value [$action name] \[$prefix\] $arc_style] + append result [:draw_arc $c $value [$action name] \[$prefix\] $arc_style] } } else { set prefix "" append result [:draw_arc [$from name] [lindex $cond_values 1] [$action name] $role$prefix[$action label] $arc_style] } return $result } - + Context instproc as_graph {{-current_state ""} {-visited ""} {-dpi 96} {-style "width:100%"}} { set dot "" catch {set dot [::util::which dot]} @@ -638,7 +638,7 @@ set result [subst {digraph workflow_$obj_id \{ dpi = $dpi; node \[shape=doublecircle, margin=0.001, fontsize=8, fixedsize=1, width=0.4, style=filled\]; start; - node \[shape=ellipse, fontname="Courier", color=lightblue2, style=filled, + node \[shape=ellipse, fontname="Courier", color=lightblue2, style=filled, fixedsize=0, fontsize=10, margin=0.06\]; edge \[fontname="Courier", fontsize=9\]; }] @@ -746,7 +746,7 @@ } #my msg "forms=[my array names forms], parampages=[my array names parampages] in-role [my exists in_role] [my array names handled_roles]" - + if {![:exists in_role]} { foreach role [array names :handled_roles] { set role_ctx [self]-$role @@ -780,7 +780,7 @@ $page references clear } if {[llength [$page references get unresolved]] > 0} { - # TODO: we should provide a link to create the missing forms. maybe we + # TODO: we should provide a link to create the missing forms. maybe we # change unresolved_references to a list..., or maybe we write these into the DB. my msg -html t "Missing forms: [join [$page references get unresolved] {, }]" } @@ -800,7 +800,7 @@ # # One should probably deactivate the following convenance calls, - # which are potentially costly and seldom used + # which are potentially costly and seldom used # WorkflowConstruct instforward property {%[:wf_context] object} %proc WorkflowConstruct instforward set_property {%[:wf_context] object} %proc @@ -843,7 +843,7 @@ } WorkflowConstruct instproc get_value {values} { foreach {cond value} [:get_cond_values $values] { - if {$cond eq "" || $cond eq "default" || $cond eq "else" || + if {$cond eq "" || $cond eq "default" || $cond eq "else" || $cond eq "true"} { return $value } elseif {[my $cond]} { @@ -882,8 +882,8 @@ # WorkflowConstruct x set ::_ "" - ? {x get_value ""} "" - ? {x get_value a} a + ? {x get_value ""} "" + ? {x get_value a} a ? {x get_value {a b}} {a b} ? {x get_value "a b"} {a b} ? {x get_value "? true a default b"} {a} @@ -949,7 +949,7 @@ set obj [[:wf_context] object] set package_id [$object package_id] my log "--xowf invoke action [self]" - # We fake a work request with the given instance attributes + # We fake a work request with the given instance attributes set last_context [expr {[$package_id exists context] ? [$package_id context] : "::xo::cc"}] set last_object [$package_id set object] set cc [::xo::ConnectionContext new -user_id [$last_context user_id]] @@ -965,7 +965,7 @@ $cc load_form_parameter_from_values $attributes $package_id set object "[$package_id folder_path -parent_id [$object parent_id]][$object name]" - + #my log "call_action calls: ::$package_id invoke -method edit -batch_mode 1 // obj=[$package_id set object]" if {[catch {::$package_id invoke -method edit -batch_mode 1} errorMsg]} { my msg "---call_action returns error $errorMsg" @@ -1006,7 +1006,7 @@ #xo::show_stack return [:info parent] } - + Property instproc init {} { # # Mostly compatibility fix for XOTcl 2.0. Provide a default @@ -1043,22 +1043,22 @@ Return for a workflow page the workflow context object. The same function can be used as well for setting the workflow context at the first places (e.g. on initialization of the wf-context). - + } { if {$ctx ne ""} { set :_wf_context $ctx } return ${:_wf_context} } - + WorkflowPage instproc initialize_loaded_object {} { if {${:state} eq ""} { set :state "initial" } :log "===== WorkflowPage INIT_LOADED_OBJECT <${:state}>" next } - + WorkflowPage ad_instproc is_wf {} { Check, if the current page is a workflow page (page, defining a workflow) } { @@ -1123,15 +1123,15 @@ } } } - + WorkflowPage ad_instproc render_form_action_buttons { {-formfieldButtonClass ::xowiki::formfield::submit_button} {-CSSclass ""} } { Render the defined actions in the current state with submit buttons } { if {[:is_wf_instance]} { - + set ctx [::xowf::Context require [self]] set buttons {} foreach action [$ctx get_actions] { @@ -1196,7 +1196,7 @@ # # In cases, where the HTML exercise was given, we process the HTML - # to flag the result. + # to flag the result. # # TODO: what should we do with the feedback. util-user-message not optimal... # @@ -1219,12 +1219,12 @@ #set spanNode [$dom_doc createElement span] #$spanNode setAttribute class "glyphicon glyphicon-ok [$f form_widget_CSSclass]" #[$n parentNode] insertBefore $spanNode [$n nextSibling] - + set parentNode [$n parentNode] set oldClass [$parentNode getAttribute class ""] $parentNode setAttribute class "selection [$f form_widget_CSSclass]" $parentNode setAttribute title $helpText - + #util_user_message -message "field [$f name], value [$f value]: $helpText" } } @@ -1280,7 +1280,7 @@ if {[:is_wf_instance] && $content eq ""} { set ctx [::xowf::Context require [self]] - set method [$ctx get_view_method] + set method [$ctx get_view_method] set s [$ctx current_state] my include_header_info -css [$s extra_css] -js [$s extra_js] @@ -1304,7 +1304,7 @@ return [$package_id invoke -method $method] } } - } + } } next } @@ -1314,9 +1314,9 @@ } WorkflowPage instproc send_to_assignee { - -subject - -from - -body + -subject + -from + -body {-mime_type text/plain} {-with_ical:boolean false} } { @@ -1361,7 +1361,7 @@ -encoding "quoted-printable" -string $ical] #lappend tokens [acs_mail_lite::utils::build_body -mime_type {application/ics; name="invite.ics"} $ical] } - + if {[llength $tokens]>1} { set tokens [mime::initialize -canonical "multipart/mixed" -parts $tokens] } @@ -1378,7 +1378,7 @@ acs_mail_lite::smtp -multi_token $tokens -headers $headers_list -originator $originator mime::finalize $tokens -subordinates all - + } WorkflowPage instproc activate {{-verbose true} ctx action} { @@ -1399,7 +1399,7 @@ # Save error code in variable errorCode, since the # tcl-maintained value is volatile set errorCode $::errorCode - + ns_log notice "ACTIVATE [my name] error => $errorMsg // $errorCode" # # Check, if we were called from "ad_script_abort" (intentional abortion) @@ -1421,7 +1421,7 @@ ad_log error "--WF: evaluation $error\n$::errorInfo" } return "" - + } else { # We moved get_next_state here to allow an action to influence the # conditions in the activation method. @@ -1457,7 +1457,7 @@ next } } - + WorkflowPage instproc instantiated_form_fields {} { # Helper method to # - obtain the field_names from the current form, to @@ -1511,12 +1511,12 @@ # # update the state in the workflow instance # - set ctx [::xowf::Context require [self]] + set ctx [::xowf::Context require [self]] set :state [$ctx get_current_state] } next } - + WorkflowPage instproc save args { set r [next] :save_in_hstore @@ -1527,7 +1527,7 @@ set r [next] :save_in_hstore return $r - } + } WorkflowPage instproc hstore_attributes {} { # @@ -1536,7 +1536,7 @@ # return [dict remove ${:instance_attributes} workflow_definition] } - + WorkflowPage instproc save_in_hstore {} { # # Experimental code for storing instance attributes in hstore. To @@ -1586,11 +1586,11 @@ # the link should be able to view return_url and template_file return [$package_id returnredirect [$package_id pretty_link -parent_id $parent_id $lang:$stripped_name]] } - + WorkflowPage instproc www-create-or-use { - {-parent_id 0} - {-view_method edit} - {-name ""} + {-parent_id 0} + {-view_method edit} + {-name ""} {-nls_language ""} } { #my msg "instance = [:is_wf_instance], wf=[my is_wf]" @@ -1618,7 +1618,7 @@ set $p [dict get $payload $p] } } - + # # If these values are not set, try to obtain it the old-fashioned way. # @@ -1628,7 +1628,7 @@ if {$name eq ""} { set name [my property name ""] } - + # # Check, if allocate has provided a name: # @@ -1671,7 +1671,7 @@ WorkflowPage instproc initialize_loaded_object {} { next if {[:is_wf_instance]} { - my initialize + my initialize } } @@ -1689,7 +1689,7 @@ # # set the state to a well defined starting point if {${:state} eq ""} {set :state initial} - + set ctx [::xowf::Context require [self]] my activate -verbose false [$ctx wf_container] initialize @@ -1702,7 +1702,7 @@ } WorkflowPage instproc default_instance_attributes {} { - # Provide the default list of instance attributes to derived + # Provide the default list of instance attributes to derived # FormPages. if {[my is_wf]} { # @@ -1720,7 +1720,7 @@ #my msg "ignore $name" continue } - if {[::xo::cc exists_query_parameter p.$name] + if {[::xo::cc exists_query_parameter p.$name] && [$p exists allow_query_parameter]} { # we allow the value to be taken from the query parameter set value [::xo::cc query_parameter p.$name] @@ -1736,7 +1736,7 @@ my state [$ctx get_current_state] #my msg "setting initial state to '[my state]'" - + return $instance_attributes } else { next @@ -1806,7 +1806,7 @@ WorkflowPage instproc visited_states {} { my instvar item_id foreach state [xo::dc list history { - select DISTINCT state from xowiki_form_page p, cr_items i, cr_revisions r + select DISTINCT state from xowiki_form_page p, cr_items i, cr_revisions r where i.item_id = :item_id and r.item_id = i.item_id and xowiki_form_page_id = r.revision_id}] { set visited($state) 1 } @@ -1815,7 +1815,7 @@ } WorkflowPage ad_instproc footer {} { - Provide a tailored footer for workflow definition pages and + Provide a tailored footer for workflow definition pages and workflow instance pages containing controls for instantiating forms or providing links to the workflow definition. } { @@ -1853,7 +1853,7 @@ if {[info exists return_url]} {$obj return_url $return_url} lappend button_objs $obj - # work flow definition button + # work flow definition button set obj [::xowiki::includelet::form-menu-button-form new -volatile \ -package_id $package_id -parent_id [my parent_id] \ -base $work_flow_base -form $work_flow_form] @@ -1900,7 +1900,7 @@ # -package_id $package_id -parent_id [my parent_id] \ # -base [my pretty_link] -form [self]] # } - # work flow definition button + # work flow definition button set obj [::xowiki::includelet::form-menu-button-wf new -volatile \ -package_id $package_id -parent_id [my parent_id] \ -base $work_flow_base -form $work_flow_form] @@ -1975,7 +1975,7 @@ my schedule_job -time $time -party_id $party_id \ [list call_action -action $action -attributes $attributes] } - + WorkflowPage ad_instproc schedule_job {-time:required -party_id cmd} { Schedule the specified Tcl command for the the current package instance at the given time. @@ -1987,33 +1987,33 @@ } ad_proc -private migrate_from_wf_current_state {} { - # - # Transform the former instance_attributes + # + # Transform the former instance_attributes # "wf_current_state" to the xowiki::FormPage attribute "state", and # "wf_assignee" to the xowiki::FormPage attribute "assignee". # set count 0 foreach atts [xo::dc list_of_lists entries { - select p.state,p.assignee,pi.instance_attributes,p.xowiki_form_page_id - from xowiki_form_page p, xowiki_page_instance pi, cr_items i, cr_revisions r + select p.state,p.assignee,pi.instance_attributes,p.xowiki_form_page_id + from xowiki_form_page p, xowiki_page_instance pi, cr_items i, cr_revisions r where r.item_id = i.item_id and p.xowiki_form_page_id = r.revision_id and pi.page_instance_id = r.revision_id }] { lassign $atts state assignee instance_attributes xowiki_form_page_id - if {[dict exists $instance_attributes wf_current_state] + if {[dict exists $instance_attributes wf_current_state] && [dict get $instance_attributes wf_current_state] ne $state} { #Object msg "must update state $state for $xowiki_form_page_id to [dict get $instance_attributes wf_current_state]" - + xo::db dml update_state "update xowiki_form_page \ set state = '[dict get $instance_attributes wf_current_state]' - where xowiki_form_page_id = :xowiki_form_page_id" + where xowiki_form_page_id = :xowiki_form_page_id" incr count } if {[dict exists $instance_attributes wf_assignee] && [dict get $instance_attributes wf_assignee] ne $assignee} { #Object msg "must update assignee $assignee for $xowiki_form_page_id to [dict get $instance_attributes wf_assignee]" set wf_assignee [dict get $instance_attributes wf_assignee] xo::dc dml update_state "update xowiki_form_page set assignee = :wf_assignee \ - where xowiki_form_page_id = :xowiki_form_page_id" + where xowiki_form_page_id = :xowiki_form_page_id" incr count } } @@ -2046,7 +2046,7 @@ foreach i [$items children] { #$i msg "working on [$i set xowiki_form_page_id]" $i save_in_hstore - incr count + incr count } $items msg "fetched $count objects from parent_id [$package_id folder_id]" return 1 @@ -2058,9 +2058,9 @@ # select hkey from xowiki_page_instance where exist(hkey, 'team_email'); # select hkey from xowiki_page_instance where 'team_email=>neumann@wu-wien.ac.at' <@ hkey; # select (each(hkey)).key, (each(hkey)).value from xowiki_page_instance; - # select page_instance_id, (each(hkey)).key, (each(hkey)).value from xowiki_page_instance - # where 'assignee=>539,priority=>1' <@ hkey; - # select key, count(*) from (select (each(hkey)).key from xowiki_page_instance) as stat + # select page_instance_id, (each(hkey)).key, (each(hkey)).value from xowiki_page_instance + # where 'assignee=>539,priority=>1' <@ hkey; + # select key, count(*) from (select (each(hkey)).key from xowiki_page_instance) as stat # group by key order by count desc, key; # @@ -2069,16 +2069,16 @@ # -# In order to provide either a REST or a DAV interface, we have to -# switch to basic authentication, since non-OpenACS packages +# In order to provide either a REST or a DAV interface, we have to +# switch to basic authentication, since non-OpenACS packages # have problems to handle OpenACS cookies. The basic authentication # interface can be established in three steps: # -# 1) Create a basic authentication handler, Choose a URL and +# 1) Create a basic authentication handler, Choose a URL and # define optionally the package to be initialized: # Example: # ::xowf::dav create ::xowf::ba -url /ba -package ::xowf::Package -# +# # 2) Make sure, the basic authentication handler is initialized during # startup. Write an -init.tcl file containing a call to the # created handler. @@ -2170,7 +2170,7 @@ } -::xo::library source_dependent +::xo::library source_dependent # # Local variables: