Class ::xowf::Package

::xowf::Package[i] create ...

Class Relations

  • class: ::xo::PackageMgr[i]
  • superclass: ::xowiki::Package[i]
::xo::PackageMgr create ::xowf::Package \
     -superclass ::xowiki::Package

Methods (to be applied on the object)

  • create_new_workflow_page (scripted, public)

     xowf::Package[i] create_new_workflow_page -package_id package_id  \
        -parent_id parent_id  -name name  -title title  \
        [ -instance_attributes instance_attributes ]

    Helper proc for loading workflow prototype page with less effort.

    Switches:
    -package_id
    (required)
    -parent_id
    (required)
    -name
    (required)
    -title
    (required)
    -instance_attributes
    (optional)

    Partial Call Graph (max 5 caller/called nodes):
    %3 test_create_new_workflow_page create_new_workflow_page (test xowf) xowf::Package proc create_new_workflow_page xowf::Package proc create_new_workflow_page test_create_new_workflow_page->xowf::Package proc create_new_workflow_page

    Testcases:
    create_new_workflow_page
    #
    # Load Workflow.form
    #
    xo::Package require $package_id
    set item_ref_info [$package_id item_ref -use_site_wide_pages true -default_lang en  -parent_id $parent_id  en:Workflow.form]
    set page_template [dict get $item_ref_info item_id]
    if {$page_template != 0} {
      #
      # Create FormPage
      #
      set p [::xowiki::FormPage new  -name $name  -title $title  -set text {}  -instance_attributes $instance_attributes  -page_template $page_template]
    } else {
      ns_log error "could not load Workflow form, therefore, creation of workflow $name failed as well"
      set p ""
    }
    return $p

Methods (to be applied on instances)

  • destroy (scripted, public)

     <instance of xowf::Package[i]> destroy

    remove mixin

    Partial Call Graph (max 5 caller/called nodes):
    %3 test_create_test_items create_test_items (test xowf) xowf::Package instproc destroy xowf::Package instproc destroy test_create_test_items->xowf::Package instproc destroy test_create_workflow_with_instance create_workflow_with_instance (test xowf) test_create_workflow_with_instance->xowf::Package instproc destroy

    Testcases:
    create_test_items, create_workflow_with_instance
    #
    # In general, it is possible, that multiple xowf packages are
    # concurrently active in one thread. We want to remove the mixin
    # only, when the last instance is deleted.
    #
    if {[llength [[self class] allinstances]] == 1} {
      ::xowiki::FormPage instmixin delete ::xowf::WorkflowPage
    }
    next
  • initialize (scripted, public)

     <instance of xowf::Package[i]> initialize

    Add mixin ::xowf::WorkflowPage to every FormPage.

    Partial Call Graph (max 5 caller/called nodes):
    %3 test_create_folder_with_page create_folder_with_page (test xowf) xowf::Package instproc initialize xowf::Package instproc initialize test_create_folder_with_page->xowf::Package instproc initialize test_create_test_items create_test_items (test xowf) test_create_test_items->xowf::Package instproc initialize test_create_workflow_with_instance create_workflow_with_instance (test xowf) test_create_workflow_with_instance->xowf::Package instproc initialize

    Testcases:
    create_test_items, create_folder_with_page, create_workflow_with_instance
    #
    # This method is called, whenever an xowf package is initialized.
    #
    next
    #:msg "::xowiki::FormPage instmixin add ::xowf::WorkflowPage"
    ::xowiki::FormPage instmixin add ::xowf::WorkflowPage